@moduix/react-tailwind 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 (380) hide show
  1. package/LICENSE.md +9 -0
  2. package/README.md +130 -0
  3. package/THIRD_PARTY_NOTICES.md +49 -0
  4. package/dist/components/accordion/Accordion.d.ts +13 -0
  5. package/dist/components/accordion/Accordion.js +78 -0
  6. package/dist/components/accordion/index.d.ts +1 -0
  7. package/dist/components/accordion/index.js +1 -0
  8. package/dist/components/alert/Alert.d.ts +14 -0
  9. package/dist/components/alert/Alert.js +93 -0
  10. package/dist/components/alert/index.d.ts +1 -0
  11. package/dist/components/alert/index.js +1 -0
  12. package/dist/components/angle-slider/AngleSlider.d.ts +26 -0
  13. package/dist/components/angle-slider/AngleSlider.js +107 -0
  14. package/dist/components/angle-slider/index.d.ts +1 -0
  15. package/dist/components/angle-slider/index.js +1 -0
  16. package/dist/components/aspect-ratio/AspectRatio.d.ts +8 -0
  17. package/dist/components/aspect-ratio/AspectRatio.js +23 -0
  18. package/dist/components/aspect-ratio/index.d.ts +1 -0
  19. package/dist/components/aspect-ratio/index.js +1 -0
  20. package/dist/components/avatar/Avatar.d.ts +17 -0
  21. package/dist/components/avatar/Avatar.js +66 -0
  22. package/dist/components/avatar/index.d.ts +1 -0
  23. package/dist/components/avatar/index.js +1 -0
  24. package/dist/components/badge/Badge.d.ts +11 -0
  25. package/dist/components/badge/Badge.js +60 -0
  26. package/dist/components/badge/index.d.ts +1 -0
  27. package/dist/components/badge/index.js +1 -0
  28. package/dist/components/bleed/Bleed.d.ts +12 -0
  29. package/dist/components/bleed/Bleed.js +49 -0
  30. package/dist/components/bleed/index.d.ts +1 -0
  31. package/dist/components/bleed/index.js +1 -0
  32. package/dist/components/breadcrumbs/Breadcrumbs.d.ts +21 -0
  33. package/dist/components/breadcrumbs/Breadcrumbs.js +105 -0
  34. package/dist/components/breadcrumbs/index.d.ts +1 -0
  35. package/dist/components/breadcrumbs/index.js +1 -0
  36. package/dist/components/button/Button.d.ts +18 -0
  37. package/dist/components/button/Button.js +84 -0
  38. package/dist/components/button/index.d.ts +1 -0
  39. package/dist/components/button/index.js +1 -0
  40. package/dist/components/card/Card.d.ts +19 -0
  41. package/dist/components/card/Card.js +135 -0
  42. package/dist/components/card/index.d.ts +1 -0
  43. package/dist/components/card/index.js +1 -0
  44. package/dist/components/carousel/Carousel.d.ts +20 -0
  45. package/dist/components/carousel/Carousel.js +145 -0
  46. package/dist/components/carousel/index.d.ts +1 -0
  47. package/dist/components/carousel/index.js +1 -0
  48. package/dist/components/chart/Chart.d.ts +18 -0
  49. package/dist/components/chart/Chart.js +183 -0
  50. package/dist/components/chart/index.d.ts +1 -0
  51. package/dist/components/chart/index.js +1 -0
  52. package/dist/components/checkbox/Checkbox.d.ts +20 -0
  53. package/dist/components/checkbox/Checkbox.js +83 -0
  54. package/dist/components/checkbox/index.d.ts +1 -0
  55. package/dist/components/checkbox/index.js +1 -0
  56. package/dist/components/clipboard/Clipboard.d.ts +15 -0
  57. package/dist/components/clipboard/Clipboard.js +105 -0
  58. package/dist/components/clipboard/index.d.ts +1 -0
  59. package/dist/components/clipboard/index.js +1 -0
  60. package/dist/components/close-button/CloseButton.d.ts +14 -0
  61. package/dist/components/close-button/CloseButton.js +50 -0
  62. package/dist/components/close-button/index.d.ts +1 -0
  63. package/dist/components/close-button/index.js +1 -0
  64. package/dist/components/collapsible/Collapsible.d.ts +11 -0
  65. package/dist/components/collapsible/Collapsible.js +67 -0
  66. package/dist/components/collapsible/index.d.ts +1 -0
  67. package/dist/components/collapsible/index.js +1 -0
  68. package/dist/components/color-picker/ColorPicker.d.ts +38 -0
  69. package/dist/components/color-picker/ColorPicker.js +354 -0
  70. package/dist/components/color-picker/index.d.ts +1 -0
  71. package/dist/components/color-picker/index.js +1 -0
  72. package/dist/components/combobox/Combobox.d.ts +30 -0
  73. package/dist/components/combobox/Combobox.js +208 -0
  74. package/dist/components/combobox/index.d.ts +1 -0
  75. package/dist/components/combobox/index.js +1 -0
  76. package/dist/components/command-palette/CommandPalette.d.ts +45 -0
  77. package/dist/components/command-palette/CommandPalette.js +376 -0
  78. package/dist/components/command-palette/index.d.ts +1 -0
  79. package/dist/components/command-palette/index.js +1 -0
  80. package/dist/components/container/Container.d.ts +12 -0
  81. package/dist/components/container/Container.js +123 -0
  82. package/dist/components/container/index.d.ts +1 -0
  83. package/dist/components/container/index.js +1 -0
  84. package/dist/components/date-input/DateInput.d.ts +17 -0
  85. package/dist/components/date-input/DateInput.js +87 -0
  86. package/dist/components/date-input/index.d.ts +1 -0
  87. package/dist/components/date-input/index.js +1 -0
  88. package/dist/components/date-picker/DatePicker.d.ts +66 -0
  89. package/dist/components/date-picker/DatePicker.js +430 -0
  90. package/dist/components/date-picker/index.d.ts +2 -0
  91. package/dist/components/date-picker/index.js +1 -0
  92. package/dist/components/dialog/Dialog.d.ts +25 -0
  93. package/dist/components/dialog/Dialog.js +147 -0
  94. package/dist/components/dialog/index.d.ts +2 -0
  95. package/dist/components/dialog/index.js +1 -0
  96. package/dist/components/drawer/Drawer.d.ts +40 -0
  97. package/dist/components/drawer/Drawer.js +202 -0
  98. package/dist/components/drawer/index.d.ts +1 -0
  99. package/dist/components/drawer/index.js +1 -0
  100. package/dist/components/editable/Editable.d.ts +16 -0
  101. package/dist/components/editable/Editable.js +120 -0
  102. package/dist/components/editable/index.d.ts +1 -0
  103. package/dist/components/editable/index.js +1 -0
  104. package/dist/components/empty/Empty.d.ts +9 -0
  105. package/dist/components/empty/Empty.js +73 -0
  106. package/dist/components/empty/index.d.ts +1 -0
  107. package/dist/components/empty/index.js +1 -0
  108. package/dist/components/field/Field.d.ts +17 -0
  109. package/dist/components/field/Field.js +103 -0
  110. package/dist/components/field/index.d.ts +1 -0
  111. package/dist/components/field/index.js +1 -0
  112. package/dist/components/fieldset/Fieldset.d.ts +10 -0
  113. package/dist/components/fieldset/Fieldset.js +54 -0
  114. package/dist/components/fieldset/index.d.ts +1 -0
  115. package/dist/components/fieldset/index.js +1 -0
  116. package/dist/components/file-upload/FileUpload.d.ts +31 -0
  117. package/dist/components/file-upload/FileUpload.js +199 -0
  118. package/dist/components/file-upload/index.d.ts +1 -0
  119. package/dist/components/file-upload/index.js +1 -0
  120. package/dist/components/floating-panel/FloatingPanel.d.ts +34 -0
  121. package/dist/components/floating-panel/FloatingPanel.js +209 -0
  122. package/dist/components/floating-panel/index.d.ts +1 -0
  123. package/dist/components/floating-panel/index.js +1 -0
  124. package/dist/components/heading/Heading.d.ts +15 -0
  125. package/dist/components/heading/Heading.js +60 -0
  126. package/dist/components/heading/index.d.ts +1 -0
  127. package/dist/components/heading/index.js +1 -0
  128. package/dist/components/highlight/Highlight.d.ts +7 -0
  129. package/dist/components/highlight/Highlight.js +16 -0
  130. package/dist/components/highlight/index.d.ts +1 -0
  131. package/dist/components/highlight/index.js +1 -0
  132. package/dist/components/hover-card/HoverCard.d.ts +19 -0
  133. package/dist/components/hover-card/HoverCard.js +93 -0
  134. package/dist/components/hover-card/index.d.ts +1 -0
  135. package/dist/components/hover-card/index.js +1 -0
  136. package/dist/components/image/Image.d.ts +13 -0
  137. package/dist/components/image/Image.js +25 -0
  138. package/dist/components/image/index.d.ts +1 -0
  139. package/dist/components/image/index.js +1 -0
  140. package/dist/components/image-cropper/ImageCropper.d.ts +17 -0
  141. package/dist/components/image-cropper/ImageCropper.js +95 -0
  142. package/dist/components/image-cropper/index.d.ts +1 -0
  143. package/dist/components/image-cropper/index.js +1 -0
  144. package/dist/components/input/Input.d.ts +12 -0
  145. package/dist/components/input/Input.js +38 -0
  146. package/dist/components/input/index.d.ts +1 -0
  147. package/dist/components/input/index.js +1 -0
  148. package/dist/components/input-group/InputGroup.d.ts +25 -0
  149. package/dist/components/input-group/InputGroup.js +131 -0
  150. package/dist/components/input-group/index.d.ts +1 -0
  151. package/dist/components/input-group/index.js +1 -0
  152. package/dist/components/json-tree-view/JsonTreeView.d.ts +8 -0
  153. package/dist/components/json-tree-view/JsonTreeView.js +39 -0
  154. package/dist/components/json-tree-view/index.d.ts +1 -0
  155. package/dist/components/json-tree-view/index.js +1 -0
  156. package/dist/components/kbd/Kbd.d.ts +5 -0
  157. package/dist/components/kbd/Kbd.js +30 -0
  158. package/dist/components/kbd/index.d.ts +1 -0
  159. package/dist/components/kbd/index.js +1 -0
  160. package/dist/components/lightbox/Lightbox.d.ts +46 -0
  161. package/dist/components/lightbox/Lightbox.js +232 -0
  162. package/dist/components/lightbox/index.d.ts +2 -0
  163. package/dist/components/lightbox/index.js +1 -0
  164. package/dist/components/list/List.d.ts +21 -0
  165. package/dist/components/list/List.js +106 -0
  166. package/dist/components/list/index.d.ts +1 -0
  167. package/dist/components/list/index.js +1 -0
  168. package/dist/components/listbox/Listbox.d.ts +28 -0
  169. package/dist/components/listbox/Listbox.js +179 -0
  170. package/dist/components/listbox/index.d.ts +1 -0
  171. package/dist/components/listbox/index.js +1 -0
  172. package/dist/components/marquee/Marquee.d.ts +12 -0
  173. package/dist/components/marquee/Marquee.js +93 -0
  174. package/dist/components/marquee/index.d.ts +1 -0
  175. package/dist/components/marquee/index.js +1 -0
  176. package/dist/components/menu/Menu.d.ts +51 -0
  177. package/dist/components/menu/Menu.js +300 -0
  178. package/dist/components/menu/index.d.ts +1 -0
  179. package/dist/components/menu/index.js +1 -0
  180. package/dist/components/native-select/NativeSelect.d.ts +9 -0
  181. package/dist/components/native-select/NativeSelect.js +38 -0
  182. package/dist/components/native-select/index.d.ts +1 -0
  183. package/dist/components/native-select/index.js +1 -0
  184. package/dist/components/navigation-menu/NavigationMenu.d.ts +18 -0
  185. package/dist/components/navigation-menu/NavigationMenu.js +119 -0
  186. package/dist/components/navigation-menu/index.d.ts +1 -0
  187. package/dist/components/navigation-menu/index.js +1 -0
  188. package/dist/components/number-input/NumberInput.d.ts +18 -0
  189. package/dist/components/number-input/NumberInput.js +105 -0
  190. package/dist/components/number-input/index.d.ts +1 -0
  191. package/dist/components/number-input/index.js +1 -0
  192. package/dist/components/pagination/Pagination.d.ts +17 -0
  193. package/dist/components/pagination/Pagination.js +115 -0
  194. package/dist/components/pagination/index.d.ts +1 -0
  195. package/dist/components/pagination/index.js +1 -0
  196. package/dist/components/password-input/PasswordInput.d.ts +16 -0
  197. package/dist/components/password-input/PasswordInput.js +87 -0
  198. package/dist/components/password-input/index.d.ts +1 -0
  199. package/dist/components/password-input/index.js +1 -0
  200. package/dist/components/pin-input/PinInput.d.ts +19 -0
  201. package/dist/components/pin-input/PinInput.js +83 -0
  202. package/dist/components/pin-input/index.d.ts +1 -0
  203. package/dist/components/pin-input/index.js +1 -0
  204. package/dist/components/popover/Popover.d.ts +29 -0
  205. package/dist/components/popover/Popover.js +177 -0
  206. package/dist/components/popover/index.d.ts +1 -0
  207. package/dist/components/popover/index.js +1 -0
  208. package/dist/components/progress-circular/ProgressCircular.d.ts +18 -0
  209. package/dist/components/progress-circular/ProgressCircular.js +94 -0
  210. package/dist/components/progress-circular/index.d.ts +1 -0
  211. package/dist/components/progress-circular/index.js +1 -0
  212. package/dist/components/progress-linear/ProgressLinear.d.ts +14 -0
  213. package/dist/components/progress-linear/ProgressLinear.js +73 -0
  214. package/dist/components/progress-linear/index.d.ts +1 -0
  215. package/dist/components/progress-linear/index.js +1 -0
  216. package/dist/components/qr-code/QrCode.d.ts +11 -0
  217. package/dist/components/qr-code/QrCode.js +63 -0
  218. package/dist/components/qr-code/index.d.ts +1 -0
  219. package/dist/components/qr-code/index.js +1 -0
  220. package/dist/components/radio-group/RadioGroup.d.ts +25 -0
  221. package/dist/components/radio-group/RadioGroup.js +108 -0
  222. package/dist/components/radio-group/index.d.ts +2 -0
  223. package/dist/components/radio-group/index.js +1 -0
  224. package/dist/components/rating-group/RatingGroup.d.ts +27 -0
  225. package/dist/components/rating-group/RatingGroup.js +92 -0
  226. package/dist/components/rating-group/index.d.ts +2 -0
  227. package/dist/components/rating-group/index.js +1 -0
  228. package/dist/components/scroll-area/ScrollArea.d.ts +23 -0
  229. package/dist/components/scroll-area/ScrollArea.js +77 -0
  230. package/dist/components/scroll-area/index.d.ts +2 -0
  231. package/dist/components/scroll-area/index.js +1 -0
  232. package/dist/components/segment-group/SegmentGroup.d.ts +25 -0
  233. package/dist/components/segment-group/SegmentGroup.js +119 -0
  234. package/dist/components/segment-group/index.d.ts +1 -0
  235. package/dist/components/segment-group/index.js +1 -0
  236. package/dist/components/select/Select.d.ts +39 -0
  237. package/dist/components/select/Select.js +239 -0
  238. package/dist/components/select/index.d.ts +1 -0
  239. package/dist/components/select/index.js +1 -0
  240. package/dist/components/separator/Separator.d.ts +12 -0
  241. package/dist/components/separator/Separator.js +96 -0
  242. package/dist/components/separator/index.d.ts +1 -0
  243. package/dist/components/separator/index.js +1 -0
  244. package/dist/components/sidebar/Sidebar.d.ts +61 -0
  245. package/dist/components/sidebar/Sidebar.js +400 -0
  246. package/dist/components/sidebar/index.d.ts +1 -0
  247. package/dist/components/sidebar/index.js +1 -0
  248. package/dist/components/signature-pad/SignaturePad.d.ts +15 -0
  249. package/dist/components/signature-pad/SignaturePad.js +133 -0
  250. package/dist/components/signature-pad/index.d.ts +1 -0
  251. package/dist/components/signature-pad/index.js +1 -0
  252. package/dist/components/simple-grid/SimpleGrid.d.ts +16 -0
  253. package/dist/components/simple-grid/SimpleGrid.js +43 -0
  254. package/dist/components/simple-grid/index.d.ts +1 -0
  255. package/dist/components/simple-grid/index.js +1 -0
  256. package/dist/components/skeleton/Skeleton.d.ts +18 -0
  257. package/dist/components/skeleton/Skeleton.js +30 -0
  258. package/dist/components/skeleton/index.d.ts +1 -0
  259. package/dist/components/skeleton/index.js +1 -0
  260. package/dist/components/slider/Slider.d.ts +23 -0
  261. package/dist/components/slider/Slider.js +122 -0
  262. package/dist/components/slider/index.d.ts +1 -0
  263. package/dist/components/slider/index.js +1 -0
  264. package/dist/components/spinner/Spinner.d.ts +11 -0
  265. package/dist/components/spinner/Spinner.js +57 -0
  266. package/dist/components/spinner/index.d.ts +1 -0
  267. package/dist/components/spinner/index.js +1 -0
  268. package/dist/components/split-button/SplitButton.d.ts +36 -0
  269. package/dist/components/split-button/SplitButton.js +125 -0
  270. package/dist/components/split-button/index.d.ts +1 -0
  271. package/dist/components/split-button/index.js +1 -0
  272. package/dist/components/splitter/Splitter.d.ts +11 -0
  273. package/dist/components/splitter/Splitter.js +66 -0
  274. package/dist/components/splitter/index.d.ts +1 -0
  275. package/dist/components/splitter/index.js +1 -0
  276. package/dist/components/stack/Stack.d.ts +26 -0
  277. package/dist/components/stack/Stack.js +57 -0
  278. package/dist/components/stack/index.d.ts +1 -0
  279. package/dist/components/stack/index.js +1 -0
  280. package/dist/components/steps/Steps.d.ts +25 -0
  281. package/dist/components/steps/Steps.js +122 -0
  282. package/dist/components/steps/index.d.ts +1 -0
  283. package/dist/components/steps/index.js +1 -0
  284. package/dist/components/swap/Swap.d.ts +16 -0
  285. package/dist/components/swap/Swap.js +38 -0
  286. package/dist/components/swap/index.d.ts +1 -0
  287. package/dist/components/swap/index.js +1 -0
  288. package/dist/components/switch/Switch.d.ts +20 -0
  289. package/dist/components/switch/Switch.js +58 -0
  290. package/dist/components/switch/index.d.ts +1 -0
  291. package/dist/components/switch/index.js +1 -0
  292. package/dist/components/table/Table.d.ts +39 -0
  293. package/dist/components/table/Table.js +191 -0
  294. package/dist/components/table/index.d.ts +1 -0
  295. package/dist/components/table/index.js +1 -0
  296. package/dist/components/tabs/Tabs.d.ts +19 -0
  297. package/dist/components/tabs/Tabs.js +71 -0
  298. package/dist/components/tabs/index.d.ts +1 -0
  299. package/dist/components/tabs/index.js +1 -0
  300. package/dist/components/tag/Tag.d.ts +16 -0
  301. package/dist/components/tag/Tag.js +92 -0
  302. package/dist/components/tag/index.d.ts +1 -0
  303. package/dist/components/tag/index.js +1 -0
  304. package/dist/components/tags-input/TagsInput.d.ts +20 -0
  305. package/dist/components/tags-input/TagsInput.js +145 -0
  306. package/dist/components/tags-input/index.d.ts +1 -0
  307. package/dist/components/tags-input/index.js +1 -0
  308. package/dist/components/text/Text.d.ts +25 -0
  309. package/dist/components/text/Text.js +79 -0
  310. package/dist/components/text/index.d.ts +1 -0
  311. package/dist/components/text/index.js +1 -0
  312. package/dist/components/textarea/Textarea.d.ts +3 -0
  313. package/dist/components/textarea/Textarea.js +17 -0
  314. package/dist/components/textarea/index.d.ts +1 -0
  315. package/dist/components/textarea/index.js +1 -0
  316. package/dist/components/timer/Timer.d.ts +18 -0
  317. package/dist/components/timer/Timer.js +94 -0
  318. package/dist/components/timer/index.d.ts +1 -0
  319. package/dist/components/timer/index.js +1 -0
  320. package/dist/components/toast/Toast.d.ts +17 -0
  321. package/dist/components/toast/Toast.js +107 -0
  322. package/dist/components/toast/index.d.ts +1 -0
  323. package/dist/components/toast/index.js +1 -0
  324. package/dist/components/toc/Toc.d.ts +23 -0
  325. package/dist/components/toc/Toc.js +144 -0
  326. package/dist/components/toc/index.d.ts +1 -0
  327. package/dist/components/toc/index.js +1 -0
  328. package/dist/components/toggle/Toggle.d.ts +15 -0
  329. package/dist/components/toggle/Toggle.js +55 -0
  330. package/dist/components/toggle/index.d.ts +2 -0
  331. package/dist/components/toggle/index.js +1 -0
  332. package/dist/components/toggle-group/ToggleGroup.d.ts +24 -0
  333. package/dist/components/toggle-group/ToggleGroup.js +102 -0
  334. package/dist/components/toggle-group/index.d.ts +2 -0
  335. package/dist/components/toggle-group/index.js +1 -0
  336. package/dist/components/tooltip/Tooltip.d.ts +20 -0
  337. package/dist/components/tooltip/Tooltip.js +105 -0
  338. package/dist/components/tooltip/index.d.ts +1 -0
  339. package/dist/components/tooltip/index.js +1 -0
  340. package/dist/components/tour/Tour.d.ts +29 -0
  341. package/dist/components/tour/Tour.js +176 -0
  342. package/dist/components/tour/index.d.ts +1 -0
  343. package/dist/components/tour/index.js +1 -0
  344. package/dist/components/tree-view/TreeView.d.ts +38 -0
  345. package/dist/components/tree-view/TreeView.js +189 -0
  346. package/dist/components/tree-view/index.d.ts +1 -0
  347. package/dist/components/tree-view/index.js +1 -0
  348. package/dist/components/typeset/Typeset.d.ts +5 -0
  349. package/dist/components/typeset/Typeset.js +34 -0
  350. package/dist/components/typeset/Typeset.module.js +6 -0
  351. package/dist/components/typeset/Typeset_module.css +466 -0
  352. package/dist/components/typeset/index.d.ts +1 -0
  353. package/dist/components/typeset/index.js +1 -0
  354. package/dist/internal/cn.d.ts +2 -0
  355. package/dist/internal/cn.js +40 -0
  356. package/dist/internal/icons/ui/Icons.d.ts +24 -0
  357. package/dist/internal/icons/ui/Icons.js +229 -0
  358. package/dist/internal/icons/ui/index.d.ts +1 -0
  359. package/dist/internal/icons/ui/index.js +1 -0
  360. package/dist/internal/overlayPortal.d.ts +13 -0
  361. package/dist/internal/overlayPortal.js +20 -0
  362. package/dist/locale.d.ts +1 -0
  363. package/dist/locale.js +1 -0
  364. package/dist/presets/contrast.css +65 -0
  365. package/dist/presets/dense.css +78 -0
  366. package/dist/presets/soft.css +77 -0
  367. package/dist/styles/animations.css +371 -0
  368. package/dist/styles/borders.css +10 -0
  369. package/dist/styles/colors.css +122 -0
  370. package/dist/styles/opacity.css +5 -0
  371. package/dist/styles/radius.css +11 -0
  372. package/dist/styles/shadows.css +5 -0
  373. package/dist/styles/sizing.css +11 -0
  374. package/dist/styles/spacing.css +26 -0
  375. package/dist/styles/style.css +180 -0
  376. package/dist/styles/transforms.css +4 -0
  377. package/dist/styles/transitions.css +32 -0
  378. package/dist/styles/typography.css +37 -0
  379. package/dist/styles/z-index.css +13 -0
  380. package/package.json +459 -0
