@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
@@ -7,7 +7,7 @@ import type { NumberFieldRoot } from "../root/NumberFieldRoot.js";
7
7
  *
8
8
  * Documentation: [Base UI Number Field](https://base-ui.com/react/components/number-field)
9
9
  */
10
- export declare const NumberFieldScrubArea: React.ForwardRefExoticComponent<NumberFieldScrubAreaProps & React.RefAttributes<HTMLSpanElement>>;
10
+ export declare const NumberFieldScrubArea: React.ForwardRefExoticComponent<Omit<NumberFieldScrubAreaProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
11
11
  export interface NumberFieldScrubAreaState extends NumberFieldRoot.State {}
12
12
  export interface NumberFieldScrubAreaProps extends BaseUIComponentProps<'span', NumberFieldScrubArea.State> {
13
13
  /**
@@ -10,7 +10,7 @@ import type { NumberFieldRoot } from "../root/NumberFieldRoot.js";
10
10
  *
11
11
  * Documentation: [Base UI Number Field](https://base-ui.com/react/components/number-field)
12
12
  */
13
- export declare const NumberFieldScrubAreaCursor: React.ForwardRefExoticComponent<NumberFieldScrubAreaCursorProps & React.RefAttributes<HTMLSpanElement>>;
13
+ export declare const NumberFieldScrubAreaCursor: React.ForwardRefExoticComponent<Omit<NumberFieldScrubAreaCursorProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
14
14
  export interface NumberFieldScrubAreaCursorState extends NumberFieldRoot.State {}
15
15
  export interface NumberFieldScrubAreaCursorProps extends BaseUIComponentProps<'span', NumberFieldScrubAreaCursor.State> {}
16
16
  export declare namespace NumberFieldScrubAreaCursor {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@base-ui/react",
3
- "version": "1.0.0-rc.2",
3
+ "version": "1.1.0",
4
4
  "author": "MUI Team",
5
5
  "description": "Base UI is a library of headless ('unstyled') React components and low-level hooks. You gain complete control over your app's CSS and accessibility features.",
6
6
  "keywords": [
@@ -30,9 +30,9 @@
30
30
  "@floating-ui/react-dom": "^2.1.6",
31
31
  "@floating-ui/utils": "^0.2.10",
32
32
  "reselect": "^5.1.1",
33
- "tabbable": "^6.3.0",
33
+ "tabbable": "^6.4.0",
34
34
  "use-sync-external-store": "^1.6.0",
35
- "@base-ui/utils": "0.2.3"
35
+ "@base-ui/utils": "0.2.4"
36
36
  },
37
37
  "peerDependencies": {
38
38
  "@types/react": "^17 || ^18 || ^19",
@@ -155,6 +155,16 @@
155
155
  "default": "./esm/combobox/index.js"
156
156
  }
157
157
  },
158
+ "./csp-provider": {
159
+ "require": {
160
+ "types": "./csp-provider/index.d.ts",
161
+ "default": "./csp-provider/index.js"
162
+ },
163
+ "default": {
164
+ "types": "./esm/csp-provider/index.d.ts",
165
+ "default": "./esm/csp-provider/index.js"
166
+ }
167
+ },
158
168
  "./context-menu": {
159
169
  "require": {
160
170
  "types": "./context-menu/index.d.ts",
@@ -7,7 +7,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
7
7
  *
8
8
  * Documentation: [Base UI Popover](https://base-ui.com/react/components/popover)
9
9
  */
10
- export declare const PopoverArrow: React.ForwardRefExoticComponent<PopoverArrowProps & React.RefAttributes<HTMLDivElement>>;
10
+ export declare const PopoverArrow: React.ForwardRefExoticComponent<Omit<PopoverArrowProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
11
  export interface PopoverArrowState {
12
12
  /**
13
13
  * Whether the popover is currently open.
@@ -7,7 +7,7 @@ import type { TransitionStatus } from "../../utils/useTransitionStatus.js";
7
7
  *
8
8
  * Documentation: [Base UI Popover](https://base-ui.com/react/components/popover)
9
9
  */
10
- export declare const PopoverBackdrop: React.ForwardRefExoticComponent<PopoverBackdropProps & React.RefAttributes<HTMLDivElement>>;
10
+ export declare const PopoverBackdrop: React.ForwardRefExoticComponent<Omit<PopoverBackdropProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
11
  export interface PopoverBackdropState {
12
12
  /**
13
13
  * Whether the popover is currently open.
@@ -6,7 +6,7 @@ import type { BaseUIComponentProps, NativeButtonProps } from "../../utils/types.
6
6
  *
7
7
  * Documentation: [Base UI Popover](https://base-ui.com/react/components/popover)
8
8
  */
9
- export declare const PopoverClose: React.ForwardRefExoticComponent<PopoverCloseProps & React.RefAttributes<HTMLButtonElement>>;
9
+ export declare const PopoverClose: React.ForwardRefExoticComponent<Omit<PopoverCloseProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
10
10
  export interface PopoverCloseState {}
11
11
  export interface PopoverCloseProps extends NativeButtonProps, BaseUIComponentProps<'button', PopoverClose.State> {}
12
12
  export declare namespace PopoverClose {
@@ -6,7 +6,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
6
6
  *
7
7
  * Documentation: [Base UI Popover](https://base-ui.com/react/components/popover)
8
8
  */
9
- export declare const PopoverDescription: React.ForwardRefExoticComponent<PopoverDescriptionProps & React.RefAttributes<HTMLParagraphElement>>;
9
+ export declare const PopoverDescription: React.ForwardRefExoticComponent<Omit<PopoverDescriptionProps, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
10
10
  export interface PopoverDescriptionState {}
11
11
  export interface PopoverDescriptionProps extends BaseUIComponentProps<'p', PopoverDescription.State> {}
12
12
  export declare namespace PopoverDescription {
@@ -9,7 +9,7 @@ import type { TransitionStatus } from "../../utils/useTransitionStatus.js";
9
9
  *
10
10
  * Documentation: [Base UI Popover](https://base-ui.com/react/components/popover)
11
11
  */
12
- export declare const PopoverPopup: React.ForwardRefExoticComponent<PopoverPopupProps & React.RefAttributes<HTMLDivElement>>;
12
+ export declare const PopoverPopup: React.ForwardRefExoticComponent<Omit<PopoverPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
13
13
  export interface PopoverPopupState {
14
14
  /**
15
15
  * Whether the popover is currently open.
@@ -16,8 +16,6 @@ var _stateAttributesMapping = require("../../utils/stateAttributesMapping");
16
16
  var _useOpenChangeComplete = require("../../utils/useOpenChangeComplete");
17
17
  var _useRenderElement = require("../../utils/useRenderElement");
18
18
  var _reasons = require("../../utils/reasons");
19
- var _usePopupAutoResize = require("../../utils/usePopupAutoResize");
20
- var _DirectionContext = require("../../direction-provider/DirectionContext");
21
19
  var _composite = require("../../composite/composite");
22
20
  var _ToolbarRootContext = require("../../toolbar/root/ToolbarRootContext");
23
21
  var _getDisabledMountTransitionStyles = require("../../utils/getDisabledMountTransitionStyles");
@@ -46,7 +44,6 @@ const PopoverPopup = exports.PopoverPopup = /*#__PURE__*/React.forwardRef(functi
46
44
  } = (0, _PopoverRootContext.usePopoverRootContext)();
47
45
  const positioner = (0, _PopoverPositionerContext.usePopoverPositionerContext)();
48
46
  const insideToolbar = (0, _ToolbarRootContext.useToolbarRootContext)(true) != null;
49
- const direction = (0, _DirectionContext.useDirection)();
50
47
  const open = store.useState('open');
51
48
  const openMethod = store.useState('openMethod');
52
49
  const instantType = store.useState('instantType');
@@ -57,9 +54,6 @@ const PopoverPopup = exports.PopoverPopup = /*#__PURE__*/React.forwardRef(functi
57
54
  const modal = store.useState('modal');
58
55
  const mounted = store.useState('mounted');
59
56
  const openReason = store.useState('openChangeReason');
60
- const popupElement = store.useState('popupElement');
61
- const payload = store.useState('payload');
62
- const positionerElement = store.useState('positionerElement');
63
57
  const activeTriggerElement = store.useState('activeTriggerElement');
64
58
  const floatingContext = store.useState('floatingRootContext');
65
59
  (0, _useOpenChangeComplete.useOpenChangeComplete)({
@@ -99,30 +93,6 @@ const PopoverPopup = exports.PopoverPopup = /*#__PURE__*/React.forwardRef(functi
99
93
  const setPopupElement = React.useCallback(element => {
100
94
  store.set('popupElement', element);
101
95
  }, [store]);
102
- function handleMeasureLayout() {
103
- floatingContext.context.events.emit('measure-layout');
104
- }
105
- function handleMeasureLayoutComplete(previousDimensions, nextDimensions) {
106
- floatingContext.context.events.emit('measure-layout-complete', {
107
- previousDimensions,
108
- nextDimensions
109
- });
110
- }
111
-
112
- // If there's just one trigger, we can skip the auto-resize logic as
113
- // the popover will always be anchored to the same position.
114
- const autoresizeEnabled = React.useCallback(() => store.context.triggerElements.size > 1, [store]);
115
- (0, _usePopupAutoResize.usePopupAutoResize)({
116
- popupElement,
117
- positionerElement,
118
- mounted,
119
- content: payload,
120
- enabled: autoresizeEnabled,
121
- onMeasureLayout: handleMeasureLayout,
122
- onMeasureLayoutComplete: handleMeasureLayoutComplete,
123
- side: positioner.side,
124
- direction
125
- });
126
96
  const element = (0, _useRenderElement.useRenderElement)('div', componentProps, {
127
97
  state,
128
98
  ref: [forwardedRef, store.context.popupRef, setPopupElement],
@@ -7,7 +7,7 @@ import { FloatingPortal } from "../../floating-ui-react/index.js";
7
7
  *
8
8
  * Documentation: [Base UI Popover](https://base-ui.com/react/components/popover)
9
9
  */
10
- export declare const PopoverPortal: React.ForwardRefExoticComponent<PopoverPortalProps & React.RefAttributes<HTMLDivElement>>;
10
+ export declare const PopoverPortal: React.ForwardRefExoticComponent<Omit<PopoverPortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
11
  export declare namespace PopoverPortal {
12
12
  interface State {}
13
13
  }
@@ -7,7 +7,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
7
7
  *
8
8
  * Documentation: [Base UI Popover](https://base-ui.com/react/components/popover)
9
9
  */
10
- export declare const PopoverPositioner: React.ForwardRefExoticComponent<PopoverPositionerProps & React.RefAttributes<HTMLDivElement>>;
10
+ export declare const PopoverPositioner: React.ForwardRefExoticComponent<Omit<PopoverPositionerProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
11
  export interface PopoverPositionerState {
12
12
  /**
13
13
  * Whether the popover is currently open.
@@ -61,6 +61,7 @@ const PopoverPositioner = exports.PopoverPositioner = /*#__PURE__*/React.forward
61
61
  const positionerElement = store.useState('positionerElement');
62
62
  const instantType = store.useState('instantType');
63
63
  const transitionStatus = store.useState('transitionStatus');
64
+ const hasViewport = store.useState('hasViewport');
64
65
  const prevTriggerElementRef = React.useRef(null);
65
66
  const runOnceAnimationsFinish = (0, _useAnimationsFinished.useAnimationsFinished)(positionerElement, false, false);
66
67
  const positioning = (0, _useAnchorPositioning.useAnchorPositioning)({
@@ -80,7 +81,7 @@ const PopoverPositioner = exports.PopoverPositioner = /*#__PURE__*/React.forward
80
81
  keepMounted,
81
82
  nodeId,
82
83
  collisionAvoidance,
83
- adaptiveOrigin: _adaptiveOriginMiddleware.adaptiveOrigin
84
+ adaptiveOrigin: hasViewport ? _adaptiveOriginMiddleware.adaptiveOrigin : undefined
84
85
  });
85
86
  const defaultProps = React.useMemo(() => {
86
87
  const hiddenStyles = {};
@@ -49,13 +49,13 @@ export interface PopoverRootProps<Payload = unknown> {
49
49
  modal?: boolean | 'trap-focus';
50
50
  /**
51
51
  * ID of the trigger that the popover is associated with.
52
- * This is useful in conjuntion with the `open` prop to create a controlled popover.
52
+ * This is useful in conjunction with the `open` prop to create a controlled popover.
53
53
  * There's no need to specify this prop when the popover is uncontrolled (i.e. when the `open` prop is not set).
54
54
  */
55
55
  triggerId?: string | null;
56
56
  /**
57
57
  * ID of the trigger that the popover is associated with.
58
- * This is useful in conjuntion with the `defaultOpen` prop to create an initially open popover.
58
+ * This is useful in conjunction with the `defaultOpen` prop to create an initially open popover.
59
59
  */
60
60
  defaultTriggerId?: string | null;
61
61
  /**
@@ -16,6 +16,7 @@ export type State<Payload> = PopupStoreState<Payload> & {
16
16
  descriptionElementId: string | undefined;
17
17
  openOnHover: boolean;
18
18
  closeDelay: number;
19
+ hasViewport: boolean;
19
20
  };
20
21
  type Context = PopupStoreContext<PopoverRoot.ChangeEventDetails> & {
21
22
  readonly popupRef: React.RefObject<HTMLElement | null>;
@@ -36,6 +37,7 @@ declare const selectors: {
36
37
  descriptionElementId: (state: State<unknown>) => string | undefined;
37
38
  openOnHover: (state: State<unknown>) => boolean;
38
39
  closeDelay: (state: State<unknown>) => number;
40
+ hasViewport: (state: State<unknown>) => boolean;
39
41
  open: (state: PopupStoreState<unknown>) => boolean;
40
42
  mounted: (state: PopupStoreState<unknown>) => boolean;
41
43
  transitionStatus: (state: PopupStoreState<unknown>) => import("../../utils/useTransitionStatus.js").TransitionStatus;
@@ -47,8 +49,8 @@ declare const selectors: {
47
49
  isTriggerActive: (state: PopupStoreState<unknown>, triggerId: string | undefined) => boolean;
48
50
  isOpenedByTrigger: (state: PopupStoreState<unknown>, triggerId: string | undefined) => boolean;
49
51
  isMountedByTrigger: (state: PopupStoreState<unknown>, triggerId: string | undefined) => boolean;
50
- triggerProps: (state: PopupStoreState<unknown>, isActive: boolean) => import("../../utils/types.js").HTMLProps;
51
- popupProps: (state: PopupStoreState<unknown>) => import("../../utils/types.js").HTMLProps;
52
+ triggerProps: (state: PopupStoreState<unknown>, isActive: boolean) => import("../../index.js").HTMLProps;
53
+ popupProps: (state: PopupStoreState<unknown>) => import("../../index.js").HTMLProps;
52
54
  popupElement: (state: PopupStoreState<unknown>) => HTMLElement | null;
53
55
  positionerElement: (state: PopupStoreState<unknown>) => HTMLElement | null;
54
56
  };
@@ -29,7 +29,8 @@ function createInitialState() {
29
29
  stickIfOpen: true,
30
30
  nested: false,
31
31
  openOnHover: false,
32
- closeDelay: 0
32
+ closeDelay: 0,
33
+ hasViewport: false
33
34
  };
34
35
  }
35
36
  const selectors = {
@@ -43,7 +44,8 @@ const selectors = {
43
44
  titleElementId: (0, _store.createSelector)(state => state.titleElementId),
44
45
  descriptionElementId: (0, _store.createSelector)(state => state.descriptionElementId),
45
46
  openOnHover: (0, _store.createSelector)(state => state.openOnHover),
46
- closeDelay: (0, _store.createSelector)(state => state.closeDelay)
47
+ closeDelay: (0, _store.createSelector)(state => state.closeDelay),
48
+ hasViewport: (0, _store.createSelector)(state => state.hasViewport)
47
49
  };
48
50
  class PopoverStore extends _store.ReactStore {
49
51
  constructor(initialState) {
@@ -121,10 +123,11 @@ class PopoverStore extends _store.ReactStore {
121
123
  }
122
124
  };
123
125
  static useStore(externalStore, initialState) {
124
- const store = (0, _useRefWithInit.useRefWithInit)(() => {
125
- return externalStore ?? new PopoverStore(initialState);
126
+ const internalStore = (0, _useRefWithInit.useRefWithInit)(() => {
127
+ return new PopoverStore(initialState);
126
128
  }).current;
127
- (0, _useOnMount.useOnMount)(store.disposeEffect);
129
+ const store = externalStore ?? internalStore;
130
+ (0, _useOnMount.useOnMount)(internalStore.disposeEffect);
128
131
  return store;
129
132
  }
130
133
  disposeEffect = () => {
@@ -6,7 +6,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
6
6
  *
7
7
  * Documentation: [Base UI Popover](https://base-ui.com/react/components/popover)
8
8
  */
9
- export declare const PopoverTitle: React.ForwardRefExoticComponent<PopoverTitleProps & React.RefAttributes<HTMLHeadingElement>>;
9
+ export declare const PopoverTitle: React.ForwardRefExoticComponent<Omit<PopoverTitleProps, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
10
10
  export interface PopoverTitleState {}
11
11
  export interface PopoverTitleProps extends BaseUIComponentProps<'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6', PopoverTitle.State> {}
12
12
  export declare namespace PopoverTitle {
@@ -129,8 +129,8 @@ const PopoverTrigger = exports.PopoverTrigger = /*#__PURE__*/React.forwardRef(fu
129
129
  ReactDOM.flushSync(() => {
130
130
  store.setOpen(false, (0, _createBaseUIEventDetails.createChangeEventDetails)(_reasons.REASONS.focusOut, event.nativeEvent, event.currentTarget));
131
131
  });
132
- let nextTabbable = (0, _utils.getTabbableAfterElement)(triggerElementRef.current);
133
- while (nextTabbable !== null && (0, _utils.contains)(positionerElement, nextTabbable) || nextTabbable?.hasAttribute('aria-hidden')) {
132
+ let nextTabbable = (0, _utils.getTabbableAfterElement)(store.context.triggerFocusTargetRef.current || triggerElementRef.current);
133
+ while (nextTabbable !== null && (0, _utils.contains)(positionerElement, nextTabbable)) {
134
134
  const prevTabbable = nextTabbable;
135
135
  nextTabbable = (0, _utils.getNextTabbable)(nextTabbable);
136
136
  if (nextTabbable === prevTabbable) {
@@ -8,7 +8,7 @@ import { BaseUIComponentProps } from "../../utils/types.js";
8
8
  *
9
9
  * Documentation: [Base UI Popover](https://base-ui.com/react/components/popover)
10
10
  */
11
- export declare const PopoverViewport: React.ForwardRefExoticComponent<PopoverViewport.Props & React.RefAttributes<HTMLDivElement>>;
11
+ export declare const PopoverViewport: React.ForwardRefExoticComponent<Omit<PopoverViewport.Props, "ref"> & React.RefAttributes<HTMLDivElement>>;
12
12
  export declare namespace PopoverViewport {
13
13
  interface Props extends BaseUIComponentProps<'div', State> {
14
14
  /**
@@ -13,9 +13,12 @@ var _usePreviousValue = require("@base-ui/utils/usePreviousValue");
13
13
  var _useIsoLayoutEffect = require("@base-ui/utils/useIsoLayoutEffect");
14
14
  var _useStableCallback = require("@base-ui/utils/useStableCallback");
15
15
  var _PopoverRootContext = require("../root/PopoverRootContext");
16
+ var _PopoverPositionerContext = require("../positioner/PopoverPositionerContext");
16
17
  var _useAnimationsFinished = require("../../utils/useAnimationsFinished");
18
+ var _usePopupAutoResize = require("../../utils/usePopupAutoResize");
17
19
  var _useRenderElement = require("../../utils/useRenderElement");
18
20
  var _PopoverViewportCssVars = require("./PopoverViewportCssVars");
21
+ var _DirectionContext = require("../../direction-provider/DirectionContext");
19
22
  var _jsxRuntime = require("react/jsx-runtime");
20
23
  const stateAttributesMapping = {
21
24
  activationDirection: value => value ? {
@@ -41,9 +44,14 @@ const PopoverViewport = exports.PopoverViewport = /*#__PURE__*/React.forwardRef(
41
44
  const {
42
45
  store
43
46
  } = (0, _PopoverRootContext.usePopoverRootContext)();
47
+ const positioner = (0, _PopoverPositionerContext.usePopoverPositionerContext)();
48
+ const direction = (0, _DirectionContext.useDirection)();
44
49
  const activeTrigger = store.useState('activeTriggerElement');
45
50
  const open = store.useState('open');
46
- const floatingContext = store.useState('floatingRootContext');
51
+ const mounted = store.useState('mounted');
52
+ const payload = store.useState('payload');
53
+ const popupElement = store.useState('popupElement');
54
+ const positionerElement = store.useState('positionerElement');
47
55
  const previousActiveTrigger = (0, _usePreviousValue.usePreviousValue)(open ? activeTrigger : null);
48
56
  const capturedNodeRef = React.useRef(null);
49
57
  const [previousContentNode, setPreviousContentNode] = React.useState(null);
@@ -54,6 +62,12 @@ const PopoverViewport = exports.PopoverViewport = /*#__PURE__*/React.forwardRef(
54
62
  const cleanupFrame = (0, _useAnimationFrame.useAnimationFrame)();
55
63
  const [previousContentDimensions, setPreviousContentDimensions] = React.useState(null);
56
64
  const [showStartingStyleAttribute, setShowStartingStyleAttribute] = React.useState(false);
65
+ (0, _useIsoLayoutEffect.useIsoLayoutEffect)(() => {
66
+ store.set('hasViewport', true);
67
+ return () => {
68
+ store.set('hasViewport', false);
69
+ };
70
+ }, [store]);
57
71
 
58
72
  // Capture a clone of the current content DOM subtree when not transitioning.
59
73
  // We can't store previous React nodes as they may be stateful; instead we capture DOM clones for visual continuity.
@@ -79,22 +93,14 @@ const PopoverViewport = exports.PopoverViewport = /*#__PURE__*/React.forwardRef(
79
93
  currentContainerRef.current?.style.setProperty('transition', 'none');
80
94
  previousContainerRef.current?.style.setProperty('display', 'none');
81
95
  });
82
- const handleMeasureLayoutComplete = (0, _useStableCallback.useStableCallback)(data => {
96
+ const handleMeasureLayoutComplete = (0, _useStableCallback.useStableCallback)(previousDimensions => {
83
97
  currentContainerRef.current?.style.removeProperty('animation');
84
98
  currentContainerRef.current?.style.removeProperty('transition');
85
99
  previousContainerRef.current?.style.removeProperty('display');
86
- if (!previousContentDimensions) {
87
- setPreviousContentDimensions(data.previousDimensions);
100
+ if (previousDimensions) {
101
+ setPreviousContentDimensions(previousDimensions);
88
102
  }
89
103
  });
90
- React.useEffect(() => {
91
- floatingContext.context.events.on('measure-layout', handleMeasureLayout);
92
- floatingContext.context.events.on('measure-layout-complete', handleMeasureLayoutComplete);
93
- return () => {
94
- floatingContext.context.events.off('measure-layout', handleMeasureLayout);
95
- floatingContext.context.events.off('measure-layout-complete', handleMeasureLayoutComplete);
96
- };
97
- }, [floatingContext, handleMeasureLayout, handleMeasureLayoutComplete]);
98
104
  const lastHandledTriggerRef = React.useRef(null);
99
105
  (0, _useIsoLayoutEffect.useIsoLayoutEffect)(() => {
100
106
  // When a trigger changes, set the captured children HTML to state,
@@ -157,6 +163,16 @@ const PopoverViewport = exports.PopoverViewport = /*#__PURE__*/React.forwardRef(
157
163
  }
158
164
  container.replaceChildren(...Array.from(previousContentNode.childNodes));
159
165
  }, [previousContentNode]);
166
+ (0, _usePopupAutoResize.usePopupAutoResize)({
167
+ popupElement,
168
+ positionerElement,
169
+ mounted,
170
+ content: payload,
171
+ onMeasureLayout: handleMeasureLayout,
172
+ onMeasureLayoutComplete: handleMeasureLayoutComplete,
173
+ side: positioner.side,
174
+ direction
175
+ });
160
176
  const state = React.useMemo(() => {
161
177
  return {
162
178
  activationDirection: getActivationDirection(newTriggerOffset),
@@ -7,7 +7,7 @@ import type { Align, Side } from "../../utils/useAnchorPositioning.js";
7
7
  *
8
8
  * Documentation: [Base UI Preview Card](https://base-ui.com/react/components/preview-card)
9
9
  */
10
- export declare const PreviewCardArrow: React.ForwardRefExoticComponent<PreviewCardArrowProps & React.RefAttributes<HTMLDivElement>>;
10
+ export declare const PreviewCardArrow: React.ForwardRefExoticComponent<Omit<PreviewCardArrowProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
11
  export interface PreviewCardArrowState {
12
12
  /**
13
13
  * Whether the preview card is currently open.
@@ -23,9 +23,7 @@ const PreviewCardArrow = exports.PreviewCardArrow = /*#__PURE__*/React.forwardRe
23
23
  className,
24
24
  ...elementProps
25
25
  } = componentProps;
26
- const {
27
- open
28
- } = (0, _PreviewCardContext.usePreviewCardRootContext)();
26
+ const store = (0, _PreviewCardContext.usePreviewCardRootContext)();
29
27
  const {
30
28
  arrowRef,
31
29
  side,
@@ -33,6 +31,7 @@ const PreviewCardArrow = exports.PreviewCardArrow = /*#__PURE__*/React.forwardRe
33
31
  arrowUncentered,
34
32
  arrowStyles
35
33
  } = (0, _PreviewCardPositionerContext.usePreviewCardPositionerContext)();
34
+ const open = store.useState('open');
36
35
  const state = React.useMemo(() => ({
37
36
  open,
38
37
  side,
@@ -7,7 +7,7 @@ import type { TransitionStatus } from "../../utils/useTransitionStatus.js";
7
7
  *
8
8
  * Documentation: [Base UI Preview Card](https://base-ui.com/react/components/preview-card)
9
9
  */
10
- export declare const PreviewCardBackdrop: React.ForwardRefExoticComponent<PreviewCardBackdropProps & React.RefAttributes<HTMLDivElement>>;
10
+ export declare const PreviewCardBackdrop: React.ForwardRefExoticComponent<Omit<PreviewCardBackdropProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
11
  export interface PreviewCardBackdropState {
12
12
  /**
13
13
  * Whether the preview card is currently open.
@@ -28,11 +28,10 @@ const PreviewCardBackdrop = exports.PreviewCardBackdrop = /*#__PURE__*/React.for
28
28
  className,
29
29
  ...elementProps
30
30
  } = componentProps;
31
- const {
32
- open,
33
- mounted,
34
- transitionStatus
35
- } = (0, _PreviewCardContext.usePreviewCardRootContext)();
31
+ const store = (0, _PreviewCardContext.usePreviewCardRootContext)();
32
+ const open = store.useState('open');
33
+ const mounted = store.useState('mounted');
34
+ const transitionStatus = store.useState('transitionStatus');
36
35
  const state = React.useMemo(() => ({
37
36
  open,
38
37
  transitionStatus
@@ -4,4 +4,6 @@ export { PreviewCardTrigger as Trigger } from "./trigger/PreviewCardTrigger.js";
4
4
  export { PreviewCardPositioner as Positioner } from "./positioner/PreviewCardPositioner.js";
5
5
  export { PreviewCardPopup as Popup } from "./popup/PreviewCardPopup.js";
6
6
  export { PreviewCardArrow as Arrow } from "./arrow/PreviewCardArrow.js";
7
- export { PreviewCardBackdrop as Backdrop } from "./backdrop/PreviewCardBackdrop.js";
7
+ export { PreviewCardBackdrop as Backdrop } from "./backdrop/PreviewCardBackdrop.js";
8
+ export { PreviewCardViewport as Viewport } from "./viewport/PreviewCardViewport.js";
9
+ export { createPreviewCardHandle as createHandle, PreviewCardHandle as Handle } from "./store/PreviewCardHandle.js";
@@ -15,6 +15,12 @@ Object.defineProperty(exports, "Backdrop", {
15
15
  return _PreviewCardBackdrop.PreviewCardBackdrop;
16
16
  }
17
17
  });
18
+ Object.defineProperty(exports, "Handle", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _PreviewCardHandle.PreviewCardHandle;
22
+ }
23
+ });
18
24
  Object.defineProperty(exports, "Popup", {
19
25
  enumerable: true,
20
26
  get: function () {
@@ -45,10 +51,24 @@ Object.defineProperty(exports, "Trigger", {
45
51
  return _PreviewCardTrigger.PreviewCardTrigger;
46
52
  }
47
53
  });
54
+ Object.defineProperty(exports, "Viewport", {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _PreviewCardViewport.PreviewCardViewport;
58
+ }
59
+ });
60
+ Object.defineProperty(exports, "createHandle", {
61
+ enumerable: true,
62
+ get: function () {
63
+ return _PreviewCardHandle.createPreviewCardHandle;
64
+ }
65
+ });
48
66
  var _PreviewCardRoot = require("./root/PreviewCardRoot");
49
67
  var _PreviewCardPortal = require("./portal/PreviewCardPortal");
50
68
  var _PreviewCardTrigger = require("./trigger/PreviewCardTrigger");
51
69
  var _PreviewCardPositioner = require("./positioner/PreviewCardPositioner");
52
70
  var _PreviewCardPopup = require("./popup/PreviewCardPopup");
53
71
  var _PreviewCardArrow = require("./arrow/PreviewCardArrow");
54
- var _PreviewCardBackdrop = require("./backdrop/PreviewCardBackdrop");
72
+ var _PreviewCardBackdrop = require("./backdrop/PreviewCardBackdrop");
73
+ var _PreviewCardViewport = require("./viewport/PreviewCardViewport");
74
+ var _PreviewCardHandle = require("./store/PreviewCardHandle");
@@ -8,7 +8,7 @@ import type { TransitionStatus } from "../../utils/useTransitionStatus.js";
8
8
  *
9
9
  * Documentation: [Base UI Preview Card](https://base-ui.com/react/components/preview-card)
10
10
  */
11
- export declare const PreviewCardPopup: React.ForwardRefExoticComponent<PreviewCardPopupProps & React.RefAttributes<HTMLDivElement>>;
11
+ export declare const PreviewCardPopup: React.ForwardRefExoticComponent<Omit<PreviewCardPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
12
12
  export interface PreviewCardPopupState {
13
13
  /**
14
14
  * Whether the preview card is currently open.
@@ -16,6 +16,7 @@ export interface PreviewCardPopupState {
16
16
  open: boolean;
17
17
  side: Side;
18
18
  align: Align;
19
+ instant: 'dismiss' | 'focus' | undefined;
19
20
  transitionStatus: TransitionStatus;
20
21
  }
21
22
  export interface PreviewCardPopupProps extends BaseUIComponentProps<'div', PreviewCardPopup.State> {}
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.PreviewCardPopup = void 0;
9
9
  var React = _interopRequireWildcard(require("react"));
10
+ var _useStableCallback = require("@base-ui/utils/useStableCallback");
10
11
  var _PreviewCardContext = require("../root/PreviewCardContext");
11
12
  var _PreviewCardPositionerContext = require("../positioner/PreviewCardPositionerContext");
12
13
  var _popupStateMapping = require("../../utils/popupStateMapping");
@@ -14,6 +15,7 @@ var _stateAttributesMapping = require("../../utils/stateAttributesMapping");
14
15
  var _useOpenChangeComplete = require("../../utils/useOpenChangeComplete");
15
16
  var _useRenderElement = require("../../utils/useRenderElement");
16
17
  var _getDisabledMountTransitionStyles = require("../../utils/getDisabledMountTransitionStyles");
18
+ var _floatingUiReact = require("../../floating-ui-react");
17
19
  const stateAttributesMapping = {
18
20
  ..._popupStateMapping.popupStateMapping,
19
21
  ..._stateAttributesMapping.transitionStatusMapping
@@ -31,35 +33,39 @@ const PreviewCardPopup = exports.PreviewCardPopup = /*#__PURE__*/React.forwardRe
31
33
  render,
32
34
  ...elementProps
33
35
  } = componentProps;
34
- const {
35
- open,
36
- transitionStatus,
37
- popupRef,
38
- onOpenChangeComplete,
39
- popupProps
40
- } = (0, _PreviewCardContext.usePreviewCardRootContext)();
36
+ const store = (0, _PreviewCardContext.usePreviewCardRootContext)();
41
37
  const {
42
38
  side,
43
39
  align
44
40
  } = (0, _PreviewCardPositionerContext.usePreviewCardPositionerContext)();
41
+ const open = store.useState('open');
42
+ const instantType = store.useState('instantType');
43
+ const transitionStatus = store.useState('transitionStatus');
44
+ const popupProps = store.useState('popupProps');
45
+ const floatingContext = store.useState('floatingRootContext');
45
46
  (0, _useOpenChangeComplete.useOpenChangeComplete)({
46
47
  open,
47
- ref: popupRef,
48
+ ref: store.context.popupRef,
48
49
  onComplete() {
49
50
  if (open) {
50
- onOpenChangeComplete?.(true);
51
+ store.context.onOpenChangeComplete?.(true);
51
52
  }
52
53
  }
53
54
  });
55
+ const getCloseDelay = (0, _useStableCallback.useStableCallback)(() => store.context.closeDelayRef.current);
56
+ (0, _floatingUiReact.useHoverFloatingInteraction)(floatingContext, {
57
+ closeDelay: getCloseDelay
58
+ });
54
59
  const state = React.useMemo(() => ({
55
60
  open,
56
61
  side,
57
62
  align,
63
+ instant: instantType,
58
64
  transitionStatus
59
- }), [open, side, align, transitionStatus]);
65
+ }), [open, side, align, instantType, transitionStatus]);
60
66
  const element = (0, _useRenderElement.useRenderElement)('div', componentProps, {
61
- ref: [popupRef, forwardedRef],
62
67
  state,
68
+ ref: [forwardedRef, store.context.popupRef, store.useStateSetter('popupElement')],
63
69
  props: [popupProps, (0, _getDisabledMountTransitionStyles.getDisabledMountTransitionStyles)(transitionStatus), elementProps],
64
70
  stateAttributesMapping
65
71
  });
@@ -7,7 +7,7 @@ import { FloatingPortalLite } from "../../utils/FloatingPortalLite.js";
7
7
  *
8
8
  * Documentation: [Base UI Preview Card](https://base-ui.com/react/components/preview-card)
9
9
  */
10
- export declare const PreviewCardPortal: React.ForwardRefExoticComponent<PreviewCardPortalProps & React.RefAttributes<HTMLDivElement>>;
10
+ export declare const PreviewCardPortal: React.ForwardRefExoticComponent<Omit<PreviewCardPortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
11
  export declare namespace PreviewCardPortal {
12
12
  interface State {}
13
13
  }
@@ -23,9 +23,8 @@ const PreviewCardPortal = exports.PreviewCardPortal = /*#__PURE__*/React.forward
23
23
  keepMounted = false,
24
24
  ...portalProps
25
25
  } = props;
26
- const {
27
- mounted
28
- } = (0, _PreviewCardContext.usePreviewCardRootContext)();
26
+ const store = (0, _PreviewCardContext.usePreviewCardRootContext)();
27
+ const mounted = store.useState('mounted');
29
28
  const shouldRender = mounted || keepMounted;
30
29
  if (!shouldRender) {
31
30
  return null;
@@ -7,7 +7,7 @@ import type { BaseUIComponentProps } from "../../utils/types.js";
7
7
  *
8
8
  * Documentation: [Base UI Preview Card](https://base-ui.com/react/components/preview-card)
9
9
  */
10
- export declare const PreviewCardPositioner: React.ForwardRefExoticComponent<PreviewCardPositionerProps & React.RefAttributes<HTMLDivElement>>;
10
+ export declare const PreviewCardPositioner: React.ForwardRefExoticComponent<Omit<PreviewCardPositionerProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
11
  export interface PreviewCardPositionerState {
12
12
  /**
13
13
  * Whether the preview card is currently open.
@@ -16,6 +16,7 @@ export interface PreviewCardPositionerState {
16
16
  side: Side;
17
17
  align: Align;
18
18
  anchorHidden: boolean;
19
+ instant: 'dismiss' | 'focus' | undefined;
19
20
  }
20
21
  export interface PreviewCardPositionerProps extends useAnchorPositioning.SharedParameters, BaseUIComponentProps<'div', PreviewCardPositioner.State> {}
21
22
  export declare namespace PreviewCardPositioner {