@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
@@ -26,7 +26,10 @@ var _mergeProps = require("../../merge-props");
26
26
  var _useButton = require("../../use-button");
27
27
  var _createBaseUIEventDetails = require("../../utils/createBaseUIEventDetails");
28
28
  var _reasons = require("../../utils/reasons");
29
+ var _useLabelableId = require("../../labelable-provider/useLabelableId");
29
30
  const BOUNDARY_OFFSET = 2;
31
+ const SELECTED_DELAY = 400;
32
+ const UNSELECTED_DELAY = 200;
30
33
  const stateAttributesMapping = {
31
34
  ..._popupStateMapping.pressableTriggerOpenStateMapping,
32
35
  ..._constants.fieldValidityMapping,
@@ -43,6 +46,7 @@ const SelectTrigger = exports.SelectTrigger = /*#__PURE__*/React.forwardRef(func
43
46
  const {
44
47
  render,
45
48
  className,
49
+ id: idProp,
46
50
  disabled: disabledProp = false,
47
51
  nativeButton = true,
48
52
  ...elementProps
@@ -63,6 +67,7 @@ const SelectTrigger = exports.SelectTrigger = /*#__PURE__*/React.forwardRef(func
63
67
  selectionRef,
64
68
  validation,
65
69
  readOnly,
70
+ required,
66
71
  alignItemWithTriggerActiveRef,
67
72
  disabled: selectDisabled,
68
73
  keyboardActiveRef
@@ -73,11 +78,16 @@ const SelectTrigger = exports.SelectTrigger = /*#__PURE__*/React.forwardRef(func
73
78
  const triggerProps = (0, _store.useStore)(store, _store2.selectors.triggerProps);
74
79
  const positionerElement = (0, _store.useStore)(store, _store2.selectors.positionerElement);
75
80
  const listElement = (0, _store.useStore)(store, _store2.selectors.listElement);
76
- const serializedValue = (0, _store.useStore)(store, _store2.selectors.serializedValue);
81
+ const rootId = (0, _store.useStore)(store, _store2.selectors.id);
82
+ const hasSelectedValue = (0, _store.useStore)(store, _store2.selectors.hasSelectedValue);
83
+ const shouldCheckNullItemLabel = !hasSelectedValue && open;
84
+ const hasNullItemLabel = (0, _store.useStore)(store, _store2.selectors.hasNullItemLabel, shouldCheckNullItemLabel);
85
+ const id = idProp ?? rootId;
86
+ (0, _useLabelableId.useLabelableId)({
87
+ id
88
+ });
77
89
  const positionerRef = (0, _useValueAsRef.useValueAsRef)(positionerElement);
78
90
  const triggerRef = React.useRef(null);
79
- const timeoutFocus = (0, _useTimeout.useTimeout)();
80
- const timeoutMouseDown = (0, _useTimeout.useTimeout)();
81
91
  const {
82
92
  getButtonProps,
83
93
  buttonRef
@@ -89,22 +99,37 @@ const SelectTrigger = exports.SelectTrigger = /*#__PURE__*/React.forwardRef(func
89
99
  store.set('triggerElement', element);
90
100
  });
91
101
  const mergedRef = (0, _useMergedRefs.useMergedRefs)(forwardedRef, triggerRef, buttonRef, setTriggerElement);
92
- const timeout1 = (0, _useTimeout.useTimeout)();
93
- const timeout2 = (0, _useTimeout.useTimeout)();
102
+ const timeoutFocus = (0, _useTimeout.useTimeout)();
103
+ const timeoutMouseDown = (0, _useTimeout.useTimeout)();
104
+ const selectedDelayTimeout = (0, _useTimeout.useTimeout)();
105
+ const unselectedDelayTimeout = (0, _useTimeout.useTimeout)();
94
106
  React.useEffect(() => {
95
107
  if (open) {
96
- // mousedown -> move to unselected item -> mouseup should not select within 200ms.
97
- timeout2.start(200, () => {
98
- selectionRef.current.allowUnselectedMouseUp = true;
108
+ const hasSelectedItemInList = hasSelectedValue || hasNullItemLabel;
109
+ const shouldDelayUnselectedMouseUpLonger = !hasSelectedItemInList;
99
110
 
100
- // mousedown -> mouseup on selected item should not select within 400ms.
101
- timeout1.start(200, () => {
111
+ // When there is no selected item in the list (placeholder-only selects), a mousedown
112
+ // on the trigger followed by a quick mouseup over the first option can accidentally select
113
+ // within 200ms. Delay unselected mouseup to match the safer 400ms window.
114
+ if (shouldDelayUnselectedMouseUpLonger) {
115
+ selectedDelayTimeout.start(SELECTED_DELAY, () => {
116
+ selectionRef.current.allowUnselectedMouseUp = true;
102
117
  selectionRef.current.allowSelectedMouseUp = true;
103
118
  });
104
- });
119
+ } else {
120
+ // mousedown -> move to unselected item -> mouseup should not select within 200ms.
121
+ unselectedDelayTimeout.start(UNSELECTED_DELAY, () => {
122
+ selectionRef.current.allowUnselectedMouseUp = true;
123
+
124
+ // mousedown -> mouseup on selected item should not select within 400ms.
125
+ selectedDelayTimeout.start(UNSELECTED_DELAY, () => {
126
+ selectionRef.current.allowSelectedMouseUp = true;
127
+ });
128
+ });
129
+ }
105
130
  return () => {
106
- timeout1.clear();
107
- timeout2.clear();
131
+ selectedDelayTimeout.clear();
132
+ unselectedDelayTimeout.clear();
108
133
  };
109
134
  }
110
135
  selectionRef.current = {
@@ -113,24 +138,27 @@ const SelectTrigger = exports.SelectTrigger = /*#__PURE__*/React.forwardRef(func
113
138
  };
114
139
  timeoutMouseDown.clear();
115
140
  return undefined;
116
- }, [open, selectionRef, timeoutMouseDown, timeout1, timeout2]);
141
+ }, [open, hasSelectedValue, hasNullItemLabel, selectionRef, timeoutMouseDown, selectedDelayTimeout, unselectedDelayTimeout]);
117
142
  const ariaControlsId = React.useMemo(() => {
118
143
  return listElement?.id ?? (0, _utils.getFloatingFocusElement)(positionerElement)?.id;
119
144
  }, [listElement, positionerElement]);
120
145
  const props = (0, _mergeProps.mergeProps)(triggerProps, {
146
+ id,
121
147
  role: 'combobox',
122
148
  'aria-expanded': open ? 'true' : 'false',
123
149
  'aria-haspopup': 'listbox',
124
150
  'aria-controls': open ? ariaControlsId : undefined,
125
151
  'aria-labelledby': labelId,
126
152
  'aria-readonly': readOnly || undefined,
153
+ 'aria-required': required || undefined,
127
154
  tabIndex: disabled ? -1 : 0,
128
155
  ref: mergedRef,
129
156
  onFocus(event) {
130
157
  setFocused(true);
158
+
131
159
  // The popup element shouldn't obscure the focused trigger.
132
160
  if (open && alignItemWithTriggerActiveRef.current) {
133
- setOpen(false, (0, _createBaseUIEventDetails.createChangeEventDetails)(_reasons.REASONS.focusOut, event.nativeEvent));
161
+ setOpen(false, (0, _createBaseUIEventDetails.createChangeEventDetails)(_reasons.REASONS.none, event.nativeEvent));
134
162
  }
135
163
 
136
164
  // Saves a re-render on initial click: `forceMount === true` mounts
@@ -142,7 +170,11 @@ const SelectTrigger = exports.SelectTrigger = /*#__PURE__*/React.forwardRef(func
142
170
  store.set('forceMount', true);
143
171
  });
144
172
  },
145
- onBlur() {
173
+ onBlur(event) {
174
+ // If focus is moving into the popup, don't count it as a blur.
175
+ if ((0, _utils.contains)(positionerElement, event.relatedTarget)) {
176
+ return;
177
+ }
146
178
  setTouched(true);
147
179
  setFocused(false);
148
180
  if (validationMode === 'onBlur') {
@@ -195,8 +227,8 @@ const SelectTrigger = exports.SelectTrigger = /*#__PURE__*/React.forwardRef(func
195
227
  disabled,
196
228
  value,
197
229
  readOnly,
198
- placeholder: !serializedValue
199
- }), [fieldState, open, disabled, value, readOnly, serializedValue]);
230
+ placeholder: !hasSelectedValue
231
+ }), [fieldState, open, disabled, value, readOnly, hasSelectedValue]);
200
232
  return (0, _useRenderElement.useRenderElement)('button', componentProps, {
201
233
  ref: [forwardedRef, triggerRef],
202
234
  state,
@@ -6,7 +6,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
6
6
  *
7
7
  * Documentation: [Base UI Select](https://base-ui.com/react/components/select)
8
8
  */
9
- export declare const SelectValue: React.ForwardRefExoticComponent<SelectValueProps & React.RefAttributes<HTMLSpanElement>>;
9
+ export declare const SelectValue: React.ForwardRefExoticComponent<Omit<SelectValueProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
10
10
  export interface SelectValueState {
11
11
  /**
12
12
  * The value of the currently selected item.
@@ -24,6 +24,11 @@ export interface SelectValueProps extends Omit<BaseUIComponentProps<'span', Sele
24
24
  * ```
25
25
  */
26
26
  children?: React.ReactNode | ((value: any) => React.ReactNode);
27
+ /**
28
+ * The placeholder value to display when no value is selected.
29
+ * This is overridden by `children` if specified, or by a null item's label in `items`.
30
+ */
31
+ placeholder?: React.ReactNode;
27
32
  }
28
33
  export declare namespace SelectValue {
29
34
  type State = SelectValueState;
@@ -27,6 +27,7 @@ const SelectValue = exports.SelectValue = /*#__PURE__*/React.forwardRef(function
27
27
  className,
28
28
  render,
29
29
  children: childrenProp,
30
+ placeholder,
30
31
  ...elementProps
31
32
  } = componentProps;
32
33
  const {
@@ -36,12 +37,25 @@ const SelectValue = exports.SelectValue = /*#__PURE__*/React.forwardRef(function
36
37
  const value = (0, _store.useStore)(store, _store2.selectors.value);
37
38
  const items = (0, _store.useStore)(store, _store2.selectors.items);
38
39
  const itemToStringLabel = (0, _store.useStore)(store, _store2.selectors.itemToStringLabel);
39
- const serializedValue = (0, _store.useStore)(store, _store2.selectors.serializedValue);
40
+ const hasSelectedValue = (0, _store.useStore)(store, _store2.selectors.hasSelectedValue);
41
+ const shouldCheckNullItemLabel = !hasSelectedValue && placeholder != null && childrenProp == null;
42
+ const hasNullLabel = (0, _store.useStore)(store, _store2.selectors.hasNullItemLabel, shouldCheckNullItemLabel);
40
43
  const state = React.useMemo(() => ({
41
44
  value,
42
- placeholder: !serializedValue
43
- }), [value, serializedValue]);
44
- const children = typeof childrenProp === 'function' ? childrenProp(value) : childrenProp ?? (Array.isArray(value) ? (0, _resolveValueLabel.resolveMultipleLabels)(value, itemToStringLabel) : (0, _resolveValueLabel.resolveSelectedLabel)(value, items, itemToStringLabel));
45
+ placeholder: !hasSelectedValue
46
+ }), [value, hasSelectedValue]);
47
+ let children = null;
48
+ if (typeof childrenProp === 'function') {
49
+ children = childrenProp(value);
50
+ } else if (childrenProp != null) {
51
+ children = childrenProp;
52
+ } else if (!hasSelectedValue && placeholder != null && !hasNullLabel) {
53
+ children = placeholder;
54
+ } else if (Array.isArray(value)) {
55
+ children = (0, _resolveValueLabel.resolveMultipleLabels)(value, items, itemToStringLabel);
56
+ } else {
57
+ children = (0, _resolveValueLabel.resolveSelectedLabel)(value, items, itemToStringLabel);
58
+ }
45
59
  const element = (0, _useRenderElement.useRenderElement)('span', componentProps, {
46
60
  state,
47
61
  ref: [forwardedRef, valueRef],
@@ -6,7 +6,7 @@ import type { BaseUIComponentProps, Orientation } from "../utils/types.js";
6
6
  *
7
7
  * Documentation: [Base UI Separator](https://base-ui.com/react/components/separator)
8
8
  */
9
- export declare const Separator: React.ForwardRefExoticComponent<SeparatorProps & React.RefAttributes<HTMLDivElement>>;
9
+ export declare const Separator: React.ForwardRefExoticComponent<Omit<SeparatorProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
10
10
  export interface SeparatorProps extends BaseUIComponentProps<'div', Separator.State> {
11
11
  /**
12
12
  * The orientation of the separator.
@@ -7,7 +7,7 @@ import type { SliderRoot } from "../root/SliderRoot.js";
7
7
  *
8
8
  * Documentation: [Base UI Slider](https://base-ui.com/react/components/slider)
9
9
  */
10
- export declare const SliderControl: React.ForwardRefExoticComponent<SliderControlProps & React.RefAttributes<HTMLDivElement>>;
10
+ export declare const SliderControl: React.ForwardRefExoticComponent<Omit<SliderControlProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
11
  export interface SliderControlProps extends BaseUIComponentProps<'div', SliderRoot.State> {}
12
12
  export declare namespace SliderControl {
13
13
  type State = SliderRoot.State;
@@ -273,7 +273,6 @@ const SliderControl = exports.SliderControl = /*#__PURE__*/React.forwardRef(func
273
273
  setDragging(false);
274
274
  pressedInputRef.current = null;
275
275
  pressedThumbCenterOffsetRef.current = null;
276
- pressedThumbIndexRef.current = -1;
277
276
  const fingerCoords = getFingerCoords(nativeEvent, touchIdRef);
278
277
  const finger = fingerCoords != null ? getFingerState(fingerCoords) : null;
279
278
  if (finger != null) {
@@ -284,6 +283,7 @@ const SliderControl = exports.SliderControl = /*#__PURE__*/React.forwardRef(func
284
283
  if ('pointerType' in nativeEvent && controlRef.current?.hasPointerCapture(nativeEvent.pointerId)) {
285
284
  controlRef.current?.releasePointerCapture(nativeEvent.pointerId);
286
285
  }
286
+ pressedThumbIndexRef.current = -1;
287
287
  touchIdRef.current = null;
288
288
  pressedValuesRef.current = null;
289
289
  // eslint-disable-next-line @typescript-eslint/no-use-before-define
@@ -12,14 +12,6 @@ export declare enum SliderControlDataAttributes {
12
12
  * Present when the slider is disabled.
13
13
  */
14
14
  disabled = "data-disabled",
15
- /**
16
- * Present when the slider is readonly.
17
- */
18
- readonly = "data-readonly",
19
- /**
20
- * Present when the slider is required.
21
- */
22
- required = "data-required",
23
15
  /**
24
16
  * Present when the slider is in valid state (when wrapped in Field.Root).
25
17
  */
@@ -18,14 +18,6 @@ let SliderControlDataAttributes = exports.SliderControlDataAttributes = /*#__PUR
18
18
  * Present when the slider is disabled.
19
19
  */
20
20
  SliderControlDataAttributes["disabled"] = "data-disabled";
21
- /**
22
- * Present when the slider is readonly.
23
- */
24
- SliderControlDataAttributes["readonly"] = "data-readonly";
25
- /**
26
- * Present when the slider is required.
27
- */
28
- SliderControlDataAttributes["required"] = "data-required";
29
21
  /**
30
22
  * Present when the slider is in valid state (when wrapped in Field.Root).
31
23
  */
@@ -7,7 +7,7 @@ import type { SliderRoot } from "../root/SliderRoot.js";
7
7
  *
8
8
  * Documentation: [Base UI Slider](https://base-ui.com/react/components/slider)
9
9
  */
10
- export declare const SliderIndicator: React.ForwardRefExoticComponent<SliderIndicatorProps & React.RefAttributes<HTMLDivElement>>;
10
+ export declare const SliderIndicator: React.ForwardRefExoticComponent<Omit<SliderIndicatorProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
11
  export interface SliderIndicatorProps extends BaseUIComponentProps<'div', SliderRoot.State> {}
12
12
  export declare namespace SliderIndicator {
13
13
  type Props = SliderIndicatorProps;
@@ -12,14 +12,6 @@ export declare enum SliderIndicatorDataAttributes {
12
12
  * Present when the slider is disabled.
13
13
  */
14
14
  disabled = "data-disabled",
15
- /**
16
- * Present when the slider is readonly.
17
- */
18
- readonly = "data-readonly",
19
- /**
20
- * Present when the slider is required.
21
- */
22
- required = "data-required",
23
15
  /**
24
16
  * Present when the slider is in valid state (when wrapped in Field.Root).
25
17
  */
@@ -18,14 +18,6 @@ let SliderIndicatorDataAttributes = exports.SliderIndicatorDataAttributes = /*#_
18
18
  * Present when the slider is disabled.
19
19
  */
20
20
  SliderIndicatorDataAttributes["disabled"] = "data-disabled";
21
- /**
22
- * Present when the slider is readonly.
23
- */
24
- SliderIndicatorDataAttributes["readonly"] = "data-readonly";
25
- /**
26
- * Present when the slider is required.
27
- */
28
- SliderIndicatorDataAttributes["required"] = "data-required";
29
21
  /**
30
22
  * Present when the slider is in valid state (when wrapped in Field.Root).
31
23
  */
@@ -12,14 +12,6 @@ export declare enum SliderRootDataAttributes {
12
12
  * Present when the slider is disabled.
13
13
  */
14
14
  disabled = "data-disabled",
15
- /**
16
- * Present when the slider is readonly.
17
- */
18
- readonly = "data-readonly",
19
- /**
20
- * Present when the slider is required.
21
- */
22
- required = "data-required",
23
15
  /**
24
16
  * Present when the slider is in valid state (when wrapped in Field.Root).
25
17
  */
@@ -18,14 +18,6 @@ let SliderRootDataAttributes = exports.SliderRootDataAttributes = /*#__PURE__*/f
18
18
  * Present when the slider is disabled.
19
19
  */
20
20
  SliderRootDataAttributes["disabled"] = "data-disabled";
21
- /**
22
- * Present when the slider is readonly.
23
- */
24
- SliderRootDataAttributes["readonly"] = "data-readonly";
25
- /**
26
- * Present when the slider is required.
27
- */
28
- SliderRootDataAttributes["required"] = "data-required";
29
21
  /**
30
22
  * Present when the slider is in valid state (when wrapped in Field.Root).
31
23
  */
@@ -3,12 +3,12 @@ import { BaseUIComponentProps } from "../../utils/types.js";
3
3
  import { type LabelableContext } from "../../labelable-provider/LabelableContext.js";
4
4
  import type { SliderRoot } from "../root/SliderRoot.js";
5
5
  /**
6
- * The draggable part of the the slider at the tip of the indicator.
6
+ * The draggable part of the slider at the tip of the indicator.
7
7
  * Renders a `<div>` element and a nested `<input type="range">`.
8
8
  *
9
9
  * Documentation: [Base UI Slider](https://base-ui.com/react/components/slider)
10
10
  */
11
- export declare const SliderThumb: React.ForwardRefExoticComponent<SliderThumbProps & React.RefAttributes<HTMLDivElement>>;
11
+ export declare const SliderThumb: React.ForwardRefExoticComponent<Omit<SliderThumbProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
12
12
  export interface ThumbMetadata {
13
13
  inputId: LabelableContext['controlId'];
14
14
  }
@@ -20,6 +20,7 @@ var _valueToPercent = require("../../utils/valueToPercent");
20
20
  var _composite = require("../../composite/composite");
21
21
  var _useCompositeListItem = require("../../composite/list/useCompositeListItem");
22
22
  var _DirectionContext = require("../../direction-provider/DirectionContext");
23
+ var _CSPContext = require("../../csp-provider/CSPContext");
23
24
  var _FieldRootContext = require("../../field/root/FieldRootContext");
24
25
  var _useLabelableId = require("../../labelable-provider/useLabelableId");
25
26
  var _getMidpoint = require("../utils/getMidpoint");
@@ -50,7 +51,7 @@ function getNewValue(thumbValue, step, direction, min, max) {
50
51
  }
51
52
 
52
53
  /**
53
- * The draggable part of the the slider at the tip of the indicator.
54
+ * The draggable part of the slider at the tip of the indicator.
54
55
  * Renders a `<div>` element and a nested `<input type="range">`.
55
56
  *
56
57
  * Documentation: [Base UI Slider](https://base-ui.com/react/components/slider)
@@ -75,6 +76,9 @@ const SliderThumb = exports.SliderThumb = /*#__PURE__*/React.forwardRef(function
75
76
  tabIndex: tabIndexProp,
76
77
  ...elementProps
77
78
  } = componentProps;
79
+ const {
80
+ nonce
81
+ } = (0, _CSPContext.useCSPContext)();
78
82
  const id = (0, _useBaseUiId.useBaseUiId)(idProp);
79
83
  const {
80
84
  active: activeIndex,
@@ -309,7 +313,9 @@ const SliderThumb = exports.SliderThumb = /*#__PURE__*/React.forwardRef(function
309
313
  // this must be rendered with the last thumb to ensure all
310
314
  // preceding thumbs are already rendered in the DOM
311
315
  last && /*#__PURE__*/(0, _jsxRuntime.jsx)("script", {
316
+ nonce: nonce
312
317
  // eslint-disable-next-line react/no-danger
318
+ ,
313
319
  dangerouslySetInnerHTML: {
314
320
  __html: _prehydrationScript.script
315
321
  },
@@ -16,14 +16,6 @@ export declare enum SliderThumbDataAttributes {
16
16
  * Present when the slider is disabled.
17
17
  */
18
18
  disabled = "data-disabled",
19
- /**
20
- * Present when the slider is readonly.
21
- */
22
- readonly = "data-readonly",
23
- /**
24
- * Present when the slider is required.
25
- */
26
- required = "data-required",
27
19
  /**
28
20
  * Present when the slider is in valid state (when wrapped in Field.Root).
29
21
  */
@@ -22,14 +22,6 @@ let SliderThumbDataAttributes = exports.SliderThumbDataAttributes = /*#__PURE__*
22
22
  * Present when the slider is disabled.
23
23
  */
24
24
  SliderThumbDataAttributes["disabled"] = "data-disabled";
25
- /**
26
- * Present when the slider is readonly.
27
- */
28
- SliderThumbDataAttributes["readonly"] = "data-readonly";
29
- /**
30
- * Present when the slider is required.
31
- */
32
- SliderThumbDataAttributes["required"] = "data-required";
33
25
  /**
34
26
  * Present when the slider is in valid state (when wrapped in Field.Root).
35
27
  */
@@ -7,7 +7,7 @@ import type { SliderRoot } from "../root/SliderRoot.js";
7
7
  *
8
8
  * Documentation: [Base UI Slider](https://base-ui.com/react/components/slider)
9
9
  */
10
- export declare const SliderTrack: React.ForwardRefExoticComponent<SliderTrackProps & React.RefAttributes<HTMLElement>>;
10
+ export declare const SliderTrack: React.ForwardRefExoticComponent<Omit<SliderTrackProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
11
  export interface SliderTrackProps extends BaseUIComponentProps<'div', SliderRoot.State> {}
12
12
  export declare namespace SliderTrack {
13
13
  type Props = SliderTrackProps;
@@ -12,14 +12,6 @@ export declare enum SliderTrackDataAttributes {
12
12
  * Present when the slider is disabled.
13
13
  */
14
14
  disabled = "data-disabled",
15
- /**
16
- * Present when the slider is readonly.
17
- */
18
- readonly = "data-readonly",
19
- /**
20
- * Present when the slider is required.
21
- */
22
- required = "data-required",
23
15
  /**
24
16
  * Present when the slider is in valid state (when wrapped in Field.Root).
25
17
  */
@@ -18,14 +18,6 @@ let SliderTrackDataAttributes = exports.SliderTrackDataAttributes = /*#__PURE__*
18
18
  * Present when the slider is disabled.
19
19
  */
20
20
  SliderTrackDataAttributes["disabled"] = "data-disabled";
21
- /**
22
- * Present when the slider is readonly.
23
- */
24
- SliderTrackDataAttributes["readonly"] = "data-readonly";
25
- /**
26
- * Present when the slider is required.
27
- */
28
- SliderTrackDataAttributes["required"] = "data-required";
29
21
  /**
30
22
  * Present when the slider is in valid state (when wrapped in Field.Root).
31
23
  */
@@ -7,7 +7,7 @@ import type { SliderRoot } from "../root/SliderRoot.js";
7
7
  *
8
8
  * Documentation: [Base UI Slider](https://base-ui.com/react/components/slider)
9
9
  */
10
- export declare const SliderValue: React.ForwardRefExoticComponent<SliderValueProps & React.RefAttributes<HTMLOutputElement>>;
10
+ export declare const SliderValue: React.ForwardRefExoticComponent<Omit<SliderValueProps, "ref"> & React.RefAttributes<HTMLOutputElement>>;
11
11
  export interface SliderValueProps extends Omit<BaseUIComponentProps<'output', SliderRoot.State>, 'children'> {
12
12
  children?: null | ((formattedValues: readonly string[], values: readonly number[]) => React.ReactNode);
13
13
  }
@@ -12,14 +12,6 @@ export declare enum SliderValueDataAttributes {
12
12
  * Present when the slider is disabled.
13
13
  */
14
14
  disabled = "data-disabled",
15
- /**
16
- * Present when the slider is readonly.
17
- */
18
- readonly = "data-readonly",
19
- /**
20
- * Present when the slider is required.
21
- */
22
- required = "data-required",
23
15
  /**
24
16
  * Present when the slider is in valid state (when wrapped in Field.Root).
25
17
  */
@@ -18,14 +18,6 @@ let SliderValueDataAttributes = exports.SliderValueDataAttributes = /*#__PURE__*
18
18
  * Present when the slider is disabled.
19
19
  */
20
20
  SliderValueDataAttributes["disabled"] = "data-disabled";
21
- /**
22
- * Present when the slider is readonly.
23
- */
24
- SliderValueDataAttributes["readonly"] = "data-readonly";
25
- /**
26
- * Present when the slider is required.
27
- */
28
- SliderValueDataAttributes["required"] = "data-required";
29
21
  /**
30
22
  * Present when the slider is in valid state (when wrapped in Field.Root).
31
23
  */
@@ -9,7 +9,7 @@ import type { BaseUIChangeEventDetails } from "../../types/index.js";
9
9
  *
10
10
  * Documentation: [Base UI Switch](https://base-ui.com/react/components/switch)
11
11
  */
12
- export declare const SwitchRoot: React.ForwardRefExoticComponent<SwitchRootProps & React.RefAttributes<HTMLElement>>;
12
+ export declare const SwitchRoot: React.ForwardRefExoticComponent<Omit<SwitchRootProps, "ref"> & React.RefAttributes<HTMLElement>>;
13
13
  export interface SwitchRootState extends FieldRoot.State {
14
14
  /**
15
15
  * Whether the switch is currently active.
@@ -73,6 +73,11 @@ export interface SwitchRootProps extends NonNativeButtonProps, Omit<BaseUICompon
73
73
  * @default false
74
74
  */
75
75
  required?: boolean;
76
+ /**
77
+ * The value submitted with the form when the switch is on.
78
+ * By default, switch submits the "on" value, matching native checkbox behavior.
79
+ */
80
+ value?: string;
76
81
  /**
77
82
  * The value submitted with the form when the switch is off.
78
83
  * By default, unchecked switches do not submit any value, matching native checkbox behavior.
@@ -12,6 +12,7 @@ var _useStableCallback = require("@base-ui/utils/useStableCallback");
12
12
  var _useMergedRefs = require("@base-ui/utils/useMergedRefs");
13
13
  var _useIsoLayoutEffect = require("@base-ui/utils/useIsoLayoutEffect");
14
14
  var _visuallyHidden = require("@base-ui/utils/visuallyHidden");
15
+ var _empty = require("@base-ui/utils/empty");
15
16
  var _useRenderElement = require("../../utils/useRenderElement");
16
17
  var _mergeProps = require("../../merge-props");
17
18
  var _useBaseUiId = require("../../utils/useBaseUiId");
@@ -48,6 +49,7 @@ const SwitchRoot = exports.SwitchRoot = /*#__PURE__*/React.forwardRef(function S
48
49
  disabled: disabledProp = false,
49
50
  render,
50
51
  uncheckedValue,
52
+ value,
51
53
  ...elementProps
52
54
  } = componentProps;
53
55
  const {
@@ -76,11 +78,12 @@ const SwitchRoot = exports.SwitchRoot = /*#__PURE__*/React.forwardRef(function S
76
78
  const handleInputRef = (0, _useMergedRefs.useMergedRefs)(inputRef, externalInputRef, validation.inputRef);
77
79
  const switchRef = React.useRef(null);
78
80
  const id = (0, _useBaseUiId.useBaseUiId)();
79
- const inputId = (0, _useLabelableId.useLabelableId)({
81
+ const controlId = (0, _useLabelableId.useLabelableId)({
80
82
  id: idProp,
81
83
  implicit: false,
82
84
  controlRef: switchRef
83
85
  });
86
+ const hiddenInputId = nativeButton ? undefined : controlId;
84
87
  const [checked, setCheckedState] = (0, _useControlled.useControlled)({
85
88
  controlled: checkedProp,
86
89
  default: Boolean(defaultChecked),
@@ -118,10 +121,11 @@ const SwitchRoot = exports.SwitchRoot = /*#__PURE__*/React.forwardRef(function S
118
121
  native: nativeButton
119
122
  });
120
123
  const rootProps = {
121
- id,
124
+ id: nativeButton ? controlId : id,
122
125
  role: 'switch',
123
126
  'aria-checked': checked,
124
127
  'aria-readonly': readOnly || undefined,
128
+ 'aria-required': required || undefined,
125
129
  'aria-labelledby': labelId,
126
130
  onFocus() {
127
131
  if (!disabled) {
@@ -150,10 +154,10 @@ const SwitchRoot = exports.SwitchRoot = /*#__PURE__*/React.forwardRef(function S
150
154
  const inputProps = React.useMemo(() => (0, _mergeProps.mergeProps)({
151
155
  checked,
152
156
  disabled,
153
- id: inputId,
157
+ id: hiddenInputId,
154
158
  name,
155
159
  required,
156
- style: _visuallyHidden.visuallyHidden,
160
+ style: name ? _visuallyHidden.visuallyHiddenInput : _visuallyHidden.visuallyHidden,
157
161
  tabIndex: -1,
158
162
  type: 'checkbox',
159
163
  'aria-hidden': true,
@@ -174,7 +178,12 @@ const SwitchRoot = exports.SwitchRoot = /*#__PURE__*/React.forwardRef(function S
174
178
  onFocus() {
175
179
  switchRef.current?.focus();
176
180
  }
177
- }, validation.getInputValidationProps), [checked, disabled, handleInputRef, inputId, name, onCheckedChange, required, setCheckedState, validation]);
181
+ }, validation.getInputValidationProps,
182
+ // React <19 sets an empty value if `undefined` is passed explicitly
183
+ // To avoid this, we only set the value if it's defined
184
+ value !== undefined ? {
185
+ value
186
+ } : _empty.EMPTY_OBJECT), [checked, disabled, handleInputRef, hiddenInputId, name, onCheckedChange, required, setCheckedState, validation, value]);
178
187
  const state = React.useMemo(() => ({
179
188
  ...fieldState,
180
189
  checked,
@@ -7,7 +7,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
7
7
  *
8
8
  * Documentation: [Base UI Switch](https://base-ui.com/react/components/switch)
9
9
  */
10
- export declare const SwitchThumb: React.ForwardRefExoticComponent<SwitchThumbProps & React.RefAttributes<HTMLSpanElement>>;
10
+ export declare const SwitchThumb: React.ForwardRefExoticComponent<Omit<SwitchThumbProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
11
11
  export interface SwitchThumbProps extends BaseUIComponentProps<'span', SwitchThumb.State> {}
12
12
  export interface SwitchThumbState extends SwitchRoot.State {}
13
13
  export declare namespace SwitchThumb {
@@ -8,7 +8,7 @@ import type { TabsTab } from "../tab/TabsTab.js";
8
8
  *
9
9
  * Documentation: [Base UI Tabs](https://base-ui.com/react/components/tabs)
10
10
  */
11
- export declare const TabsIndicator: React.ForwardRefExoticComponent<TabsIndicatorProps & React.RefAttributes<HTMLSpanElement>>;
11
+ export declare const TabsIndicator: React.ForwardRefExoticComponent<Omit<TabsIndicatorProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
12
12
  export interface TabsIndicatorState extends TabsRoot.State {
13
13
  activeTabPosition: TabsTab.Position | null;
14
14
  activeTabSize: TabsTab.Size | null;