@primitiv-ui/react 0.1.38 → 0.1.39

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 (1495) hide show
  1. package/README.md +24 -2
  2. package/dist/AccessibleIcon/AccessibleIcon.d.ts +51 -0
  3. package/dist/AccessibleIcon/AccessibleIcon.js +55 -0
  4. package/dist/AccessibleIcon/index.d.ts +2 -0
  5. package/dist/AccessibleIcon/index.js +2 -0
  6. package/dist/AccessibleIcon/types.d.ts +24 -0
  7. package/dist/AccessibleIcon/types.js +1 -0
  8. package/dist/Accordion/Accordion.d.ts +287 -0
  9. package/dist/Accordion/Accordion.js +330 -0
  10. package/dist/Accordion/AccordionContext.d.ts +3 -0
  11. package/dist/Accordion/AccordionContext.js +4 -0
  12. package/dist/Accordion/hooks/index.d.ts +6 -0
  13. package/dist/Accordion/hooks/index.js +6 -0
  14. package/dist/Accordion/hooks/useAccordionContext.d.ts +1 -0
  15. package/dist/Accordion/hooks/useAccordionContext.js +1 -0
  16. package/dist/Accordion/hooks/useAccordionHeaderContext.d.ts +1 -0
  17. package/dist/Accordion/hooks/useAccordionHeaderContext.js +10 -0
  18. package/dist/Accordion/hooks/useAccordionItem.d.ts +8 -0
  19. package/dist/Accordion/hooks/useAccordionItem.js +15 -0
  20. package/dist/Accordion/hooks/useAccordionItemContext.d.ts +1 -0
  21. package/dist/Accordion/hooks/useAccordionItemContext.js +1 -0
  22. package/dist/Accordion/hooks/useAccordionRoot.d.ts +16 -0
  23. package/dist/Accordion/hooks/useAccordionRoot.js +133 -0
  24. package/dist/Accordion/hooks/useAccordionTrigger.d.ts +298 -0
  25. package/dist/Accordion/hooks/useAccordionTrigger.js +73 -0
  26. package/dist/Accordion/index.d.ts +2 -0
  27. package/dist/Accordion/index.js +2 -0
  28. package/dist/Accordion/types.d.ts +152 -0
  29. package/dist/Accordion/types.js +1 -0
  30. package/dist/Alert/Alert.d.ts +64 -0
  31. package/dist/Alert/Alert.js +70 -0
  32. package/dist/Alert/index.d.ts +2 -0
  33. package/dist/Alert/index.js +2 -0
  34. package/dist/Alert/types.d.ts +21 -0
  35. package/dist/Alert/types.js +1 -0
  36. package/dist/Avatar/Avatar.d.ts +144 -0
  37. package/dist/Avatar/Avatar.js +187 -0
  38. package/dist/Avatar/AvatarContext.d.ts +16 -0
  39. package/dist/Avatar/AvatarContext.js +7 -0
  40. package/dist/Avatar/hooks/index.d.ts +2 -0
  41. package/dist/Avatar/hooks/index.js +2 -0
  42. package/dist/Avatar/hooks/useAvatarContext.d.ts +1 -0
  43. package/dist/Avatar/hooks/useAvatarContext.js +1 -0
  44. package/dist/Avatar/hooks/useAvatarImage.d.ts +21 -0
  45. package/dist/Avatar/hooks/useAvatarImage.js +47 -0
  46. package/dist/Avatar/index.d.ts +3 -0
  47. package/dist/Avatar/index.js +3 -0
  48. package/dist/Avatar/types.d.ts +52 -0
  49. package/dist/Avatar/types.js +1 -0
  50. package/dist/Breadcrumb/Breadcrumb.d.ts +280 -0
  51. package/dist/Breadcrumb/Breadcrumb.js +299 -0
  52. package/dist/Breadcrumb/index.d.ts +2 -0
  53. package/dist/Breadcrumb/index.js +2 -0
  54. package/dist/Breadcrumb/types.d.ts +81 -0
  55. package/dist/Breadcrumb/types.js +1 -0
  56. package/dist/Button/Button.d.ts +73 -0
  57. package/dist/Button/Button.js +84 -0
  58. package/dist/Button/index.d.ts +2 -0
  59. package/dist/Button/index.js +2 -0
  60. package/dist/Button/types.d.ts +32 -0
  61. package/dist/Button/types.js +1 -0
  62. package/dist/Carousel/Carousel.d.ts +498 -0
  63. package/dist/Carousel/Carousel.js +660 -0
  64. package/dist/Carousel/CarouselContext.d.ts +7 -0
  65. package/dist/Carousel/CarouselContext.js +8 -0
  66. package/dist/Carousel/hooks/index.d.ts +5 -0
  67. package/dist/Carousel/hooks/index.js +5 -0
  68. package/dist/Carousel/hooks/useCarouselContext.d.ts +1 -0
  69. package/dist/Carousel/hooks/useCarouselContext.js +10 -0
  70. package/dist/Carousel/hooks/useCarouselLoop.d.ts +39 -0
  71. package/dist/Carousel/hooks/useCarouselLoop.js +735 -0
  72. package/dist/Carousel/hooks/useCarouselRoot.d.ts +97 -0
  73. package/dist/Carousel/hooks/useCarouselRoot.js +545 -0
  74. package/dist/Carousel/hooks/useCarouselSlide.d.ts +24 -0
  75. package/dist/Carousel/hooks/useCarouselSlide.js +62 -0
  76. package/dist/Carousel/hooks/useCarouselViewport.d.ts +46 -0
  77. package/dist/Carousel/hooks/useCarouselViewport.js +786 -0
  78. package/dist/Carousel/index.d.ts +3 -0
  79. package/dist/Carousel/index.js +3 -0
  80. package/dist/Carousel/loopEngine.d.ts +26 -0
  81. package/dist/Carousel/loopEngine.js +48 -0
  82. package/dist/Carousel/types.d.ts +783 -0
  83. package/dist/Carousel/types.js +1 -0
  84. package/dist/Checkbox/Checkbox.d.ts +120 -0
  85. package/dist/Checkbox/Checkbox.js +155 -0
  86. package/dist/Checkbox/CheckboxContext.d.ts +13 -0
  87. package/dist/Checkbox/CheckboxContext.js +3 -0
  88. package/dist/Checkbox/hooks/index.d.ts +3 -0
  89. package/dist/Checkbox/hooks/index.js +3 -0
  90. package/dist/Checkbox/hooks/useCheckboxContext.d.ts +1 -0
  91. package/dist/Checkbox/hooks/useCheckboxContext.js +1 -0
  92. package/dist/Checkbox/hooks/useCheckboxInput.d.ts +33 -0
  93. package/dist/Checkbox/hooks/useCheckboxInput.js +37 -0
  94. package/dist/Checkbox/hooks/useCheckboxRoot.d.ts +11 -0
  95. package/dist/Checkbox/hooks/useCheckboxRoot.js +14 -0
  96. package/dist/Checkbox/index.d.ts +2 -0
  97. package/dist/Checkbox/index.js +2 -0
  98. package/dist/Checkbox/types.d.ts +74 -0
  99. package/dist/Checkbox/types.js +1 -0
  100. package/dist/CheckboxCard/CheckboxCard.d.ts +132 -0
  101. package/dist/CheckboxCard/CheckboxCard.js +175 -0
  102. package/dist/CheckboxCard/CheckboxCardContext.d.ts +15 -0
  103. package/dist/CheckboxCard/CheckboxCardContext.js +10 -0
  104. package/dist/CheckboxCard/hooks/index.d.ts +2 -0
  105. package/dist/CheckboxCard/hooks/index.js +2 -0
  106. package/dist/CheckboxCard/hooks/useCheckboxCardContext.d.ts +1 -0
  107. package/dist/CheckboxCard/hooks/useCheckboxCardContext.js +1 -0
  108. package/dist/CheckboxCard/hooks/useCheckboxCardRoot.d.ts +11 -0
  109. package/dist/CheckboxCard/hooks/useCheckboxCardRoot.js +12 -0
  110. package/dist/CheckboxCard/index.d.ts +3 -0
  111. package/dist/CheckboxCard/index.js +3 -0
  112. package/dist/CheckboxCard/types.d.ts +87 -0
  113. package/dist/CheckboxCard/types.js +1 -0
  114. package/dist/Collapsible/Collapsible.d.ts +243 -0
  115. package/dist/Collapsible/Collapsible.js +275 -0
  116. package/dist/Collapsible/CollapsibleContext.d.ts +2 -0
  117. package/dist/Collapsible/CollapsibleContext.js +3 -0
  118. package/dist/Collapsible/hooks/index.d.ts +2 -0
  119. package/dist/Collapsible/hooks/index.js +2 -0
  120. package/dist/Collapsible/hooks/useCollapsibleRoot.d.ts +9 -0
  121. package/dist/Collapsible/hooks/useCollapsibleRoot.js +18 -0
  122. package/dist/Collapsible/hooks/useCollapsibleTrigger.d.ts +299 -0
  123. package/dist/Collapsible/hooks/useCollapsibleTrigger.js +39 -0
  124. package/dist/Collapsible/index.d.ts +2 -0
  125. package/dist/Collapsible/index.js +2 -0
  126. package/dist/Collapsible/types.d.ts +134 -0
  127. package/dist/Collapsible/types.js +1 -0
  128. package/dist/Combobox/Combobox.d.ts +149 -0
  129. package/dist/Combobox/Combobox.js +355 -0
  130. package/dist/Combobox/ComboboxContext.d.ts +10 -0
  131. package/dist/Combobox/ComboboxContext.js +13 -0
  132. package/dist/Combobox/hooks/index.d.ts +1 -0
  133. package/dist/Combobox/hooks/index.js +1 -0
  134. package/dist/Combobox/hooks/useComboboxRoot.d.ts +1 -0
  135. package/dist/Combobox/hooks/useComboboxRoot.js +1 -0
  136. package/dist/Combobox/index.d.ts +3 -0
  137. package/dist/Combobox/index.js +3 -0
  138. package/dist/Combobox/types.d.ts +126 -0
  139. package/dist/Combobox/types.js +1 -0
  140. package/dist/ContextMenu/ContextMenu.d.ts +508 -0
  141. package/dist/ContextMenu/ContextMenu.js +1005 -0
  142. package/dist/ContextMenu/ContextMenuContentContext.d.ts +12 -0
  143. package/dist/ContextMenu/ContextMenuContentContext.js +3 -0
  144. package/dist/ContextMenu/ContextMenuContext.d.ts +16 -0
  145. package/dist/ContextMenu/ContextMenuContext.js +3 -0
  146. package/dist/ContextMenu/ContextMenuGroupContext.d.ts +4 -0
  147. package/dist/ContextMenu/ContextMenuGroupContext.js +3 -0
  148. package/dist/ContextMenu/ContextMenuItemIndicatorContext.d.ts +4 -0
  149. package/dist/ContextMenu/ContextMenuItemIndicatorContext.js +3 -0
  150. package/dist/ContextMenu/ContextMenuRadioGroupContext.d.ts +5 -0
  151. package/dist/ContextMenu/ContextMenuRadioGroupContext.js +3 -0
  152. package/dist/ContextMenu/ContextMenuSubContext.d.ts +8 -0
  153. package/dist/ContextMenu/ContextMenuSubContext.js +3 -0
  154. package/dist/ContextMenu/constants.d.ts +2 -0
  155. package/dist/ContextMenu/constants.js +3 -0
  156. package/dist/ContextMenu/index.d.ts +2 -0
  157. package/dist/ContextMenu/index.js +2 -0
  158. package/dist/ContextMenu/types.d.ts +424 -0
  159. package/dist/ContextMenu/types.js +1 -0
  160. package/dist/DirectionProvider/DirectionContext.d.ts +15 -0
  161. package/dist/DirectionProvider/DirectionContext.js +18 -0
  162. package/dist/DirectionProvider/DirectionProvider.d.ts +57 -0
  163. package/dist/DirectionProvider/DirectionProvider.js +59 -0
  164. package/dist/DirectionProvider/index.d.ts +3 -0
  165. package/dist/DirectionProvider/index.js +2 -0
  166. package/dist/DirectionProvider/types.d.ts +34 -0
  167. package/dist/DirectionProvider/types.js +1 -0
  168. package/dist/Divider/Divider.d.ts +59 -0
  169. package/dist/Divider/Divider.js +60 -0
  170. package/dist/Divider/index.d.ts +2 -0
  171. package/dist/Divider/index.js +2 -0
  172. package/dist/Divider/types.d.ts +16 -0
  173. package/dist/Divider/types.js +1 -0
  174. package/dist/Drawer/Drawer.d.ts +268 -0
  175. package/dist/Drawer/Drawer.js +271 -0
  176. package/dist/Drawer/index.d.ts +2 -0
  177. package/dist/Drawer/index.js +2 -0
  178. package/dist/Drawer/types.d.ts +45 -0
  179. package/dist/Drawer/types.js +1 -0
  180. package/dist/Dropdown/Dropdown.d.ts +476 -0
  181. package/dist/Dropdown/Dropdown.js +745 -0
  182. package/dist/Dropdown/DropdownContentContext.d.ts +12 -0
  183. package/dist/Dropdown/DropdownContentContext.js +3 -0
  184. package/dist/Dropdown/DropdownContext.d.ts +10 -0
  185. package/dist/Dropdown/DropdownContext.js +3 -0
  186. package/dist/Dropdown/DropdownGroupContext.d.ts +4 -0
  187. package/dist/Dropdown/DropdownGroupContext.js +3 -0
  188. package/dist/Dropdown/DropdownItemIndicatorContext.d.ts +9 -0
  189. package/dist/Dropdown/DropdownItemIndicatorContext.js +3 -0
  190. package/dist/Dropdown/DropdownRadioGroupContext.d.ts +5 -0
  191. package/dist/Dropdown/DropdownRadioGroupContext.js +3 -0
  192. package/dist/Dropdown/DropdownSubContext.d.ts +8 -0
  193. package/dist/Dropdown/DropdownSubContext.js +3 -0
  194. package/dist/Dropdown/constants.d.ts +2 -0
  195. package/dist/Dropdown/constants.js +3 -0
  196. package/dist/Dropdown/hooks/index.d.ts +9 -0
  197. package/dist/Dropdown/hooks/index.js +9 -0
  198. package/dist/Dropdown/hooks/useCloseSiblingSub.d.ts +7 -0
  199. package/dist/Dropdown/hooks/useCloseSiblingSub.js +13 -0
  200. package/dist/Dropdown/hooks/useDropdownContent.d.ts +296 -0
  201. package/dist/Dropdown/hooks/useDropdownContent.js +149 -0
  202. package/dist/Dropdown/hooks/useDropdownContext.d.ts +1 -0
  203. package/dist/Dropdown/hooks/useDropdownContext.js +1 -0
  204. package/dist/Dropdown/hooks/useDropdownGroup.d.ts +294 -0
  205. package/dist/Dropdown/hooks/useDropdownGroup.js +12 -0
  206. package/dist/Dropdown/hooks/useDropdownItem.d.ts +13 -0
  207. package/dist/Dropdown/hooks/useDropdownItem.js +34 -0
  208. package/dist/Dropdown/hooks/useDropdownLabel.d.ts +292 -0
  209. package/dist/Dropdown/hooks/useDropdownLabel.js +8 -0
  210. package/dist/Dropdown/hooks/useDropdownRoot.d.ts +19 -0
  211. package/dist/Dropdown/hooks/useDropdownRoot.js +25 -0
  212. package/dist/Dropdown/hooks/useDropdownSubContext.d.ts +1 -0
  213. package/dist/Dropdown/hooks/useDropdownSubContext.js +1 -0
  214. package/dist/Dropdown/hooks/useDropdownTrigger.d.ts +302 -0
  215. package/dist/Dropdown/hooks/useDropdownTrigger.js +18 -0
  216. package/dist/Dropdown/index.d.ts +2 -0
  217. package/dist/Dropdown/index.js +2 -0
  218. package/dist/Dropdown/types.d.ts +496 -0
  219. package/dist/Dropdown/types.js +1 -0
  220. package/dist/EmptyState/EmptyState.d.ts +246 -0
  221. package/dist/EmptyState/EmptyState.js +268 -0
  222. package/dist/EmptyState/index.d.ts +2 -0
  223. package/dist/EmptyState/index.js +2 -0
  224. package/dist/EmptyState/types.d.ts +59 -0
  225. package/dist/EmptyState/types.js +1 -0
  226. package/dist/Field/Field.d.ts +178 -0
  227. package/dist/Field/Field.js +211 -0
  228. package/dist/Field/FieldContext.d.ts +15 -0
  229. package/dist/Field/FieldContext.js +3 -0
  230. package/dist/Field/hooks/index.d.ts +2 -0
  231. package/dist/Field/hooks/index.js +2 -0
  232. package/dist/Field/hooks/useFieldContext.d.ts +1 -0
  233. package/dist/Field/hooks/useFieldContext.js +1 -0
  234. package/dist/Field/hooks/useFieldProps.d.ts +25 -0
  235. package/dist/Field/hooks/useFieldProps.js +39 -0
  236. package/dist/Field/index.d.ts +2 -0
  237. package/dist/Field/index.js +2 -0
  238. package/dist/Field/types.d.ts +81 -0
  239. package/dist/Field/types.js +1 -0
  240. package/dist/Fieldset/Fieldset.d.ts +124 -0
  241. package/dist/Fieldset/Fieldset.js +124 -0
  242. package/dist/Fieldset/index.d.ts +2 -0
  243. package/dist/Fieldset/index.js +2 -0
  244. package/dist/Fieldset/types.d.ts +23 -0
  245. package/dist/Fieldset/types.js +1 -0
  246. package/dist/Input/Input.d.ts +104 -0
  247. package/dist/Input/Input.js +116 -0
  248. package/dist/Input/index.d.ts +2 -0
  249. package/dist/Input/index.js +2 -0
  250. package/dist/Input/types.d.ts +27 -0
  251. package/dist/Input/types.js +1 -0
  252. package/dist/InputGroup/InputGroup.d.ts +176 -0
  253. package/dist/InputGroup/InputGroup.js +205 -0
  254. package/dist/InputGroup/index.d.ts +2 -0
  255. package/dist/InputGroup/index.js +2 -0
  256. package/dist/InputGroup/types.d.ts +41 -0
  257. package/dist/InputGroup/types.js +1 -0
  258. package/dist/Listbox/Listbox.d.ts +231 -0
  259. package/dist/Listbox/Listbox.js +339 -0
  260. package/dist/Listbox/ListboxContext.d.ts +19 -0
  261. package/dist/Listbox/ListboxContext.js +25 -0
  262. package/dist/Listbox/constants.d.ts +2 -0
  263. package/dist/Listbox/constants.js +3 -0
  264. package/dist/Listbox/hooks/index.d.ts +1 -0
  265. package/dist/Listbox/hooks/index.js +1 -0
  266. package/dist/Listbox/hooks/useListboxRoot.d.ts +39 -0
  267. package/dist/Listbox/hooks/useListboxRoot.js +299 -0
  268. package/dist/Listbox/index.d.ts +3 -0
  269. package/dist/Listbox/index.js +3 -0
  270. package/dist/Listbox/types.d.ts +214 -0
  271. package/dist/Listbox/types.js +1 -0
  272. package/dist/MillerColumns/MillerColumns.d.ts +309 -0
  273. package/dist/MillerColumns/MillerColumns.js +332 -0
  274. package/dist/MillerColumns/MillerColumnsContext.d.ts +4 -0
  275. package/dist/MillerColumns/MillerColumnsContext.js +5 -0
  276. package/dist/MillerColumns/constants.d.ts +2 -0
  277. package/dist/MillerColumns/constants.js +3 -0
  278. package/dist/MillerColumns/hooks/index.d.ts +7 -0
  279. package/dist/MillerColumns/hooks/index.js +7 -0
  280. package/dist/MillerColumns/hooks/useMillerColumnsColumn.d.ts +8 -0
  281. package/dist/MillerColumns/hooks/useMillerColumnsColumn.js +16 -0
  282. package/dist/MillerColumns/hooks/useMillerColumnsColumnContext.d.ts +1 -0
  283. package/dist/MillerColumns/hooks/useMillerColumnsColumnContext.js +1 -0
  284. package/dist/MillerColumns/hooks/useMillerColumnsContext.d.ts +1 -0
  285. package/dist/MillerColumns/hooks/useMillerColumnsContext.js +1 -0
  286. package/dist/MillerColumns/hooks/useMillerColumnsItem.d.ts +295 -0
  287. package/dist/MillerColumns/hooks/useMillerColumnsItem.js +122 -0
  288. package/dist/MillerColumns/hooks/useMillerColumnsItemContext.d.ts +1 -0
  289. package/dist/MillerColumns/hooks/useMillerColumnsItemContext.js +1 -0
  290. package/dist/MillerColumns/hooks/useMillerColumnsResizeHandle.d.ts +290 -0
  291. package/dist/MillerColumns/hooks/useMillerColumnsResizeHandle.js +105 -0
  292. package/dist/MillerColumns/hooks/useMillerColumnsRoot.d.ts +9 -0
  293. package/dist/MillerColumns/hooks/useMillerColumnsRoot.js +0 -0
  294. package/dist/MillerColumns/index.d.ts +4 -0
  295. package/dist/MillerColumns/index.js +4 -0
  296. package/dist/MillerColumns/types.d.ts +224 -0
  297. package/dist/MillerColumns/types.js +1 -0
  298. package/dist/MillerColumns/useMillerColumnsSelection.d.ts +21 -0
  299. package/dist/MillerColumns/useMillerColumnsSelection.js +28 -0
  300. package/dist/MillerColumns/utils.d.ts +62 -0
  301. package/dist/MillerColumns/utils.js +102 -0
  302. package/dist/Modal/Modal.d.ts +331 -0
  303. package/dist/Modal/Modal.js +386 -0
  304. package/dist/Modal/ModalContext.d.ts +9 -0
  305. package/dist/Modal/ModalContext.js +10 -0
  306. package/dist/Modal/hooks/index.d.ts +4 -0
  307. package/dist/Modal/hooks/index.js +4 -0
  308. package/dist/Modal/hooks/useModalContent.d.ts +5 -0
  309. package/dist/Modal/hooks/useModalContent.js +94 -0
  310. package/dist/Modal/hooks/useModalContext.d.ts +1 -0
  311. package/dist/Modal/hooks/useModalContext.js +1 -0
  312. package/dist/Modal/hooks/useModalRoot.d.ts +11 -0
  313. package/dist/Modal/hooks/useModalRoot.js +39 -0
  314. package/dist/Modal/hooks/useModalTrigger.d.ts +297 -0
  315. package/dist/Modal/hooks/useModalTrigger.js +18 -0
  316. package/dist/Modal/index.d.ts +3 -0
  317. package/dist/Modal/index.js +3 -0
  318. package/dist/Modal/types.d.ts +186 -0
  319. package/dist/Modal/types.js +1 -0
  320. package/dist/NavigationMenu/NavigationMenu.d.ts +495 -0
  321. package/dist/NavigationMenu/NavigationMenu.js +645 -0
  322. package/dist/NavigationMenu/NavigationMenuContext.d.ts +31 -0
  323. package/dist/NavigationMenu/NavigationMenuContext.js +34 -0
  324. package/dist/NavigationMenu/constants.d.ts +4 -0
  325. package/dist/NavigationMenu/constants.js +5 -0
  326. package/dist/NavigationMenu/hooks/index.d.ts +7 -0
  327. package/dist/NavigationMenu/hooks/index.js +7 -0
  328. package/dist/NavigationMenu/hooks/useNavigationMenuEntry.d.ts +13 -0
  329. package/dist/NavigationMenu/hooks/useNavigationMenuEntry.js +21 -0
  330. package/dist/NavigationMenu/hooks/useNavigationMenuIndicator.d.ts +16 -0
  331. package/dist/NavigationMenu/hooks/useNavigationMenuIndicator.js +53 -0
  332. package/dist/NavigationMenu/hooks/useNavigationMenuLink.d.ts +8 -0
  333. package/dist/NavigationMenu/hooks/useNavigationMenuLink.js +37 -0
  334. package/dist/NavigationMenu/hooks/useNavigationMenuRoot.d.ts +26 -0
  335. package/dist/NavigationMenu/hooks/useNavigationMenuRoot.js +202 -0
  336. package/dist/NavigationMenu/hooks/useNavigationMenuTopLevelEntry.d.ts +21 -0
  337. package/dist/NavigationMenu/hooks/useNavigationMenuTopLevelEntry.js +54 -0
  338. package/dist/NavigationMenu/hooks/useNavigationMenuTrigger.d.ts +16 -0
  339. package/dist/NavigationMenu/hooks/useNavigationMenuTrigger.js +100 -0
  340. package/dist/NavigationMenu/hooks/useNavigationMenuViewport.d.ts +21 -0
  341. package/dist/NavigationMenu/hooks/useNavigationMenuViewport.js +85 -0
  342. package/dist/NavigationMenu/index.d.ts +3 -0
  343. package/dist/NavigationMenu/index.js +3 -0
  344. package/dist/NavigationMenu/types.d.ts +236 -0
  345. package/dist/NavigationMenu/types.js +1 -0
  346. package/dist/NavigationMenu/utils.d.ts +37 -0
  347. package/dist/NavigationMenu/utils.js +64 -0
  348. package/dist/Popover/Popover.d.ts +239 -0
  349. package/dist/Popover/Popover.js +293 -0
  350. package/dist/Popover/PopoverContext.d.ts +4 -0
  351. package/dist/Popover/PopoverContext.js +5 -0
  352. package/dist/Popover/hooks/index.d.ts +3 -0
  353. package/dist/Popover/hooks/index.js +3 -0
  354. package/dist/Popover/hooks/usePopoverContent.d.ts +19 -0
  355. package/dist/Popover/hooks/usePopoverContent.js +83 -0
  356. package/dist/Popover/hooks/usePopoverRoot.d.ts +10 -0
  357. package/dist/Popover/hooks/usePopoverRoot.js +49 -0
  358. package/dist/Popover/hooks/usePopoverTrigger.d.ts +297 -0
  359. package/dist/Popover/hooks/usePopoverTrigger.js +19 -0
  360. package/dist/Popover/index.d.ts +2 -0
  361. package/dist/Popover/index.js +2 -0
  362. package/dist/Popover/types.d.ts +183 -0
  363. package/dist/Popover/types.js +1 -0
  364. package/dist/Portal/Portal.d.ts +70 -0
  365. package/dist/Portal/Portal.js +92 -0
  366. package/dist/Portal/index.d.ts +2 -0
  367. package/dist/Portal/index.js +2 -0
  368. package/dist/Portal/types.d.ts +14 -0
  369. package/dist/Portal/types.js +1 -0
  370. package/dist/Progress/Progress.d.ts +126 -0
  371. package/dist/Progress/Progress.js +172 -0
  372. package/dist/Progress/ProgressContext.d.ts +16 -0
  373. package/dist/Progress/ProgressContext.js +7 -0
  374. package/dist/Progress/hooks/index.d.ts +2 -0
  375. package/dist/Progress/hooks/index.js +2 -0
  376. package/dist/Progress/hooks/useProgressContext.d.ts +1 -0
  377. package/dist/Progress/hooks/useProgressContext.js +1 -0
  378. package/dist/Progress/hooks/useProgressRoot.d.ts +17 -0
  379. package/dist/Progress/hooks/useProgressRoot.js +22 -0
  380. package/dist/Progress/index.d.ts +3 -0
  381. package/dist/Progress/index.js +3 -0
  382. package/dist/Progress/types.d.ts +53 -0
  383. package/dist/Progress/types.js +1 -0
  384. package/dist/Radio/Radio.d.ts +128 -0
  385. package/dist/Radio/Radio.js +153 -0
  386. package/dist/Radio/RadioContext.d.ts +13 -0
  387. package/dist/Radio/RadioContext.js +3 -0
  388. package/dist/Radio/hooks/index.d.ts +2 -0
  389. package/dist/Radio/hooks/index.js +2 -0
  390. package/dist/Radio/hooks/useRadioContext.d.ts +1 -0
  391. package/dist/Radio/hooks/useRadioContext.js +1 -0
  392. package/dist/Radio/hooks/useRadioRoot.d.ts +32 -0
  393. package/dist/Radio/hooks/useRadioRoot.js +35 -0
  394. package/dist/Radio/index.d.ts +2 -0
  395. package/dist/Radio/index.js +2 -0
  396. package/dist/Radio/types.d.ts +79 -0
  397. package/dist/Radio/types.js +1 -0
  398. package/dist/RadioCard/RadioCard.d.ts +176 -0
  399. package/dist/RadioCard/RadioCard.js +264 -0
  400. package/dist/RadioCard/RadioCardContext.d.ts +21 -0
  401. package/dist/RadioCard/RadioCardContext.js +9 -0
  402. package/dist/RadioCard/RadioCardItemContext.d.ts +14 -0
  403. package/dist/RadioCard/RadioCardItemContext.js +10 -0
  404. package/dist/RadioCard/hooks/index.d.ts +3 -0
  405. package/dist/RadioCard/hooks/index.js +3 -0
  406. package/dist/RadioCard/hooks/useRadioCardContext.d.ts +1 -0
  407. package/dist/RadioCard/hooks/useRadioCardContext.js +1 -0
  408. package/dist/RadioCard/hooks/useRadioCardItemContext.d.ts +1 -0
  409. package/dist/RadioCard/hooks/useRadioCardItemContext.js +1 -0
  410. package/dist/RadioCard/hooks/useRadioCardRoot.d.ts +14 -0
  411. package/dist/RadioCard/hooks/useRadioCardRoot.js +42 -0
  412. package/dist/RadioCard/index.d.ts +4 -0
  413. package/dist/RadioCard/index.js +4 -0
  414. package/dist/RadioCard/types.d.ts +129 -0
  415. package/dist/RadioCard/types.js +1 -0
  416. package/dist/RadioGroup/RadioGroup.d.ts +192 -0
  417. package/dist/RadioGroup/RadioGroup.js +281 -0
  418. package/dist/RadioGroup/RadioGroupContext.d.ts +12 -0
  419. package/dist/RadioGroup/RadioGroupContext.js +3 -0
  420. package/dist/RadioGroup/RadioGroupItemContext.d.ts +4 -0
  421. package/dist/RadioGroup/RadioGroupItemContext.js +3 -0
  422. package/dist/RadioGroup/hooks/index.d.ts +3 -0
  423. package/dist/RadioGroup/hooks/index.js +3 -0
  424. package/dist/RadioGroup/hooks/useRadioGroupContext.d.ts +1 -0
  425. package/dist/RadioGroup/hooks/useRadioGroupContext.js +1 -0
  426. package/dist/RadioGroup/hooks/useRadioGroupItemContext.d.ts +1 -0
  427. package/dist/RadioGroup/hooks/useRadioGroupItemContext.js +1 -0
  428. package/dist/RadioGroup/hooks/useRadioGroupRoot.d.ts +14 -0
  429. package/dist/RadioGroup/hooks/useRadioGroupRoot.js +53 -0
  430. package/dist/RadioGroup/index.d.ts +2 -0
  431. package/dist/RadioGroup/index.js +2 -0
  432. package/dist/RadioGroup/types.d.ts +130 -0
  433. package/dist/RadioGroup/types.js +1 -0
  434. package/dist/SegmentedControl/SegmentedControl.d.ts +145 -0
  435. package/dist/SegmentedControl/SegmentedControl.js +229 -0
  436. package/dist/SegmentedControl/SegmentedControlContext.d.ts +14 -0
  437. package/dist/SegmentedControl/SegmentedControlContext.js +3 -0
  438. package/dist/SegmentedControl/hooks/index.d.ts +2 -0
  439. package/dist/SegmentedControl/hooks/index.js +2 -0
  440. package/dist/SegmentedControl/hooks/useSegmentedControlContext.d.ts +1 -0
  441. package/dist/SegmentedControl/hooks/useSegmentedControlContext.js +1 -0
  442. package/dist/SegmentedControl/hooks/useSegmentedControlRoot.d.ts +14 -0
  443. package/dist/SegmentedControl/hooks/useSegmentedControlRoot.js +45 -0
  444. package/dist/SegmentedControl/index.d.ts +2 -0
  445. package/dist/SegmentedControl/index.js +2 -0
  446. package/dist/SegmentedControl/types.d.ts +121 -0
  447. package/dist/SegmentedControl/types.js +1 -0
  448. package/dist/Select/Select.d.ts +390 -0
  449. package/dist/Select/Select.js +561 -0
  450. package/dist/Select/SelectContext.d.ts +31 -0
  451. package/dist/Select/SelectContext.js +3 -0
  452. package/dist/Select/SelectItemIndicatorContext.d.ts +23 -0
  453. package/dist/Select/SelectItemIndicatorContext.js +3 -0
  454. package/dist/Select/constants.d.ts +6 -0
  455. package/dist/Select/constants.js +7 -0
  456. package/dist/Select/hooks/index.d.ts +2 -0
  457. package/dist/Select/hooks/index.js +2 -0
  458. package/dist/Select/hooks/useSelectContent.d.ts +301 -0
  459. package/dist/Select/hooks/useSelectContent.js +134 -0
  460. package/dist/Select/hooks/useSelectRoot.d.ts +23 -0
  461. package/dist/Select/hooks/useSelectRoot.js +90 -0
  462. package/dist/Select/index.d.ts +2 -0
  463. package/dist/Select/index.js +2 -0
  464. package/dist/Select/types.d.ts +246 -0
  465. package/dist/Select/types.js +1 -0
  466. package/dist/SkipNav/SkipNav.d.ts +137 -0
  467. package/dist/SkipNav/SkipNav.js +138 -0
  468. package/dist/SkipNav/index.d.ts +1 -0
  469. package/dist/SkipNav/index.js +1 -0
  470. package/dist/SkipNav/types.d.ts +32 -0
  471. package/dist/SkipNav/types.js +1 -0
  472. package/dist/Slider/Slider.d.ts +189 -0
  473. package/dist/Slider/Slider.js +253 -0
  474. package/dist/Slider/SliderContext.d.ts +48 -0
  475. package/dist/Slider/SliderContext.js +7 -0
  476. package/dist/Slider/hooks/index.d.ts +3 -0
  477. package/dist/Slider/hooks/index.js +3 -0
  478. package/dist/Slider/hooks/useSliderContext.d.ts +1 -0
  479. package/dist/Slider/hooks/useSliderContext.js +1 -0
  480. package/dist/Slider/hooks/useSliderRoot.d.ts +23 -0
  481. package/dist/Slider/hooks/useSliderRoot.js +123 -0
  482. package/dist/Slider/hooks/useSliderThumb.d.ts +11 -0
  483. package/dist/Slider/hooks/useSliderThumb.js +57 -0
  484. package/dist/Slider/index.d.ts +3 -0
  485. package/dist/Slider/index.js +3 -0
  486. package/dist/Slider/types.d.ts +194 -0
  487. package/dist/Slider/types.js +1 -0
  488. package/dist/Slider/utils.d.ts +48 -0
  489. package/dist/Slider/utils.js +105 -0
  490. package/dist/Slot/Slot.d.ts +126 -0
  491. package/dist/Slot/Slot.js +210 -0
  492. package/dist/Slot/composeEventHandlers.d.ts +50 -0
  493. package/dist/Slot/composeEventHandlers.js +57 -0
  494. package/dist/Slot/index.d.ts +3 -0
  495. package/dist/Slot/index.js +3 -0
  496. package/dist/Slot/types.d.ts +20 -0
  497. package/dist/Slot/types.js +1 -0
  498. package/dist/SplitButton/SplitButton.d.ts +286 -0
  499. package/dist/SplitButton/SplitButton.js +343 -0
  500. package/dist/SplitButton/SplitButtonContext.d.ts +11 -0
  501. package/dist/SplitButton/SplitButtonContext.js +12 -0
  502. package/dist/SplitButton/index.d.ts +2 -0
  503. package/dist/SplitButton/index.js +1 -0
  504. package/dist/SplitButton/types.d.ts +161 -0
  505. package/dist/SplitButton/types.js +1 -0
  506. package/dist/Status/Status.d.ts +57 -0
  507. package/dist/Status/Status.js +63 -0
  508. package/dist/Status/index.d.ts +2 -0
  509. package/dist/Status/index.js +2 -0
  510. package/dist/Status/types.d.ts +19 -0
  511. package/dist/Status/types.js +1 -0
  512. package/dist/Switch/Switch.d.ts +122 -0
  513. package/dist/Switch/Switch.js +143 -0
  514. package/dist/Switch/SwitchContext.d.ts +12 -0
  515. package/dist/Switch/SwitchContext.js +7 -0
  516. package/dist/Switch/hooks/index.d.ts +2 -0
  517. package/dist/Switch/hooks/index.js +2 -0
  518. package/dist/Switch/hooks/useSwitchContext.d.ts +1 -0
  519. package/dist/Switch/hooks/useSwitchContext.js +1 -0
  520. package/dist/Switch/hooks/useSwitchRoot.d.ts +30 -0
  521. package/dist/Switch/hooks/useSwitchRoot.js +33 -0
  522. package/dist/Switch/index.d.ts +3 -0
  523. package/dist/Switch/index.js +3 -0
  524. package/dist/Switch/types.d.ts +83 -0
  525. package/dist/Switch/types.js +1 -0
  526. package/dist/Table/Table.d.ts +443 -0
  527. package/dist/Table/Table.js +494 -0
  528. package/dist/Table/TableExpandableContext.d.ts +2 -0
  529. package/dist/Table/TableExpandableContext.js +3 -0
  530. package/dist/Table/index.d.ts +2 -0
  531. package/dist/Table/index.js +2 -0
  532. package/dist/Table/types.d.ts +214 -0
  533. package/dist/Table/types.js +1 -0
  534. package/dist/Tabs/Tabs.d.ts +270 -0
  535. package/dist/Tabs/Tabs.js +324 -0
  536. package/dist/Tabs/TabsContext.d.ts +11 -0
  537. package/dist/Tabs/TabsContext.js +12 -0
  538. package/dist/Tabs/hooks/index.d.ts +4 -0
  539. package/dist/Tabs/hooks/index.js +4 -0
  540. package/dist/Tabs/hooks/useTabsContent.d.ts +10 -0
  541. package/dist/Tabs/hooks/useTabsContent.js +27 -0
  542. package/dist/Tabs/hooks/useTabsContext.d.ts +1 -0
  543. package/dist/Tabs/hooks/useTabsContext.js +1 -0
  544. package/dist/Tabs/hooks/useTabsRoot.d.ts +21 -0
  545. package/dist/Tabs/hooks/useTabsRoot.js +97 -0
  546. package/dist/Tabs/hooks/useTabsTrigger.d.ts +13 -0
  547. package/dist/Tabs/hooks/useTabsTrigger.js +83 -0
  548. package/dist/Tabs/index.d.ts +3 -0
  549. package/dist/Tabs/index.js +3 -0
  550. package/dist/Tabs/types.d.ts +139 -0
  551. package/dist/Tabs/types.js +1 -0
  552. package/dist/Tabs/utils.d.ts +4 -0
  553. package/dist/Tabs/utils.js +8 -0
  554. package/dist/Textarea/Textarea.d.ts +81 -0
  555. package/dist/Textarea/Textarea.js +93 -0
  556. package/dist/Textarea/index.d.ts +2 -0
  557. package/dist/Textarea/index.js +2 -0
  558. package/dist/Textarea/types.d.ts +27 -0
  559. package/dist/Textarea/types.js +1 -0
  560. package/dist/Toggle/Toggle.d.ts +82 -0
  561. package/dist/Toggle/Toggle.js +102 -0
  562. package/dist/Toggle/index.d.ts +2 -0
  563. package/dist/Toggle/index.js +2 -0
  564. package/dist/Toggle/types.d.ts +72 -0
  565. package/dist/Toggle/types.js +1 -0
  566. package/dist/ToggleGroup/ToggleGroup.d.ts +144 -0
  567. package/dist/ToggleGroup/ToggleGroup.js +227 -0
  568. package/dist/ToggleGroup/ToggleGroupContext.d.ts +2 -0
  569. package/dist/ToggleGroup/ToggleGroupContext.js +3 -0
  570. package/dist/ToggleGroup/hooks/index.d.ts +2 -0
  571. package/dist/ToggleGroup/hooks/index.js +2 -0
  572. package/dist/ToggleGroup/hooks/useToggleGroupContext.d.ts +1 -0
  573. package/dist/ToggleGroup/hooks/useToggleGroupContext.js +1 -0
  574. package/dist/ToggleGroup/hooks/useToggleGroupRoot.d.ts +21 -0
  575. package/dist/ToggleGroup/hooks/useToggleGroupRoot.js +79 -0
  576. package/dist/ToggleGroup/index.d.ts +2 -0
  577. package/dist/ToggleGroup/index.js +2 -0
  578. package/dist/ToggleGroup/types.d.ts +141 -0
  579. package/dist/ToggleGroup/types.js +1 -0
  580. package/dist/Tooltip/Tooltip.d.ts +231 -0
  581. package/dist/Tooltip/Tooltip.js +279 -0
  582. package/dist/Tooltip/TooltipContext.d.ts +6 -0
  583. package/dist/Tooltip/TooltipContext.js +7 -0
  584. package/dist/Tooltip/hooks/index.d.ts +4 -0
  585. package/dist/Tooltip/hooks/index.js +4 -0
  586. package/dist/Tooltip/hooks/useTooltipContent.d.ts +289 -0
  587. package/dist/Tooltip/hooks/useTooltipContent.js +50 -0
  588. package/dist/Tooltip/hooks/useTooltipProvider.d.ts +9 -0
  589. package/dist/Tooltip/hooks/useTooltipProvider.js +60 -0
  590. package/dist/Tooltip/hooks/useTooltipRoot.d.ts +6 -0
  591. package/dist/Tooltip/hooks/useTooltipRoot.js +100 -0
  592. package/dist/Tooltip/hooks/useTooltipTrigger.d.ts +299 -0
  593. package/dist/Tooltip/hooks/useTooltipTrigger.js +22 -0
  594. package/dist/Tooltip/index.d.ts +2 -0
  595. package/dist/Tooltip/index.js +2 -0
  596. package/dist/Tooltip/types.d.ts +183 -0
  597. package/dist/Tooltip/types.js +1 -0
  598. package/dist/Tree/Tree.d.ts +398 -0
  599. package/dist/Tree/Tree.js +536 -0
  600. package/dist/Tree/TreeContext.d.ts +4 -0
  601. package/dist/Tree/TreeContext.js +5 -0
  602. package/dist/Tree/hooks/index.d.ts +3 -0
  603. package/dist/Tree/hooks/index.js +3 -0
  604. package/dist/Tree/hooks/useTreeItemKeyboard.d.ts +16 -0
  605. package/dist/Tree/hooks/useTreeItemKeyboard.js +71 -0
  606. package/dist/Tree/hooks/useTreePath.d.ts +88 -0
  607. package/dist/Tree/hooks/useTreePath.js +96 -0
  608. package/dist/Tree/hooks/useTreeRoot.d.ts +19 -0
  609. package/dist/Tree/hooks/useTreeRoot.js +185 -0
  610. package/dist/Tree/index.d.ts +4 -0
  611. package/dist/Tree/index.js +4 -0
  612. package/dist/Tree/types.d.ts +269 -0
  613. package/dist/Tree/types.js +1 -0
  614. package/dist/Tree/utils.d.ts +45 -0
  615. package/dist/Tree/utils.js +79 -0
  616. package/dist/VisuallyHidden/VisuallyHidden.d.ts +62 -0
  617. package/dist/VisuallyHidden/VisuallyHidden.js +83 -0
  618. package/dist/VisuallyHidden/index.d.ts +2 -0
  619. package/dist/VisuallyHidden/index.js +2 -0
  620. package/dist/VisuallyHidden/types.d.ts +18 -0
  621. package/dist/VisuallyHidden/types.js +1 -0
  622. package/dist/hooks/index.d.ts +4 -0
  623. package/dist/hooks/index.js +4 -0
  624. package/dist/hooks/useCollection.d.ts +50 -0
  625. package/dist/hooks/useCollection.js +47 -0
  626. package/dist/hooks/useControllableState.d.ts +50 -0
  627. package/dist/hooks/useControllableState.js +14 -0
  628. package/dist/hooks/useRovingTabindex.d.ts +106 -0
  629. package/dist/hooks/useRovingTabindex.js +110 -0
  630. package/dist/hooks/useTypeahead.d.ts +31 -0
  631. package/dist/hooks/useTypeahead.js +65 -0
  632. package/dist/index.d.ts +52 -0
  633. package/dist/index.js +50 -0
  634. package/dist/types.d.ts +6 -0
  635. package/dist/types.js +1 -0
  636. package/dist/useLocalStorage/index.d.ts +1 -0
  637. package/dist/useLocalStorage/index.js +1 -0
  638. package/dist/useLocalStorage/useLocalStorage.d.ts +46 -0
  639. package/dist/useLocalStorage/useLocalStorage.js +125 -0
  640. package/dist/useMediaQuery/index.d.ts +1 -0
  641. package/dist/useMediaQuery/index.js +1 -0
  642. package/dist/useMediaQuery/useMediaQuery.d.ts +30 -0
  643. package/dist/useMediaQuery/useMediaQuery.js +43 -0
  644. package/dist/usePagination/index.d.ts +1 -0
  645. package/dist/usePagination/index.js +1 -0
  646. package/dist/usePagination/usePagination.d.ts +163 -0
  647. package/dist/usePagination/usePagination.js +130 -0
  648. package/dist/utils/createStrictContext.d.ts +33 -0
  649. package/dist/utils/createStrictContext.js +47 -0
  650. package/dist/utils/deriveId.d.ts +25 -0
  651. package/dist/utils/deriveId.js +28 -0
  652. package/dist/utils/focusable.d.ts +8 -0
  653. package/dist/utils/focusable.js +16 -0
  654. package/dist/utils/getKeyToActionMap.d.ts +64 -0
  655. package/dist/utils/getKeyToActionMap.js +49 -0
  656. package/dist/utils/index.d.ts +4 -0
  657. package/dist/utils/index.js +4 -0
  658. package/package.json +7 -6
  659. package/src/AccessibleIcon/AccessibleIcon.tsx +0 -67
  660. package/src/AccessibleIcon/README.md +0 -42
  661. package/src/AccessibleIcon/__tests__/AccessibleIcon.test.tsx +0 -52
  662. package/src/AccessibleIcon/index.ts +0 -2
  663. package/src/AccessibleIcon/types.ts +0 -25
  664. package/src/Accordion/Accordion.tsx +0 -455
  665. package/src/Accordion/AccordionContext.ts +0 -12
  666. package/src/Accordion/README.md +0 -202
  667. package/src/Accordion/__tests__/Accordion.asChild.test.tsx +0 -283
  668. package/src/Accordion/__tests__/Accordion.basic-rendering.test.tsx +0 -348
  669. package/src/Accordion/__tests__/Accordion.controlled-state.test.tsx +0 -175
  670. package/src/Accordion/__tests__/Accordion.data-attributes.test.tsx +0 -272
  671. package/src/Accordion/__tests__/Accordion.disabled-items.test.tsx +0 -353
  672. package/src/Accordion/__tests__/Accordion.error-handling.test.tsx +0 -152
  673. package/src/Accordion/__tests__/Accordion.forceMount.test.tsx +0 -119
  674. package/src/Accordion/__tests__/Accordion.keyboard-interaction.test.tsx +0 -736
  675. package/src/Accordion/__tests__/Accordion.mouse-interaction.test.tsx +0 -212
  676. package/src/Accordion/__tests__/Accordion.multiple-mode.test.tsx +0 -90
  677. package/src/Accordion/__tests__/Accordion.reading-direction.test.tsx +0 -139
  678. package/src/Accordion/__tests__/Accordion.uncontrolled-state.test.tsx +0 -154
  679. package/src/Accordion/hooks/index.ts +0 -6
  680. package/src/Accordion/hooks/useAccordionContext.ts +0 -1
  681. package/src/Accordion/hooks/useAccordionHeaderContext.ts +0 -10
  682. package/src/Accordion/hooks/useAccordionItem.ts +0 -22
  683. package/src/Accordion/hooks/useAccordionItemContext.ts +0 -1
  684. package/src/Accordion/hooks/useAccordionRoot.ts +0 -188
  685. package/src/Accordion/hooks/useAccordionTrigger.ts +0 -98
  686. package/src/Accordion/index.ts +0 -2
  687. package/src/Accordion/types.ts +0 -174
  688. package/src/Alert/Alert.tsx +0 -79
  689. package/src/Alert/README.md +0 -54
  690. package/src/Alert/__tests__/Alert.test.tsx +0 -33
  691. package/src/Alert/index.ts +0 -2
  692. package/src/Alert/types.ts +0 -22
  693. package/src/Avatar/Avatar.tsx +0 -246
  694. package/src/Avatar/AvatarContext.ts +0 -26
  695. package/src/Avatar/README.md +0 -116
  696. package/src/Avatar/__tests__/Avatar.asChild.test.tsx +0 -53
  697. package/src/Avatar/__tests__/Avatar.basic-rendering.test.tsx +0 -24
  698. package/src/Avatar/__tests__/Avatar.error-handling.test.tsx +0 -30
  699. package/src/Avatar/__tests__/Avatar.fallback.test.tsx +0 -105
  700. package/src/Avatar/__tests__/Avatar.image-loading.test.tsx +0 -116
  701. package/src/Avatar/hooks/index.ts +0 -2
  702. package/src/Avatar/hooks/useAvatarContext.ts +0 -1
  703. package/src/Avatar/hooks/useAvatarImage.ts +0 -56
  704. package/src/Avatar/index.ts +0 -3
  705. package/src/Avatar/types.ts +0 -56
  706. package/src/Breadcrumb/Breadcrumb.tsx +0 -374
  707. package/src/Breadcrumb/README.md +0 -158
  708. package/src/Breadcrumb/__tests__/Breadcrumb.asChild.test.tsx +0 -33
  709. package/src/Breadcrumb/__tests__/Breadcrumb.basic-rendering.test.tsx +0 -143
  710. package/src/Breadcrumb/__tests__/Breadcrumb.ellipsis.test.tsx +0 -110
  711. package/src/Breadcrumb/index.ts +0 -2
  712. package/src/Breadcrumb/types.ts +0 -88
  713. package/src/Button/Button.tsx +0 -100
  714. package/src/Button/README.md +0 -112
  715. package/src/Button/__tests__/Button.asChild.test.tsx +0 -91
  716. package/src/Button/__tests__/Button.basic-rendering.test.tsx +0 -132
  717. package/src/Button/__tests__/Button.contract.test.tsx +0 -72
  718. package/src/Button/__tests__/Button.disabled.test.tsx +0 -52
  719. package/src/Button/__tests__/Button.icon-usage.test.tsx +0 -57
  720. package/src/Button/__tests__/Button.keyboard-interaction.test.tsx +0 -70
  721. package/src/Button/index.ts +0 -2
  722. package/src/Button/types.ts +0 -33
  723. package/src/Carousel/Carousel.tsx +0 -972
  724. package/src/Carousel/CarouselContext.ts +0 -15
  725. package/src/Carousel/README.md +0 -1447
  726. package/src/Carousel/__tests__/Carousel.asChild.test.tsx +0 -178
  727. package/src/Carousel/__tests__/Carousel.auto-play.test.tsx +0 -617
  728. package/src/Carousel/__tests__/Carousel.autoplay-status.test.tsx +0 -239
  729. package/src/Carousel/__tests__/Carousel.basic-rendering.test.tsx +0 -569
  730. package/src/Carousel/__tests__/Carousel.controlled-state.test.tsx +0 -137
  731. package/src/Carousel/__tests__/Carousel.drag-status.test.tsx +0 -292
  732. package/src/Carousel/__tests__/Carousel.dynamic-slides.test.tsx +0 -38
  733. package/src/Carousel/__tests__/Carousel.error-handling.test.tsx +0 -81
  734. package/src/Carousel/__tests__/Carousel.ids.test.tsx +0 -111
  735. package/src/Carousel/__tests__/Carousel.imperative-api.test.tsx +0 -213
  736. package/src/Carousel/__tests__/Carousel.indicators.test.tsx +0 -661
  737. package/src/Carousel/__tests__/Carousel.infinite.test.tsx +0 -1453
  738. package/src/Carousel/__tests__/Carousel.instant-scroll.test.tsx +0 -124
  739. package/src/Carousel/__tests__/Carousel.intersection-observer.test.tsx +0 -364
  740. package/src/Carousel/__tests__/Carousel.keyboard-navigation.test.tsx +0 -158
  741. package/src/Carousel/__tests__/Carousel.loop.test.tsx +0 -163
  742. package/src/Carousel/__tests__/Carousel.loopEngine.test.ts +0 -77
  743. package/src/Carousel/__tests__/Carousel.mouse-drag.test.tsx +0 -504
  744. package/src/Carousel/__tests__/Carousel.multi-slide-bounds.test.tsx +0 -91
  745. package/src/Carousel/__tests__/Carousel.orientation.test.tsx +0 -207
  746. package/src/Carousel/__tests__/Carousel.overscroll.test.tsx +0 -532
  747. package/src/Carousel/__tests__/Carousel.page-snap-points.test.tsx +0 -50
  748. package/src/Carousel/__tests__/Carousel.play-pause.test.tsx +0 -232
  749. package/src/Carousel/__tests__/Carousel.prev-next.test.tsx +0 -68
  750. package/src/Carousel/__tests__/Carousel.progress-text.test.tsx +0 -76
  751. package/src/Carousel/__tests__/Carousel.reduced-motion.test.tsx +0 -46
  752. package/src/Carousel/__tests__/Carousel.refresh-progress.test.tsx +0 -84
  753. package/src/Carousel/__tests__/Carousel.scroll-margin.test.tsx +0 -167
  754. package/src/Carousel/__tests__/Carousel.scroll-progress.test.tsx +0 -518
  755. package/src/Carousel/__tests__/Carousel.scroll-snap-change.test.tsx +0 -200
  756. package/src/Carousel/__tests__/Carousel.scroll-sync.test.tsx +0 -322
  757. package/src/Carousel/__tests__/Carousel.scroll-to-index.test.tsx +0 -115
  758. package/src/Carousel/__tests__/Carousel.slide-snap.test.tsx +0 -172
  759. package/src/Carousel/__tests__/Carousel.slides-per-move.test.tsx +0 -329
  760. package/src/Carousel/__tests__/Carousel.slides-per-page.test.tsx +0 -267
  761. package/src/Carousel/__tests__/Carousel.snap-type.test.tsx +0 -35
  762. package/src/Carousel/__tests__/Carousel.ssr.test.tsx +0 -28
  763. package/src/Carousel/__tests__/Carousel.touch-interaction.test.tsx +0 -96
  764. package/src/Carousel/__tests__/Carousel.transition-modes.test.tsx +0 -95
  765. package/src/Carousel/__tests__/Carousel.translations.test.tsx +0 -180
  766. package/src/Carousel/__tests__/Carousel.uncontrolled-state.test.tsx +0 -146
  767. package/src/Carousel/__tests__/Carousel.wheel.test.tsx +0 -160
  768. package/src/Carousel/hooks/index.ts +0 -5
  769. package/src/Carousel/hooks/useCarouselContext.ts +0 -13
  770. package/src/Carousel/hooks/useCarouselLoop.ts +0 -869
  771. package/src/Carousel/hooks/useCarouselRoot.ts +0 -746
  772. package/src/Carousel/hooks/useCarouselSlide.ts +0 -80
  773. package/src/Carousel/hooks/useCarouselViewport.ts +0 -898
  774. package/src/Carousel/index.ts +0 -3
  775. package/src/Carousel/loopEngine.ts +0 -54
  776. package/src/Carousel/types.ts +0 -830
  777. package/src/Checkbox/Checkbox.tsx +0 -217
  778. package/src/Checkbox/CheckboxContext.ts +0 -20
  779. package/src/Checkbox/README.md +0 -137
  780. package/src/Checkbox/__tests__/Checkbox.basic-rendering.test.tsx +0 -93
  781. package/src/Checkbox/__tests__/Checkbox.contract.test.tsx +0 -106
  782. package/src/Checkbox/__tests__/Checkbox.controlled-state.test.tsx +0 -74
  783. package/src/Checkbox/__tests__/Checkbox.disabled.test.tsx +0 -45
  784. package/src/Checkbox/__tests__/Checkbox.form.test.tsx +0 -53
  785. package/src/Checkbox/__tests__/Checkbox.indeterminate.test.tsx +0 -76
  786. package/src/Checkbox/__tests__/Checkbox.indicator.test.tsx +0 -92
  787. package/src/Checkbox/__tests__/Checkbox.uncontrolled-state.test.tsx +0 -105
  788. package/src/Checkbox/hooks/index.ts +0 -3
  789. package/src/Checkbox/hooks/useCheckboxContext.ts +0 -1
  790. package/src/Checkbox/hooks/useCheckboxInput.ts +0 -53
  791. package/src/Checkbox/hooks/useCheckboxRoot.ts +0 -32
  792. package/src/Checkbox/index.ts +0 -2
  793. package/src/Checkbox/types.ts +0 -86
  794. package/src/CheckboxCard/CheckboxCard.tsx +0 -219
  795. package/src/CheckboxCard/CheckboxCardContext.ts +0 -25
  796. package/src/CheckboxCard/README.md +0 -114
  797. package/src/CheckboxCard/__tests__/CheckboxCard.asChild.test.tsx +0 -54
  798. package/src/CheckboxCard/__tests__/CheckboxCard.basic-rendering.test.tsx +0 -65
  799. package/src/CheckboxCard/__tests__/CheckboxCard.controlled-state.test.tsx +0 -77
  800. package/src/CheckboxCard/__tests__/CheckboxCard.disabled.test.tsx +0 -55
  801. package/src/CheckboxCard/__tests__/CheckboxCard.error-handling.test.tsx +0 -20
  802. package/src/CheckboxCard/__tests__/CheckboxCard.indeterminate.test.tsx +0 -60
  803. package/src/CheckboxCard/__tests__/CheckboxCard.indicator.test.tsx +0 -136
  804. package/src/CheckboxCard/__tests__/CheckboxCard.uncontrolled-state.test.tsx +0 -73
  805. package/src/CheckboxCard/hooks/index.ts +0 -2
  806. package/src/CheckboxCard/hooks/useCheckboxCardContext.ts +0 -1
  807. package/src/CheckboxCard/hooks/useCheckboxCardRoot.ts +0 -30
  808. package/src/CheckboxCard/index.ts +0 -3
  809. package/src/CheckboxCard/types.ts +0 -97
  810. package/src/Collapsible/Collapsible.tsx +0 -378
  811. package/src/Collapsible/CollapsibleContext.ts +0 -7
  812. package/src/Collapsible/README.md +0 -214
  813. package/src/Collapsible/__tests__/Collapsible.asChild.test.tsx +0 -329
  814. package/src/Collapsible/__tests__/Collapsible.basic-rendering.test.tsx +0 -145
  815. package/src/Collapsible/__tests__/Collapsible.collapsedHeight.test.tsx +0 -140
  816. package/src/Collapsible/__tests__/Collapsible.controlled-state.test.tsx +0 -134
  817. package/src/Collapsible/__tests__/Collapsible.disabled.test.tsx +0 -132
  818. package/src/Collapsible/__tests__/Collapsible.error-handling.test.tsx +0 -40
  819. package/src/Collapsible/__tests__/Collapsible.forceMount.test.tsx +0 -111
  820. package/src/Collapsible/__tests__/Collapsible.triggerIcon.test.tsx +0 -93
  821. package/src/Collapsible/__tests__/Collapsible.uncontrolled-state.test.tsx +0 -125
  822. package/src/Collapsible/hooks/index.ts +0 -2
  823. package/src/Collapsible/hooks/useCollapsibleRoot.ts +0 -34
  824. package/src/Collapsible/hooks/useCollapsibleTrigger.ts +0 -51
  825. package/src/Collapsible/index.ts +0 -2
  826. package/src/Collapsible/types.ts +0 -148
  827. package/src/Combobox/Combobox.tsx +0 -508
  828. package/src/Combobox/ComboboxContext.ts +0 -23
  829. package/src/Combobox/README.md +0 -170
  830. package/src/Combobox/__tests__/Combobox.asChild.test.tsx +0 -62
  831. package/src/Combobox/__tests__/Combobox.basic-rendering.test.tsx +0 -16
  832. package/src/Combobox/__tests__/Combobox.content.test.tsx +0 -36
  833. package/src/Combobox/__tests__/Combobox.controlled-state.test.tsx +0 -88
  834. package/src/Combobox/__tests__/Combobox.empty.test.tsx +0 -42
  835. package/src/Combobox/__tests__/Combobox.ids.test.tsx +0 -66
  836. package/src/Combobox/__tests__/Combobox.item.test.tsx +0 -76
  837. package/src/Combobox/__tests__/Combobox.keyboard-interaction.test.tsx +0 -196
  838. package/src/Combobox/__tests__/Combobox.light-dismiss.test.tsx +0 -101
  839. package/src/Combobox/__tests__/Combobox.query.test.tsx +0 -105
  840. package/src/Combobox/hooks/index.ts +0 -1
  841. package/src/Combobox/hooks/useComboboxRoot.ts +0 -2
  842. package/src/Combobox/index.ts +0 -3
  843. package/src/Combobox/types.ts +0 -133
  844. package/src/ContextMenu/ContextMenu.tsx +0 -1296
  845. package/src/ContextMenu/ContextMenuContentContext.ts +0 -15
  846. package/src/ContextMenu/ContextMenuContext.ts +0 -21
  847. package/src/ContextMenu/ContextMenuGroupContext.ts +0 -8
  848. package/src/ContextMenu/ContextMenuItemIndicatorContext.ts +0 -8
  849. package/src/ContextMenu/ContextMenuRadioGroupContext.ts +0 -9
  850. package/src/ContextMenu/ContextMenuSubContext.ts +0 -15
  851. package/src/ContextMenu/README.md +0 -275
  852. package/src/ContextMenu/__tests__/ContextMenu.asChild.test.tsx +0 -186
  853. package/src/ContextMenu/__tests__/ContextMenu.basic-rendering.test.tsx +0 -39
  854. package/src/ContextMenu/__tests__/ContextMenu.checkbox-item.test.tsx +0 -168
  855. package/src/ContextMenu/__tests__/ContextMenu.error-handling.test.tsx +0 -113
  856. package/src/ContextMenu/__tests__/ContextMenu.group-label.test.tsx +0 -48
  857. package/src/ContextMenu/__tests__/ContextMenu.item-indicator.test.tsx +0 -88
  858. package/src/ContextMenu/__tests__/ContextMenu.item.test.tsx +0 -106
  859. package/src/ContextMenu/__tests__/ContextMenu.keyboard-interaction.test.tsx +0 -227
  860. package/src/ContextMenu/__tests__/ContextMenu.mouse-interaction.test.tsx +0 -268
  861. package/src/ContextMenu/__tests__/ContextMenu.radio-item.test.tsx +0 -152
  862. package/src/ContextMenu/__tests__/ContextMenu.reading-direction.test.tsx +0 -152
  863. package/src/ContextMenu/__tests__/ContextMenu.separator.test.tsx +0 -47
  864. package/src/ContextMenu/__tests__/ContextMenu.state-modes.test.tsx +0 -119
  865. package/src/ContextMenu/__tests__/ContextMenu.sub.test.tsx +0 -407
  866. package/src/ContextMenu/__tests__/ContextMenu.typeahead.test.tsx +0 -134
  867. package/src/ContextMenu/constants.ts +0 -4
  868. package/src/ContextMenu/index.ts +0 -2
  869. package/src/ContextMenu/types.ts +0 -484
  870. package/src/DirectionProvider/DirectionContext.ts +0 -21
  871. package/src/DirectionProvider/DirectionProvider.tsx +0 -69
  872. package/src/DirectionProvider/README.md +0 -62
  873. package/src/DirectionProvider/__tests__/DirectionProvider.test.tsx +0 -34
  874. package/src/DirectionProvider/index.ts +0 -3
  875. package/src/DirectionProvider/types.ts +0 -36
  876. package/src/Divider/Divider.tsx +0 -74
  877. package/src/Divider/README.md +0 -57
  878. package/src/Divider/__tests__/Divider.contract.test.tsx +0 -66
  879. package/src/Divider/__tests__/Divider.test.tsx +0 -46
  880. package/src/Divider/index.ts +0 -2
  881. package/src/Divider/types.ts +0 -17
  882. package/src/Drawer/Drawer.tsx +0 -315
  883. package/src/Drawer/README.md +0 -124
  884. package/src/Drawer/__tests__/Drawer.behavior.test.tsx +0 -100
  885. package/src/Drawer/__tests__/Drawer.focus-trap.test.tsx +0 -55
  886. package/src/Drawer/__tests__/Drawer.rendering.test.tsx +0 -111
  887. package/src/Drawer/__tests__/Drawer.side.test.tsx +0 -69
  888. package/src/Drawer/__tests__/dialog-polyfill.ts +0 -39
  889. package/src/Drawer/index.ts +0 -2
  890. package/src/Drawer/types.ts +0 -66
  891. package/src/Dropdown/Dropdown.tsx +0 -985
  892. package/src/Dropdown/DropdownContentContext.ts +0 -15
  893. package/src/Dropdown/DropdownContext.ts +0 -17
  894. package/src/Dropdown/DropdownGroupContext.ts +0 -8
  895. package/src/Dropdown/DropdownItemIndicatorContext.ts +0 -13
  896. package/src/Dropdown/DropdownRadioGroupContext.ts +0 -9
  897. package/src/Dropdown/DropdownSubContext.ts +0 -15
  898. package/src/Dropdown/README.md +0 -286
  899. package/src/Dropdown/__tests__/Dropdown.asChild.test.tsx +0 -286
  900. package/src/Dropdown/__tests__/Dropdown.basic-rendering.test.tsx +0 -43
  901. package/src/Dropdown/__tests__/Dropdown.checkbox-item.test.tsx +0 -121
  902. package/src/Dropdown/__tests__/Dropdown.disabled.test.tsx +0 -143
  903. package/src/Dropdown/__tests__/Dropdown.error-handling.test.tsx +0 -85
  904. package/src/Dropdown/__tests__/Dropdown.group-label.test.tsx +0 -68
  905. package/src/Dropdown/__tests__/Dropdown.item-indicator.test.tsx +0 -260
  906. package/src/Dropdown/__tests__/Dropdown.item.test.tsx +0 -72
  907. package/src/Dropdown/__tests__/Dropdown.keyboard-edge-cases.test.tsx +0 -77
  908. package/src/Dropdown/__tests__/Dropdown.keyboard-interaction.test.tsx +0 -310
  909. package/src/Dropdown/__tests__/Dropdown.mouse-interaction.test.tsx +0 -347
  910. package/src/Dropdown/__tests__/Dropdown.radio-item.test.tsx +0 -134
  911. package/src/Dropdown/__tests__/Dropdown.reading-direction.test.tsx +0 -153
  912. package/src/Dropdown/__tests__/Dropdown.separator.test.tsx +0 -46
  913. package/src/Dropdown/__tests__/Dropdown.state-modes.test.tsx +0 -100
  914. package/src/Dropdown/__tests__/Dropdown.sub.test.tsx +0 -185
  915. package/src/Dropdown/__tests__/Dropdown.trigger.test.tsx +0 -110
  916. package/src/Dropdown/__tests__/Dropdown.typeahead.test.tsx +0 -133
  917. package/src/Dropdown/constants.ts +0 -4
  918. package/src/Dropdown/hooks/index.ts +0 -9
  919. package/src/Dropdown/hooks/useCloseSiblingSub.ts +0 -13
  920. package/src/Dropdown/hooks/useDropdownContent.ts +0 -162
  921. package/src/Dropdown/hooks/useDropdownContext.ts +0 -1
  922. package/src/Dropdown/hooks/useDropdownGroup.ts +0 -18
  923. package/src/Dropdown/hooks/useDropdownItem.ts +0 -49
  924. package/src/Dropdown/hooks/useDropdownLabel.ts +0 -15
  925. package/src/Dropdown/hooks/useDropdownRoot.ts +0 -57
  926. package/src/Dropdown/hooks/useDropdownSubContext.ts +0 -1
  927. package/src/Dropdown/hooks/useDropdownTrigger.ts +0 -31
  928. package/src/Dropdown/index.ts +0 -2
  929. package/src/Dropdown/types.ts +0 -558
  930. package/src/EmptyState/EmptyState.tsx +0 -329
  931. package/src/EmptyState/README.md +0 -129
  932. package/src/EmptyState/__tests__/EmptyState.Actions.test.tsx +0 -37
  933. package/src/EmptyState/__tests__/EmptyState.Description.test.tsx +0 -32
  934. package/src/EmptyState/__tests__/EmptyState.Media.test.tsx +0 -34
  935. package/src/EmptyState/__tests__/EmptyState.Root.test.tsx +0 -38
  936. package/src/EmptyState/__tests__/EmptyState.Title.test.tsx +0 -28
  937. package/src/EmptyState/index.ts +0 -2
  938. package/src/EmptyState/types.ts +0 -65
  939. package/src/Field/Field.tsx +0 -276
  940. package/src/Field/FieldContext.ts +0 -22
  941. package/src/Field/README.md +0 -167
  942. package/src/Field/__tests__/Field.asChild.test.tsx +0 -83
  943. package/src/Field/__tests__/Field.basic-rendering.test.tsx +0 -115
  944. package/src/Field/__tests__/Field.contract.test.tsx +0 -91
  945. package/src/Field/__tests__/Field.error-handling.test.tsx +0 -23
  946. package/src/Field/__tests__/Field.state-cascade.test.tsx +0 -96
  947. package/src/Field/hooks/__tests__/useFieldProps.test.tsx +0 -142
  948. package/src/Field/hooks/index.ts +0 -2
  949. package/src/Field/hooks/useFieldContext.ts +0 -1
  950. package/src/Field/hooks/useFieldProps.ts +0 -57
  951. package/src/Field/index.ts +0 -2
  952. package/src/Field/types.ts +0 -85
  953. package/src/Fieldset/Fieldset.tsx +0 -156
  954. package/src/Fieldset/README.md +0 -74
  955. package/src/Fieldset/__tests__/Fieldset.basic-rendering.test.tsx +0 -90
  956. package/src/Fieldset/__tests__/Fieldset.disabled.test.tsx +0 -41
  957. package/src/Fieldset/index.ts +0 -2
  958. package/src/Fieldset/types.ts +0 -25
  959. package/src/Input/Input.tsx +0 -128
  960. package/src/Input/README.md +0 -180
  961. package/src/Input/__tests__/Input.asChild.test.tsx +0 -85
  962. package/src/Input/__tests__/Input.basic-rendering.test.tsx +0 -123
  963. package/src/Input/__tests__/Input.contract.test.tsx +0 -77
  964. package/src/Input/__tests__/Input.disabled.test.tsx +0 -49
  965. package/src/Input/__tests__/Input.field-integration.test.tsx +0 -148
  966. package/src/Input/index.ts +0 -2
  967. package/src/Input/types.ts +0 -28
  968. package/src/InputGroup/InputGroup.tsx +0 -243
  969. package/src/InputGroup/README.md +0 -178
  970. package/src/InputGroup/__tests__/InputGroup.asChild.test.tsx +0 -110
  971. package/src/InputGroup/__tests__/InputGroup.basic-rendering.test.tsx +0 -120
  972. package/src/InputGroup/__tests__/InputGroup.contract.test.tsx +0 -60
  973. package/src/InputGroup/index.ts +0 -2
  974. package/src/InputGroup/types.ts +0 -43
  975. package/src/Listbox/Listbox.tsx +0 -475
  976. package/src/Listbox/ListboxContext.ts +0 -48
  977. package/src/Listbox/README.md +0 -248
  978. package/src/Listbox/__tests__/Listbox.active-descendant.test.tsx +0 -128
  979. package/src/Listbox/__tests__/Listbox.asChild.test.tsx +0 -91
  980. package/src/Listbox/__tests__/Listbox.basic-rendering.test.tsx +0 -16
  981. package/src/Listbox/__tests__/Listbox.controlled-state.test.tsx +0 -114
  982. package/src/Listbox/__tests__/Listbox.disabled.test.tsx +0 -90
  983. package/src/Listbox/__tests__/Listbox.fixtures.ts +0 -27
  984. package/src/Listbox/__tests__/Listbox.group-label.test.tsx +0 -97
  985. package/src/Listbox/__tests__/Listbox.group.test.tsx +0 -45
  986. package/src/Listbox/__tests__/Listbox.keyboard-edge-cases.test.tsx +0 -144
  987. package/src/Listbox/__tests__/Listbox.keyboard-interaction.test.tsx +0 -112
  988. package/src/Listbox/__tests__/Listbox.modifier-keys.test.tsx +0 -86
  989. package/src/Listbox/__tests__/Listbox.multi-select-keyboard.test.tsx +0 -368
  990. package/src/Listbox/__tests__/Listbox.multiple-mode.test.tsx +0 -91
  991. package/src/Listbox/__tests__/Listbox.mutation-hardening.test.tsx +0 -480
  992. package/src/Listbox/__tests__/Listbox.orientation.test.tsx +0 -59
  993. package/src/Listbox/__tests__/Listbox.reading-direction.test.tsx +0 -65
  994. package/src/Listbox/__tests__/Listbox.reorder.test.tsx +0 -78
  995. package/src/Listbox/__tests__/Listbox.selection-follows-focus.test.tsx +0 -64
  996. package/src/Listbox/__tests__/Listbox.strict-context.test.tsx +0 -21
  997. package/src/Listbox/__tests__/Listbox.typeahead.test.tsx +0 -123
  998. package/src/Listbox/__tests__/Listbox.uncontrolled-state.test.tsx +0 -48
  999. package/src/Listbox/constants.ts +0 -2
  1000. package/src/Listbox/hooks/index.ts +0 -1
  1001. package/src/Listbox/hooks/useListboxRoot.ts +0 -407
  1002. package/src/Listbox/index.ts +0 -3
  1003. package/src/Listbox/types.ts +0 -238
  1004. package/src/MillerColumns/MillerColumns.tsx +0 -490
  1005. package/src/MillerColumns/MillerColumnsContext.ts +0 -25
  1006. package/src/MillerColumns/README.md +0 -348
  1007. package/src/MillerColumns/__tests__/MillerColumns.aria.test.tsx +0 -127
  1008. package/src/MillerColumns/__tests__/MillerColumns.asChild.test.tsx +0 -106
  1009. package/src/MillerColumns/__tests__/MillerColumns.auto-scroll.test.tsx +0 -70
  1010. package/src/MillerColumns/__tests__/MillerColumns.basic-rendering.test.tsx +0 -67
  1011. package/src/MillerColumns/__tests__/MillerColumns.column-projection.test.tsx +0 -161
  1012. package/src/MillerColumns/__tests__/MillerColumns.controlled-state.test.tsx +0 -90
  1013. package/src/MillerColumns/__tests__/MillerColumns.data-attributes.test.tsx +0 -125
  1014. package/src/MillerColumns/__tests__/MillerColumns.disabled-items.test.tsx +0 -65
  1015. package/src/MillerColumns/__tests__/MillerColumns.error-handling.test.tsx +0 -57
  1016. package/src/MillerColumns/__tests__/MillerColumns.fixtures.ts +0 -15
  1017. package/src/MillerColumns/__tests__/MillerColumns.item-indicator.test.tsx +0 -57
  1018. package/src/MillerColumns/__tests__/MillerColumns.keyboard-interaction.test.tsx +0 -214
  1019. package/src/MillerColumns/__tests__/MillerColumns.keyboard-selection-state.test.tsx +0 -96
  1020. package/src/MillerColumns/__tests__/MillerColumns.preview-panel.test.tsx +0 -72
  1021. package/src/MillerColumns/__tests__/MillerColumns.preview-visibility.test.tsx +0 -79
  1022. package/src/MillerColumns/__tests__/MillerColumns.resize.test.tsx +0 -326
  1023. package/src/MillerColumns/__tests__/MillerColumns.roving-tabindex.test.tsx +0 -91
  1024. package/src/MillerColumns/__tests__/MillerColumns.selection.test.tsx +0 -54
  1025. package/src/MillerColumns/__tests__/MillerColumns.styled-parts.test.tsx +0 -143
  1026. package/src/MillerColumns/__tests__/MillerColumns.typeahead.test.tsx +0 -104
  1027. package/src/MillerColumns/__tests__/MillerColumns.uncontrolled-state.test.tsx +0 -70
  1028. package/src/MillerColumns/constants.ts +0 -2
  1029. package/src/MillerColumns/hooks/index.ts +0 -7
  1030. package/src/MillerColumns/hooks/useMillerColumnsColumn.ts +0 -26
  1031. package/src/MillerColumns/hooks/useMillerColumnsColumnContext.ts +0 -1
  1032. package/src/MillerColumns/hooks/useMillerColumnsContext.ts +0 -1
  1033. package/src/MillerColumns/hooks/useMillerColumnsItem.ts +0 -179
  1034. package/src/MillerColumns/hooks/useMillerColumnsItemContext.ts +0 -1
  1035. package/src/MillerColumns/hooks/useMillerColumnsResizeHandle.ts +0 -146
  1036. package/src/MillerColumns/hooks/useMillerColumnsRoot.ts +0 -0
  1037. package/src/MillerColumns/index.ts +0 -7
  1038. package/src/MillerColumns/types.ts +0 -252
  1039. package/src/MillerColumns/useMillerColumnsSelection.ts +0 -31
  1040. package/src/MillerColumns/utils.ts +0 -141
  1041. package/src/Modal/Modal.tsx +0 -515
  1042. package/src/Modal/ModalContext.ts +0 -20
  1043. package/src/Modal/README.md +0 -222
  1044. package/src/Modal/__tests__/Modal.accessibility.test.tsx +0 -167
  1045. package/src/Modal/__tests__/Modal.asChild.test.tsx +0 -162
  1046. package/src/Modal/__tests__/Modal.click-outside.test.tsx +0 -115
  1047. package/src/Modal/__tests__/Modal.content.test.tsx +0 -193
  1048. package/src/Modal/__tests__/Modal.controlled-state.test.tsx +0 -120
  1049. package/src/Modal/__tests__/Modal.error-handling.test.tsx +0 -30
  1050. package/src/Modal/__tests__/Modal.escape-hatches.test.tsx +0 -99
  1051. package/src/Modal/__tests__/Modal.focus-trap.test.tsx +0 -162
  1052. package/src/Modal/__tests__/Modal.imperative-api.test.tsx +0 -119
  1053. package/src/Modal/__tests__/Modal.nested.test.tsx +0 -106
  1054. package/src/Modal/__tests__/Modal.overlay.test.tsx +0 -99
  1055. package/src/Modal/__tests__/Modal.portal.test.tsx +0 -90
  1056. package/src/Modal/__tests__/Modal.presence.test.tsx +0 -111
  1057. package/src/Modal/__tests__/Modal.trigger.test.tsx +0 -70
  1058. package/src/Modal/__tests__/Modal.uncontrolled-state.test.tsx +0 -72
  1059. package/src/Modal/__tests__/dialog-polyfill.ts +0 -40
  1060. package/src/Modal/hooks/index.ts +0 -4
  1061. package/src/Modal/hooks/useModalContent.ts +0 -94
  1062. package/src/Modal/hooks/useModalContext.ts +0 -1
  1063. package/src/Modal/hooks/useModalRoot.ts +0 -81
  1064. package/src/Modal/hooks/useModalTrigger.ts +0 -25
  1065. package/src/Modal/index.ts +0 -3
  1066. package/src/Modal/types.ts +0 -206
  1067. package/src/NavigationMenu/NavigationMenu.tsx +0 -890
  1068. package/src/NavigationMenu/NavigationMenuContext.ts +0 -67
  1069. package/src/NavigationMenu/README.md +0 -355
  1070. package/src/NavigationMenu/__tests__/NavigationMenu.anchor-positioning.test.tsx +0 -132
  1071. package/src/NavigationMenu/__tests__/NavigationMenu.asChild.test.tsx +0 -73
  1072. package/src/NavigationMenu/__tests__/NavigationMenu.basic-rendering.test.tsx +0 -92
  1073. package/src/NavigationMenu/__tests__/NavigationMenu.contract.test.tsx +0 -45
  1074. package/src/NavigationMenu/__tests__/NavigationMenu.controlled-state.test.tsx +0 -134
  1075. package/src/NavigationMenu/__tests__/NavigationMenu.error-handling.test.tsx +0 -62
  1076. package/src/NavigationMenu/__tests__/NavigationMenu.fixtures.tsx +0 -79
  1077. package/src/NavigationMenu/__tests__/NavigationMenu.forceMount.test.tsx +0 -52
  1078. package/src/NavigationMenu/__tests__/NavigationMenu.hover-interaction.test.tsx +0 -254
  1079. package/src/NavigationMenu/__tests__/NavigationMenu.indicator.test.tsx +0 -252
  1080. package/src/NavigationMenu/__tests__/NavigationMenu.keyboard-interaction.test.tsx +0 -294
  1081. package/src/NavigationMenu/__tests__/NavigationMenu.keyboard-navigation.test.tsx +0 -126
  1082. package/src/NavigationMenu/__tests__/NavigationMenu.link.test.tsx +0 -139
  1083. package/src/NavigationMenu/__tests__/NavigationMenu.motion.test.tsx +0 -568
  1084. package/src/NavigationMenu/__tests__/NavigationMenu.mouse-interaction.test.tsx +0 -76
  1085. package/src/NavigationMenu/__tests__/NavigationMenu.uncontrolled-state.test.tsx +0 -30
  1086. package/src/NavigationMenu/__tests__/NavigationMenu.viewport.test.tsx +0 -113
  1087. package/src/NavigationMenu/constants.ts +0 -5
  1088. package/src/NavigationMenu/hooks/index.ts +0 -7
  1089. package/src/NavigationMenu/hooks/useNavigationMenuEntry.ts +0 -33
  1090. package/src/NavigationMenu/hooks/useNavigationMenuIndicator.ts +0 -70
  1091. package/src/NavigationMenu/hooks/useNavigationMenuLink.ts +0 -72
  1092. package/src/NavigationMenu/hooks/useNavigationMenuRoot.ts +0 -301
  1093. package/src/NavigationMenu/hooks/useNavigationMenuTopLevelEntry.ts +0 -65
  1094. package/src/NavigationMenu/hooks/useNavigationMenuTrigger.ts +0 -158
  1095. package/src/NavigationMenu/hooks/useNavigationMenuViewport.ts +0 -101
  1096. package/src/NavigationMenu/index.ts +0 -3
  1097. package/src/NavigationMenu/types.ts +0 -259
  1098. package/src/NavigationMenu/utils.ts +0 -89
  1099. package/src/Popover/Popover.tsx +0 -427
  1100. package/src/Popover/PopoverContext.ts +0 -13
  1101. package/src/Popover/README.md +0 -106
  1102. package/src/Popover/__tests__/Popover.anchor.test.tsx +0 -38
  1103. package/src/Popover/__tests__/Popover.asChild.test.tsx +0 -160
  1104. package/src/Popover/__tests__/Popover.basic-rendering.test.tsx +0 -106
  1105. package/src/Popover/__tests__/Popover.click-outside.test.tsx +0 -149
  1106. package/src/Popover/__tests__/Popover.close.test.tsx +0 -70
  1107. package/src/Popover/__tests__/Popover.content.test.tsx +0 -58
  1108. package/src/Popover/__tests__/Popover.controlled-state.test.tsx +0 -45
  1109. package/src/Popover/__tests__/Popover.error-handling.test.tsx +0 -51
  1110. package/src/Popover/__tests__/Popover.focus.test.tsx +0 -43
  1111. package/src/Popover/__tests__/Popover.keyboard-interaction.test.tsx +0 -71
  1112. package/src/Popover/__tests__/Popover.mouse-interaction.test.tsx +0 -69
  1113. package/src/Popover/__tests__/Popover.uncontrolled-state.test.tsx +0 -44
  1114. package/src/Popover/hooks/index.ts +0 -3
  1115. package/src/Popover/hooks/usePopoverContent.ts +0 -98
  1116. package/src/Popover/hooks/usePopoverRoot.ts +0 -84
  1117. package/src/Popover/hooks/usePopoverTrigger.ts +0 -33
  1118. package/src/Popover/index.ts +0 -2
  1119. package/src/Popover/types.ts +0 -197
  1120. package/src/Portal/Portal.tsx +0 -70
  1121. package/src/Portal/README.md +0 -70
  1122. package/src/Portal/__tests__/Portal.basic-rendering.test.tsx +0 -22
  1123. package/src/Portal/index.ts +0 -2
  1124. package/src/Portal/types.ts +0 -15
  1125. package/src/Progress/Progress.tsx +0 -215
  1126. package/src/Progress/ProgressContext.ts +0 -27
  1127. package/src/Progress/README.md +0 -112
  1128. package/src/Progress/__tests__/Progress.asChild.test.tsx +0 -37
  1129. package/src/Progress/__tests__/Progress.basic-rendering.test.tsx +0 -75
  1130. package/src/Progress/__tests__/Progress.error-handling.test.tsx +0 -40
  1131. package/src/Progress/__tests__/Progress.fixtures.ts +0 -7
  1132. package/src/Progress/__tests__/Progress.value.test.tsx +0 -104
  1133. package/src/Progress/hooks/index.ts +0 -2
  1134. package/src/Progress/hooks/useProgressContext.ts +0 -1
  1135. package/src/Progress/hooks/useProgressRoot.ts +0 -45
  1136. package/src/Progress/index.ts +0 -3
  1137. package/src/Progress/types.ts +0 -59
  1138. package/src/Radio/README.md +0 -160
  1139. package/src/Radio/Radio.tsx +0 -210
  1140. package/src/Radio/RadioContext.ts +0 -19
  1141. package/src/Radio/__tests__/Radio.basic-rendering.test.tsx +0 -80
  1142. package/src/Radio/__tests__/Radio.contract.test.tsx +0 -106
  1143. package/src/Radio/__tests__/Radio.controlled-state.test.tsx +0 -79
  1144. package/src/Radio/__tests__/Radio.disabled.test.tsx +0 -48
  1145. package/src/Radio/__tests__/Radio.native-grouping.test.tsx +0 -77
  1146. package/src/Radio/__tests__/Radio.parts.test.tsx +0 -76
  1147. package/src/Radio/__tests__/Radio.uncontrolled-state.test.tsx +0 -96
  1148. package/src/Radio/hooks/index.ts +0 -2
  1149. package/src/Radio/hooks/useRadioContext.ts +0 -1
  1150. package/src/Radio/hooks/useRadioRoot.ts +0 -51
  1151. package/src/Radio/index.ts +0 -2
  1152. package/src/Radio/types.ts +0 -90
  1153. package/src/RadioCard/README.md +0 -134
  1154. package/src/RadioCard/RadioCard.tsx +0 -354
  1155. package/src/RadioCard/RadioCardContext.ts +0 -35
  1156. package/src/RadioCard/RadioCardItemContext.ts +0 -23
  1157. package/src/RadioCard/__tests__/RadioCard.asChild.test.tsx +0 -76
  1158. package/src/RadioCard/__tests__/RadioCard.basic-rendering.test.tsx +0 -95
  1159. package/src/RadioCard/__tests__/RadioCard.controlled-state.test.tsx +0 -107
  1160. package/src/RadioCard/__tests__/RadioCard.disabled-items.test.tsx +0 -111
  1161. package/src/RadioCard/__tests__/RadioCard.error-handling.test.tsx +0 -35
  1162. package/src/RadioCard/__tests__/RadioCard.indicator.test.tsx +0 -119
  1163. package/src/RadioCard/__tests__/RadioCard.keyboard-interaction.test.tsx +0 -211
  1164. package/src/RadioCard/__tests__/RadioCard.orientation.test.tsx +0 -90
  1165. package/src/RadioCard/__tests__/RadioCard.reading-direction.test.tsx +0 -65
  1166. package/src/RadioCard/__tests__/RadioCard.ref-forwarding.test.tsx +0 -54
  1167. package/src/RadioCard/__tests__/RadioCard.uncontrolled-state.test.tsx +0 -129
  1168. package/src/RadioCard/hooks/index.ts +0 -3
  1169. package/src/RadioCard/hooks/useRadioCardContext.ts +0 -1
  1170. package/src/RadioCard/hooks/useRadioCardItemContext.ts +0 -1
  1171. package/src/RadioCard/hooks/useRadioCardRoot.ts +0 -88
  1172. package/src/RadioCard/index.ts +0 -4
  1173. package/src/RadioCard/types.ts +0 -145
  1174. package/src/RadioGroup/README.md +0 -185
  1175. package/src/RadioGroup/RadioGroup.tsx +0 -370
  1176. package/src/RadioGroup/RadioGroupContext.ts +0 -23
  1177. package/src/RadioGroup/RadioGroupItemContext.ts +0 -10
  1178. package/src/RadioGroup/__tests__/RadioGroup.asChild.test.tsx +0 -105
  1179. package/src/RadioGroup/__tests__/RadioGroup.basic-rendering.test.tsx +0 -80
  1180. package/src/RadioGroup/__tests__/RadioGroup.controlled-state.test.tsx +0 -109
  1181. package/src/RadioGroup/__tests__/RadioGroup.disabled-keydown-guards.test.tsx +0 -68
  1182. package/src/RadioGroup/__tests__/RadioGroup.disabled.test.tsx +0 -106
  1183. package/src/RadioGroup/__tests__/RadioGroup.error-handling.test.tsx +0 -33
  1184. package/src/RadioGroup/__tests__/RadioGroup.indicator.test.tsx +0 -85
  1185. package/src/RadioGroup/__tests__/RadioGroup.keyboard-interaction.test.tsx +0 -135
  1186. package/src/RadioGroup/__tests__/RadioGroup.orientation.test.tsx +0 -90
  1187. package/src/RadioGroup/__tests__/RadioGroup.reading-direction.test.tsx +0 -65
  1188. package/src/RadioGroup/__tests__/RadioGroup.ref-forwarding.test.tsx +0 -74
  1189. package/src/RadioGroup/__tests__/RadioGroup.roving-tabindex.test.tsx +0 -136
  1190. package/src/RadioGroup/__tests__/RadioGroup.uncontrolled-state.test.tsx +0 -96
  1191. package/src/RadioGroup/hooks/index.ts +0 -3
  1192. package/src/RadioGroup/hooks/useRadioGroupContext.ts +0 -1
  1193. package/src/RadioGroup/hooks/useRadioGroupItemContext.ts +0 -1
  1194. package/src/RadioGroup/hooks/useRadioGroupRoot.ts +0 -98
  1195. package/src/RadioGroup/index.ts +0 -2
  1196. package/src/RadioGroup/types.ts +0 -146
  1197. package/src/SegmentedControl/README.md +0 -154
  1198. package/src/SegmentedControl/SegmentedControl.tsx +0 -309
  1199. package/src/SegmentedControl/SegmentedControlContext.ts +0 -28
  1200. package/src/SegmentedControl/__tests__/SegmentedControl.asChild.test.tsx +0 -50
  1201. package/src/SegmentedControl/__tests__/SegmentedControl.basic-rendering.test.tsx +0 -100
  1202. package/src/SegmentedControl/__tests__/SegmentedControl.controlled-state.test.tsx +0 -107
  1203. package/src/SegmentedControl/__tests__/SegmentedControl.disabled-keydown-guards.test.tsx +0 -62
  1204. package/src/SegmentedControl/__tests__/SegmentedControl.disabled.test.tsx +0 -151
  1205. package/src/SegmentedControl/__tests__/SegmentedControl.error-handling.test.tsx +0 -17
  1206. package/src/SegmentedControl/__tests__/SegmentedControl.keyboard-interaction.test.tsx +0 -117
  1207. package/src/SegmentedControl/__tests__/SegmentedControl.orientation.test.tsx +0 -54
  1208. package/src/SegmentedControl/__tests__/SegmentedControl.reading-direction.test.tsx +0 -56
  1209. package/src/SegmentedControl/__tests__/SegmentedControl.ref-forwarding.test.tsx +0 -45
  1210. package/src/SegmentedControl/__tests__/SegmentedControl.roving-tabindex.test.tsx +0 -104
  1211. package/src/SegmentedControl/__tests__/SegmentedControl.uncontrolled-state.test.tsx +0 -94
  1212. package/src/SegmentedControl/hooks/index.ts +0 -2
  1213. package/src/SegmentedControl/hooks/useSegmentedControlContext.ts +0 -1
  1214. package/src/SegmentedControl/hooks/useSegmentedControlRoot.ts +0 -87
  1215. package/src/SegmentedControl/index.ts +0 -2
  1216. package/src/SegmentedControl/types.ts +0 -138
  1217. package/src/Select/README.md +0 -168
  1218. package/src/Select/Select.tsx +0 -746
  1219. package/src/Select/SelectContext.ts +0 -38
  1220. package/src/Select/SelectItemIndicatorContext.ts +0 -29
  1221. package/src/Select/__tests__/Select.asChild.test.tsx +0 -36
  1222. package/src/Select/__tests__/Select.basic-rendering.test.tsx +0 -36
  1223. package/src/Select/__tests__/Select.controlled-state.test.tsx +0 -69
  1224. package/src/Select/__tests__/Select.data-attributes.test.tsx +0 -29
  1225. package/src/Select/__tests__/Select.field-integration.test.tsx +0 -150
  1226. package/src/Select/__tests__/Select.form.test.tsx +0 -38
  1227. package/src/Select/__tests__/Select.group.test.tsx +0 -42
  1228. package/src/Select/__tests__/Select.keyboard-edge.test.tsx +0 -95
  1229. package/src/Select/__tests__/Select.keyboard.test.tsx +0 -124
  1230. package/src/Select/__tests__/Select.mutation-hardening.test.tsx +0 -317
  1231. package/src/Select/__tests__/Select.native-item.test.tsx +0 -30
  1232. package/src/Select/__tests__/Select.open-close.test.tsx +0 -57
  1233. package/src/Select/__tests__/Select.placeholder.test.tsx +0 -50
  1234. package/src/Select/__tests__/Select.rich-asChild.test.tsx +0 -60
  1235. package/src/Select/__tests__/Select.rich-mode.test.tsx +0 -16
  1236. package/src/Select/__tests__/Select.selection.test.tsx +0 -104
  1237. package/src/Select/__tests__/Select.separator.test.tsx +0 -71
  1238. package/src/Select/__tests__/Select.strict-context.test.tsx +0 -36
  1239. package/src/Select/__tests__/Select.typeahead.test.tsx +0 -156
  1240. package/src/Select/__tests__/Select.value-mirror.test.tsx +0 -240
  1241. package/src/Select/constants.ts +0 -8
  1242. package/src/Select/hooks/index.ts +0 -2
  1243. package/src/Select/hooks/useSelectContent.ts +0 -149
  1244. package/src/Select/hooks/useSelectRoot.ts +0 -149
  1245. package/src/Select/index.ts +0 -2
  1246. package/src/Select/types.ts +0 -272
  1247. package/src/SkipNav/README.md +0 -87
  1248. package/src/SkipNav/SkipNav.tsx +0 -161
  1249. package/src/SkipNav/__tests__/SkipNav.basic-rendering.test.tsx +0 -29
  1250. package/src/SkipNav/__tests__/SkipNav.ids.test.tsx +0 -19
  1251. package/src/SkipNav/index.ts +0 -1
  1252. package/src/SkipNav/types.ts +0 -34
  1253. package/src/Slider/README.md +0 -245
  1254. package/src/Slider/Slider.tsx +0 -361
  1255. package/src/Slider/SliderContext.ts +0 -58
  1256. package/src/Slider/__tests__/Slider.asChild.test.tsx +0 -119
  1257. package/src/Slider/__tests__/Slider.basic-rendering.test.tsx +0 -157
  1258. package/src/Slider/__tests__/Slider.controlled-state.test.tsx +0 -78
  1259. package/src/Slider/__tests__/Slider.disabled.test.tsx +0 -82
  1260. package/src/Slider/__tests__/Slider.error-handling.test.tsx +0 -45
  1261. package/src/Slider/__tests__/Slider.fixtures.ts +0 -53
  1262. package/src/Slider/__tests__/Slider.form.test.tsx +0 -67
  1263. package/src/Slider/__tests__/Slider.inverted.test.tsx +0 -112
  1264. package/src/Slider/__tests__/Slider.keyboard-interaction.test.tsx +0 -118
  1265. package/src/Slider/__tests__/Slider.multiple-thumbs.test.tsx +0 -84
  1266. package/src/Slider/__tests__/Slider.orientation.test.tsx +0 -101
  1267. package/src/Slider/__tests__/Slider.pointer-interaction.test.tsx +0 -205
  1268. package/src/Slider/__tests__/Slider.reading-direction.test.tsx +0 -99
  1269. package/src/Slider/__tests__/Slider.uncontrolled-state.test.tsx +0 -69
  1270. package/src/Slider/__tests__/Slider.value-commit.test.tsx +0 -103
  1271. package/src/Slider/hooks/index.ts +0 -3
  1272. package/src/Slider/hooks/useSliderContext.ts +0 -1
  1273. package/src/Slider/hooks/useSliderRoot.ts +0 -197
  1274. package/src/Slider/hooks/useSliderThumb.ts +0 -77
  1275. package/src/Slider/index.ts +0 -3
  1276. package/src/Slider/types.ts +0 -205
  1277. package/src/Slider/utils.ts +0 -155
  1278. package/src/Slot/Slot.tsx +0 -238
  1279. package/src/Slot/__tests__/Slot.test.tsx +0 -273
  1280. package/src/Slot/__tests__/composeEventHandlers.test.ts +0 -74
  1281. package/src/Slot/composeEventHandlers.ts +0 -62
  1282. package/src/Slot/index.ts +0 -3
  1283. package/src/Slot/types.ts +0 -21
  1284. package/src/SplitButton/README.md +0 -225
  1285. package/src/SplitButton/SplitButton.tsx +0 -457
  1286. package/src/SplitButton/SplitButtonContext.ts +0 -26
  1287. package/src/SplitButton/__tests__/SplitButton.accessibility.test.tsx +0 -55
  1288. package/src/SplitButton/__tests__/SplitButton.asChild.test.tsx +0 -51
  1289. package/src/SplitButton/__tests__/SplitButton.basic-rendering.test.tsx +0 -57
  1290. package/src/SplitButton/__tests__/SplitButton.data-attributes.test.tsx +0 -28
  1291. package/src/SplitButton/__tests__/SplitButton.disabled.test.tsx +0 -79
  1292. package/src/SplitButton/__tests__/SplitButton.error-handling.test.tsx +0 -29
  1293. package/src/SplitButton/__tests__/SplitButton.keyboard-interaction.test.tsx +0 -56
  1294. package/src/SplitButton/__tests__/SplitButton.state-modes.test.tsx +0 -68
  1295. package/src/SplitButton/index.ts +0 -2
  1296. package/src/SplitButton/types.ts +0 -186
  1297. package/src/Status/README.md +0 -50
  1298. package/src/Status/Status.tsx +0 -72
  1299. package/src/Status/__tests__/Status.test.tsx +0 -33
  1300. package/src/Status/index.ts +0 -2
  1301. package/src/Status/types.ts +0 -20
  1302. package/src/Switch/README.md +0 -126
  1303. package/src/Switch/Switch.tsx +0 -203
  1304. package/src/Switch/SwitchContext.ts +0 -20
  1305. package/src/Switch/__tests__/Switch.asChild.test.tsx +0 -38
  1306. package/src/Switch/__tests__/Switch.basic-rendering.test.tsx +0 -102
  1307. package/src/Switch/__tests__/Switch.contract.test.tsx +0 -114
  1308. package/src/Switch/__tests__/Switch.controlled-state.test.tsx +0 -77
  1309. package/src/Switch/__tests__/Switch.disabled.test.tsx +0 -55
  1310. package/src/Switch/__tests__/Switch.error-handling.test.tsx +0 -20
  1311. package/src/Switch/__tests__/Switch.form.test.tsx +0 -55
  1312. package/src/Switch/__tests__/Switch.keyboard-interaction.test.tsx +0 -56
  1313. package/src/Switch/__tests__/Switch.recipe.test.ts +0 -19
  1314. package/src/Switch/__tests__/Switch.thumb.test.tsx +0 -84
  1315. package/src/Switch/__tests__/Switch.uncontrolled-state.test.tsx +0 -118
  1316. package/src/Switch/hooks/index.ts +0 -2
  1317. package/src/Switch/hooks/useSwitchContext.ts +0 -1
  1318. package/src/Switch/hooks/useSwitchRoot.ts +0 -49
  1319. package/src/Switch/index.ts +0 -3
  1320. package/src/Switch/types.ts +0 -95
  1321. package/src/Table/README.md +0 -307
  1322. package/src/Table/Table.tsx +0 -636
  1323. package/src/Table/TableExpandableContext.ts +0 -7
  1324. package/src/Table/__tests__/Table.Body.test.tsx +0 -61
  1325. package/src/Table/__tests__/Table.Caption.test.tsx +0 -70
  1326. package/src/Table/__tests__/Table.Cell.test.tsx +0 -73
  1327. package/src/Table/__tests__/Table.DetailRow.test.tsx +0 -83
  1328. package/src/Table/__tests__/Table.ExpandTrigger.test.tsx +0 -102
  1329. package/src/Table/__tests__/Table.Expandable.test.tsx +0 -121
  1330. package/src/Table/__tests__/Table.Footer.test.tsx +0 -61
  1331. package/src/Table/__tests__/Table.Head.test.tsx +0 -61
  1332. package/src/Table/__tests__/Table.Header.test.tsx +0 -73
  1333. package/src/Table/__tests__/Table.Root.test.tsx +0 -49
  1334. package/src/Table/__tests__/Table.Row.test.tsx +0 -67
  1335. package/src/Table/__tests__/Table.ScrollArea.test.tsx +0 -83
  1336. package/src/Table/__tests__/Table.contract.test.tsx +0 -80
  1337. package/src/Table/index.ts +0 -2
  1338. package/src/Table/types.ts +0 -237
  1339. package/src/Tabs/README.md +0 -111
  1340. package/src/Tabs/Tabs.tsx +0 -465
  1341. package/src/Tabs/TabsContext.ts +0 -21
  1342. package/src/Tabs/__tests__/Tabs.activation-mode.test.tsx +0 -172
  1343. package/src/Tabs/__tests__/Tabs.asChild.test.tsx +0 -91
  1344. package/src/Tabs/__tests__/Tabs.basic-rendering.test.tsx +0 -498
  1345. package/src/Tabs/__tests__/Tabs.change-event-callbacks.test.tsx +0 -157
  1346. package/src/Tabs/__tests__/Tabs.contract.test.tsx +0 -153
  1347. package/src/Tabs/__tests__/Tabs.controlled-state.test.tsx +0 -152
  1348. package/src/Tabs/__tests__/Tabs.disabled-tabs.test.tsx +0 -239
  1349. package/src/Tabs/__tests__/Tabs.error-handling.test.tsx +0 -82
  1350. package/src/Tabs/__tests__/Tabs.fixtures.ts +0 -171
  1351. package/src/Tabs/__tests__/Tabs.imperative-api.test.tsx +0 -118
  1352. package/src/Tabs/__tests__/Tabs.keyboard-interaction.test.tsx +0 -192
  1353. package/src/Tabs/__tests__/Tabs.lazy-mount.test.tsx +0 -78
  1354. package/src/Tabs/__tests__/Tabs.mouse-interaction.test.tsx +0 -216
  1355. package/src/Tabs/__tests__/Tabs.reading-direction.test.tsx +0 -58
  1356. package/src/Tabs/__tests__/Tabs.uncontrolled-state.test.tsx +0 -197
  1357. package/src/Tabs/hooks/index.ts +0 -4
  1358. package/src/Tabs/hooks/useTabsContent.ts +0 -32
  1359. package/src/Tabs/hooks/useTabsContext.ts +0 -1
  1360. package/src/Tabs/hooks/useTabsRoot.ts +0 -172
  1361. package/src/Tabs/hooks/useTabsTrigger.ts +0 -116
  1362. package/src/Tabs/index.ts +0 -3
  1363. package/src/Tabs/types.ts +0 -166
  1364. package/src/Tabs/utils.ts +0 -8
  1365. package/src/Textarea/README.md +0 -98
  1366. package/src/Textarea/Textarea.tsx +0 -104
  1367. package/src/Textarea/__tests__/Textarea.asChild.test.tsx +0 -85
  1368. package/src/Textarea/__tests__/Textarea.basic-rendering.test.tsx +0 -112
  1369. package/src/Textarea/__tests__/Textarea.disabled.test.tsx +0 -49
  1370. package/src/Textarea/__tests__/Textarea.field-integration.test.tsx +0 -134
  1371. package/src/Textarea/index.ts +0 -2
  1372. package/src/Textarea/types.ts +0 -28
  1373. package/src/Toggle/README.md +0 -97
  1374. package/src/Toggle/Toggle.tsx +0 -126
  1375. package/src/Toggle/__tests__/Toggle.asChild.test.tsx +0 -42
  1376. package/src/Toggle/__tests__/Toggle.basic-rendering.test.tsx +0 -33
  1377. package/src/Toggle/__tests__/Toggle.controlled-state.test.tsx +0 -60
  1378. package/src/Toggle/__tests__/Toggle.disabled.test.tsx +0 -34
  1379. package/src/Toggle/__tests__/Toggle.keyboard-interaction.test.tsx +0 -42
  1380. package/src/Toggle/__tests__/Toggle.uncontrolled-state.test.tsx +0 -40
  1381. package/src/Toggle/index.ts +0 -2
  1382. package/src/Toggle/types.ts +0 -77
  1383. package/src/ToggleGroup/README.md +0 -137
  1384. package/src/ToggleGroup/ToggleGroup.tsx +0 -321
  1385. package/src/ToggleGroup/ToggleGroupContext.ts +0 -9
  1386. package/src/ToggleGroup/__tests__/ToggleGroup.asChild.test.tsx +0 -85
  1387. package/src/ToggleGroup/__tests__/ToggleGroup.basic-rendering.test.tsx +0 -59
  1388. package/src/ToggleGroup/__tests__/ToggleGroup.disabled.test.tsx +0 -54
  1389. package/src/ToggleGroup/__tests__/ToggleGroup.dynamic-items.test.tsx +0 -70
  1390. package/src/ToggleGroup/__tests__/ToggleGroup.error-handling.test.tsx +0 -23
  1391. package/src/ToggleGroup/__tests__/ToggleGroup.keyboard-interaction.test.tsx +0 -173
  1392. package/src/ToggleGroup/__tests__/ToggleGroup.multiple-mode.test.tsx +0 -144
  1393. package/src/ToggleGroup/__tests__/ToggleGroup.reading-direction.test.tsx +0 -28
  1394. package/src/ToggleGroup/__tests__/ToggleGroup.ref-forwarding.test.tsx +0 -58
  1395. package/src/ToggleGroup/__tests__/ToggleGroup.single-mode.test.tsx +0 -139
  1396. package/src/ToggleGroup/hooks/index.ts +0 -2
  1397. package/src/ToggleGroup/hooks/useToggleGroupContext.ts +0 -1
  1398. package/src/ToggleGroup/hooks/useToggleGroupRoot.ts +0 -130
  1399. package/src/ToggleGroup/index.ts +0 -2
  1400. package/src/ToggleGroup/types.ts +0 -165
  1401. package/src/Tooltip/README.md +0 -214
  1402. package/src/Tooltip/Tooltip.tsx +0 -369
  1403. package/src/Tooltip/TooltipContext.ts +0 -20
  1404. package/src/Tooltip/__tests__/Tooltip.asChild.test.tsx +0 -77
  1405. package/src/Tooltip/__tests__/Tooltip.basic-rendering.test.tsx +0 -230
  1406. package/src/Tooltip/__tests__/Tooltip.controlled-state.test.tsx +0 -128
  1407. package/src/Tooltip/__tests__/Tooltip.error-handling.test.tsx +0 -37
  1408. package/src/Tooltip/__tests__/Tooltip.escape-hatches.test.tsx +0 -146
  1409. package/src/Tooltip/__tests__/Tooltip.focus-interaction.test.tsx +0 -88
  1410. package/src/Tooltip/__tests__/Tooltip.hover-interaction.test.tsx +0 -179
  1411. package/src/Tooltip/__tests__/Tooltip.keyboard-interaction.test.tsx +0 -219
  1412. package/src/Tooltip/__tests__/Tooltip.skip-delay.test.tsx +0 -232
  1413. package/src/Tooltip/__tests__/Tooltip.timer-coordination.test.tsx +0 -223
  1414. package/src/Tooltip/__tests__/Tooltip.uncontrolled-state.test.tsx +0 -67
  1415. package/src/Tooltip/hooks/__tests__/useTooltipProvider.test.tsx +0 -40
  1416. package/src/Tooltip/hooks/index.ts +0 -4
  1417. package/src/Tooltip/hooks/useTooltipContent.ts +0 -56
  1418. package/src/Tooltip/hooks/useTooltipProvider.ts +0 -79
  1419. package/src/Tooltip/hooks/useTooltipRoot.ts +0 -130
  1420. package/src/Tooltip/hooks/useTooltipTrigger.ts +0 -44
  1421. package/src/Tooltip/index.ts +0 -2
  1422. package/src/Tooltip/types.ts +0 -193
  1423. package/src/Tree/README.md +0 -403
  1424. package/src/Tree/Tree.tsx +0 -771
  1425. package/src/Tree/TreeContext.ts +0 -24
  1426. package/src/Tree/__tests__/Tree.aria.test.tsx +0 -53
  1427. package/src/Tree/__tests__/Tree.asChild.test.tsx +0 -134
  1428. package/src/Tree/__tests__/Tree.basic-rendering.test.tsx +0 -111
  1429. package/src/Tree/__tests__/Tree.branch-behaviour.test.tsx +0 -87
  1430. package/src/Tree/__tests__/Tree.controlled-expansion.test.tsx +0 -92
  1431. package/src/Tree/__tests__/Tree.data-attributes.test.tsx +0 -88
  1432. package/src/Tree/__tests__/Tree.disabled-items.test.tsx +0 -196
  1433. package/src/Tree/__tests__/Tree.error-handling.test.tsx +0 -71
  1434. package/src/Tree/__tests__/Tree.forceMount.test.tsx +0 -72
  1435. package/src/Tree/__tests__/Tree.keyboard-interaction.test.tsx +0 -150
  1436. package/src/Tree/__tests__/Tree.multiple-selection.test.tsx +0 -151
  1437. package/src/Tree/__tests__/Tree.range-selection.test.tsx +0 -200
  1438. package/src/Tree/__tests__/Tree.recursion-depth.test.tsx +0 -73
  1439. package/src/Tree/__tests__/Tree.roving-tabindex.test.tsx +0 -117
  1440. package/src/Tree/__tests__/Tree.selection-path.test.tsx +0 -404
  1441. package/src/Tree/__tests__/Tree.single-selection.test.tsx +0 -108
  1442. package/src/Tree/__tests__/Tree.styled-wrapper.test.tsx +0 -159
  1443. package/src/Tree/__tests__/Tree.uncontrolled-expansion.test.tsx +0 -69
  1444. package/src/Tree/hooks/index.ts +0 -3
  1445. package/src/Tree/hooks/useTreeItemKeyboard.ts +0 -86
  1446. package/src/Tree/hooks/useTreePath.ts +0 -100
  1447. package/src/Tree/hooks/useTreeRoot.ts +0 -279
  1448. package/src/Tree/index.ts +0 -8
  1449. package/src/Tree/types.ts +0 -298
  1450. package/src/Tree/utils.ts +0 -101
  1451. package/src/VisuallyHidden/README.md +0 -58
  1452. package/src/VisuallyHidden/VisuallyHidden.tsx +0 -94
  1453. package/src/VisuallyHidden/__tests__/VisuallyHidden.test.tsx +0 -73
  1454. package/src/VisuallyHidden/index.ts +0 -2
  1455. package/src/VisuallyHidden/types.ts +0 -19
  1456. package/src/hooks/index.ts +0 -4
  1457. package/src/hooks/useCollection.ts +0 -74
  1458. package/src/hooks/useControllableState.ts +0 -81
  1459. package/src/hooks/useRovingTabindex.ts +0 -178
  1460. package/src/hooks/useTypeahead.ts +0 -95
  1461. package/src/index.ts +0 -52
  1462. package/src/test/intersectionObserverPolyfill.ts +0 -90
  1463. package/src/test/popoverPolyfill.ts +0 -86
  1464. package/src/test/resizeObserverPolyfill.ts +0 -80
  1465. package/src/test/scrollPolyfill.ts +0 -23
  1466. package/src/types.ts +0 -14
  1467. package/src/useLocalStorage/__tests__/useLocalStorage.reading.test.tsx +0 -31
  1468. package/src/useLocalStorage/__tests__/useLocalStorage.resilience.test.tsx +0 -97
  1469. package/src/useLocalStorage/__tests__/useLocalStorage.ssr.test.tsx +0 -20
  1470. package/src/useLocalStorage/__tests__/useLocalStorage.writing.test.tsx +0 -72
  1471. package/src/useLocalStorage/index.ts +0 -1
  1472. package/src/useLocalStorage/useLocalStorage.ts +0 -140
  1473. package/src/useMediaQuery/README.md +0 -66
  1474. package/src/useMediaQuery/__tests__/useMediaQuery.matching.test.tsx +0 -42
  1475. package/src/useMediaQuery/__tests__/useMediaQuery.ssr.test.tsx +0 -19
  1476. package/src/useMediaQuery/__tests__/useMediaQuery.subscription.test.tsx +0 -89
  1477. package/src/useMediaQuery/index.ts +0 -1
  1478. package/src/useMediaQuery/useMediaQuery.ts +0 -49
  1479. package/src/usePagination/README.md +0 -170
  1480. package/src/usePagination/__tests__/usePagination.navigation.test.tsx +0 -109
  1481. package/src/usePagination/__tests__/usePagination.page-count.test.tsx +0 -56
  1482. package/src/usePagination/__tests__/usePagination.page-state.test.tsx +0 -87
  1483. package/src/usePagination/__tests__/usePagination.range.test.tsx +0 -82
  1484. package/src/usePagination/__tests__/usePagination.slice.test.tsx +0 -59
  1485. package/src/usePagination/__tests__/usePagination.windowing.test.tsx +0 -68
  1486. package/src/usePagination/index.ts +0 -1
  1487. package/src/usePagination/usePagination.ts +0 -292
  1488. package/src/utils/__tests__/createStrictContext.test.tsx +0 -69
  1489. package/src/utils/__tests__/deriveId.test.ts +0 -28
  1490. package/src/utils/__tests__/getKeyToActionMap.test.ts +0 -106
  1491. package/src/utils/createStrictContext.ts +0 -53
  1492. package/src/utils/deriveId.ts +0 -31
  1493. package/src/utils/focusable.ts +0 -15
  1494. package/src/utils/getKeyToActionMap.ts +0 -95
  1495. package/src/utils/index.ts +0 -4
