@base-ui/react 1.0.0-rc.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (672) hide show
  1. package/CHANGELOG.md +156 -5
  2. package/README.md +2 -3
  3. package/accordion/header/AccordionHeader.d.ts +1 -1
  4. package/accordion/item/AccordionItem.d.ts +1 -1
  5. package/accordion/panel/AccordionPanel.d.ts +1 -1
  6. package/accordion/root/AccordionRoot.d.ts +1 -1
  7. package/accordion/trigger/AccordionTrigger.d.ts +1 -1
  8. package/accordion/trigger/AccordionTrigger.js +3 -4
  9. package/alert-dialog/root/AlertDialogRoot.d.ts +3 -3
  10. package/autocomplete/root/AutocompleteRoot.d.ts +1 -1
  11. package/avatar/fallback/AvatarFallback.d.ts +1 -1
  12. package/avatar/image/AvatarImage.d.ts +1 -1
  13. package/avatar/root/AvatarRoot.d.ts +1 -1
  14. package/button/Button.d.ts +4 -17
  15. package/button/Button.js +1 -2
  16. package/checkbox/indicator/CheckboxIndicator.d.ts +1 -1
  17. package/checkbox/indicator/CheckboxIndicatorDataAttributes.d.ts +4 -0
  18. package/checkbox/indicator/CheckboxIndicatorDataAttributes.js +4 -0
  19. package/checkbox/root/CheckboxRoot.d.ts +1 -1
  20. package/checkbox/root/CheckboxRoot.js +5 -4
  21. package/checkbox/root/CheckboxRootDataAttributes.d.ts +4 -0
  22. package/checkbox/root/CheckboxRootDataAttributes.js +4 -0
  23. package/checkbox-group/CheckboxGroup.d.ts +1 -1
  24. package/collapsible/panel/CollapsiblePanel.d.ts +1 -1
  25. package/collapsible/root/CollapsibleRoot.d.ts +1 -1
  26. package/collapsible/trigger/CollapsibleTrigger.d.ts +1 -1
  27. package/collapsible/trigger/CollapsibleTrigger.js +1 -2
  28. package/combobox/arrow/ComboboxArrow.d.ts +1 -1
  29. package/combobox/backdrop/ComboboxBackdrop.d.ts +1 -1
  30. package/combobox/chip/ComboboxChip.d.ts +1 -1
  31. package/combobox/chip-remove/ComboboxChipRemove.d.ts +1 -1
  32. package/combobox/chip-remove/ComboboxChipRemove.js +3 -2
  33. package/combobox/chips/ComboboxChips.d.ts +1 -1
  34. package/combobox/chips/ComboboxChips.js +7 -1
  35. package/combobox/clear/ComboboxClear.d.ts +1 -1
  36. package/combobox/clear/ComboboxClear.js +2 -2
  37. package/combobox/empty/ComboboxEmpty.d.ts +1 -1
  38. package/combobox/group/ComboboxGroup.d.ts +1 -1
  39. package/combobox/group-label/ComboboxGroupLabel.d.ts +1 -1
  40. package/combobox/icon/ComboboxIcon.d.ts +1 -1
  41. package/combobox/input/ComboboxInput.d.ts +1 -1
  42. package/combobox/input/ComboboxInput.js +12 -18
  43. package/combobox/item/ComboboxItem.d.ts +1 -1
  44. package/combobox/item/ComboboxItem.js +0 -1
  45. package/combobox/item-indicator/ComboboxItemIndicator.d.ts +1 -1
  46. package/combobox/list/ComboboxList.d.ts +1 -1
  47. package/combobox/popup/ComboboxPopup.d.ts +1 -1
  48. package/combobox/popup/ComboboxPopup.js +2 -1
  49. package/combobox/portal/ComboboxPortal.d.ts +1 -1
  50. package/combobox/positioner/ComboboxPositioner.d.ts +1 -1
  51. package/combobox/root/AriaCombobox.d.ts +8 -1
  52. package/combobox/root/AriaCombobox.js +19 -16
  53. package/combobox/root/ComboboxRoot.d.ts +1 -1
  54. package/combobox/row/ComboboxRow.d.ts +1 -1
  55. package/combobox/status/ComboboxStatus.d.ts +1 -1
  56. package/combobox/store.d.ts +3 -0
  57. package/combobox/store.js +21 -0
  58. package/combobox/trigger/ComboboxTrigger.d.ts +14 -1
  59. package/combobox/trigger/ComboboxTrigger.js +31 -11
  60. package/combobox/trigger/ComboboxTriggerDataAttributes.d.ts +13 -0
  61. package/combobox/trigger/ComboboxTriggerDataAttributes.js +13 -0
  62. package/combobox/utils/stateAttributesMapping.d.ts +14 -0
  63. package/combobox/utils/stateAttributesMapping.js +18 -0
  64. package/combobox/value/ComboboxValue.d.ts +5 -0
  65. package/combobox/value/ComboboxValue.js +15 -6
  66. package/composite/root/useCompositeRoot.d.ts +1 -1
  67. package/context-menu/trigger/ContextMenuTrigger.d.ts +1 -1
  68. package/csp-provider/CSPContext.d.ts +13 -0
  69. package/csp-provider/CSPContext.js +25 -0
  70. package/csp-provider/CSPProvider.d.ts +25 -0
  71. package/csp-provider/CSPProvider.js +32 -0
  72. package/csp-provider/index.d.ts +2 -0
  73. package/csp-provider/index.js +12 -0
  74. package/csp-provider/index.parts.d.ts +1 -0
  75. package/csp-provider/index.parts.js +12 -0
  76. package/dialog/backdrop/DialogBackdrop.d.ts +1 -1
  77. package/dialog/close/DialogClose.d.ts +1 -1
  78. package/dialog/description/DialogDescription.d.ts +1 -1
  79. package/dialog/popup/DialogPopup.d.ts +1 -1
  80. package/dialog/portal/DialogPortal.d.ts +1 -1
  81. package/dialog/portal/DialogPortal.js +1 -0
  82. package/dialog/root/DialogRoot.d.ts +4 -4
  83. package/dialog/store/DialogStore.d.ts +2 -2
  84. package/dialog/title/DialogTitle.d.ts +1 -1
  85. package/dialog/viewport/DialogViewport.d.ts +1 -1
  86. package/esm/accordion/header/AccordionHeader.d.ts +1 -1
  87. package/esm/accordion/item/AccordionItem.d.ts +1 -1
  88. package/esm/accordion/panel/AccordionPanel.d.ts +1 -1
  89. package/esm/accordion/root/AccordionRoot.d.ts +1 -1
  90. package/esm/accordion/trigger/AccordionTrigger.d.ts +1 -1
  91. package/esm/accordion/trigger/AccordionTrigger.js +3 -4
  92. package/esm/alert-dialog/root/AlertDialogRoot.d.ts +3 -3
  93. package/esm/autocomplete/root/AutocompleteRoot.d.ts +1 -1
  94. package/esm/avatar/fallback/AvatarFallback.d.ts +1 -1
  95. package/esm/avatar/image/AvatarImage.d.ts +1 -1
  96. package/esm/avatar/root/AvatarRoot.d.ts +1 -1
  97. package/esm/button/Button.d.ts +4 -17
  98. package/esm/button/Button.js +1 -2
  99. package/esm/checkbox/indicator/CheckboxIndicator.d.ts +1 -1
  100. package/esm/checkbox/indicator/CheckboxIndicatorDataAttributes.d.ts +4 -0
  101. package/esm/checkbox/indicator/CheckboxIndicatorDataAttributes.js +4 -0
  102. package/esm/checkbox/root/CheckboxRoot.d.ts +1 -1
  103. package/esm/checkbox/root/CheckboxRoot.js +6 -5
  104. package/esm/checkbox/root/CheckboxRootDataAttributes.d.ts +4 -0
  105. package/esm/checkbox/root/CheckboxRootDataAttributes.js +4 -0
  106. package/esm/checkbox-group/CheckboxGroup.d.ts +1 -1
  107. package/esm/collapsible/panel/CollapsiblePanel.d.ts +1 -1
  108. package/esm/collapsible/root/CollapsibleRoot.d.ts +1 -1
  109. package/esm/collapsible/trigger/CollapsibleTrigger.d.ts +1 -1
  110. package/esm/collapsible/trigger/CollapsibleTrigger.js +1 -2
  111. package/esm/combobox/arrow/ComboboxArrow.d.ts +1 -1
  112. package/esm/combobox/backdrop/ComboboxBackdrop.d.ts +1 -1
  113. package/esm/combobox/chip/ComboboxChip.d.ts +1 -1
  114. package/esm/combobox/chip-remove/ComboboxChipRemove.d.ts +1 -1
  115. package/esm/combobox/chip-remove/ComboboxChipRemove.js +3 -2
  116. package/esm/combobox/chips/ComboboxChips.d.ts +1 -1
  117. package/esm/combobox/chips/ComboboxChips.js +7 -1
  118. package/esm/combobox/clear/ComboboxClear.d.ts +1 -1
  119. package/esm/combobox/clear/ComboboxClear.js +2 -2
  120. package/esm/combobox/empty/ComboboxEmpty.d.ts +1 -1
  121. package/esm/combobox/group/ComboboxGroup.d.ts +1 -1
  122. package/esm/combobox/group-label/ComboboxGroupLabel.d.ts +1 -1
  123. package/esm/combobox/icon/ComboboxIcon.d.ts +1 -1
  124. package/esm/combobox/input/ComboboxInput.d.ts +1 -1
  125. package/esm/combobox/input/ComboboxInput.js +12 -17
  126. package/esm/combobox/item/ComboboxItem.d.ts +1 -1
  127. package/esm/combobox/item/ComboboxItem.js +0 -1
  128. package/esm/combobox/item-indicator/ComboboxItemIndicator.d.ts +1 -1
  129. package/esm/combobox/list/ComboboxList.d.ts +1 -1
  130. package/esm/combobox/popup/ComboboxPopup.d.ts +1 -1
  131. package/esm/combobox/popup/ComboboxPopup.js +2 -1
  132. package/esm/combobox/portal/ComboboxPortal.d.ts +1 -1
  133. package/esm/combobox/positioner/ComboboxPositioner.d.ts +1 -1
  134. package/esm/combobox/root/AriaCombobox.d.ts +8 -1
  135. package/esm/combobox/root/AriaCombobox.js +20 -17
  136. package/esm/combobox/root/ComboboxRoot.d.ts +1 -1
  137. package/esm/combobox/row/ComboboxRow.d.ts +1 -1
  138. package/esm/combobox/status/ComboboxStatus.d.ts +1 -1
  139. package/esm/combobox/store.d.ts +3 -0
  140. package/esm/combobox/store.js +21 -0
  141. package/esm/combobox/trigger/ComboboxTrigger.d.ts +14 -1
  142. package/esm/combobox/trigger/ComboboxTrigger.js +32 -12
  143. package/esm/combobox/trigger/ComboboxTriggerDataAttributes.d.ts +13 -0
  144. package/esm/combobox/trigger/ComboboxTriggerDataAttributes.js +13 -0
  145. package/esm/combobox/utils/stateAttributesMapping.d.ts +14 -0
  146. package/esm/combobox/utils/stateAttributesMapping.js +12 -0
  147. package/esm/combobox/value/ComboboxValue.d.ts +5 -0
  148. package/esm/combobox/value/ComboboxValue.js +16 -7
  149. package/esm/composite/root/useCompositeRoot.d.ts +1 -1
  150. package/esm/context-menu/trigger/ContextMenuTrigger.d.ts +1 -1
  151. package/esm/csp-provider/CSPContext.d.ts +13 -0
  152. package/esm/csp-provider/CSPContext.js +18 -0
  153. package/esm/csp-provider/CSPProvider.d.ts +25 -0
  154. package/esm/csp-provider/CSPProvider.js +27 -0
  155. package/esm/csp-provider/index.d.ts +2 -0
  156. package/esm/csp-provider/index.js +1 -0
  157. package/esm/csp-provider/index.parts.d.ts +1 -0
  158. package/esm/csp-provider/index.parts.js +1 -0
  159. package/esm/dialog/backdrop/DialogBackdrop.d.ts +1 -1
  160. package/esm/dialog/close/DialogClose.d.ts +1 -1
  161. package/esm/dialog/description/DialogDescription.d.ts +1 -1
  162. package/esm/dialog/popup/DialogPopup.d.ts +1 -1
  163. package/esm/dialog/portal/DialogPortal.d.ts +1 -1
  164. package/esm/dialog/portal/DialogPortal.js +1 -0
  165. package/esm/dialog/root/DialogRoot.d.ts +4 -4
  166. package/esm/dialog/store/DialogStore.d.ts +2 -2
  167. package/esm/dialog/title/DialogTitle.d.ts +1 -1
  168. package/esm/dialog/viewport/DialogViewport.d.ts +1 -1
  169. package/esm/field/control/FieldControl.d.ts +1 -1
  170. package/esm/field/description/FieldDescription.d.ts +1 -1
  171. package/esm/field/error/FieldError.d.ts +1 -1
  172. package/esm/field/index.d.ts +2 -1
  173. package/esm/field/item/FieldItem.d.ts +1 -1
  174. package/esm/field/label/FieldLabel.d.ts +11 -2
  175. package/esm/field/label/FieldLabel.js +51 -11
  176. package/esm/field/root/FieldRoot.d.ts +10 -1
  177. package/esm/field/root/FieldRoot.js +8 -0
  178. package/esm/field/useField.js +7 -3
  179. package/esm/fieldset/legend/FieldsetLegend.d.ts +1 -1
  180. package/esm/fieldset/root/FieldsetRoot.d.ts +1 -1
  181. package/esm/floating-ui-react/components/FloatingFocusManager.js +7 -6
  182. package/esm/floating-ui-react/components/FloatingPortal.d.ts +2 -2
  183. package/esm/floating-ui-react/components/FloatingPortal.js +11 -2
  184. package/esm/floating-ui-react/hooks/useClientPoint.js +5 -4
  185. package/esm/floating-ui-react/hooks/useDismiss.js +16 -3
  186. package/esm/floating-ui-react/hooks/useFocus.d.ts +5 -0
  187. package/esm/floating-ui-react/hooks/useFocus.js +43 -9
  188. package/esm/floating-ui-react/hooks/useHoverReferenceInteraction.js +17 -4
  189. package/esm/floating-ui-react/hooks/useSyncedFloatingRootContext.js +3 -0
  190. package/esm/form/Form.d.ts +18 -1
  191. package/esm/form/Form.js +17 -0
  192. package/esm/form/FormContext.d.ts +1 -1
  193. package/esm/index.d.ts +1 -0
  194. package/esm/index.js +2 -1
  195. package/esm/input/Input.d.ts +1 -1
  196. package/esm/menu/arrow/MenuArrow.d.ts +1 -1
  197. package/esm/menu/backdrop/MenuBackdrop.d.ts +1 -1
  198. package/esm/menu/checkbox-item/MenuCheckboxItem.d.ts +1 -1
  199. package/esm/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.d.ts +1 -1
  200. package/esm/menu/group/MenuGroup.d.ts +1 -1
  201. package/esm/menu/group-label/MenuGroupLabel.d.ts +1 -1
  202. package/esm/menu/item/MenuItem.d.ts +1 -1
  203. package/esm/menu/popup/MenuPopup.d.ts +1 -1
  204. package/esm/menu/popup/MenuPopup.js +4 -3
  205. package/esm/menu/portal/MenuPortal.d.ts +1 -1
  206. package/esm/menu/positioner/MenuPositioner.d.ts +1 -1
  207. package/esm/menu/radio-group/MenuRadioGroup.d.ts +1 -1
  208. package/esm/menu/radio-item/MenuRadioItem.d.ts +1 -1
  209. package/esm/menu/radio-item-indicator/MenuRadioItemIndicator.d.ts +1 -1
  210. package/esm/menu/root/MenuRoot.d.ts +7 -6
  211. package/esm/menu/root/MenuRoot.js +4 -2
  212. package/esm/menu/store/MenuStore.js +3 -3
  213. package/esm/menu/submenu-trigger/MenuSubmenuTrigger.d.ts +1 -1
  214. package/esm/menu/trigger/MenuTrigger.js +13 -13
  215. package/esm/menubar/Menubar.d.ts +1 -1
  216. package/esm/merge-props/mergeProps.d.ts +31 -11
  217. package/esm/merge-props/mergeProps.js +29 -8
  218. package/esm/meter/indicator/MeterIndicator.d.ts +1 -1
  219. package/esm/meter/label/MeterLabel.d.ts +1 -1
  220. package/esm/meter/root/MeterRoot.d.ts +1 -1
  221. package/esm/meter/track/MeterTrack.d.ts +1 -1
  222. package/esm/meter/value/MeterValue.d.ts +1 -1
  223. package/esm/navigation-menu/arrow/NavigationMenuArrow.d.ts +1 -1
  224. package/esm/navigation-menu/backdrop/NavigationMenuBackdrop.d.ts +1 -1
  225. package/esm/navigation-menu/content/NavigationMenuContent.d.ts +1 -1
  226. package/esm/navigation-menu/content/NavigationMenuContent.js +6 -0
  227. package/esm/navigation-menu/icon/NavigationMenuIcon.d.ts +1 -1
  228. package/esm/navigation-menu/item/NavigationMenuItem.d.ts +1 -1
  229. package/esm/navigation-menu/link/NavigationMenuLink.d.ts +1 -1
  230. package/esm/navigation-menu/list/NavigationMenuList.d.ts +1 -1
  231. package/esm/navigation-menu/popup/NavigationMenuPopup.d.ts +1 -1
  232. package/esm/navigation-menu/portal/NavigationMenuPortal.d.ts +1 -1
  233. package/esm/navigation-menu/positioner/NavigationMenuPositioner.d.ts +1 -1
  234. package/esm/navigation-menu/root/NavigationMenuRoot.d.ts +2 -2
  235. package/esm/navigation-menu/trigger/NavigationMenuTrigger.d.ts +1 -1
  236. package/esm/navigation-menu/viewport/NavigationMenuViewport.d.ts +1 -1
  237. package/esm/number-field/decrement/NumberFieldDecrement.d.ts +1 -1
  238. package/esm/number-field/decrement/NumberFieldDecrement.js +4 -6
  239. package/esm/number-field/group/NumberFieldGroup.d.ts +1 -1
  240. package/esm/number-field/increment/NumberFieldIncrement.d.ts +1 -1
  241. package/esm/number-field/increment/NumberFieldIncrement.js +4 -6
  242. package/esm/number-field/input/NumberFieldInput.d.ts +1 -1
  243. package/esm/number-field/input/NumberFieldInput.js +5 -2
  244. package/esm/number-field/root/NumberFieldRoot.d.ts +5 -4
  245. package/esm/number-field/root/NumberFieldRoot.js +12 -5
  246. package/esm/number-field/root/useNumberFieldButton.d.ts +0 -3
  247. package/esm/number-field/root/useNumberFieldButton.js +5 -11
  248. package/esm/number-field/scrub-area/NumberFieldScrubArea.d.ts +1 -1
  249. package/esm/number-field/scrub-area-cursor/NumberFieldScrubAreaCursor.d.ts +1 -1
  250. package/esm/popover/arrow/PopoverArrow.d.ts +1 -1
  251. package/esm/popover/backdrop/PopoverBackdrop.d.ts +1 -1
  252. package/esm/popover/close/PopoverClose.d.ts +1 -1
  253. package/esm/popover/description/PopoverDescription.d.ts +1 -1
  254. package/esm/popover/popup/PopoverPopup.d.ts +1 -1
  255. package/esm/popover/popup/PopoverPopup.js +0 -30
  256. package/esm/popover/portal/PopoverPortal.d.ts +1 -1
  257. package/esm/popover/positioner/PopoverPositioner.d.ts +1 -1
  258. package/esm/popover/positioner/PopoverPositioner.js +2 -1
  259. package/esm/popover/root/PopoverRoot.d.ts +2 -2
  260. package/esm/popover/store/PopoverStore.d.ts +4 -2
  261. package/esm/popover/store/PopoverStore.js +8 -5
  262. package/esm/popover/title/PopoverTitle.d.ts +1 -1
  263. package/esm/popover/trigger/PopoverTrigger.js +2 -2
  264. package/esm/popover/viewport/PopoverViewport.d.ts +1 -1
  265. package/esm/popover/viewport/PopoverViewport.js +28 -12
  266. package/esm/preview-card/arrow/PreviewCardArrow.d.ts +1 -1
  267. package/esm/preview-card/arrow/PreviewCardArrow.js +2 -3
  268. package/esm/preview-card/backdrop/PreviewCardBackdrop.d.ts +1 -1
  269. package/esm/preview-card/backdrop/PreviewCardBackdrop.js +4 -5
  270. package/esm/preview-card/index.parts.d.ts +3 -1
  271. package/esm/preview-card/index.parts.js +3 -1
  272. package/esm/preview-card/popup/PreviewCardPopup.d.ts +2 -1
  273. package/esm/preview-card/popup/PreviewCardPopup.js +17 -11
  274. package/esm/preview-card/portal/PreviewCardPortal.d.ts +1 -1
  275. package/esm/preview-card/portal/PreviewCardPortal.js +2 -3
  276. package/esm/preview-card/positioner/PreviewCardPositioner.d.ts +2 -1
  277. package/esm/preview-card/positioner/PreviewCardPositioner.js +16 -11
  278. package/esm/preview-card/root/PreviewCardContext.d.ts +5 -26
  279. package/esm/preview-card/root/PreviewCardContext.js +2 -2
  280. package/esm/preview-card/root/PreviewCardRoot.d.ts +35 -10
  281. package/esm/preview-card/root/PreviewCardRoot.js +61 -116
  282. package/esm/preview-card/store/PreviewCardHandle.d.ts +33 -0
  283. package/esm/preview-card/store/PreviewCardHandle.js +55 -0
  284. package/esm/preview-card/store/PreviewCardStore.d.ts +36 -0
  285. package/esm/preview-card/store/PreviewCardStore.js +97 -0
  286. package/esm/preview-card/trigger/PreviewCardTrigger.d.ts +15 -3
  287. package/esm/preview-card/trigger/PreviewCardTrigger.js +49 -13
  288. package/esm/preview-card/viewport/PreviewCardViewport.d.ts +22 -0
  289. package/esm/preview-card/viewport/PreviewCardViewport.js +272 -0
  290. package/esm/preview-card/viewport/PreviewCardViewportCssVars.d.ts +14 -0
  291. package/esm/preview-card/viewport/PreviewCardViewportCssVars.js +15 -0
  292. package/esm/preview-card/viewport/PreviewCardViewportDataAttributes.d.ts +26 -0
  293. package/esm/preview-card/viewport/PreviewCardViewportDataAttributes.js +27 -0
  294. package/esm/progress/indicator/ProgressIndicator.d.ts +1 -1
  295. package/esm/progress/label/ProgressLabel.d.ts +1 -1
  296. package/esm/progress/root/ProgressRoot.d.ts +1 -1
  297. package/esm/progress/track/ProgressTrack.d.ts +1 -1
  298. package/esm/progress/value/ProgressValue.d.ts +1 -1
  299. package/esm/radio/indicator/RadioIndicator.d.ts +1 -1
  300. package/esm/radio/root/RadioRoot.d.ts +1 -1
  301. package/esm/radio/root/RadioRoot.js +9 -9
  302. package/esm/radio-group/RadioGroup.d.ts +4 -4
  303. package/esm/radio-group/RadioGroup.js +2 -2
  304. package/esm/scroll-area/content/ScrollAreaContent.d.ts +1 -1
  305. package/esm/scroll-area/content/ScrollAreaContent.js +10 -1
  306. package/esm/scroll-area/corner/ScrollAreaCorner.d.ts +1 -1
  307. package/esm/scroll-area/corner/ScrollAreaCorner.js +1 -1
  308. package/esm/scroll-area/root/ScrollAreaRoot.d.ts +26 -2
  309. package/esm/scroll-area/root/ScrollAreaRoot.js +33 -29
  310. package/esm/scroll-area/root/ScrollAreaRootContext.d.ts +10 -43
  311. package/esm/scroll-area/scrollbar/ScrollAreaScrollbar.d.ts +1 -1
  312. package/esm/scroll-area/scrollbar/ScrollAreaScrollbar.js +4 -4
  313. package/esm/scroll-area/thumb/ScrollAreaThumb.d.ts +2 -2
  314. package/esm/scroll-area/thumb/ScrollAreaThumb.js +1 -1
  315. package/esm/scroll-area/viewport/ScrollAreaViewport.d.ts +1 -1
  316. package/esm/scroll-area/viewport/ScrollAreaViewport.js +51 -25
  317. package/esm/select/arrow/SelectArrow.d.ts +1 -1
  318. package/esm/select/backdrop/SelectBackdrop.d.ts +1 -1
  319. package/esm/select/group/SelectGroup.d.ts +1 -1
  320. package/esm/select/group-label/SelectGroupLabel.d.ts +1 -1
  321. package/esm/select/icon/SelectIcon.d.ts +1 -1
  322. package/esm/select/item/SelectItem.d.ts +1 -1
  323. package/esm/select/item/SelectItem.js +0 -1
  324. package/esm/select/item-indicator/SelectItemIndicator.d.ts +1 -1
  325. package/esm/select/item-text/SelectItemText.d.ts +1 -1
  326. package/esm/select/list/SelectList.d.ts +1 -1
  327. package/esm/select/popup/SelectPopup.d.ts +1 -1
  328. package/esm/select/popup/SelectPopup.js +154 -95
  329. package/esm/select/portal/SelectPortal.d.ts +1 -1
  330. package/esm/select/positioner/SelectPositioner.d.ts +1 -1
  331. package/esm/select/root/SelectRoot.d.ts +2 -2
  332. package/esm/select/root/SelectRoot.js +26 -13
  333. package/esm/select/scroll-arrow/SelectScrollArrow.d.ts +1 -1
  334. package/esm/select/scroll-down-arrow/SelectScrollDownArrow.d.ts +1 -1
  335. package/esm/select/scroll-up-arrow/SelectScrollUpArrow.d.ts +1 -1
  336. package/esm/select/store.d.ts +2 -1
  337. package/esm/select/store.js +19 -13
  338. package/esm/select/trigger/SelectTrigger.d.ts +14 -4
  339. package/esm/select/trigger/SelectTrigger.js +50 -18
  340. package/esm/select/value/SelectValue.d.ts +6 -1
  341. package/esm/select/value/SelectValue.js +19 -5
  342. package/esm/separator/Separator.d.ts +1 -1
  343. package/esm/slider/control/SliderControl.d.ts +1 -1
  344. package/esm/slider/control/SliderControl.js +1 -1
  345. package/esm/slider/control/SliderControlDataAttributes.d.ts +0 -8
  346. package/esm/slider/control/SliderControlDataAttributes.js +0 -8
  347. package/esm/slider/indicator/SliderIndicator.d.ts +1 -1
  348. package/esm/slider/indicator/SliderIndicatorDataAttributes.d.ts +0 -8
  349. package/esm/slider/indicator/SliderIndicatorDataAttributes.js +0 -8
  350. package/esm/slider/root/SliderRootDataAttributes.d.ts +0 -8
  351. package/esm/slider/root/SliderRootDataAttributes.js +0 -8
  352. package/esm/slider/thumb/SliderThumb.d.ts +2 -2
  353. package/esm/slider/thumb/SliderThumb.js +7 -1
  354. package/esm/slider/thumb/SliderThumbDataAttributes.d.ts +0 -8
  355. package/esm/slider/thumb/SliderThumbDataAttributes.js +0 -8
  356. package/esm/slider/track/SliderTrack.d.ts +1 -1
  357. package/esm/slider/track/SliderTrackDataAttributes.d.ts +0 -8
  358. package/esm/slider/track/SliderTrackDataAttributes.js +0 -8
  359. package/esm/slider/value/SliderValue.d.ts +1 -1
  360. package/esm/slider/value/SliderValueDataAttributes.d.ts +0 -8
  361. package/esm/slider/value/SliderValueDataAttributes.js +0 -8
  362. package/esm/switch/root/SwitchRoot.d.ts +6 -1
  363. package/esm/switch/root/SwitchRoot.js +15 -6
  364. package/esm/switch/thumb/SwitchThumb.d.ts +1 -1
  365. package/esm/tabs/indicator/TabsIndicator.d.ts +1 -1
  366. package/esm/tabs/indicator/TabsIndicator.js +6 -0
  367. package/esm/tabs/list/TabsList.d.ts +1 -1
  368. package/esm/tabs/panel/TabsPanel.d.ts +1 -1
  369. package/esm/tabs/root/TabsRoot.d.ts +1 -1
  370. package/esm/tabs/tab/TabsTab.d.ts +1 -1
  371. package/esm/toast/action/ToastAction.d.ts +1 -1
  372. package/esm/toast/arrow/ToastArrow.d.ts +1 -1
  373. package/esm/toast/close/ToastClose.d.ts +1 -1
  374. package/esm/toast/content/ToastContent.d.ts +1 -1
  375. package/esm/toast/description/ToastDescription.d.ts +1 -1
  376. package/esm/toast/portal/ToastPortal.d.ts +1 -1
  377. package/esm/toast/positioner/ToastPositioner.d.ts +1 -1
  378. package/esm/toast/provider/ToastProvider.js +46 -19
  379. package/esm/toast/root/ToastRoot.d.ts +1 -1
  380. package/esm/toast/title/ToastTitle.d.ts +1 -1
  381. package/esm/toast/viewport/ToastViewport.d.ts +1 -1
  382. package/esm/toggle/Toggle.d.ts +1 -1
  383. package/esm/toggle-group/ToggleGroup.d.ts +1 -1
  384. package/esm/toolbar/button/ToolbarButton.d.ts +1 -1
  385. package/esm/toolbar/group/ToolbarGroup.d.ts +1 -1
  386. package/esm/toolbar/input/ToolbarInput.d.ts +1 -1
  387. package/esm/toolbar/link/ToolbarLink.d.ts +1 -1
  388. package/esm/toolbar/root/ToolbarRoot.d.ts +1 -1
  389. package/esm/toolbar/separator/ToolbarSeparator.d.ts +1 -1
  390. package/esm/tooltip/arrow/TooltipArrow.d.ts +1 -1
  391. package/esm/tooltip/popup/TooltipPopup.d.ts +1 -1
  392. package/esm/tooltip/popup/TooltipPopup.js +0 -31
  393. package/esm/tooltip/portal/TooltipPortal.d.ts +1 -1
  394. package/esm/tooltip/positioner/TooltipPositioner.d.ts +1 -1
  395. package/esm/tooltip/positioner/TooltipPositioner.js +2 -1
  396. package/esm/tooltip/root/TooltipRoot.d.ts +4 -6
  397. package/esm/tooltip/root/TooltipRoot.js +1 -2
  398. package/esm/tooltip/store/TooltipStore.d.ts +4 -2
  399. package/esm/tooltip/store/TooltipStore.js +7 -4
  400. package/esm/tooltip/trigger/TooltipTrigger.js +1 -1
  401. package/esm/tooltip/viewport/TooltipViewport.d.ts +1 -1
  402. package/esm/tooltip/viewport/TooltipViewport.js +28 -12
  403. package/esm/use-render/index.d.ts +2 -1
  404. package/esm/use-render/index.js +2 -1
  405. package/esm/utils/FloatingPortalLite.d.ts +1 -1
  406. package/esm/utils/popups/popupStoreUtils.js +21 -2
  407. package/esm/utils/resolveValueLabel.d.ts +5 -1
  408. package/esm/utils/resolveValueLabel.js +46 -22
  409. package/esm/utils/styles.d.ts +1 -1
  410. package/esm/utils/styles.js +10 -6
  411. package/esm/utils/types.d.ts +1 -1
  412. package/esm/utils/useAnimationsFinished.d.ts +2 -2
  413. package/esm/utils/useAnimationsFinished.js +56 -33
  414. package/esm/utils/useOpenChangeComplete.js +8 -10
  415. package/esm/utils/useOpenInteractionType.js +6 -1
  416. package/esm/utils/usePopupAutoResize.js +82 -46
  417. package/field/control/FieldControl.d.ts +1 -1
  418. package/field/description/FieldDescription.d.ts +1 -1
  419. package/field/error/FieldError.d.ts +1 -1
  420. package/field/index.d.ts +2 -1
  421. package/field/item/FieldItem.d.ts +1 -1
  422. package/field/label/FieldLabel.d.ts +11 -2
  423. package/field/label/FieldLabel.js +51 -11
  424. package/field/root/FieldRoot.d.ts +10 -1
  425. package/field/root/FieldRoot.js +8 -0
  426. package/field/useField.js +7 -3
  427. package/fieldset/legend/FieldsetLegend.d.ts +1 -1
  428. package/fieldset/root/FieldsetRoot.d.ts +1 -1
  429. package/floating-ui-react/components/FloatingFocusManager.js +7 -6
  430. package/floating-ui-react/components/FloatingPortal.d.ts +2 -2
  431. package/floating-ui-react/components/FloatingPortal.js +11 -2
  432. package/floating-ui-react/hooks/useClientPoint.js +5 -4
  433. package/floating-ui-react/hooks/useDismiss.js +16 -3
  434. package/floating-ui-react/hooks/useFocus.d.ts +5 -0
  435. package/floating-ui-react/hooks/useFocus.js +43 -9
  436. package/floating-ui-react/hooks/useHoverReferenceInteraction.js +17 -4
  437. package/floating-ui-react/hooks/useSyncedFloatingRootContext.js +3 -0
  438. package/form/Form.d.ts +18 -1
  439. package/form/Form.js +17 -0
  440. package/form/FormContext.d.ts +1 -1
  441. package/index.d.ts +1 -0
  442. package/index.js +12 -1
  443. package/input/Input.d.ts +1 -1
  444. package/menu/arrow/MenuArrow.d.ts +1 -1
  445. package/menu/backdrop/MenuBackdrop.d.ts +1 -1
  446. package/menu/checkbox-item/MenuCheckboxItem.d.ts +1 -1
  447. package/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.d.ts +1 -1
  448. package/menu/group/MenuGroup.d.ts +1 -1
  449. package/menu/group-label/MenuGroupLabel.d.ts +1 -1
  450. package/menu/item/MenuItem.d.ts +1 -1
  451. package/menu/popup/MenuPopup.d.ts +1 -1
  452. package/menu/popup/MenuPopup.js +4 -3
  453. package/menu/portal/MenuPortal.d.ts +1 -1
  454. package/menu/positioner/MenuPositioner.d.ts +1 -1
  455. package/menu/radio-group/MenuRadioGroup.d.ts +1 -1
  456. package/menu/radio-item/MenuRadioItem.d.ts +1 -1
  457. package/menu/radio-item-indicator/MenuRadioItemIndicator.d.ts +1 -1
  458. package/menu/root/MenuRoot.d.ts +7 -6
  459. package/menu/root/MenuRoot.js +4 -2
  460. package/menu/store/MenuStore.js +3 -3
  461. package/menu/submenu-trigger/MenuSubmenuTrigger.d.ts +1 -1
  462. package/menu/trigger/MenuTrigger.js +14 -14
  463. package/menubar/Menubar.d.ts +1 -1
  464. package/merge-props/mergeProps.d.ts +31 -11
  465. package/merge-props/mergeProps.js +29 -8
  466. package/meter/indicator/MeterIndicator.d.ts +1 -1
  467. package/meter/label/MeterLabel.d.ts +1 -1
  468. package/meter/root/MeterRoot.d.ts +1 -1
  469. package/meter/track/MeterTrack.d.ts +1 -1
  470. package/meter/value/MeterValue.d.ts +1 -1
  471. package/navigation-menu/arrow/NavigationMenuArrow.d.ts +1 -1
  472. package/navigation-menu/backdrop/NavigationMenuBackdrop.d.ts +1 -1
  473. package/navigation-menu/content/NavigationMenuContent.d.ts +1 -1
  474. package/navigation-menu/content/NavigationMenuContent.js +6 -0
  475. package/navigation-menu/icon/NavigationMenuIcon.d.ts +1 -1
  476. package/navigation-menu/item/NavigationMenuItem.d.ts +1 -1
  477. package/navigation-menu/link/NavigationMenuLink.d.ts +1 -1
  478. package/navigation-menu/list/NavigationMenuList.d.ts +1 -1
  479. package/navigation-menu/popup/NavigationMenuPopup.d.ts +1 -1
  480. package/navigation-menu/portal/NavigationMenuPortal.d.ts +1 -1
  481. package/navigation-menu/positioner/NavigationMenuPositioner.d.ts +1 -1
  482. package/navigation-menu/root/NavigationMenuRoot.d.ts +2 -2
  483. package/navigation-menu/trigger/NavigationMenuTrigger.d.ts +1 -1
  484. package/navigation-menu/viewport/NavigationMenuViewport.d.ts +1 -1
  485. package/number-field/decrement/NumberFieldDecrement.d.ts +1 -1
  486. package/number-field/decrement/NumberFieldDecrement.js +4 -6
  487. package/number-field/group/NumberFieldGroup.d.ts +1 -1
  488. package/number-field/increment/NumberFieldIncrement.d.ts +1 -1
  489. package/number-field/increment/NumberFieldIncrement.js +4 -6
  490. package/number-field/input/NumberFieldInput.d.ts +1 -1
  491. package/number-field/input/NumberFieldInput.js +5 -2
  492. package/number-field/root/NumberFieldRoot.d.ts +5 -4
  493. package/number-field/root/NumberFieldRoot.js +11 -4
  494. package/number-field/root/useNumberFieldButton.d.ts +0 -3
  495. package/number-field/root/useNumberFieldButton.js +5 -11
  496. package/number-field/scrub-area/NumberFieldScrubArea.d.ts +1 -1
  497. package/number-field/scrub-area-cursor/NumberFieldScrubAreaCursor.d.ts +1 -1
  498. package/package.json +13 -3
  499. package/popover/arrow/PopoverArrow.d.ts +1 -1
  500. package/popover/backdrop/PopoverBackdrop.d.ts +1 -1
  501. package/popover/close/PopoverClose.d.ts +1 -1
  502. package/popover/description/PopoverDescription.d.ts +1 -1
  503. package/popover/popup/PopoverPopup.d.ts +1 -1
  504. package/popover/popup/PopoverPopup.js +0 -30
  505. package/popover/portal/PopoverPortal.d.ts +1 -1
  506. package/popover/positioner/PopoverPositioner.d.ts +1 -1
  507. package/popover/positioner/PopoverPositioner.js +2 -1
  508. package/popover/root/PopoverRoot.d.ts +2 -2
  509. package/popover/store/PopoverStore.d.ts +4 -2
  510. package/popover/store/PopoverStore.js +8 -5
  511. package/popover/title/PopoverTitle.d.ts +1 -1
  512. package/popover/trigger/PopoverTrigger.js +2 -2
  513. package/popover/viewport/PopoverViewport.d.ts +1 -1
  514. package/popover/viewport/PopoverViewport.js +28 -12
  515. package/preview-card/arrow/PreviewCardArrow.d.ts +1 -1
  516. package/preview-card/arrow/PreviewCardArrow.js +2 -3
  517. package/preview-card/backdrop/PreviewCardBackdrop.d.ts +1 -1
  518. package/preview-card/backdrop/PreviewCardBackdrop.js +4 -5
  519. package/preview-card/index.parts.d.ts +3 -1
  520. package/preview-card/index.parts.js +21 -1
  521. package/preview-card/popup/PreviewCardPopup.d.ts +2 -1
  522. package/preview-card/popup/PreviewCardPopup.js +17 -11
  523. package/preview-card/portal/PreviewCardPortal.d.ts +1 -1
  524. package/preview-card/portal/PreviewCardPortal.js +2 -3
  525. package/preview-card/positioner/PreviewCardPositioner.d.ts +2 -1
  526. package/preview-card/positioner/PreviewCardPositioner.js +16 -11
  527. package/preview-card/root/PreviewCardContext.d.ts +5 -26
  528. package/preview-card/root/PreviewCardContext.js +2 -2
  529. package/preview-card/root/PreviewCardRoot.d.ts +35 -10
  530. package/preview-card/root/PreviewCardRoot.js +59 -113
  531. package/preview-card/store/PreviewCardHandle.d.ts +33 -0
  532. package/preview-card/store/PreviewCardHandle.js +63 -0
  533. package/preview-card/store/PreviewCardStore.d.ts +36 -0
  534. package/preview-card/store/PreviewCardStore.js +105 -0
  535. package/preview-card/trigger/PreviewCardTrigger.d.ts +15 -3
  536. package/preview-card/trigger/PreviewCardTrigger.js +50 -13
  537. package/preview-card/viewport/PreviewCardViewport.d.ts +22 -0
  538. package/preview-card/viewport/PreviewCardViewport.js +278 -0
  539. package/preview-card/viewport/PreviewCardViewportCssVars.d.ts +14 -0
  540. package/preview-card/viewport/PreviewCardViewportCssVars.js +21 -0
  541. package/preview-card/viewport/PreviewCardViewportDataAttributes.d.ts +26 -0
  542. package/preview-card/viewport/PreviewCardViewportDataAttributes.js +33 -0
  543. package/progress/indicator/ProgressIndicator.d.ts +1 -1
  544. package/progress/label/ProgressLabel.d.ts +1 -1
  545. package/progress/root/ProgressRoot.d.ts +1 -1
  546. package/progress/track/ProgressTrack.d.ts +1 -1
  547. package/progress/value/ProgressValue.d.ts +1 -1
  548. package/radio/indicator/RadioIndicator.d.ts +1 -1
  549. package/radio/root/RadioRoot.d.ts +1 -1
  550. package/radio/root/RadioRoot.js +8 -8
  551. package/radio-group/RadioGroup.d.ts +4 -4
  552. package/radio-group/RadioGroup.js +1 -1
  553. package/scroll-area/content/ScrollAreaContent.d.ts +1 -1
  554. package/scroll-area/content/ScrollAreaContent.js +10 -1
  555. package/scroll-area/corner/ScrollAreaCorner.d.ts +1 -1
  556. package/scroll-area/corner/ScrollAreaCorner.js +1 -1
  557. package/scroll-area/root/ScrollAreaRoot.d.ts +26 -2
  558. package/scroll-area/root/ScrollAreaRoot.js +33 -29
  559. package/scroll-area/root/ScrollAreaRootContext.d.ts +10 -43
  560. package/scroll-area/scrollbar/ScrollAreaScrollbar.d.ts +1 -1
  561. package/scroll-area/scrollbar/ScrollAreaScrollbar.js +4 -4
  562. package/scroll-area/thumb/ScrollAreaThumb.d.ts +2 -2
  563. package/scroll-area/thumb/ScrollAreaThumb.js +1 -1
  564. package/scroll-area/viewport/ScrollAreaViewport.d.ts +1 -1
  565. package/scroll-area/viewport/ScrollAreaViewport.js +51 -25
  566. package/select/arrow/SelectArrow.d.ts +1 -1
  567. package/select/backdrop/SelectBackdrop.d.ts +1 -1
  568. package/select/group/SelectGroup.d.ts +1 -1
  569. package/select/group-label/SelectGroupLabel.d.ts +1 -1
  570. package/select/icon/SelectIcon.d.ts +1 -1
  571. package/select/item/SelectItem.d.ts +1 -1
  572. package/select/item/SelectItem.js +0 -1
  573. package/select/item-indicator/SelectItemIndicator.d.ts +1 -1
  574. package/select/item-text/SelectItemText.d.ts +1 -1
  575. package/select/list/SelectList.d.ts +1 -1
  576. package/select/popup/SelectPopup.d.ts +1 -1
  577. package/select/popup/SelectPopup.js +154 -95
  578. package/select/portal/SelectPortal.d.ts +1 -1
  579. package/select/positioner/SelectPositioner.d.ts +1 -1
  580. package/select/root/SelectRoot.d.ts +2 -2
  581. package/select/root/SelectRoot.js +24 -11
  582. package/select/scroll-arrow/SelectScrollArrow.d.ts +1 -1
  583. package/select/scroll-down-arrow/SelectScrollDownArrow.d.ts +1 -1
  584. package/select/scroll-up-arrow/SelectScrollUpArrow.d.ts +1 -1
  585. package/select/store.d.ts +2 -1
  586. package/select/store.js +18 -12
  587. package/select/trigger/SelectTrigger.d.ts +14 -4
  588. package/select/trigger/SelectTrigger.js +50 -18
  589. package/select/value/SelectValue.d.ts +6 -1
  590. package/select/value/SelectValue.js +18 -4
  591. package/separator/Separator.d.ts +1 -1
  592. package/slider/control/SliderControl.d.ts +1 -1
  593. package/slider/control/SliderControl.js +1 -1
  594. package/slider/control/SliderControlDataAttributes.d.ts +0 -8
  595. package/slider/control/SliderControlDataAttributes.js +0 -8
  596. package/slider/indicator/SliderIndicator.d.ts +1 -1
  597. package/slider/indicator/SliderIndicatorDataAttributes.d.ts +0 -8
  598. package/slider/indicator/SliderIndicatorDataAttributes.js +0 -8
  599. package/slider/root/SliderRootDataAttributes.d.ts +0 -8
  600. package/slider/root/SliderRootDataAttributes.js +0 -8
  601. package/slider/thumb/SliderThumb.d.ts +2 -2
  602. package/slider/thumb/SliderThumb.js +7 -1
  603. package/slider/thumb/SliderThumbDataAttributes.d.ts +0 -8
  604. package/slider/thumb/SliderThumbDataAttributes.js +0 -8
  605. package/slider/track/SliderTrack.d.ts +1 -1
  606. package/slider/track/SliderTrackDataAttributes.d.ts +0 -8
  607. package/slider/track/SliderTrackDataAttributes.js +0 -8
  608. package/slider/value/SliderValue.d.ts +1 -1
  609. package/slider/value/SliderValueDataAttributes.d.ts +0 -8
  610. package/slider/value/SliderValueDataAttributes.js +0 -8
  611. package/switch/root/SwitchRoot.d.ts +6 -1
  612. package/switch/root/SwitchRoot.js +14 -5
  613. package/switch/thumb/SwitchThumb.d.ts +1 -1
  614. package/tabs/indicator/TabsIndicator.d.ts +1 -1
  615. package/tabs/indicator/TabsIndicator.js +6 -0
  616. package/tabs/list/TabsList.d.ts +1 -1
  617. package/tabs/panel/TabsPanel.d.ts +1 -1
  618. package/tabs/root/TabsRoot.d.ts +1 -1
  619. package/tabs/tab/TabsTab.d.ts +1 -1
  620. package/toast/action/ToastAction.d.ts +1 -1
  621. package/toast/arrow/ToastArrow.d.ts +1 -1
  622. package/toast/close/ToastClose.d.ts +1 -1
  623. package/toast/content/ToastContent.d.ts +1 -1
  624. package/toast/description/ToastDescription.d.ts +1 -1
  625. package/toast/portal/ToastPortal.d.ts +1 -1
  626. package/toast/positioner/ToastPositioner.d.ts +1 -1
  627. package/toast/provider/ToastProvider.js +46 -19
  628. package/toast/root/ToastRoot.d.ts +1 -1
  629. package/toast/title/ToastTitle.d.ts +1 -1
  630. package/toast/viewport/ToastViewport.d.ts +1 -1
  631. package/toggle/Toggle.d.ts +1 -1
  632. package/toggle-group/ToggleGroup.d.ts +1 -1
  633. package/toolbar/button/ToolbarButton.d.ts +1 -1
  634. package/toolbar/group/ToolbarGroup.d.ts +1 -1
  635. package/toolbar/input/ToolbarInput.d.ts +1 -1
  636. package/toolbar/link/ToolbarLink.d.ts +1 -1
  637. package/toolbar/root/ToolbarRoot.d.ts +1 -1
  638. package/toolbar/separator/ToolbarSeparator.d.ts +1 -1
  639. package/tooltip/arrow/TooltipArrow.d.ts +1 -1
  640. package/tooltip/popup/TooltipPopup.d.ts +1 -1
  641. package/tooltip/popup/TooltipPopup.js +0 -31
  642. package/tooltip/portal/TooltipPortal.d.ts +1 -1
  643. package/tooltip/positioner/TooltipPositioner.d.ts +1 -1
  644. package/tooltip/positioner/TooltipPositioner.js +2 -1
  645. package/tooltip/root/TooltipRoot.d.ts +4 -6
  646. package/tooltip/root/TooltipRoot.js +1 -2
  647. package/tooltip/store/TooltipStore.d.ts +4 -2
  648. package/tooltip/store/TooltipStore.js +7 -4
  649. package/tooltip/trigger/TooltipTrigger.js +1 -1
  650. package/tooltip/viewport/TooltipViewport.d.ts +1 -1
  651. package/tooltip/viewport/TooltipViewport.js +28 -12
  652. package/use-render/index.d.ts +2 -1
  653. package/utils/FloatingPortalLite.d.ts +1 -1
  654. package/utils/popups/popupStoreUtils.js +21 -2
  655. package/utils/resolveValueLabel.d.ts +5 -1
  656. package/utils/resolveValueLabel.js +48 -22
  657. package/utils/styles.d.ts +1 -1
  658. package/utils/styles.js +10 -6
  659. package/utils/types.d.ts +1 -1
  660. package/utils/useAnimationsFinished.d.ts +2 -2
  661. package/utils/useAnimationsFinished.js +56 -33
  662. package/utils/useOpenChangeComplete.js +8 -10
  663. package/utils/useOpenInteractionType.js +6 -1
  664. package/utils/usePopupAutoResize.js +82 -46
  665. package/esm/utils/interactions/useFocusWithDelay.d.ts +0 -9
  666. package/esm/utils/interactions/useFocusWithDelay.js +0 -81
  667. package/utils/interactions/useFocusWithDelay.d.ts +0 -9
  668. package/utils/interactions/useFocusWithDelay.js +0 -87
  669. /package/esm/utils/{useMixedToggleClickHander.d.ts → useMixedToggleClickHandler.d.ts} +0 -0
  670. /package/esm/utils/{useMixedToggleClickHander.js → useMixedToggleClickHandler.js} +0 -0
  671. /package/utils/{useMixedToggleClickHander.d.ts → useMixedToggleClickHandler.d.ts} +0 -0
  672. /package/utils/{useMixedToggleClickHander.js → useMixedToggleClickHandler.js} +0 -0
