@px-ui/ui 0.1.4 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. package/dist/avatar-BAkmIOVe.d.ts +41 -0
  2. package/dist/avatar-BAkmIOVe.d.ts.map +1 -0
  3. package/dist/avatar-DDdL9xDH.js +119 -0
  4. package/dist/avatar-DDdL9xDH.js.map +1 -0
  5. package/dist/button-BiiFfKiR.d.ts +19 -0
  6. package/dist/button-BiiFfKiR.d.ts.map +1 -0
  7. package/dist/button-hBUFMmsZ.js +47 -0
  8. package/dist/button-hBUFMmsZ.js.map +1 -0
  9. package/dist/combobox-CnpyzZ7B.js +334 -0
  10. package/dist/combobox-CnpyzZ7B.js.map +1 -0
  11. package/dist/combobox-JXY6PiDq.d.ts +109 -0
  12. package/dist/combobox-JXY6PiDq.d.ts.map +1 -0
  13. package/dist/components/accordion.d.ts +25 -0
  14. package/dist/components/accordion.d.ts.map +1 -0
  15. package/dist/components/accordion.js +56 -0
  16. package/dist/components/accordion.js.map +1 -0
  17. package/dist/components/alert-dialog.d.ts +59 -0
  18. package/dist/components/alert-dialog.d.ts.map +1 -0
  19. package/dist/components/alert-dialog.js +99 -0
  20. package/dist/components/alert-dialog.js.map +1 -0
  21. package/dist/components/alert.d.ts +29 -0
  22. package/dist/components/alert.d.ts.map +1 -0
  23. package/dist/components/alert.js +47 -0
  24. package/dist/components/alert.js.map +1 -0
  25. package/dist/components/aspect-ratio.d.ts +13 -0
  26. package/dist/components/aspect-ratio.d.ts.map +1 -0
  27. package/dist/components/aspect-ratio.js +16 -0
  28. package/dist/components/aspect-ratio.js.map +1 -0
  29. package/dist/components/avatar-group.d.ts +30 -0
  30. package/dist/components/avatar-group.d.ts.map +1 -0
  31. package/dist/components/avatar-group.js +69 -0
  32. package/dist/components/avatar-group.js.map +1 -0
  33. package/dist/components/avatar.d.ts +2 -0
  34. package/dist/components/avatar.js +5 -0
  35. package/dist/components/badge.d.ts +18 -0
  36. package/dist/components/badge.d.ts.map +1 -0
  37. package/dist/components/badge.js +31 -0
  38. package/dist/components/badge.js.map +1 -0
  39. package/dist/components/breadcrumb.d.ts +38 -0
  40. package/dist/components/breadcrumb.d.ts.map +1 -0
  41. package/dist/components/breadcrumb.js +75 -0
  42. package/dist/components/breadcrumb.js.map +1 -0
  43. package/dist/components/button-group.d.ts +29 -0
  44. package/dist/components/button-group.d.ts.map +1 -0
  45. package/dist/components/button-group.js +44 -0
  46. package/dist/components/button-group.js.map +1 -0
  47. package/dist/components/button.d.ts +2 -0
  48. package/dist/components/button.js +4 -0
  49. package/dist/components/calendar.d.ts +32 -0
  50. package/dist/components/calendar.d.ts.map +1 -0
  51. package/dist/components/calendar.js +119 -0
  52. package/dist/components/calendar.js.map +1 -0
  53. package/dist/components/card.d.ts +38 -0
  54. package/dist/components/card.d.ts.map +1 -0
  55. package/dist/components/card.js +59 -0
  56. package/dist/components/card.js.map +1 -0
  57. package/dist/components/carousel.d.ts +57 -0
  58. package/dist/components/carousel.d.ts.map +1 -0
  59. package/dist/components/carousel.js +136 -0
  60. package/dist/components/carousel.js.map +1 -0
  61. package/dist/components/chart.d.ts +79 -0
  62. package/dist/components/chart.d.ts.map +1 -0
  63. package/dist/components/chart.js +148 -0
  64. package/dist/components/chart.js.map +1 -0
  65. package/dist/components/checkbox.d.ts +11 -0
  66. package/dist/components/checkbox.d.ts.map +1 -0
  67. package/dist/components/checkbox.js +24 -0
  68. package/dist/components/checkbox.js.map +1 -0
  69. package/dist/components/collapsible.d.ts +25 -0
  70. package/dist/components/collapsible.d.ts.map +1 -0
  71. package/dist/components/collapsible.js +28 -0
  72. package/dist/components/collapsible.js.map +1 -0
  73. package/dist/components/combobox.d.ts +3 -0
  74. package/dist/components/combobox.js +13 -0
  75. package/dist/components/command.d.ts +78 -0
  76. package/dist/components/command.d.ts.map +1 -0
  77. package/dist/components/command.js +125 -0
  78. package/dist/components/command.js.map +1 -0
  79. package/dist/components/context-menu.d.ts +87 -0
  80. package/dist/components/context-menu.d.ts.map +1 -0
  81. package/dist/components/context-menu.js +137 -0
  82. package/dist/components/context-menu.js.map +1 -0
  83. package/dist/components/currency-select-field.d.ts +105 -0
  84. package/dist/components/currency-select-field.d.ts.map +1 -0
  85. package/dist/components/currency-select-field.js +266 -0
  86. package/dist/components/currency-select-field.js.map +1 -0
  87. package/dist/components/dialog.d.ts +61 -0
  88. package/dist/components/dialog.d.ts.map +1 -0
  89. package/dist/components/dialog.js +5 -0
  90. package/dist/components/direction.d.ts +2 -0
  91. package/dist/components/direction.js +3 -0
  92. package/dist/components/drawer.d.ts +45 -0
  93. package/dist/components/drawer.d.ts.map +1 -0
  94. package/dist/components/drawer.js +86 -0
  95. package/dist/components/drawer.js.map +1 -0
  96. package/dist/components/dropdown-menu.d.ts +2 -0
  97. package/dist/components/dropdown-menu.js +4 -0
  98. package/dist/components/empty.d.ts +36 -0
  99. package/dist/components/empty.d.ts.map +1 -0
  100. package/dist/components/empty.js +62 -0
  101. package/dist/components/empty.js.map +1 -0
  102. package/dist/components/field.d.ts +72 -0
  103. package/dist/components/field.d.ts.map +1 -0
  104. package/dist/components/field.js +122 -0
  105. package/dist/components/field.js.map +1 -0
  106. package/dist/components/file-upload-field.d.ts +58 -0
  107. package/dist/components/file-upload-field.d.ts.map +1 -0
  108. package/dist/components/file-upload-field.js +90 -0
  109. package/dist/components/file-upload-field.js.map +1 -0
  110. package/dist/components/file-upload.d.ts +4 -0
  111. package/dist/components/file-upload.js +6 -0
  112. package/dist/components/hover-card.d.ts +21 -0
  113. package/dist/components/hover-card.d.ts.map +1 -0
  114. package/dist/components/hover-card.js +40 -0
  115. package/dist/components/hover-card.js.map +1 -0
  116. package/dist/components/input-group.d.ts +46 -0
  117. package/dist/components/input-group.d.ts.map +1 -0
  118. package/dist/components/input-group.js +9 -0
  119. package/dist/components/input-otp.d.ts +24 -0
  120. package/dist/components/input-otp.d.ts.map +1 -0
  121. package/dist/components/input-otp.js +40 -0
  122. package/dist/components/input-otp.js.map +1 -0
  123. package/dist/components/input.d.ts +2 -0
  124. package/dist/components/input.js +4 -0
  125. package/dist/components/item.d.ts +62 -0
  126. package/dist/components/item.d.ts.map +1 -0
  127. package/dist/components/item.js +124 -0
  128. package/dist/components/item.js.map +1 -0
  129. package/dist/components/kbd.d.ts +14 -0
  130. package/dist/components/kbd.d.ts.map +1 -0
  131. package/dist/components/kbd.js +22 -0
  132. package/dist/components/kbd.js.map +1 -0
  133. package/dist/components/label.d.ts +2 -0
  134. package/dist/components/label.js +6 -0
  135. package/dist/components/menubar.d.ts +89 -0
  136. package/dist/components/menubar.d.ts.map +1 -0
  137. package/dist/components/menubar.js +140 -0
  138. package/dist/components/menubar.js.map +1 -0
  139. package/dist/components/native-select.d.ts +23 -0
  140. package/dist/components/native-select.d.ts.map +1 -0
  141. package/dist/components/native-select.js +41 -0
  142. package/dist/components/native-select.js.map +1 -0
  143. package/dist/components/navigation-menu.d.ts +48 -0
  144. package/dist/components/navigation-menu.d.ts.map +1 -0
  145. package/dist/components/navigation-menu.js +85 -0
  146. package/dist/components/navigation-menu.js.map +1 -0
  147. package/dist/components/pagination.d.ts +46 -0
  148. package/dist/components/pagination.d.ts.map +1 -0
  149. package/dist/components/pagination.js +89 -0
  150. package/dist/components/pagination.js.map +1 -0
  151. package/dist/components/phone-input.d.ts +28 -0
  152. package/dist/components/phone-input.d.ts.map +1 -0
  153. package/dist/components/phone-input.js +60 -0
  154. package/dist/components/phone-input.js.map +1 -0
  155. package/dist/components/popover.d.ts +34 -0
  156. package/dist/components/popover.d.ts.map +1 -0
  157. package/dist/components/popover.js +4 -0
  158. package/dist/components/progress.d.ts +29 -0
  159. package/dist/components/progress.d.ts.map +1 -0
  160. package/dist/components/progress.js +48 -0
  161. package/dist/components/progress.js.map +1 -0
  162. package/dist/components/radio-group.d.ts +16 -0
  163. package/dist/components/radio-group.d.ts.map +1 -0
  164. package/dist/components/radio-group.js +29 -0
  165. package/dist/components/radio-group.js.map +1 -0
  166. package/dist/components/resizable.d.ts +21 -0
  167. package/dist/components/resizable.d.ts.map +1 -0
  168. package/dist/components/resizable.js +32 -0
  169. package/dist/components/resizable.js.map +1 -0
  170. package/dist/components/scroll-area.d.ts +17 -0
  171. package/dist/components/scroll-area.d.ts.map +1 -0
  172. package/dist/components/scroll-area.js +39 -0
  173. package/dist/components/scroll-area.js.map +1 -0
  174. package/dist/components/select.d.ts +56 -0
  175. package/dist/components/select.d.ts.map +1 -0
  176. package/dist/components/select.js +102 -0
  177. package/dist/components/select.js.map +1 -0
  178. package/dist/components/separator.d.ts +2 -0
  179. package/dist/components/separator.js +4 -0
  180. package/dist/components/sheet.d.ts +43 -0
  181. package/dist/components/sheet.d.ts.map +1 -0
  182. package/dist/components/sheet.js +7 -0
  183. package/dist/components/sidebar.d.ts +162 -0
  184. package/dist/components/sidebar.d.ts.map +1 -0
  185. package/dist/components/sidebar.js +390 -0
  186. package/dist/components/sidebar.js.map +1 -0
  187. package/dist/components/skeleton.d.ts +10 -0
  188. package/dist/components/skeleton.d.ts.map +1 -0
  189. package/dist/components/skeleton.js +4 -0
  190. package/dist/components/slider.d.ts +15 -0
  191. package/dist/components/slider.d.ts.map +1 -0
  192. package/dist/components/slider.js +36 -0
  193. package/dist/components/slider.js.map +1 -0
  194. package/dist/components/spinner.d.ts +11 -0
  195. package/dist/components/spinner.d.ts.map +1 -0
  196. package/dist/components/spinner.js +4 -0
  197. package/dist/components/switch.d.ts +14 -0
  198. package/dist/components/switch.d.ts.map +1 -0
  199. package/dist/components/switch.js +21 -0
  200. package/dist/components/switch.js.map +1 -0
  201. package/dist/components/table.d.ts +39 -0
  202. package/dist/components/table.d.ts.map +1 -0
  203. package/dist/components/table.js +71 -0
  204. package/dist/components/table.js.map +1 -0
  205. package/dist/components/tabs.d.ts +31 -0
  206. package/dist/components/tabs.d.ts.map +1 -0
  207. package/dist/components/tabs.js +55 -0
  208. package/dist/components/tabs.js.map +1 -0
  209. package/dist/components/textarea.d.ts +11 -0
  210. package/dist/components/textarea.d.ts.map +1 -0
  211. package/dist/components/textarea.js +4 -0
  212. package/dist/components/toast.d.ts +2 -0
  213. package/dist/components/toast.js +6 -0
  214. package/dist/components/toggle-group.d.ts +29 -0
  215. package/dist/components/toggle-group.d.ts.map +1 -0
  216. package/dist/components/toggle-group.js +55 -0
  217. package/dist/components/toggle-group.js.map +1 -0
  218. package/dist/components/toggle.d.ts +2 -0
  219. package/dist/components/toggle.js +6 -0
  220. package/dist/components/tooltip.d.ts +2 -0
  221. package/dist/components/tooltip.js +4 -0
  222. package/dist/dialog-CTqRrytc.js +103 -0
  223. package/dist/dialog-CTqRrytc.js.map +1 -0
  224. package/dist/direction-BKSh6e6q.js +3 -0
  225. package/dist/dropdown-menu-BEARLcDj.d.ts +91 -0
  226. package/dist/dropdown-menu-BEARLcDj.d.ts.map +1 -0
  227. package/dist/dropdown-menu-CcumvwhM.js +139 -0
  228. package/dist/dropdown-menu-CcumvwhM.js.map +1 -0
  229. package/dist/file-upload-D8hgfjvA.d.ts +145 -0
  230. package/dist/file-upload-D8hgfjvA.d.ts.map +1 -0
  231. package/dist/file-upload-DeCIv13t.js +434 -0
  232. package/dist/file-upload-DeCIv13t.js.map +1 -0
  233. package/dist/hooks/use-async-options.d.ts +2 -0
  234. package/dist/hooks/use-async-options.js +3 -0
  235. package/dist/hooks/use-debounce.d.ts +5 -0
  236. package/dist/hooks/use-debounce.d.ts.map +1 -0
  237. package/dist/hooks/use-debounce.js +3 -0
  238. package/dist/hooks/use-file-upload.d.ts +2 -0
  239. package/dist/hooks/use-file-upload.js +3 -0
  240. package/dist/hooks/use-infinite-scroll.d.ts +21 -0
  241. package/dist/hooks/use-infinite-scroll.d.ts.map +1 -0
  242. package/dist/hooks/use-infinite-scroll.js +4 -0
  243. package/dist/hooks/use-intersection-observer.d.ts +2 -0
  244. package/dist/hooks/use-intersection-observer.js +3 -0
  245. package/dist/hooks/use-mobile.d.ts +5 -0
  246. package/dist/hooks/use-mobile.d.ts.map +1 -0
  247. package/dist/hooks/use-mobile.js +3 -0
  248. package/dist/input-8jqdnUZl.js +18 -0
  249. package/dist/input-8jqdnUZl.js.map +1 -0
  250. package/dist/input-DwxhsFRP.d.ts +12 -0
  251. package/dist/input-DwxhsFRP.d.ts.map +1 -0
  252. package/dist/input-group-DqEkmpXW.js +81 -0
  253. package/dist/input-group-DqEkmpXW.js.map +1 -0
  254. package/dist/label-AaH9ZYCZ.js +16 -0
  255. package/dist/label-AaH9ZYCZ.js.map +1 -0
  256. package/dist/label-D5SCGMZl.d.ts +11 -0
  257. package/dist/label-D5SCGMZl.d.ts.map +1 -0
  258. package/dist/lib/utils.d.ts +7 -0
  259. package/dist/lib/utils.d.ts.map +1 -0
  260. package/dist/lib/utils.js +3 -0
  261. package/dist/popover-C9D43EuT.js +57 -0
  262. package/dist/popover-C9D43EuT.js.map +1 -0
  263. package/dist/providers/px-ui-provider.d.ts +36 -0
  264. package/dist/providers/px-ui-provider.d.ts.map +1 -0
  265. package/dist/providers/px-ui-provider.js +26 -0
  266. package/dist/providers/px-ui-provider.js.map +1 -0
  267. package/dist/separator-BS3ilczC.js +17 -0
  268. package/dist/separator-BS3ilczC.js.map +1 -0
  269. package/dist/separator-ct9ZvuTk.d.ts +12 -0
  270. package/dist/separator-ct9ZvuTk.d.ts.map +1 -0
  271. package/dist/sheet-CLjNDrfL.js +91 -0
  272. package/dist/sheet-CLjNDrfL.js.map +1 -0
  273. package/dist/skeleton-BcIxI5Wq.js +15 -0
  274. package/dist/skeleton-BcIxI5Wq.js.map +1 -0
  275. package/dist/spinner-Bo0sUZEg.js +17 -0
  276. package/dist/spinner-Bo0sUZEg.js.map +1 -0
  277. package/dist/styles.css +196 -0
  278. package/dist/textarea-Cq0o323P.js +16 -0
  279. package/dist/textarea-Cq0o323P.js.map +1 -0
  280. package/dist/toast-COWAQbIk.js +211 -0
  281. package/dist/toast-COWAQbIk.js.map +1 -0
  282. package/dist/toast-CXkP5Jwp.d.ts +74 -0
  283. package/dist/toast-CXkP5Jwp.d.ts.map +1 -0
  284. package/dist/toggle-BXBPgIQh.d.ts +19 -0
  285. package/dist/toggle-BXBPgIQh.d.ts.map +1 -0
  286. package/dist/toggle-DhJ_qwgw.js +38 -0
  287. package/dist/toggle-DhJ_qwgw.js.map +1 -0
  288. package/dist/tooltip-BWjVzK67.d.ts +26 -0
  289. package/dist/tooltip-BWjVzK67.d.ts.map +1 -0
  290. package/dist/tooltip-DkPxCJIL.js +43 -0
  291. package/dist/tooltip-DkPxCJIL.js.map +1 -0
  292. package/dist/use-async-options-DHR8q5qX.d.ts +45 -0
  293. package/dist/use-async-options-DHR8q5qX.d.ts.map +1 -0
  294. package/dist/use-async-options-wZ9LJ2BJ.js +46 -0
  295. package/dist/use-async-options-wZ9LJ2BJ.js.map +1 -0
  296. package/dist/use-debounce-_qaEZqtt.js +24 -0
  297. package/dist/use-debounce-_qaEZqtt.js.map +1 -0
  298. package/dist/{index.js → use-file-upload-Dxrej28u.js} +3 -204
  299. package/dist/use-file-upload-Dxrej28u.js.map +1 -0
  300. package/dist/use-file-upload-yy-xLBtn.d.ts +133 -0
  301. package/dist/use-file-upload-yy-xLBtn.d.ts.map +1 -0
  302. package/dist/use-infinite-scroll-CpbhGGT5.js +38 -0
  303. package/dist/use-infinite-scroll-CpbhGGT5.js.map +1 -0
  304. package/dist/use-intersection-observer-C2xDq2SW.d.ts +11 -0
  305. package/dist/use-intersection-observer-C2xDq2SW.d.ts.map +1 -0
  306. package/dist/use-intersection-observer-CZfnep4z.js +33 -0
  307. package/dist/use-intersection-observer-CZfnep4z.js.map +1 -0
  308. package/dist/use-mobile-l5ebOdQl.js +21 -0
  309. package/dist/use-mobile-l5ebOdQl.js.map +1 -0
  310. package/dist/utils-mWJR2N24.js +28 -0
  311. package/dist/utils-mWJR2N24.js.map +1 -0
  312. package/package.json +289 -26
  313. package/dist/index.css +0 -143
  314. package/dist/index.d.ts +0 -229
  315. package/dist/index.d.ts.map +0 -1
  316. package/dist/index.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty.js","names":[],"sources":["../../src/components/empty.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@px-ui/ui/lib/utils\"\n\nfunction Empty({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty\"\n className={cn(\n \"flex w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded-lg border-dashed p-12 text-center text-balance\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction EmptyHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-header\"\n className={cn(\"flex max-w-sm flex-col items-center gap-2\", className)}\n {...props}\n />\n )\n}\n\nconst emptyMediaVariants = cva(\n \"mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"flex size-10 shrink-0 items-center justify-center rounded-lg bg-muted text-foreground [&_svg:not([class*='size-'])]:size-6\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction EmptyMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof emptyMediaVariants>) {\n return (\n <div\n data-slot=\"empty-icon\"\n data-variant={variant}\n className={cn(emptyMediaVariants({ variant, className }))}\n {...props}\n />\n )\n}\n\nfunction EmptyTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-title\"\n className={cn(\n \"font-heading text-lg font-medium tracking-ppx-tight\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction EmptyDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <div\n data-slot=\"empty-description\"\n className={cn(\n \"text-sm/relaxed text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction EmptyContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-content\"\n className={cn(\n \"flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Empty,\n EmptyHeader,\n EmptyTitle,\n EmptyDescription,\n EmptyContent,\n EmptyMedia,\n}\n"],"mappings":";;;;;AAIA,SAAS,MAAM,EAAE,WAAW,GAAG,SAAsC;AACnE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,gIACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,YAAY,EAAE,WAAW,GAAG,SAAsC;AACzE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,6CAA6C,UAAU;EACrE,GAAI;GACJ;;AAIN,MAAM,qBAAqB,IACzB,+FACA;CACE,UAAU,EACR,SAAS;EACP,SAAS;EACT,MAAM;EACP,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CACF;AAED,SAAS,WAAW,EAClB,WACA,UAAU,WACV,GAAG,SACqE;AACxE,QACE,oBAAC;EACC,aAAU;EACV,gBAAc;EACd,WAAW,GAAG,mBAAmB;GAAE;GAAS;GAAW,CAAC,CAAC;EACzD,GAAI;GACJ;;AAIN,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,uDACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,iBAAiB,EAAE,WAAW,GAAG,SAAoC;AAC5E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,2GACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,aAAa,EAAE,WAAW,GAAG,SAAsC;AAC1E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,iFACA,UACD;EACD,GAAI;GACJ"}