@@ -1,1296 +0,0 @@
1
- import {
2
- useContext,
3
- useCallback,
4
- useEffect,
5
- useId,
6
- useMemo,
7
- useRef,
8
- useState,
9
- } from "react";
10
- import type { ReactElement } from "react";
11
-
12
- import { useCheckboxRoot } from "../Checkbox/hooks/index.ts";
13
- import { useDirection } from "../DirectionProvider/index.ts";
14
- import { useRadioGroupRoot } from "../RadioGroup/hooks/index.ts";
15
- import { useControllableState } from "../hooks/index.ts";
16
- import { Slot, composeEventHandlers } from "../Slot/index.ts";
17
-
18
- import {
19
- ContextMenuContext,
20
- ContextMenuPosition,
21
- useContextMenuContext,
22
- } from "./ContextMenuContext";
23
- import { ContextMenuContentContext } from "./ContextMenuContentContext";
24
- import { ContextMenuGroupContext } from "./ContextMenuGroupContext";
25
- import { ContextMenuItemIndicatorContext } from "./ContextMenuItemIndicatorContext";
26
- import { ContextMenuRadioGroupContext } from "./ContextMenuRadioGroupContext";
27
- import {
28
- ContextMenuSubContext,
29
- useContextMenuSubContext,
30
- } from "./ContextMenuSubContext";
31
- import {
32
- ContextMenuCheckboxItemProps,
33
- ContextMenuContentProps,
34
- ContextMenuGroupProps,
35
- ContextMenuItemIndicatorProps,
36
- ContextMenuItemProps,
37
- ContextMenuLabelProps,
38
- ContextMenuRadioGroupProps,
39
- ContextMenuRadioItemProps,
40
- ContextMenuRootProps,
41
- ContextMenuSeparatorProps,
42
- ContextMenuSubContentProps,
43
- ContextMenuSubProps,
44
- ContextMenuSubTriggerProps,
45
- ContextMenuTriggerProps,
46
- } from "./types";
47
- import { MENUITEM_SELECTOR, TYPEAHEAD_RESET_MS } from "./constants";
48
-
49
- /**
50
- * The root of a ContextMenu — owns the open state and the position the
51
- * menu should open at, and provides context to descendants. Renders no
52
- * DOM of its own; it is a context boundary.
53
- *
54
- * Supports two state modes, statically discriminated at the type level so
55
- * only one shape is accepted by TypeScript:
56
- *
57
- * - **Uncontrolled** — pass {@link ContextMenuRootProps.defaultOpen | `defaultOpen`}
58
- * (or omit it to start closed). The component owns and updates the open
59
- * state internally. Optional {@link ContextMenuRootProps.onOpenChange | `onOpenChange`}
60
- * observes transitions.
61
- * - **Controlled** — pass {@link ContextMenuRootProps.open | `open`} *and*
62
- * {@link ContextMenuRootProps.onOpenChange | `onOpenChange`} together. The
63
- * parent owns the state; the component defers every transition back through
64
- * the callback.
65
- *
66
- * **Reading direction.** Pass {@link ContextMenuRootProps.dir | `dir`} to
67
- * set `"ltr"` or `"rtl"`, which inverts the submenu open / close arrow
68
- * keys (`ArrowRight` ↔ `ArrowLeft`). When omitted, the component reads
69
- * the inherited {@link DirectionProvider} value, falling back to `"ltr"`.
70
- *
71
- * Renders no DOM of its own — no extended host element — it is purely a
72
- * context provider around its `children`.
73
- *
74
- * @example Uncontrolled
75
- * ```tsx
76
- * <ContextMenu.Root>
77
- * <ContextMenu.Trigger>
78
- * <div className="canvas">Right-click here</div>
79
- * </ContextMenu.Trigger>
80
- * <ContextMenu.Content>
81
- * <ContextMenu.Item onSelect={paste}>Paste</ContextMenu.Item>
82
- * </ContextMenu.Content>
83
- * </ContextMenu.Root>
84
- * ```
85
- *
86
- * @example Controlled
87
- * ```tsx
88
- * const [open, setOpen] = useState(false);
89
- *
90
- * <ContextMenu.Root open={open} onOpenChange={setOpen}>
91
- * ...
92
- * </ContextMenu.Root>
93
- * ```
94
- */
95
- export function ContextMenuRoot({
96
- defaultOpen = false,
97
- open: controlledOpen,
98
- onOpenChange,
99
- dir,
100
- children,
101
- }: ContextMenuRootProps): ReactElement {
102
- const contentId = useId();
103
- const triggerRef = useRef<HTMLElement | null>(null);
104
- const [position, setPosition] = useState<ContextMenuPosition | null>(null);
105
- const inheritedDir = useDirection();
106
- const resolvedDir = dir ?? inheritedDir;
107
- const [open, setOpenBase] = useControllableState<boolean>(
108
- controlledOpen,
109
- defaultOpen,
110
- onOpenChange,
111
- );
112
- const openRef = useRef(open);
113
- useEffect(() => {
114
- openRef.current = open;
115
- });
116
-
117
- const setOpen = useCallback(
118
- (next: boolean) => {
119
- if (openRef.current === next) return;
120
- openRef.current = next;
121
- setOpenBase(next);
122
- },
123
- [setOpenBase],
124
- );
125
-
126
- const contextValue = useMemo(
127
- () => ({
128
- open,
129
- setOpen,
130
- position,
131
- setPosition,
132
- contentId,
133
- triggerRef,
134
- dir: resolvedDir,
135
- }),
136
- [open, setOpen, position, contentId, resolvedDir],
137
- );
138
-
139
- return (
140
- <ContextMenuContext.Provider value={contextValue}>
141
- {children}
142
- </ContextMenuContext.Provider>
143
- );
144
- }
145
-
146
- /** @internal */
147
- ContextMenuRoot.displayName = "ContextMenuRoot";
148
-
149
- /**
150
- * Returns a callback that closes any direct-child sub-menu registered with
151
- * the enclosing Content / SubContent. Items invoke this on mouseEnter so
152
- * hovering a sibling dismisses an open sub, mirroring the keyboard contract.
153
- */
154
- function useCloseSiblingSub() {
155
- const content = useContext(ContextMenuContentContext);
156
- return () => content?.closeOpenSubRef.current?.();
157
- }
158
-
159
- /**
160
- * The area that responds to right-click. Renders a `<span>` by default
161
- * (a non-button host so the wrapped content keeps its native semantics);
162
- * pass `asChild` to render any element.
163
- *
164
- * When the user opens the platform context menu over this element (via
165
- * right-click, long-press on touch, or the keyboard context-menu key),
166
- * the native menu is suppressed and the ContextMenu opens, positioned at
167
- * the pointer.
168
- *
169
- * A `disabled` Trigger ignores the gesture entirely, letting the native
170
- * browser menu through. `data-disabled=""` and `data-state="closed"` are
171
- * exposed for styling.
172
- *
173
- * @extends HTMLSpanElement
174
- *
175
- * @example Default `<span>` host
176
- * ```tsx
177
- * <ContextMenu.Trigger>
178
- * <div className="canvas">Right-click anywhere</div>
179
- * </ContextMenu.Trigger>
180
- * ```
181
- *
182
- * @example asChild — attach the gesture to any element
183
- * ```tsx
184
- * <ContextMenu.Trigger asChild>
185
- * <ImageCard src="..." alt="..." />
186
- * </ContextMenu.Trigger>
187
- * ```
188
- */
189
- export function ContextMenuTrigger({
190
- children,
191
- onContextMenu,
192
- asChild = false,
193
- disabled,
194
- ...rest
195
- }: ContextMenuTriggerProps): ReactElement {
196
- const { setOpen, setPosition, triggerRef } = useContextMenuContext();
197
-
198
- const handleContextMenu = (event: React.MouseEvent<HTMLElement>) => {
199
- if (disabled) return;
200
- event.preventDefault();
201
- setPosition({ x: event.clientX, y: event.clientY });
202
- setOpen(true);
203
- };
204
-
205
- const triggerProps = {
206
- ...rest,
207
- ref: triggerRef,
208
- "data-disabled": disabled ? "" : undefined,
209
- "data-state": disabled ? undefined : ("closed" as const),
210
- onContextMenu: composeEventHandlers(onContextMenu, handleContextMenu),
211
- };
212
-
213
- if (asChild) {
214
- return <Slot {...triggerProps}>{children}</Slot>;
215
- }
216
-
217
- return <span {...triggerProps}>{children}</span>;
218
- }
219
-
220
- /** @internal */
221
- ContextMenuTrigger.displayName = "ContextMenuTrigger";
222
-
223
- /**
224
- * The menu panel rendered with the native HTML
225
- * [Popover API](https://developer.mozilla.org/en-US/docs/Web/API/Popover_API)
226
- * in **manual** mode (`popover="manual"`) — no portal, no floating-ui. The
227
- * browser still layers the menu via the top layer, but the component owns
228
- * the close flow rather than the browser's light-dismiss algorithm.
229
- *
230
- * Manual mode is required because the right-click gesture's pointerdown
231
- * fires before the popover exists; with `popover="auto"`, the browser
232
- * treats the matching pointerup as an outside click and closes the menu
233
- * the instant the user releases the button. Outside-click close and
234
- * Escape are handled explicitly here instead.
235
- *
236
- * Renders a `<menu role="menu">` positioned at the pointer coordinates
237
- * captured when the Trigger fired its `contextmenu` event. The cursor
238
- * position is exposed twice on the element style: as explicit `left` /
239
- * `top` insets (so the menu renders at the cursor with zero consumer
240
- * CSS), and as `--primitiv-context-menu-x` / `--primitiv-context-menu-y`
241
- * custom properties so consumer CSS can write `@position-try` fallbacks
242
- * that flip the menu to the opposite side when it would overflow the
243
- * viewport. Pass `asChild` to render any element with menu semantics.
244
- *
245
- * **Focus & keyboard.** On open, focus moves to the first enabled item.
246
- * `ArrowDown` / `ArrowUp` move between items (wrapping), `Home` / `End`
247
- * jump to the first / last, `Enter` / `Space` activate the focused item,
248
- * `Escape` closes and returns focus to the Trigger, and any printable
249
- * character starts a typeahead search (accumulated within a 500 ms window;
250
- * repeating a character cycles items sharing that first letter). Disabled
251
- * items are skipped throughout. `data-state="open" | "closed"` is exposed
252
- * for state-driven styling.
253
- *
254
- * @extends HTMLMenuElement
255
- *
256
- * @example
257
- * ```tsx
258
- * <ContextMenu.Content>
259
- * <ContextMenu.Item onSelect={cut}>Cut</ContextMenu.Item>
260
- * <ContextMenu.Item onSelect={copy}>Copy</ContextMenu.Item>
261
- * <ContextMenu.Separator />
262
- * <ContextMenu.Item disabled>Archive</ContextMenu.Item>
263
- * </ContextMenu.Content>
264
- * ```
265
- */
266
- export function ContextMenuContent({
267
- children,
268
- style,
269
- onKeyDown,
270
- asChild = false,
271
- ...rest
272
- }: ContextMenuContentProps): ReactElement {
273
- const { open, setOpen, position, contentId, triggerRef } =
274
- useContextMenuContext();
275
- const menuRef = useRef<HTMLMenuElement | null>(null);
276
- const typeaheadRef = useRef<{ query: string; timer: number | null }>({
277
- query: "",
278
- timer: null,
279
- });
280
-
281
- useEffect(() => {
282
- const menu = menuRef.current!;
283
- if (open) {
284
- menu.showPopover();
285
- if (!menu.contains(document.activeElement)) {
286
- const firstItem = menu.querySelector<HTMLElement>(MENUITEM_SELECTOR);
287
- firstItem?.focus();
288
- }
289
- } else {
290
- try {
291
- menu.hidePopover();
292
- } catch {
293
- // already hidden — no-op
294
- }
295
- }
296
- }, [open]);
297
-
298
- useEffect(() => {
299
- const menu = menuRef.current!;
300
- const handleToggle = (event: Event) => {
301
- if ((event as ToggleEvent).newState === "closed") setOpen(false);
302
- };
303
- menu.addEventListener("toggle", handleToggle);
304
- return () => menu.removeEventListener("toggle", handleToggle);
305
- }, [setOpen]);
306
-
307
- useEffect(() => {
308
- if (!open) return;
309
- const handleClick = (event: MouseEvent) => {
310
- const target = event.target as Element;
311
- if (triggerRef.current?.contains(target)) return;
312
- if (target.closest?.("[popover]")) return;
313
- setOpen(false);
314
- };
315
- document.addEventListener("click", handleClick);
316
- return () => document.removeEventListener("click", handleClick);
317
- }, [open, setOpen, triggerRef]);
318
-
319
- const handleKeyDown = (event: React.KeyboardEvent<HTMLMenuElement>) => {
320
- const menu = menuRef.current!;
321
- const focused = document.activeElement as HTMLElement | null;
322
- const scope = (focused?.closest("[popover]") as HTMLElement | null) ?? menu;
323
- const items = Array.from(
324
- scope.querySelectorAll<HTMLElement>(MENUITEM_SELECTOR),
325
- ).filter((el) => el.closest("[popover]") === scope);
326
- if (items.length === 0) return;
327
- const currentIndex = items.indexOf(document.activeElement as HTMLElement);
328
-
329
- let nextIndex: number | null = null;
330
- if (event.key === "ArrowDown") {
331
- nextIndex = (currentIndex + 1) % items.length;
332
- } else if (event.key === "ArrowUp") {
333
- nextIndex = currentIndex <= 0 ? items.length - 1 : currentIndex - 1;
334
- } else if (event.key === "Home") {
335
- nextIndex = 0;
336
- } else if (event.key === "End") {
337
- nextIndex = items.length - 1;
338
- }
339
-
340
- if (nextIndex !== null) {
341
- event.preventDefault();
342
- items[nextIndex].focus();
343
- return;
344
- }
345
-
346
- if (event.key === "Enter" || event.key === " ") {
347
- if (currentIndex < 0) return;
348
- event.preventDefault();
349
- items[currentIndex].click();
350
- return;
351
- }
352
-
353
- if (event.key === "Escape") {
354
- event.preventDefault();
355
- setOpen(false);
356
- triggerRef.current?.focus();
357
- return;
358
- }
359
-
360
- if (event.key.length === 1 && event.key !== " ") {
361
- const state = typeaheadRef.current;
362
- if (state.timer !== null) window.clearTimeout(state.timer);
363
- state.query = (state.query + event.key).toLowerCase();
364
- state.timer = window.setTimeout(() => {
365
- state.query = "";
366
- state.timer = null;
367
- }, TYPEAHEAD_RESET_MS);
368
-
369
- const isRepeat =
370
- state.query.length > 1 &&
371
- state.query.split("").every((c) => c === state.query[0]);
372
- const searchQuery = isRepeat ? state.query[0] : state.query;
373
- const startIndex = currentIndex < 0 ? 0 : currentIndex;
374
- const offset = searchQuery.length === 1 || isRepeat ? 1 : 0;
375
- for (let i = 0; i < items.length; i++) {
376
- const index = (startIndex + offset + i) % items.length;
377
- const text = items[index].textContent!.trim().toLowerCase();
378
- if (text.startsWith(searchQuery)) {
379
- event.preventDefault();
380
- items[index].focus();
381
- return;
382
- }
383
- }
384
- }
385
- };
386
-
387
- // Both `left`/`top` and `--primitiv-context-menu-x`/`-y` are set: the
388
- // explicit insets position the menu at the cursor by default, and the
389
- // custom properties let consumer CSS write `@position-try` fallbacks
390
- // that flip the menu (e.g. `right: calc(100vw - var(--primitiv-context-menu-x))`)
391
- // when the primary position would overflow the viewport.
392
- const positionedStyle = position
393
- ? ({
394
- position: "fixed" as const,
395
- left: position.x,
396
- top: position.y,
397
- margin: 0,
398
- "--primitiv-context-menu-x": `${position.x}px`,
399
- "--primitiv-context-menu-y": `${position.y}px`,
400
- ...style,
401
- } as React.CSSProperties)
402
- : style;
403
-
404
- const closeOpenSubRef = useRef<(() => void) | null>(null);
405
- const contentContextValue = useMemo(() => ({ closeOpenSubRef }), []);
406
-
407
- // Cascade-close: when our own popover closes, also close any registered
408
- // direct-child sub so its state doesn't leak into the next open. Without
409
- // this, clicking an item inside a SubContent closes Root but leaves the
410
- // child Sub.open=true, which then briefly drives a stale popover render
411
- // the next time the menu opens. Each SubContent runs the same cascade
412
- // against its own child sub, so the chain unwinds bottom-up.
413
- useEffect(() => {
414
- if (!open) closeOpenSubRef.current?.();
415
- }, [open]);
416
-
417
- const contentProps = {
418
- ...rest,
419
- ref: menuRef,
420
- id: contentId,
421
- role: "menu" as const,
422
- // Manual mode: the right-click gesture's pointerdown fires before the
423
- // popover opens, so popover="auto"'s light-dismiss algorithm treats
424
- // the matching pointerup as an outside click and closes the menu the
425
- // instant the user releases the button. We close on outside click
426
- // (document listener below) and Escape (key handler) ourselves.
427
- popover: "manual" as const,
428
- "data-state": (open ? "open" : "closed") as "open" | "closed",
429
- style: positionedStyle,
430
- onKeyDown: composeEventHandlers(onKeyDown, handleKeyDown),
431
- };
432
-
433
- return (
434
- <ContextMenuContentContext.Provider value={contentContextValue}>
435
- {asChild ? (
436
- <Slot {...contentProps}>{children}</Slot>
437
- ) : (
438
- <menu {...contentProps}>{children}</menu>
439
- )}
440
- </ContextMenuContentContext.Provider>
441
- );
442
- }
443
-
444
- /** @internal */
445
- ContextMenuContent.displayName = "ContextMenuContent";
446
-
447
- /**
448
- * A standard menu item. Renders a `<li role="menuitem">` by default; pass
449
- * `asChild` to render any element with menuitem semantics.
450
- *
451
- * Clicking the item (or pressing Enter / Space while focused) fires
452
- * {@link ContextMenuItemProps.onSelect | `onSelect`} with a cancellable
453
- * `Event`. The menu auto-closes after selection; call
454
- * `event.preventDefault()` inside `onSelect` to keep it open.
455
- *
456
- * Disabled items receive `aria-disabled="true"` and no-op on activation;
457
- * arrow navigation and typeahead skip them. `data-highlighted=""` is
458
- * present while the pointer hovers the item.
459
- *
460
- * @extends HTMLLIElement
461
- *
462
- * @example
463
- * ```tsx
464
- * <ContextMenu.Item onSelect={() => rename()}>Rename</ContextMenu.Item>
465
- * <ContextMenu.Item disabled>Archive (coming soon)</ContextMenu.Item>
466
- * ```
467
- *
468
- * @example asChild — render a link with menuitem semantics
469
- * ```tsx
470
- * <ContextMenu.Item asChild>
471
- * <a href="/rename">Rename</a>
472
- * </ContextMenu.Item>
473
- * ```
474
- */
475
- export function ContextMenuItem({
476
- children,
477
- onClick,
478
- onSelect,
479
- disabled,
480
- asChild = false,
481
- ...rest
482
- }: ContextMenuItemProps): ReactElement {
483
- const { setOpen } = useContextMenuContext();
484
- const closeSiblingSub = useCloseSiblingSub();
485
- const [highlighted, setHighlighted] = useState(false);
486
-
487
- const handleClick = () => {
488
- if (disabled) return;
489
- const event = new Event("contextmenu.select", { cancelable: true });
490
- onSelect?.(event);
491
- if (!event.defaultPrevented) {
492
- setOpen(false);
493
- }
494
- };
495
-
496
- const itemProps = {
497
- ...rest,
498
- role: "menuitem" as const,
499
- tabIndex: -1,
500
- "aria-disabled": disabled || undefined,
501
- "data-highlighted": highlighted ? "" : undefined,
502
- onClick: composeEventHandlers(onClick, handleClick),
503
- onMouseEnter: composeEventHandlers(rest.onMouseEnter, () => {
504
- setHighlighted(true);
505
- closeSiblingSub();
506
- }),
507
- onMouseLeave: composeEventHandlers(rest.onMouseLeave, () =>
508
- setHighlighted(false),
509
- ),
510
- };
511
-
512
- if (asChild) {
513
- return <Slot {...itemProps}>{children}</Slot>;
514
- }
515
-
516
- return <li {...itemProps}>{children}</li>;
517
- }
518
-
519
- /** @internal */
520
- ContextMenuItem.displayName = "ContextMenuItem";
521
-
522
- /**
523
- * A visual separator between groups of items. Renders a `<li role="separator">`
524
- * by default. Non-interactive — skipped by focus, arrow navigation, and
525
- * typeahead.
526
- *
527
- * @extends HTMLLIElement
528
- *
529
- * @example
530
- * ```tsx
531
- * <ContextMenu.Item>Copy</ContextMenu.Item>
532
- * <ContextMenu.Separator />
533
- * <ContextMenu.Item>Delete</ContextMenu.Item>
534
- * ```
535
- */
536
- export function ContextMenuSeparator({
537
- asChild = false,
538
- children,
539
- ...rest
540
- }: ContextMenuSeparatorProps): ReactElement {
541
- const separatorProps = { ...rest, role: "separator" as const };
542
-
543
- if (asChild) {
544
- return <Slot {...separatorProps}>{children}</Slot>;
545
- }
546
-
547
- return <li {...separatorProps} />;
548
- }
549
-
550
- /** @internal */
551
- ContextMenuSeparator.displayName = "ContextMenuSeparator";
552
-
553
- /**
554
- * A semantic grouping of related items. Renders as a `<li role="group">`
555
- * wrapping an inner `<ul role="none">`, or — with `asChild` — a single
556
- * grouping element composed onto the provided child.
557
- *
558
- * Generates a stable id for its accompanying {@link ContextMenuLabel |
559
- * `ContextMenu.Label`}, wired automatically via `aria-labelledby`.
560
- *
561
- * @extends HTMLLIElement
562
- *
563
- * @example
564
- * ```tsx
565
- * <ContextMenu.Group>
566
- * <ContextMenu.Label>Edit</ContextMenu.Label>
567
- * <ContextMenu.Item>Undo</ContextMenu.Item>
568
- * <ContextMenu.Item>Redo</ContextMenu.Item>
569
- * </ContextMenu.Group>
570
- * ```
571
- */
572
- export function ContextMenuGroup({
573
- children,
574
- asChild = false,
575
- ...rest
576
- }: ContextMenuGroupProps): ReactElement {
577
- const labelId = useId();
578
- const contextValue = useMemo(() => ({ labelId }), [labelId]);
579
- const groupProps = {
580
- ...rest,
581
- role: "group" as const,
582
- "aria-labelledby": labelId,
583
- };
584
-
585
- return (
586
- <ContextMenuGroupContext.Provider value={contextValue}>
587
- {asChild ? (
588
- <Slot {...groupProps}>{children}</Slot>
589
- ) : (
590
- <li {...groupProps}>
591
- <ul role="none">{children}</ul>
592
- </li>
593
- )}
594
- </ContextMenuGroupContext.Provider>
595
- );
596
- }
597
-
598
- /** @internal */
599
- ContextMenuGroup.displayName = "ContextMenuGroup";
600
-
601
- /**
602
- * A non-interactive label, typically used inside a {@link ContextMenuGroup |
603
- * `ContextMenu.Group`} to give that group an accessible name. When nested in
604
- * a group, the label's `id` is auto-wired to the group's `aria-labelledby` —
605
- * consumers don't need to thread ids manually. A caller-supplied `id` takes
606
- * precedence over the auto-generated one.
607
- *
608
- * @extends HTMLLIElement
609
- *
610
- * @example
611
- * ```tsx
612
- * <ContextMenu.Group>
613
- * <ContextMenu.Label>View</ContextMenu.Label>
614
- * <ContextMenu.CheckboxItem>Show grid</ContextMenu.CheckboxItem>
615
- * </ContextMenu.Group>
616
- * ```
617
- */
618
- export function ContextMenuLabel({
619
- id,
620
- children,
621
- asChild = false,
622
- ...rest
623
- }: ContextMenuLabelProps): ReactElement {
624
- const group = useContext(ContextMenuGroupContext);
625
- const labelProps = { ...rest, id: id ?? group?.labelId };
626
-
627
- if (asChild) {
628
- return <Slot {...labelProps}>{children}</Slot>;
629
- }
630
-
631
- return <li {...labelProps}>{children}</li>;
632
- }
633
-
634
- /** @internal */
635
- ContextMenuLabel.displayName = "ContextMenuLabel";
636
-
637
- /**
638
- * A toggleable menu item. Renders a `<li role="menuitemcheckbox">` with
639
- * `aria-checked` reflecting the current state. Supports a WAI-ARIA tri-state:
640
- * `true`, `false`, or `"indeterminate"` (encoded as `aria-checked="mixed"`).
641
- * An indeterminate item resolves to `true` on the next activation.
642
- *
643
- * Activation (click) toggles the checked state, then fires
644
- * {@link ContextMenuCheckboxItemProps.onSelect | `onSelect`} with a
645
- * cancellable `Event`. Call `event.preventDefault()` to keep the menu open.
646
- *
647
- * Supports both state modes: uncontrolled via
648
- * {@link ContextMenuCheckboxItemUncontrolledProps.defaultChecked | `defaultChecked`},
649
- * or controlled via
650
- * {@link ContextMenuCheckboxItemControlledProps.checked | `checked`} +
651
- * {@link ContextMenuCheckboxItemControlledProps.onCheckedChange | `onCheckedChange`}.
652
- * Render a {@link ContextMenuItemIndicator | `ContextMenu.ItemIndicator`}
653
- * inside it for the visible mark.
654
- *
655
- * Disabled items receive `aria-disabled="true"` and no-op on activation.
656
- *
657
- * @extends HTMLLIElement
658
- *
659
- * @example Uncontrolled, with an indicator
660
- * ```tsx
661
- * <ContextMenu.CheckboxItem defaultChecked>
662
- * <ContextMenu.ItemIndicator><CheckIcon /></ContextMenu.ItemIndicator>
663
- * Show grid
664
- * </ContextMenu.CheckboxItem>
665
- * ```
666
- *
667
- * @example Controlled, kept open for rapid toggling
668
- * ```tsx
669
- * <ContextMenu.CheckboxItem
670
- * checked={showRuler}
671
- * onCheckedChange={setShowRuler}
672
- * onSelect={(event) => event.preventDefault()}
673
- * >
674
- * Show ruler
675
- * </ContextMenu.CheckboxItem>
676
- * ```
677
- */
678
- export function ContextMenuCheckboxItem({
679
- children,
680
- onClick,
681
- onSelect,
682
- disabled,
683
- defaultChecked,
684
- checked: controlledChecked,
685
- onCheckedChange,
686
- asChild = false,
687
- ...rest
688
- }: ContextMenuCheckboxItemProps): ReactElement {
689
- const { setOpen } = useContextMenuContext();
690
- const closeSiblingSub = useCloseSiblingSub();
691
- const [highlighted, setHighlighted] = useState(false);
692
- const { checked, toggle } = useCheckboxRoot({
693
- defaultChecked,
694
- checked: controlledChecked,
695
- onCheckedChange,
696
- });
697
- const ariaChecked: "mixed" | "true" | "false" =
698
- checked === "indeterminate" ? "mixed" : checked ? "true" : "false";
699
-
700
- const handleClick = () => {
701
- if (disabled) return;
702
- toggle();
703
- const event = new Event("contextmenu.select", { cancelable: true });
704
- onSelect?.(event);
705
- if (!event.defaultPrevented) {
706
- setOpen(false);
707
- }
708
- };
709
-
710
- const itemProps = {
711
- ...rest,
712
- role: "menuitemcheckbox" as const,
713
- tabIndex: -1,
714
- "aria-checked": ariaChecked,
715
- "aria-disabled": disabled || undefined,
716
- "data-highlighted": highlighted ? "" : undefined,
717
- onClick: composeEventHandlers(onClick, handleClick),
718
- onMouseEnter: composeEventHandlers(rest.onMouseEnter, () => {
719
- setHighlighted(true);
720
- closeSiblingSub();
721
- }),
722
- onMouseLeave: composeEventHandlers(rest.onMouseLeave, () =>
723
- setHighlighted(false),
724
- ),
725
- };
726
-
727
- const indicatorContextValue = useMemo(() => ({ checked }), [checked]);
728
- const content = asChild ? (
729
- <Slot {...itemProps}>{children}</Slot>
730
- ) : (
731
- <li {...itemProps}>{children}</li>
732
- );
733
-
734
- return (
735
- <ContextMenuItemIndicatorContext.Provider value={indicatorContextValue}>
736
- {content}
737
- </ContextMenuItemIndicatorContext.Provider>
738
- );
739
- }
740
-
741
- /** @internal */
742
- ContextMenuCheckboxItem.displayName = "ContextMenuCheckboxItem";
743
-
744
- /**
745
- * The visible mark (usually a checkmark) rendered inside a
746
- * {@link ContextMenuCheckboxItem | `ContextMenu.CheckboxItem`} (or radio item).
747
- * Must be a descendant of one; rendering it anywhere else throws a
748
- * descriptive error.
749
- *
750
- * Renders a `<span>` by default. Exposes `data-state` reflecting the parent
751
- * item's live state: `"checked"`, `"unchecked"`, or `"indeterminate"`.
752
- *
753
- * By default the indicator unmounts when its parent is unchecked. Pass
754
- * {@link ContextMenuItemIndicatorProps.forceMount | `forceMount`} to keep
755
- * the DOM node mounted in both states for animation use cases.
756
- *
757
- * @extends HTMLSpanElement
758
- *
759
- * @example Compose onto an icon
760
- * ```tsx
761
- * <ContextMenu.CheckboxItem checked={bookmarked} onCheckedChange={setBookmarked}>
762
- * <ContextMenu.ItemIndicator asChild>
763
- * <CheckIcon aria-hidden />
764
- * </ContextMenu.ItemIndicator>
765
- * Bookmark
766
- * </ContextMenu.CheckboxItem>
767
- * ```
768
- *
769
- * @example forceMount for CSS-driven transitions
770
- * ```tsx
771
- * <ContextMenu.ItemIndicator forceMount>
772
- * <CheckIcon />
773
- * </ContextMenu.ItemIndicator>
774
- * ```
775
- */
776
- export function ContextMenuItemIndicator({
777
- children,
778
- asChild = false,
779
- forceMount = false,
780
- ...rest
781
- }: ContextMenuItemIndicatorProps): ReactElement | null {
782
- const context = useContext(ContextMenuItemIndicatorContext);
783
- if (!context) {
784
- throw new Error(
785
- "ContextMenu.ItemIndicator must be rendered inside a <ContextMenu.CheckboxItem> or <ContextMenu.RadioItem>.",
786
- );
787
- }
788
-
789
- const { checked } = context;
790
- const dataState =
791
- checked === "indeterminate"
792
- ? "indeterminate"
793
- : checked
794
- ? "checked"
795
- : "unchecked";
796
-
797
- if (!forceMount && checked === false) return null;
798
-
799
- const indicatorProps = { ...rest, "data-state": dataState };
800
-
801
- if (asChild) {
802
- return <Slot {...indicatorProps}>{children}</Slot>;
803
- }
804
-
805
- return <span {...indicatorProps}>{children}</span>;
806
- }
807
-
808
- /** @internal */
809
- ContextMenuItemIndicator.displayName = "ContextMenuItemIndicator";
810
-
811
- /**
812
- * A single-selection group of menu items. Children must be
813
- * {@link ContextMenuRadioItem | `ContextMenu.RadioItem`} elements. Renders a
814
- * `<li role="group">` wrapping `<ul role="none">`.
815
- *
816
- * Owns the selected value: uncontrolled via
817
- * {@link ContextMenuRadioGroupUncontrolledProps.defaultValue | `defaultValue`},
818
- * or controlled via
819
- * {@link ContextMenuRadioGroupControlledProps.value | `value`} +
820
- * {@link ContextMenuRadioGroupControlledProps.onValueChange | `onValueChange`}.
821
- *
822
- * @extends HTMLLIElement
823
- *
824
- * @example
825
- * ```tsx
826
- * <ContextMenu.RadioGroup defaultValue="system">
827
- * <ContextMenu.RadioItem value="light">Light</ContextMenu.RadioItem>
828
- * <ContextMenu.RadioItem value="dark">Dark</ContextMenu.RadioItem>
829
- * <ContextMenu.RadioItem value="system">Match system</ContextMenu.RadioItem>
830
- * </ContextMenu.RadioGroup>
831
- * ```
832
- */
833
- export function ContextMenuRadioGroup({
834
- defaultValue,
835
- value: controlledValue,
836
- onValueChange,
837
- children,
838
- asChild = false,
839
- ...rest
840
- }: ContextMenuRadioGroupProps): ReactElement {
841
- const { value, select } = useRadioGroupRoot({
842
- defaultValue,
843
- value: controlledValue,
844
- onValueChange,
845
- });
846
- const contextValue = useMemo(() => ({ value, select }), [value, select]);
847
- const groupProps = { ...rest, role: "group" as const };
848
-
849
- return (
850
- <ContextMenuRadioGroupContext.Provider value={contextValue}>
851
- {asChild ? (
852
- <Slot {...groupProps}>{children}</Slot>
853
- ) : (
854
- <li {...groupProps}>
855
- <ul role="none">{children}</ul>
856
- </li>
857
- )}
858
- </ContextMenuRadioGroupContext.Provider>
859
- );
860
- }
861
-
862
- /** @internal */
863
- ContextMenuRadioGroup.displayName = "ContextMenuRadioGroup";
864
-
865
- /**
866
- * A single radio choice. Must be rendered inside a {@link ContextMenuRadioGroup |
867
- * `ContextMenu.RadioGroup`}; rendering it outside one throws a descriptive
868
- * error.
869
- *
870
- * Renders a `<li role="menuitemradio">` with `aria-checked` reflecting whether
871
- * this item's `value` matches the group's active value.
872
- *
873
- * Activation (click) selects this item, updating the group's value, then fires
874
- * {@link ContextMenuRadioItemProps.onSelect | `onSelect`} with a cancellable
875
- * `Event`. Call `event.preventDefault()` to keep the menu open.
876
- *
877
- * Disabled items receive `aria-disabled="true"` and no-op on activation.
878
- *
879
- * @extends HTMLLIElement
880
- *
881
- * @example
882
- * ```tsx
883
- * <ContextMenu.RadioItem value="dark">
884
- * <ContextMenu.ItemIndicator><DotIcon /></ContextMenu.ItemIndicator>
885
- * Dark
886
- * </ContextMenu.RadioItem>
887
- * ```
888
- */
889
- export function ContextMenuRadioItem({
890
- children,
891
- onClick,
892
- onSelect,
893
- disabled,
894
- value: itemValue,
895
- asChild = false,
896
- ...rest
897
- }: ContextMenuRadioItemProps): ReactElement {
898
- const { setOpen } = useContextMenuContext();
899
- const closeSiblingSub = useCloseSiblingSub();
900
- const [highlighted, setHighlighted] = useState(false);
901
- const group = useContext(ContextMenuRadioGroupContext);
902
- if (!group) {
903
- throw new Error(
904
- "ContextMenu.RadioItem must be rendered inside a <ContextMenu.RadioGroup>.",
905
- );
906
- }
907
- const checked = group.value === itemValue;
908
-
909
- const handleClick = () => {
910
- if (disabled) return;
911
- group.select(itemValue);
912
- const event = new Event("contextmenu.select", { cancelable: true });
913
- onSelect?.(event);
914
- if (!event.defaultPrevented) {
915
- setOpen(false);
916
- }
917
- };
918
-
919
- const itemProps = {
920
- ...rest,
921
- role: "menuitemradio" as const,
922
- tabIndex: -1,
923
- "aria-checked": checked,
924
- "aria-disabled": disabled || undefined,
925
- "data-highlighted": highlighted ? "" : undefined,
926
- onClick: composeEventHandlers(onClick, handleClick),
927
- onMouseEnter: composeEventHandlers(rest.onMouseEnter, () => {
928
- setHighlighted(true);
929
- closeSiblingSub();
930
- }),
931
- onMouseLeave: composeEventHandlers(rest.onMouseLeave, () =>
932
- setHighlighted(false),
933
- ),
934
- };
935
-
936
- const indicatorContextValue = useMemo(() => ({ checked }), [checked]);
937
- const content = asChild ? (
938
- <Slot {...itemProps}>{children}</Slot>
939
- ) : (
940
- <li {...itemProps}>{children}</li>
941
- );
942
-
943
- return (
944
- <ContextMenuItemIndicatorContext.Provider value={indicatorContextValue}>
945
- {content}
946
- </ContextMenuItemIndicatorContext.Provider>
947
- );
948
- }
949
-
950
- /** @internal */
951
- ContextMenuRadioItem.displayName = "ContextMenuRadioItem";
952
-
953
- /**
954
- * A submenu boundary. Wrap a {@link ContextMenuSubTrigger | `ContextMenu.SubTrigger`}
955
- * and its {@link ContextMenuSubContent | `ContextMenu.SubContent`} in a
956
- * `ContextMenu.Sub` to establish an independent open state for the nested
957
- * menu. Supports uncontrolled (`defaultOpen`) and controlled (`open` +
958
- * `onOpenChange`) modes.
959
- *
960
- * Renders no DOM of its own — no extended host element — it is purely a
961
- * context boundary around the SubTrigger / SubContent pair.
962
- *
963
- * @example
964
- * ```tsx
965
- * <ContextMenu.Sub>
966
- * <ContextMenu.SubTrigger>Share</ContextMenu.SubTrigger>
967
- * <ContextMenu.SubContent>
968
- * <ContextMenu.Item>Email</ContextMenu.Item>
969
- * <ContextMenu.Item>Copy link</ContextMenu.Item>
970
- * </ContextMenu.SubContent>
971
- * </ContextMenu.Sub>
972
- * ```
973
- */
974
- export function ContextMenuSub({
975
- defaultOpen,
976
- open: controlledOpen,
977
- onOpenChange,
978
- children,
979
- }: ContextMenuSubProps): ReactElement {
980
- const contentId = useId();
981
- const triggerRef = useRef<HTMLLIElement | null>(null);
982
- const [open, setOpenBase] = useControllableState<boolean>(
983
- controlledOpen,
984
- defaultOpen ?? false,
985
- onOpenChange,
986
- );
987
- const openRef = useRef(open);
988
- useEffect(() => {
989
- openRef.current = open;
990
- });
991
- const setOpen = useCallback(
992
- (next: boolean) => {
993
- if (openRef.current === next) return;
994
- openRef.current = next;
995
- setOpenBase(next);
996
- },
997
- [setOpenBase],
998
- );
999
- const contextValue = useMemo(
1000
- () => ({ open, setOpen, contentId, triggerRef }),
1001
- [open, setOpen, contentId],
1002
- );
1003
-
1004
- // Register with the enclosing Content/SubContent so sibling items can close
1005
- // this sub on hover (mirroring the keyboard behaviour where focus returning
1006
- // to the parent dismisses it). If another sibling sub is already
1007
- // registered as open, close it first so a hover-to-open transition onto our
1008
- // SubTrigger supplants the prior sub rather than stacking it.
1009
- const parentContent = useContext(ContextMenuContentContext);
1010
- useEffect(() => {
1011
- if (!open || !parentContent) return;
1012
- const close = () => setOpen(false);
1013
- const prev = parentContent.closeOpenSubRef.current;
1014
- if (prev && prev !== close) prev();
1015
- parentContent.closeOpenSubRef.current = close;
1016
- return () => {
1017
- if (parentContent.closeOpenSubRef.current === close) {
1018
- parentContent.closeOpenSubRef.current = null;
1019
- }
1020
- };
1021
- }, [open, parentContent, setOpen]);
1022
-
1023
- return (
1024
- <ContextMenuSubContext.Provider value={contextValue}>
1025
- {children}
1026
- </ContextMenuSubContext.Provider>
1027
- );
1028
- }
1029
-
1030
- /** @internal */
1031
- ContextMenuSub.displayName = "ContextMenuSub";
1032
-
1033
- /**
1034
- * The submenu trigger. Must be rendered inside a {@link ContextMenuSub |
1035
- * `ContextMenu.Sub`}.
1036
- *
1037
- * Renders a `<li role="menuitem">` with `aria-haspopup="menu"`,
1038
- * `aria-expanded`, and `aria-controls` wiring it to the sibling
1039
- * {@link ContextMenuSubContent | `ContextMenu.SubContent`}.
1040
- *
1041
- * Opens the submenu on click, the inline-forward arrow key, or pointer
1042
- * hover. The open key follows the resolved reading direction —
1043
- * `ArrowRight` in `"ltr"`, `ArrowLeft` in `"rtl"`. Disabled triggers
1044
- * ignore both click and the open arrow key. `data-highlighted=""` is
1045
- * present while hovered or while its submenu is open.
1046
- *
1047
- * @extends HTMLLIElement
1048
- *
1049
- * @example
1050
- * ```tsx
1051
- * <ContextMenu.Sub>
1052
- * <ContextMenu.SubTrigger>More tools</ContextMenu.SubTrigger>
1053
- * <ContextMenu.SubContent>...</ContextMenu.SubContent>
1054
- * </ContextMenu.Sub>
1055
- * ```
1056
- */
1057
- export function ContextMenuSubTrigger({
1058
- children,
1059
- onClick,
1060
- onKeyDown,
1061
- disabled,
1062
- asChild = false,
1063
- ...rest
1064
- }: ContextMenuSubTriggerProps): ReactElement {
1065
- const sub = useContextMenuSubContext();
1066
- const { dir } = useContextMenuContext();
1067
- const openKey = dir === "rtl" ? "ArrowLeft" : "ArrowRight";
1068
- const closeSiblingSub = useCloseSiblingSub();
1069
- const [hovered, setHovered] = useState(false);
1070
- const toggle = () => {
1071
- if (disabled) return;
1072
- sub.setOpen(true);
1073
- };
1074
- const handleKeyDown = (event: React.KeyboardEvent<HTMLLIElement>) => {
1075
- if (disabled) return;
1076
- if (event.key !== openKey) return;
1077
- event.preventDefault();
1078
- event.stopPropagation();
1079
- sub.setOpen(true);
1080
- };
1081
- const subTriggerProps = {
1082
- ...rest,
1083
- ref: sub.triggerRef,
1084
- role: "menuitem" as const,
1085
- tabIndex: -1,
1086
- "aria-haspopup": "menu" as const,
1087
- "aria-expanded": sub.open,
1088
- "aria-controls": sub.contentId,
1089
- "aria-disabled": disabled || undefined,
1090
- "data-highlighted": hovered || sub.open ? "" : undefined,
1091
- onClick: composeEventHandlers(onClick, toggle),
1092
- onKeyDown: composeEventHandlers(onKeyDown, handleKeyDown),
1093
- onMouseEnter: composeEventHandlers(rest.onMouseEnter, () => {
1094
- setHovered(true);
1095
- closeSiblingSub();
1096
- if (!disabled) sub.setOpen(true);
1097
- }),
1098
- onMouseLeave: composeEventHandlers(rest.onMouseLeave, () =>
1099
- setHovered(false),
1100
- ),
1101
- };
1102
- if (asChild) {
1103
- return <Slot {...subTriggerProps}>{children}</Slot>;
1104
- }
1105
- return <li {...subTriggerProps}>{children}</li>;
1106
- }
1107
-
1108
- /** @internal */
1109
- ContextMenuSubTrigger.displayName = "ContextMenuSubTrigger";
1110
-
1111
- /**
1112
- * The submenu panel. Must be rendered inside a {@link ContextMenuSub |
1113
- * `ContextMenu.Sub`}.
1114
- *
1115
- * Renders a `<menu role="menu" popover="auto">` by default. When the submenu
1116
- * opens, focus moves to its first enabled item. The inline-backward arrow
1117
- * key closes the submenu and returns focus to the SubTrigger —
1118
- * `ArrowLeft` in `"ltr"`, `ArrowRight` in `"rtl"`.
1119
- *
1120
- * Unlike {@link ContextMenuContent | `ContextMenu.Content`}, the submenu
1121
- * panel uses `popover="auto"` — it is opened programmatically and nests
1122
- * inside the already-open manual root popover.
1123
- *
1124
- * @extends HTMLMenuElement
1125
- *
1126
- * @example
1127
- * ```tsx
1128
- * <ContextMenu.SubContent>
1129
- * <ContextMenu.Item>Email</ContextMenu.Item>
1130
- * <ContextMenu.Item>Copy link</ContextMenu.Item>
1131
- * </ContextMenu.SubContent>
1132
- * ```
1133
- */
1134
- export function ContextMenuSubContent({
1135
- children,
1136
- onKeyDown,
1137
- asChild = false,
1138
- ...rest
1139
- }: ContextMenuSubContentProps): ReactElement {
1140
- const sub = useContextMenuSubContext();
1141
- const { dir } = useContextMenuContext();
1142
- const closeKey = dir === "rtl" ? "ArrowRight" : "ArrowLeft";
1143
- const menuRef = useRef<HTMLMenuElement | null>(null);
1144
-
1145
- useEffect(() => {
1146
- const menu = menuRef.current!;
1147
- if (sub.open) {
1148
- menu.showPopover();
1149
- const firstItem = menu.querySelector<HTMLElement>(MENUITEM_SELECTOR);
1150
- firstItem?.focus();
1151
- } else {
1152
- try {
1153
- menu.hidePopover();
1154
- } catch {
1155
- // already hidden — no-op
1156
- }
1157
- }
1158
- }, [sub.open]);
1159
-
1160
- useEffect(() => {
1161
- const menu = menuRef.current!;
1162
- const handleToggle = (event: Event) => {
1163
- if ((event as ToggleEvent).newState === "closed") sub.setOpen(false);
1164
- };
1165
- menu.addEventListener("toggle", handleToggle);
1166
- return () => menu.removeEventListener("toggle", handleToggle);
1167
- }, [sub.setOpen]);
1168
-
1169
- const handleKeyDown = (event: React.KeyboardEvent<HTMLMenuElement>) => {
1170
- if (event.key !== closeKey) return;
1171
- event.preventDefault();
1172
- event.stopPropagation();
1173
- sub.setOpen(false);
1174
- sub.triggerRef.current?.focus();
1175
- };
1176
-
1177
- const closeOpenSubRef = useRef<(() => void) | null>(null);
1178
- const contentContextValue = useMemo(() => ({ closeOpenSubRef }), []);
1179
-
1180
- // Cascade-close — see the matching effect on ContextMenuContent.
1181
- useEffect(() => {
1182
- if (!sub.open) closeOpenSubRef.current?.();
1183
- }, [sub.open]);
1184
-
1185
- const subContentProps = {
1186
- ...rest,
1187
- ref: menuRef,
1188
- id: sub.contentId,
1189
- role: "menu" as const,
1190
- popover: "auto" as const,
1191
- onKeyDown: composeEventHandlers(onKeyDown, handleKeyDown),
1192
- };
1193
-
1194
- return (
1195
- <ContextMenuContentContext.Provider value={contentContextValue}>
1196
- {asChild ? (
1197
- <Slot {...subContentProps}>{children}</Slot>
1198
- ) : (
1199
- <menu {...subContentProps}>{children}</menu>
1200
- )}
1201
- </ContextMenuContentContext.Provider>
1202
- );
1203
- }
1204
-
1205
- /** @internal */
1206
- ContextMenuSubContent.displayName = "ContextMenuSubContent";
1207
-
1208
- /** Type of the {@link ContextMenu} compound: the root callable plus its attached sub-components. */
1209
- export type TContextMenuCompound = typeof ContextMenuRoot & {
1210
- Root: typeof ContextMenuRoot;
1211
- Trigger: typeof ContextMenuTrigger;
1212
- Content: typeof ContextMenuContent;
1213
- Item: typeof ContextMenuItem;
1214
- Separator: typeof ContextMenuSeparator;
1215
- Group: typeof ContextMenuGroup;
1216
- Label: typeof ContextMenuLabel;
1217
- CheckboxItem: typeof ContextMenuCheckboxItem;
1218
- ItemIndicator: typeof ContextMenuItemIndicator;
1219
- RadioGroup: typeof ContextMenuRadioGroup;
1220
- RadioItem: typeof ContextMenuRadioItem;
1221
- Sub: typeof ContextMenuSub;
1222
- SubTrigger: typeof ContextMenuSubTrigger;
1223
- SubContent: typeof ContextMenuSubContent;
1224
- };
1225
-
1226
- /**
1227
- * Headless, accessible **ContextMenu** — a compound component implementing the
1228
- * [WAI-ARIA menu pattern](https://www.w3.org/WAI/ARIA/apg/patterns/menu/) opened
1229
- * by a right-click (or long-press) on its trigger, with submenus, checkbox and
1230
- * radio items, groups, labels and separators. Zero styles ship.
1231
- *
1232
- * `ContextMenu` is both callable (it is an alias of
1233
- * {@link ContextMenuRoot | `ContextMenu.Root`}) and carries its
1234
- * sub-components as static properties. Prefer the namespaced form in
1235
- * application code for readability and grep-ability:
1236
- *
1237
- * - {@link ContextMenuRoot | `ContextMenu.Root`} — open-state owner and direction provider (no DOM).
1238
- * - {@link ContextMenuTrigger | `ContextMenu.Trigger`} — the right-click target (`<span>`).
1239
- * - {@link ContextMenuContent | `ContextMenu.Content`} — the `role="menu"` popover panel.
1240
- * - {@link ContextMenuItem | `ContextMenu.Item`} — a `role="menuitem"` row.
1241
- * - {@link ContextMenuCheckboxItem | `ContextMenu.CheckboxItem`} — a tri-state `role="menuitemcheckbox"`.
1242
- * - {@link ContextMenuRadioGroup | `ContextMenu.RadioGroup`} — single-selection container.
1243
- * - {@link ContextMenuRadioItem | `ContextMenu.RadioItem`} — a `role="menuitemradio"` choice.
1244
- * - {@link ContextMenuItemIndicator | `ContextMenu.ItemIndicator`} — the checked-state mark.
1245
- * - {@link ContextMenuGroup | `ContextMenu.Group`} — a `role="group"` of related items.
1246
- * - {@link ContextMenuLabel | `ContextMenu.Label`} — a non-interactive group caption.
1247
- * - {@link ContextMenuSeparator | `ContextMenu.Separator`} — a `role="separator"` divider.
1248
- * - {@link ContextMenuSub | `ContextMenu.Sub`} — a submenu boundary (no DOM).
1249
- * - {@link ContextMenuSubTrigger | `ContextMenu.SubTrigger`} — opens a submenu.
1250
- * - {@link ContextMenuSubContent | `ContextMenu.SubContent`} — the submenu panel.
1251
- *
1252
- * @example Minimal usage
1253
- * ```tsx
1254
- * import { ContextMenu } from "@primitiv-ui/react";
1255
- *
1256
- * <ContextMenu.Root>
1257
- * <ContextMenu.Trigger>
1258
- * <div className="canvas">Right-click anywhere</div>
1259
- * </ContextMenu.Trigger>
1260
- * <ContextMenu.Content>
1261
- * <ContextMenu.Item onSelect={paste}>Paste</ContextMenu.Item>
1262
- * <ContextMenu.Separator />
1263
- * <ContextMenu.Item disabled>Archive</ContextMenu.Item>
1264
- * </ContextMenu.Content>
1265
- * </ContextMenu.Root>
1266
- * ```
1267
- *
1268
- * @see {@link ContextMenuRoot} for state modes and reading direction.
1269
- * @see {@link ContextMenuContent} for the popover, positioning, and keyboard model.
1270
- * @see {@link ContextMenuCheckboxItem} and {@link ContextMenuRadioGroup} for stateful items.
1271
- * @see {@link ContextMenuSub} for submenus.
1272
- */
1273
- const ContextMenuCompound: TContextMenuCompound = Object.assign(
1274
- ContextMenuRoot,
1275
- {
1276
- Root: ContextMenuRoot,
1277
- Trigger: ContextMenuTrigger,
1278
- Content: ContextMenuContent,
1279
- Item: ContextMenuItem,
1280
- Separator: ContextMenuSeparator,
1281
- Group: ContextMenuGroup,
1282
- Label: ContextMenuLabel,
1283
- CheckboxItem: ContextMenuCheckboxItem,
1284
- ItemIndicator: ContextMenuItemIndicator,
1285
- RadioGroup: ContextMenuRadioGroup,
1286
- RadioItem: ContextMenuRadioItem,
1287
- Sub: ContextMenuSub,
1288
- SubTrigger: ContextMenuSubTrigger,
1289
- SubContent: ContextMenuSubContent,
1290
- },
1291
- );
1292
-
1293
- /** @internal */
1294
- ContextMenuCompound.displayName = "ContextMenu";
1295
-
1296
- export { ContextMenuCompound as ContextMenu };