@primitiv-ui/react 0.1.38 → 0.1.40

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
@@ -0,0 +1,34 @@
1
+ "use client";
2
+ import { createContext } from "react";
3
+ import { createStrictContext } from "../utils/index.js";
4
+ const navigationMenuContextPair = createStrictContext("Component must be rendered as a child of NavigationMenu.Root", "NavigationMenuContext");
5
+ /** Strict React context carrying the {@link NavigationMenuContextValue} from
6
+ * `NavigationMenu.Root` to its descendants. `null` outside a Root. */
7
+ export const NavigationMenuContext = navigationMenuContextPair[0];
8
+ /** Reads the {@link NavigationMenuContextValue}; throws outside a
9
+ * `NavigationMenu.Root`. */
10
+ export const useNavigationMenuContext = navigationMenuContextPair[1];
11
+ /** Provider for {@link NavigationMenuContext}, used by `NavigationMenu.Root`. */
12
+ const NavigationMenuProvider = NavigationMenuContext.Provider;
13
+ export { NavigationMenuProvider };
14
+ const navigationMenuItemContextPair = createStrictContext("Component must be rendered as a child of NavigationMenu.Item", "NavigationMenuItemContext");
15
+ /** Strict React context carrying the {@link NavigationMenuItemContextValue}
16
+ * from `NavigationMenu.Item` to its Trigger and Content. `null` outside an
17
+ * Item. */
18
+ export const NavigationMenuItemContext = navigationMenuItemContextPair[0];
19
+ /** Reads the {@link NavigationMenuItemContextValue}; throws outside a
20
+ * `NavigationMenu.Item`. */
21
+ export const useNavigationMenuItemContext = navigationMenuItemContextPair[1];
22
+ /** Provider for {@link NavigationMenuItemContext}, used by
23
+ * `NavigationMenu.Item`. */
24
+ const NavigationMenuItemProvider = NavigationMenuItemContext.Provider;
25
+ export { NavigationMenuItemProvider };
26
+ /** Marks its subtree as being inside a `NavigationMenu.Content` panel.
27
+ * Deliberately **not** strict: the default `false` is the meaningful "I am a
28
+ * top-level entry" answer, so a Link outside any panel must read it without
29
+ * throwing. */
30
+ export const NavigationMenuPanelContext = createContext(false);
31
+ /** Provider for {@link NavigationMenuPanelContext}, used by
32
+ * `NavigationMenu.Content`. */
33
+ const NavigationMenuPanelProvider = NavigationMenuPanelContext.Provider;
34
+ export { NavigationMenuPanelProvider };
@@ -0,0 +1,4 @@
1
+ /** Focusable descendants a panel can hand focus to when the keyboard opens it
2
+ * with the enter-panel arrow. Deliberately narrow: nav panels hold links and
3
+ * the occasional button, and the first of those is the useful landing spot. */
4
+ export declare const PANEL_FOCUSABLE_SELECTOR = "a[href], button:not([disabled]), [tabindex]:not([tabindex=\"-1\"])";
@@ -0,0 +1,5 @@
1
+ "use client";
2
+ /** Focusable descendants a panel can hand focus to when the keyboard opens it
3
+ * with the enter-panel arrow. Deliberately narrow: nav panels hold links and
4
+ * the occasional button, and the first of those is the useful landing spot. */
5
+ export const PANEL_FOCUSABLE_SELECTOR = 'a[href], button:not([disabled]), [tabindex]:not([tabindex="-1"])';
@@ -0,0 +1,7 @@
1
+ export * from "./useNavigationMenuEntry.js";
2
+ export * from "./useNavigationMenuIndicator.js";
3
+ export * from "./useNavigationMenuLink.js";
4
+ export * from "./useNavigationMenuRoot.js";
5
+ export * from "./useNavigationMenuTopLevelEntry.js";
6
+ export * from "./useNavigationMenuTrigger.js";
7
+ export * from "./useNavigationMenuViewport.js";
@@ -0,0 +1,7 @@
1
+ export * from "./useNavigationMenuEntry.js";
2
+ export * from "./useNavigationMenuIndicator.js";
3
+ export * from "./useNavigationMenuLink.js";
4
+ export * from "./useNavigationMenuRoot.js";
5
+ export * from "./useNavigationMenuTopLevelEntry.js";
6
+ export * from "./useNavigationMenuTrigger.js";
7
+ export * from "./useNavigationMenuViewport.js";
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Resolves everything a Trigger and its Content both need: the entry's value
3
+ * (from the enclosing Item), the paired ids, and whether this entry is the
4
+ * open one. Keeping it in one place is what guarantees the two sides agree on
5
+ * the ids they cross-reference.
6
+ */
7
+ export declare function useNavigationMenuEntry(): {
8
+ value: string;
9
+ triggerId: string;
10
+ panelId: string;
11
+ open: boolean;
12
+ state: "open" | "closed";
13
+ };
@@ -0,0 +1,21 @@
1
+ "use client";
2
+ import { useNavigationMenuContext, useNavigationMenuItemContext, } from "../NavigationMenuContext.js";
3
+ import { getTriggerAndPanelIds } from "../utils.js";
4
+ /**
5
+ * Resolves everything a Trigger and its Content both need: the entry's value
6
+ * (from the enclosing Item), the paired ids, and whether this entry is the
7
+ * open one. Keeping it in one place is what guarantees the two sides agree on
8
+ * the ids they cross-reference.
9
+ */
10
+ export function useNavigationMenuEntry() {
11
+ const { navigationMenuId, openValue } = useNavigationMenuContext();
12
+ const { value: itemValue } = useNavigationMenuItemContext();
13
+ if (itemValue === undefined) {
14
+ throw new Error("NavigationMenu.Trigger and NavigationMenu.Content require a `value` on their NavigationMenu.Item. " +
15
+ "Omit the value only for a plain link entry, which has no panel to open.");
16
+ }
17
+ const value = itemValue;
18
+ const { triggerId, panelId } = getTriggerAndPanelIds(navigationMenuId, value);
19
+ const open = openValue !== "" && openValue === value;
20
+ return { value, triggerId, panelId, open, state: open ? "open" : "closed" };
21
+ }
@@ -0,0 +1,16 @@
1
+ import type { CSSProperties } from "react";
2
+ /**
3
+ * Measures the open trigger and hands back the geometry as custom properties.
4
+ *
5
+ * The library ships no styles, so the Indicator can't position itself — but
6
+ * only it can know *where* the open trigger is. Publishing the measurement as
7
+ * `--primitiv-navigation-menu-indicator-position` / `-size` splits that
8
+ * correctly: the component measures, the stylesheet decides whether that means
9
+ * `translate`, `left`, a border, or nothing at all.
10
+ */
11
+ export declare function useNavigationMenuIndicator(): {
12
+ open: boolean;
13
+ openValue: string;
14
+ orientation: "horizontal" | "vertical";
15
+ style: CSSProperties;
16
+ };
@@ -0,0 +1,53 @@
1
+ "use client";
2
+ import { useCallback, useEffect, useState } from "react";
3
+ import { useNavigationMenuContext } from "../NavigationMenuContext.js";
4
+ import { getTriggerAndPanelIds } from "../utils.js";
5
+ /**
6
+ * Measures the open trigger and hands back the geometry as custom properties.
7
+ *
8
+ * The library ships no styles, so the Indicator can't position itself — but
9
+ * only it can know *where* the open trigger is. Publishing the measurement as
10
+ * `--primitiv-navigation-menu-indicator-position` / `-size` splits that
11
+ * correctly: the component measures, the stylesheet decides whether that means
12
+ * `translate`, `left`, a border, or nothing at all.
13
+ */
14
+ export function useNavigationMenuIndicator() {
15
+ const { orientation, openValue, navigationMenuId } = useNavigationMenuContext();
16
+ const open = openValue !== "";
17
+ const [geometry, setGeometry] = useState(null);
18
+ const measure = useCallback(() => {
19
+ // Closed and open-but-unrendered are the same measurement problem, so they
20
+ // share one path: `openValue === ""` derives a trigger id no element
21
+ // carries, and the missing-element branch below clears the geometry.
22
+ const { triggerId } = getTriggerAndPanelIds(navigationMenuId, openValue);
23
+ const trigger = document.getElementById(triggerId);
24
+ if (!trigger) {
25
+ setGeometry(null);
26
+ return;
27
+ }
28
+ setGeometry(orientation === "horizontal"
29
+ ? { position: trigger.offsetLeft, size: trigger.offsetWidth }
30
+ : { position: trigger.offsetTop, size: trigger.offsetHeight });
31
+ }, [navigationMenuId, openValue, orientation]);
32
+ useEffect(() => {
33
+ measure();
34
+ }, [measure]);
35
+ // Offsets are layout-dependent, so a reflow invalidates them. Re-measuring on
36
+ // resize is what stops the indicator drifting off its trigger after the nav
37
+ // rewraps.
38
+ useEffect(() => {
39
+ window.addEventListener("resize", measure);
40
+ return () => window.removeEventListener("resize", measure);
41
+ }, [measure]);
42
+ // An `undefined` value is dropped by React, so a closed indicator simply
43
+ // carries no geometry rather than a stale or zeroed one.
44
+ const style = {
45
+ "--primitiv-navigation-menu-indicator-position": geometry
46
+ ? `${geometry.position}px`
47
+ : undefined,
48
+ "--primitiv-navigation-menu-indicator-size": geometry
49
+ ? `${geometry.size}px`
50
+ : undefined,
51
+ };
52
+ return { open, openValue, orientation, style };
53
+ }
@@ -0,0 +1,8 @@
1
+ import type { KeyboardEvent, MouseEvent, PointerEvent, RefObject } from "react";
2
+ import type { NavigationMenuLinkProps } from "../types.js";
3
+ export declare function useNavigationMenuLink({ onKeyDown, onClick, onPointerEnter, }: Pick<NavigationMenuLinkProps, "onKeyDown" | "onClick" | "onPointerEnter">): {
4
+ linkRef: RefObject<HTMLAnchorElement | null>;
5
+ handleKeyDown: (event: KeyboardEvent<HTMLAnchorElement>) => void;
6
+ handleClick: (event: MouseEvent<HTMLAnchorElement>) => void;
7
+ handlePointerEnter: (event: PointerEvent<HTMLAnchorElement>) => void;
8
+ };
@@ -0,0 +1,37 @@
1
+ "use client";
2
+ import { useContext } from "react";
3
+ import { composeEventHandlers } from "../../Slot/index.js";
4
+ import { NavigationMenuPanelContext, useNavigationMenuContext, } from "../NavigationMenuContext.js";
5
+ import { useNavigationMenuTopLevelEntry } from "./useNavigationMenuTopLevelEntry.js";
6
+ export function useNavigationMenuLink({ onKeyDown, onClick, onPointerEnter, }) {
7
+ const { setOpenValue, cancelOpen, openOnHover } = useNavigationMenuContext();
8
+ // A link directly inside an Item is a top-level entry and joins the
9
+ // arrow-key travel order; a link inside a Content panel is reached by Tab
10
+ // instead, so it must stay out of that order.
11
+ const insidePanel = useContext(NavigationMenuPanelContext);
12
+ const { entryRef: linkRef, handleKeyDown: handleArrowKeyDown } = useNavigationMenuTopLevelEntry(!insidePanel);
13
+ const handleKeyDown = composeEventHandlers(onKeyDown, handleArrowKeyDown);
14
+ // Following a link ends the interaction, so the menu closes — whether the
15
+ // link was in a panel or a top-level entry alongside one. Leaving a panel
16
+ // hanging open over the page the user just navigated to is the bug this
17
+ // avoids.
18
+ const handleClick = composeEventHandlers(onClick, () => {
19
+ cancelOpen();
20
+ setOpenValue("");
21
+ });
22
+ // Hovering a top-level link dismisses whatever is open, so travelling along the
23
+ // bar past a plain entry behaves like travelling onto another trigger. Without
24
+ // this, moving from an open trigger onto a link beside it leaves that panel
25
+ // hanging over the page with the pointer nowhere near it.
26
+ //
27
+ // Panel links are exempt for the obvious reason: hovering a row inside a panel
28
+ // must not close the panel it lives in. And it follows `openOnHover`, so a
29
+ // click-only nav stays click-only in both directions.
30
+ const handlePointerEnter = composeEventHandlers(onPointerEnter, () => {
31
+ if (insidePanel || !openOnHover)
32
+ return;
33
+ cancelOpen();
34
+ setOpenValue("");
35
+ });
36
+ return { linkRef, handleKeyDown, handleClick, handlePointerEnter };
37
+ }
@@ -0,0 +1,26 @@
1
+ import type { CSSProperties, FocusEvent, KeyboardEvent } from "react";
2
+ import type { NavigationMenuContextValue, NavigationMenuOrientation, NavigationMenuReadingDirection, NavigationMenuRootProps } from "../types.js";
3
+ /** The presentation props arrive **resolved**: `NavigationMenu.Root` applies
4
+ * its own documented defaults (and inherits `dir` from `DirectionProvider`)
5
+ * before calling the hook, so they are required here rather than defaulted a
6
+ * second time — one set of defaults, in the place consumers read them from. */
7
+ type UseNavigationMenuRootArgs = {
8
+ orientation: NavigationMenuOrientation;
9
+ dir: NavigationMenuReadingDirection;
10
+ openOnHover: boolean;
11
+ delayDuration: number;
12
+ closeDelay: number;
13
+ } & Pick<NavigationMenuRootProps, "defaultValue" | "value" | "onValueChange">;
14
+ export declare function useNavigationMenuRoot({ orientation, dir, openOnHover, delayDuration, closeDelay, defaultValue, value, onValueChange, }: UseNavigationMenuRootArgs): {
15
+ contextValue: NavigationMenuContextValue;
16
+ cancelClose: () => void;
17
+ closeWithDelay: () => void;
18
+ closeOnFocusOutside: (event: FocusEvent<HTMLElement>) => void;
19
+ handleKeyDown: (event: KeyboardEvent<HTMLElement>) => void;
20
+ /** Publishes the open entry's trigger `anchor-name` as
21
+ * `--primitiv-navigation-menu-active-trigger-anchor`, so the shared
22
+ * Viewport's `position-anchor` can target whichever trigger is open. Unset
23
+ * (dropped by React) while nothing is open. */
24
+ style: CSSProperties;
25
+ };
26
+ export {};
@@ -0,0 +1,202 @@
1
+ "use client";
2
+ import { useCallback, useEffect, useId, useMemo, useRef, useState } from "react";
3
+ import { useCollection, useControllableState } from "../../hooks/index.js";
4
+ import { getTriggerAnchorName, getTriggerAndPanelIds } from "../utils.js";
5
+ export function useNavigationMenuRoot({ orientation, dir, openOnHover, delayDuration, closeDelay, defaultValue, value, onValueChange, }) {
6
+ const navigationMenuId = useId();
7
+ const [openValue, setOpenValue] = useControllableState(value, defaultValue ?? "", onValueChange);
8
+ // What was open before the current value, so a panel can tell which way the
9
+ // pointer travelled. Adjusted during render — the pattern React documents for
10
+ // deriving state from a changed input — rather than in an effect: an effect
11
+ // lands a frame late, by which time the panel has already begun animating with
12
+ // no direction to animate in.
13
+ const [trackedValue, setTrackedValue] = useState(openValue);
14
+ // The seed is only ever fed to `itemValues.indexOf()`, which rejects "" and any
15
+ // other unregistered string identically — so its value is unobservable. It has to
16
+ // be "" rather than `openValue`, though: seeding it with the open value would give
17
+ // a nav mounted with a `defaultValue` a spurious travel direction on first paint.
18
+ // Stryker disable next-line StringLiteral: equivalent — see above.
19
+ const [previousValue, setPreviousValue] = useState("");
20
+ if (trackedValue !== openValue) {
21
+ setPreviousValue(trackedValue);
22
+ setTrackedValue(openValue);
23
+ }
24
+ const { register: registerEntry, itemsRef: entriesRef, keys: entryKeys, } = useCollection();
25
+ // A second registry, keyed by the Item's own `value`. The entry registry above
26
+ // can't serve this: it keys by a generated id because plain link entries join it
27
+ // too and have no value. Registration order is mount order, which for siblings is
28
+ // DOM order — so `itemValues` is the left-to-right order of the disclosure
29
+ // entries, which is what a panel needs to know which way it is travelling.
30
+ const { register: registerItem, itemsRef: itemElementsRef, keys: registeredValues, } = useCollection();
31
+ // Sorted by document position, not registration order. `useCollection` keys are
32
+ // insertion-ordered, which matches the DOM only while nothing changes: re-register
33
+ // an entry (a `value` that changes) and its key is appended, so the order silently
34
+ // stops describing the layout and panels slide the wrong way. Asking the DOM is the
35
+ // only source that cannot drift.
36
+ const itemValues = useMemo(() => [...registeredValues].sort((a, b) => {
37
+ // Non-null: `register` writes the element and the key in the same call, so a
38
+ // key present in `registeredValues` always has a live element in the map —
39
+ // the same invariant Tree's root relies on for its own registry reads.
40
+ const first = itemElementsRef.current.get(a);
41
+ const second = itemElementsRef.current.get(b);
42
+ return first.compareDocumentPosition(second) &
43
+ Node.DOCUMENT_POSITION_FOLLOWING
44
+ ? -1
45
+ : 1;
46
+ }), [registeredValues, itemElementsRef]);
47
+ const focusEntry = useCallback((key) => {
48
+ // `key` only ever arrives from `entryKeys`, and `useCollection`'s
49
+ // register() writes `entriesRef` and the `keys` state in the same call —
50
+ // so a key that reaches here always has a live element in the map.
51
+ // Stryker disable next-line OptionalChaining: unreachable given that invariant.
52
+ entriesRef.current.get(key)?.focus();
53
+ },
54
+ // `entriesRef` is a stable RefObject, so emptying this array yields the
55
+ // identical memoised function.
56
+ // Stryker disable next-line ArrayDeclaration: equivalent — stable dependency.
57
+ [entriesRef]);
58
+ // Held as state, not a ref, because Content has to re-render once the
59
+ // viewport exists in order to portal into it. The Viewport hands its element
60
+ // over in a ref callback, which React runs before paint — so the one commit
61
+ // where Content still renders in place never reaches the screen. `setViewport`
62
+ // *is* the registrar: it already has the ref-callback signature and a stable
63
+ // identity, so wrapping it would only add indirection.
64
+ const [viewport, setViewport] = useState(null);
65
+ // `undefined` rather than `null` for "no timer pending", because
66
+ // `clearTimeout(undefined)` is a spec'd no-op — cancelling is then one
67
+ // unconditional clear instead of a guarded one, with nothing to get wrong.
68
+ const openTimerRef = useRef(undefined);
69
+ const closeTimerRef = useRef(undefined);
70
+ // `openValue` is read inside callbacks that must not be re-created on every
71
+ // open/close — a fresh `openWithIntent` identity would re-run the Trigger's
72
+ // handlers. A ref keeps the reads current without widening the deps.
73
+ const openValueRef = useRef(openValue);
74
+ openValueRef.current = openValue;
75
+ const cancelOpen = useCallback(() => {
76
+ clearTimeout(openTimerRef.current);
77
+ openTimerRef.current = undefined;
78
+ },
79
+ // Stryker's only mutation of an empty dependency array is
80
+ // `["Stryker was here"]` — a string literal React compares `===`-equal on
81
+ // every render, so the memoised identity is unchanged either way.
82
+ // Stryker disable next-line ArrayDeclaration: equivalent — no dependency to freeze.
83
+ []);
84
+ const cancelClose = useCallback(() => {
85
+ clearTimeout(closeTimerRef.current);
86
+ closeTimerRef.current = undefined;
87
+ },
88
+ // Stryker disable next-line ArrayDeclaration: equivalent — no dependency to freeze (see cancelOpen).
89
+ []);
90
+ const openWithIntent = useCallback((next) => {
91
+ cancelClose();
92
+ cancelOpen();
93
+ // Once one panel is open the nav is already "active", so crossing to a
94
+ // sibling trigger swaps panels instantly — waiting again would feel
95
+ // broken. The delay only guards the first open.
96
+ if (openValueRef.current !== "" || delayDuration === 0) {
97
+ setOpenValue(next);
98
+ return;
99
+ }
100
+ openTimerRef.current = setTimeout(() => {
101
+ openTimerRef.current = undefined;
102
+ setOpenValue(next);
103
+ }, delayDuration);
104
+ }, [cancelClose, cancelOpen, delayDuration, setOpenValue]);
105
+ // Escape is handled once, at the `<nav>`, because it must work from anywhere
106
+ // inside the menu — including from a link deep in an open panel — and
107
+ // returning focus to the trigger is what stops the user being stranded on an
108
+ // element that just went `hidden`.
109
+ const closeAndRefocusTrigger = useCallback(() => {
110
+ const value = openValueRef.current;
111
+ if (value === "")
112
+ return;
113
+ cancelOpen();
114
+ const { triggerId } = getTriggerAndPanelIds(navigationMenuId, value);
115
+ document.getElementById(triggerId)?.focus();
116
+ setOpenValue("");
117
+ }, [cancelOpen, navigationMenuId, setOpenValue]);
118
+ const closeWithDelay = useCallback(() => {
119
+ cancelOpen();
120
+ closeTimerRef.current = setTimeout(() => {
121
+ closeTimerRef.current = undefined;
122
+ setOpenValue("");
123
+ }, closeDelay);
124
+ }, [cancelOpen, closeDelay, setOpenValue]);
125
+ // Keyboard focus leaving the `<nav>` entirely — Tab past the last entry, or
126
+ // into an unrelated element such as a second, independent NavigationMenu —
127
+ // means the open panel is no longer where focus is. Unlike Escape this
128
+ // doesn't refocus the trigger: focus already chose where it's going, and
129
+ // fighting that would break Tab order. `relatedTarget` is `null` for some
130
+ // focus transitions (e.g. the browser chrome); treated as "outside", the
131
+ // same call Carousel's own blur handler makes.
132
+ const closeOnFocusOutside = useCallback((event) => {
133
+ if (openValueRef.current === "")
134
+ return;
135
+ const next = event.relatedTarget;
136
+ if (next && event.currentTarget.contains(next))
137
+ return;
138
+ cancelOpen();
139
+ setOpenValue("");
140
+ }, [cancelOpen, setOpenValue]);
141
+ useEffect(() => () => {
142
+ cancelOpen();
143
+ cancelClose();
144
+ },
145
+ // Both are `useCallback(..., [])`, so their identities are fixed for the
146
+ // component's lifetime: emptying this array subscribes the cleanup exactly
147
+ // once either way.
148
+ // Stryker disable next-line ArrayDeclaration: equivalent — stable dependencies.
149
+ [cancelOpen, cancelClose]);
150
+ const contextValue = useMemo(() => ({
151
+ orientation,
152
+ dir,
153
+ navigationMenuId,
154
+ openValue,
155
+ previousValue,
156
+ setOpenValue,
157
+ openOnHover,
158
+ openWithIntent,
159
+ cancelOpen,
160
+ registerEntry,
161
+ entryKeys,
162
+ registerItem,
163
+ itemValues,
164
+ focusEntry,
165
+ viewport,
166
+ registerViewport: setViewport,
167
+ }), [
168
+ orientation,
169
+ dir,
170
+ navigationMenuId,
171
+ openValue,
172
+ previousValue,
173
+ setOpenValue,
174
+ openOnHover,
175
+ openWithIntent,
176
+ cancelOpen,
177
+ registerEntry,
178
+ entryKeys,
179
+ registerItem,
180
+ itemValues,
181
+ focusEntry,
182
+ viewport,
183
+ ]);
184
+ const handleKeyDown = useCallback((event) => {
185
+ if (event.key !== "Escape")
186
+ return;
187
+ closeAndRefocusTrigger();
188
+ }, [closeAndRefocusTrigger]);
189
+ const style = {
190
+ "--primitiv-navigation-menu-active-trigger-anchor": openValue === ""
191
+ ? undefined
192
+ : getTriggerAnchorName(getTriggerAndPanelIds(navigationMenuId, openValue).triggerId),
193
+ };
194
+ return {
195
+ contextValue,
196
+ cancelClose,
197
+ closeWithDelay,
198
+ closeOnFocusOutside,
199
+ handleKeyDown,
200
+ style,
201
+ };
202
+ }
@@ -0,0 +1,21 @@
1
+ import type { KeyboardEvent, RefObject } from "react";
2
+ /**
3
+ * Joins an element to the nav's top-level travel order: registers it so the
4
+ * arrow keys can reach it, and returns the keydown handler that does the
5
+ * reaching.
6
+ *
7
+ * Despite building on `useRovingTabindex`, this is deliberately **not** a
8
+ * roving tabindex — no `tabIndex={-1}` is handed back, so every top-level
9
+ * entry stays in the tab order. That is the ARIA APG *Disclosure Navigation
10
+ * Menu* contract: these are links to pages, and a keyboard user must be able
11
+ * to Tab through them without learning that arrows are required. The hook
12
+ * uses `useRovingTabindex` purely for its orientation/RTL-aware keymap.
13
+ *
14
+ * @param enabled Whether this element is a top-level entry at all. A
15
+ * `NavigationMenu.Link` inside a `NavigationMenu.Content` passes `false`:
16
+ * panel links are reached by Tab, not by the top-level arrow keys.
17
+ */
18
+ export declare function useNavigationMenuTopLevelEntry<T extends HTMLElement>(enabled?: boolean): {
19
+ entryRef: RefObject<T | null>;
20
+ handleKeyDown: (event: KeyboardEvent<HTMLElement>) => void;
21
+ };
@@ -0,0 +1,54 @@
1
+ "use client";
2
+ import { useEffect, useId, useRef } from "react";
3
+ import { useRovingTabindex } from "../../hooks/index.js";
4
+ import { useNavigationMenuContext } from "../NavigationMenuContext.js";
5
+ /** Keydown handler for an element that is not a top-level entry: every travel
6
+ * key is left to the browser, so `Home` inside an open panel still scrolls the
7
+ * page rather than jumping out of the panel. */
8
+ function ignoreTravelKeys() { }
9
+ /**
10
+ * Joins an element to the nav's top-level travel order: registers it so the
11
+ * arrow keys can reach it, and returns the keydown handler that does the
12
+ * reaching.
13
+ *
14
+ * Despite building on `useRovingTabindex`, this is deliberately **not** a
15
+ * roving tabindex — no `tabIndex={-1}` is handed back, so every top-level
16
+ * entry stays in the tab order. That is the ARIA APG *Disclosure Navigation
17
+ * Menu* contract: these are links to pages, and a keyboard user must be able
18
+ * to Tab through them without learning that arrows are required. The hook
19
+ * uses `useRovingTabindex` purely for its orientation/RTL-aware keymap.
20
+ *
21
+ * @param enabled Whether this element is a top-level entry at all. A
22
+ * `NavigationMenu.Link` inside a `NavigationMenu.Content` passes `false`:
23
+ * panel links are reached by Tab, not by the top-level arrow keys.
24
+ */
25
+ export function useNavigationMenuTopLevelEntry(enabled = true) {
26
+ const { orientation, dir, registerEntry, entryKeys, focusEntry } = useNavigationMenuContext();
27
+ const key = useId();
28
+ const entryRef = useRef(null);
29
+ useEffect(() => {
30
+ if (!enabled)
31
+ return;
32
+ registerEntry(key, entryRef.current);
33
+ return () => registerEntry(key, null);
34
+ // `key` is a `useId`, `registerEntry` a stable context callback, and
35
+ // `enabled` is fixed by this element's position in the tree (inside a
36
+ // Content panel or not) — none can change while the entry stays mounted.
37
+ // Stryker disable next-line ArrayDeclaration: equivalent — stable dependencies.
38
+ }, [enabled, key, registerEntry]);
39
+ const { handleKeyDown: travel } = useRovingTabindex({
40
+ orientation,
41
+ dir,
42
+ navigable: entryKeys,
43
+ currentKey: key,
44
+ includeHomeEnd: true,
45
+ // Enter/Space must reach the element as a native activation — a button's
46
+ // click, a link's navigation. Claiming them here would preventDefault
47
+ // both.
48
+ includeActivate: false,
49
+ onNavigate: (target) => focusEntry(target),
50
+ });
51
+ // A panel link must not be able to reach the top-level order — not with the
52
+ // arrows, and not with Home/End either — so it gets no travel handler at all.
53
+ return { entryRef, handleKeyDown: enabled ? travel : ignoreTravelKeys };
54
+ }
@@ -0,0 +1,16 @@
1
+ import type { KeyboardEvent, MouseEvent, PointerEvent, RefObject } from "react";
2
+ import type { NavigationMenuTriggerProps } from "../types.js";
3
+ export declare function useNavigationMenuTrigger({ onClick, onPointerEnter, onPointerLeave, onKeyDown, }: Pick<NavigationMenuTriggerProps, "onClick" | "onPointerEnter" | "onPointerLeave" | "onKeyDown">): {
4
+ triggerRef: RefObject<HTMLButtonElement | null>;
5
+ triggerId: string;
6
+ panelId: string;
7
+ open: boolean;
8
+ state: "open" | "closed";
9
+ /** This trigger's own `anchor-name`, so the shared Viewport can position
10
+ * its panel relative to whichever trigger opened it. */
11
+ anchorName: string;
12
+ handleClick: (event: MouseEvent<HTMLButtonElement>) => void;
13
+ handlePointerEnter: (event: PointerEvent<HTMLButtonElement>) => void;
14
+ handlePointerLeave: (event: PointerEvent<HTMLButtonElement>) => void;
15
+ handleKeyDown: (event: KeyboardEvent<HTMLButtonElement>) => void;
16
+ };
@@ -0,0 +1,100 @@
1
+ "use client";
2
+ import { useCallback, useEffect, useRef } from "react";
3
+ import { composeEventHandlers } from "../../Slot/index.js";
4
+ import { PANEL_FOCUSABLE_SELECTOR } from "../constants.js";
5
+ import { useNavigationMenuContext } from "../NavigationMenuContext.js";
6
+ import { getTriggerAnchorName } from "../utils.js";
7
+ import { useNavigationMenuEntry } from "./useNavigationMenuEntry.js";
8
+ import { useNavigationMenuTopLevelEntry } from "./useNavigationMenuTopLevelEntry.js";
9
+ export function useNavigationMenuTrigger({ onClick, onPointerEnter, onPointerLeave, onKeyDown, }) {
10
+ const { orientation, dir, setOpenValue, openOnHover, openWithIntent, cancelOpen, } = useNavigationMenuContext();
11
+ const { value, triggerId, panelId, open, state } = useNavigationMenuEntry();
12
+ const { entryRef: triggerRef, handleKeyDown: handleArrowKeyDown } = useNavigationMenuTopLevelEntry();
13
+ // What `open` was when the pointer arrived, or `undefined` when no pointer
14
+ // is over the trigger. A pointer that comes to click first fires
15
+ // `pointerenter`, which — with hover-to-open — opens the panel *before* the
16
+ // click lands. Toggling against the live `open` would then close it again on
17
+ // that same click. Toggling against the pre-hover value is what makes a
18
+ // click mean "toggle what I saw", not "undo my own hover".
19
+ const openOnPointerEnterRef = useRef(undefined);
20
+ const toggle = useCallback(() => {
21
+ // A click is a decision, so it bypasses hover intent entirely — including
22
+ // any open timer already ticking from the pointer that arrived to click.
23
+ cancelOpen();
24
+ const wasOpen = openOnPointerEnterRef.current ?? open;
25
+ // Cleared so a second click on a still-hovered trigger toggles against
26
+ // live state rather than replaying the stale arrival value.
27
+ openOnPointerEnterRef.current = undefined;
28
+ setOpenValue(wasOpen ? "" : value);
29
+ }, [cancelOpen, open, setOpenValue, value]);
30
+ const hoverOpen = useCallback(() => {
31
+ openOnPointerEnterRef.current = open;
32
+ if (openOnHover)
33
+ openWithIntent(value);
34
+ }, [open, openOnHover, openWithIntent, value]);
35
+ const pointerLeave = useCallback(() => {
36
+ openOnPointerEnterRef.current = undefined;
37
+ cancelOpen();
38
+ },
39
+ // `cancelOpen` is a `useCallback(..., [])` on the Root, so its identity is
40
+ // fixed for the nav's lifetime — emptying this array yields the identical
41
+ // memoised function.
42
+ // Stryker disable next-line ArrayDeclaration: equivalent — stable dependency.
43
+ [cancelOpen]);
44
+ // The arrow that "goes into" the panel is the one pointing across the list's
45
+ // axis: down out of a horizontal bar, sideways out of a vertical rail (and
46
+ // that sideways key mirrors under RTL).
47
+ const enterPanelKey = orientation === "horizontal"
48
+ ? "ArrowDown"
49
+ : dir === "rtl"
50
+ ? "ArrowLeft"
51
+ : "ArrowRight";
52
+ // Focus can only land in the panel once it has actually rendered unhidden, so
53
+ // the keypress records the intent and this effect spends it.
54
+ const enterPanelPendingRef = useRef(false);
55
+ useEffect(() => {
56
+ if (!enterPanelPendingRef.current || !open)
57
+ return;
58
+ enterPanelPendingRef.current = false;
59
+ document
60
+ .getElementById(panelId)
61
+ ?.querySelector(PANEL_FOCUSABLE_SELECTOR)
62
+ ?.focus();
63
+ }, [open, panelId]);
64
+ const enterPanel = useCallback((event) => {
65
+ if (event.key !== enterPanelKey)
66
+ return;
67
+ event.preventDefault();
68
+ cancelOpen();
69
+ enterPanelPendingRef.current = true;
70
+ // Already-open panels never re-run the effect (`open` doesn't change), so
71
+ // move focus straight away in that case.
72
+ if (open) {
73
+ enterPanelPendingRef.current = false;
74
+ document
75
+ .getElementById(panelId)
76
+ ?.querySelector(PANEL_FOCUSABLE_SELECTOR)
77
+ ?.focus();
78
+ return;
79
+ }
80
+ setOpenValue(value);
81
+ }, [cancelOpen, enterPanelKey, open, panelId, setOpenValue, value]);
82
+ const handleClick = composeEventHandlers(onClick, toggle);
83
+ const handlePointerEnter = composeEventHandlers(onPointerEnter, hoverOpen);
84
+ const handlePointerLeave = composeEventHandlers(onPointerLeave, pointerLeave);
85
+ // enterPanel runs first and claims its arrow with preventDefault; the travel
86
+ // keymap only sees keys it left alone.
87
+ const handleKeyDown = composeEventHandlers(onKeyDown, composeEventHandlers(enterPanel, handleArrowKeyDown));
88
+ return {
89
+ triggerRef,
90
+ triggerId,
91
+ panelId,
92
+ open,
93
+ state,
94
+ anchorName: getTriggerAnchorName(triggerId),
95
+ handleClick,
96
+ handlePointerEnter,
97
+ handlePointerLeave,
98
+ handleKeyDown,
99
+ };
100
+ }