@docyrus/shadcn 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (767) hide show
  1. package/README.md +12 -3
  2. package/dist/base-lyra/accordion.js.map +1 -1
  3. package/dist/base-lyra/alert-dialog.js.map +1 -1
  4. package/dist/base-lyra/alert.js.map +1 -1
  5. package/dist/base-lyra/aspect-ratio.js.map +1 -1
  6. package/dist/base-lyra/avatar.js.map +1 -1
  7. package/dist/base-lyra/badge.js.map +1 -1
  8. package/dist/base-lyra/breadcrumb.js.map +1 -1
  9. package/dist/base-lyra/button-group.js.map +1 -1
  10. package/dist/base-lyra/button.js.map +1 -1
  11. package/dist/base-lyra/calendar.js.map +1 -1
  12. package/dist/base-lyra/card.js.map +1 -1
  13. package/dist/base-lyra/carousel.js.map +1 -1
  14. package/dist/base-lyra/chart.js.map +1 -1
  15. package/dist/base-lyra/checkbox.js.map +1 -1
  16. package/dist/base-lyra/combobox.js.map +1 -1
  17. package/dist/base-lyra/command.js.map +1 -1
  18. package/dist/base-lyra/context-menu.js.map +1 -1
  19. package/dist/base-lyra/dialog.js.map +1 -1
  20. package/dist/base-lyra/drawer.js.map +1 -1
  21. package/dist/base-lyra/dropdown-menu.js.map +1 -1
  22. package/dist/base-lyra/empty.js.map +1 -1
  23. package/dist/base-lyra/field.js.map +1 -1
  24. package/dist/base-lyra/hover-card.js.map +1 -1
  25. package/dist/base-lyra/index.js +8 -6
  26. package/dist/base-lyra/index.js.map +1 -1
  27. package/dist/base-lyra/input-group.js.map +1 -1
  28. package/dist/base-lyra/input-otp.js.map +1 -1
  29. package/dist/base-lyra/input.js.map +1 -1
  30. package/dist/base-lyra/item.js.map +1 -1
  31. package/dist/base-lyra/kbd.js.map +1 -1
  32. package/dist/base-lyra/label.js.map +1 -1
  33. package/dist/base-lyra/menubar.js.map +1 -1
  34. package/dist/base-lyra/native-select.js.map +1 -1
  35. package/dist/base-lyra/navigation-menu.js.map +1 -1
  36. package/dist/base-lyra/pagination.js.map +1 -1
  37. package/dist/base-lyra/popover.js.map +1 -1
  38. package/dist/base-lyra/progress.js.map +1 -1
  39. package/dist/base-lyra/radio-group.js.map +1 -1
  40. package/dist/base-lyra/resizable.js.map +1 -1
  41. package/dist/base-lyra/scroll-area.js.map +1 -1
  42. package/dist/base-lyra/select.js.map +1 -1
  43. package/dist/base-lyra/separator.js.map +1 -1
  44. package/dist/base-lyra/sheet.js.map +1 -1
  45. package/dist/base-lyra/sidebar.js +8 -6
  46. package/dist/base-lyra/sidebar.js.map +1 -1
  47. package/dist/base-lyra/skeleton.js.map +1 -1
  48. package/dist/base-lyra/slider.js.map +1 -1
  49. package/dist/base-lyra/spinner.js.map +1 -1
  50. package/dist/base-lyra/switch.js.map +1 -1
  51. package/dist/base-lyra/table.js.map +1 -1
  52. package/dist/base-lyra/tabs.js.map +1 -1
  53. package/dist/base-lyra/textarea.js.map +1 -1
  54. package/dist/base-lyra/toggle-group.js.map +1 -1
  55. package/dist/base-lyra/toggle.js.map +1 -1
  56. package/dist/base-lyra/tooltip.js.map +1 -1
  57. package/dist/base-maia/accordion.js.map +1 -1
  58. package/dist/base-maia/alert-dialog.js.map +1 -1
  59. package/dist/base-maia/alert.js.map +1 -1
  60. package/dist/base-maia/aspect-ratio.js.map +1 -1
  61. package/dist/base-maia/avatar.js.map +1 -1
  62. package/dist/base-maia/badge.js.map +1 -1
  63. package/dist/base-maia/breadcrumb.js.map +1 -1
  64. package/dist/base-maia/button-group.js.map +1 -1
  65. package/dist/base-maia/button.js.map +1 -1
  66. package/dist/base-maia/calendar.js.map +1 -1
  67. package/dist/base-maia/card.js.map +1 -1
  68. package/dist/base-maia/carousel.js.map +1 -1
  69. package/dist/base-maia/chart.js.map +1 -1
  70. package/dist/base-maia/checkbox.js.map +1 -1
  71. package/dist/base-maia/combobox.js.map +1 -1
  72. package/dist/base-maia/command.js.map +1 -1
  73. package/dist/base-maia/context-menu.js.map +1 -1
  74. package/dist/base-maia/dialog.js.map +1 -1
  75. package/dist/base-maia/drawer.js.map +1 -1
  76. package/dist/base-maia/dropdown-menu.js.map +1 -1
  77. package/dist/base-maia/empty.js.map +1 -1
  78. package/dist/base-maia/field.js.map +1 -1
  79. package/dist/base-maia/hover-card.js.map +1 -1
  80. package/dist/base-maia/index.js +8 -6
  81. package/dist/base-maia/index.js.map +1 -1
  82. package/dist/base-maia/input-group.js.map +1 -1
  83. package/dist/base-maia/input-otp.js.map +1 -1
  84. package/dist/base-maia/input.js.map +1 -1
  85. package/dist/base-maia/item.js.map +1 -1
  86. package/dist/base-maia/kbd.js.map +1 -1
  87. package/dist/base-maia/label.js.map +1 -1
  88. package/dist/base-maia/menubar.js.map +1 -1
  89. package/dist/base-maia/native-select.js.map +1 -1
  90. package/dist/base-maia/navigation-menu.js.map +1 -1
  91. package/dist/base-maia/pagination.js.map +1 -1
  92. package/dist/base-maia/popover.js.map +1 -1
  93. package/dist/base-maia/progress.js.map +1 -1
  94. package/dist/base-maia/radio-group.js.map +1 -1
  95. package/dist/base-maia/resizable.js.map +1 -1
  96. package/dist/base-maia/scroll-area.js.map +1 -1
  97. package/dist/base-maia/select.js.map +1 -1
  98. package/dist/base-maia/separator.js.map +1 -1
  99. package/dist/base-maia/sheet.js.map +1 -1
  100. package/dist/base-maia/sidebar.js +8 -6
  101. package/dist/base-maia/sidebar.js.map +1 -1
  102. package/dist/base-maia/skeleton.js.map +1 -1
  103. package/dist/base-maia/slider.js.map +1 -1
  104. package/dist/base-maia/spinner.js.map +1 -1
  105. package/dist/base-maia/switch.js.map +1 -1
  106. package/dist/base-maia/table.js.map +1 -1
  107. package/dist/base-maia/tabs.js.map +1 -1
  108. package/dist/base-maia/textarea.js.map +1 -1
  109. package/dist/base-maia/toggle-group.js.map +1 -1
  110. package/dist/base-maia/toggle.js.map +1 -1
  111. package/dist/base-maia/tooltip.js.map +1 -1
  112. package/dist/base-mira/accordion.js.map +1 -1
  113. package/dist/base-mira/alert-dialog.js.map +1 -1
  114. package/dist/base-mira/alert.js.map +1 -1
  115. package/dist/base-mira/aspect-ratio.js.map +1 -1
  116. package/dist/base-mira/avatar.js.map +1 -1
  117. package/dist/base-mira/badge.js.map +1 -1
  118. package/dist/base-mira/breadcrumb.js.map +1 -1
  119. package/dist/base-mira/button-group.js.map +1 -1
  120. package/dist/base-mira/button.js.map +1 -1
  121. package/dist/base-mira/calendar.js.map +1 -1
  122. package/dist/base-mira/card.js.map +1 -1
  123. package/dist/base-mira/carousel.js.map +1 -1
  124. package/dist/base-mira/chart.js.map +1 -1
  125. package/dist/base-mira/checkbox.js.map +1 -1
  126. package/dist/base-mira/combobox.js.map +1 -1
  127. package/dist/base-mira/command.js.map +1 -1
  128. package/dist/base-mira/context-menu.js.map +1 -1
  129. package/dist/base-mira/dialog.js.map +1 -1
  130. package/dist/base-mira/drawer.js.map +1 -1
  131. package/dist/base-mira/dropdown-menu.js.map +1 -1
  132. package/dist/base-mira/empty.js.map +1 -1
  133. package/dist/base-mira/field.js.map +1 -1
  134. package/dist/base-mira/hover-card.js.map +1 -1
  135. package/dist/base-mira/index.js +8 -6
  136. package/dist/base-mira/index.js.map +1 -1
  137. package/dist/base-mira/input-group.js.map +1 -1
  138. package/dist/base-mira/input-otp.js.map +1 -1
  139. package/dist/base-mira/input.js.map +1 -1
  140. package/dist/base-mira/item.js.map +1 -1
  141. package/dist/base-mira/kbd.js.map +1 -1
  142. package/dist/base-mira/label.js.map +1 -1
  143. package/dist/base-mira/menubar.js.map +1 -1
  144. package/dist/base-mira/native-select.js.map +1 -1
  145. package/dist/base-mira/navigation-menu.js.map +1 -1
  146. package/dist/base-mira/pagination.js.map +1 -1
  147. package/dist/base-mira/popover.js.map +1 -1
  148. package/dist/base-mira/progress.js.map +1 -1
  149. package/dist/base-mira/radio-group.js.map +1 -1
  150. package/dist/base-mira/resizable.js.map +1 -1
  151. package/dist/base-mira/scroll-area.js.map +1 -1
  152. package/dist/base-mira/select.js.map +1 -1
  153. package/dist/base-mira/separator.js.map +1 -1
  154. package/dist/base-mira/sheet.js.map +1 -1
  155. package/dist/base-mira/sidebar.js +8 -6
  156. package/dist/base-mira/sidebar.js.map +1 -1
  157. package/dist/base-mira/skeleton.js.map +1 -1
  158. package/dist/base-mira/slider.js.map +1 -1
  159. package/dist/base-mira/spinner.js.map +1 -1
  160. package/dist/base-mira/switch.js.map +1 -1
  161. package/dist/base-mira/table.js.map +1 -1
  162. package/dist/base-mira/tabs.js.map +1 -1
  163. package/dist/base-mira/textarea.js.map +1 -1
  164. package/dist/base-mira/toggle-group.js.map +1 -1
  165. package/dist/base-mira/toggle.js.map +1 -1
  166. package/dist/base-mira/tooltip.js.map +1 -1
  167. package/dist/base-nova/accordion.js.map +1 -1
  168. package/dist/base-nova/alert-dialog.js.map +1 -1
  169. package/dist/base-nova/alert.js.map +1 -1
  170. package/dist/base-nova/aspect-ratio.js.map +1 -1
  171. package/dist/base-nova/avatar.js.map +1 -1
  172. package/dist/base-nova/badge.js.map +1 -1
  173. package/dist/base-nova/breadcrumb.js.map +1 -1
  174. package/dist/base-nova/button-group.js.map +1 -1
  175. package/dist/base-nova/button.js.map +1 -1
  176. package/dist/base-nova/calendar.js.map +1 -1
  177. package/dist/base-nova/card.js.map +1 -1
  178. package/dist/base-nova/carousel.js.map +1 -1
  179. package/dist/base-nova/chart.js.map +1 -1
  180. package/dist/base-nova/checkbox.js.map +1 -1
  181. package/dist/base-nova/combobox.js.map +1 -1
  182. package/dist/base-nova/command.js.map +1 -1
  183. package/dist/base-nova/context-menu.js.map +1 -1
  184. package/dist/base-nova/dialog.js.map +1 -1
  185. package/dist/base-nova/drawer.js.map +1 -1
  186. package/dist/base-nova/dropdown-menu.js.map +1 -1
  187. package/dist/base-nova/empty.js.map +1 -1
  188. package/dist/base-nova/field.js.map +1 -1
  189. package/dist/base-nova/hover-card.js.map +1 -1
  190. package/dist/base-nova/index.js +8 -6
  191. package/dist/base-nova/index.js.map +1 -1
  192. package/dist/base-nova/input-group.js.map +1 -1
  193. package/dist/base-nova/input-otp.js.map +1 -1
  194. package/dist/base-nova/input.js.map +1 -1
  195. package/dist/base-nova/item.js.map +1 -1
  196. package/dist/base-nova/kbd.js.map +1 -1
  197. package/dist/base-nova/label.js.map +1 -1
  198. package/dist/base-nova/menubar.js.map +1 -1
  199. package/dist/base-nova/native-select.js.map +1 -1
  200. package/dist/base-nova/navigation-menu.js.map +1 -1
  201. package/dist/base-nova/pagination.js.map +1 -1
  202. package/dist/base-nova/popover.js.map +1 -1
  203. package/dist/base-nova/progress.js.map +1 -1
  204. package/dist/base-nova/radio-group.js.map +1 -1
  205. package/dist/base-nova/resizable.js.map +1 -1
  206. package/dist/base-nova/scroll-area.js.map +1 -1
  207. package/dist/base-nova/select.js.map +1 -1
  208. package/dist/base-nova/separator.js.map +1 -1
  209. package/dist/base-nova/sheet.js.map +1 -1
  210. package/dist/base-nova/sidebar.js +8 -6
  211. package/dist/base-nova/sidebar.js.map +1 -1
  212. package/dist/base-nova/skeleton.js.map +1 -1
  213. package/dist/base-nova/slider.js.map +1 -1
  214. package/dist/base-nova/spinner.js.map +1 -1
  215. package/dist/base-nova/switch.js.map +1 -1
  216. package/dist/base-nova/table.js.map +1 -1
  217. package/dist/base-nova/tabs.js.map +1 -1
  218. package/dist/base-nova/textarea.js.map +1 -1
  219. package/dist/base-nova/toggle-group.js.map +1 -1
  220. package/dist/base-nova/toggle.js.map +1 -1
  221. package/dist/base-nova/tooltip.js.map +1 -1
  222. package/dist/base-vega/accordion.js.map +1 -1
  223. package/dist/base-vega/alert-dialog.js.map +1 -1
  224. package/dist/base-vega/alert.js.map +1 -1
  225. package/dist/base-vega/aspect-ratio.js.map +1 -1
  226. package/dist/base-vega/avatar.js.map +1 -1
  227. package/dist/base-vega/badge.js.map +1 -1
  228. package/dist/base-vega/breadcrumb.js.map +1 -1
  229. package/dist/base-vega/button-group.js.map +1 -1
  230. package/dist/base-vega/button.js.map +1 -1
  231. package/dist/base-vega/calendar.js.map +1 -1
  232. package/dist/base-vega/card.js.map +1 -1
  233. package/dist/base-vega/carousel.js.map +1 -1
  234. package/dist/base-vega/chart.js.map +1 -1
  235. package/dist/base-vega/checkbox.js.map +1 -1
  236. package/dist/base-vega/combobox.js.map +1 -1
  237. package/dist/base-vega/command.js.map +1 -1
  238. package/dist/base-vega/context-menu.js.map +1 -1
  239. package/dist/base-vega/dialog.js.map +1 -1
  240. package/dist/base-vega/drawer.js.map +1 -1
  241. package/dist/base-vega/dropdown-menu.js.map +1 -1
  242. package/dist/base-vega/empty.js.map +1 -1
  243. package/dist/base-vega/field.js.map +1 -1
  244. package/dist/base-vega/hover-card.js.map +1 -1
  245. package/dist/base-vega/index.js +8 -6
  246. package/dist/base-vega/index.js.map +1 -1
  247. package/dist/base-vega/input-group.js.map +1 -1
  248. package/dist/base-vega/input-otp.js.map +1 -1
  249. package/dist/base-vega/input.js.map +1 -1
  250. package/dist/base-vega/item.js.map +1 -1
  251. package/dist/base-vega/kbd.js.map +1 -1
  252. package/dist/base-vega/label.js.map +1 -1
  253. package/dist/base-vega/menubar.js.map +1 -1
  254. package/dist/base-vega/native-select.js.map +1 -1
  255. package/dist/base-vega/navigation-menu.js.map +1 -1
  256. package/dist/base-vega/pagination.js.map +1 -1
  257. package/dist/base-vega/popover.js.map +1 -1
  258. package/dist/base-vega/progress.js.map +1 -1
  259. package/dist/base-vega/radio-group.js.map +1 -1
  260. package/dist/base-vega/resizable.js.map +1 -1
  261. package/dist/base-vega/scroll-area.js.map +1 -1
  262. package/dist/base-vega/select.js.map +1 -1
  263. package/dist/base-vega/separator.js.map +1 -1
  264. package/dist/base-vega/sheet.js.map +1 -1
  265. package/dist/base-vega/sidebar.js +8 -6
  266. package/dist/base-vega/sidebar.js.map +1 -1
  267. package/dist/base-vega/skeleton.js.map +1 -1
  268. package/dist/base-vega/slider.js.map +1 -1
  269. package/dist/base-vega/spinner.js.map +1 -1
  270. package/dist/base-vega/switch.js.map +1 -1
  271. package/dist/base-vega/table.js.map +1 -1
  272. package/dist/base-vega/tabs.js.map +1 -1
  273. package/dist/base-vega/textarea.js.map +1 -1
  274. package/dist/base-vega/toggle-group.js.map +1 -1
  275. package/dist/base-vega/toggle.js.map +1 -1
  276. package/dist/base-vega/tooltip.js.map +1 -1
  277. package/dist/hooks/index.d.ts +7 -0
  278. package/dist/hooks/index.js +181 -10
  279. package/dist/hooks/index.js.map +1 -1
  280. package/dist/hooks/use-as-ref.d.ts +5 -0
  281. package/dist/hooks/use-as-ref.js +17 -0
  282. package/dist/hooks/use-as-ref.js.map +1 -0
  283. package/dist/hooks/use-badge-overflow.d.ts +24 -0
  284. package/dist/hooks/use-badge-overflow.js +130 -0
  285. package/dist/hooks/use-badge-overflow.js.map +1 -0
  286. package/dist/hooks/use-callback-ref.d.ts +10 -0
  287. package/dist/hooks/use-callback-ref.js +17 -0
  288. package/dist/hooks/use-callback-ref.js.map +1 -0
  289. package/dist/hooks/use-debounced-callback.d.ts +3 -0
  290. package/dist/hooks/use-debounced-callback.js +38 -0
  291. package/dist/hooks/use-debounced-callback.js.map +1 -0
  292. package/dist/hooks/use-file-upload.d.ts +48 -0
  293. package/dist/hooks/use-file-upload.js +279 -0
  294. package/dist/hooks/use-file-upload.js.map +1 -0
  295. package/dist/hooks/use-isomorphic-layout-effect.d.ts +5 -0
  296. package/dist/hooks/use-isomorphic-layout-effect.js +8 -0
  297. package/dist/hooks/use-isomorphic-layout-effect.js.map +1 -0
  298. package/dist/hooks/use-lazy-ref.d.ts +5 -0
  299. package/dist/hooks/use-lazy-ref.js +14 -0
  300. package/dist/hooks/use-lazy-ref.js.map +1 -0
  301. package/dist/hooks/use-mobile.d.ts +1 -1
  302. package/dist/hooks/use-mobile.js +8 -6
  303. package/dist/hooks/use-mobile.js.map +1 -1
  304. package/dist/index.d.ts +1622 -106
  305. package/dist/index.js +23260 -2932
  306. package/dist/index.js.map +1 -1
  307. package/dist/lib/compose-refs.d.ts +15 -0
  308. package/dist/lib/compose-refs.js +42 -0
  309. package/dist/lib/compose-refs.js.map +1 -0
  310. package/dist/lib/format.d.ts +3 -0
  311. package/dist/lib/format.js +18 -0
  312. package/dist/lib/format.js.map +1 -0
  313. package/dist/lib/index.d.ts +3 -0
  314. package/dist/lib/index.js +53 -2
  315. package/dist/lib/index.js.map +1 -1
  316. package/dist/lib/utils.d.ts +6 -0
  317. package/dist/lib/utils.js.map +1 -1
  318. package/dist/new-york/accordion.js.map +1 -1
  319. package/dist/new-york/alert-dialog.js.map +1 -1
  320. package/dist/new-york/alert.js.map +1 -1
  321. package/dist/new-york/avatar.js.map +1 -1
  322. package/dist/new-york/badge.js.map +1 -1
  323. package/dist/new-york/breadcrumb.js.map +1 -1
  324. package/dist/new-york/button-group.js.map +1 -1
  325. package/dist/new-york/button.js.map +1 -1
  326. package/dist/new-york/calendar.js.map +1 -1
  327. package/dist/new-york/card.js.map +1 -1
  328. package/dist/new-york/carousel.js.map +1 -1
  329. package/dist/new-york/chart.js.map +1 -1
  330. package/dist/new-york/checkbox.js.map +1 -1
  331. package/dist/new-york/combobox.js.map +1 -1
  332. package/dist/new-york/command.js.map +1 -1
  333. package/dist/new-york/context-menu.js.map +1 -1
  334. package/dist/new-york/dialog.js.map +1 -1
  335. package/dist/new-york/drawer.js.map +1 -1
  336. package/dist/new-york/dropdown-menu.js.map +1 -1
  337. package/dist/new-york/empty.js.map +1 -1
  338. package/dist/new-york/field.js.map +1 -1
  339. package/dist/new-york/form.js.map +1 -1
  340. package/dist/new-york/hover-card.js.map +1 -1
  341. package/dist/new-york/index.js +8 -6
  342. package/dist/new-york/index.js.map +1 -1
  343. package/dist/new-york/input-group.js.map +1 -1
  344. package/dist/new-york/input-otp.js.map +1 -1
  345. package/dist/new-york/input.js.map +1 -1
  346. package/dist/new-york/item.js.map +1 -1
  347. package/dist/new-york/kbd.js.map +1 -1
  348. package/dist/new-york/label.js.map +1 -1
  349. package/dist/new-york/menubar.js.map +1 -1
  350. package/dist/new-york/native-select.js.map +1 -1
  351. package/dist/new-york/navigation-menu.js.map +1 -1
  352. package/dist/new-york/pagination.js.map +1 -1
  353. package/dist/new-york/popover.js.map +1 -1
  354. package/dist/new-york/progress.js.map +1 -1
  355. package/dist/new-york/radio-group.js.map +1 -1
  356. package/dist/new-york/resizable.js.map +1 -1
  357. package/dist/new-york/scroll-area.js.map +1 -1
  358. package/dist/new-york/select.js.map +1 -1
  359. package/dist/new-york/separator.js.map +1 -1
  360. package/dist/new-york/sheet.js.map +1 -1
  361. package/dist/new-york/sidebar.js +8 -6
  362. package/dist/new-york/sidebar.js.map +1 -1
  363. package/dist/new-york/skeleton.js.map +1 -1
  364. package/dist/new-york/slider.js.map +1 -1
  365. package/dist/new-york/spinner.js.map +1 -1
  366. package/dist/new-york/switch.js.map +1 -1
  367. package/dist/new-york/table.js.map +1 -1
  368. package/dist/new-york/tabs.js.map +1 -1
  369. package/dist/new-york/textarea.js.map +1 -1
  370. package/dist/new-york/toggle-group.js.map +1 -1
  371. package/dist/new-york/toggle.js.map +1 -1
  372. package/dist/new-york/tooltip.js.map +1 -1
  373. package/dist/radix-lyra/accordion.js.map +1 -1
  374. package/dist/radix-lyra/alert-dialog.js.map +1 -1
  375. package/dist/radix-lyra/alert.js.map +1 -1
  376. package/dist/radix-lyra/avatar.js.map +1 -1
  377. package/dist/radix-lyra/badge.js.map +1 -1
  378. package/dist/radix-lyra/breadcrumb.js.map +1 -1
  379. package/dist/radix-lyra/button-group.js.map +1 -1
  380. package/dist/radix-lyra/button.js.map +1 -1
  381. package/dist/radix-lyra/calendar.js.map +1 -1
  382. package/dist/radix-lyra/card.js.map +1 -1
  383. package/dist/radix-lyra/carousel.js.map +1 -1
  384. package/dist/radix-lyra/chart.js.map +1 -1
  385. package/dist/radix-lyra/checkbox.js.map +1 -1
  386. package/dist/radix-lyra/combobox.js.map +1 -1
  387. package/dist/radix-lyra/command.js.map +1 -1
  388. package/dist/radix-lyra/context-menu.js.map +1 -1
  389. package/dist/radix-lyra/dialog.js.map +1 -1
  390. package/dist/radix-lyra/drawer.js.map +1 -1
  391. package/dist/radix-lyra/dropdown-menu.js.map +1 -1
  392. package/dist/radix-lyra/empty.js.map +1 -1
  393. package/dist/radix-lyra/field.js.map +1 -1
  394. package/dist/radix-lyra/hover-card.js.map +1 -1
  395. package/dist/radix-lyra/index.js +8 -6
  396. package/dist/radix-lyra/index.js.map +1 -1
  397. package/dist/radix-lyra/input-group.js.map +1 -1
  398. package/dist/radix-lyra/input-otp.js.map +1 -1
  399. package/dist/radix-lyra/input.js.map +1 -1
  400. package/dist/radix-lyra/item.js.map +1 -1
  401. package/dist/radix-lyra/kbd.js.map +1 -1
  402. package/dist/radix-lyra/label.js.map +1 -1
  403. package/dist/radix-lyra/menubar.js.map +1 -1
  404. package/dist/radix-lyra/native-select.js.map +1 -1
  405. package/dist/radix-lyra/navigation-menu.js.map +1 -1
  406. package/dist/radix-lyra/pagination.js.map +1 -1
  407. package/dist/radix-lyra/popover.js.map +1 -1
  408. package/dist/radix-lyra/progress.js.map +1 -1
  409. package/dist/radix-lyra/radio-group.js.map +1 -1
  410. package/dist/radix-lyra/resizable.js.map +1 -1
  411. package/dist/radix-lyra/scroll-area.js.map +1 -1
  412. package/dist/radix-lyra/select.js.map +1 -1
  413. package/dist/radix-lyra/separator.js.map +1 -1
  414. package/dist/radix-lyra/sheet.js.map +1 -1
  415. package/dist/radix-lyra/sidebar.js +8 -6
  416. package/dist/radix-lyra/sidebar.js.map +1 -1
  417. package/dist/radix-lyra/skeleton.js.map +1 -1
  418. package/dist/radix-lyra/slider.js.map +1 -1
  419. package/dist/radix-lyra/spinner.js.map +1 -1
  420. package/dist/radix-lyra/switch.js.map +1 -1
  421. package/dist/radix-lyra/table.js.map +1 -1
  422. package/dist/radix-lyra/tabs.js.map +1 -1
  423. package/dist/radix-lyra/textarea.js.map +1 -1
  424. package/dist/radix-lyra/toggle-group.js.map +1 -1
  425. package/dist/radix-lyra/toggle.js.map +1 -1
  426. package/dist/radix-lyra/tooltip.js.map +1 -1
  427. package/dist/radix-maia/accordion.js.map +1 -1
  428. package/dist/radix-maia/alert-dialog.js.map +1 -1
  429. package/dist/radix-maia/alert.js.map +1 -1
  430. package/dist/radix-maia/avatar.js.map +1 -1
  431. package/dist/radix-maia/badge.js.map +1 -1
  432. package/dist/radix-maia/breadcrumb.js.map +1 -1
  433. package/dist/radix-maia/button-group.js.map +1 -1
  434. package/dist/radix-maia/button.js.map +1 -1
  435. package/dist/radix-maia/calendar.js.map +1 -1
  436. package/dist/radix-maia/card.js.map +1 -1
  437. package/dist/radix-maia/carousel.js.map +1 -1
  438. package/dist/radix-maia/chart.js.map +1 -1
  439. package/dist/radix-maia/checkbox.js.map +1 -1
  440. package/dist/radix-maia/combobox.js.map +1 -1
  441. package/dist/radix-maia/command.js.map +1 -1
  442. package/dist/radix-maia/context-menu.js.map +1 -1
  443. package/dist/radix-maia/dialog.js.map +1 -1
  444. package/dist/radix-maia/drawer.js.map +1 -1
  445. package/dist/radix-maia/dropdown-menu.js.map +1 -1
  446. package/dist/radix-maia/empty.js.map +1 -1
  447. package/dist/radix-maia/field.js.map +1 -1
  448. package/dist/radix-maia/hover-card.js.map +1 -1
  449. package/dist/radix-maia/index.js +8 -6
  450. package/dist/radix-maia/index.js.map +1 -1
  451. package/dist/radix-maia/input-group.js.map +1 -1
  452. package/dist/radix-maia/input-otp.js.map +1 -1
  453. package/dist/radix-maia/input.js.map +1 -1
  454. package/dist/radix-maia/item.js.map +1 -1
  455. package/dist/radix-maia/kbd.js.map +1 -1
  456. package/dist/radix-maia/label.js.map +1 -1
  457. package/dist/radix-maia/menubar.js.map +1 -1
  458. package/dist/radix-maia/native-select.js.map +1 -1
  459. package/dist/radix-maia/navigation-menu.js.map +1 -1
  460. package/dist/radix-maia/pagination.js.map +1 -1
  461. package/dist/radix-maia/popover.js.map +1 -1
  462. package/dist/radix-maia/progress.js.map +1 -1
  463. package/dist/radix-maia/radio-group.js.map +1 -1
  464. package/dist/radix-maia/resizable.js.map +1 -1
  465. package/dist/radix-maia/scroll-area.js.map +1 -1
  466. package/dist/radix-maia/select.js.map +1 -1
  467. package/dist/radix-maia/separator.js.map +1 -1
  468. package/dist/radix-maia/sheet.js.map +1 -1
  469. package/dist/radix-maia/sidebar.js +8 -6
  470. package/dist/radix-maia/sidebar.js.map +1 -1
  471. package/dist/radix-maia/skeleton.js.map +1 -1
  472. package/dist/radix-maia/slider.js.map +1 -1
  473. package/dist/radix-maia/spinner.js.map +1 -1
  474. package/dist/radix-maia/switch.js.map +1 -1
  475. package/dist/radix-maia/table.js.map +1 -1
  476. package/dist/radix-maia/tabs.js.map +1 -1
  477. package/dist/radix-maia/textarea.js.map +1 -1
  478. package/dist/radix-maia/toggle-group.js.map +1 -1
  479. package/dist/radix-maia/toggle.js.map +1 -1
  480. package/dist/radix-maia/tooltip.js.map +1 -1
  481. package/dist/radix-mira/accordion.js.map +1 -1
  482. package/dist/radix-mira/alert-dialog.js.map +1 -1
  483. package/dist/radix-mira/alert.js.map +1 -1
  484. package/dist/radix-mira/avatar.js.map +1 -1
  485. package/dist/radix-mira/badge.js.map +1 -1
  486. package/dist/radix-mira/breadcrumb.js.map +1 -1
  487. package/dist/radix-mira/button-group.js.map +1 -1
  488. package/dist/radix-mira/button.js.map +1 -1
  489. package/dist/radix-mira/calendar.js.map +1 -1
  490. package/dist/radix-mira/card.js.map +1 -1
  491. package/dist/radix-mira/carousel.js.map +1 -1
  492. package/dist/radix-mira/chart.js.map +1 -1
  493. package/dist/radix-mira/checkbox.js.map +1 -1
  494. package/dist/radix-mira/combobox.js.map +1 -1
  495. package/dist/radix-mira/command.js.map +1 -1
  496. package/dist/radix-mira/context-menu.js.map +1 -1
  497. package/dist/radix-mira/dialog.js.map +1 -1
  498. package/dist/radix-mira/drawer.js.map +1 -1
  499. package/dist/radix-mira/dropdown-menu.js.map +1 -1
  500. package/dist/radix-mira/empty.js.map +1 -1
  501. package/dist/radix-mira/field.js.map +1 -1
  502. package/dist/radix-mira/hover-card.js.map +1 -1
  503. package/dist/radix-mira/index.js +8 -6
  504. package/dist/radix-mira/index.js.map +1 -1
  505. package/dist/radix-mira/input-group.js.map +1 -1
  506. package/dist/radix-mira/input-otp.js.map +1 -1
  507. package/dist/radix-mira/input.js.map +1 -1
  508. package/dist/radix-mira/item.js.map +1 -1
  509. package/dist/radix-mira/kbd.js.map +1 -1
  510. package/dist/radix-mira/label.js.map +1 -1
  511. package/dist/radix-mira/menubar.js.map +1 -1
  512. package/dist/radix-mira/native-select.js.map +1 -1
  513. package/dist/radix-mira/navigation-menu.js.map +1 -1
  514. package/dist/radix-mira/pagination.js.map +1 -1
  515. package/dist/radix-mira/popover.js.map +1 -1
  516. package/dist/radix-mira/progress.js.map +1 -1
  517. package/dist/radix-mira/radio-group.js.map +1 -1
  518. package/dist/radix-mira/resizable.js.map +1 -1
  519. package/dist/radix-mira/scroll-area.js.map +1 -1
  520. package/dist/radix-mira/select.js.map +1 -1
  521. package/dist/radix-mira/separator.js.map +1 -1
  522. package/dist/radix-mira/sheet.js.map +1 -1
  523. package/dist/radix-mira/sidebar.js +8 -6
  524. package/dist/radix-mira/sidebar.js.map +1 -1
  525. package/dist/radix-mira/skeleton.js.map +1 -1
  526. package/dist/radix-mira/slider.js.map +1 -1
  527. package/dist/radix-mira/spinner.js.map +1 -1
  528. package/dist/radix-mira/switch.js.map +1 -1
  529. package/dist/radix-mira/table.js.map +1 -1
  530. package/dist/radix-mira/tabs.js.map +1 -1
  531. package/dist/radix-mira/textarea.js.map +1 -1
  532. package/dist/radix-mira/toggle-group.js.map +1 -1
  533. package/dist/radix-mira/toggle.js.map +1 -1
  534. package/dist/radix-mira/tooltip.js.map +1 -1
  535. package/dist/radix-nova/accordion.js.map +1 -1
  536. package/dist/radix-nova/alert-dialog.js.map +1 -1
  537. package/dist/radix-nova/alert.js.map +1 -1
  538. package/dist/radix-nova/avatar.js.map +1 -1
  539. package/dist/radix-nova/badge.js.map +1 -1
  540. package/dist/radix-nova/breadcrumb.js.map +1 -1
  541. package/dist/radix-nova/button-group.js.map +1 -1
  542. package/dist/radix-nova/button.js.map +1 -1
  543. package/dist/radix-nova/calendar.js.map +1 -1
  544. package/dist/radix-nova/card.js.map +1 -1
  545. package/dist/radix-nova/carousel.js.map +1 -1
  546. package/dist/radix-nova/chart.js.map +1 -1
  547. package/dist/radix-nova/checkbox.js.map +1 -1
  548. package/dist/radix-nova/combobox.js.map +1 -1
  549. package/dist/radix-nova/command.js.map +1 -1
  550. package/dist/radix-nova/context-menu.js.map +1 -1
  551. package/dist/radix-nova/dialog.js.map +1 -1
  552. package/dist/radix-nova/drawer.js.map +1 -1
  553. package/dist/radix-nova/dropdown-menu.js.map +1 -1
  554. package/dist/radix-nova/empty.js.map +1 -1
  555. package/dist/radix-nova/field.js.map +1 -1
  556. package/dist/radix-nova/hover-card.js.map +1 -1
  557. package/dist/radix-nova/index.js +8 -6
  558. package/dist/radix-nova/index.js.map +1 -1
  559. package/dist/radix-nova/input-group.js.map +1 -1
  560. package/dist/radix-nova/input-otp.js.map +1 -1
  561. package/dist/radix-nova/input.js.map +1 -1
  562. package/dist/radix-nova/item.js.map +1 -1
  563. package/dist/radix-nova/kbd.js.map +1 -1
  564. package/dist/radix-nova/label.js.map +1 -1
  565. package/dist/radix-nova/menubar.js.map +1 -1
  566. package/dist/radix-nova/native-select.js.map +1 -1
  567. package/dist/radix-nova/navigation-menu.js.map +1 -1
  568. package/dist/radix-nova/pagination.js.map +1 -1
  569. package/dist/radix-nova/popover.js.map +1 -1
  570. package/dist/radix-nova/progress.js.map +1 -1
  571. package/dist/radix-nova/radio-group.js.map +1 -1
  572. package/dist/radix-nova/resizable.js.map +1 -1
  573. package/dist/radix-nova/scroll-area.js.map +1 -1
  574. package/dist/radix-nova/select.js.map +1 -1
  575. package/dist/radix-nova/separator.js.map +1 -1
  576. package/dist/radix-nova/sheet.js.map +1 -1
  577. package/dist/radix-nova/sidebar.js +8 -6
  578. package/dist/radix-nova/sidebar.js.map +1 -1
  579. package/dist/radix-nova/skeleton.js.map +1 -1
  580. package/dist/radix-nova/slider.js.map +1 -1
  581. package/dist/radix-nova/spinner.js.map +1 -1
  582. package/dist/radix-nova/switch.js.map +1 -1
  583. package/dist/radix-nova/table.js.map +1 -1
  584. package/dist/radix-nova/tabs.js.map +1 -1
  585. package/dist/radix-nova/textarea.js.map +1 -1
  586. package/dist/radix-nova/toggle-group.js.map +1 -1
  587. package/dist/radix-nova/toggle.js.map +1 -1
  588. package/dist/radix-nova/tooltip.js.map +1 -1
  589. package/dist/radix-vega/accordion.js.map +1 -1
  590. package/dist/radix-vega/action-bar.d.ts +41 -0
  591. package/dist/radix-vega/action-bar.js +589 -0
  592. package/dist/radix-vega/action-bar.js.map +1 -0
  593. package/dist/radix-vega/alert-dialog.js.map +1 -1
  594. package/dist/radix-vega/alert.js.map +1 -1
  595. package/dist/radix-vega/avatar-group.d.ts +19 -0
  596. package/dist/radix-vega/avatar-group.js +193 -0
  597. package/dist/radix-vega/avatar-group.js.map +1 -0
  598. package/dist/radix-vega/avatar.d.ts +1 -3
  599. package/dist/radix-vega/avatar.js +1 -27
  600. package/dist/radix-vega/avatar.js.map +1 -1
  601. package/dist/radix-vega/badge-overflow.d.ts +21 -0
  602. package/dist/radix-vega/badge-overflow.js +223 -0
  603. package/dist/radix-vega/badge-overflow.js.map +1 -0
  604. package/dist/radix-vega/badge.d.ts +1 -1
  605. package/dist/radix-vega/badge.js.map +1 -1
  606. package/dist/radix-vega/breadcrumb.js.map +1 -1
  607. package/dist/radix-vega/button-group.js.map +1 -1
  608. package/dist/radix-vega/button.d.ts +2 -2
  609. package/dist/radix-vega/button.js.map +1 -1
  610. package/dist/radix-vega/calendar.js.map +1 -1
  611. package/dist/radix-vega/card.js.map +1 -1
  612. package/dist/radix-vega/carousel.js.map +1 -1
  613. package/dist/radix-vega/chart.js.map +1 -1
  614. package/dist/radix-vega/checkbox-group.d.ts +12 -0
  615. package/dist/radix-vega/checkbox-group.js +119 -0
  616. package/dist/radix-vega/checkbox-group.js.map +1 -0
  617. package/dist/radix-vega/checkbox.js.map +1 -1
  618. package/dist/radix-vega/circular-progress.d.ts +27 -0
  619. package/dist/radix-vega/circular-progress.js +252 -0
  620. package/dist/radix-vega/circular-progress.js.map +1 -0
  621. package/dist/radix-vega/color-picker.d.ts +85 -0
  622. package/dist/radix-vega/color-picker.js +1683 -0
  623. package/dist/radix-vega/color-picker.js.map +1 -0
  624. package/dist/radix-vega/color-swatch.d.ts +17 -0
  625. package/dist/radix-vega/color-swatch.js +95 -0
  626. package/dist/radix-vega/color-swatch.js.map +1 -0
  627. package/dist/radix-vega/combobox.d.ts +18 -22
  628. package/dist/radix-vega/combobox.js +118 -276
  629. package/dist/radix-vega/combobox.js.map +1 -1
  630. package/dist/radix-vega/command.js.map +1 -1
  631. package/dist/radix-vega/compare-slider.d.ts +32 -0
  632. package/dist/radix-vega/compare-slider.js +393 -0
  633. package/dist/radix-vega/compare-slider.js.map +1 -0
  634. package/dist/radix-vega/context-menu.js.map +1 -1
  635. package/dist/radix-vega/cropper.d.ts +89 -0
  636. package/dist/radix-vega/cropper.js +1396 -0
  637. package/dist/radix-vega/cropper.js.map +1 -0
  638. package/dist/radix-vega/dialog.js.map +1 -1
  639. package/dist/radix-vega/drawer.js.map +1 -1
  640. package/dist/radix-vega/dropdown-menu.js.map +1 -1
  641. package/dist/radix-vega/editable.d.ts +100 -0
  642. package/dist/radix-vega/editable.js +684 -0
  643. package/dist/radix-vega/editable.js.map +1 -0
  644. package/dist/radix-vega/empty.js.map +1 -1
  645. package/dist/radix-vega/field.js.map +1 -1
  646. package/dist/radix-vega/file-upload.d.ts +89 -0
  647. package/dist/radix-vega/file-upload.js +1089 -0
  648. package/dist/radix-vega/file-upload.js.map +1 -0
  649. package/dist/radix-vega/gauge.d.ts +27 -0
  650. package/dist/radix-vega/gauge.js +359 -0
  651. package/dist/radix-vega/gauge.js.map +1 -0
  652. package/dist/radix-vega/hover-card.js.map +1 -1
  653. package/dist/radix-vega/index.d.ts +50 -3
  654. package/dist/radix-vega/index.js +23001 -2667
  655. package/dist/radix-vega/index.js.map +1 -1
  656. package/dist/radix-vega/input-group.d.ts +1 -1
  657. package/dist/radix-vega/input-group.js.map +1 -1
  658. package/dist/radix-vega/input-otp.js.map +1 -1
  659. package/dist/radix-vega/input.js.map +1 -1
  660. package/dist/radix-vega/item.d.ts +2 -2
  661. package/dist/radix-vega/item.js.map +1 -1
  662. package/dist/radix-vega/kanban.d.ts +62 -0
  663. package/dist/radix-vega/kanban.js +831 -0
  664. package/dist/radix-vega/kanban.js.map +1 -0
  665. package/dist/radix-vega/kbd.js.map +1 -1
  666. package/dist/radix-vega/key-value.d.ts +82 -0
  667. package/dist/radix-vega/key-value.js +765 -0
  668. package/dist/radix-vega/key-value.js.map +1 -0
  669. package/dist/radix-vega/label.js.map +1 -1
  670. package/dist/radix-vega/listbox.d.ts +11 -0
  671. package/dist/radix-vega/listbox.js +90 -0
  672. package/dist/radix-vega/listbox.js.map +1 -0
  673. package/dist/radix-vega/mask-input.d.ts +64 -0
  674. package/dist/radix-vega/mask-input.js +1186 -0
  675. package/dist/radix-vega/mask-input.js.map +1 -0
  676. package/dist/radix-vega/media-player.d.ts +127 -0
  677. package/dist/radix-vega/media-player.js +2696 -0
  678. package/dist/radix-vega/media-player.js.map +1 -0
  679. package/dist/radix-vega/mention.d.ts +11 -0
  680. package/dist/radix-vega/mention.js +94 -0
  681. package/dist/radix-vega/mention.js.map +1 -0
  682. package/dist/radix-vega/menubar.js.map +1 -1
  683. package/dist/radix-vega/native-select.js.map +1 -1
  684. package/dist/radix-vega/navigation-menu.js.map +1 -1
  685. package/dist/radix-vega/pagination.js.map +1 -1
  686. package/dist/radix-vega/phone-input.d.ts +48 -0
  687. package/dist/radix-vega/phone-input.js +957 -0
  688. package/dist/radix-vega/phone-input.js.map +1 -0
  689. package/dist/radix-vega/popover.js.map +1 -1
  690. package/dist/radix-vega/progress.js.map +1 -1
  691. package/dist/radix-vega/qr-code.d.ts +53 -0
  692. package/dist/radix-vega/qr-code.js +396 -0
  693. package/dist/radix-vega/qr-code.js.map +1 -0
  694. package/dist/radix-vega/radio-group.js.map +1 -1
  695. package/dist/radix-vega/rating.d.ts +47 -0
  696. package/dist/radix-vega/rating.js +749 -0
  697. package/dist/radix-vega/rating.js.map +1 -0
  698. package/dist/radix-vega/relative-time-card.d.ts +22 -0
  699. package/dist/radix-vega/relative-time-card.js +236 -0
  700. package/dist/radix-vega/relative-time-card.js.map +1 -0
  701. package/dist/radix-vega/resizable.js.map +1 -1
  702. package/dist/radix-vega/responsive-dialog.d.ts +20 -0
  703. package/dist/radix-vega/responsive-dialog.js +483 -0
  704. package/dist/radix-vega/responsive-dialog.js.map +1 -0
  705. package/dist/radix-vega/scroll-area.js.map +1 -1
  706. package/dist/radix-vega/scroll-spy.d.ts +39 -0
  707. package/dist/radix-vega/scroll-spy.js +372 -0
  708. package/dist/radix-vega/scroll-spy.js.map +1 -0
  709. package/dist/radix-vega/scroller.d.ts +20 -0
  710. package/dist/radix-vega/scroller.js +352 -0
  711. package/dist/radix-vega/scroller.js.map +1 -0
  712. package/dist/radix-vega/segmented-input.d.ts +29 -0
  713. package/dist/radix-vega/segmented-input.js +178 -0
  714. package/dist/radix-vega/segmented-input.js.map +1 -0
  715. package/dist/radix-vega/select.js.map +1 -1
  716. package/dist/radix-vega/separator.js.map +1 -1
  717. package/dist/radix-vega/sheet.js.map +1 -1
  718. package/dist/radix-vega/sidebar.js +8 -6
  719. package/dist/radix-vega/sidebar.js.map +1 -1
  720. package/dist/radix-vega/skeleton.js.map +1 -1
  721. package/dist/radix-vega/slider.js.map +1 -1
  722. package/dist/radix-vega/sortable.d.ts +51 -0
  723. package/dist/radix-vega/sortable.js +444 -0
  724. package/dist/radix-vega/sortable.js.map +1 -0
  725. package/dist/radix-vega/speed-dial.d.ts +46 -0
  726. package/dist/radix-vega/speed-dial.js +898 -0
  727. package/dist/radix-vega/speed-dial.js.map +1 -0
  728. package/dist/radix-vega/spinner.js.map +1 -1
  729. package/dist/radix-vega/stack.d.ts +21 -0
  730. package/dist/radix-vega/stack.js +268 -0
  731. package/dist/radix-vega/stack.js.map +1 -0
  732. package/dist/radix-vega/stat.d.ts +24 -0
  733. package/dist/radix-vega/stat.js +147 -0
  734. package/dist/radix-vega/stat.js.map +1 -0
  735. package/dist/radix-vega/status.d.ts +18 -0
  736. package/dist/radix-vega/status.js +71 -0
  737. package/dist/radix-vega/status.js.map +1 -0
  738. package/dist/radix-vega/stepper.d.ts +73 -0
  739. package/dist/radix-vega/stepper.js +973 -0
  740. package/dist/radix-vega/stepper.js.map +1 -0
  741. package/dist/radix-vega/swap.d.ts +29 -0
  742. package/dist/radix-vega/swap.js +214 -0
  743. package/dist/radix-vega/swap.js.map +1 -0
  744. package/dist/radix-vega/switch.js.map +1 -1
  745. package/dist/radix-vega/table.js.map +1 -1
  746. package/dist/radix-vega/tabs.d.ts +1 -1
  747. package/dist/radix-vega/tabs.js.map +1 -1
  748. package/dist/radix-vega/tags-input.d.ts +12 -0
  749. package/dist/radix-vega/tags-input.js +98 -0
  750. package/dist/radix-vega/tags-input.js.map +1 -0
  751. package/dist/radix-vega/textarea.js.map +1 -1
  752. package/dist/radix-vega/time-picker.d.ts +88 -0
  753. package/dist/radix-vega/time-picker.js +1750 -0
  754. package/dist/radix-vega/time-picker.js.map +1 -0
  755. package/dist/radix-vega/timeline.d.ts +32 -0
  756. package/dist/radix-vega/timeline.js +611 -0
  757. package/dist/radix-vega/timeline.js.map +1 -0
  758. package/dist/radix-vega/toggle-group.js.map +1 -1
  759. package/dist/radix-vega/toggle.js.map +1 -1
  760. package/dist/radix-vega/tooltip.js.map +1 -1
  761. package/dist/radix-vega/tour.d.ts +109 -0
  762. package/dist/radix-vega/tour.js +1314 -0
  763. package/dist/radix-vega/tour.js.map +1 -0
  764. package/dist/radix-vega/visually-hidden-input.d.ts +8 -0
  765. package/dist/radix-vega/visually-hidden-input.js +33 -0
  766. package/dist/radix-vega/visually-hidden-input.js.map +1 -0
  767. package/package.json +53 -14
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/lib/utils.ts","../../src/radix-vega/button.tsx","../../src/radix-vega/dialog.tsx","../../src/radix-vega/input-group.tsx","../../src/radix-vega/command.tsx"],"names":["jsx","DialogPrimitive","cva","CommandPrimitive","jsxs"],"mappings":"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","file":"command.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 rounded-md border border-transparent bg-clip-padding text-sm font-medium focus-visible:ring-3 aria-invalid:ring-3 [&_svg:not([class*='size-'])]:size-4 inline-flex items-center justify-center whitespace-nowrap transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none shrink-0 [&_svg]:shrink-0 outline-none group/button select-none\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/80\",\n outline: \"border-border bg-background hover:bg-muted hover:text-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 aria-expanded:bg-muted aria-expanded:text-foreground shadow-xs\",\n secondary: \"bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground\",\n ghost: \"hover:bg-muted hover:text-foreground dark:hover:bg-muted/50 aria-expanded:bg-muted aria-expanded:text-foreground\",\n destructive: \"bg-destructive/10 hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/20 text-destructive focus-visible:border-destructive/40 dark:hover:bg-destructive/30\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 gap-1.5 px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n xs: \"h-6 gap-1 rounded-[min(var(--radius-md),8px)] px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-8 gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5\",\n lg: \"h-10 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3\",\n icon: \"size-9\",\n \"icon-xs\": \"size-6 rounded-[min(var(--radius-md),8px)] in-data-[slot=button-group]:rounded-md [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\": \"size-8 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-md\",\n \"icon-lg\": \"size-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? Slot.Root : \"button\"\n\n return (\n <Comp\n data-slot=\"button\"\n data-variant={variant}\n data-size={size}\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Dialog as DialogPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/radix-vega/button\"\nimport { XIcon } from \"lucide-react\"\n\nfunction Dialog({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />\n}\n\nfunction DialogTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nfunction DialogPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\nfunction DialogClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\"data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs fixed inset-0 isolate z-50\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean\n}) {\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n \"bg-background data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 ring-foreground/10 grid max-w-[calc(100%-2rem)] gap-6 rounded-xl p-6 text-sm ring-1 duration-100 sm:max-w-md fixed top-1/2 left-1/2 z-50 w-full -translate-x-1/2 -translate-y-1/2 outline-none\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close data-slot=\"dialog-close\" asChild>\n <Button variant=\"ghost\" className=\"absolute top-4 right-4\" size=\"icon-sm\">\n <XIcon\n />\n <span className=\"sr-only\">Close</span>\n </Button>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n )\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\"gap-2 flex flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogFooter({\n className,\n showCloseButton = false,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n showCloseButton?: boolean\n}) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close asChild>\n <Button variant=\"outline\">Close</Button>\n </DialogPrimitive.Close>\n )}\n </div>\n )\n}\n\nfunction DialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\"leading-none font-medium\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\"text-muted-foreground *:[a]:hover:text-foreground text-sm *:[a]:underline *:[a]:underline-offset-3\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n}\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/radix-vega/button\"\nimport { Input } from \"@/radix-vega/input\"\nimport { Textarea } from \"@/radix-vega/textarea\"\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"border-input dark:bg-input/30 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 h-9 rounded-md border shadow-xs transition-[color,box-shadow] in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-3 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5 group/input-group relative flex w-full min-w-0 items-center outline-none has-[>textarea]:h-auto\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst inputGroupAddonVariants = cva(\n \"text-muted-foreground h-auto gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4 flex cursor-text items-center justify-center select-none\",\n {\n variants: {\n align: {\n \"inline-start\": \"pl-2 has-[>button]:-ml-1 has-[>kbd]:ml-[-0.15rem] order-first\",\n \"inline-end\": \"pr-2 has-[>button]:-mr-1 has-[>kbd]:mr-[-0.15rem] order-last\",\n \"block-start\":\n \"px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2 order-first w-full justify-start\",\n \"block-end\":\n \"px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2 order-last w-full justify-start\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n }\n)\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus()\n }}\n {...props}\n />\n )\n}\n\nconst inputGroupButtonVariants = cva(\n \"gap-2 text-sm shadow-none flex items-center\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: \"\",\n \"icon-xs\": \"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n }\n)\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\"> &\n VariantProps<typeof inputGroupButtonVariants>) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n )\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"text-muted-foreground gap-2 text-sm [&_svg:not([class*='size-'])]:size-4 flex items-center [&_svg]:pointer-events-none\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupInput({\n className,\n ...props\n}: React.ComponentProps<\"input\">) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\"rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent flex-1\", className)}\n {...props}\n />\n )\n}\n\nfunction InputGroupTextarea({\n className,\n ...props\n}: React.ComponentProps<\"textarea\">) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\"rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent flex-1 resize-none\", className)}\n {...props}\n />\n )\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n}\n","import * as React from \"react\"\nimport { Command as CommandPrimitive } from \"cmdk\"\n\nimport { cn } from \"@/lib/utils\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from \"@/radix-vega/dialog\"\nimport {\n InputGroup,\n InputGroupAddon,\n} from \"@/radix-vega/input-group\"\nimport { SearchIcon, CheckIcon } from \"lucide-react\"\n\nfunction Command({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n data-slot=\"command\"\n className={cn(\n \"bg-popover text-popover-foreground rounded-xl! p-1 flex size-full flex-col overflow-hidden\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CommandDialog({\n title = \"Command Palette\",\n description = \"Search for a command to run...\",\n children,\n className,\n showCloseButton = false,\n ...props\n}: React.ComponentProps<typeof Dialog> & {\n title?: string\n description?: string\n className?: string\n showCloseButton?: boolean\n}) {\n return (\n <Dialog {...props}>\n <DialogHeader className=\"sr-only\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent\n className={cn(\n \"rounded-xl! top-1/3 translate-y-0 overflow-hidden p-0\",\n className\n )}\n showCloseButton={showCloseButton}\n >\n {children}\n </DialogContent>\n </Dialog>\n )\n}\n\nfunction CommandInput({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Input>) {\n return (\n <div data-slot=\"command-input-wrapper\" className=\"p-1 pb-0\">\n <InputGroup className=\"bg-input/30 border-input/30 h-8! rounded-lg! shadow-none! *:data-[slot=input-group-addon]:pl-2!\">\n <CommandPrimitive.Input\n data-slot=\"command-input\"\n className={cn(\n \"w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n />\n <InputGroupAddon>\n <SearchIcon className=\"size-4 shrink-0 opacity-50\" />\n </InputGroupAddon>\n </InputGroup>\n </div>\n )\n}\n\nfunction CommandList({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n data-slot=\"command-list\"\n className={cn(\n \"no-scrollbar max-h-72 scroll-py-1 outline-none overflow-x-hidden overflow-y-auto\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CommandEmpty({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Empty>) {\n return (\n <CommandPrimitive.Empty\n data-slot=\"command-empty\"\n className={cn(\"py-6 text-center text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction CommandGroup({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\n data-slot=\"command-group\"\n className={cn(\"text-foreground **:[[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium\", className)}\n {...props}\n />\n )\n}\n\nfunction CommandSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n data-slot=\"command-separator\"\n className={cn(\"bg-border -mx-1 h-px w-auto\", className)}\n {...props}\n />\n )\n}\n\nfunction CommandItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n data-slot=\"command-item\"\n className={cn(\n \"data-selected:bg-muted data-selected:text-foreground data-selected:**:[svg]:text-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none in-data-[slot=dialog-content]:rounded-lg! [&_svg:not([class*='size-'])]:size-4 group/command-item data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className\n )}\n {...props}\n >\n {children}\n <CheckIcon className=\"ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100\" />\n </CommandPrimitive.Item>\n )\n}\n\nfunction CommandShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn(\"text-muted-foreground group-data-selected/command-item:text-foreground ml-auto text-xs tracking-widest\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n}\n"]}
1
+ {"version":3,"sources":["../../src/lib/utils.ts","../../src/radix-vega/button.tsx","../../src/radix-vega/dialog.tsx","../../src/radix-vega/input-group.tsx","../../src/radix-vega/command.tsx"],"names":["jsx","DialogPrimitive","cva","CommandPrimitive","jsxs"],"mappings":";;;;;;;;;AASO,SAAS,MAAM,MAAA,EAA8B;AAClD,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;ACLA,IAAM,cAAA,GAAiB,GAAA;AAAA,EACrB,kjBAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,wDAAA;AAAA,QACT,OAAA,EAAS,2LAAA;AAAA,QACT,SAAA,EAAW,iIAAA;AAAA,QACX,KAAA,EAAO,kHAAA;AAAA,QACP,WAAA,EAAa,6NAAA;AAAA,QACb,IAAA,EAAM;AAAA,OACR;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,OAAA,EAAS,6HAAA;AAAA,QACT,EAAA,EAAI,8MAAA;AAAA,QACJ,EAAA,EAAI,oKAAA;AAAA,QACJ,EAAA,EAAI,uFAAA;AAAA,QACJ,IAAA,EAAM,QAAA;AAAA,QACN,SAAA,EAAW,wHAAA;AAAA,QACX,SAAA,EAAW,oFAAA;AAAA,QACX,SAAA,EAAW;AAAA;AACb,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAEA,SAAS,MAAA,CAAO;AAAA,EACd,SAAA;AAAA,EACA,OAAA,GAAU,SAAA;AAAA,EACV,IAAA,GAAO,SAAA;AAAA,EACP,OAAA,GAAU,KAAA;AAAA,EACV,GAAG;AACL,CAAA,EAGK;AACH,EAAA,MAAM,IAAA,GAAO,OAAA,GAAU,IAAA,CAAK,IAAA,GAAO,QAAA;AAEnC,EAAA,uBACE,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,QAAA;AAAA,MACV,cAAA,EAAc,OAAA;AAAA,MACd,WAAA,EAAW,IAAA;AAAA,MACX,SAAA,EAAW,GAAG,cAAA,CAAe,EAAE,SAAS,IAAA,EAAM,SAAA,EAAW,CAAC,CAAA;AAAA,MACzD,GAAG;AAAA;AAAA,GACN;AAEJ;AChDA,SAAS,MAAA,CAAO;AAAA,EACd,GAAG;AACL,CAAA,EAAsD;AACpD,EAAA,uBAAOA,IAACC,QAAA,CAAgB,IAAA,EAAhB,EAAqB,WAAA,EAAU,QAAA,EAAU,GAAG,KAAA,EAAO,CAAA;AAC7D;AAQA,SAAS,YAAA,CAAa;AAAA,EACpB,GAAG;AACL,CAAA,EAAwD;AACtD,EAAA,uBAAOD,IAACC,QAAA,CAAgB,MAAA,EAAhB,EAAuB,WAAA,EAAU,eAAA,EAAiB,GAAG,KAAA,EAAO,CAAA;AACtE;AAQA,SAAS,aAAA,CAAc;AAAA,EACrB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAyD;AACvD,EAAA,uBACED,GAAAA;AAAA,IAACC,QAAA,CAAgB,OAAA;AAAA,IAAhB;AAAA,MACC,WAAA,EAAU,gBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,uLAAA,EAAyL,SAAS,CAAA;AAAA,MAC/M,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,aAAA,CAAc;AAAA,EACrB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,eAAA,GAAkB,IAAA;AAAA,EAClB,GAAG;AACL,CAAA,EAEG;AACD,EAAA,4BACG,YAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAAD,IAAC,aAAA,EAAA,EAAc,CAAA;AAAA,oBACf,IAAA;AAAA,MAACC,QAAA,CAAgB,OAAA;AAAA,MAAhB;AAAA,QACC,WAAA,EAAU,gBAAA;AAAA,QACV,SAAA,EAAW,EAAA;AAAA,UACT,mVAAA;AAAA,UACA;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,QAAA;AAAA,UACA,mCACCD,GAAAA,CAACC,QAAA,CAAgB,KAAA,EAAhB,EAAsB,WAAA,EAAU,cAAA,EAAe,OAAA,EAAO,IAAA,EACrD,+BAAC,MAAA,EAAA,EAAO,OAAA,EAAQ,SAAQ,SAAA,EAAU,wBAAA,EAAyB,MAAK,SAAA,EAC9D,QAAA,EAAA;AAAA,4BAAAD,GAAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,aACD;AAAA,4BACAA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAU,QAAA,EAAA,OAAA,EAAK;AAAA,WAAA,EACjC,CAAA,EACF;AAAA;AAAA;AAAA;AAEJ,GAAA,EACF,CAAA;AAEJ;AAEA,SAAS,YAAA,CAAa,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AAC1E,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,eAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,qBAAA,EAAuB,SAAS,CAAA;AAAA,MAC7C,GAAG;AAAA;AAAA,GACN;AAEJ;AA6BA,SAAS,WAAA,CAAY;AAAA,EACnB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAuD;AACrD,EAAA,uBACEA,GAAAA;AAAA,IAACC,QAAA,CAAgB,KAAA;AAAA,IAAhB;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,0BAAA,EAA4B,SAAS,CAAA;AAAA,MAClD,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,iBAAA,CAAkB;AAAA,EACzB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA6D;AAC3D,EAAA,uBACED,GAAAA;AAAA,IAACC,QAAA,CAAgB,WAAA;AAAA,IAAhB;AAAA,MACC,WAAA,EAAU,oBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,oGAAA,EAAsG,SAAS,CAAA;AAAA,MAC5H,GAAG;AAAA;AAAA,GACN;AAEJ;ACrIA,SAAS,UAAA,CAAW,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACxE,EAAA,uBACED,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,IAAA,EAAK,OAAA;AAAA,MACL,SAAA,EAAW,EAAA;AAAA,QACT,8hCAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,IAAM,uBAAA,GAA0BE,GAAAA;AAAA,EAC9B,yPAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,KAAA,EAAO;AAAA,QACL,cAAA,EAAgB,+DAAA;AAAA,QAChB,YAAA,EAAc,8DAAA;AAAA,QACd,aAAA,EACE,mGAAA;AAAA,QACF,WAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,KAAA,EAAO;AAAA;AACT;AAEJ,CAAA;AAEA,SAAS,eAAA,CAAgB;AAAA,EACvB,SAAA;AAAA,EACA,KAAA,GAAQ,cAAA;AAAA,EACR,GAAG;AACL,CAAA,EAA+E;AAC7E,EAAA,uBACEF,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,OAAA;AAAA,MACL,WAAA,EAAU,mBAAA;AAAA,MACV,YAAA,EAAY,KAAA;AAAA,MACZ,WAAW,EAAA,CAAG,uBAAA,CAAwB,EAAE,KAAA,EAAO,GAAG,SAAS,CAAA;AAAA,MAC3D,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,QAAA,IAAK,CAAA,CAAE,MAAA,CAAuB,OAAA,CAAQ,QAAQ,CAAA,EAAG;AAC/C,UAAA;AAAA,QACF;AACA,QAAA,CAAA,CAAE,aAAA,CAAc,aAAA,EAAe,aAAA,CAAc,OAAO,GAAG,KAAA,EAAM;AAAA,MAC/D,CAAA;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEiCE,GAAAA;AAAA,EAC/B,6CAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,2FAAA;AAAA,QACJ,EAAA,EAAI,EAAA;AAAA,QACJ,SAAA,EAAW,6DAAA;AAAA,QACX,SAAA,EAAW;AAAA;AACb,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ;AC7DA,SAAS,OAAA,CAAQ;AAAA,EACf,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAkD;AAChD,EAAA,uBACEF,GAAAA;AAAA,IAACG,SAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,SAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,4FAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,aAAA,CAAc;AAAA,EACrB,KAAA,GAAQ,iBAAA;AAAA,EACR,WAAA,GAAc,gCAAA;AAAA,EACd,QAAA;AAAA,EACA,SAAA;AAAA,EACA,eAAA,GAAkB,KAAA;AAAA,EAClB,GAAG;AACL,CAAA,EAKG;AACD,EAAA,uBACEC,IAAAA,CAAC,MAAA,EAAA,EAAQ,GAAG,KAAA,EACV,QAAA,EAAA;AAAA,oBAAAA,IAAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAU,SAAA,EACtB,QAAA,EAAA;AAAA,sBAAAJ,GAAAA,CAAC,eAAa,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,sBACpBA,GAAAA,CAAC,iBAAA,EAAA,EAAmB,QAAA,EAAA,WAAA,EAAY;AAAA,KAAA,EAClC,CAAA;AAAA,oBACAA,GAAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAA;AAAA,UACT,uDAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,eAAA;AAAA,QAEC;AAAA;AAAA;AACH,GAAA,EACF,CAAA;AAEJ;AAEA,SAAS,YAAA,CAAa;AAAA,EACpB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwD;AACtD,EAAA,uBACEA,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAA,EAAU,uBAAA,EAAwB,SAAA,EAAU,UAAA,EAC/C,QAAA,kBAAAI,IAAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAU,iGAAA,EACpB,QAAA,EAAA;AAAA,oBAAAJ,GAAAA;AAAA,MAACG,SAAA,CAAiB,KAAA;AAAA,MAAjB;AAAA,QACC,WAAA,EAAU,eAAA;AAAA,QACV,SAAA,EAAW,EAAA;AAAA,UACT,+EAAA;AAAA,UACA;AAAA,SACF;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,oBACAH,IAAC,eAAA,EAAA,EACC,QAAA,kBAAAA,IAAC,UAAA,EAAA,EAAW,SAAA,EAAU,8BAA6B,CAAA,EACrD;AAAA,GAAA,EACF,CAAA,EACF,CAAA;AAEJ;AAEA,SAAS,WAAA,CAAY;AAAA,EACnB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAuD;AACrD,EAAA,uBACEA,GAAAA;AAAA,IAACG,SAAA,CAAiB,IAAA;AAAA,IAAjB;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,kFAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,YAAA,CAAa;AAAA,EACpB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwD;AACtD,EAAA,uBACEH,GAAAA;AAAA,IAACG,SAAA,CAAiB,KAAA;AAAA,IAAjB;AAAA,MACC,WAAA,EAAU,eAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,0BAAA,EAA4B,SAAS,CAAA;AAAA,MAClD,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,YAAA,CAAa;AAAA,EACpB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwD;AACtD,EAAA,uBACEH,GAAAA;AAAA,IAACG,SAAA,CAAiB,KAAA;AAAA,IAAjB;AAAA,MACC,WAAA,EAAU,eAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,6NAAA,EAA+N,SAAS,CAAA;AAAA,MACrP,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,gBAAA,CAAiB;AAAA,EACxB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA4D;AAC1D,EAAA,uBACEH,GAAAA;AAAA,IAACG,SAAA,CAAiB,SAAA;AAAA,IAAjB;AAAA,MACC,WAAA,EAAU,mBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,6BAAA,EAA+B,SAAS,CAAA;AAAA,MACrD,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,WAAA,CAAY;AAAA,EACnB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAuD;AACrD,EAAA,uBACEC,IAAAA;AAAA,IAACD,SAAA,CAAiB,IAAA;AAAA,IAAjB;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,+ZAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,wBACDH,GAAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,iIAAA,EAAkI;AAAA;AAAA;AAAA,GACzJ;AAEJ;AAEA,SAAS,eAAA,CAAgB;AAAA,EACvB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAiC;AAC/B,EAAA,uBACEA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,kBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,wGAAA,EAA0G,SAAS,CAAA;AAAA,MAChI,GAAG;AAAA;AAAA,GACN;AAEJ","file":"command.js","sourcesContent":["import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\n/**\n * Merges Tailwind class names, resolving any conflicts.\n *\n * @param inputs - An array of class names to merge.\n * @returns A string of merged and optimized class names.\n */\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 rounded-md border border-transparent bg-clip-padding text-sm font-medium focus-visible:ring-3 aria-invalid:ring-3 [&_svg:not([class*='size-'])]:size-4 inline-flex items-center justify-center whitespace-nowrap transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none shrink-0 [&_svg]:shrink-0 outline-none group/button select-none\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/80\",\n outline: \"border-border bg-background hover:bg-muted hover:text-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 aria-expanded:bg-muted aria-expanded:text-foreground shadow-xs\",\n secondary: \"bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground\",\n ghost: \"hover:bg-muted hover:text-foreground dark:hover:bg-muted/50 aria-expanded:bg-muted aria-expanded:text-foreground\",\n destructive: \"bg-destructive/10 hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/20 text-destructive focus-visible:border-destructive/40 dark:hover:bg-destructive/30\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 gap-1.5 px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n xs: \"h-6 gap-1 rounded-[min(var(--radius-md),8px)] px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-8 gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5\",\n lg: \"h-10 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3\",\n icon: \"size-9\",\n \"icon-xs\": \"size-6 rounded-[min(var(--radius-md),8px)] in-data-[slot=button-group]:rounded-md [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\": \"size-8 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-md\",\n \"icon-lg\": \"size-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? Slot.Root : \"button\"\n\n return (\n <Comp\n data-slot=\"button\"\n data-variant={variant}\n data-size={size}\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Dialog as DialogPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/radix-vega/button\"\nimport { XIcon } from \"lucide-react\"\n\nfunction Dialog({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />\n}\n\nfunction DialogTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nfunction DialogPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\nfunction DialogClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\"data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs fixed inset-0 isolate z-50\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean\n}) {\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n \"bg-background data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 ring-foreground/10 grid max-w-[calc(100%-2rem)] gap-6 rounded-xl p-6 text-sm ring-1 duration-100 sm:max-w-md fixed top-1/2 left-1/2 z-50 w-full -translate-x-1/2 -translate-y-1/2 outline-none\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close data-slot=\"dialog-close\" asChild>\n <Button variant=\"ghost\" className=\"absolute top-4 right-4\" size=\"icon-sm\">\n <XIcon\n />\n <span className=\"sr-only\">Close</span>\n </Button>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n )\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\"gap-2 flex flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogFooter({\n className,\n showCloseButton = false,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n showCloseButton?: boolean\n}) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close asChild>\n <Button variant=\"outline\">Close</Button>\n </DialogPrimitive.Close>\n )}\n </div>\n )\n}\n\nfunction DialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\"leading-none font-medium\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\"text-muted-foreground *:[a]:hover:text-foreground text-sm *:[a]:underline *:[a]:underline-offset-3\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n}\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/radix-vega/button\"\nimport { Input } from \"@/radix-vega/input\"\nimport { Textarea } from \"@/radix-vega/textarea\"\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"border-input dark:bg-input/30 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 h-9 rounded-md border shadow-xs transition-[color,box-shadow] in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-3 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5 group/input-group relative flex w-full min-w-0 items-center outline-none has-[>textarea]:h-auto\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst inputGroupAddonVariants = cva(\n \"text-muted-foreground h-auto gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4 flex cursor-text items-center justify-center select-none\",\n {\n variants: {\n align: {\n \"inline-start\": \"pl-2 has-[>button]:-ml-1 has-[>kbd]:ml-[-0.15rem] order-first\",\n \"inline-end\": \"pr-2 has-[>button]:-mr-1 has-[>kbd]:mr-[-0.15rem] order-last\",\n \"block-start\":\n \"px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2 order-first w-full justify-start\",\n \"block-end\":\n \"px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2 order-last w-full justify-start\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n }\n)\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus()\n }}\n {...props}\n />\n )\n}\n\nconst inputGroupButtonVariants = cva(\n \"gap-2 text-sm shadow-none flex items-center\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: \"\",\n \"icon-xs\": \"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n }\n)\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\"> &\n VariantProps<typeof inputGroupButtonVariants>) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n )\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"text-muted-foreground gap-2 text-sm [&_svg:not([class*='size-'])]:size-4 flex items-center [&_svg]:pointer-events-none\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupInput({\n className,\n ...props\n}: React.ComponentProps<\"input\">) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\"rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent flex-1\", className)}\n {...props}\n />\n )\n}\n\nfunction InputGroupTextarea({\n className,\n ...props\n}: React.ComponentProps<\"textarea\">) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\"rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent flex-1 resize-none\", className)}\n {...props}\n />\n )\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n}\n","import * as React from \"react\"\nimport { Command as CommandPrimitive } from \"cmdk\"\n\nimport { cn } from \"@/lib/utils\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from \"@/radix-vega/dialog\"\nimport {\n InputGroup,\n InputGroupAddon,\n} from \"@/radix-vega/input-group\"\nimport { SearchIcon, CheckIcon } from \"lucide-react\"\n\nfunction Command({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n data-slot=\"command\"\n className={cn(\n \"bg-popover text-popover-foreground rounded-xl! p-1 flex size-full flex-col overflow-hidden\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CommandDialog({\n title = \"Command Palette\",\n description = \"Search for a command to run...\",\n children,\n className,\n showCloseButton = false,\n ...props\n}: React.ComponentProps<typeof Dialog> & {\n title?: string\n description?: string\n className?: string\n showCloseButton?: boolean\n}) {\n return (\n <Dialog {...props}>\n <DialogHeader className=\"sr-only\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent\n className={cn(\n \"rounded-xl! top-1/3 translate-y-0 overflow-hidden p-0\",\n className\n )}\n showCloseButton={showCloseButton}\n >\n {children}\n </DialogContent>\n </Dialog>\n )\n}\n\nfunction CommandInput({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Input>) {\n return (\n <div data-slot=\"command-input-wrapper\" className=\"p-1 pb-0\">\n <InputGroup className=\"bg-input/30 border-input/30 h-8! rounded-lg! shadow-none! *:data-[slot=input-group-addon]:pl-2!\">\n <CommandPrimitive.Input\n data-slot=\"command-input\"\n className={cn(\n \"w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n />\n <InputGroupAddon>\n <SearchIcon className=\"size-4 shrink-0 opacity-50\" />\n </InputGroupAddon>\n </InputGroup>\n </div>\n )\n}\n\nfunction CommandList({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n data-slot=\"command-list\"\n className={cn(\n \"no-scrollbar max-h-72 scroll-py-1 outline-none overflow-x-hidden overflow-y-auto\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CommandEmpty({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Empty>) {\n return (\n <CommandPrimitive.Empty\n data-slot=\"command-empty\"\n className={cn(\"py-6 text-center text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction CommandGroup({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\n data-slot=\"command-group\"\n className={cn(\"text-foreground **:[[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium\", className)}\n {...props}\n />\n )\n}\n\nfunction CommandSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n data-slot=\"command-separator\"\n className={cn(\"bg-border -mx-1 h-px w-auto\", className)}\n {...props}\n />\n )\n}\n\nfunction CommandItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n data-slot=\"command-item\"\n className={cn(\n \"data-selected:bg-muted data-selected:text-foreground data-selected:**:[svg]:text-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none in-data-[slot=dialog-content]:rounded-lg! [&_svg:not([class*='size-'])]:size-4 group/command-item data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className\n )}\n {...props}\n >\n {children}\n <CheckIcon className=\"ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100\" />\n </CommandPrimitive.Item>\n )\n}\n\nfunction CommandShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn(\"text-muted-foreground group-data-selected/command-item:text-foreground ml-auto text-xs tracking-widest\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n}\n"]}
@@ -0,0 +1,32 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+
4
+ type Interaction = "hover" | "drag";
5
+ type Orientation = "horizontal" | "vertical";
6
+ interface DivProps extends React.ComponentProps<"div"> {
7
+ asChild?: boolean;
8
+ }
9
+ interface CompareSliderProps extends DivProps {
10
+ value?: number;
11
+ defaultValue?: number;
12
+ onValueChange?: (value: number) => void;
13
+ step?: number;
14
+ interaction?: Interaction;
15
+ orientation?: Orientation;
16
+ }
17
+ declare function CompareSlider(props: CompareSliderProps): react_jsx_runtime.JSX.Element;
18
+ interface CompareSliderBeforeProps extends DivProps {
19
+ label?: string;
20
+ }
21
+ declare function CompareSliderBefore(props: CompareSliderBeforeProps): react_jsx_runtime.JSX.Element;
22
+ interface CompareSliderAfterProps extends DivProps {
23
+ label?: string;
24
+ }
25
+ declare function CompareSliderAfter(props: CompareSliderAfterProps): react_jsx_runtime.JSX.Element;
26
+ declare function CompareSliderHandle(props: DivProps): react_jsx_runtime.JSX.Element;
27
+ interface CompareSliderLabelProps extends DivProps {
28
+ side?: "before" | "after";
29
+ }
30
+ declare function CompareSliderLabel(props: CompareSliderLabelProps): react_jsx_runtime.JSX.Element;
31
+
32
+ export { CompareSlider, CompareSliderAfter, CompareSliderBefore, CompareSliderHandle, CompareSliderLabel, type CompareSliderProps };
@@ -0,0 +1,393 @@
1
+ import { Slot } from '@radix-ui/react-slot';
2
+ import { ChevronUpIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from 'lucide-react';
3
+ import * as React5 from 'react';
4
+ import { clsx } from 'clsx';
5
+ import { twMerge } from 'tailwind-merge';
6
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
+
8
+ function setRef(ref, value) {
9
+ if (typeof ref === "function") {
10
+ return ref(value);
11
+ }
12
+ if (ref !== null && ref !== void 0) {
13
+ ref.current = value;
14
+ }
15
+ }
16
+ function composeRefs(...refs) {
17
+ return (node) => {
18
+ let hasCleanup = false;
19
+ const cleanups = refs.map((ref) => {
20
+ const cleanup = setRef(ref, node);
21
+ if (!hasCleanup && typeof cleanup === "function") {
22
+ hasCleanup = true;
23
+ }
24
+ return cleanup;
25
+ });
26
+ if (hasCleanup) {
27
+ return () => {
28
+ for (let i = 0; i < cleanups.length; i++) {
29
+ const cleanup = cleanups[i];
30
+ if (typeof cleanup === "function") {
31
+ cleanup();
32
+ } else {
33
+ setRef(refs[i], null);
34
+ }
35
+ }
36
+ };
37
+ }
38
+ };
39
+ }
40
+ function useComposedRefs(...refs) {
41
+ return React5.useCallback(composeRefs(...refs), refs);
42
+ }
43
+ function cn(...inputs) {
44
+ return twMerge(clsx(inputs));
45
+ }
46
+ var useIsomorphicLayoutEffect = typeof window !== "undefined" ? React5.useLayoutEffect : React5.useEffect;
47
+
48
+ // src/hooks/use-as-ref.ts
49
+ function useAsRef(props) {
50
+ const ref = React5.useRef(props);
51
+ useIsomorphicLayoutEffect(() => {
52
+ ref.current = props;
53
+ });
54
+ return ref;
55
+ }
56
+ function useLazyRef(fn) {
57
+ const ref = React5.useRef(null);
58
+ if (ref.current === null) {
59
+ ref.current = fn();
60
+ }
61
+ return ref;
62
+ }
63
+ var ROOT_NAME = "CompareSlider";
64
+ var BEFORE_NAME = "CompareSliderBefore";
65
+ var AFTER_NAME = "CompareSliderAfter";
66
+ var LABEL_NAME = "CompareSliderLabel";
67
+ var HANDLE_NAME = "CompareSliderHandle";
68
+ var PAGE_KEYS = ["PageUp", "PageDown"];
69
+ var ARROW_KEYS = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"];
70
+ function clamp(value, min, max) {
71
+ return Math.min(Math.max(value, min), max);
72
+ }
73
+ var StoreContext = React5.createContext(null);
74
+ function useStore(selector, ogStore) {
75
+ const contextStore = React5.useContext(StoreContext);
76
+ const store = ogStore ?? contextStore;
77
+ if (!store) {
78
+ throw new Error(`\`useStore\` must be used within \`${ROOT_NAME}\``);
79
+ }
80
+ const getSnapshot = React5.useCallback(
81
+ () => selector(store.getState()),
82
+ [store, selector]
83
+ );
84
+ return React5.useSyncExternalStore(store.subscribe, getSnapshot, getSnapshot);
85
+ }
86
+ var CompareSliderContext = React5.createContext(null);
87
+ function useCompareSliderContext(consumerName) {
88
+ const context = React5.useContext(CompareSliderContext);
89
+ if (!context) {
90
+ throw new Error(`\`${consumerName}\` must be used within \`${ROOT_NAME}\``);
91
+ }
92
+ return context;
93
+ }
94
+ function CompareSlider(props) {
95
+ const {
96
+ value: valueProp,
97
+ defaultValue = 50,
98
+ onValueChange,
99
+ step = 1,
100
+ interaction = "drag",
101
+ orientation = "horizontal",
102
+ className,
103
+ children,
104
+ ref,
105
+ onPointerMove: onPointerMoveProp,
106
+ onPointerUp: onPointerUpProp,
107
+ onPointerDown: onPointerDownProp,
108
+ onKeyDown: onKeyDownProp,
109
+ asChild,
110
+ ...rootProps
111
+ } = props;
112
+ const stateRef = useLazyRef(() => ({
113
+ value: clamp(valueProp ?? defaultValue, 0, 100),
114
+ isDragging: false
115
+ }));
116
+ const listenersRef = useLazyRef(() => /* @__PURE__ */ new Set());
117
+ const onValueChangeRef = useAsRef(onValueChange);
118
+ const store = React5.useMemo(() => {
119
+ return {
120
+ subscribe: (cb) => {
121
+ listenersRef.current.add(cb);
122
+ return () => listenersRef.current.delete(cb);
123
+ },
124
+ getState: () => stateRef.current,
125
+ setState: (key, value2) => {
126
+ if (Object.is(stateRef.current[key], value2)) return;
127
+ stateRef.current[key] = value2;
128
+ if (key === "value") {
129
+ onValueChangeRef.current?.(value2);
130
+ }
131
+ store.notify();
132
+ },
133
+ notify: () => {
134
+ for (const cb of listenersRef.current) {
135
+ cb();
136
+ }
137
+ }
138
+ };
139
+ }, [listenersRef, stateRef, onValueChangeRef]);
140
+ const rootRef = React5.useRef(null);
141
+ const composedRef = useComposedRefs(ref, rootRef);
142
+ const isDraggingRef = React5.useRef(false);
143
+ const propsRef = useAsRef({
144
+ onPointerMove: onPointerMoveProp,
145
+ onPointerUp: onPointerUpProp,
146
+ onPointerDown: onPointerDownProp,
147
+ onKeyDown: onKeyDownProp,
148
+ interaction,
149
+ orientation,
150
+ step
151
+ });
152
+ const value = useStore((state) => state.value, store);
153
+ useIsomorphicLayoutEffect(() => {
154
+ if (valueProp !== void 0) {
155
+ store.setState("value", clamp(valueProp, 0, 100));
156
+ }
157
+ }, [valueProp]);
158
+ const onPointerMove = React5.useCallback(
159
+ (event) => {
160
+ if (!isDraggingRef.current && propsRef.current.interaction === "drag") {
161
+ return;
162
+ }
163
+ if (!rootRef.current) return;
164
+ propsRef.current.onPointerMove?.(event);
165
+ if (event.defaultPrevented) return;
166
+ const rootRect = rootRef.current.getBoundingClientRect();
167
+ const isVertical = propsRef.current.orientation === "vertical";
168
+ const position = isVertical ? event.clientY - rootRect.top : event.clientX - rootRect.left;
169
+ const size = isVertical ? rootRect.height : rootRect.width;
170
+ const percentage = clamp(position / size * 100, 0, 100);
171
+ store.setState("value", percentage);
172
+ },
173
+ [propsRef, store]
174
+ );
175
+ const onPointerDown = React5.useCallback(
176
+ (event) => {
177
+ if (propsRef.current.interaction !== "drag") return;
178
+ propsRef.current.onPointerDown?.(event);
179
+ if (event.defaultPrevented) return;
180
+ event.currentTarget.setPointerCapture(event.pointerId);
181
+ isDraggingRef.current = true;
182
+ store.setState("isDragging", true);
183
+ },
184
+ [store, propsRef]
185
+ );
186
+ const onPointerUp = React5.useCallback(
187
+ (event) => {
188
+ if (propsRef.current.interaction !== "drag") return;
189
+ propsRef.current.onPointerUp?.(event);
190
+ if (event.defaultPrevented) return;
191
+ event.currentTarget.releasePointerCapture(event.pointerId);
192
+ isDraggingRef.current = false;
193
+ store.setState("isDragging", false);
194
+ },
195
+ [store, propsRef]
196
+ );
197
+ const onKeyDown = React5.useCallback(
198
+ (event) => {
199
+ propsRef.current.onKeyDown?.(event);
200
+ if (event.defaultPrevented) return;
201
+ const currentValue = store.getState().value;
202
+ const isVertical = propsRef.current.orientation === "vertical";
203
+ if (event.key === "Home") {
204
+ event.preventDefault();
205
+ store.setState("value", 0);
206
+ } else if (event.key === "End") {
207
+ event.preventDefault();
208
+ store.setState("value", 100);
209
+ } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {
210
+ event.preventDefault();
211
+ const isPageKey = PAGE_KEYS.includes(event.key);
212
+ const isSkipKey = isPageKey || event.shiftKey && ARROW_KEYS.includes(event.key);
213
+ const multiplier = isSkipKey ? 10 : 1;
214
+ let direction = 0;
215
+ if (isVertical) {
216
+ const isDecreaseKey = ["ArrowUp", "PageUp"].includes(event.key);
217
+ direction = isDecreaseKey ? -1 : 1;
218
+ } else {
219
+ const isDecreaseKey = ["ArrowLeft", "PageUp"].includes(event.key);
220
+ direction = isDecreaseKey ? -1 : 1;
221
+ }
222
+ const stepInDirection = propsRef.current.step * multiplier * direction;
223
+ const newValue = clamp(currentValue + stepInDirection, 0, 100);
224
+ store.setState("value", newValue);
225
+ }
226
+ },
227
+ [store, propsRef]
228
+ );
229
+ const contextValue = React5.useMemo(
230
+ () => ({
231
+ interaction,
232
+ orientation
233
+ }),
234
+ [interaction, orientation]
235
+ );
236
+ const RootPrimitive = asChild ? Slot : "div";
237
+ return /* @__PURE__ */ jsx(StoreContext.Provider, { value: store, children: /* @__PURE__ */ jsx(CompareSliderContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(
238
+ RootPrimitive,
239
+ {
240
+ role: "slider",
241
+ "aria-orientation": orientation,
242
+ "aria-valuemax": 100,
243
+ "aria-valuemin": 0,
244
+ "aria-valuenow": value,
245
+ "data-slot": "compare-slider",
246
+ "data-orientation": orientation,
247
+ ...rootProps,
248
+ ref: composedRef,
249
+ tabIndex: 0,
250
+ className: cn(
251
+ "relative isolate touch-none select-none overflow-hidden outline-none transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",
252
+ orientation === "horizontal" ? "w-full" : "h-full",
253
+ className
254
+ ),
255
+ onPointerDown,
256
+ onPointerMove,
257
+ onPointerUp,
258
+ onPointerCancel: onPointerUp,
259
+ onKeyDown,
260
+ children
261
+ }
262
+ ) }) });
263
+ }
264
+ function CompareSliderBefore(props) {
265
+ const { className, children, style, label, asChild, ref, ...beforeProps } = props;
266
+ const value = useStore((state) => state.value);
267
+ const { orientation } = useCompareSliderContext(BEFORE_NAME);
268
+ const labelId = React5.useId();
269
+ const isVertical = orientation === "vertical";
270
+ const clipPath = isVertical ? `inset(${value}% 0 0 0)` : `inset(0 0 0 ${value}%)`;
271
+ const BeforePrimitive = asChild ? Slot : "div";
272
+ return /* @__PURE__ */ jsxs(
273
+ BeforePrimitive,
274
+ {
275
+ role: "img",
276
+ "aria-labelledby": label ? labelId : void 0,
277
+ "aria-hidden": label ? void 0 : "true",
278
+ "data-slot": "compare-slider-before",
279
+ "data-orientation": orientation,
280
+ ...beforeProps,
281
+ ref,
282
+ className: cn("absolute inset-0 h-full w-full object-cover", className),
283
+ style: {
284
+ clipPath,
285
+ ...style
286
+ },
287
+ children: [
288
+ children,
289
+ label && /* @__PURE__ */ jsx(CompareSliderLabel, { id: labelId, side: "before", children: label })
290
+ ]
291
+ }
292
+ );
293
+ }
294
+ function CompareSliderAfter(props) {
295
+ const { className, children, style, label, asChild, ref, ...afterProps } = props;
296
+ const value = useStore((state) => state.value);
297
+ const { orientation } = useCompareSliderContext(AFTER_NAME);
298
+ const labelId = React5.useId();
299
+ const isVertical = orientation === "vertical";
300
+ const clipPath = isVertical ? `inset(0 0 ${100 - value}% 0)` : `inset(0 ${100 - value}% 0 0)`;
301
+ const AfterPrimitive = asChild ? Slot : "div";
302
+ return /* @__PURE__ */ jsxs(
303
+ AfterPrimitive,
304
+ {
305
+ role: "img",
306
+ "aria-labelledby": label ? labelId : void 0,
307
+ "aria-hidden": label ? void 0 : "true",
308
+ "data-slot": "compare-slider-after",
309
+ "data-orientation": orientation,
310
+ ...afterProps,
311
+ ref,
312
+ className: cn("absolute inset-0 h-full w-full object-cover", className),
313
+ style: {
314
+ clipPath,
315
+ ...style
316
+ },
317
+ children: [
318
+ children,
319
+ label && /* @__PURE__ */ jsx(CompareSliderLabel, { id: labelId, side: "after", children: label })
320
+ ]
321
+ }
322
+ );
323
+ }
324
+ function CompareSliderHandle(props) {
325
+ const { className, children, style, asChild, ref, ...handleProps } = props;
326
+ const value = useStore((state) => state.value);
327
+ const { interaction, orientation } = useCompareSliderContext(HANDLE_NAME);
328
+ const isVertical = orientation === "vertical";
329
+ const HandlePrimitive = asChild ? Slot : "div";
330
+ return /* @__PURE__ */ jsx(
331
+ HandlePrimitive,
332
+ {
333
+ role: "presentation",
334
+ "aria-hidden": "true",
335
+ "data-slot": "compare-slider-handle",
336
+ "data-orientation": orientation,
337
+ ...handleProps,
338
+ ref,
339
+ className: cn(
340
+ "absolute z-50 flex items-center justify-center",
341
+ isVertical ? "left-0 h-10 w-full -translate-y-1/2" : "top-0 h-full w-10 -translate-x-1/2",
342
+ interaction === "drag" && "cursor-grab active:cursor-grabbing",
343
+ className
344
+ ),
345
+ style: {
346
+ [isVertical ? "top" : "left"]: `${value}%`,
347
+ ...style
348
+ },
349
+ children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
350
+ /* @__PURE__ */ jsx(
351
+ "div",
352
+ {
353
+ className: cn(
354
+ "absolute bg-background",
355
+ isVertical ? "top-1/2 h-1 w-full -translate-y-1/2" : "left-1/2 h-full w-1 -translate-x-1/2"
356
+ )
357
+ }
358
+ ),
359
+ interaction === "drag" && /* @__PURE__ */ jsx("div", { className: "z-50 flex aspect-square size-11 shrink-0 items-center justify-center rounded-full bg-background p-2 [&_svg]:size-4 [&_svg]:select-none [&_svg]:stroke-3 [&_svg]:text-muted-foreground", children: isVertical ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center", children: [
360
+ /* @__PURE__ */ jsx(ChevronUpIcon, {}),
361
+ /* @__PURE__ */ jsx(ChevronDownIcon, {})
362
+ ] }) : /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
363
+ /* @__PURE__ */ jsx(ChevronLeftIcon, {}),
364
+ /* @__PURE__ */ jsx(ChevronRightIcon, {})
365
+ ] }) })
366
+ ] })
367
+ }
368
+ );
369
+ }
370
+ function CompareSliderLabel(props) {
371
+ const { className, children, side, asChild, ref, ...labelProps } = props;
372
+ const { orientation } = useCompareSliderContext(LABEL_NAME);
373
+ const isVertical = orientation === "vertical";
374
+ const LabelPrimitive = asChild ? Slot : "div";
375
+ return /* @__PURE__ */ jsx(
376
+ LabelPrimitive,
377
+ {
378
+ ref,
379
+ "data-slot": "compare-slider-label",
380
+ className: cn(
381
+ "absolute z-20 rounded-md border border-border bg-background/80 px-3 py-1.5 font-medium text-sm backdrop-blur-sm",
382
+ isVertical ? side === "before" ? "top-2 left-2" : "bottom-2 left-2" : side === "before" ? "top-2 left-2" : "top-2 right-2",
383
+ className
384
+ ),
385
+ ...labelProps,
386
+ children
387
+ }
388
+ );
389
+ }
390
+
391
+ export { CompareSlider, CompareSliderAfter, CompareSliderBefore, CompareSliderHandle, CompareSliderLabel };
392
+ //# sourceMappingURL=compare-slider.js.map
393
+ //# sourceMappingURL=compare-slider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/compose-refs.ts","../../src/lib/utils.ts","../../src/hooks/use-isomorphic-layout-effect.ts","../../src/hooks/use-as-ref.ts","../../src/hooks/use-lazy-ref.ts","../../src/radix-vega/compare-slider.tsx"],"names":["React","React2","React3","React4","value"],"mappings":"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","file":"compare-slider.js","sourcesContent":["import * as React from \"react\";\n\ntype PossibleRef<T> = React.Ref<T> | undefined;\n\n/**\n * Set a given ref to a given value\n * This utility takes care of different types of refs: callback refs and RefObject(s)\n */\nfunction setRef<T>(ref: PossibleRef<T>, value: T) {\n if (typeof ref === \"function\") {\n return ref(value);\n }\n\n if (ref !== null && ref !== undefined) {\n ref.current = value;\n }\n}\n\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n */\nfunction composeRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T> {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup === \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n\n // React <19 will log an error to the console if a callback ref returns a\n // value. We don't use ref cleanups internally so this will only happen if a\n // user's ref callback returns a value, which we only expect if they are\n // using the cleanup functionality added in React 19.\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup === \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\n\n/**\n * A custom hook that composes multiple refs\n * Accepts callback refs and RefObject(s)\n */\nfunction useComposedRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T> {\n // biome-ignore lint/correctness/useExhaustiveDependencies: we want to memoize by all values\n return React.useCallback(composeRefs(...refs), refs);\n}\n\nexport { composeRefs, useComposedRefs };\n","import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\n/**\n * Merges Tailwind class names, resolving any conflicts.\n *\n * @param inputs - An array of class names to merge.\n * @returns A string of merged and optimized class names.\n */\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n","import * as React from \"react\";\n\nconst useIsomorphicLayoutEffect =\n typeof window !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\n\nexport { useIsomorphicLayoutEffect };\n","import * as React from \"react\";\n\nimport { useIsomorphicLayoutEffect } from \"@/hooks/use-isomorphic-layout-effect\";\n\nfunction useAsRef<T>(props: T) {\n const ref = React.useRef<T>(props);\n\n useIsomorphicLayoutEffect(() => {\n ref.current = props;\n });\n\n return ref;\n}\n\nexport { useAsRef };\n","import * as React from \"react\";\n\nfunction useLazyRef<T>(fn: () => T) {\n const ref = React.useRef<T | null>(null);\n\n if (ref.current === null) {\n ref.current = fn();\n }\n\n return ref as React.RefObject<T>;\n}\n\nexport { useLazyRef };\n","\"use client\";\n\nimport { Slot } from \"@radix-ui/react-slot\";\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n ChevronUpIcon,\n} from \"lucide-react\";\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@/lib/compose-refs\";\nimport { cn } from \"@/lib/utils\";\nimport { useAsRef } from \"@/hooks/use-as-ref\";\nimport { useIsomorphicLayoutEffect } from \"@/hooks/use-isomorphic-layout-effect\";\nimport { useLazyRef } from \"@/hooks/use-lazy-ref\";\n\nconst ROOT_NAME = \"CompareSlider\";\nconst BEFORE_NAME = \"CompareSliderBefore\";\nconst AFTER_NAME = \"CompareSliderAfter\";\nconst LABEL_NAME = \"CompareSliderLabel\";\nconst HANDLE_NAME = \"CompareSliderHandle\";\n\nconst PAGE_KEYS = [\"PageUp\", \"PageDown\"];\nconst ARROW_KEYS = [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"];\n\ntype Interaction = \"hover\" | \"drag\";\ntype Orientation = \"horizontal\" | \"vertical\";\n\ninterface DivProps extends React.ComponentProps<\"div\"> {\n asChild?: boolean;\n}\n\ntype RootElement = React.ComponentRef<typeof CompareSlider>;\n\nfunction clamp(value: number, min: number, max: number): number {\n return Math.min(Math.max(value, min), max);\n}\n\ninterface StoreState {\n value: number;\n isDragging: boolean;\n}\n\ninterface Store {\n subscribe: (callback: () => void) => () => void;\n getState: () => StoreState;\n setState: <K extends keyof StoreState>(key: K, value: StoreState[K]) => void;\n notify: () => void;\n}\n\nconst StoreContext = React.createContext<Store | null>(null);\n\nfunction useStore<T>(\n selector: (state: StoreState) => T,\n ogStore?: Store | null,\n): T {\n const contextStore = React.useContext(StoreContext);\n\n const store = ogStore ?? contextStore;\n\n if (!store) {\n throw new Error(`\\`useStore\\` must be used within \\`${ROOT_NAME}\\``);\n }\n\n const getSnapshot = React.useCallback(\n () => selector(store.getState()),\n [store, selector],\n );\n\n return React.useSyncExternalStore(store.subscribe, getSnapshot, getSnapshot);\n}\n\ninterface CompareSliderContextValue {\n interaction: Interaction;\n orientation: Orientation;\n}\n\nconst CompareSliderContext =\n React.createContext<CompareSliderContextValue | null>(null);\n\nfunction useCompareSliderContext(consumerName: string) {\n const context = React.useContext(CompareSliderContext);\n if (!context) {\n throw new Error(`\\`${consumerName}\\` must be used within \\`${ROOT_NAME}\\``);\n }\n return context;\n}\n\ninterface CompareSliderProps extends DivProps {\n value?: number;\n defaultValue?: number;\n onValueChange?: (value: number) => void;\n step?: number;\n interaction?: Interaction;\n orientation?: Orientation;\n}\n\nfunction CompareSlider(props: CompareSliderProps) {\n const {\n value: valueProp,\n defaultValue = 50,\n onValueChange,\n step = 1,\n interaction = \"drag\",\n orientation = \"horizontal\",\n className,\n children,\n ref,\n onPointerMove: onPointerMoveProp,\n onPointerUp: onPointerUpProp,\n onPointerDown: onPointerDownProp,\n onKeyDown: onKeyDownProp,\n asChild,\n ...rootProps\n } = props;\n\n const stateRef = useLazyRef<StoreState>(() => ({\n value: clamp(valueProp ?? defaultValue, 0, 100),\n isDragging: false,\n }));\n const listenersRef = useLazyRef(() => new Set<() => void>());\n const onValueChangeRef = useAsRef(onValueChange);\n\n const store = React.useMemo<Store>(() => {\n return {\n subscribe: (cb) => {\n listenersRef.current.add(cb);\n return () => listenersRef.current.delete(cb);\n },\n getState: () => stateRef.current,\n setState: <K extends keyof StoreState>(key: K, value: StoreState[K]) => {\n if (Object.is(stateRef.current[key], value)) return;\n stateRef.current[key] = value;\n\n if (key === \"value\") {\n onValueChangeRef.current?.(value as number);\n }\n\n store.notify();\n },\n notify: () => {\n for (const cb of listenersRef.current) {\n cb();\n }\n },\n };\n }, [listenersRef, stateRef, onValueChangeRef]);\n\n const rootRef = React.useRef<RootElement | null>(null);\n const composedRef = useComposedRefs(ref, rootRef);\n const isDraggingRef = React.useRef(false);\n\n const propsRef = useAsRef({\n onPointerMove: onPointerMoveProp,\n onPointerUp: onPointerUpProp,\n onPointerDown: onPointerDownProp,\n onKeyDown: onKeyDownProp,\n interaction,\n orientation,\n step,\n });\n\n const value = useStore((state) => state.value, store);\n\n useIsomorphicLayoutEffect(() => {\n if (valueProp !== undefined) {\n store.setState(\"value\", clamp(valueProp, 0, 100));\n }\n }, [valueProp]);\n\n const onPointerMove = React.useCallback(\n (event: React.PointerEvent<RootElement>) => {\n if (!isDraggingRef.current && propsRef.current.interaction === \"drag\") {\n return;\n }\n if (!rootRef.current) return;\n\n propsRef.current.onPointerMove?.(event);\n if (event.defaultPrevented) return;\n\n const rootRect = rootRef.current.getBoundingClientRect();\n const isVertical = propsRef.current.orientation === \"vertical\";\n const position = isVertical\n ? event.clientY - rootRect.top\n : event.clientX - rootRect.left;\n const size = isVertical ? rootRect.height : rootRect.width;\n const percentage = clamp((position / size) * 100, 0, 100);\n\n store.setState(\"value\", percentage);\n },\n [propsRef, store],\n );\n\n const onPointerDown = React.useCallback(\n (event: React.PointerEvent<RootElement>) => {\n if (propsRef.current.interaction !== \"drag\") return;\n\n propsRef.current.onPointerDown?.(event);\n if (event.defaultPrevented) return;\n\n event.currentTarget.setPointerCapture(event.pointerId);\n isDraggingRef.current = true;\n store.setState(\"isDragging\", true);\n },\n [store, propsRef],\n );\n\n const onPointerUp = React.useCallback(\n (event: React.PointerEvent<RootElement>) => {\n if (propsRef.current.interaction !== \"drag\") return;\n\n propsRef.current.onPointerUp?.(event);\n if (event.defaultPrevented) return;\n\n event.currentTarget.releasePointerCapture(event.pointerId);\n isDraggingRef.current = false;\n store.setState(\"isDragging\", false);\n },\n [store, propsRef],\n );\n\n const onKeyDown = React.useCallback(\n (event: React.KeyboardEvent<RootElement>) => {\n propsRef.current.onKeyDown?.(event);\n if (event.defaultPrevented) return;\n\n const currentValue = store.getState().value;\n const isVertical = propsRef.current.orientation === \"vertical\";\n\n if (event.key === \"Home\") {\n event.preventDefault();\n store.setState(\"value\", 0);\n } else if (event.key === \"End\") {\n event.preventDefault();\n store.setState(\"value\", 100);\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n event.preventDefault();\n\n const isPageKey = PAGE_KEYS.includes(event.key);\n const isSkipKey =\n isPageKey || (event.shiftKey && ARROW_KEYS.includes(event.key));\n const multiplier = isSkipKey ? 10 : 1;\n\n let direction = 0;\n if (isVertical) {\n const isDecreaseKey = [\"ArrowUp\", \"PageUp\"].includes(event.key);\n direction = isDecreaseKey ? -1 : 1;\n } else {\n const isDecreaseKey = [\"ArrowLeft\", \"PageUp\"].includes(event.key);\n direction = isDecreaseKey ? -1 : 1;\n }\n\n const stepInDirection = propsRef.current.step * multiplier * direction;\n const newValue = clamp(currentValue + stepInDirection, 0, 100);\n store.setState(\"value\", newValue);\n }\n },\n [store, propsRef],\n );\n\n const contextValue = React.useMemo<CompareSliderContextValue>(\n () => ({\n interaction,\n orientation,\n }),\n [interaction, orientation],\n );\n\n const RootPrimitive = asChild ? Slot : \"div\";\n\n return (\n <StoreContext.Provider value={store}>\n <CompareSliderContext.Provider value={contextValue}>\n <RootPrimitive\n role=\"slider\"\n aria-orientation={orientation}\n aria-valuemax={100}\n aria-valuemin={0}\n aria-valuenow={value}\n data-slot=\"compare-slider\"\n data-orientation={orientation}\n {...rootProps}\n ref={composedRef}\n tabIndex={0}\n className={cn(\n \"relative isolate touch-none select-none overflow-hidden outline-none transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50\",\n orientation === \"horizontal\" ? \"w-full\" : \"h-full\",\n className,\n )}\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={onPointerUp}\n onPointerCancel={onPointerUp}\n onKeyDown={onKeyDown}\n >\n {children}\n </RootPrimitive>\n </CompareSliderContext.Provider>\n </StoreContext.Provider>\n );\n}\n\ninterface CompareSliderBeforeProps extends DivProps {\n label?: string;\n}\n\nfunction CompareSliderBefore(props: CompareSliderBeforeProps) {\n const { className, children, style, label, asChild, ref, ...beforeProps } =\n props;\n\n const value = useStore((state) => state.value);\n const { orientation } = useCompareSliderContext(BEFORE_NAME);\n\n const labelId = React.useId();\n\n const isVertical = orientation === \"vertical\";\n const clipPath = isVertical\n ? `inset(${value}% 0 0 0)`\n : `inset(0 0 0 ${value}%)`;\n\n const BeforePrimitive = asChild ? Slot : \"div\";\n\n return (\n <BeforePrimitive\n role=\"img\"\n aria-labelledby={label ? labelId : undefined}\n aria-hidden={label ? undefined : \"true\"}\n data-slot=\"compare-slider-before\"\n data-orientation={orientation}\n {...beforeProps}\n ref={ref}\n className={cn(\"absolute inset-0 h-full w-full object-cover\", className)}\n style={{\n clipPath,\n ...style,\n }}\n >\n {children}\n {label && (\n <CompareSliderLabel id={labelId} side=\"before\">\n {label}\n </CompareSliderLabel>\n )}\n </BeforePrimitive>\n );\n}\n\ninterface CompareSliderAfterProps extends DivProps {\n label?: string;\n}\n\nfunction CompareSliderAfter(props: CompareSliderAfterProps) {\n const { className, children, style, label, asChild, ref, ...afterProps } =\n props;\n\n const value = useStore((state) => state.value);\n const { orientation } = useCompareSliderContext(AFTER_NAME);\n\n const labelId = React.useId();\n\n const isVertical = orientation === \"vertical\";\n const clipPath = isVertical\n ? `inset(0 0 ${100 - value}% 0)`\n : `inset(0 ${100 - value}% 0 0)`;\n\n const AfterPrimitive = asChild ? Slot : \"div\";\n\n return (\n <AfterPrimitive\n role=\"img\"\n aria-labelledby={label ? labelId : undefined}\n aria-hidden={label ? undefined : \"true\"}\n data-slot=\"compare-slider-after\"\n data-orientation={orientation}\n {...afterProps}\n ref={ref}\n className={cn(\"absolute inset-0 h-full w-full object-cover\", className)}\n style={{\n clipPath,\n ...style,\n }}\n >\n {children}\n {label && (\n <CompareSliderLabel id={labelId} side=\"after\">\n {label}\n </CompareSliderLabel>\n )}\n </AfterPrimitive>\n );\n}\n\nfunction CompareSliderHandle(props: DivProps) {\n const { className, children, style, asChild, ref, ...handleProps } = props;\n\n const value = useStore((state) => state.value);\n const { interaction, orientation } = useCompareSliderContext(HANDLE_NAME);\n\n const isVertical = orientation === \"vertical\";\n\n const HandlePrimitive = asChild ? Slot : \"div\";\n\n return (\n <HandlePrimitive\n role=\"presentation\"\n aria-hidden=\"true\"\n data-slot=\"compare-slider-handle\"\n data-orientation={orientation}\n {...handleProps}\n ref={ref}\n className={cn(\n \"absolute z-50 flex items-center justify-center\",\n isVertical\n ? \"left-0 h-10 w-full -translate-y-1/2\"\n : \"top-0 h-full w-10 -translate-x-1/2\",\n interaction === \"drag\" && \"cursor-grab active:cursor-grabbing\",\n className,\n )}\n style={{\n [isVertical ? \"top\" : \"left\"]: `${value}%`,\n ...style,\n }}\n >\n {children ?? (\n <>\n <div\n className={cn(\n \"absolute bg-background\",\n isVertical\n ? \"top-1/2 h-1 w-full -translate-y-1/2\"\n : \"left-1/2 h-full w-1 -translate-x-1/2\",\n )}\n />\n {interaction === \"drag\" && (\n <div className=\"z-50 flex aspect-square size-11 shrink-0 items-center justify-center rounded-full bg-background p-2 [&_svg]:size-4 [&_svg]:select-none [&_svg]:stroke-3 [&_svg]:text-muted-foreground\">\n {isVertical ? (\n <div className=\"flex flex-col items-center\">\n <ChevronUpIcon />\n <ChevronDownIcon />\n </div>\n ) : (\n <div className=\"flex items-center\">\n <ChevronLeftIcon />\n <ChevronRightIcon />\n </div>\n )}\n </div>\n )}\n </>\n )}\n </HandlePrimitive>\n );\n}\n\ninterface CompareSliderLabelProps extends DivProps {\n side?: \"before\" | \"after\";\n}\n\nfunction CompareSliderLabel(props: CompareSliderLabelProps) {\n const { className, children, side, asChild, ref, ...labelProps } = props;\n\n const { orientation } = useCompareSliderContext(LABEL_NAME);\n const isVertical = orientation === \"vertical\";\n\n const LabelPrimitive = asChild ? Slot : \"div\";\n\n return (\n <LabelPrimitive\n ref={ref}\n data-slot=\"compare-slider-label\"\n className={cn(\n \"absolute z-20 rounded-md border border-border bg-background/80 px-3 py-1.5 font-medium text-sm backdrop-blur-sm\",\n isVertical\n ? side === \"before\"\n ? \"top-2 left-2\"\n : \"bottom-2 left-2\"\n : side === \"before\"\n ? \"top-2 left-2\"\n : \"top-2 right-2\",\n className,\n )}\n {...labelProps}\n >\n {children}\n </LabelPrimitive>\n );\n}\n\nexport {\n CompareSlider,\n CompareSliderAfter,\n CompareSliderBefore,\n CompareSliderHandle,\n CompareSliderLabel,\n //\n type CompareSliderProps,\n};\n"]}