@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,28 @@
1
+ import { t as cn } from "../utils-mWJR2N24.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { Collapsible as Collapsible$1 } from "@base-ui/react/collapsible";
4
+
5
+ //#region src/components/collapsible.tsx
6
+ function Collapsible({ ...props }) {
7
+ return /* @__PURE__ */ jsx(Collapsible$1.Root, {
8
+ "data-slot": "collapsible",
9
+ ...props
10
+ });
11
+ }
12
+ function CollapsibleTrigger({ ...props }) {
13
+ return /* @__PURE__ */ jsx(Collapsible$1.Trigger, {
14
+ "data-slot": "collapsible-trigger",
15
+ ...props
16
+ });
17
+ }
18
+ function CollapsibleContent({ animate, className, ...props }) {
19
+ return /* @__PURE__ */ jsx(Collapsible$1.Panel, {
20
+ "data-slot": "collapsible-content",
21
+ className: cn(animate && "h-(--collapsible-panel-height) overflow-hidden transition-[height] duration-200 ease-out data-ending-style:h-0 data-starting-style:h-0", className),
22
+ ...props
23
+ });
24
+ }
25
+
26
+ //#endregion
27
+ export { Collapsible, CollapsibleContent, CollapsibleTrigger };
28
+ //# sourceMappingURL=collapsible.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collapsible.js","names":["CollapsiblePrimitive"],"sources":["../../src/components/collapsible.tsx"],"sourcesContent":["import { Collapsible as CollapsiblePrimitive } from \"@base-ui/react/collapsible\"\n\nimport { cn } from \"@px-ui/ui/lib/utils\"\n\nfunction Collapsible({ ...props }: CollapsiblePrimitive.Root.Props) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />\n}\n\nfunction CollapsibleTrigger({ ...props }: CollapsiblePrimitive.Trigger.Props) {\n return (\n <CollapsiblePrimitive.Trigger data-slot=\"collapsible-trigger\" {...props} />\n )\n}\n\ntype CollapsibleContentProps = CollapsiblePrimitive.Panel.Props & {\n /**\n * Animate the panel's open/close with a height transition.\n * Adds `overflow-hidden`, which can conflict with grid/subgrid layouts.\n */\n animate?: boolean\n}\n\nfunction CollapsibleContent({\n animate,\n className,\n ...props\n}: CollapsibleContentProps) {\n return (\n <CollapsiblePrimitive.Panel\n data-slot=\"collapsible-content\"\n className={cn(\n animate &&\n \"h-(--collapsible-panel-height) overflow-hidden transition-[height] duration-200 ease-out data-ending-style:h-0 data-starting-style:h-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n"],"mappings":";;;;;AAIA,SAAS,YAAY,EAAE,GAAG,SAA0C;AAClE,QAAO,oBAACA,cAAqB;EAAK,aAAU;EAAc,GAAI;GAAS;;AAGzE,SAAS,mBAAmB,EAAE,GAAG,SAA6C;AAC5E,QACE,oBAACA,cAAqB;EAAQ,aAAU;EAAsB,GAAI;GAAS;;AAY/E,SAAS,mBAAmB,EAC1B,SACA,WACA,GAAG,SACuB;AAC1B,QACE,oBAACA,cAAqB;EACpB,aAAU;EACV,WAAW,GACT,WACE,0IACF,UACD;EACD,GAAI;GACJ"}
@@ -0,0 +1,3 @@
1
+ import "../use-async-options-DHR8q5qX.js";
2
+ import { _ as useComboboxAnchor, a as ComboboxClear, c as ComboboxGroup, d as ComboboxLabel, f as ComboboxList, g as ComboboxValue, h as ComboboxTrigger, i as ComboboxChipsInput, l as ComboboxInput, m as ComboboxStatus, n as ComboboxChip, o as ComboboxCollection, p as ComboboxSeparator, r as ComboboxChips, s as ComboboxContent, t as Combobox, u as ComboboxItem } from "../combobox-JXY6PiDq.js";
3
+ export { Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxClear, ComboboxCollection, ComboboxContent, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, useComboboxAnchor };
@@ -0,0 +1,13 @@
1
+ import "../utils-mWJR2N24.js";
2
+ import "../button-hBUFMmsZ.js";
3
+ import "../input-8jqdnUZl.js";
4
+ import "../textarea-Cq0o323P.js";
5
+ import "../input-group-DqEkmpXW.js";
6
+ import "../spinner-Bo0sUZEg.js";
7
+ import "../use-async-options-wZ9LJ2BJ.js";
8
+ import "../use-intersection-observer-CZfnep4z.js";
9
+ import "../use-infinite-scroll-CpbhGGT5.js";
10
+ import "../use-debounce-_qaEZqtt.js";
11
+ import { _ as useComboboxAnchor, a as ComboboxClear, c as ComboboxGroup, d as ComboboxLabel, f as ComboboxList, g as ComboboxValue, h as ComboboxTrigger, i as ComboboxChipsInput, l as ComboboxInput, m as ComboboxStatus, n as ComboboxChip, o as ComboboxCollection, p as ComboboxSeparator, r as ComboboxChips, s as ComboboxContent, t as Combobox, u as ComboboxItem } from "../combobox-CnpyzZ7B.js";
12
+
13
+ export { Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxClear, ComboboxCollection, ComboboxContent, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, useComboboxAnchor };
@@ -0,0 +1,78 @@
1
+ import * as react_jsx_runtime223 from "react/jsx-runtime";
2
+ import * as React$1 from "react";
3
+ import { Autocomplete } from "@base-ui/react/autocomplete";
4
+
5
+ //#region src/components/command.d.ts
6
+ declare function Command<ItemValue>({
7
+ className,
8
+ children,
9
+ ...props
10
+ }: Autocomplete.Root.Props<ItemValue> & {
11
+ className?: string;
12
+ }): react_jsx_runtime223.JSX.Element;
13
+ declare function CommandDialog<ItemValue>({
14
+ title,
15
+ description,
16
+ showCloseButton,
17
+ className,
18
+ open,
19
+ defaultOpen,
20
+ onOpenChange,
21
+ modal,
22
+ children,
23
+ ...props
24
+ }: Omit<Autocomplete.Root.Props<ItemValue>, "open" | "defaultOpen" | "onOpenChange" | "className"> & {
25
+ open?: boolean;
26
+ defaultOpen?: boolean;
27
+ onOpenChange?: (open: boolean) => void;
28
+ modal?: boolean;
29
+ title?: string;
30
+ description?: string;
31
+ className?: string;
32
+ showCloseButton?: boolean;
33
+ }): react_jsx_runtime223.JSX.Element;
34
+ declare function CommandInput({
35
+ className,
36
+ ...props
37
+ }: Autocomplete.Input.Props): react_jsx_runtime223.JSX.Element;
38
+ declare function CommandList({
39
+ className,
40
+ ...props
41
+ }: Autocomplete.List.Props): react_jsx_runtime223.JSX.Element;
42
+ declare function CommandEmpty({
43
+ className,
44
+ ...props
45
+ }: Autocomplete.Empty.Props): react_jsx_runtime223.JSX.Element;
46
+ declare function CommandGroup({
47
+ className,
48
+ heading,
49
+ children,
50
+ ...props
51
+ }: Autocomplete.Group.Props & {
52
+ heading?: React$1.ReactNode;
53
+ }): react_jsx_runtime223.JSX.Element;
54
+ declare function CommandCollection({
55
+ ...props
56
+ }: Autocomplete.Collection.Props): react_jsx_runtime223.JSX.Element;
57
+ declare function CommandItem({
58
+ className,
59
+ children,
60
+ value,
61
+ onSelect,
62
+ onClick,
63
+ ...props
64
+ }: Autocomplete.Item.Props & {
65
+ onSelect?: (value: ItemValueArg) => void;
66
+ }): react_jsx_runtime223.JSX.Element;
67
+ type ItemValueArg = Autocomplete.Item.Props["value"];
68
+ declare function CommandShortcut({
69
+ className,
70
+ ...props
71
+ }: React$1.ComponentProps<"span">): react_jsx_runtime223.JSX.Element;
72
+ declare function CommandSeparator({
73
+ className,
74
+ ...props
75
+ }: Autocomplete.Separator.Props): react_jsx_runtime223.JSX.Element;
76
+ //#endregion
77
+ export { Command, CommandCollection, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };
78
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","names":[],"sources":["../../src/components/command.tsx"],"sourcesContent":[],"mappings":";;;;;iBAmBS;;;;GAIN,YAAA,CAAa,IAAA,CAAK,MAAM;;IAAmC,oBAAA,CAAA,GAAA,CAAA;AApBJ,iBA0CjD,aA1BO,CAAA,SAAA,CAAA,CAAA;EAAA,KAAA;EAAA,WAAA;EAAA,eAAA;EAAA,SAAA;EAAA,IAAA;EAAA,WAAA;EAAA,YAAA;EAAA,KAAA;EAAA,QAAA;EAAA,GAAA;CAAA,EAqCb,IArCa,CAsCd,YAAA,CAAa,IAAA,CAAK,KAtCJ,CAsCU,SAtCV,CAAA,EAAA,MAAA,GAAA,aAAA,GAAA,cAAA,GAAA,WAAA,CAAA,GAAA;EACd,IAAA,CAAA,EAAA,OAAA;EACA,WAAA,CAAA,EAAA,OAAA;EAEyB,YAAA,CAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,GAAA,IAAA;EAAxB,KAAA,CAAA,EAAA,OAAkB;EAAyC,KAAA,CAAA,EAAA,MAAA;EAAA,WAAA,CAAA,EAAA,MAAA;EAsBrD,SAAA,CAAA,EAAA,MAAa;EACpB,eAAA,CAAA,EAAA,OAAA;CACA,CAAA,EAqBD,oBAAA,CAAA,GAAA,CAAA,OArBC;iBAgDO,YAAA,CA/CP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAkDC,YAAA,CAAa,KAAA,CAAM,KAlDpB,CAAA,EAkDyB,oBAAA,CAAA,GAAA,CAAA,OAlDzB;iBAsEO,WAAA,CArEP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAwEC,YAAA,CAAa,IAAA,CAAK,KAxEnB,CAAA,EAwEwB,oBAAA,CAAA,GAAA,CAAA,OAxExB;iBAqFO,YAAA,CApFP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAuFC,YAAA,CAAa,KAAA,CAAM,KAvFpB,CAAA,EAuFyB,oBAAA,CAAA,GAAA,CAAA,OAvFzB;iBAoGO,YAAA,CAnGP;EAAA,SAAA;EAAA,OAAA;EAAA,QAAA;EAAA,GAAA;CAAA,EAwGC,YAAA,CAAa,KAAA,CAAM,KAxGpB,GAAA;EACA,OAAA,CAAA,EAuGwC,OAAA,CAAM,SAvG9C;CACA,CAAA,EAsGyD,oBAAA,CAAA,GAAA,CAAA,OAtGzD;iBA0HO,iBAAA,CAzHP;EAAA,GAAA;AAAA,CAAA,EA2HC,YAAA,CAAa,UAAA,CAAW,KA3HzB,CAAA,EA2H8B,oBAAA,CAAA,GAAA,CAAA,OA3H9B;iBA+HO,WAAA,CA5HiB;EAAA,SAAA;EAAA,QAAA;EAAA,KAAA;EAAA,QAAA;EAAA,OAAA;EAAA,GAAA;CAAA,EAmIvB,YAAA,CAAa,IAAA,CAAK,KAnIK,GAAA;EAAxB,QAAA,CAAA,EAAa,CAAA,KAAK,EAoIC,YApID,EAAA,GAAA,IAAA;CADjB,CAAA,EAsIF,oBAAA,CAAA,GAAA,CAAA,OAtIE;KA0JE,YAAA,GAAe,YAAA,CAAa,IAAA,CAAK,KA9IrC,CAAA,OAAA,CAAA;iBAgJQ,eAAA,CAhJR;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAmJE,OAAA,CAAM,cAnJR,CAAA,MAAA,CAAA,CAAA,EAmJ8B,oBAAA,CAAA,GAAA,CAAA,OAnJ9B;AAAA,iBAgKQ,gBAAA,CArIY;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAwIlB,YAAA,CAAa,SAAA,CAAU,KAxIL,CAAA,EAwIU,oBAAA,CAAA,GAAA,CAAA,OAxIV"}
@@ -0,0 +1,125 @@
1
+ "use client";
2
+
3
+ import { t as cn } from "../utils-mWJR2N24.js";
4
+ import "../button-hBUFMmsZ.js";
5
+ import "../input-8jqdnUZl.js";
6
+ import "../textarea-Cq0o323P.js";
7
+ import { n as InputGroupAddon, t as InputGroup } from "../input-group-DqEkmpXW.js";
8
+ import { i as DialogDescription, l as DialogTitle, o as DialogHeader, r as DialogContent, t as Dialog } from "../dialog-CTqRrytc.js";
9
+ import { SearchIcon } from "lucide-react";
10
+ import { jsx, jsxs } from "react/jsx-runtime";
11
+ import "react";
12
+ import { Autocomplete } from "@base-ui/react/autocomplete";
13
+
14
+ //#region src/components/command.tsx
15
+ function Command({ className, children, ...props }) {
16
+ const Root = Autocomplete.Root;
17
+ return /* @__PURE__ */ jsx(Root, {
18
+ open: true,
19
+ inline: true,
20
+ autoHighlight: "always",
21
+ keepHighlight: true,
22
+ ...props,
23
+ children: /* @__PURE__ */ jsx("div", {
24
+ "data-slot": "command",
25
+ className: cn("flex size-full flex-col overflow-hidden rounded-xl! bg-popover p-1 text-popover-foreground", className),
26
+ children
27
+ })
28
+ });
29
+ }
30
+ function CommandDialog({ title = "Command Palette", description = "Search for a command to run...", showCloseButton = false, className, open, defaultOpen, onOpenChange, modal, children, ...props }) {
31
+ return /* @__PURE__ */ jsxs(Dialog, {
32
+ open,
33
+ defaultOpen,
34
+ onOpenChange,
35
+ modal,
36
+ children: [/* @__PURE__ */ jsxs(DialogHeader, {
37
+ className: "sr-only",
38
+ children: [/* @__PURE__ */ jsx(DialogTitle, { children: title }), /* @__PURE__ */ jsx(DialogDescription, { children: description })]
39
+ }), /* @__PURE__ */ jsx(DialogContent, {
40
+ className: cn("top-1/3 translate-y-0 overflow-hidden rounded-xl! p-0", className),
41
+ showCloseButton,
42
+ children: /* @__PURE__ */ jsx(Command, {
43
+ ...props,
44
+ children
45
+ })
46
+ })]
47
+ });
48
+ }
49
+ function CommandInput({ className, ...props }) {
50
+ return /* @__PURE__ */ jsx("div", {
51
+ "data-slot": "command-input-wrapper",
52
+ className: "p-1 pb-0",
53
+ children: /* @__PURE__ */ jsxs(InputGroup, {
54
+ className: "h-8! rounded-lg! border-input/30 bg-input/30 shadow-none! *:data-[slot=input-group-addon]:ps-2!",
55
+ children: [/* @__PURE__ */ jsx(Autocomplete.Input, {
56
+ "data-slot": "command-input",
57
+ className: cn("w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50", className),
58
+ ...props
59
+ }), /* @__PURE__ */ jsx(InputGroupAddon, { children: /* @__PURE__ */ jsx(SearchIcon, { className: "size-4 shrink-0 opacity-50" }) })]
60
+ })
61
+ });
62
+ }
63
+ function CommandList({ className, ...props }) {
64
+ return /* @__PURE__ */ jsx(Autocomplete.List, {
65
+ "data-slot": "command-list",
66
+ className: cn("ppx-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto p-1 outline-none", className),
67
+ ...props
68
+ });
69
+ }
70
+ function CommandEmpty({ className, ...props }) {
71
+ return /* @__PURE__ */ jsx(Autocomplete.Empty, {
72
+ "data-slot": "command-empty",
73
+ className: cn("py-6 text-center text-sm empty:p-0", className),
74
+ ...props
75
+ });
76
+ }
77
+ function CommandGroup({ className, heading, children, ...props }) {
78
+ return /* @__PURE__ */ jsxs(Autocomplete.Group, {
79
+ "data-slot": "command-group",
80
+ className: cn("text-foreground not-last:mb-1", className),
81
+ ...props,
82
+ children: [heading != null && /* @__PURE__ */ jsx(Autocomplete.GroupLabel, {
83
+ "data-slot": "command-group-heading",
84
+ className: "px-2 py-1.5 text-xs font-medium text-muted-foreground",
85
+ children: heading
86
+ }), children]
87
+ });
88
+ }
89
+ function CommandCollection({ ...props }) {
90
+ return /* @__PURE__ */ jsx(Autocomplete.Collection, {
91
+ "data-slot": "command-collection",
92
+ ...props
93
+ });
94
+ }
95
+ function CommandItem({ className, children, value, onSelect, onClick, ...props }) {
96
+ return /* @__PURE__ */ jsx(Autocomplete.Item, {
97
+ "data-slot": "command-item",
98
+ value,
99
+ onClick: (event) => {
100
+ onClick?.(event);
101
+ onSelect?.(value);
102
+ },
103
+ className: cn("group/command-item 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! data-disabled:pointer-events-none data-disabled:opacity-50 data-highlighted:bg-muted data-highlighted:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-highlighted:**:[svg]:text-foreground", className),
104
+ ...props,
105
+ children
106
+ });
107
+ }
108
+ function CommandShortcut({ className, ...props }) {
109
+ return /* @__PURE__ */ jsx("span", {
110
+ "data-slot": "command-shortcut",
111
+ className: cn("ms-auto text-xs tracking-ppx-widest text-muted-foreground group-data-highlighted/command-item:text-foreground", className),
112
+ ...props
113
+ });
114
+ }
115
+ function CommandSeparator({ className, ...props }) {
116
+ return /* @__PURE__ */ jsx(Autocomplete.Separator, {
117
+ "data-slot": "command-separator",
118
+ className: cn("-mx-1 h-px w-auto bg-border", className),
119
+ ...props
120
+ });
121
+ }
122
+
123
+ //#endregion
124
+ export { Command, CommandCollection, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };
125
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","names":[],"sources":["../../src/components/command.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { Autocomplete } from \"@base-ui/react/autocomplete\"\n\nimport { cn } from \"@px-ui/ui/lib/utils\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from \"@px-ui/ui/components/dialog\"\nimport {\n InputGroup,\n InputGroupAddon,\n} from \"@px-ui/ui/components/input-group\"\nimport { SearchIcon } from \"lucide-react\"\n\nfunction Command<ItemValue>({\n className,\n children,\n ...props\n}: Autocomplete.Root.Props<ItemValue> & { className?: string }) {\n // `Autocomplete.Root` is declared with two overloads (flat vs. grouped item\n // inference); spreading our generic `Props<ItemValue>` matches neither, so we\n // render through a single-signature alias.\n const Root = Autocomplete.Root as unknown as React.ComponentType<\n Autocomplete.Root.Props<ItemValue>\n >\n return (\n <Root open inline autoHighlight=\"always\" keepHighlight {...props}>\n <div\n data-slot=\"command\"\n className={cn(\n \"flex size-full flex-col overflow-hidden rounded-xl! bg-popover p-1 text-popover-foreground\",\n className\n )}\n >\n {children}\n </div>\n </Root>\n )\n}\n\nfunction CommandDialog<ItemValue>({\n title = \"Command Palette\",\n description = \"Search for a command to run...\",\n showCloseButton = false,\n className,\n open,\n defaultOpen,\n onOpenChange,\n modal,\n children,\n ...props\n}: Omit<\n Autocomplete.Root.Props<ItemValue>,\n \"open\" | \"defaultOpen\" | \"onOpenChange\" | \"className\"\n> & {\n open?: boolean\n defaultOpen?: boolean\n onOpenChange?: (open: boolean) => void\n modal?: boolean\n title?: string\n description?: string\n className?: string\n showCloseButton?: boolean\n}) {\n return (\n <Dialog\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n modal={modal}\n >\n <DialogHeader className=\"sr-only\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent\n className={cn(\n \"top-1/3 translate-y-0 overflow-hidden rounded-xl! p-0\",\n className\n )}\n showCloseButton={showCloseButton}\n >\n <Command {...(props as Autocomplete.Root.Props<ItemValue>)}>\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\nfunction CommandInput({\n className,\n ...props\n}: Autocomplete.Input.Props) {\n return (\n <div data-slot=\"command-input-wrapper\" className=\"p-1 pb-0\">\n <InputGroup className=\"h-8! rounded-lg! border-input/30 bg-input/30 shadow-none! *:data-[slot=input-group-addon]:ps-2!\">\n <Autocomplete.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}: Autocomplete.List.Props) {\n return (\n <Autocomplete.List\n data-slot=\"command-list\"\n className={cn(\n \"ppx-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto p-1 outline-none\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CommandEmpty({\n className,\n ...props\n}: Autocomplete.Empty.Props) {\n return (\n <Autocomplete.Empty\n data-slot=\"command-empty\"\n // Base UI keeps this element mounted for screen-reader announcements and\n // only nulls its children when there are results — so collapse the padding\n // (via `:empty`) instead of hiding the element, to avoid an empty gap.\n className={cn(\"py-6 text-center text-sm empty:p-0\", className)}\n {...props}\n />\n )\n}\n\nfunction CommandGroup({\n className,\n heading,\n children,\n ...props\n}: Autocomplete.Group.Props & { heading?: React.ReactNode }) {\n return (\n <Autocomplete.Group\n data-slot=\"command-group\"\n className={cn(\"text-foreground not-last:mb-1\", className)}\n {...props}\n >\n {heading != null && (\n <Autocomplete.GroupLabel\n data-slot=\"command-group-heading\"\n className=\"px-2 py-1.5 text-xs font-medium text-muted-foreground\"\n >\n {heading}\n </Autocomplete.GroupLabel>\n )}\n {children}\n </Autocomplete.Group>\n )\n}\n\nfunction CommandCollection({\n ...props\n}: Autocomplete.Collection.Props) {\n return <Autocomplete.Collection data-slot=\"command-collection\" {...props} />\n}\n\nfunction CommandItem({\n className,\n children,\n value,\n onSelect,\n onClick,\n ...props\n}: Autocomplete.Item.Props & {\n onSelect?: (value: ItemValueArg) => void\n}) {\n return (\n <Autocomplete.Item\n data-slot=\"command-item\"\n value={value}\n onClick={(event) => {\n onClick?.(event)\n onSelect?.(value)\n }}\n className={cn(\n \"group/command-item 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! data-disabled:pointer-events-none data-disabled:opacity-50 data-highlighted:bg-muted data-highlighted:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-highlighted:**:[svg]:text-foreground\",\n className\n )}\n {...props}\n >\n {children}\n </Autocomplete.Item>\n )\n}\n\ntype ItemValueArg = Autocomplete.Item.Props[\"value\"]\n\nfunction CommandShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn(\n \"ms-auto text-xs tracking-ppx-widest text-muted-foreground group-data-highlighted/command-item:text-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CommandSeparator({\n className,\n ...props\n}: Autocomplete.Separator.Props) {\n return (\n <Autocomplete.Separator\n data-slot=\"command-separator\"\n className={cn(\"-mx-1 h-px w-auto bg-border\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandCollection,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n}\n"],"mappings":";;;;;;;;;;;;;;AAmBA,SAAS,QAAmB,EAC1B,WACA,UACA,GAAG,SAC2D;CAI9D,MAAM,OAAO,aAAa;AAG1B,QACE,oBAAC;EAAK;EAAK;EAAO,eAAc;EAAS;EAAc,GAAI;YACzD,oBAAC;GACC,aAAU;GACV,WAAW,GACT,8FACA,UACD;GAEA;IACG;GACD;;AAIX,SAAS,cAAyB,EAChC,QAAQ,mBACR,cAAc,kCACd,kBAAkB,OAClB,WACA,MACA,aACA,cACA,OACA,UACA,GAAG,SAaF;AACD,QACE,qBAAC;EACO;EACO;EACC;EACP;aAEP,qBAAC;GAAa,WAAU;cACtB,oBAAC,yBAAa,QAAoB,EAClC,oBAAC,+BAAmB,cAAgC;IACvC,EACf,oBAAC;GACC,WAAW,GACT,yDACA,UACD;GACgB;aAEjB,oBAAC;IAAQ,GAAK;IACX;KACO;IACI;GACT;;AAIb,SAAS,aAAa,EACpB,WACA,GAAG,SACwB;AAC3B,QACE,oBAAC;EAAI,aAAU;EAAwB,WAAU;YAC/C,qBAAC;GAAW,WAAU;cACpB,oBAAC,aAAa;IACZ,aAAU;IACV,WAAW,GACT,iFACA,UACD;IACD,GAAI;KACJ,EACF,oBAAC,6BACC,oBAAC,cAAW,WAAU,+BAA+B,GACrC;IACP;GACT;;AAIV,SAAS,YAAY,EACnB,WACA,GAAG,SACuB;AAC1B,QACE,oBAAC,aAAa;EACZ,aAAU;EACV,WAAW,GACT,yFACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,aAAa,EACpB,WACA,GAAG,SACwB;AAC3B,QACE,oBAAC,aAAa;EACZ,aAAU;EAIV,WAAW,GAAG,sCAAsC,UAAU;EAC9D,GAAI;GACJ;;AAIN,SAAS,aAAa,EACpB,WACA,SACA,UACA,GAAG,SACwD;AAC3D,QACE,qBAAC,aAAa;EACZ,aAAU;EACV,WAAW,GAAG,iCAAiC,UAAU;EACzD,GAAI;aAEH,WAAW,QACV,oBAAC,aAAa;GACZ,aAAU;GACV,WAAU;aAET;IACuB,EAE3B;GACkB;;AAIzB,SAAS,kBAAkB,EACzB,GAAG,SAC6B;AAChC,QAAO,oBAAC,aAAa;EAAW,aAAU;EAAqB,GAAI;GAAS;;AAG9E,SAAS,YAAY,EACnB,WACA,UACA,OACA,UACA,SACA,GAAG,SAGF;AACD,QACE,oBAAC,aAAa;EACZ,aAAU;EACH;EACP,UAAU,UAAU;AAClB,aAAU,MAAM;AAChB,cAAW,MAAM;;EAEnB,WAAW,GACT,4ZACA,UACD;EACD,GAAI;EAEH;GACiB;;AAMxB,SAAS,gBAAgB,EACvB,WACA,GAAG,SAC4B;AAC/B,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,iHACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,iBAAiB,EACxB,WACA,GAAG,SAC4B;AAC/B,QACE,oBAAC,aAAa;EACZ,aAAU;EACV,WAAW,GAAG,+BAA+B,UAAU;EACvD,GAAI;GACJ"}
@@ -0,0 +1,87 @@
1
+ import * as react_jsx_runtime234 from "react/jsx-runtime";
2
+ import * as React$1 from "react";
3
+ import { ContextMenu as ContextMenu$1 } from "@base-ui/react/context-menu";
4
+
5
+ //#region src/components/context-menu.d.ts
6
+ declare function ContextMenu({
7
+ ...props
8
+ }: ContextMenu$1.Root.Props): react_jsx_runtime234.JSX.Element;
9
+ declare function ContextMenuPortal({
10
+ ...props
11
+ }: ContextMenu$1.Portal.Props): react_jsx_runtime234.JSX.Element;
12
+ declare function ContextMenuTrigger({
13
+ className,
14
+ ...props
15
+ }: ContextMenu$1.Trigger.Props): react_jsx_runtime234.JSX.Element;
16
+ declare function ContextMenuContent({
17
+ className,
18
+ align,
19
+ alignOffset,
20
+ side,
21
+ sideOffset,
22
+ ...props
23
+ }: ContextMenu$1.Popup.Props & Pick<ContextMenu$1.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset">): react_jsx_runtime234.JSX.Element;
24
+ declare function ContextMenuGroup({
25
+ ...props
26
+ }: ContextMenu$1.Group.Props): react_jsx_runtime234.JSX.Element;
27
+ declare function ContextMenuLabel({
28
+ className,
29
+ inset,
30
+ ...props
31
+ }: ContextMenu$1.GroupLabel.Props & {
32
+ inset?: boolean;
33
+ }): react_jsx_runtime234.JSX.Element;
34
+ declare function ContextMenuItem({
35
+ className,
36
+ inset,
37
+ variant,
38
+ ...props
39
+ }: ContextMenu$1.Item.Props & {
40
+ inset?: boolean;
41
+ variant?: "default" | "destructive";
42
+ }): react_jsx_runtime234.JSX.Element;
43
+ declare function ContextMenuSub({
44
+ ...props
45
+ }: ContextMenu$1.SubmenuRoot.Props): react_jsx_runtime234.JSX.Element;
46
+ declare function ContextMenuSubTrigger({
47
+ className,
48
+ inset,
49
+ children,
50
+ ...props
51
+ }: ContextMenu$1.SubmenuTrigger.Props & {
52
+ inset?: boolean;
53
+ }): react_jsx_runtime234.JSX.Element;
54
+ declare function ContextMenuSubContent({
55
+ ...props
56
+ }: React$1.ComponentProps<typeof ContextMenuContent>): react_jsx_runtime234.JSX.Element;
57
+ declare function ContextMenuCheckboxItem({
58
+ className,
59
+ children,
60
+ checked,
61
+ inset,
62
+ ...props
63
+ }: ContextMenu$1.CheckboxItem.Props & {
64
+ inset?: boolean;
65
+ }): react_jsx_runtime234.JSX.Element;
66
+ declare function ContextMenuRadioGroup({
67
+ ...props
68
+ }: ContextMenu$1.RadioGroup.Props): react_jsx_runtime234.JSX.Element;
69
+ declare function ContextMenuRadioItem({
70
+ className,
71
+ children,
72
+ inset,
73
+ ...props
74
+ }: ContextMenu$1.RadioItem.Props & {
75
+ inset?: boolean;
76
+ }): react_jsx_runtime234.JSX.Element;
77
+ declare function ContextMenuSeparator({
78
+ className,
79
+ ...props
80
+ }: ContextMenu$1.Separator.Props): react_jsx_runtime234.JSX.Element;
81
+ declare function ContextMenuShortcut({
82
+ className,
83
+ ...props
84
+ }: React$1.ComponentProps<"span">): react_jsx_runtime234.JSX.Element;
85
+ //#endregion
86
+ export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger };
87
+ //# sourceMappingURL=context-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-menu.d.ts","names":[],"sources":["../../src/components/context-menu.tsx"],"sourcesContent":[],"mappings":";;;;;iBAQS,WAAA;;GAA0B,aAAA,CAAqB,IAAA,CAAK,QAAK,oBAAA,CAAA,GAAA,CAAA;iBAIzD,iBAAA;;GAAgC,aAAA,CAAqB,MAAA,CAAO,QAAK,oBAAA,CAAA,GAAA,CAAA;iBAMjE,kBAAA;;;GAGN,aAAA,CAAqB,OAAA,CAAQ,QAAK,oBAAA,CAAA,GAAA,CAAA;AAlB4C,iBA4BxE,kBAAA,CAvB0B;EAAA,SAAqB;EAAA,KAAK;EAAA,WAAK;EAAA,IAAA;EAAA,UAAA;EAAA,GAAA;AAAA,CAAA,EA8B/D,aAAA,CAAqB,KAAA,CAAM,KA9BoC,GA+BhE,IA/BgE,CAgC9D,aAAA,CAAqB,UAAA,CAAW,KAhC8B,EAAA,OAAA,GAAA,aAAA,GAAA,MAAA,GAAA,YAAA,CAAA,CAAA,EAkC/D,oBAAA,CAAA,GAAA,CAAA,OAlC+D;AAAA,iBAsDzD,gBAAA,CAlDiB;EAAA,GAAe;AAAiC,CAAjC,EAkDD,aAAA,CAAqB,KAAA,CAAM,KAlDO,CAAA,EAkDF,oBAAA,CAAA,GAAA,CAAA,OAlDE;AAAA,iBAwDjE,gBAAA,CAlDkB;EAAA,SAAA;EAAA,KAAA;EAAA,GAAA;CAAA,EAsDxB,aAAA,CAAqB,UAAA,CAAW,KAtDR,GAAA;EACzB,KAAA,CAAA,EAAA,OAAA;CAEC,CAAA,EAqDF,oBAAA,CAAA,GAAA,CAAA,OArD+B;iBAmEvB,eAAA,CAnE4B;EAAA,SAAA;EAAA,KAAA;EAAA,OAAA;EAAA,GAAA;CAAA,EAwElC,aAAA,CAAqB,IAAA,CAAK,KAxEQ,GAAA;EAAA,KAAA,CAAA,EAAA,OAAA;EAU5B,OAAA,CAAA,EAAA,SAAA,GAAkB,aAAA;CACzB,CAAA,EAgED,oBAAA,CAAA,GAAA,CAAA,OAhEC;iBA+EO,cAAA,CA9EP;EAAA,GAAA;AAAA,CAAA,EA8EoC,aAAA,CAAqB,WAAA,CAAY,KA9ErE,CAAA,EA8E0E,oBAAA,CAAA,GAAA,CAAA,OA9E1E;iBAoFO,qBAAA,CAnFP;EAAA,SAAA;EAAA,KAAA;EAAA,QAAA;EAAA,GAAA;CAAA,EAwFC,aAAA,CAAqB,cAAA,CAAe,KAxFrC,GAAA;EACA,KAAA,CAAA,EAAA,OAAA;CACA,CAAA,EAwFD,oBAAA,CAAA,GAAA,CAAA,OAxFC;iBAyGO,qBAAA,CAvGqB;EAAA,GAAA;AAAA,CAAA,EAyG3B,OAAA,CAAM,cAzGqB,CAAA,OAyGC,kBAzGD,CAAA,CAAA,EAyGoB,oBAAA,CAAA,GAAA,CAAA,OAzGpB;iBAoHrB,uBAAA,CAlH2B;EAAA,SAAA;EAAA,QAAA;EAAA,OAAA;EAAA,KAAA;EAAA,GAAA;CAAA,EAwHjC,aAAA,CAAqB,YAAA,CAAa,KAxHD,GAAA;EADlC,KAAA,CAAA,EAAA,OAAA;CAGC,CAAA,EAwHF,oBAAA,CAAA,GAAA,CAAA,OAxHE;iBA+IM,qBAAA,CA/IN;EAAA,GAAA;AAAA,CAAA,EAiJA,aAAA,CAAqB,UAAA,CAAW,KAjJhC,CAAA,EAiJqC,oBAAA,CAAA,GAAA,CAAA,OAjJrC;AAAA,iBA0JM,oBAAA,CAtI+B;EAAA,SAAA;EAAqB,QAAM;EAAA,KAAK;EAAA,GAAA;CAAA,EA2IrE,aAAA,CAAqB,SAAA,CAAU,KA3IsC,GAAA;EAM/D,KAAA,CAAA,EAAA,OAAA;CACP,CAAA,EAsID,oBAAA,CAAA,GAAA,CAAA,OAtIC;iBA4JO,oBAAA,CA3JP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA8JC,aAAA,CAAqB,SAAA,CAAU,KA9JhC,CAAA,EA8JqC,oBAAA,CAAA,GAAA,CAAA,OA9JrC;iBAwKO,mBAAA,CAtK0B;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAyKhC,OAAA,CAAM,cAzK0B,CAAA,MAAA,CAAA,CAAA,EAyKJ,oBAAA,CAAA,GAAA,CAAA,OAzKI"}
@@ -0,0 +1,137 @@
1
+ "use client";
2
+
3
+ import { t as cn } from "../utils-mWJR2N24.js";
4
+ import { CheckIcon, ChevronRightIcon } from "lucide-react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import "react";
7
+ import { ContextMenu as ContextMenu$1 } from "@base-ui/react/context-menu";
8
+
9
+ //#region src/components/context-menu.tsx
10
+ function ContextMenu({ ...props }) {
11
+ return /* @__PURE__ */ jsx(ContextMenu$1.Root, {
12
+ "data-slot": "context-menu",
13
+ ...props
14
+ });
15
+ }
16
+ function ContextMenuPortal({ ...props }) {
17
+ return /* @__PURE__ */ jsx(ContextMenu$1.Portal, {
18
+ "data-slot": "context-menu-portal",
19
+ ...props
20
+ });
21
+ }
22
+ function ContextMenuTrigger({ className, ...props }) {
23
+ return /* @__PURE__ */ jsx(ContextMenu$1.Trigger, {
24
+ "data-slot": "context-menu-trigger",
25
+ className: cn("select-none", className),
26
+ ...props
27
+ });
28
+ }
29
+ function ContextMenuContent({ className, align = "start", alignOffset = 4, side = "inline-end", sideOffset = 0, ...props }) {
30
+ return /* @__PURE__ */ jsx(ContextMenu$1.Portal, { children: /* @__PURE__ */ jsx(ContextMenu$1.Positioner, {
31
+ className: "isolate z-50 outline-none",
32
+ align,
33
+ alignOffset,
34
+ side,
35
+ sideOffset,
36
+ children: /* @__PURE__ */ jsx(ContextMenu$1.Popup, {
37
+ "data-slot": "context-menu-content",
38
+ className: cn("z-50 max-h-(--available-height) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none 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),
39
+ ...props
40
+ })
41
+ }) });
42
+ }
43
+ function ContextMenuGroup({ ...props }) {
44
+ return /* @__PURE__ */ jsx(ContextMenu$1.Group, {
45
+ "data-slot": "context-menu-group",
46
+ ...props
47
+ });
48
+ }
49
+ function ContextMenuLabel({ className, inset, ...props }) {
50
+ return /* @__PURE__ */ jsx(ContextMenu$1.GroupLabel, {
51
+ "data-slot": "context-menu-label",
52
+ "data-inset": inset,
53
+ className: cn("px-2 py-1.5 text-xs font-medium text-muted-foreground data-inset:ps-8", className),
54
+ ...props
55
+ });
56
+ }
57
+ function ContextMenuItem({ className, inset, variant = "default", ...props }) {
58
+ return /* @__PURE__ */ jsx(ContextMenu$1.Item, {
59
+ "data-slot": "context-menu-item",
60
+ "data-inset": inset,
61
+ "data-variant": variant,
62
+ className: cn("group/context-menu-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 focus:*:[svg]:text-accent-foreground data-[variant=destructive]:*:[svg]:text-destructive", className),
63
+ ...props
64
+ });
65
+ }
66
+ function ContextMenuSub({ ...props }) {
67
+ return /* @__PURE__ */ jsx(ContextMenu$1.SubmenuRoot, {
68
+ "data-slot": "context-menu-sub",
69
+ ...props
70
+ });
71
+ }
72
+ function ContextMenuSubTrigger({ className, inset, children, ...props }) {
73
+ return /* @__PURE__ */ jsxs(ContextMenu$1.SubmenuTrigger, {
74
+ "data-slot": "context-menu-sub-trigger",
75
+ "data-inset": inset,
76
+ className: cn("flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-8 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
77
+ ...props,
78
+ children: [children, /* @__PURE__ */ jsx(ChevronRightIcon, { className: "rtl:rotate-180 ms-auto" })]
79
+ });
80
+ }
81
+ function ContextMenuSubContent({ ...props }) {
82
+ return /* @__PURE__ */ jsx(ContextMenuContent, {
83
+ "data-slot": "context-menu-sub-content",
84
+ className: "shadow-lg",
85
+ side: "inline-end",
86
+ ...props
87
+ });
88
+ }
89
+ function ContextMenuCheckboxItem({ className, children, checked, inset, ...props }) {
90
+ return /* @__PURE__ */ jsxs(ContextMenu$1.CheckboxItem, {
91
+ "data-slot": "context-menu-checkbox-item",
92
+ "data-inset": inset,
93
+ className: cn("relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pe-8 ps-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
94
+ checked,
95
+ ...props,
96
+ children: [/* @__PURE__ */ jsx("span", {
97
+ className: "pointer-events-none absolute end-2",
98
+ children: /* @__PURE__ */ jsx(ContextMenu$1.CheckboxItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, {}) })
99
+ }), children]
100
+ });
101
+ }
102
+ function ContextMenuRadioGroup({ ...props }) {
103
+ return /* @__PURE__ */ jsx(ContextMenu$1.RadioGroup, {
104
+ "data-slot": "context-menu-radio-group",
105
+ ...props
106
+ });
107
+ }
108
+ function ContextMenuRadioItem({ className, children, inset, ...props }) {
109
+ return /* @__PURE__ */ jsxs(ContextMenu$1.RadioItem, {
110
+ "data-slot": "context-menu-radio-item",
111
+ "data-inset": inset,
112
+ className: cn("relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pe-8 ps-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
113
+ ...props,
114
+ children: [/* @__PURE__ */ jsx("span", {
115
+ className: "pointer-events-none absolute end-2",
116
+ children: /* @__PURE__ */ jsx(ContextMenu$1.RadioItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, {}) })
117
+ }), children]
118
+ });
119
+ }
120
+ function ContextMenuSeparator({ className, ...props }) {
121
+ return /* @__PURE__ */ jsx(ContextMenu$1.Separator, {
122
+ "data-slot": "context-menu-separator",
123
+ className: cn("-mx-1 my-1 h-px bg-border", className),
124
+ ...props
125
+ });
126
+ }
127
+ function ContextMenuShortcut({ className, ...props }) {
128
+ return /* @__PURE__ */ jsx("span", {
129
+ "data-slot": "context-menu-shortcut",
130
+ className: cn("ms-auto text-xs tracking-ppx-widest text-muted-foreground group-focus/context-menu-item:text-accent-foreground", className),
131
+ ...props
132
+ });
133
+ }
134
+
135
+ //#endregion
136
+ export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger };
137
+ //# sourceMappingURL=context-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-menu.js","names":["ContextMenuPrimitive"],"sources":["../../src/components/context-menu.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { ContextMenu as ContextMenuPrimitive } from \"@base-ui/react/context-menu\"\n\nimport { cn } from \"@px-ui/ui/lib/utils\"\nimport { ChevronRightIcon, CheckIcon } from \"lucide-react\"\n\nfunction ContextMenu({ ...props }: ContextMenuPrimitive.Root.Props) {\n return <ContextMenuPrimitive.Root data-slot=\"context-menu\" {...props} />\n}\n\nfunction ContextMenuPortal({ ...props }: ContextMenuPrimitive.Portal.Props) {\n return (\n <ContextMenuPrimitive.Portal data-slot=\"context-menu-portal\" {...props} />\n )\n}\n\nfunction ContextMenuTrigger({\n className,\n ...props\n}: ContextMenuPrimitive.Trigger.Props) {\n return (\n <ContextMenuPrimitive.Trigger\n data-slot=\"context-menu-trigger\"\n className={cn(\"select-none\", className)}\n {...props}\n />\n )\n}\n\nfunction ContextMenuContent({\n className,\n align = \"start\",\n alignOffset = 4,\n side = \"inline-end\",\n sideOffset = 0,\n ...props\n}: ContextMenuPrimitive.Popup.Props &\n Pick<\n ContextMenuPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Positioner\n className=\"isolate z-50 outline-none\"\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n >\n <ContextMenuPrimitive.Popup\n data-slot=\"context-menu-content\"\n className={cn(\"z-50 max-h-(--available-height) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none 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 )}\n {...props}\n />\n </ContextMenuPrimitive.Positioner>\n </ContextMenuPrimitive.Portal>\n )\n}\n\nfunction ContextMenuGroup({ ...props }: ContextMenuPrimitive.Group.Props) {\n return (\n <ContextMenuPrimitive.Group data-slot=\"context-menu-group\" {...props} />\n )\n}\n\nfunction ContextMenuLabel({\n className,\n inset,\n ...props\n}: ContextMenuPrimitive.GroupLabel.Props & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.GroupLabel\n data-slot=\"context-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-2 py-1.5 text-xs font-medium text-muted-foreground data-inset:ps-8\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ContextMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: ContextMenuPrimitive.Item.Props & {\n inset?: boolean\n variant?: \"default\" | \"destructive\"\n}) {\n return (\n <ContextMenuPrimitive.Item\n data-slot=\"context-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/context-menu-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 focus:*:[svg]:text-accent-foreground data-[variant=destructive]:*:[svg]:text-destructive\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ContextMenuSub({ ...props }: ContextMenuPrimitive.SubmenuRoot.Props) {\n return (\n <ContextMenuPrimitive.SubmenuRoot data-slot=\"context-menu-sub\" {...props} />\n )\n}\n\nfunction ContextMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: ContextMenuPrimitive.SubmenuTrigger.Props & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.SubmenuTrigger\n data-slot=\"context-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-8 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"rtl:rotate-180 ms-auto\" />\n </ContextMenuPrimitive.SubmenuTrigger>\n )\n}\n\nfunction ContextMenuSubContent({\n ...props\n}: React.ComponentProps<typeof ContextMenuContent>) {\n return (\n <ContextMenuContent\n data-slot=\"context-menu-sub-content\"\n className=\"shadow-lg\"\n side=\"inline-end\"\n {...props}\n />\n )\n}\n\nfunction ContextMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: ContextMenuPrimitive.CheckboxItem.Props & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.CheckboxItem\n data-slot=\"context-menu-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pe-8 ps-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute end-2\">\n <ContextMenuPrimitive.CheckboxItemIndicator>\n <CheckIcon\n />\n </ContextMenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n )\n}\n\nfunction ContextMenuRadioGroup({\n ...props\n}: ContextMenuPrimitive.RadioGroup.Props) {\n return (\n <ContextMenuPrimitive.RadioGroup\n data-slot=\"context-menu-radio-group\"\n {...props}\n />\n )\n}\n\nfunction ContextMenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: ContextMenuPrimitive.RadioItem.Props & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.RadioItem\n data-slot=\"context-menu-radio-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pe-8 ps-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:ps-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute end-2\">\n <ContextMenuPrimitive.RadioItemIndicator>\n <CheckIcon\n />\n </ContextMenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n )\n}\n\nfunction ContextMenuSeparator({\n className,\n ...props\n}: ContextMenuPrimitive.Separator.Props) {\n return (\n <ContextMenuPrimitive.Separator\n data-slot=\"context-menu-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction ContextMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"context-menu-shortcut\"\n className={cn(\n \"ms-auto text-xs tracking-ppx-widest text-muted-foreground group-focus/context-menu-item:text-accent-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioItem,\n ContextMenuLabel,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuGroup,\n ContextMenuPortal,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuRadioGroup,\n}\n"],"mappings":";;;;;;;;;AAQA,SAAS,YAAY,EAAE,GAAG,SAA0C;AAClE,QAAO,oBAACA,cAAqB;EAAK,aAAU;EAAe,GAAI;GAAS;;AAG1E,SAAS,kBAAkB,EAAE,GAAG,SAA4C;AAC1E,QACE,oBAACA,cAAqB;EAAO,aAAU;EAAsB,GAAI;GAAS;;AAI9E,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACkC;AACrC,QACE,oBAACA,cAAqB;EACpB,aAAU;EACV,WAAW,GAAG,eAAe,UAAU;EACvC,GAAI;GACJ;;AAIN,SAAS,mBAAmB,EAC1B,WACA,QAAQ,SACR,cAAc,GACd,OAAO,cACP,aAAa,GACb,GAAG,SAKA;AACH,QACE,oBAACA,cAAqB,oBACpB,oBAACA,cAAqB;EACpB,WAAU;EACH;EACM;EACP;EACM;YAEZ,oBAACA,cAAqB;GACpB,aAAU;GACV,WAAW,GAAG,qlBAAqlB,UAAW;GAC9mB,GAAI;IACJ;GAC8B,GACN;;AAIlC,SAAS,iBAAiB,EAAE,GAAG,SAA2C;AACxE,QACE,oBAACA,cAAqB;EAAM,aAAU;EAAqB,GAAI;GAAS;;AAI5E,SAAS,iBAAiB,EACxB,WACA,OACA,GAAG,SAGF;AACD,QACE,oBAACA,cAAqB;EACpB,aAAU;EACV,cAAY;EACZ,WAAW,GACT,yEACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,gBAAgB,EACvB,WACA,OACA,UAAU,WACV,GAAG,SAIF;AACD,QACE,oBAACA,cAAqB;EACpB,aAAU;EACV,cAAY;EACZ,gBAAc;EACd,WAAW,GACT,inBACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,eAAe,EAAE,GAAG,SAAiD;AAC5E,QACE,oBAACA,cAAqB;EAAY,aAAU;EAAmB,GAAI;GAAS;;AAIhF,SAAS,sBAAsB,EAC7B,WACA,OACA,UACA,GAAG,SAGF;AACD,QACE,qBAACA,cAAqB;EACpB,aAAU;EACV,cAAY;EACZ,WAAW,GACT,kSACA,UACD;EACD,GAAI;aAEH,UACD,oBAAC,oBAAiB,WAAU,2BAA2B;GACnB;;AAI1C,SAAS,sBAAsB,EAC7B,GAAG,SAC+C;AAClD,QACE,oBAAC;EACC,aAAU;EACV,WAAU;EACV,MAAK;EACL,GAAI;GACJ;;AAIN,SAAS,wBAAwB,EAC/B,WACA,UACA,SACA,OACA,GAAG,SAGF;AACD,QACE,qBAACA,cAAqB;EACpB,aAAU;EACV,cAAY;EACZ,WAAW,GACT,4TACA,UACD;EACQ;EACT,GAAI;aAEJ,oBAAC;GAAK,WAAU;aACd,oBAACA,cAAqB,mCACpB,oBAAC,cACC,GACyC;IACxC,EACN;GACiC;;AAIxC,SAAS,sBAAsB,EAC7B,GAAG,SACqC;AACxC,QACE,oBAACA,cAAqB;EACpB,aAAU;EACV,GAAI;GACJ;;AAIN,SAAS,qBAAqB,EAC5B,WACA,UACA,OACA,GAAG,SAGF;AACD,QACE,qBAACA,cAAqB;EACpB,aAAU;EACV,cAAY;EACZ,WAAW,GACT,4TACA,UACD;EACD,GAAI;aAEJ,oBAAC;GAAK,WAAU;aACd,oBAACA,cAAqB,gCACpB,oBAAC,cACC,GACsC;IACrC,EACN;GAC8B;;AAIrC,SAAS,qBAAqB,EAC5B,WACA,GAAG,SACoC;AACvC,QACE,oBAACA,cAAqB;EACpB,aAAU;EACV,WAAW,GAAG,6BAA6B,UAAU;EACrD,GAAI;GACJ;;AAIN,SAAS,oBAAoB,EAC3B,WACA,GAAG,SAC4B;AAC/B,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,kHACA,UACD;EACD,GAAI;GACJ"}
@@ -0,0 +1,105 @@
1
+ import "../use-async-options-DHR8q5qX.js";
2
+ import { s as ComboboxContent } from "../combobox-JXY6PiDq.js";
3
+ import * as react_jsx_runtime249 from "react/jsx-runtime";
4
+ import * as React$1 from "react";
5
+
6
+ //#region src/components/currency-select-field.d.ts
7
+ /**
8
+ * Mapping of currency abbreviations to country codes for flag display.
9
+ * Used internally by CurrencySelectField to display country flags.
10
+ */
11
+ declare const CURRENCY_FLAG_CODE: Record<string, string>;
12
+ /**
13
+ * Currency type representing a currency option
14
+ */
15
+ interface Currency {
16
+ /** Unique identifier for the currency */
17
+ id: string;
18
+ /** Full currency name (e.g., "United States dollar") */
19
+ name: string;
20
+ /** Currency abbreviation (e.g., "USD", "EUR") */
21
+ abbr: string;
22
+ /** Currency value/code used for form submission */
23
+ value: string;
24
+ }
25
+ interface CurrencySelectFieldProps {
26
+ /**
27
+ * Array of currency options to display
28
+ */
29
+ currencies: ReadonlyArray<Currency>;
30
+ /** The selected currency. Use for a controlled field. */
31
+ value?: Currency | null;
32
+ /** Called when the selected currency changes. */
33
+ onValueChange?: (value: Currency | null, eventDetails: unknown) => void;
34
+ /** Whether the field is disabled. */
35
+ disabled?: boolean;
36
+ /** Whether the field is read only. */
37
+ readOnly?: boolean;
38
+ /** Applies error styling to the trigger input. */
39
+ invalid?: boolean;
40
+ /** Name used for form submission. */
41
+ name?: string;
42
+ /** Ref forwarded to the underlying input element. */
43
+ inputRef?: React$1.Ref<HTMLInputElement>;
44
+ /**
45
+ * Placeholder text when no currency is selected
46
+ * @default "Select currency"
47
+ */
48
+ placeholder?: string;
49
+ /**
50
+ * Additional className for the trigger input
51
+ */
52
+ triggerClassName?: string;
53
+ /**
54
+ * Additional className for the trigger input (alias of `triggerClassName`)
55
+ */
56
+ className?: string;
57
+ /**
58
+ * Accepted for API compatibility with the legacy field. Static currency
59
+ * lists render immediately, so this currently has no effect.
60
+ */
61
+ isLoading?: boolean;
62
+ /**
63
+ * Additional props forwarded to the dropdown content.
64
+ */
65
+ contentProps?: Omit<React$1.ComponentProps<typeof ComboboxContent>, "children">;
66
+ }
67
+ /**
68
+ * A currency select component with search functionality and flag display.
69
+ * Country flags are automatically displayed based on the currency abbreviation
70
+ * using the built-in CURRENCY_FLAG_CODE mapping.
71
+ *
72
+ * @example
73
+ * ```tsx
74
+ * const currencies = [
75
+ * { id: "1", abbr: "USD", name: "United States dollar", value: "USD" },
76
+ * { id: "2", abbr: "EUR", name: "Euro", value: "EUR" },
77
+ * { id: "3", abbr: "GBP", name: "British Pound", value: "GBP" },
78
+ * ];
79
+ *
80
+ * <CurrencySelectField
81
+ * currencies={currencies}
82
+ * value={selectedCurrency}
83
+ * onValueChange={setSelectedCurrency}
84
+ * placeholder="Select currency"
85
+ * />
86
+ * ```
87
+ */
88
+ declare function CurrencySelectField({
89
+ currencies,
90
+ value,
91
+ onValueChange,
92
+ placeholder,
93
+ disabled,
94
+ readOnly,
95
+ invalid,
96
+ name,
97
+ inputRef,
98
+ triggerClassName,
99
+ className,
100
+ isLoading,
101
+ contentProps
102
+ }: CurrencySelectFieldProps): react_jsx_runtime249.JSX.Element;
103
+ //#endregion
104
+ export { CURRENCY_FLAG_CODE, Currency, CurrencySelectField, CurrencySelectFieldProps };
105
+ //# sourceMappingURL=currency-select-field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"currency-select-field.d.ts","names":[],"sources":["../../src/components/currency-select-field.tsx"],"sourcesContent":[],"mappings":";;;;;;;;;;AAqBa,cAAA,kBAAoB,EAAA,MAAM,CAAA,MAAA,EAAA,MAAA,CAAA;AAyKvC;AAWA;;AAIc,UAfG,QAAA,CAeH;EAGJ;EAGgB,EAAA,EAAA,MAAA;EAeH;EAAV,IAAA,EAAM,MAAA;EA2B+B;EAA5B,IAAA,EAAM,MAAA;EAAX;EAAI,KAAA,EAAA,MAAA;AA6ErB;AACE,UAlIe,wBAAA,CAkIf;EACA;;;EAGA,UAAA,EAlIY,aAkIZ,CAlI0B,QAkI1B,CAAA;EACA;EACA,KAAA,CAAA,EAjIQ,QAiIR,GAAA,IAAA;EACA;EACA,aAAA,CAAA,EAAA,CAAA,KAAA,EAhIwB,QAgIxB,GAAA,IAAA,EAAA,YAAA,EAAA,OAAA,EAAA,GAAA,IAAA;EACA;EACA,QAAA,CAAA,EAAA,OAAA;EACA;EACA,QAAA,CAAA,EAAA,OAAA;EACC;EAAwB,OAAA,CAAA,EAAA,OAAA;EAAA;;;aAtHd,OAAA,CAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;iBA2BN,KAAK,OAAA,CAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;iBA6ElC,mBAAA;;;;;;;;;;;;;;GAcb,2BAAwB,oBAAA,CAAA,GAAA,CAAA"}