@@ -0,0 +1,72 @@
1
+ import { t as Label } from "../label-D5SCGMZl.js";
2
+ import * as react_jsx_runtime95 from "react/jsx-runtime";
3
+ import { VariantProps } from "class-variance-authority";
4
+ import * as class_variance_authority_types4 from "class-variance-authority/types";
5
+
6
+ //#region src/components/field.d.ts
7
+ declare function FieldSet({
8
+ className,
9
+ ...props
10
+ }: React.ComponentProps<"fieldset">): react_jsx_runtime95.JSX.Element;
11
+ declare function FieldLegend({
12
+ className,
13
+ variant,
14
+ ...props
15
+ }: React.ComponentProps<"legend"> & {
16
+ variant?: "legend" | "label";
17
+ }): react_jsx_runtime95.JSX.Element;
18
+ declare function FieldGroup({
19
+ className,
20
+ ...props
21
+ }: React.ComponentProps<"div">): react_jsx_runtime95.JSX.Element;
22
+ declare const fieldVariants: (props?: ({
23
+ orientation?: "horizontal" | "vertical" | "responsive" | null | undefined;
24
+ } & class_variance_authority_types4.ClassProp) | undefined) => string;
25
+ declare function Field({
26
+ className,
27
+ orientation,
28
+ ...props
29
+ }: React.ComponentProps<"div"> & VariantProps<typeof fieldVariants>): react_jsx_runtime95.JSX.Element;
30
+ declare function FieldContent({
31
+ className,
32
+ ...props
33
+ }: React.ComponentProps<"div">): react_jsx_runtime95.JSX.Element;
34
+ declare function FieldLabel({
35
+ className,
36
+ required,
37
+ ...props
38
+ }: React.ComponentProps<typeof Label> & {
39
+ required?: boolean;
40
+ }): react_jsx_runtime95.JSX.Element;
41
+ declare function FieldRequiredIndicator({
42
+ className,
43
+ ...props
44
+ }: React.ComponentProps<"span">): react_jsx_runtime95.JSX.Element;
45
+ declare function FieldTitle({
46
+ className,
47
+ ...props
48
+ }: React.ComponentProps<"div">): react_jsx_runtime95.JSX.Element;
49
+ declare function FieldDescription({
50
+ className,
51
+ ...props
52
+ }: React.ComponentProps<"p">): react_jsx_runtime95.JSX.Element;
53
+ declare function FieldSeparator({
54
+ children,
55
+ className,
56
+ ...props
57
+ }: React.ComponentProps<"div"> & {
58
+ children?: React.ReactNode;
59
+ }): react_jsx_runtime95.JSX.Element;
60
+ declare function FieldError({
61
+ className,
62
+ children,
63
+ errors,
64
+ ...props
65
+ }: React.ComponentProps<"div"> & {
66
+ errors?: Array<{
67
+ message?: string;
68
+ } | undefined>;
69
+ }): react_jsx_runtime95.JSX.Element | null;
70
+ //#endregion
71
+ export { Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldRequiredIndicator, FieldSeparator, FieldSet, FieldTitle };
72
+ //# sourceMappingURL=field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.d.ts","names":[],"sources":["../../src/components/field.tsx"],"sourcesContent":[],"mappings":";;;;;;iBAOS,QAAA;;;GAAkC,KAAA,CAAM,6BAA0B,mBAAA,CAAA,GAAA,CAAA;iBAalE,WAAA;;;;GAIN,KAAA,CAAM;;IAA2D,mBAAA,CAAA,GAAA,CAAA;AApBlB,iBAkCzC,UAAA,CA/BQ;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA+B4B,KAAA,CAAM,cA/BlC,CAAA,KAAA,CAAA,CAAA,EA+BuD,mBAAA,CAAA,GAAA,CAAA,OA/BvD;cA4CX,aA5Cc,EAAA,CAAA,KAAuD,CAAvD,EAAA,CAAA;EAAuB,WAAM,CAAA,EAAA,YAAA,GAAA,UAAA,GAAA,YAAA,GAAA,IAAA,GAAA,SAAA;CAA0B,GA4D1E,+BAAA,CAAA,SA5D0E,CAAA,GAAA,SAAA,EAAA,GAAA,MAAA;iBA8DlE,KAAA,CA9DkE;EAAA,SAAA;EAAA,WAAA;EAAA,GAAA;AAAA,CAAA,EAkExE,KAAA,CAAM,cAlEkE,CAAA,KAAA,CAAA,GAkE1C,YAlE0C,CAAA,OAkEtB,aAlEsB,CAAA,CAAA,EAkER,mBAAA,CAAA,GAAA,CAAA,OAlEQ;AAAA,iBA8ElE,YAAA,CAjEW;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAiE2B,KAAA,CAAM,cAjEjC,CAAA,KAAA,CAAA,CAAA,EAiEsD,mBAAA,CAAA,GAAA,CAAA,OAjEtD;iBA8EX,UAAA,CA7EP;EAAA,SAAA;EAAA,QAAA;EAAA,GAAA;CAAA,EAiFC,KAAA,CAAM,cAjFP,CAAA,OAiF6B,KAjF7B,CAAA,GAAA;EACA,QAAA,CAAA,EAAA,OAAA;CAEC,CAAA,EAgFF,mBAAA,CAAA,GAAA,CAAA,OAhFQ;iBAgGA,sBAAA,CAhG2D;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAmGjE,KAAA,CAAM,cAnG2D,CAAA,MAAA,CAAA,CAAA,EAmGrC,mBAAA,CAAA,GAAA,CAAA,OAnGqC;iBAgH3D,UAAA,CAhH2D;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAgHvB,KAAA,CAAM,cAhHiB,CAAA,KAAA,CAAA,CAAA,EAgHI,mBAAA,CAAA,GAAA,CAAA,OAhHJ;AAAA,iBA6H3D,gBAAA,CA/GU;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA+GgC,KAAA,CAAM,cA/GtC,CAAA,GAAA,CAAA,CAAA,EA+GyD,mBAAA,CAAA,GAAA,CAAA,OA/GzD;iBA8HV,cAAA,CA9Ha;EAAA,QAAA;EAAA,SAAA;EAAA,GAAA;CAAA,EAkInB,KAAA,CAAM,cAlIa,CAAA,KAAA,CAAA,GAAA;EAAuB,QAAM,CAAA,EAmItC,KAAA,CAAM,SAnIgC;CAAqB,CAAA,EAoIvE,mBAAA,CAAA,GAAA,CAAA,OApIuE;iBA4J/D,UAAA,CA5J+D;EAAA,SAAA;EAAA,QAAA;EAAA,MAAA;EAAA,GAAA;CAAA,EAiKrE,KAAA,CAAM,cAjK+D,CAAA,KAAA,CAAA,GAAA;EAalE,MAAA,CAAA,EAqJK,KArJL,CAAA;IAkBG,OAAK,CAAA,EAAA,MAAA;EACZ,CAAA,GAAA,SAAA,CAAA;CACA,CAAA,EAkID,mBAAA,CAAA,GAAA,CAAA,OAAA,GAlIC,IAAA"}
@@ -0,0 +1,122 @@
1
+ import { t as cn } from "../utils-mWJR2N24.js";
2
+ import { t as Separator } from "../separator-BS3ilczC.js";
3
+ import { t as Label } from "../label-AaH9ZYCZ.js";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { useMemo } from "react";
6
+ import { cva } from "class-variance-authority";
7
+
8
+ //#region src/components/field.tsx
9
+ function FieldSet({ className, ...props }) {
10
+ return /* @__PURE__ */ jsx("fieldset", {
11
+ "data-slot": "field-set",
12
+ className: cn("flex flex-col gap-6 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3", className),
13
+ ...props
14
+ });
15
+ }
16
+ function FieldLegend({ className, variant = "legend", ...props }) {
17
+ return /* @__PURE__ */ jsx("legend", {
18
+ "data-slot": "field-legend",
19
+ "data-variant": variant,
20
+ className: cn("mb-3 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base", className),
21
+ ...props
22
+ });
23
+ }
24
+ function FieldGroup({ className, ...props }) {
25
+ return /* @__PURE__ */ jsx("div", {
26
+ "data-slot": "field-group",
27
+ className: cn("group/field-group @container/field-group flex w-full flex-col gap-5 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4", className),
28
+ ...props
29
+ });
30
+ }
31
+ const fieldVariants = cva("group/field flex w-full gap-2 data-[invalid=true]:text-destructive", {
32
+ variants: { orientation: {
33
+ vertical: "flex-col *:w-full [&>.sr-only]:w-auto",
34
+ horizontal: "flex-row items-center has-[>[data-slot=field-content]]:items-start *:data-[slot=field-label]:flex-auto has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px",
35
+ responsive: "flex-col *:w-full @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:*:data-[slot=field-label]:flex-auto [&>.sr-only]:w-auto @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"
36
+ } },
37
+ defaultVariants: { orientation: "vertical" }
38
+ });
39
+ function Field({ className, orientation = "vertical", ...props }) {
40
+ return /* @__PURE__ */ jsx("div", {
41
+ role: "group",
42
+ "data-slot": "field",
43
+ "data-orientation": orientation,
44
+ className: cn(fieldVariants({ orientation }), className),
45
+ ...props
46
+ });
47
+ }
48
+ function FieldContent({ className, ...props }) {
49
+ return /* @__PURE__ */ jsx("div", {
50
+ "data-slot": "field-content",
51
+ className: cn("group/field-content flex flex-1 flex-col gap-1 leading-snug", className),
52
+ ...props
53
+ });
54
+ }
55
+ function FieldLabel({ className, required, ...props }) {
56
+ return /* @__PURE__ */ jsx(Label, {
57
+ "data-slot": "field-label",
58
+ "data-required": required ? true : void 0,
59
+ className: cn("group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50 has-data-checked:border-primary/30 has-data-checked:bg-primary/5 has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border *:data-[slot=field]:p-3 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10", "has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col", "data-[required=true]:after:text-destructive data-[required=true]:after:content-['*']", className),
60
+ ...props
61
+ });
62
+ }
63
+ function FieldRequiredIndicator({ className, ...props }) {
64
+ return /* @__PURE__ */ jsx("span", {
65
+ "aria-hidden": "true",
66
+ "data-slot": "field-required-indicator",
67
+ className: cn("text-destructive", className),
68
+ ...props,
69
+ children: "*"
70
+ });
71
+ }
72
+ function FieldTitle({ className, ...props }) {
73
+ return /* @__PURE__ */ jsx("div", {
74
+ "data-slot": "field-label",
75
+ className: cn("flex w-fit items-center gap-2 text-sm font-medium group-data-[disabled=true]/field:opacity-50", className),
76
+ ...props
77
+ });
78
+ }
79
+ function FieldDescription({ className, ...props }) {
80
+ return /* @__PURE__ */ jsx("p", {
81
+ "data-slot": "field-description",
82
+ className: cn("text-start text-sm leading-normal font-normal text-muted-foreground group-has-data-horizontal/field:text-balance [[data-variant=legend]+&]:-mt-1.5", "last:mt-0 nth-last-2:-mt-1", "[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary", className),
83
+ ...props
84
+ });
85
+ }
86
+ function FieldSeparator({ children, className, ...props }) {
87
+ return /* @__PURE__ */ jsxs("div", {
88
+ "data-slot": "field-separator",
89
+ "data-content": !!children,
90
+ className: cn("relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2", className),
91
+ ...props,
92
+ children: [/* @__PURE__ */ jsx(Separator, { className: "absolute inset-0 top-1/2" }), children && /* @__PURE__ */ jsx("span", {
93
+ className: "relative mx-auto block w-fit bg-background px-2 text-muted-foreground",
94
+ "data-slot": "field-separator-content",
95
+ children
96
+ })]
97
+ });
98
+ }
99
+ function FieldError({ className, children, errors, ...props }) {
100
+ const content = useMemo(() => {
101
+ if (children) return children;
102
+ if (!errors?.length) return null;
103
+ const uniqueErrors = [...new Map(errors.map((error) => [error?.message, error])).values()];
104
+ if (uniqueErrors?.length == 1) return uniqueErrors[0]?.message;
105
+ return /* @__PURE__ */ jsx("ul", {
106
+ className: "ms-4 flex list-disc flex-col gap-1",
107
+ children: uniqueErrors.map((error, index) => error?.message && /* @__PURE__ */ jsx("li", { children: error.message }, index))
108
+ });
109
+ }, [children, errors]);
110
+ if (!content) return null;
111
+ return /* @__PURE__ */ jsx("div", {
112
+ role: "alert",
113
+ "data-slot": "field-error",
114
+ className: cn("text-sm font-normal text-destructive", className),
115
+ ...props,
116
+ children: content
117
+ });
118
+ }
119
+
120
+ //#endregion
121
+ export { Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldRequiredIndicator, FieldSeparator, FieldSet, FieldTitle };
122
+ //# sourceMappingURL=field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.js","names":[],"sources":["../../src/components/field.tsx"],"sourcesContent":["import { useMemo } from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@px-ui/ui/lib/utils\"\nimport { Label } from \"@px-ui/ui/components/label\"\nimport { Separator } from \"@px-ui/ui/components/separator\"\n\nfunction FieldSet({ className, ...props }: React.ComponentProps<\"fieldset\">) {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn(\n \"flex flex-col gap-6 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldLegend({\n className,\n variant = \"legend\",\n ...props\n}: React.ComponentProps<\"legend\"> & { variant?: \"legend\" | \"label\" }) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn(\n \"mb-3 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n \"group/field-group @container/field-group flex w-full flex-col gap-5 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst fieldVariants = cva(\n \"group/field flex w-full gap-2 data-[invalid=true]:text-destructive\",\n {\n variants: {\n orientation: {\n vertical: \"flex-col *:w-full [&>.sr-only]:w-auto\",\n horizontal:\n \"flex-row items-center has-[>[data-slot=field-content]]:items-start *:data-[slot=field-label]:flex-auto has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n responsive:\n \"flex-col *:w-full @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:*:data-[slot=field-label]:flex-auto [&>.sr-only]:w-auto @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n },\n },\n defaultVariants: {\n orientation: \"vertical\",\n },\n }\n)\n\nfunction Field({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof fieldVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n />\n )\n}\n\nfunction FieldContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn(\n \"group/field-content flex flex-1 flex-col gap-1 leading-snug\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldLabel({\n className,\n required,\n ...props\n}: React.ComponentProps<typeof Label> & {\n required?: boolean\n}) {\n return (\n <Label\n data-slot=\"field-label\"\n data-required={required ? true : undefined}\n className={cn(\n \"group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50 has-data-checked:border-primary/30 has-data-checked:bg-primary/5 has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border *:data-[slot=field]:p-3 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10\",\n \"has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col\",\n \"data-[required=true]:after:text-destructive data-[required=true]:after:content-['*']\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldRequiredIndicator({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n aria-hidden=\"true\"\n data-slot=\"field-required-indicator\"\n className={cn(\"text-destructive\", className)}\n {...props}\n >\n *\n </span>\n )\n}\n\nfunction FieldTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-label\"\n className={cn(\n \"flex w-fit items-center gap-2 text-sm font-medium group-data-[disabled=true]/field:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n \"text-start text-sm leading-normal font-normal text-muted-foreground group-has-data-horizontal/field:text-balance [[data-variant=legend]+&]:-mt-1.5\",\n \"last:mt-0 nth-last-2:-mt-1\",\n \"[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"div\"> & {\n children?: React.ReactNode\n}) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn(\n \"relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2\",\n className\n )}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"relative mx-auto block w-fit bg-background px-2 text-muted-foreground\"\n data-slot=\"field-separator-content\"\n >\n {children}\n </span>\n )}\n </div>\n )\n}\n\nfunction FieldError({\n className,\n children,\n errors,\n ...props\n}: React.ComponentProps<\"div\"> & {\n errors?: Array<{ message?: string } | undefined>\n}) {\n const content = useMemo(() => {\n if (children) {\n return children\n }\n\n if (!errors?.length) {\n return null\n }\n\n const uniqueErrors = [\n ...new Map(errors.map((error) => [error?.message, error])).values(),\n ]\n\n if (uniqueErrors?.length == 1) {\n return uniqueErrors[0]?.message\n }\n\n return (\n <ul className=\"ms-4 flex list-disc flex-col gap-1\">\n {uniqueErrors.map(\n (error, index) =>\n error?.message && <li key={index}>{error.message}</li>\n )}\n </ul>\n )\n }, [children, errors])\n\n if (!content) {\n return null\n }\n\n return (\n <div\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn(\"text-sm font-normal text-destructive\", className)}\n {...props}\n >\n {content}\n </div>\n )\n}\n\nexport {\n Field,\n FieldLabel,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldContent,\n FieldTitle,\n FieldRequiredIndicator,\n}\n"],"mappings":";;;;;;;;AAOA,SAAS,SAAS,EAAE,WAAW,GAAG,SAA2C;AAC3E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,oGACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,YAAY,EACnB,WACA,UAAU,UACV,GAAG,SACiE;AACpE,QACE,oBAAC;EACC,aAAU;EACV,gBAAc;EACd,WAAW,GACT,iFACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,wIACA,UACD;EACD,GAAI;GACJ;;AAIN,MAAM,gBAAgB,IACpB,sEACA;CACE,UAAU,EACR,aAAa;EACX,UAAU;EACV,YACE;EACF,YACE;EACH,EACF;CACD,iBAAiB,EACf,aAAa,YACd;CACF,CACF;AAED,SAAS,MAAM,EACb,WACA,cAAc,YACd,GAAG,SACgE;AACnE,QACE,oBAAC;EACC,MAAK;EACL,aAAU;EACV,oBAAkB;EAClB,WAAW,GAAG,cAAc,EAAE,aAAa,CAAC,EAAE,UAAU;EACxD,GAAI;GACJ;;AAIN,SAAS,aAAa,EAAE,WAAW,GAAG,SAAsC;AAC1E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,+DACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,WAAW,EAClB,WACA,UACA,GAAG,SAGF;AACD,QACE,oBAAC;EACC,aAAU;EACV,iBAAe,WAAW,OAAO;EACjC,WAAW,GACT,yVACA,qEACA,wFACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,uBAAuB,EAC9B,WACA,GAAG,SAC4B;AAC/B,QACE,oBAAC;EACC,eAAY;EACZ,aAAU;EACV,WAAW,GAAG,oBAAoB,UAAU;EAC5C,GAAI;YACL;GAEM;;AAIX,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,iGACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,iBAAiB,EAAE,WAAW,GAAG,SAAoC;AAC5E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,sJACA,8BACA,qEACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,eAAe,EACtB,UACA,WACA,GAAG,SAGF;AACD,QACE,qBAAC;EACC,aAAU;EACV,gBAAc,CAAC,CAAC;EAChB,WAAW,GACT,6EACA,UACD;EACD,GAAI;aAEJ,oBAAC,aAAU,WAAU,6BAA6B,EACjD,YACC,oBAAC;GACC,WAAU;GACV,aAAU;GAET;IACI;GAEL;;AAIV,SAAS,WAAW,EAClB,WACA,UACA,QACA,GAAG,SAGF;CACD,MAAM,UAAU,cAAc;AAC5B,MAAI,SACF,QAAO;AAGT,MAAI,CAAC,QAAQ,OACX,QAAO;EAGT,MAAM,eAAe,CACnB,GAAG,IAAI,IAAI,OAAO,KAAK,UAAU,CAAC,OAAO,SAAS,MAAM,CAAC,CAAC,CAAC,QAAQ,CACpE;AAED,MAAI,cAAc,UAAU,EAC1B,QAAO,aAAa,IAAI;AAG1B,SACE,oBAAC;GAAG,WAAU;aACX,aAAa,KACX,OAAO,UACN,OAAO,WAAW,oBAAC,kBAAgB,MAAM,WAAd,MAA2B,CACzD;IACE;IAEN,CAAC,UAAU,OAAO,CAAC;AAEtB,KAAI,CAAC,QACH,QAAO;AAGT,QACE,oBAAC;EACC,MAAK;EACL,aAAU;EACV,WAAW,GAAG,wCAAwC,UAAU;EAChE,GAAI;YAEH;GACG"}
@@ -0,0 +1,58 @@
1
+ import "../button-BiiFfKiR.js";
2
+ import { c as UploadConfig, n as FileUploadItem, t as FileMetadata, u as UseFileUploadOptions } from "../use-file-upload-yy-xLBtn.js";
3
+ import { i as DropzoneState, r as DropzoneRenderProps } from "../file-upload-D8hgfjvA.js";
4
+ import * as React$1 from "react";
5
+
6
+ //#region src/components/file-upload-field.d.ts
7
+ interface FileUploadFieldRef {
8
+ /** Reset the file upload state, optionally with new initial files */
9
+ reset: (newFiles?: FileMetadata[]) => void;
10
+ /** Clear all files */
11
+ clearFiles: () => void;
12
+ /** Get current files */
13
+ getFiles: () => FileUploadItem[];
14
+ }
15
+ interface FileUploadFieldProps extends Omit<UseFileUploadOptions, "initialFiles"> {
16
+ /** Size of the dropzone (ignored when using render prop) */
17
+ size?: "sm" | "default" | "lg";
18
+ /** Text displayed in the dropzone (ignored when using render prop) */
19
+ dropzoneText?: string;
20
+ /** Text for the browse/upload button (ignored when using render prop) */
21
+ buttonText?: string;
22
+ /** Show file list below the dropzone */
23
+ showFileList?: boolean;
24
+ /** Initial files (already uploaded) */
25
+ initialFiles?: Array<{
26
+ id: string;
27
+ name: string;
28
+ size: number;
29
+ type: string;
30
+ url: string;
31
+ }>;
32
+ /** Whether the upload is disabled */
33
+ disabled?: boolean;
34
+ /** Custom className */
35
+ className?: string;
36
+ /**
37
+ * Render prop for complete dropzone customization.
38
+ * Receives props to spread and state for conditional styling.
39
+ */
40
+ render?: (props: DropzoneRenderProps, state: DropzoneState) => React$1.ReactElement;
41
+ /** Render prop for custom file item rendering */
42
+ renderFileItem?: (file: FileUploadItem, actions: {
43
+ remove: () => void;
44
+ retry: () => void;
45
+ }) => React$1.ReactNode;
46
+ /** Click handler for file list items (for preview, etc.) */
47
+ onItemClick?: (file: FileUploadItem) => void;
48
+ /** Error handler */
49
+ onError?: (error: {
50
+ type: string;
51
+ message: string;
52
+ files?: File[];
53
+ }) => void;
54
+ }
55
+ declare const FileUploadField: React$1.ForwardRefExoticComponent<FileUploadFieldProps & React$1.RefAttributes<FileUploadFieldRef>>;
56
+ //#endregion
57
+ export { type DropzoneRenderProps, type DropzoneState, type FileMetadata, FileUploadField, FileUploadFieldProps, FileUploadFieldRef, type FileUploadItem, type UseFileUploadOptions as FileUploadWithUploaderOptions, type UploadConfig };
58
+ //# sourceMappingURL=file-upload-field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-upload-field.d.ts","names":[],"sources":["../../src/components/file-upload-field.tsx"],"sourcesContent":[],"mappings":";;;;;;UAiBiB,kBAAA;;qBAEI;EAFJ;EASA,UAAA,EAAA,GAAA,GAAA,IAAA;EACF;EAUE,QAAA,EAAA,GAAA,GAdC,cAcD,EAAA;;AAiBN,UA5BM,oBAAA,SACP,IA2BC,CA3BI,oBA2BJ,EAAA,cAAA,CAAA,CAAA;EACJ;EAGG,IAAA,CAAA,EAAA,IAAA,GAAA,SAAA,GAAA,IAAA;EAEH;EAEgB,YAAA,CAAA,EAAA,MAAA;EAEsC;EArCnD,UAAA,CAAA,EAAA,MAAA;EAAI;EA4CD,YAAA,CAAA,EAAA,OA0IX;EA1I0B;EAAA,YAAA,CAAA,EAlCX,KAkCW,CAAA;IAAA,EAAA,EAAA,MAAA;IAAA,IAAA,EAAA,MAAA;IAAA,IAAA,EAAA,MAAA;;;;;;;;;;;;mBAlBjB,4BACA,kBACJ,OAAA,CAAM;;0BAGH;;;QAEH,OAAA,CAAM;;uBAEU;;;;;YAEsC;;;cAOhD,iBAAe,OAAA,CAAA,0BAAA,uBAAA,OAAA,CAAA,cAAA"}
@@ -0,0 +1,90 @@
1
+ import "../utils-mWJR2N24.js";
2
+ import "../button-hBUFMmsZ.js";
3
+ import "../spinner-Bo0sUZEg.js";
4
+ import { t as FileUpload } from "../file-upload-DeCIv13t.js";
5
+ import { n as useFileUpload } from "../use-file-upload-Dxrej28u.js";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import * as React$1 from "react";
8
+
9
+ //#region src/components/file-upload-field.tsx
10
+ const FileUploadField = React$1.forwardRef(function FileUploadField$1({ size = "default", dropzoneText = "Paste Or Drag & Drop Files Here", buttonText = "Browse for files", showFileList = true, initialFiles = [], disabled = false, className, render, renderFileItem, onItemClick, onError, maxFiles, maxSize, minSize, accept, multiple = false, onFilesChange, onFileAdd, onFileRemove, upload: uploadConfig }, ref) {
11
+ const uploadHook = useFileUpload({
12
+ maxFiles,
13
+ maxSize,
14
+ minSize,
15
+ accept,
16
+ multiple,
17
+ initialFiles: initialFiles.map((f) => ({
18
+ ...f,
19
+ id: f.id,
20
+ name: f.name,
21
+ size: f.size,
22
+ type: f.type,
23
+ url: f.url
24
+ })),
25
+ onFilesChange,
26
+ onFileAdd,
27
+ onFileRemove,
28
+ upload: uploadConfig
29
+ });
30
+ const { files, errors, retryUpload, removeFile, reset, clearFiles } = uploadHook;
31
+ React$1.useImperativeHandle(ref, () => ({
32
+ reset: (newFiles) => reset(newFiles),
33
+ clearFiles: () => clearFiles(),
34
+ getFiles: () => files
35
+ }), [
36
+ reset,
37
+ clearFiles,
38
+ files
39
+ ]);
40
+ React$1.useEffect(() => {
41
+ if (errors.length > 0 && onError) onError({
42
+ type: "validation",
43
+ message: errors[0]
44
+ });
45
+ }, [errors, onError]);
46
+ const renderDefaultFileItem = (file) => {
47
+ if (renderFileItem) return renderFileItem(file, {
48
+ remove: () => removeFile(file.id),
49
+ retry: () => retryUpload(file.id)
50
+ });
51
+ return /* @__PURE__ */ jsx(FileUpload.ListItem, {
52
+ file,
53
+ onItemClick
54
+ }, file.id);
55
+ };
56
+ return /* @__PURE__ */ jsxs(FileUpload.Root, {
57
+ upload: uploadHook,
58
+ accept,
59
+ multiple,
60
+ disabled,
61
+ className,
62
+ children: [
63
+ /* @__PURE__ */ jsx(FileUpload.Dropzone, {
64
+ size,
65
+ dropzoneText,
66
+ browseText: buttonText,
67
+ render
68
+ }),
69
+ errors.length > 0 && /* @__PURE__ */ jsx("div", {
70
+ className: "text-destructive text-sm",
71
+ children: errors.map((error, i) => /* @__PURE__ */ jsx("p", { children: error }, i))
72
+ }),
73
+ showFileList && files.length > 0 && /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs("div", {
74
+ className: "mb-2 flex items-center justify-between",
75
+ children: [/* @__PURE__ */ jsx("span", {
76
+ className: "text-foreground text-sm font-medium",
77
+ children: multiple ? `Files (${files.length})` : "Selected file"
78
+ }), multiple && files.length > 1 && /* @__PURE__ */ jsx(FileUpload.ClearAll, {
79
+ size: "sm",
80
+ className: "text-destructive hover:text-destructive/80",
81
+ children: "Remove all"
82
+ })]
83
+ }), /* @__PURE__ */ jsx(FileUpload.List, { children: files.map(renderDefaultFileItem) })] })
84
+ ]
85
+ }, uploadHook.instanceKey);
86
+ });
87
+
88
+ //#endregion
89
+ export { FileUploadField };
90
+ //# sourceMappingURL=file-upload-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-upload-field.js","names":["React","FileUploadField"],"sources":["../../src/components/file-upload-field.tsx"],"sourcesContent":["import * as React from \"react\";\nimport {\n FileUpload,\n type DropzoneRenderProps,\n type DropzoneState,\n} from \"@px-ui/ui/components/file-upload\";\nimport {\n useFileUpload,\n type UseFileUploadOptions,\n type FileUploadItem,\n type FileMetadata,\n} from \"@px-ui/ui/hooks/use-file-upload\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface FileUploadFieldRef {\n /** Reset the file upload state, optionally with new initial files */\n reset: (newFiles?: FileMetadata[]) => void;\n /** Clear all files */\n clearFiles: () => void;\n /** Get current files */\n getFiles: () => FileUploadItem[];\n}\n\nexport interface FileUploadFieldProps\n extends Omit<UseFileUploadOptions, \"initialFiles\"> {\n /** Size of the dropzone (ignored when using render prop) */\n size?: \"sm\" | \"default\" | \"lg\";\n /** Text displayed in the dropzone (ignored when using render prop) */\n dropzoneText?: string;\n /** Text for the browse/upload button (ignored when using render prop) */\n buttonText?: string;\n /** Show file list below the dropzone */\n showFileList?: boolean;\n /** Initial files (already uploaded) */\n initialFiles?: Array<{\n id: string;\n name: string;\n size: number;\n type: string;\n url: string;\n }>;\n /** Whether the upload is disabled */\n disabled?: boolean;\n /** Custom className */\n className?: string;\n /**\n * Render prop for complete dropzone customization.\n * Receives props to spread and state for conditional styling.\n */\n render?: (\n props: DropzoneRenderProps,\n state: DropzoneState,\n ) => React.ReactElement;\n /** Render prop for custom file item rendering */\n renderFileItem?: (\n file: FileUploadItem,\n actions: { remove: () => void; retry: () => void },\n ) => React.ReactNode;\n /** Click handler for file list items (for preview, etc.) */\n onItemClick?: (file: FileUploadItem) => void;\n /** Error handler */\n onError?: (error: { type: string; message: string; files?: File[] }) => void;\n}\n\n// ============================================================================\n// Main Component\n// ============================================================================\n\nexport const FileUploadField = React.forwardRef<\n FileUploadFieldRef,\n FileUploadFieldProps\n>(function FileUploadField(\n {\n size = \"default\",\n dropzoneText = \"Paste Or Drag & Drop Files Here\",\n buttonText = \"Browse for files\",\n showFileList = true,\n initialFiles = [],\n disabled = false,\n className,\n render,\n renderFileItem,\n onItemClick,\n onError,\n // Hook options\n maxFiles,\n maxSize,\n minSize,\n accept,\n multiple = false,\n onFilesChange,\n onFileAdd,\n onFileRemove,\n upload: uploadConfig,\n },\n ref,\n) {\n const uploadHook = useFileUpload({\n maxFiles,\n maxSize,\n minSize,\n accept,\n multiple,\n initialFiles: initialFiles.map((f) => ({\n ...f,\n id: f.id,\n name: f.name,\n size: f.size,\n type: f.type,\n url: f.url,\n })),\n onFilesChange,\n onFileAdd,\n onFileRemove,\n upload: uploadConfig,\n });\n\n const { files, errors, retryUpload, removeFile, reset, clearFiles } =\n uploadHook;\n\n // Expose reset method via ref\n React.useImperativeHandle(\n ref,\n () => ({\n reset: (newFiles?: FileMetadata[]) => reset(newFiles),\n clearFiles: () => clearFiles(),\n getFiles: () => files,\n }),\n [reset, clearFiles, files],\n );\n\n // Handle errors\n React.useEffect(() => {\n if (errors.length > 0 && onError) {\n onError({\n type: \"validation\",\n message: errors[0],\n });\n }\n }, [errors, onError]);\n\n // Render file item using ListItem or custom render prop\n const renderDefaultFileItem = (file: FileUploadItem) => {\n if (renderFileItem) {\n return renderFileItem(file, {\n remove: () => removeFile(file.id),\n retry: () => retryUpload(file.id),\n });\n }\n\n return (\n <FileUpload.ListItem\n key={file.id}\n file={file}\n onItemClick={onItemClick}\n />\n );\n };\n\n return (\n <FileUpload.Root\n key={uploadHook.instanceKey}\n upload={uploadHook}\n accept={accept}\n multiple={multiple}\n disabled={disabled}\n className={className}\n >\n <FileUpload.Dropzone\n size={size}\n dropzoneText={dropzoneText}\n browseText={buttonText}\n render={render}\n />\n\n {/* Errors */}\n {errors.length > 0 && (\n <div className=\"text-destructive text-sm\">\n {errors.map((error, i) => (\n <p key={i}>{error}</p>\n ))}\n </div>\n )}\n\n {/* File List */}\n {showFileList && files.length > 0 && (\n <div>\n <div className=\"mb-2 flex items-center justify-between\">\n <span className=\"text-foreground text-sm font-medium\">\n {multiple ? `Files (${files.length})` : \"Selected file\"}\n </span>\n {multiple && files.length > 1 && (\n <FileUpload.ClearAll\n size=\"sm\"\n className=\"text-destructive hover:text-destructive/80\"\n >\n Remove all\n </FileUpload.ClearAll>\n )}\n </div>\n\n <FileUpload.List>{files.map(renderDefaultFileItem)}</FileUpload.List>\n </div>\n )}\n </FileUpload.Root>\n );\n});\n\nexport type {\n FileUploadItem,\n UploadConfig,\n UseFileUploadOptions as FileUploadWithUploaderOptions,\n FileMetadata,\n} from \"@px-ui/ui/hooks/use-file-upload\";\nexport type {\n DropzoneRenderProps,\n DropzoneState,\n} from \"@px-ui/ui/components/file-upload\";\n"],"mappings":";;;;;;;;;AAuEA,MAAa,kBAAkBA,QAAM,WAGnC,SAASC,kBACT,EACE,OAAO,WACP,eAAe,mCACf,aAAa,oBACb,eAAe,MACf,eAAe,EAAE,EACjB,WAAW,OACX,WACA,QACA,gBACA,aACA,SAEA,UACA,SACA,SACA,QACA,WAAW,OACX,eACA,WACA,cACA,QAAQ,gBAEV,KACA;CACA,MAAM,aAAa,cAAc;EAC/B;EACA;EACA;EACA;EACA;EACA,cAAc,aAAa,KAAK,OAAO;GACrC,GAAG;GACH,IAAI,EAAE;GACN,MAAM,EAAE;GACR,MAAM,EAAE;GACR,MAAM,EAAE;GACR,KAAK,EAAE;GACR,EAAE;EACH;EACA;EACA;EACA,QAAQ;EACT,CAAC;CAEF,MAAM,EAAE,OAAO,QAAQ,aAAa,YAAY,OAAO,eACrD;AAGF,SAAM,oBACJ,YACO;EACL,QAAQ,aAA8B,MAAM,SAAS;EACrD,kBAAkB,YAAY;EAC9B,gBAAgB;EACjB,GACD;EAAC;EAAO;EAAY;EAAM,CAC3B;AAGD,SAAM,gBAAgB;AACpB,MAAI,OAAO,SAAS,KAAK,QACvB,SAAQ;GACN,MAAM;GACN,SAAS,OAAO;GACjB,CAAC;IAEH,CAAC,QAAQ,QAAQ,CAAC;CAGrB,MAAM,yBAAyB,SAAyB;AACtD,MAAI,eACF,QAAO,eAAe,MAAM;GAC1B,cAAc,WAAW,KAAK,GAAG;GACjC,aAAa,YAAY,KAAK,GAAG;GAClC,CAAC;AAGJ,SACE,oBAAC,WAAW;GAEJ;GACO;KAFR,KAAK,GAGV;;AAIN,QACE,qBAAC,WAAW;EAEV,QAAQ;EACA;EACE;EACA;EACC;;GAEX,oBAAC,WAAW;IACJ;IACQ;IACd,YAAY;IACJ;KACR;GAGD,OAAO,SAAS,KACf,oBAAC;IAAI,WAAU;cACZ,OAAO,KAAK,OAAO,MAClB,oBAAC,iBAAW,SAAJ,EAAc,CACtB;KACE;GAIP,gBAAgB,MAAM,SAAS,KAC9B,qBAAC,oBACC,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAK,WAAU;eACb,WAAW,UAAU,MAAM,OAAO,KAAK;MACnC,EACN,YAAY,MAAM,SAAS,KAC1B,oBAAC,WAAW;KACV,MAAK;KACL,WAAU;eACX;MAEqB;KAEpB,EAEN,oBAAC,WAAW,kBAAM,MAAM,IAAI,sBAAsB,GAAmB,IACjE;;IAzCH,WAAW,YA2CA;EAEpB"}
@@ -0,0 +1,4 @@
1
+ import "../button-BiiFfKiR.js";
2
+ import "../use-file-upload-yy-xLBtn.js";
3
+ import { a as FileUpload, c as ListProps, i as DropzoneState, l as RootProps, n as DropzoneProps, o as HiddenInputProps, r as DropzoneRenderProps, s as ListItemProps, t as ClearAllProps, u as getFileTypeIcon } from "../file-upload-D8hgfjvA.js";
4
+ export { ClearAllProps, DropzoneProps, DropzoneRenderProps, DropzoneState, FileUpload, HiddenInputProps, ListItemProps, ListProps, RootProps, getFileTypeIcon };
@@ -0,0 +1,6 @@
1
+ import "../utils-mWJR2N24.js";
2
+ import "../button-hBUFMmsZ.js";
3
+ import "../spinner-Bo0sUZEg.js";
4
+ import { n as getFileTypeIcon, t as FileUpload } from "../file-upload-DeCIv13t.js";
5
+
6
+ export { FileUpload, getFileTypeIcon };
@@ -0,0 +1,21 @@
1
+ import * as react_jsx_runtime156 from "react/jsx-runtime";
2
+ import { PreviewCard } from "@base-ui/react/preview-card";
3
+
4
+ //#region src/components/hover-card.d.ts
5
+ declare function HoverCard({
6
+ ...props
7
+ }: PreviewCard.Root.Props): react_jsx_runtime156.JSX.Element;
8
+ declare function HoverCardTrigger({
9
+ ...props
10
+ }: PreviewCard.Trigger.Props): react_jsx_runtime156.JSX.Element;
11
+ declare function HoverCardContent({
12
+ className,
13
+ side,
14
+ sideOffset,
15
+ align,
16
+ alignOffset,
17
+ ...props
18
+ }: PreviewCard.Popup.Props & Pick<PreviewCard.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset">): react_jsx_runtime156.JSX.Element;
19
+ //#endregion
20
+ export { HoverCard, HoverCardContent, HoverCardTrigger };
21
+ //# sourceMappingURL=hover-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hover-card.d.ts","names":[],"sources":["../../src/components/hover-card.tsx"],"sourcesContent":[],"mappings":";;;;iBAMS,SAAA;;GAAwB,WAAA,CAAqB,IAAA,CAAK,QAAK,oBAAA,CAAA,GAAA,CAAA;iBAIvD,gBAAA;;GAA+B,WAAA,CAAqB,OAAA,CAAQ,QAAK,oBAAA,CAAA,GAAA,CAAA;iBAMjE,gBAAA;;;;;;;GAON,WAAA,CAAqB,KAAA,CAAM,QAC5B,KACE,WAAA,CAAqB,UAAA,CAAW,0DAEjC,oBAAA,CAAA,GAAA,CAAA"}
@@ -0,0 +1,40 @@
1
+ "use client";
2
+
3
+ import { t as cn } from "../utils-mWJR2N24.js";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import { PreviewCard } from "@base-ui/react/preview-card";
6
+
7
+ //#region src/components/hover-card.tsx
8
+ function HoverCard({ ...props }) {
9
+ return /* @__PURE__ */ jsx(PreviewCard.Root, {
10
+ "data-slot": "hover-card",
11
+ ...props
12
+ });
13
+ }
14
+ function HoverCardTrigger({ ...props }) {
15
+ return /* @__PURE__ */ jsx(PreviewCard.Trigger, {
16
+ "data-slot": "hover-card-trigger",
17
+ ...props
18
+ });
19
+ }
20
+ function HoverCardContent({ className, side = "bottom", sideOffset = 4, align = "center", alignOffset = 4, ...props }) {
21
+ return /* @__PURE__ */ jsx(PreviewCard.Portal, {
22
+ "data-slot": "hover-card-portal",
23
+ children: /* @__PURE__ */ jsx(PreviewCard.Positioner, {
24
+ align,
25
+ alignOffset,
26
+ side,
27
+ sideOffset,
28
+ className: "isolate z-50",
29
+ children: /* @__PURE__ */ jsx(PreviewCard.Popup, {
30
+ "data-slot": "hover-card-content",
31
+ className: cn("z-50 w-64 origin-(--transform-origin) rounded-lg bg-popover p-4 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-start-2 data-[side=inline-start]:slide-in-from-end-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className),
32
+ ...props
33
+ })
34
+ })
35
+ });
36
+ }
37
+
38
+ //#endregion
39
+ export { HoverCard, HoverCardContent, HoverCardTrigger };
40
+ //# sourceMappingURL=hover-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hover-card.js","names":["PreviewCardPrimitive"],"sources":["../../src/components/hover-card.tsx"],"sourcesContent":["\"use client\"\n\nimport { PreviewCard as PreviewCardPrimitive } from \"@base-ui/react/preview-card\"\n\nimport { cn } from \"@px-ui/ui/lib/utils\"\n\nfunction HoverCard({ ...props }: PreviewCardPrimitive.Root.Props) {\n return <PreviewCardPrimitive.Root data-slot=\"hover-card\" {...props} />\n}\n\nfunction HoverCardTrigger({ ...props }: PreviewCardPrimitive.Trigger.Props) {\n return (\n <PreviewCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />\n )\n}\n\nfunction HoverCardContent({\n className,\n side = \"bottom\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 4,\n ...props\n}: PreviewCardPrimitive.Popup.Props &\n Pick<\n PreviewCardPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <PreviewCardPrimitive.Portal data-slot=\"hover-card-portal\">\n <PreviewCardPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <PreviewCardPrimitive.Popup\n data-slot=\"hover-card-content\"\n className={cn(\n \"z-50 w-64 origin-(--transform-origin) rounded-lg bg-popover p-4 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-start-2 data-[side=inline-start]:slide-in-from-end-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className\n )}\n {...props}\n />\n </PreviewCardPrimitive.Positioner>\n </PreviewCardPrimitive.Portal>\n )\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent }\n"],"mappings":";;;;;;;AAMA,SAAS,UAAU,EAAE,GAAG,SAA0C;AAChE,QAAO,oBAACA,YAAqB;EAAK,aAAU;EAAa,GAAI;GAAS;;AAGxE,SAAS,iBAAiB,EAAE,GAAG,SAA6C;AAC1E,QACE,oBAACA,YAAqB;EAAQ,aAAU;EAAqB,GAAI;GAAS;;AAI9E,SAAS,iBAAiB,EACxB,WACA,OAAO,UACP,aAAa,GACb,QAAQ,UACR,cAAc,GACd,GAAG,SAKA;AACH,QACE,oBAACA,YAAqB;EAAO,aAAU;YACrC,oBAACA,YAAqB;GACb;GACM;GACP;GACM;GACZ,WAAU;aAEV,oBAACA,YAAqB;IACpB,aAAU;IACV,WAAW,GACT,8hBACA,UACD;IACD,GAAI;KACJ;IAC8B;GACN"}
@@ -0,0 +1,46 @@
1
+ import { t as Button } from "../button-BiiFfKiR.js";
2
+ import * as react_jsx_runtime128 from "react/jsx-runtime";
3
+ import * as React$1 from "react";
4
+ import { VariantProps } from "class-variance-authority";
5
+ import * as class_variance_authority_types6 from "class-variance-authority/types";
6
+
7
+ //#region src/components/input-group.d.ts
8
+ declare function InputGroup({
9
+ className,
10
+ ...props
11
+ }: React$1.ComponentProps<"div">): react_jsx_runtime128.JSX.Element;
12
+ declare const inputGroupAddonVariants: (props?: ({
13
+ align?: "inline-start" | "inline-end" | "block-start" | "block-end" | null | undefined;
14
+ } & class_variance_authority_types6.ClassProp) | undefined) => string;
15
+ declare function InputGroupAddon({
16
+ className,
17
+ align,
18
+ ...props
19
+ }: React$1.ComponentProps<"div"> & VariantProps<typeof inputGroupAddonVariants>): react_jsx_runtime128.JSX.Element;
20
+ declare const inputGroupButtonVariants: (props?: ({
21
+ size?: "xs" | "sm" | "icon-xs" | "icon-sm" | null | undefined;
22
+ } & class_variance_authority_types6.ClassProp) | undefined) => string;
23
+ declare function InputGroupButton({
24
+ className,
25
+ type,
26
+ variant,
27
+ size,
28
+ ...props
29
+ }: Omit<React$1.ComponentProps<typeof Button>, "size" | "type"> & VariantProps<typeof inputGroupButtonVariants> & {
30
+ type?: "button" | "submit" | "reset";
31
+ }): react_jsx_runtime128.JSX.Element;
32
+ declare function InputGroupText({
33
+ className,
34
+ ...props
35
+ }: React$1.ComponentProps<"span">): react_jsx_runtime128.JSX.Element;
36
+ declare function InputGroupInput({
37
+ className,
38
+ ...props
39
+ }: React$1.ComponentProps<"input">): react_jsx_runtime128.JSX.Element;
40
+ declare function InputGroupTextarea({
41
+ className,
42
+ ...props
43
+ }: React$1.ComponentProps<"textarea">): react_jsx_runtime128.JSX.Element;
44
+ //#endregion
45
+ export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea };
46
+ //# sourceMappingURL=input-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-group.d.ts","names":[],"sources":["../../src/components/input-group.tsx"],"sourcesContent":[],"mappings":";;;;;;;iBAUS,UAAA;;;GAAoC,OAAA,CAAM,wBAAqB,oBAAA,CAAA,GAAA,CAAA;cAclE;;IAmBL,+BAAA,CAAA;AArCoD,iBAuC5C,eAAA,CAnCU;EAAA,SAAA;EAAA,KAAA;EAAA,GAAA;AAAA,CAAA,EAuChB,OAAA,CAAM,cAvCU,CAAA,KAAA,CAAA,GAuCc,YAvCd,CAAA,OAuCkC,uBAvClC,CAAA,CAAA,EAuC0D,oBAAA,CAAA,GAAA,CAAA,OAvC1D;cAyDb,wBAzDgB,EAAA,CAAA,KAAkD,CAAlD,EAAA,CAAA;EAAuB,IAAA,CAAM,EAAA,IAAA,GAAA,IAAA,GAAA,SAAA,GAAA,SAAA,GAAA,IAAA,GAAA,SAAA;CAAqB,GAyEvE,+BAAA,CAAA,SAzEuE,CAAA,GAAA,SAAA,EAAA,GAAA,MAAA;iBA2E/D,gBAAA,CA3E+D;EAAA,SAAA;EAAA,IAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;CAAA,EAiFrE,IAjFqE,CAiFhE,OAAA,CAAM,cAjF0D,CAAA,OAiFpC,MAjFoC,CAAA,EAAA,MAAA,GAAA,MAAA,CAAA,GAkFtE,YAlFsE,CAAA,OAkFlD,wBAlFkD,CAAA,GAAA;EAclE,IAAA,CAAA,EAAA,QAAA,GAAA,QAmBL,GAAA,OAAA;IAmDE,oBAAA,CAAA,GAAA,CAAA,OAjDqB;iBA6Df,cAAA,CA5DP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA4D+C,OAAA,CAAM,cA5DrD,CAAA,MAAA,CAAA,CAAA,EA4D2E,oBAAA,CAAA,GAAA,CAAA,OA5D3E;iBAwEO,eAAA,CAvEP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA0EC,OAAA,CAAM,cA1EP,CAAA,OAAA,CAAA,CAAA,EA0E8B,oBAAA,CAAA,GAAA,CAAA,OA1E9B;iBAuFO,kBAAA,CArFA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAwFN,OAAA,CAAM,cAxFA,CAAA,UAAA,CAAA,CAAA,EAwF0B,oBAAA,CAAA,GAAA,CAAA,OAxF1B"}
@@ -0,0 +1,9 @@
1
+ "use client";
2
+
3
+ import "../utils-mWJR2N24.js";
4
+ import "../button-hBUFMmsZ.js";
5
+ import "../input-8jqdnUZl.js";
6
+ import "../textarea-Cq0o323P.js";
7
+ import { a as InputGroupText, i as InputGroupInput, n as InputGroupAddon, o as InputGroupTextarea, r as InputGroupButton, t as InputGroup } from "../input-group-DqEkmpXW.js";
8
+
9
+ export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea };
@@ -0,0 +1,24 @@
1
+ import * as react_jsx_runtime134 from "react/jsx-runtime";
2
+ import * as React$1 from "react";
3
+ import { OTPFieldPreview } from "@base-ui/react/otp-field";
4
+
5
+ //#region src/components/input-otp.d.ts
6
+ declare function InputOTP({
7
+ className,
8
+ ...props
9
+ }: OTPFieldPreview.Root.Props): react_jsx_runtime134.JSX.Element;
10
+ declare function InputOTPGroup({
11
+ className,
12
+ ...props
13
+ }: React$1.ComponentProps<"div">): react_jsx_runtime134.JSX.Element;
14
+ declare function InputOTPSlot({
15
+ className,
16
+ ...props
17
+ }: OTPFieldPreview.Input.Props): react_jsx_runtime134.JSX.Element;
18
+ declare function InputOTPSeparator({
19
+ className,
20
+ ...props
21
+ }: OTPFieldPreview.Separator.Props): react_jsx_runtime134.JSX.Element;
22
+ //#endregion
23
+ export { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot };
24
+ //# sourceMappingURL=input-otp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-otp.d.ts","names":[],"sources":["../../src/components/input-otp.tsx"],"sourcesContent":[],"mappings":";;;;;iBAMS,QAAA;;;GAGN,eAAA,CAAkB,IAAA,CAAK,QAAK,oBAAA,CAAA,GAAA,CAAA;iBAatB,aAAA;;;GAAuC,OAAA,CAAM,wBAAqB,oBAAA,CAAA,GAAA,CAAA;iBAalE,YAAA;;;GAAsC,eAAA,CAAkB,KAAA,CAAM,QAAK,oBAAA,CAAA,GAAA,CAAA;AAlCG,iBA+CtE,iBAAA,CA1CQ;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA6Cd,eAAA,CAAkB,SAAA,CAAU,KA7Cd,CAAA,EA6CmB,oBAAA,CAAA,GAAA,CAAA,OA7CnB"}
@@ -0,0 +1,40 @@
1
+ import { t as cn } from "../utils-mWJR2N24.js";
2
+ import { MinusIcon } from "lucide-react";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import "react";
5
+ import { OTPFieldPreview } from "@base-ui/react/otp-field";
6
+
7
+ //#region src/components/input-otp.tsx
8
+ function InputOTP({ className, ...props }) {
9
+ return /* @__PURE__ */ jsx(OTPFieldPreview.Root, {
10
+ "data-slot": "input-otp",
11
+ className: cn("flex items-center gap-2 has-disabled:opacity-50", className),
12
+ ...props
13
+ });
14
+ }
15
+ function InputOTPGroup({ className, ...props }) {
16
+ return /* @__PURE__ */ jsx("div", {
17
+ "data-slot": "input-otp-group",
18
+ className: cn("flex items-center rounded-md has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 dark:has-aria-invalid:ring-destructive/40", className),
19
+ ...props
20
+ });
21
+ }
22
+ function InputOTPSlot({ className, ...props }) {
23
+ return /* @__PURE__ */ jsx(OTPFieldPreview.Input, {
24
+ "data-slot": "input-otp-slot",
25
+ className: cn("relative flex size-9 items-center justify-center border-y border-e border-input bg-transparent text-center text-sm caret-foreground shadow-xs transition-all outline-none first:rounded-s-md first:border-s last:rounded-e-md focus:z-10 focus:border-ring focus:ring-3 focus:ring-ring/50 aria-invalid:border-destructive focus:aria-invalid:border-destructive focus:aria-invalid:ring-destructive/20 disabled:cursor-not-allowed dark:bg-input/30 dark:focus:aria-invalid:ring-destructive/40", className),
26
+ ...props
27
+ });
28
+ }
29
+ function InputOTPSeparator({ className, ...props }) {
30
+ return /* @__PURE__ */ jsx(OTPFieldPreview.Separator, {
31
+ "data-slot": "input-otp-separator",
32
+ className: cn("flex items-center [&_svg:not([class*='size-'])]:size-4", className),
33
+ ...props,
34
+ children: /* @__PURE__ */ jsx(MinusIcon, {})
35
+ });
36
+ }
37
+
38
+ //#endregion
39
+ export { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot };
40
+ //# sourceMappingURL=input-otp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-otp.js","names":["OTPFieldPrimitive"],"sources":["../../src/components/input-otp.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { OTPFieldPreview as OTPFieldPrimitive } from \"@base-ui/react/otp-field\"\nimport { MinusIcon } from \"lucide-react\"\n\nimport { cn } from \"@px-ui/ui/lib/utils\"\n\nfunction InputOTP({\n className,\n ...props\n}: OTPFieldPrimitive.Root.Props) {\n return (\n <OTPFieldPrimitive.Root\n data-slot=\"input-otp\"\n className={cn(\n \"flex items-center gap-2 has-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputOTPGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-otp-group\"\n className={cn(\n \"flex items-center rounded-md has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 dark:has-aria-invalid:ring-destructive/40\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputOTPSlot({ className, ...props }: OTPFieldPrimitive.Input.Props) {\n return (\n <OTPFieldPrimitive.Input\n data-slot=\"input-otp-slot\"\n className={cn(\n \"relative flex size-9 items-center justify-center border-y border-e border-input bg-transparent text-center text-sm caret-foreground shadow-xs transition-all outline-none first:rounded-s-md first:border-s last:rounded-e-md focus:z-10 focus:border-ring focus:ring-3 focus:ring-ring/50 aria-invalid:border-destructive focus:aria-invalid:border-destructive focus:aria-invalid:ring-destructive/20 disabled:cursor-not-allowed dark:bg-input/30 dark:focus:aria-invalid:ring-destructive/40\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputOTPSeparator({\n className,\n ...props\n}: OTPFieldPrimitive.Separator.Props) {\n return (\n <OTPFieldPrimitive.Separator\n data-slot=\"input-otp-separator\"\n className={cn(\n \"flex items-center [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <MinusIcon />\n </OTPFieldPrimitive.Separator>\n )\n}\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator }\n"],"mappings":";;;;;;;AAMA,SAAS,SAAS,EAChB,WACA,GAAG,SAC4B;AAC/B,QACE,oBAACA,gBAAkB;EACjB,aAAU;EACV,WAAW,GACT,mDACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,cAAc,EAAE,WAAW,GAAG,SAAsC;AAC3E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,2KACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,aAAa,EAAE,WAAW,GAAG,SAAwC;AAC5E,QACE,oBAACA,gBAAkB;EACjB,aAAU;EACV,WAAW,GACT,oeACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,kBAAkB,EACzB,WACA,GAAG,SACiC;AACpC,QACE,oBAACA,gBAAkB;EACjB,aAAU;EACV,WAAW,GACT,0DACA,UACD;EACD,GAAI;YAEJ,oBAAC,cAAY;GACe"}