@@ -0,0 +1,272 @@
1
+ 'use client';
2
+
3
+ import * as React from 'react';
4
+ import { inertValue } from '@base-ui/utils/inertValue';
5
+ import { useAnimationFrame } from '@base-ui/utils/useAnimationFrame';
6
+ import { usePreviousValue } from '@base-ui/utils/usePreviousValue';
7
+ import { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';
8
+ import { useStableCallback } from '@base-ui/utils/useStableCallback';
9
+ import { usePreviewCardRootContext } from "../root/PreviewCardContext.js";
10
+ import { usePreviewCardPositionerContext } from "../positioner/PreviewCardPositionerContext.js";
11
+ import { useAnimationsFinished } from "../../utils/useAnimationsFinished.js";
12
+ import { usePopupAutoResize } from "../../utils/usePopupAutoResize.js";
13
+ import { useRenderElement } from "../../utils/useRenderElement.js";
14
+ import { PreviewCardViewportCssVars } from "./PreviewCardViewportCssVars.js";
15
+ import { useDirection } from "../../direction-provider/index.js";
16
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
17
+ const stateAttributesMapping = {
18
+ activationDirection: value => value ? {
19
+ 'data-activation-direction': value
20
+ } : null
21
+ };
22
+
23
+ /**
24
+ * A viewport for displaying content transitions.
25
+ * This component is only required if one popup can be opened by multiple triggers, its content change based on the trigger
26
+ * and switching between them is animated.
27
+ * Renders a `<div>` element.
28
+ *
29
+ * Documentation: [Base UI Preview Card](https://base-ui.com/react/components/preview-card)
30
+ */
31
+ export const PreviewCardViewport = /*#__PURE__*/React.forwardRef(function PreviewCardViewport(componentProps, forwardedRef) {
32
+ const {
33
+ render,
34
+ className,
35
+ children,
36
+ ...elementProps
37
+ } = componentProps;
38
+ const store = usePreviewCardRootContext();
39
+ const positioner = usePreviewCardPositionerContext();
40
+ const direction = useDirection();
41
+ const activeTrigger = store.useState('activeTriggerElement');
42
+ const activeTriggerId = store.useState('activeTriggerId');
43
+ const payload = store.useState('payload');
44
+ const open = store.useState('open');
45
+ const instantType = store.useState('instantType');
46
+ const mounted = store.useState('mounted');
47
+ const popupElement = store.useState('popupElement');
48
+ const positionerElement = store.useState('positionerElement');
49
+ const previousActiveTrigger = usePreviousValue(open ? activeTrigger : null);
50
+ // Remount current content on trigger changes (and once more when payload lags) to avoid DOM reuse flashes.
51
+ // The key bumps immediately on trigger switches, then again if the payload arrives on a later render.
52
+ const currentContentKey = usePopupContentKey(activeTriggerId, payload);
53
+ const capturedNodeRef = React.useRef(null);
54
+ const [previousContentNode, setPreviousContentNode] = React.useState(null);
55
+ const [newTriggerOffset, setNewTriggerOffset] = React.useState(null);
56
+ const currentContainerRef = React.useRef(null);
57
+ const previousContainerRef = React.useRef(null);
58
+ const onAnimationsFinished = useAnimationsFinished(currentContainerRef, true, false);
59
+ const cleanupFrame = useAnimationFrame();
60
+ const [previousContentDimensions, setPreviousContentDimensions] = React.useState(null);
61
+ const [showStartingStyleAttribute, setShowStartingStyleAttribute] = React.useState(false);
62
+ useIsoLayoutEffect(() => {
63
+ store.set('hasViewport', true);
64
+ return () => {
65
+ store.set('hasViewport', false);
66
+ };
67
+ }, [store]);
68
+ const handleMeasureLayout = useStableCallback(() => {
69
+ currentContainerRef.current?.style.setProperty('animation', 'none');
70
+ currentContainerRef.current?.style.setProperty('transition', 'none');
71
+ previousContainerRef.current?.style.setProperty('display', 'none');
72
+ });
73
+ const handleMeasureLayoutComplete = useStableCallback(previousDimensions => {
74
+ currentContainerRef.current?.style.removeProperty('animation');
75
+ currentContainerRef.current?.style.removeProperty('transition');
76
+ previousContainerRef.current?.style.removeProperty('display');
77
+ if (previousDimensions) {
78
+ setPreviousContentDimensions(previousDimensions);
79
+ }
80
+ });
81
+ const lastHandledTriggerRef = React.useRef(null);
82
+ useIsoLayoutEffect(() => {
83
+ // When a trigger changes, set the captured children HTML to state,
84
+ // so we can render both new and old content.
85
+ if (activeTrigger && previousActiveTrigger && activeTrigger !== previousActiveTrigger && lastHandledTriggerRef.current !== activeTrigger && capturedNodeRef.current) {
86
+ setPreviousContentNode(capturedNodeRef.current);
87
+ setShowStartingStyleAttribute(true);
88
+
89
+ // Calculate the relative position between the previous and new trigger,
90
+ // so we can pass it to the style hook for animation purposes.
91
+ const offset = calculateRelativePosition(previousActiveTrigger, activeTrigger);
92
+ setNewTriggerOffset(offset);
93
+ cleanupFrame.request(() => {
94
+ cleanupFrame.request(() => {
95
+ setShowStartingStyleAttribute(false);
96
+ onAnimationsFinished(() => {
97
+ setPreviousContentNode(null);
98
+ setPreviousContentDimensions(null);
99
+ capturedNodeRef.current = null;
100
+ });
101
+ });
102
+ });
103
+ lastHandledTriggerRef.current = activeTrigger;
104
+ }
105
+ }, [activeTrigger, previousActiveTrigger, previousContentNode, onAnimationsFinished, cleanupFrame]);
106
+
107
+ // Capture a clone of the current content DOM subtree when not transitioning.
108
+ // We can't store previous React nodes as they may be stateful; instead we capture DOM clones for visual continuity.
109
+ useIsoLayoutEffect(() => {
110
+ // When a transition is in progress, we store the next content in capturedNodeRef.
111
+ // This handles the case where the trigger changes multiple times before the transition finishes.
112
+ // We want to always capture the latest content for the previous snapshot.
113
+ // So clicking quickly on T1, T2, T3 will result in the following sequence:
114
+ // 1. T1 -> T2: previousContent = T1, currentContent = T2
115
+ // 2. T2 -> T3: previousContent = T2, currentContent = T3
116
+ const source = currentContainerRef.current;
117
+ if (!source) {
118
+ return;
119
+ }
120
+ const wrapper = document.createElement('div');
121
+ for (const child of Array.from(source.childNodes)) {
122
+ wrapper.appendChild(child.cloneNode(true));
123
+ }
124
+ capturedNodeRef.current = wrapper;
125
+ });
126
+ const isTransitioning = previousContentNode != null;
127
+ let childrenToRender;
128
+ if (!isTransitioning) {
129
+ childrenToRender = /*#__PURE__*/_jsx("div", {
130
+ "data-current": true,
131
+ ref: currentContainerRef,
132
+ children: children
133
+ }, currentContentKey);
134
+ } else {
135
+ childrenToRender = /*#__PURE__*/_jsxs(React.Fragment, {
136
+ children: [/*#__PURE__*/_jsx("div", {
137
+ "data-previous": true,
138
+ inert: inertValue(true),
139
+ ref: previousContainerRef,
140
+ style: {
141
+ [PreviewCardViewportCssVars.popupWidth]: `${previousContentDimensions?.width}px`,
142
+ [PreviewCardViewportCssVars.popupHeight]: `${previousContentDimensions?.height}px`,
143
+ position: 'absolute'
144
+ },
145
+ "data-ending-style": showStartingStyleAttribute ? undefined : ''
146
+ }, 'previous'), /*#__PURE__*/_jsx("div", {
147
+ "data-current": true,
148
+ ref: currentContainerRef,
149
+ "data-starting-style": showStartingStyleAttribute ? '' : undefined,
150
+ children: children
151
+ }, currentContentKey)]
152
+ });
153
+ }
154
+
155
+ // When previousContentNode is present, imperatively populate the previous container with the cloned children.
156
+ useIsoLayoutEffect(() => {
157
+ const container = previousContainerRef.current;
158
+ if (!container || !previousContentNode) {
159
+ return;
160
+ }
161
+ container.replaceChildren(...Array.from(previousContentNode.childNodes));
162
+ }, [previousContentNode]);
163
+ usePopupAutoResize({
164
+ popupElement,
165
+ positionerElement,
166
+ mounted,
167
+ content: payload,
168
+ onMeasureLayout: handleMeasureLayout,
169
+ onMeasureLayoutComplete: handleMeasureLayoutComplete,
170
+ side: positioner.side,
171
+ direction
172
+ });
173
+ const state = React.useMemo(() => {
174
+ return {
175
+ activationDirection: getActivationDirection(newTriggerOffset),
176
+ transitioning: isTransitioning,
177
+ instant: instantType
178
+ };
179
+ }, [newTriggerOffset, isTransitioning, instantType]);
180
+ return useRenderElement('div', componentProps, {
181
+ state,
182
+ ref: forwardedRef,
183
+ props: [elementProps, {
184
+ children: childrenToRender
185
+ }],
186
+ stateAttributesMapping
187
+ });
188
+ });
189
+ if (process.env.NODE_ENV !== "production") PreviewCardViewport.displayName = "PreviewCardViewport";
190
+ /**
191
+ * Returns a string describing the provided offset.
192
+ * It describes both the horizontal and vertical offset, separated by a space.
193
+ *
194
+ * @param offset
195
+ */
196
+ function getActivationDirection(offset) {
197
+ if (!offset) {
198
+ return undefined;
199
+ }
200
+ return `${getValueWithTolerance(offset.horizontal, 5, 'right', 'left')} ${getValueWithTolerance(offset.vertical, 5, 'down', 'up')}`;
201
+ }
202
+
203
+ /**
204
+ * Returns a label describing the value (positive/negative) treating values
205
+ * within tolerance as zero.
206
+ *
207
+ * @param value Value to check
208
+ * @param tolerance Tolerance to treat the value as zero.
209
+ * @param positiveLabel
210
+ * @param negativeLabel
211
+ * @returns If 0 < abs(value) < tolerance, returns an empty string. Otherwise returns positiveLabel or negativeLabel.
212
+ */
213
+ function getValueWithTolerance(value, tolerance, positiveLabel, negativeLabel) {
214
+ if (value > tolerance) {
215
+ return positiveLabel;
216
+ }
217
+ if (value < -tolerance) {
218
+ return negativeLabel;
219
+ }
220
+ return '';
221
+ }
222
+
223
+ /**
224
+ * Calculates the relative position between centers of two elements.
225
+ */
226
+ function calculateRelativePosition(from, to) {
227
+ const fromRect = from.getBoundingClientRect();
228
+ const toRect = to.getBoundingClientRect();
229
+ const fromCenter = {
230
+ x: fromRect.left + fromRect.width / 2,
231
+ y: fromRect.top + fromRect.height / 2
232
+ };
233
+ const toCenter = {
234
+ x: toRect.left + toRect.width / 2,
235
+ y: toRect.top + toRect.height / 2
236
+ };
237
+ return {
238
+ horizontal: toCenter.x - fromCenter.x,
239
+ vertical: toCenter.y - fromCenter.y
240
+ };
241
+ }
242
+
243
+ /**
244
+ * Returns a key that forces remounting content when triggers change or a payload is updated.
245
+ */
246
+ function usePopupContentKey(activeTriggerId, payload) {
247
+ const [contentKey, setContentKey] = React.useState(0);
248
+ const previousActiveTriggerIdRef = React.useRef(activeTriggerId);
249
+ const previousPayloadRef = React.useRef(payload);
250
+ const pendingPayloadUpdateRef = React.useRef(false);
251
+ useIsoLayoutEffect(() => {
252
+ // Compare against the last committed values to decide whether we need a new DOM subtree.
253
+ const previousActiveTriggerId = previousActiveTriggerIdRef.current;
254
+ const previousPayload = previousPayloadRef.current;
255
+ const triggerIdChanged = activeTriggerId !== previousActiveTriggerId;
256
+ const payloadChanged = payload !== previousPayload;
257
+ if (triggerIdChanged) {
258
+ // Remount immediately on trigger change; remember if payload hasn't caught up yet.
259
+ setContentKey(value => value + 1);
260
+ pendingPayloadUpdateRef.current = !payloadChanged;
261
+ } else if (pendingPayloadUpdateRef.current && payloadChanged) {
262
+ // Payload arrived a render later, so remount once more to avoid reusing the old <img>.
263
+ setContentKey(value => value + 1);
264
+ pendingPayloadUpdateRef.current = false;
265
+ }
266
+
267
+ // Persist current values for the next render's comparison.
268
+ previousActiveTriggerIdRef.current = activeTriggerId;
269
+ previousPayloadRef.current = payload;
270
+ }, [activeTriggerId, payload]);
271
+ return `${activeTriggerId ?? 'current'}-${contentKey}`;
272
+ }
@@ -0,0 +1,14 @@
1
+ export declare enum PreviewCardViewportCssVars {
2
+ /**
3
+ * The width of the parent popup.
4
+ * This variable is placed on the 'previous' container and stores the width of the popup when the previous content was rendered.
5
+ * It can be used to freeze the dimensions of the popup when animating between different content.
6
+ */
7
+ popupWidth = "--popup-width",
8
+ /**
9
+ * The height of the parent popup.
10
+ * This variable is placed on the 'previous' container and stores the height of the popup when the previous content was rendered.
11
+ * It can be used to freeze the dimensions of the popup when animating between different content.
12
+ */
13
+ popupHeight = "--popup-height",
14
+ }
@@ -0,0 +1,15 @@
1
+ export let PreviewCardViewportCssVars = /*#__PURE__*/function (PreviewCardViewportCssVars) {
2
+ /**
3
+ * The width of the parent popup.
4
+ * This variable is placed on the 'previous' container and stores the width of the popup when the previous content was rendered.
5
+ * It can be used to freeze the dimensions of the popup when animating between different content.
6
+ */
7
+ PreviewCardViewportCssVars["popupWidth"] = "--popup-width";
8
+ /**
9
+ * The height of the parent popup.
10
+ * This variable is placed on the 'previous' container and stores the height of the popup when the previous content was rendered.
11
+ * It can be used to freeze the dimensions of the popup when animating between different content.
12
+ */
13
+ PreviewCardViewportCssVars["popupHeight"] = "--popup-height";
14
+ return PreviewCardViewportCssVars;
15
+ }({});
@@ -0,0 +1,26 @@
1
+ export declare enum PreviewCardViewportDataAttributes {
2
+ /**
3
+ * Applied to the direct child of the viewport when no transitions are present or the new content when it's entering.
4
+ */
5
+ current = "data-current",
6
+ /**
7
+ * Applied to the direct child of the viewport that contains the exiting content when transitions are present.
8
+ */
9
+ previous = "data-previous",
10
+ /**
11
+ * Indicates the direction from which the popup was activated.
12
+ * This can be used to create directional animations based on how the popup was triggered.
13
+ * Contains space-separated values for both horizontal and vertical axes.
14
+ * @type {`${'left' | 'right'} {'top' | 'bottom'}`}
15
+ */
16
+ activationDirection = "data-activation-direction",
17
+ /**
18
+ * Indicates that the viewport is currently transitioning between old and new content.
19
+ */
20
+ transitioning = "data-transitioning",
21
+ /**
22
+ * Present if animations should be instant.
23
+ * @type {'delay' | 'dismiss' | 'focus'}
24
+ */
25
+ instant = "data-instant",
26
+ }
@@ -0,0 +1,27 @@
1
+ export let PreviewCardViewportDataAttributes = /*#__PURE__*/function (PreviewCardViewportDataAttributes) {
2
+ /**
3
+ * Applied to the direct child of the viewport when no transitions are present or the new content when it's entering.
4
+ */
5
+ PreviewCardViewportDataAttributes["current"] = "data-current";
6
+ /**
7
+ * Applied to the direct child of the viewport that contains the exiting content when transitions are present.
8
+ */
9
+ PreviewCardViewportDataAttributes["previous"] = "data-previous";
10
+ /**
11
+ * Indicates the direction from which the popup was activated.
12
+ * This can be used to create directional animations based on how the popup was triggered.
13
+ * Contains space-separated values for both horizontal and vertical axes.
14
+ * @type {`${'left' | 'right'} {'top' | 'bottom'}`}
15
+ */
16
+ PreviewCardViewportDataAttributes["activationDirection"] = "data-activation-direction";
17
+ /**
18
+ * Indicates that the viewport is currently transitioning between old and new content.
19
+ */
20
+ PreviewCardViewportDataAttributes["transitioning"] = "data-transitioning";
21
+ /**
22
+ * Present if animations should be instant.
23
+ * @type {'delay' | 'dismiss' | 'focus'}
24
+ */
25
+ PreviewCardViewportDataAttributes["instant"] = "data-instant";
26
+ return PreviewCardViewportDataAttributes;
27
+ }({});
@@ -7,7 +7,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
7
7
  *
8
8
  * Documentation: [Base UI Progress](https://base-ui.com/react/components/progress)
9
9
  */
10
- export declare const ProgressIndicator: React.ForwardRefExoticComponent<ProgressIndicatorProps & React.RefAttributes<HTMLDivElement>>;
10
+ export declare const ProgressIndicator: React.ForwardRefExoticComponent<Omit<ProgressIndicatorProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
11
  export interface ProgressIndicatorProps extends BaseUIComponentProps<'div', ProgressRoot.State> {}
12
12
  export declare namespace ProgressIndicator {
13
13
  type Props = ProgressIndicatorProps;
@@ -7,7 +7,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
7
7
  *
8
8
  * Documentation: [Base UI Progress](https://base-ui.com/react/components/progress)
9
9
  */
10
- export declare const ProgressLabel: React.ForwardRefExoticComponent<ProgressLabelProps & React.RefAttributes<HTMLSpanElement>>;
10
+ export declare const ProgressLabel: React.ForwardRefExoticComponent<Omit<ProgressLabelProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
11
11
  export interface ProgressLabelProps extends BaseUIComponentProps<'span', ProgressRoot.State> {}
12
12
  export declare namespace ProgressLabel {
13
13
  type Props = ProgressLabelProps;
@@ -6,7 +6,7 @@ import { BaseUIComponentProps } from "../../utils/types.js";
6
6
  *
7
7
  * Documentation: [Base UI Progress](https://base-ui.com/react/components/progress)
8
8
  */
9
- export declare const ProgressRoot: React.ForwardRefExoticComponent<ProgressRootProps & React.RefAttributes<HTMLDivElement>>;
9
+ export declare const ProgressRoot: React.ForwardRefExoticComponent<Omit<ProgressRootProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
10
10
  export type ProgressStatus = 'indeterminate' | 'progressing' | 'complete';
11
11
  export interface ProgressRootState {
12
12
  status: ProgressStatus;
@@ -7,7 +7,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
7
7
  *
8
8
  * Documentation: [Base UI Progress](https://base-ui.com/react/components/progress)
9
9
  */
10
- export declare const ProgressTrack: React.ForwardRefExoticComponent<ProgressTrackProps & React.RefAttributes<HTMLDivElement>>;
10
+ export declare const ProgressTrack: React.ForwardRefExoticComponent<Omit<ProgressTrackProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
11
  export interface ProgressTrackProps extends BaseUIComponentProps<'div', ProgressRoot.State> {}
12
12
  export declare namespace ProgressTrack {
13
13
  type Props = ProgressTrackProps;
@@ -7,7 +7,7 @@ import type { ProgressRoot } from "../root/ProgressRoot.js";
7
7
  *
8
8
  * Documentation: [Base UI Progress](https://base-ui.com/react/components/progress)
9
9
  */
10
- export declare const ProgressValue: React.ForwardRefExoticComponent<ProgressValueProps & React.RefAttributes<HTMLSpanElement>>;
10
+ export declare const ProgressValue: React.ForwardRefExoticComponent<Omit<ProgressValueProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
11
11
  export interface ProgressValueProps extends Omit<BaseUIComponentProps<'span', ProgressRoot.State>, 'children'> {
12
12
  children?: null | ((formattedValue: string | null, value: number | null) => React.ReactNode);
13
13
  }
@@ -7,7 +7,7 @@ import { type TransitionStatus } from "../../utils/useTransitionStatus.js";
7
7
  *
8
8
  * Documentation: [Base UI Radio](https://base-ui.com/react/components/radio)
9
9
  */
10
- export declare const RadioIndicator: React.ForwardRefExoticComponent<RadioIndicatorProps & React.RefAttributes<HTMLSpanElement>>;
10
+ export declare const RadioIndicator: React.ForwardRefExoticComponent<Omit<RadioIndicatorProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
11
11
  export interface RadioIndicatorProps extends BaseUIComponentProps<'span', RadioIndicator.State> {
12
12
  /**
13
13
  * Whether to keep the HTML element in the DOM when the radio button is inactive.
@@ -7,7 +7,7 @@ import type { FieldRoot } from "../../field/root/FieldRoot.js";
7
7
  *
8
8
  * Documentation: [Base UI Radio](https://base-ui.com/react/components/radio)
9
9
  */
10
- export declare const RadioRoot: React.ForwardRefExoticComponent<RadioRootProps & React.RefAttributes<HTMLElement>>;
10
+ export declare const RadioRoot: React.ForwardRefExoticComponent<Omit<RadioRootProps, "ref"> & React.RefAttributes<HTMLElement>>;
11
11
  export interface RadioRootState extends FieldRoot.State {
12
12
  /** Whether the radio button is currently selected. */
13
13
  checked: boolean;
@@ -3,7 +3,7 @@
3
3
  import * as React from 'react';
4
4
  import { useMergedRefs } from '@base-ui/utils/useMergedRefs';
5
5
  import { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';
6
- import { visuallyHidden } from '@base-ui/utils/visuallyHidden';
6
+ import { visuallyHidden, visuallyHiddenInput } from '@base-ui/utils/visuallyHidden';
7
7
  import { createChangeEventDetails } from "../../utils/createBaseUIEventDetails.js";
8
8
  import { REASONS } from "../../utils/reasons.js";
9
9
  import { EMPTY_OBJECT } from "../../utils/constants.js";
@@ -50,7 +50,8 @@ export const RadioRoot = /*#__PURE__*/React.forwardRef(function RadioRoot(compon
50
50
  touched,
51
51
  setTouched,
52
52
  validation,
53
- registerControlRef
53
+ registerControlRef,
54
+ name
54
55
  } = useRadioGroupContext();
55
56
  const {
56
57
  setDirty,
@@ -83,16 +84,15 @@ export const RadioRoot = /*#__PURE__*/React.forwardRef(function RadioRoot(compon
83
84
  implicit: false,
84
85
  controlRef: radioRef
85
86
  });
87
+ const hiddenInputId = nativeButton ? undefined : inputId;
86
88
  const rootProps = {
87
89
  role: 'radio',
88
90
  'aria-checked': checked,
89
91
  'aria-required': required || undefined,
90
- 'aria-disabled': disabled || undefined,
91
92
  'aria-readonly': readOnly || undefined,
92
93
  'aria-labelledby': labelId,
93
94
  [ACTIVE_COMPOSITE_ITEM]: checked ? '' : undefined,
94
- id,
95
- disabled,
95
+ id: nativeButton ? inputId : id,
96
96
  onKeyDown(event) {
97
97
  if (event.key === 'Enter') {
98
98
  event.preventDefault();
@@ -120,12 +120,12 @@ export const RadioRoot = /*#__PURE__*/React.forwardRef(function RadioRoot(compon
120
120
  disabled,
121
121
  native: nativeButton
122
122
  });
123
- const inputProps = React.useMemo(() => ({
123
+ const inputProps = {
124
124
  type: 'radio',
125
125
  ref: mergedInputRef,
126
- id: inputId,
126
+ id: hiddenInputId,
127
127
  tabIndex: -1,
128
- style: visuallyHidden,
128
+ style: name ? visuallyHiddenInput : visuallyHidden,
129
129
  'aria-hidden': true,
130
130
  disabled,
131
131
  checked,
@@ -151,7 +151,7 @@ export const RadioRoot = /*#__PURE__*/React.forwardRef(function RadioRoot(compon
151
151
  onFocus() {
152
152
  radioRef.current?.focus();
153
153
  }
154
- }), [checked, disabled, inputId, mergedInputRef, readOnly, required, setCheckedValue, setDirty, setFieldTouched, setFilled, validityData.initialValue, value]);
154
+ };
155
155
  const state = React.useMemo(() => ({
156
156
  ...fieldState,
157
157
  required,
@@ -9,7 +9,7 @@ import { REASONS } from "../utils/reasons.js";
9
9
  *
10
10
  * Documentation: [Base UI Radio Group](https://base-ui.com/react/components/radio)
11
11
  */
12
- export declare const RadioGroup: React.ForwardRefExoticComponent<RadioGroupProps & React.RefAttributes<HTMLDivElement>>;
12
+ export declare const RadioGroup: React.ForwardRefExoticComponent<Omit<RadioGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
13
13
  export interface RadioGroupState extends FieldRoot.State {
14
14
  /**
15
15
  * Whether the user should be unable to select a different radio button in the group.
@@ -41,17 +41,17 @@ export interface RadioGroupProps extends Omit<BaseUIComponentProps<'div', RadioG
41
41
  *
42
42
  * To render an uncontrolled radio group, use the `defaultValue` prop instead.
43
43
  */
44
- value?: unknown;
44
+ value?: any;
45
45
  /**
46
46
  * The uncontrolled value of the radio button that should be initially selected.
47
47
  *
48
48
  * To render a controlled radio group, use the `value` prop instead.
49
49
  */
50
- defaultValue?: unknown;
50
+ defaultValue?: any;
51
51
  /**
52
52
  * Callback fired when the value changes.
53
53
  */
54
- onValueChange?: (value: unknown, eventDetails: RadioGroup.ChangeEventDetails) => void;
54
+ onValueChange?: (value: any, eventDetails: RadioGroup.ChangeEventDetails) => void;
55
55
  /**
56
56
  * A ref to access the hidden input element.
57
57
  */
@@ -4,7 +4,7 @@ import * as React from 'react';
4
4
  import { useControlled } from '@base-ui/utils/useControlled';
5
5
  import { useMergedRefs } from '@base-ui/utils/useMergedRefs';
6
6
  import { useStableCallback } from '@base-ui/utils/useStableCallback';
7
- import { visuallyHidden } from '@base-ui/utils/visuallyHidden';
7
+ import { visuallyHidden, visuallyHiddenInput } from '@base-ui/utils/visuallyHidden';
8
8
  import { NOOP } from "../utils/noop.js";
9
9
  import { useBaseUiId } from "../utils/useBaseUiId.js";
10
10
  import { contains } from "../floating-ui-react/utils.js";
@@ -142,7 +142,7 @@ export const RadioGroup = /*#__PURE__*/React.forwardRef(function RadioGroup(comp
142
142
  'aria-labelledby': elementProps['aria-labelledby'] ?? fieldsetContext?.legendId,
143
143
  'aria-hidden': true,
144
144
  tabIndex: -1,
145
- style: visuallyHidden,
145
+ style: name ? visuallyHiddenInput : visuallyHidden,
146
146
  onChange: NOOP,
147
147
  // suppress a Next.js error
148
148
  onFocus() {
@@ -7,7 +7,7 @@ import type { ScrollAreaRoot } from "../root/ScrollAreaRoot.js";
7
7
  *
8
8
  * Documentation: [Base UI Scroll Area](https://base-ui.com/react/components/scroll-area)
9
9
  */
10
- export declare const ScrollAreaContent: React.ForwardRefExoticComponent<ScrollAreaContentProps & React.RefAttributes<HTMLDivElement>>;
10
+ export declare const ScrollAreaContent: React.ForwardRefExoticComponent<Omit<ScrollAreaContentProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
11
  export interface ScrollAreaContentState extends ScrollAreaRoot.State {}
12
12
  export interface ScrollAreaContentProps extends BaseUIComponentProps<'div', ScrollAreaContent.State> {}
13
13
  export declare namespace ScrollAreaContent {
@@ -29,7 +29,16 @@ export const ScrollAreaContent = /*#__PURE__*/React.forwardRef(function ScrollAr
29
29
  if (typeof ResizeObserver === 'undefined') {
30
30
  return undefined;
31
31
  }
32
- const ro = new ResizeObserver(computeThumbPosition);
32
+ let hasInitialized = false;
33
+ const ro = new ResizeObserver(() => {
34
+ // ResizeObserver fires once upon observing, so we skip the initial call
35
+ // to avoid double-calculating the thumb position on mount.
36
+ if (!hasInitialized) {
37
+ hasInitialized = true;
38
+ return;
39
+ }
40
+ computeThumbPosition();
41
+ });
33
42
  if (contentWrapperRef.current) {
34
43
  ro.observe(contentWrapperRef.current);
35
44
  }
@@ -6,7 +6,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
6
6
  *
7
7
  * Documentation: [Base UI Scroll Area](https://base-ui.com/react/components/scroll-area)
8
8
  */
9
- export declare const ScrollAreaCorner: React.ForwardRefExoticComponent<ScrollAreaCornerProps & React.RefAttributes<HTMLDivElement>>;
9
+ export declare const ScrollAreaCorner: React.ForwardRefExoticComponent<Omit<ScrollAreaCornerProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
10
10
  export interface ScrollAreaCornerState {}
11
11
  export interface ScrollAreaCornerProps extends BaseUIComponentProps<'div', ScrollAreaCorner.State> {}
12
12
  export declare namespace ScrollAreaCorner {
@@ -33,7 +33,7 @@ export const ScrollAreaCorner = /*#__PURE__*/React.forwardRef(function ScrollAre
33
33
  }
34
34
  }, elementProps]
35
35
  });
36
- if (hiddenState.cornerHidden) {
36
+ if (hiddenState.corner) {
37
37
  return null;
38
38
  }
39
39
  return element;
@@ -1,12 +1,35 @@
1
1
  import * as React from 'react';
2
2
  import type { BaseUIComponentProps } from "../../utils/types.js";
3
+ declare const DEFAULT_COORDS: {
4
+ x: number;
5
+ y: number;
6
+ };
7
+ declare const DEFAULT_SIZE: {
8
+ width: number;
9
+ height: number;
10
+ };
11
+ declare const DEFAULT_OVERFLOW_EDGES: {
12
+ xStart: boolean;
13
+ xEnd: boolean;
14
+ yStart: boolean;
15
+ yEnd: boolean;
16
+ };
17
+ declare const DEFAULT_HIDDEN_STATE: {
18
+ x: boolean;
19
+ y: boolean;
20
+ corner: boolean;
21
+ };
22
+ export type HiddenState = typeof DEFAULT_HIDDEN_STATE;
23
+ export type OverflowEdges = typeof DEFAULT_OVERFLOW_EDGES;
24
+ export type Size = typeof DEFAULT_SIZE;
25
+ export type Coords = typeof DEFAULT_COORDS;
3
26
  /**
4
27
  * Groups all parts of the scroll area.
5
28
  * Renders a `<div>` element.
6
29
  *
7
30
  * Documentation: [Base UI Scroll Area](https://base-ui.com/react/components/scroll-area)
8
31
  */
9
- export declare const ScrollAreaRoot: React.ForwardRefExoticComponent<ScrollAreaRootProps & React.RefAttributes<HTMLDivElement>>;
32
+ export declare const ScrollAreaRoot: React.ForwardRefExoticComponent<Omit<ScrollAreaRootProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
10
33
  export interface ScrollAreaRootState {
11
34
  /** Whether horizontal overflow is present. */
12
35
  hasOverflowX: boolean;
@@ -39,4 +62,5 @@ export interface ScrollAreaRootProps extends BaseUIComponentProps<'div', ScrollA
39
62
  export declare namespace ScrollAreaRoot {
40
63
  type State = ScrollAreaRootState;
41
64
  type Props = ScrollAreaRootProps;
42
- }
65
+ }
66
+ export {};