@@ -0,0 +1,179 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { ark } from "@ark-ui/react/factory";
4
+ import { Listbox, useListbox, useListboxContext, useListboxItemContext } from "@ark-ui/react/listbox";
5
+ import { forwardRef } from "react";
6
+ import { cn } from "../../internal/cn.js";
7
+ import { CheckIcon, SearchIcon } from "../../internal/icons/ui/index.js";
8
+ import { CloseButton } from "../close-button/index.js";
9
+ const Listbox_ListboxRoot = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
10
+ return /*#__PURE__*/ jsx(Listbox.Root, {
11
+ ref: ref,
12
+ "data-slot": "listbox-root",
13
+ className: cn('box-border flex w-64 max-w-full min-w-0 flex-col gap-3 text-foreground data-disabled:opacity-50', className),
14
+ ...props
15
+ });
16
+ });
17
+ const Listbox_ListboxRootProvider = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
18
+ return /*#__PURE__*/ jsx(Listbox.RootProvider, {
19
+ ref: ref,
20
+ "data-slot": "listbox-root-provider",
21
+ className: cn('box-border flex w-64 max-w-full min-w-0 flex-col gap-3 text-foreground data-disabled:opacity-50', className),
22
+ ...props
23
+ });
24
+ });
25
+ const Listbox_ListboxLabel = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
26
+ return /*#__PURE__*/ jsx(Listbox.Label, {
27
+ ref: ref,
28
+ "data-slot": "listbox-label",
29
+ className: cn('text-sm leading-5 font-medium text-foreground select-none', className),
30
+ ...props
31
+ });
32
+ });
33
+ const Listbox_ListboxInput = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
34
+ return /*#__PURE__*/ jsx(Listbox.Input, {
35
+ ref: ref,
36
+ "data-slot": "listbox-input",
37
+ className: cn('m-0 box-border min-h-control-md w-full rounded-md border border-border bg-background px-3 py-1 text-md leading-6 text-foreground outline-1 -outline-offset-1 outline-transparent transition-[border-color,outline-color,opacity] duration-200 ease-in-out group-has-[[data-slot=listbox-filter-icon]]/listbox-filter:ps-9 group-has-[[data-slot=listbox-filter-icon]]/listbox-filter:pe-10 group-has-[+_[data-slot=listbox-content]]/listbox-filter:rounded-b-none group-has-[+_[data-slot=listbox-content]]/listbox-filter:border-b-0 placeholder:text-muted-foreground focus-visible:outline-ring disabled:cursor-default disabled:opacity-50 data-disabled:cursor-default data-disabled:opacity-50 motion-reduce:transition-none', className),
38
+ ...props
39
+ });
40
+ });
41
+ function ListboxFilter({ className, children, ...props }) {
42
+ return /*#__PURE__*/ jsxs("div", {
43
+ "data-slot": "listbox-filter",
44
+ className: cn('group/listbox-filter peer/listbox-filter relative box-border w-full', className),
45
+ ...props,
46
+ children: [
47
+ /*#__PURE__*/ jsx(SearchIcon, {
48
+ "data-slot": "listbox-filter-icon",
49
+ className: "pointer-events-none absolute start-3 top-1/2 z-1 size-4 -translate-y-1/2 text-muted-foreground"
50
+ }),
51
+ children
52
+ ]
53
+ });
54
+ }
55
+ const Listbox_ListboxClearTrigger = /*#__PURE__*/ forwardRef(function({ 'aria-label': ariaLabel = 'Clear search', className, children, type = 'button', ...props }, ref) {
56
+ return /*#__PURE__*/ jsx(CloseButton.Root, {
57
+ ref: ref,
58
+ "data-slot": "listbox-clear-trigger",
59
+ type: type,
60
+ "aria-label": ariaLabel,
61
+ className: cn('absolute end-3 top-1/2 size-control-xs -translate-y-1/2 rounded-sm bg-transparent text-muted-foreground [&>svg]:size-4 [@media(hover:hover)]:hover:bg-muted [@media(hover:hover)]:hover:text-foreground', className),
62
+ ...props,
63
+ children: children
64
+ });
65
+ });
66
+ const Listbox_ListboxContent = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
67
+ return /*#__PURE__*/ jsx(Listbox.Content, {
68
+ ref: ref,
69
+ "data-slot": "listbox-content",
70
+ className: cn('box-border flex max-h-56 min-h-0 scroll-py-1 [scrollbar-gutter:stable] flex-col overflow-x-hidden overflow-y-auto overscroll-contain rounded-md border border-border bg-background py-1 text-foreground outline-1 -outline-offset-1 outline-transparent transition-[border-color,outline-color] duration-200 ease-in-out peer-data-[slot=listbox-filter]/listbox-filter:-mt-3 peer-data-[slot=listbox-filter]/listbox-filter:rounded-t-none focus-visible:outline-ring data-[layout=grid]:grid data-[layout=grid]:grid-cols-[repeat(var(--column-count),minmax(0,1fr))] data-[layout=grid]:gap-1 data-[layout=grid]:p-2 data-[orientation=horizontal]:not-data-[layout=grid]:max-h-none data-[orientation=horizontal]:not-data-[layout=grid]:flex-row data-[orientation=horizontal]:not-data-[layout=grid]:gap-2 data-[orientation=horizontal]:not-data-[layout=grid]:overflow-x-auto data-[orientation=horizontal]:not-data-[layout=grid]:overflow-y-hidden data-[orientation=horizontal]:not-data-[layout=grid]:px-1 motion-reduce:transition-none', className),
71
+ ...props
72
+ });
73
+ });
74
+ const Listbox_ListboxEmpty = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
75
+ return /*#__PURE__*/ jsx(Listbox.Empty, {
76
+ ref: ref,
77
+ "data-slot": "listbox-empty",
78
+ className: cn('px-3 py-1 text-center text-sm leading-5 text-muted-foreground', className),
79
+ ...props
80
+ });
81
+ });
82
+ const Listbox_ListboxItemGroup = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
83
+ return /*#__PURE__*/ jsx(Listbox.ItemGroup, {
84
+ ref: ref,
85
+ "data-slot": "listbox-item-group",
86
+ className: cn('flex flex-col [&+&]:mt-2', className),
87
+ ...props
88
+ });
89
+ });
90
+ const Listbox_ListboxItemGroupLabel = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
91
+ return /*#__PURE__*/ jsx(Listbox.ItemGroupLabel, {
92
+ ref: ref,
93
+ "data-slot": "listbox-item-group-label",
94
+ className: cn('px-2 py-1 text-xs leading-4 font-normal text-muted-foreground select-none', className),
95
+ ...props
96
+ });
97
+ });
98
+ const Listbox_ListboxItem = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
99
+ return /*#__PURE__*/ jsx(Listbox.Item, {
100
+ ref: ref,
101
+ "data-slot": "listbox-item",
102
+ className: cn('relative mx-1 box-border grid min-h-control-sm w-[calc(100%-0.5rem)] cursor-pointer grid-cols-[minmax(0,1fr)_1rem] items-center gap-2 rounded-sm bg-transparent px-3 py-1 text-sm leading-5 text-foreground outline-0 transition-[background-color,color] duration-200 ease-in-out select-none data-disabled:pointer-events-none data-disabled:cursor-default data-disabled:text-muted-foreground data-disabled:opacity-50 data-highlighted:bg-accent data-highlighted:text-accent-foreground data-[layout=grid]:mx-0 data-[layout=grid]:w-full data-[layout=grid]:min-w-0 data-[layout=grid]:grid-cols-1 data-[layout=grid]:justify-items-center data-[layout=grid]:text-center data-[layout=grid]:data-selected:bg-muted data-[layout=grid]:data-selected:text-foreground data-[orientation=horizontal]:not-data-[layout=grid]:w-44 data-[orientation=horizontal]:not-data-[layout=grid]:min-w-44 data-[orientation=horizontal]:not-data-[layout=grid]:items-start motion-reduce:transition-none [@media(hover:hover)]:[&:not([data-disabled]):hover]:bg-accent [@media(hover:hover)]:[&:not([data-disabled]):hover]:text-accent-foreground', className),
103
+ ...props
104
+ });
105
+ });
106
+ const Listbox_ListboxItemText = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
107
+ return /*#__PURE__*/ jsx(Listbox.ItemText, {
108
+ ref: ref,
109
+ "data-slot": "listbox-item-text",
110
+ className: cn('min-w-0 overflow-hidden text-ellipsis whitespace-nowrap', className),
111
+ ...props
112
+ });
113
+ });
114
+ const Listbox_ListboxItemIndicator = /*#__PURE__*/ forwardRef(function({ className, children, ...props }, ref) {
115
+ return /*#__PURE__*/ jsx(Listbox.ItemIndicator, {
116
+ ref: ref,
117
+ "data-slot": "listbox-item-indicator",
118
+ className: cn('inline-flex size-4 shrink-0 items-center justify-center data-[state=unchecked]:invisible [&>svg]:size-3', className),
119
+ ...props,
120
+ children: children ?? /*#__PURE__*/ jsx(CheckIcon, {})
121
+ });
122
+ });
123
+ const Listbox_ListboxValueText = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
124
+ return /*#__PURE__*/ jsx(Listbox.ValueText, {
125
+ ref: ref,
126
+ "data-slot": "listbox-value-text",
127
+ className: cn('text-sm leading-5 text-muted-foreground', className),
128
+ ...props
129
+ });
130
+ });
131
+ const Listbox_ListboxItemTextContent = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
132
+ return /*#__PURE__*/ jsx(ark.span, {
133
+ ref: ref,
134
+ "data-slot": "listbox-item-text-content",
135
+ className: cn('inline-flex max-w-full min-w-0 items-center gap-2 align-top', className),
136
+ ...props
137
+ });
138
+ });
139
+ const Listbox_ListboxItemTextIcon = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
140
+ return /*#__PURE__*/ jsx(ark.span, {
141
+ ref: ref,
142
+ "data-slot": "listbox-item-text-icon",
143
+ className: cn('inline-flex size-4 shrink-0 items-center justify-center', className),
144
+ ...props
145
+ });
146
+ });
147
+ const Listbox_ListboxItemTextLabel = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
148
+ return /*#__PURE__*/ jsx(ark.span, {
149
+ ref: ref,
150
+ "data-slot": "listbox-item-text-label",
151
+ className: cn('min-w-0 overflow-hidden text-ellipsis whitespace-nowrap', className),
152
+ ...props
153
+ });
154
+ });
155
+ const Listbox_Listbox = Object.assign(Listbox_ListboxRoot, {
156
+ Root: Listbox_ListboxRoot,
157
+ RootProvider: Listbox_ListboxRootProvider,
158
+ Label: Listbox_ListboxLabel,
159
+ Input: Listbox_ListboxInput,
160
+ Filter: ListboxFilter,
161
+ ClearTrigger: Listbox_ListboxClearTrigger,
162
+ Content: Listbox_ListboxContent,
163
+ Empty: Listbox_ListboxEmpty,
164
+ ItemGroup: Listbox_ListboxItemGroup,
165
+ ItemGroupLabel: Listbox_ListboxItemGroupLabel,
166
+ Item: Listbox_ListboxItem,
167
+ ItemText: Listbox_ListboxItemText,
168
+ ItemIndicator: Listbox_ListboxItemIndicator,
169
+ ValueText: Listbox_ListboxValueText,
170
+ Context: Listbox.Context,
171
+ ItemContext: Listbox.ItemContext,
172
+ ItemTextContent: Listbox_ListboxItemTextContent,
173
+ ItemTextIcon: Listbox_ListboxItemTextIcon,
174
+ ItemTextLabel: Listbox_ListboxItemTextLabel,
175
+ useListbox: useListbox,
176
+ useListboxContext: useListboxContext,
177
+ useListboxItemContext: useListboxItemContext
178
+ });
179
+ export { Listbox_Listbox as Listbox, useListbox, useListboxContext, useListboxItemContext };
@@ -0,0 +1 @@
1
+ export { Listbox, useListbox, useListboxContext, useListboxItemContext } from './Listbox.js';
@@ -0,0 +1 @@
1
+ export { Listbox, useListbox, useListboxContext, useListboxItemContext } from "./Listbox.js";
@@ -0,0 +1,12 @@
1
+ import { Marquee as MarqueePrimitive, useMarqueeContext } from '@ark-ui/react/marquee';
2
+ declare const Marquee: import("react").ForwardRefExoticComponent<Omit<MarqueePrimitive.RootProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>> & {
3
+ Root: import("react").ForwardRefExoticComponent<Omit<MarqueePrimitive.RootProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
4
+ RootProvider: import("react").ForwardRefExoticComponent<Omit<MarqueePrimitive.RootProviderProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
5
+ Context: (props: MarqueePrimitive.ContextProps) => import("react").ReactNode;
6
+ Viewport: import("react").ForwardRefExoticComponent<Omit<MarqueePrimitive.ViewportProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
7
+ Content: import("react").ForwardRefExoticComponent<Omit<MarqueePrimitive.ContentProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
8
+ Item: import("react").ForwardRefExoticComponent<Omit<MarqueePrimitive.ItemProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
9
+ Edge: import("react").ForwardRefExoticComponent<Omit<MarqueePrimitive.EdgeProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
10
+ };
11
+ declare const useMarquee: (props?: import("@ark-ui/react/marquee").UseMarqueeProps) => import("@ark-ui/react/marquee").UseMarqueeReturn;
12
+ export { Marquee, useMarquee, useMarqueeContext };
@@ -0,0 +1,93 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { Marquee, useMarquee, useMarqueeContext } from "@ark-ui/react/marquee";
4
+ import { cva } from "class-variance-authority";
5
+ import { forwardRef } from "react";
6
+ import { cn } from "../../internal/cn.js";
7
+ const marqueeEdgeVariants = cva('pointer-events-none z-1', {
8
+ variants: {
9
+ side: {
10
+ start: 'w-1/5 bg-linear-to-r from-background to-transparent rtl:bg-linear-to-l',
11
+ end: 'w-1/5 bg-linear-to-l from-background to-transparent rtl:bg-linear-to-r',
12
+ top: 'h-1/5 bg-linear-to-b from-background to-transparent',
13
+ bottom: 'h-1/5 bg-linear-to-t from-background to-transparent'
14
+ }
15
+ }
16
+ });
17
+ const marqueeRootVariants = cva('group relative w-full overflow-hidden text-foreground', {
18
+ variants: {
19
+ orientation: {
20
+ horizontal: '',
21
+ vertical: 'h-60'
22
+ }
23
+ },
24
+ defaultVariants: {
25
+ orientation: 'horizontal'
26
+ }
27
+ });
28
+ const Marquee_MarqueeRoot = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
29
+ return /*#__PURE__*/ jsx(Marquee.Root, {
30
+ ref: ref,
31
+ "data-slot": "marquee-root",
32
+ className: cn(marqueeRootVariants({
33
+ orientation: 'top' === props.side || 'bottom' === props.side ? 'vertical' : 'horizontal'
34
+ }), className),
35
+ ...props
36
+ });
37
+ });
38
+ const Marquee_MarqueeRootProvider = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
39
+ return /*#__PURE__*/ jsx(Marquee.RootProvider, {
40
+ ref: ref,
41
+ "data-slot": "marquee-root-provider",
42
+ className: cn(marqueeRootVariants({
43
+ orientation: props.value.orientation
44
+ }), className),
45
+ ...props
46
+ });
47
+ });
48
+ const Marquee_MarqueeViewport = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
49
+ return /*#__PURE__*/ jsx(Marquee.Viewport, {
50
+ ref: ref,
51
+ "data-slot": "marquee-viewport",
52
+ className: cn('size-full', className),
53
+ ...props
54
+ });
55
+ });
56
+ const Marquee_MarqueeContent = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
57
+ return /*#__PURE__*/ jsx(Marquee.Content, {
58
+ ref: ref,
59
+ "data-slot": "marquee-content",
60
+ className: cn('animate-moduix-marquee-x group-data-paused:[animation-play-state:paused] data-reverse:[animation-direction:reverse] data-[side=bottom]:animate-moduix-marquee-y data-[side=top]:animate-moduix-marquee-y motion-reduce:animate-none', className),
61
+ ...props
62
+ });
63
+ });
64
+ const Marquee_MarqueeItem = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
65
+ return /*#__PURE__*/ jsx(Marquee.Item, {
66
+ ref: ref,
67
+ "data-slot": "marquee-item",
68
+ className: cn('shrink-0', className),
69
+ ...props
70
+ });
71
+ });
72
+ const Marquee_MarqueeEdge = /*#__PURE__*/ forwardRef(function({ className, side, ...props }, ref) {
73
+ return /*#__PURE__*/ jsx(Marquee.Edge, {
74
+ ref: ref,
75
+ "data-slot": "marquee-edge",
76
+ side: side,
77
+ className: cn(marqueeEdgeVariants({
78
+ side
79
+ }), className),
80
+ ...props
81
+ });
82
+ });
83
+ const Marquee_Marquee = Object.assign(Marquee_MarqueeRoot, {
84
+ Root: Marquee_MarqueeRoot,
85
+ RootProvider: Marquee_MarqueeRootProvider,
86
+ Context: Marquee.Context,
87
+ Viewport: Marquee_MarqueeViewport,
88
+ Content: Marquee_MarqueeContent,
89
+ Item: Marquee_MarqueeItem,
90
+ Edge: Marquee_MarqueeEdge
91
+ });
92
+ const Marquee_useMarquee = useMarquee;
93
+ export { Marquee_Marquee as Marquee, Marquee_useMarquee as useMarquee, useMarqueeContext };
@@ -0,0 +1 @@
1
+ export { Marquee, useMarquee, useMarqueeContext } from './Marquee.js';
@@ -0,0 +1 @@
1
+ export { Marquee, useMarquee, useMarqueeContext } from "./Marquee.js";
@@ -0,0 +1,51 @@
1
+ import { Menu as MenuPrimitive, useMenu, useMenuContext, useMenuItemContext } from '@ark-ui/react/menu';
2
+ import type { ComponentProps } from 'react';
3
+ import { type OverlayPortalProps } from '../../internal/overlayPortal.js';
4
+ type MenuIndicatorPosition = 'start' | 'end' | 'none';
5
+ type MenuItemTone = 'default' | 'destructive';
6
+ type MenuItemProps = ComponentProps<typeof MenuPrimitive.Item> & {
7
+ tone?: MenuItemTone;
8
+ };
9
+ type MenuCheckboxItemProps = ComponentProps<typeof MenuPrimitive.CheckboxItem> & {
10
+ indicator?: MenuIndicatorPosition;
11
+ };
12
+ type MenuRadioItemProps = ComponentProps<typeof MenuPrimitive.RadioItem> & {
13
+ indicator?: MenuIndicatorPosition;
14
+ };
15
+ type MenuRootProps = ComponentProps<typeof MenuPrimitive.Root> & OverlayPortalProps;
16
+ type MenuRootProviderProps = ComponentProps<typeof MenuPrimitive.RootProvider> & OverlayPortalProps;
17
+ declare function MenuRoot({ lazyMount, portalled, portalRef, unmountOnExit, ...props }: MenuRootProps): import("react").JSX.Element;
18
+ declare function MenuRootProvider({ lazyMount, portalled, portalRef, unmountOnExit, ...props }: MenuRootProviderProps): import("react").JSX.Element;
19
+ declare function MenuTriggerIcon({ className, children, ...props }: ComponentProps<'span'>): import("react").JSX.Element;
20
+ declare function MenuTriggerItemIcon({ className, children, ...props }: ComponentProps<'span'>): import("react").JSX.Element;
21
+ declare const Menu: typeof MenuRoot & {
22
+ Root: typeof MenuRoot;
23
+ RootProvider: typeof MenuRootProvider;
24
+ Context: (props: MenuPrimitive.ContextProps) => import("react").ReactNode;
25
+ Trigger: import("react").ForwardRefExoticComponent<Omit<MenuPrimitive.TriggerProps & import("react").RefAttributes<HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
26
+ TriggerIcon: typeof MenuTriggerIcon;
27
+ Indicator: import("react").ForwardRefExoticComponent<Omit<MenuPrimitive.IndicatorProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
28
+ ContextTrigger: import("react").ForwardRefExoticComponent<Omit<MenuPrimitive.ContextTriggerProps & import("react").RefAttributes<HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
29
+ Positioner: import("react").ForwardRefExoticComponent<Omit<MenuPrimitive.PositionerProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
30
+ Content: import("react").ForwardRefExoticComponent<Omit<MenuPrimitive.ContentProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
31
+ Viewport: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLDivElement>>;
32
+ Arrow: import("react").ForwardRefExoticComponent<Omit<MenuPrimitive.ArrowProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
33
+ ArrowTip: import("react").ForwardRefExoticComponent<Omit<MenuPrimitive.ArrowTipProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
34
+ Item: import("react").ForwardRefExoticComponent<Omit<MenuItemProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
35
+ TriggerItem: import("react").ForwardRefExoticComponent<Omit<MenuPrimitive.TriggerItemProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
36
+ TriggerItemIcon: typeof MenuTriggerItemIcon;
37
+ Separator: import("react").ForwardRefExoticComponent<Omit<MenuPrimitive.SeparatorProps & import("react").RefAttributes<HTMLHRElement>, "ref"> & import("react").RefAttributes<HTMLHRElement>>;
38
+ ItemGroup: import("react").ForwardRefExoticComponent<Omit<MenuPrimitive.ItemGroupProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
39
+ ItemGroupLabel: import("react").ForwardRefExoticComponent<Omit<MenuPrimitive.ItemGroupLabelProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
40
+ RadioItemGroup: import("react").ForwardRefExoticComponent<Omit<MenuPrimitive.RadioItemGroupProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
41
+ RadioItem: import("react").ForwardRefExoticComponent<Omit<MenuRadioItemProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
42
+ CheckboxItem: import("react").ForwardRefExoticComponent<Omit<MenuCheckboxItemProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
43
+ ItemIndicator: import("react").ForwardRefExoticComponent<Omit<MenuPrimitive.ItemIndicatorProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
44
+ ItemText: import("react").ForwardRefExoticComponent<Omit<MenuPrimitive.ItemTextProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
45
+ ItemTextContent: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLSpanElement>>;
46
+ ItemTextIcon: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLSpanElement>>;
47
+ ItemTextLabel: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLSpanElement>>;
48
+ ItemShortcut: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLSpanElement>>;
49
+ ItemContext: (props: MenuPrimitive.ItemContextProps) => import("react").ReactNode;
50
+ };
51
+ export { Menu, useMenu, useMenuContext, useMenuItemContext };
@@ -0,0 +1,300 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { ark } from "@ark-ui/react/factory";
4
+ import { Menu, useMenu, useMenuContext, useMenuItemContext } from "@ark-ui/react/menu";
5
+ import { cva } from "class-variance-authority";
6
+ import { forwardRef } from "react";
7
+ import { cn } from "../../internal/cn.js";
8
+ import { CheckIcon, ChevronDownIcon, ChevronRightIcon } from "../../internal/icons/ui/index.js";
9
+ import { OverlayPortal, OverlayPortalProvider } from "../../internal/overlayPortal.js";
10
+ const menuItemStyles = cva("relative z-0 min-h-control-sm cursor-default rounded-sm bg-transparent text-sm text-inherit no-underline outline-0 select-none before:absolute before:inset-x-1 before:inset-y-0 before:-z-1 before:rounded-sm before:bg-transparent before:content-[''] data-disabled:pointer-events-none data-disabled:text-muted-foreground data-highlighted:text-accent-foreground data-highlighted:before:bg-accent data-[state=open]:before:bg-accent", {
11
+ variants: {
12
+ layout: {
13
+ item: 'flex items-center gap-2 px-3 py-1',
14
+ triggerItem: 'flex items-center justify-between gap-3 px-3 py-1',
15
+ indicatorItem: 'grid items-center gap-2 py-1 ps-2.5 pe-3'
16
+ },
17
+ tone: {
18
+ default: '',
19
+ destructive: 'text-destructive data-highlighted:text-destructive data-highlighted:before:bg-[color-mix(in_oklab,var(--color-destructive)_12%,transparent)]'
20
+ },
21
+ indicator: {
22
+ start: "grid-cols-[0.75rem_minmax(0,1fr)] [&>[data-slot='menu-item-indicator']]:col-start-1 [&>[data-slot='menu-item-text']]:col-start-2",
23
+ end: "grid-cols-[minmax(0,1fr)_0.75rem] [&>[data-slot='menu-item-indicator']]:col-start-2 [&>[data-slot='menu-item-indicator']]:justify-self-end [&>[data-slot='menu-item-text']]:col-start-1",
24
+ none: "grid-cols-[minmax(0,1fr)] ps-3 [&>[data-slot='menu-item-indicator']]:hidden [&>[data-slot='menu-item-text']]:col-start-1"
25
+ }
26
+ },
27
+ defaultVariants: {
28
+ tone: 'default'
29
+ }
30
+ });
31
+ function MenuRoot({ lazyMount = true, portalled, portalRef, unmountOnExit = true, ...props }) {
32
+ return /*#__PURE__*/ jsx(OverlayPortalProvider, {
33
+ portalled: portalled,
34
+ portalRef: portalRef,
35
+ children: /*#__PURE__*/ jsx(Menu.Root, {
36
+ lazyMount: lazyMount,
37
+ unmountOnExit: unmountOnExit,
38
+ ...props
39
+ })
40
+ });
41
+ }
42
+ function MenuRootProvider({ lazyMount = true, portalled, portalRef, unmountOnExit = true, ...props }) {
43
+ return /*#__PURE__*/ jsx(OverlayPortalProvider, {
44
+ portalled: portalled,
45
+ portalRef: portalRef,
46
+ children: /*#__PURE__*/ jsx(Menu.RootProvider, {
47
+ lazyMount: lazyMount,
48
+ unmountOnExit: unmountOnExit,
49
+ ...props
50
+ })
51
+ });
52
+ }
53
+ const Menu_MenuTrigger = /*#__PURE__*/ forwardRef(function({ asChild, className, ...props }, ref) {
54
+ return /*#__PURE__*/ jsx(Menu.Trigger, {
55
+ ref: ref,
56
+ "data-slot": "menu-trigger",
57
+ asChild: asChild,
58
+ className: cn(!asChild && 'inline-flex min-h-control-md cursor-pointer items-center justify-center gap-2 rounded-md border border-border bg-background px-4 py-1 text-sm font-medium text-foreground outline-0 transition-colors duration-200 ease-in-out select-none focus-visible:outline-1 focus-visible:-outline-offset-1 focus-visible:outline-ring active:bg-muted data-disabled:pointer-events-none data-disabled:opacity-50 data-[current]:data-[state=open]:bg-muted motion-reduce:transition-none [@media(hover:hover)]:hover:bg-muted', className),
59
+ ...props
60
+ });
61
+ });
62
+ function MenuTriggerIcon({ className, children, ...props }) {
63
+ return /*#__PURE__*/ jsx("span", {
64
+ "data-slot": "menu-trigger-icon",
65
+ className: cn('inline-flex size-4 shrink-0 items-center justify-center [&_svg]:size-full', className),
66
+ ...props,
67
+ children: children ?? /*#__PURE__*/ jsx(ChevronDownIcon, {})
68
+ });
69
+ }
70
+ const Menu_MenuIndicator = /*#__PURE__*/ forwardRef(function({ className, children, ...props }, ref) {
71
+ return /*#__PURE__*/ jsx(Menu.Indicator, {
72
+ ref: ref,
73
+ "data-slot": "menu-indicator",
74
+ className: cn('inline-flex size-4 shrink-0 items-center justify-center [&_svg]:size-full', className),
75
+ ...props,
76
+ children: children ?? /*#__PURE__*/ jsx(ChevronDownIcon, {})
77
+ });
78
+ });
79
+ const Menu_MenuContextTrigger = /*#__PURE__*/ forwardRef(function({ asChild, className, ...props }, ref) {
80
+ return /*#__PURE__*/ jsx(Menu.ContextTrigger, {
81
+ ref: ref,
82
+ "data-slot": "menu-context-trigger",
83
+ asChild: asChild,
84
+ className: cn(!asChild && 'inline-flex min-h-control-md cursor-pointer items-center justify-center gap-2 rounded-md border border-border bg-background px-4 py-1 text-sm font-medium text-foreground outline-0 transition-colors duration-200 ease-in-out select-none focus-visible:outline-1 focus-visible:-outline-offset-1 focus-visible:outline-ring active:bg-muted data-disabled:pointer-events-none data-disabled:opacity-50 data-[current]:data-[state=open]:bg-muted motion-reduce:transition-none [@media(hover:hover)]:hover:bg-muted', className),
85
+ ...props
86
+ });
87
+ });
88
+ const Menu_MenuPositioner = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
89
+ return /*#__PURE__*/ jsx(OverlayPortal, {
90
+ children: /*#__PURE__*/ jsx(Menu.Positioner, {
91
+ ref: ref,
92
+ "data-slot": "menu-positioner",
93
+ className: cn('z-[var(--z-index)] w-[var(--positioner-width,auto)] max-w-[var(--available-width)] outline-0', className),
94
+ ...props
95
+ })
96
+ });
97
+ });
98
+ const Menu_MenuContent = /*#__PURE__*/ forwardRef(function({ asChild, className, children, ...props }, ref) {
99
+ return /*#__PURE__*/ jsx(Menu.Content, {
100
+ ref: ref,
101
+ "data-slot": "menu-content",
102
+ asChild: asChild,
103
+ className: cn('relative z-[calc(var(--moduix-z-popup)+var(--layer-index,0))] flex max-w-[min(20rem,var(--available-width,100vw))] min-w-[min(max(var(--reference-width,0px),12rem),var(--available-width,100vw))] origin-[var(--transform-origin)] flex-col overflow-visible rounded-md bg-popover py-1 text-popover-foreground shadow-lg outline-1 outline-border [--arrow-background:var(--color-popover)] [--arrow-size:0.625rem] data-[state=closed]:animate-moduix-menu-closed data-[state=open]:animate-moduix-menu-open motion-reduce:[animation-delay:0ms] motion-reduce:[animation-duration:1ms]', className),
104
+ ...props,
105
+ children: children
106
+ });
107
+ });
108
+ const Menu_MenuViewport = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
109
+ return /*#__PURE__*/ jsx(ark.div, {
110
+ ref: ref,
111
+ "data-scope": "menu",
112
+ "data-part": "viewport",
113
+ "data-slot": "menu-viewport",
114
+ className: cn('flex max-h-[min(24rem,var(--available-height,100dvh))] flex-col overflow-auto', className),
115
+ ...props
116
+ });
117
+ });
118
+ const Menu_MenuArrow = /*#__PURE__*/ forwardRef(function({ className, children, ...props }, ref) {
119
+ return /*#__PURE__*/ jsx(Menu.Arrow, {
120
+ ref: ref,
121
+ "data-slot": "menu-arrow",
122
+ className: cn('[--arrow-background:var(--color-popover)]', className),
123
+ ...props,
124
+ children: children ?? /*#__PURE__*/ jsx(Menu_MenuArrowTip, {})
125
+ });
126
+ });
127
+ const Menu_MenuArrowTip = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
128
+ return /*#__PURE__*/ jsx(Menu.ArrowTip, {
129
+ ref: ref,
130
+ "data-slot": "menu-arrow-tip",
131
+ className: cn('[border-block-start:1px_solid_var(--color-border)] [border-inline-start:1px_solid_var(--color-border)]', className),
132
+ ...props
133
+ });
134
+ });
135
+ const Menu_MenuItem = /*#__PURE__*/ forwardRef(function({ className, tone = 'default', ...props }, ref) {
136
+ return /*#__PURE__*/ jsx(Menu.Item, {
137
+ ref: ref,
138
+ "data-slot": "menu-item",
139
+ "data-tone": tone,
140
+ className: cn(menuItemStyles({
141
+ layout: 'item',
142
+ tone
143
+ }), className),
144
+ ...props
145
+ });
146
+ });
147
+ const Menu_MenuTriggerItem = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
148
+ return /*#__PURE__*/ jsx(Menu.TriggerItem, {
149
+ ref: ref,
150
+ "data-slot": "menu-trigger-item",
151
+ className: cn(menuItemStyles({
152
+ layout: 'triggerItem'
153
+ }), className),
154
+ ...props
155
+ });
156
+ });
157
+ function MenuTriggerItemIcon({ className, children, ...props }) {
158
+ return /*#__PURE__*/ jsx("span", {
159
+ "data-slot": "menu-trigger-item-icon",
160
+ className: cn('inline-flex size-3.5 shrink-0 rtl:-scale-x-100 [&_svg]:size-full', className),
161
+ ...props,
162
+ children: children ?? /*#__PURE__*/ jsx(ChevronRightIcon, {})
163
+ });
164
+ }
165
+ const Menu_MenuSeparator = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
166
+ return /*#__PURE__*/ jsx(Menu.Separator, {
167
+ ref: ref,
168
+ "data-slot": "menu-separator",
169
+ className: cn('mx-3 my-1.5 h-px border-0 bg-border', className),
170
+ ...props
171
+ });
172
+ });
173
+ const Menu_MenuItemGroup = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
174
+ return /*#__PURE__*/ jsx(Menu.ItemGroup, {
175
+ ref: ref,
176
+ "data-slot": "menu-item-group",
177
+ className: cn('grid', className),
178
+ ...props
179
+ });
180
+ });
181
+ const Menu_MenuItemGroupLabel = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
182
+ return /*#__PURE__*/ jsx(Menu.ItemGroupLabel, {
183
+ ref: ref,
184
+ "data-slot": "menu-item-group-label",
185
+ className: cn('cursor-default px-2.5 py-1 text-xs font-normal text-muted-foreground select-none', className),
186
+ ...props
187
+ });
188
+ });
189
+ const Menu_MenuRadioItemGroup = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
190
+ return /*#__PURE__*/ jsx(Menu.RadioItemGroup, {
191
+ ref: ref,
192
+ "data-slot": "menu-radio-item-group",
193
+ className: cn('grid', className),
194
+ ...props
195
+ });
196
+ });
197
+ const Menu_MenuRadioItem = /*#__PURE__*/ forwardRef(function({ className, indicator = 'start', ...props }, ref) {
198
+ return /*#__PURE__*/ jsx(Menu.RadioItem, {
199
+ ref: ref,
200
+ "data-slot": "menu-radio-item",
201
+ "data-indicator-position": indicator,
202
+ className: cn(menuItemStyles({
203
+ layout: 'indicatorItem',
204
+ indicator
205
+ }), className),
206
+ ...props
207
+ });
208
+ });
209
+ const Menu_MenuCheckboxItem = /*#__PURE__*/ forwardRef(function({ className, indicator = 'start', ...props }, ref) {
210
+ return /*#__PURE__*/ jsx(Menu.CheckboxItem, {
211
+ ref: ref,
212
+ "data-slot": "menu-checkbox-item",
213
+ "data-indicator-position": indicator,
214
+ className: cn(menuItemStyles({
215
+ layout: 'indicatorItem',
216
+ indicator
217
+ }), className),
218
+ ...props
219
+ });
220
+ });
221
+ const Menu_MenuItemIndicator = /*#__PURE__*/ forwardRef(function({ className, children, ...props }, ref) {
222
+ return /*#__PURE__*/ jsx(Menu.ItemIndicator, {
223
+ ref: ref,
224
+ "data-slot": "menu-item-indicator",
225
+ className: cn('inline-flex size-3 items-center justify-center rounded-xs [&_svg]:size-full', className),
226
+ ...props,
227
+ children: children ?? /*#__PURE__*/ jsx(CheckIcon, {})
228
+ });
229
+ });
230
+ const Menu_MenuItemText = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
231
+ return /*#__PURE__*/ jsx(Menu.ItemText, {
232
+ ref: ref,
233
+ "data-slot": "menu-item-text",
234
+ className: cn('min-w-0 overflow-hidden', className),
235
+ ...props
236
+ });
237
+ });
238
+ const Menu_MenuItemTextContent = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
239
+ return /*#__PURE__*/ jsx(ark.span, {
240
+ ref: ref,
241
+ "data-slot": "menu-item-text-content",
242
+ className: cn('inline-flex max-w-full min-w-0 items-center gap-2 align-top', className),
243
+ ...props
244
+ });
245
+ });
246
+ const Menu_MenuItemTextIcon = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
247
+ return /*#__PURE__*/ jsx(ark.span, {
248
+ ref: ref,
249
+ "data-slot": "menu-item-text-icon",
250
+ className: cn('inline-flex size-4 shrink-0 items-center justify-center [&_svg]:size-full', className),
251
+ ...props
252
+ });
253
+ });
254
+ const Menu_MenuItemTextLabel = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
255
+ return /*#__PURE__*/ jsx(ark.span, {
256
+ ref: ref,
257
+ "data-slot": "menu-item-text-label",
258
+ className: cn('min-w-0 overflow-hidden text-ellipsis whitespace-nowrap', className),
259
+ ...props
260
+ });
261
+ });
262
+ const Menu_MenuItemShortcut = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
263
+ return /*#__PURE__*/ jsx(ark.span, {
264
+ ref: ref,
265
+ "data-slot": "menu-item-shortcut",
266
+ className: cn('ms-auto ps-4 text-xs whitespace-nowrap text-muted-foreground', className),
267
+ ...props
268
+ });
269
+ });
270
+ const Menu_Menu = Object.assign(MenuRoot, {
271
+ Root: MenuRoot,
272
+ RootProvider: MenuRootProvider,
273
+ Context: Menu.Context,
274
+ Trigger: Menu_MenuTrigger,
275
+ TriggerIcon: MenuTriggerIcon,
276
+ Indicator: Menu_MenuIndicator,
277
+ ContextTrigger: Menu_MenuContextTrigger,
278
+ Positioner: Menu_MenuPositioner,
279
+ Content: Menu_MenuContent,
280
+ Viewport: Menu_MenuViewport,
281
+ Arrow: Menu_MenuArrow,
282
+ ArrowTip: Menu_MenuArrowTip,
283
+ Item: Menu_MenuItem,
284
+ TriggerItem: Menu_MenuTriggerItem,
285
+ TriggerItemIcon: MenuTriggerItemIcon,
286
+ Separator: Menu_MenuSeparator,
287
+ ItemGroup: Menu_MenuItemGroup,
288
+ ItemGroupLabel: Menu_MenuItemGroupLabel,
289
+ RadioItemGroup: Menu_MenuRadioItemGroup,
290
+ RadioItem: Menu_MenuRadioItem,
291
+ CheckboxItem: Menu_MenuCheckboxItem,
292
+ ItemIndicator: Menu_MenuItemIndicator,
293
+ ItemText: Menu_MenuItemText,
294
+ ItemTextContent: Menu_MenuItemTextContent,
295
+ ItemTextIcon: Menu_MenuItemTextIcon,
296
+ ItemTextLabel: Menu_MenuItemTextLabel,
297
+ ItemShortcut: Menu_MenuItemShortcut,
298
+ ItemContext: Menu.ItemContext
299
+ });
300
+ export { Menu_Menu as Menu, useMenu, useMenuContext, useMenuItemContext };