@digdir/designsystemet-react 1.0.0-next.15 → 1.0.0-next.16

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 (309) hide show
  1. package/dist/cjs/components/Accordion/index.js +2 -2
  2. package/dist/cjs/components/Breadcrumbs/BreadcrumbsItem.js +11 -0
  3. package/dist/cjs/components/Breadcrumbs/BreadcrumbsLink.js +12 -0
  4. package/dist/cjs/components/Breadcrumbs/BreadcrumbsList.js +23 -0
  5. package/dist/cjs/components/Breadcrumbs/BreadcrumbsNav.js +11 -0
  6. package/dist/cjs/components/Breadcrumbs/BreadcrumbsRoot.js +11 -0
  7. package/dist/cjs/components/Breadcrumbs/index.js +43 -0
  8. package/dist/cjs/components/Divider/Divider.js +3 -4
  9. package/dist/cjs/components/DropdownMenu/DropdownMenuContent.js +2 -2
  10. package/dist/cjs/components/Modal/ModalDialog.js +1 -2
  11. package/dist/cjs/components/Modal/ModalHeader.js +2 -2
  12. package/dist/cjs/components/Modal/index.js +1 -0
  13. package/dist/cjs/components/Popover/PopoverContent.js +3 -4
  14. package/dist/cjs/components/Tabs/TabList.js +1 -1
  15. package/dist/cjs/components/ToggleGroup/ToggleGroupRoot.js +1 -1
  16. package/dist/cjs/components/Tooltip/Tooltip.js +3 -4
  17. package/dist/cjs/components/form/Checkbox/{Group/Group.js → CheckboxGroup.js} +3 -2
  18. package/dist/cjs/components/form/Checkbox/index.js +3 -3
  19. package/dist/cjs/components/form/Checkbox/useCheckbox.js +2 -2
  20. package/dist/cjs/components/form/Combobox/Combobox.js +2 -2
  21. package/dist/cjs/components/form/Combobox/Option/Description.js +1 -2
  22. package/dist/cjs/components/form/Combobox/internal/ComboboxChips.js +1 -2
  23. package/dist/cjs/components/form/Combobox/internal/ComboboxClearButton.js +1 -2
  24. package/dist/cjs/components/form/Combobox/internal/ComboboxError.js +1 -2
  25. package/dist/cjs/components/form/Combobox/internal/ComboboxInput.js +5 -6
  26. package/dist/cjs/components/form/Combobox/internal/ComboboxLabel.js +1 -2
  27. package/dist/cjs/components/form/Combobox/internal/ComboboxNative.js +1 -2
  28. package/dist/cjs/components/form/Combobox/useCombobox.js +5 -0
  29. package/dist/cjs/components/form/Combobox/useFloatingCombobox.js +4 -4
  30. package/dist/cjs/components/form/NativeSelect/NativeSelect.js +2 -2
  31. package/dist/cjs/components/form/NativeSelect/useNativeSelect.js +19 -1
  32. package/dist/cjs/components/form/Radio/{Group/Group.js → RadioGroup.js} +3 -3
  33. package/dist/cjs/components/form/Radio/index.js +3 -3
  34. package/dist/cjs/components/form/Radio/useRadio.js +2 -2
  35. package/dist/cjs/components/form/Switch/useSwitch.js +2 -2
  36. package/dist/cjs/index.js +50 -36
  37. package/dist/cjs/node_modules/@floating-ui/core/dist/floating-ui.core.js +23 -9
  38. package/dist/cjs/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +39 -24
  39. package/dist/cjs/node_modules/@floating-ui/react/dist/floating-ui.react.js +848 -729
  40. package/dist/cjs/node_modules/@floating-ui/react/dist/floating-ui.react.utils.js +1 -1
  41. package/dist/cjs/node_modules/@floating-ui/react/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +68 -0
  42. package/dist/cjs/node_modules/@floating-ui/react/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +11 -0
  43. package/dist/cjs/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +97 -45
  44. package/dist/cjs/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +17 -6
  45. package/dist/cjs/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +14 -5
  46. package/dist/cjs/node_modules/@radix-ui/react-compose-refs/dist/index.js +10 -14
  47. package/dist/cjs/node_modules/@radix-ui/react-slot/dist/index.js +88 -69
  48. package/dist/cjs/node_modules/@tanstack/virtual-core/dist/esm/index.js +134 -62
  49. package/dist/cjs/node_modules/@tanstack/virtual-core/dist/esm/utils.js +3 -5
  50. package/dist/cjs/utilities/AnimateHeight/AnimateHeight.js +4 -1
  51. package/dist/cjs/utilities/RovingFocus/RovingFocusItem.js +34 -6
  52. package/dist/cjs/utilities/RovingFocus/RovingFocusRoot.js +3 -1
  53. package/dist/cjs/utilities/RovingFocus/useRovingFocus.js +2 -1
  54. package/dist/esm/components/Accordion/index.js +2 -2
  55. package/dist/esm/components/Box/Box.js +2 -2
  56. package/dist/esm/components/Breadcrumbs/BreadcrumbsItem.js +9 -0
  57. package/dist/esm/components/Breadcrumbs/BreadcrumbsLink.js +10 -0
  58. package/dist/esm/components/Breadcrumbs/BreadcrumbsList.js +21 -0
  59. package/dist/esm/components/Breadcrumbs/BreadcrumbsNav.js +9 -0
  60. package/dist/esm/components/Breadcrumbs/BreadcrumbsRoot.js +9 -0
  61. package/dist/esm/components/Breadcrumbs/index.js +36 -0
  62. package/dist/esm/components/Button/Button.js +2 -2
  63. package/dist/esm/components/Card/Card.js +2 -2
  64. package/dist/esm/components/Card/CardContent.js +2 -2
  65. package/dist/esm/components/Card/CardFooter.js +2 -2
  66. package/dist/esm/components/Card/CardHeader.js +2 -2
  67. package/dist/esm/components/Card/CardMedia.js +2 -2
  68. package/dist/esm/components/Divider/Divider.js +3 -4
  69. package/dist/esm/components/DropdownMenu/DropdownMenuContent.js +2 -2
  70. package/dist/esm/components/DropdownMenu/DropdownMenuTrigger.js +2 -2
  71. package/dist/esm/components/ErrorSummary/ErrorSummaryRoot.js +2 -2
  72. package/dist/esm/components/Link/Link.js +2 -2
  73. package/dist/esm/components/List/ListItem.js +2 -2
  74. package/dist/esm/components/List/ListRoot.js +2 -2
  75. package/dist/esm/components/List/Lists.js +3 -3
  76. package/dist/esm/components/Modal/ModaContent.js +2 -2
  77. package/dist/esm/components/Modal/ModalDialog.js +5 -6
  78. package/dist/esm/components/Modal/ModalFooter.js +2 -2
  79. package/dist/esm/components/Modal/ModalHeader.js +4 -4
  80. package/dist/esm/components/Modal/ModalTrigger.js +2 -2
  81. package/dist/esm/components/Modal/index.js +1 -1
  82. package/dist/esm/components/Pagination/PaginationContent.js +2 -2
  83. package/dist/esm/components/Pagination/PaginationItem.js +2 -2
  84. package/dist/esm/components/Pagination/PaginationRoot.js +2 -2
  85. package/dist/esm/components/Popover/PopoverContent.js +2 -3
  86. package/dist/esm/components/Popover/PopoverTrigger.js +2 -2
  87. package/dist/esm/components/Tabs/TabList.js +1 -1
  88. package/dist/esm/components/ToggleGroup/ToggleGroupRoot.js +1 -1
  89. package/dist/esm/components/Tooltip/Tooltip.js +2 -3
  90. package/dist/esm/components/Typography/ErrorMessage/ErrorMessage.js +2 -2
  91. package/dist/esm/components/Typography/Heading/Heading.js +2 -2
  92. package/dist/esm/components/Typography/Ingress/Ingress.js +2 -2
  93. package/dist/esm/components/Typography/Label/Label.js +2 -2
  94. package/dist/esm/components/Typography/Paragraph/Paragraph.js +2 -2
  95. package/dist/esm/components/form/Checkbox/{Group/Group.js → CheckboxGroup.js} +3 -2
  96. package/dist/esm/components/form/Checkbox/index.js +1 -1
  97. package/dist/esm/components/form/Checkbox/useCheckbox.js +1 -1
  98. package/dist/esm/components/form/Combobox/Combobox.js +2 -2
  99. package/dist/esm/components/form/Combobox/Custom.js +2 -2
  100. package/dist/esm/components/form/Combobox/Option/Description.js +1 -2
  101. package/dist/esm/components/form/Combobox/internal/ComboboxChips.js +1 -2
  102. package/dist/esm/components/form/Combobox/internal/ComboboxClearButton.js +1 -2
  103. package/dist/esm/components/form/Combobox/internal/ComboboxError.js +1 -2
  104. package/dist/esm/components/form/Combobox/internal/ComboboxInput.js +5 -6
  105. package/dist/esm/components/form/Combobox/internal/ComboboxLabel.js +1 -2
  106. package/dist/esm/components/form/Combobox/internal/ComboboxNative.js +1 -2
  107. package/dist/esm/components/form/Combobox/useCombobox.js +5 -0
  108. package/dist/esm/components/form/Combobox/useFloatingCombobox.js +2 -2
  109. package/dist/esm/components/form/NativeSelect/NativeSelect.js +2 -2
  110. package/dist/esm/components/form/NativeSelect/useNativeSelect.js +19 -1
  111. package/dist/esm/components/form/Radio/{Group/Group.js → RadioGroup.js} +3 -3
  112. package/dist/esm/components/form/Radio/index.js +1 -1
  113. package/dist/esm/components/form/Radio/useRadio.js +1 -1
  114. package/dist/esm/components/form/Switch/useSwitch.js +1 -1
  115. package/dist/esm/index.js +9 -2
  116. package/dist/esm/node_modules/@floating-ui/core/dist/floating-ui.core.js +24 -10
  117. package/dist/esm/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +41 -26
  118. package/dist/esm/node_modules/@floating-ui/react/dist/floating-ui.react.js +830 -712
  119. package/dist/esm/node_modules/@floating-ui/react/dist/floating-ui.react.utils.js +1 -1
  120. package/dist/esm/node_modules/@floating-ui/react/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +57 -0
  121. package/dist/esm/node_modules/@floating-ui/react/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +9 -0
  122. package/dist/esm/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +96 -45
  123. package/dist/esm/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +17 -7
  124. package/dist/esm/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +14 -5
  125. package/dist/esm/node_modules/@radix-ui/react-compose-refs/dist/index.js +10 -14
  126. package/dist/esm/node_modules/@radix-ui/react-slot/dist/index.js +71 -71
  127. package/dist/esm/node_modules/@tanstack/virtual-core/dist/esm/index.js +134 -62
  128. package/dist/esm/node_modules/@tanstack/virtual-core/dist/esm/utils.js +3 -5
  129. package/dist/esm/utilities/AnimateHeight/AnimateHeight.js +4 -1
  130. package/dist/esm/utilities/RovingFocus/RovingFocusItem.js +36 -8
  131. package/dist/esm/utilities/RovingFocus/RovingFocusRoot.js +5 -3
  132. package/dist/esm/utilities/RovingFocus/useRovingFocus.js +2 -1
  133. package/dist/types/components/Accordion/AccordionHeading.d.ts +1 -1
  134. package/dist/types/components/Accordion/AccordionHeading.d.ts.map +1 -1
  135. package/dist/types/components/Accordion/AccordionItem.d.ts +2 -2
  136. package/dist/types/components/Accordion/AccordionItem.d.ts.map +1 -1
  137. package/dist/types/components/Accordion/AccordionRoot.d.ts +2 -2
  138. package/dist/types/components/Accordion/AccordionRoot.d.ts.map +1 -1
  139. package/dist/types/components/Accordion/index.d.ts +2 -2
  140. package/dist/types/components/Accordion/index.d.ts.map +1 -1
  141. package/dist/types/components/Alert/Alert.d.ts +3 -3
  142. package/dist/types/components/Alert/Alert.d.ts.map +1 -1
  143. package/dist/types/components/Badge/Badge.d.ts +93 -0
  144. package/dist/types/components/Badge/Badge.d.ts.map +1 -0
  145. package/dist/types/components/Badge/index.d.ts +3 -0
  146. package/dist/types/components/Badge/index.d.ts.map +1 -0
  147. package/dist/types/components/Box/Box.d.ts +5 -5
  148. package/dist/types/components/Box/Box.d.ts.map +1 -1
  149. package/dist/types/components/Breadcrumbs/BreadcrumbsItem.d.ts +4 -0
  150. package/dist/types/components/Breadcrumbs/BreadcrumbsItem.d.ts.map +1 -0
  151. package/dist/types/components/Breadcrumbs/BreadcrumbsLink.d.ts +10 -0
  152. package/dist/types/components/Breadcrumbs/BreadcrumbsLink.d.ts.map +1 -0
  153. package/dist/types/components/Breadcrumbs/BreadcrumbsList.d.ts +4 -0
  154. package/dist/types/components/Breadcrumbs/BreadcrumbsList.d.ts.map +1 -0
  155. package/dist/types/components/Breadcrumbs/BreadcrumbsNav.d.ts +14 -0
  156. package/dist/types/components/Breadcrumbs/BreadcrumbsNav.d.ts.map +1 -0
  157. package/dist/types/components/Breadcrumbs/BreadcrumbsRoot.d.ts +16 -0
  158. package/dist/types/components/Breadcrumbs/BreadcrumbsRoot.d.ts.map +1 -0
  159. package/dist/types/components/Breadcrumbs/index.d.ts +44 -0
  160. package/dist/types/components/Breadcrumbs/index.d.ts.map +1 -0
  161. package/dist/types/components/Button/Button.d.ts +6 -6
  162. package/dist/types/components/Button/Button.d.ts.map +1 -1
  163. package/dist/types/components/Card/Card.d.ts +3 -3
  164. package/dist/types/components/Card/Card.d.ts.map +1 -1
  165. package/dist/types/components/Card/CardContent.d.ts +1 -1
  166. package/dist/types/components/Card/CardContent.d.ts.map +1 -1
  167. package/dist/types/components/Card/CardFooter.d.ts +1 -1
  168. package/dist/types/components/Card/CardFooter.d.ts.map +1 -1
  169. package/dist/types/components/Card/CardHeader.d.ts +1 -1
  170. package/dist/types/components/Card/CardHeader.d.ts.map +1 -1
  171. package/dist/types/components/Card/CardMedia.d.ts +1 -1
  172. package/dist/types/components/Card/CardMedia.d.ts.map +1 -1
  173. package/dist/types/components/Card/index.d.ts.map +1 -1
  174. package/dist/types/components/Chip/Group/Group.d.ts +1 -1
  175. package/dist/types/components/Chip/Removable/Removable.d.ts +1 -1
  176. package/dist/types/components/Chip/Toggle/Toggle.d.ts +3 -3
  177. package/dist/types/components/Chip/Toggle/Toggle.d.ts.map +1 -1
  178. package/dist/types/components/Divider/Divider.d.ts +1 -1
  179. package/dist/types/components/Divider/Divider.d.ts.map +1 -1
  180. package/dist/types/components/DropdownMenu/DropdownMenuContent.d.ts.map +1 -1
  181. package/dist/types/components/DropdownMenu/DropdownMenuGroup.d.ts.map +1 -1
  182. package/dist/types/components/DropdownMenu/DropdownMenuTrigger.d.ts +7 -7
  183. package/dist/types/components/DropdownMenu/index.d.ts.map +1 -1
  184. package/dist/types/components/ErrorSummary/ErrorSummaryRoot.d.ts +1 -1
  185. package/dist/types/components/ErrorSummary/index.d.ts.map +1 -1
  186. package/dist/types/components/Link/Link.d.ts +4 -4
  187. package/dist/types/components/Link/Link.d.ts.map +1 -1
  188. package/dist/types/components/List/ListHeading.d.ts +4 -4
  189. package/dist/types/components/List/ListItem.d.ts +1 -1
  190. package/dist/types/components/List/ListItem.d.ts.map +1 -1
  191. package/dist/types/components/List/ListRoot.d.ts +2 -2
  192. package/dist/types/components/List/ListRoot.d.ts.map +1 -1
  193. package/dist/types/components/List/Lists.d.ts +2 -2
  194. package/dist/types/components/List/Lists.d.ts.map +1 -1
  195. package/dist/types/components/Modal/ModaContent.d.ts +1 -1
  196. package/dist/types/components/Modal/ModaContent.d.ts.map +1 -1
  197. package/dist/types/components/Modal/ModalDialog.d.ts +4 -4
  198. package/dist/types/components/Modal/ModalDialog.d.ts.map +1 -1
  199. package/dist/types/components/Modal/ModalFooter.d.ts +1 -1
  200. package/dist/types/components/Modal/ModalFooter.d.ts.map +1 -1
  201. package/dist/types/components/Modal/ModalHeader.d.ts +19 -3
  202. package/dist/types/components/Modal/ModalHeader.d.ts.map +1 -1
  203. package/dist/types/components/Modal/ModalTrigger.d.ts +7 -7
  204. package/dist/types/components/Modal/index.d.ts +1 -1
  205. package/dist/types/components/Modal/index.d.ts.map +1 -1
  206. package/dist/types/components/Modal/useModalState.d.ts.map +1 -1
  207. package/dist/types/components/Pagination/Pagination.d.ts +4 -4
  208. package/dist/types/components/Pagination/Pagination.d.ts.map +1 -1
  209. package/dist/types/components/Pagination/PaginationButton.d.ts +1 -1
  210. package/dist/types/components/Pagination/PaginationButton.d.ts.map +1 -1
  211. package/dist/types/components/Pagination/PaginationContent.d.ts +1 -1
  212. package/dist/types/components/Pagination/PaginationContent.d.ts.map +1 -1
  213. package/dist/types/components/Pagination/PaginationItem.d.ts +1 -1
  214. package/dist/types/components/Pagination/PaginationItem.d.ts.map +1 -1
  215. package/dist/types/components/Pagination/PaginationNextPrev.d.ts +2 -2
  216. package/dist/types/components/Pagination/PaginationRoot.d.ts +3 -3
  217. package/dist/types/components/Pagination/PaginationRoot.d.ts.map +1 -1
  218. package/dist/types/components/Pagination/index.d.ts.map +1 -1
  219. package/dist/types/components/Popover/PopoverContent.d.ts.map +1 -1
  220. package/dist/types/components/Popover/PopoverRoot.d.ts +10 -10
  221. package/dist/types/components/Popover/PopoverRoot.d.ts.map +1 -1
  222. package/dist/types/components/Popover/PopoverTrigger.d.ts +7 -7
  223. package/dist/types/components/Popover/index.d.ts.map +1 -1
  224. package/dist/types/components/SkipLink/SkipLink.d.ts.map +1 -1
  225. package/dist/types/components/Spinner/Spinner.d.ts.map +1 -1
  226. package/dist/types/components/Table/Table.d.ts +4 -4
  227. package/dist/types/components/Table/Table.d.ts.map +1 -1
  228. package/dist/types/components/Table/TableHeaderCell.d.ts +3 -3
  229. package/dist/types/components/Table/TableHeaderCell.d.ts.map +1 -1
  230. package/dist/types/components/Table/index.d.ts.map +1 -1
  231. package/dist/types/components/Tabs/TabList.d.ts.map +1 -1
  232. package/dist/types/components/Tabs/TabsRoot.d.ts +4 -4
  233. package/dist/types/components/Tabs/TabsRoot.d.ts.map +1 -1
  234. package/dist/types/components/Tag/Tag.d.ts +1 -1
  235. package/dist/types/components/Tag/Tag.d.ts.map +1 -1
  236. package/dist/types/components/ToggleGroup/ToggleGroupItem/ToggleGroupItem.d.ts +1 -1
  237. package/dist/types/components/ToggleGroup/ToggleGroupItem/ToggleGroupItem.d.ts.map +1 -1
  238. package/dist/types/components/ToggleGroup/ToggleGroupRoot.d.ts +5 -5
  239. package/dist/types/components/ToggleGroup/ToggleGroupRoot.d.ts.map +1 -1
  240. package/dist/types/components/ToggleGroup/index.d.ts.map +1 -1
  241. package/dist/types/components/Tooltip/Tooltip.d.ts +4 -4
  242. package/dist/types/components/Tooltip/Tooltip.d.ts.map +1 -1
  243. package/dist/types/components/Typography/ErrorMessage/ErrorMessage.d.ts +4 -4
  244. package/dist/types/components/Typography/ErrorMessage/ErrorMessage.d.ts.map +1 -1
  245. package/dist/types/components/Typography/Heading/Heading.d.ts +4 -4
  246. package/dist/types/components/Typography/Heading/Heading.d.ts.map +1 -1
  247. package/dist/types/components/Typography/Ingress/Ingress.d.ts +3 -3
  248. package/dist/types/components/Typography/Ingress/Ingress.d.ts.map +1 -1
  249. package/dist/types/components/Typography/Label/Label.d.ts +4 -4
  250. package/dist/types/components/Typography/Label/Label.d.ts.map +1 -1
  251. package/dist/types/components/Typography/Paragraph/Paragraph.d.ts +4 -4
  252. package/dist/types/components/Typography/Paragraph/Paragraph.d.ts.map +1 -1
  253. package/dist/types/components/form/CharacterCounter.d.ts.map +1 -1
  254. package/dist/types/components/form/Checkbox/Checkbox.d.ts +1 -1
  255. package/dist/types/components/form/Checkbox/Checkbox.d.ts.map +1 -1
  256. package/dist/types/components/form/Checkbox/{Group/Group.d.ts → CheckboxGroup.d.ts} +5 -5
  257. package/dist/types/components/form/Checkbox/CheckboxGroup.d.ts.map +1 -0
  258. package/dist/types/components/form/Checkbox/index.d.ts +2 -2
  259. package/dist/types/components/form/Checkbox/index.d.ts.map +1 -1
  260. package/dist/types/components/form/Combobox/Combobox.d.ts +42 -42
  261. package/dist/types/components/form/Combobox/Combobox.d.ts.map +1 -1
  262. package/dist/types/components/form/Combobox/ComboboxIdContext.d.ts.map +1 -1
  263. package/dist/types/components/form/Combobox/Empty.d.ts +1 -1
  264. package/dist/types/components/form/Combobox/Empty.d.ts.map +1 -1
  265. package/dist/types/components/form/Combobox/Option/Option.d.ts +2 -2
  266. package/dist/types/components/form/Combobox/Option/Option.d.ts.map +1 -1
  267. package/dist/types/components/form/Combobox/Option/useComboboxOption.d.ts +1 -1
  268. package/dist/types/components/form/Combobox/index.d.ts +3 -0
  269. package/dist/types/components/form/Combobox/index.d.ts.map +1 -1
  270. package/dist/types/components/form/Combobox/useCombobox.d.ts.map +1 -1
  271. package/dist/types/components/form/Combobox/useFloatingCombobox.d.ts +9 -9
  272. package/dist/types/components/form/Fieldset/Fieldset.d.ts +3 -3
  273. package/dist/types/components/form/Fieldset/Fieldset.d.ts.map +1 -1
  274. package/dist/types/components/form/Fieldset/useFieldset.d.ts +2 -2
  275. package/dist/types/components/form/NativeSelect/NativeSelect.d.ts +6 -6
  276. package/dist/types/components/form/NativeSelect/NativeSelect.d.ts.map +1 -1
  277. package/dist/types/components/form/NativeSelect/useNativeSelect.d.ts +1 -1
  278. package/dist/types/components/form/NativeSelect/useNativeSelect.d.ts.map +1 -1
  279. package/dist/types/components/form/Radio/{Group/Group.d.ts → RadioGroup.d.ts} +7 -7
  280. package/dist/types/components/form/Radio/RadioGroup.d.ts.map +1 -0
  281. package/dist/types/components/form/Radio/index.d.ts +2 -2
  282. package/dist/types/components/form/Radio/index.d.ts.map +1 -1
  283. package/dist/types/components/form/Radio/useRadio.d.ts.map +1 -1
  284. package/dist/types/components/form/Search/Search.d.ts +7 -7
  285. package/dist/types/components/form/Search/Search.d.ts.map +1 -1
  286. package/dist/types/components/form/Switch/Switch.d.ts +2 -2
  287. package/dist/types/components/form/Switch/Switch.d.ts.map +1 -1
  288. package/dist/types/components/form/Textarea/Textarea.d.ts +7 -7
  289. package/dist/types/components/form/Textarea/Textarea.d.ts.map +1 -1
  290. package/dist/types/components/form/Textfield/Textfield.d.ts +7 -7
  291. package/dist/types/components/form/Textfield/Textfield.d.ts.map +1 -1
  292. package/dist/types/components/index.d.ts +1 -0
  293. package/dist/types/components/index.d.ts.map +1 -1
  294. package/dist/types/utilities/AnimateHeight/AnimateHeight.d.ts.map +1 -1
  295. package/dist/types/utilities/RovingFocus/RovingFocusItem.d.ts +2 -2
  296. package/dist/types/utilities/RovingFocus/RovingFocusItem.d.ts.map +1 -1
  297. package/dist/types/utilities/RovingFocus/RovingFocusRoot.d.ts +10 -2
  298. package/dist/types/utilities/RovingFocus/RovingFocusRoot.d.ts.map +1 -1
  299. package/dist/types/utilities/RovingFocus/useRovingFocus.d.ts +11 -10
  300. package/dist/types/utilities/RovingFocus/useRovingFocus.d.ts.map +1 -1
  301. package/package.json +18 -8
  302. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/extends.js +0 -19
  303. package/dist/esm/node_modules/@babel/runtime/helpers/esm/extends.js +0 -17
  304. package/dist/types/components/form/Checkbox/Group/Group.d.ts.map +0 -1
  305. package/dist/types/components/form/Checkbox/Group/index.d.ts +0 -2
  306. package/dist/types/components/form/Checkbox/Group/index.d.ts.map +0 -1
  307. package/dist/types/components/form/Radio/Group/Group.d.ts.map +0 -1
  308. package/dist/types/components/form/Radio/Group/index.d.ts +0 -2
  309. package/dist/types/components/form/Radio/Group/index.d.ts.map +0 -1
@@ -7,6 +7,5 @@ const ComboboxOptionDescription = forwardRef(({ children, className, ...rest },
7
7
  return (jsx("span", { className: clsx('ds-combobox__option__description', className), ref: ref, ...rest, children: children }));
8
8
  });
9
9
  ComboboxOptionDescription.displayName = 'ComboboxOptionDescription';
10
- var ComboboxOptionDescription$1 = ComboboxOptionDescription;
11
10
 
12
- export { ComboboxOptionDescription$1 as default };
11
+ export { ComboboxOptionDescription as default };
@@ -39,6 +39,5 @@ const ComboboxChips = () => {
39
39
  }) }));
40
40
  };
41
41
  ComboboxChips.displayName = 'ComboboxChips';
42
- var ComboboxChips$1 = ComboboxChips;
43
42
 
44
- export { ComboboxChips$1 as default };
43
+ export { ComboboxChips as default };
@@ -29,6 +29,5 @@ const ComboboxClearButton = forwardRef((props, ref) => {
29
29
  }, type: 'button', "aria-label": clearButtonLabel, children: jsx(XMarkIcon, { fontSize: '1.5em', title: 'Clear selection' }) }));
30
30
  });
31
31
  ComboboxClearButton.displayName = 'ComboboxClearButton';
32
- var ComboboxClearButton$1 = ComboboxClearButton;
33
32
 
34
- export { ComboboxClearButton$1 as default };
33
+ export { ComboboxClearButton as default };
@@ -6,6 +6,5 @@ const ComboboxError = ({ size, error, formFieldProps }) => {
6
6
  return (jsx("div", { className: 'ds-combobox__error-message', id: formFieldProps.errorId, "aria-live": 'polite', "aria-relevant": 'additions removals', children: error && jsx(ErrorMessage, { size: size, children: error }) }));
7
7
  };
8
8
  ComboboxError.displayName = 'ComboboxError';
9
- var ComboboxError$1 = ComboboxError;
10
9
 
11
- export { ComboboxError$1 as default };
10
+ export { ComboboxError as default };
@@ -31,14 +31,14 @@ const ComboboxInput = ({ hideClearButton, listId, error, hideChips, handleKeyDow
31
31
  setInputValue(value);
32
32
  setActiveIndex(0);
33
33
  // check if input value is the same as a label, if so, select it
34
- Object.values(options).forEach((option) => {
34
+ for (const option of Object.values(options)) {
35
35
  if (option.label.toLowerCase() === value.toLowerCase()) {
36
36
  /* if option is already selected, discard selecting it, since it would de-select */
37
37
  if (selectedOptions[prefix(option.value)])
38
- return;
39
- handleSelectOption({ option: option });
38
+ continue;
39
+ handleSelectOption({ option });
40
40
  }
41
- });
41
+ }
42
42
  };
43
43
  const showClearButton = !hideClearButton && Object.keys(selectedOptions).length > 0;
44
44
  /* Props from floating-ui */
@@ -76,6 +76,5 @@ const ComboboxInput = ({ hideClearButton, listId, error, hideChips, handleKeyDow
76
76
  } }) })] }), showClearButton && jsx(ComboboxClearButton, { ref: clearButtonRef }), jsx("div", { className: 'ds-combobox__arrow', children: open ? (jsx(ChevronUpIcon, { title: 'arrow up', fontSize: '1.5em' })) : (jsx(ChevronDownIcon, { title: 'arrow down', fontSize: '1.5em' })) })] }) }));
77
77
  };
78
78
  ComboboxInput.displayName = 'ComboboxInput';
79
- var ComboboxInput$1 = ComboboxInput;
80
79
 
81
- export { ComboboxInput$1 as default };
80
+ export { ComboboxInput as default };
@@ -9,6 +9,5 @@ const ComboboxLabel = ({ label, description, hideLabel, size, readOnly, formFiel
9
9
  return (jsxs(Fragment, { children: [label && (jsxs(Label, { size: size, htmlFor: formFieldProps.inputProps.id, className: clsx('ds-combobox__label', hideLabel && `ds-sr-only`), children: [readOnly && (jsx(PadlockLockedFillIcon, { "aria-hidden": true, className: 'ds-combobox__readonly__icon' })), label] })), description && (jsx(Paragraph, { asChild: true, size: size, children: jsx("div", { id: formFieldProps.descriptionId, className: clsx('ds-combobox__description', hideLabel && `ds-sr-only`), children: description }) }))] }));
10
10
  };
11
11
  ComboboxLabel.displayName = 'ComboboxLabel';
12
- var ComboboxLabel$1 = ComboboxLabel;
13
12
 
14
- export { ComboboxLabel$1 as default };
13
+ export { ComboboxLabel as default };
@@ -7,6 +7,5 @@ const ComboboxNative = ({ selectedOptions, multiple, name, }) => {
7
7
  return (jsx("select", { name: name, multiple: multiple, style: { display: 'none' }, value: multiple ? VALUE : VALUE[0], onChange: () => { }, children: VALUE.map((value) => (jsx("option", { value: value }, value))) }));
8
8
  };
9
9
  ComboboxNative.displayName = 'ComboboxNative';
10
- var ComboboxNative$1 = ComboboxNative;
11
10
 
12
- export { ComboboxNative$1 as default };
11
+ export { ComboboxNative as default };
@@ -34,6 +34,7 @@ function useCombobox({ children, inputValue, multiple, filter = (inputValue, opt
34
34
  return result;
35
35
  }, [children]);
36
36
  const options = useMemo(() => {
37
+ const values = [];
37
38
  const allOptions = {};
38
39
  optionsChildren.map((child) => {
39
40
  const props = child.props;
@@ -51,6 +52,10 @@ function useCombobox({ children, inputValue, multiple, filter = (inputValue, opt
51
52
  });
52
53
  label = childrenLabel;
53
54
  }
55
+ if (values.includes(props.value)) {
56
+ console.warn(`Combobox has multiple options with the same value: ${props.value}`);
57
+ }
58
+ values.push(props.value);
54
59
  allOptions[prefix(String(props.value))] = {
55
60
  value: String(props.value),
56
61
  label,
@@ -3,8 +3,8 @@ import { useFloating, useRole, useDismiss, useListNavigation, useInteractions }
3
3
  import { useState } from 'react';
4
4
  import { flushSync } from 'react-dom';
5
5
  import { useComboboxId, useComboboxIdDispatch } from './ComboboxIdContext.js';
6
- import { autoUpdate, flip, size } from '../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.js';
7
- import { offset } from '../../../node_modules/@floating-ui/core/dist/floating-ui.core.js';
6
+ import { autoUpdate } from '../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.js';
7
+ import { flip, size, offset } from '../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js';
8
8
 
9
9
  const useFloatingCombobox = ({ listRef }) => {
10
10
  const [open, setOpen] = useState(false);
@@ -11,8 +11,8 @@ import { Paragraph } from '../../Typography/Paragraph/Paragraph.js';
11
11
 
12
12
  const NativeSelect = forwardRef((props, ref) => {
13
13
  const { children, disabled = false, label, description, hideLabel = false, error, className, htmlSize = 0, ...rest } = props;
14
- const { selectProps, descriptionId, errorId, readOnly = false, size = 'md', } = useNativeSelect(props);
15
- return (jsx(Paragraph, { asChild: true, size: size, children: jsxs("div", { className: clsx('ds-native-select--container', readOnly && 'ds-native-select--readonly', error && 'ds-native-select--error'), children: [label && (jsxs(Label, { weight: 'medium', size: size, htmlFor: selectProps.id, className: clsx('ds-native-select__label', hideLabel && 'ds-sr-only'), children: [readOnly && (jsx(PadlockLockedFillIcon, { "aria-hidden": true, className: 'ds-native-select__readonly__icon' })), label] })), description && (jsx(Paragraph, { asChild: true, size: size, children: jsx("div", { id: descriptionId, className: clsx(`ds-native-select__description`, hideLabel && `ds-sr-only`), children: description }) })), jsx("div", { className: 'ds-native-select__wrapper', children: jsx("select", { disabled: disabled || readOnly, ref: ref, size: htmlSize, className: clsx('ds-native-select', `ds-native-select--${size}`, `ds-focus`, props.multiple && 'ds-native-select--multiple', className), ...omit(['size', 'error', 'errorId'], rest), ...omit(['readOnly', 'disabled'], selectProps), children: children }) }), error && (jsx("div", { id: errorId, className: 'ds-native-select__error-message', "aria-live": 'polite', "aria-relevant": 'additions removals', children: jsx(ErrorMessage, { size: size, children: error }) }))] }) }));
14
+ const { selectProps, descriptionId, errorId, readOnly, size = 'md', } = useNativeSelect(props);
15
+ return (jsx(Paragraph, { asChild: true, size: size, children: jsxs("div", { className: clsx('ds-native-select--container', readOnly && 'ds-native-select--readonly', error && 'ds-native-select--error'), children: [label && (jsxs(Label, { weight: 'medium', size: size, htmlFor: selectProps.id, className: clsx('ds-native-select__label', hideLabel && 'ds-sr-only'), children: [readOnly && (jsx(PadlockLockedFillIcon, { "aria-hidden": true, className: 'ds-native-select__readonly__icon' })), label] })), description && (jsx(Paragraph, { asChild: true, size: size, children: jsx("div", { id: descriptionId, className: clsx(`ds-native-select__description`, hideLabel && `ds-sr-only`), children: description }) })), jsx("div", { className: 'ds-native-select__wrapper', children: jsx("select", { disabled: disabled, ref: ref, size: htmlSize, className: clsx('ds-native-select', `ds-native-select--${size}`, `ds-focus`, props.multiple && 'ds-native-select--multiple', className), ...omit(['size', 'error', 'errorId'], rest), ...omit(['readOnly', 'disabled'], selectProps), children: children }) }), error && (jsx("div", { id: errorId, className: 'ds-native-select__error-message', "aria-live": 'polite', "aria-relevant": 'additions removals', children: jsx(ErrorMessage, { size: size, children: error }) }))] }) }));
16
16
  });
17
17
  NativeSelect.displayName = 'NativeSelect';
18
18
 
@@ -6,7 +6,7 @@ import { useFormField } from '../useFormField.js';
6
6
  /** Handles props for `NativeSelect` in context with `Fieldset` */
7
7
  const useNativeSelect = (props) => {
8
8
  const fieldset = useContext(FieldsetContext);
9
- const { inputProps: selectProps, readOnly, size = fieldset?.size ?? 'md', ...rest } = useFormField(props, 'select');
9
+ const { inputProps: selectProps, readOnly = false, size = fieldset?.size ?? 'md', ...rest } = useFormField(props, 'select');
10
10
  return {
11
11
  ...rest,
12
12
  readOnly,
@@ -21,6 +21,24 @@ const useNativeSelect = (props) => {
21
21
  }
22
22
  props?.onClick?.(e);
23
23
  },
24
+ onKeyDown: (e) => {
25
+ if (readOnly) {
26
+ if (e.key === 'Tab')
27
+ return;
28
+ e.preventDefault();
29
+ return;
30
+ }
31
+ props?.onKeyDown?.(e);
32
+ },
33
+ onMouseDown: (e) => {
34
+ if (readOnly) {
35
+ e.preventDefault();
36
+ if (e.target instanceof HTMLElement)
37
+ e.target.focus();
38
+ return;
39
+ }
40
+ props?.onMouseDown?.(e);
41
+ },
24
42
  onChange: (e) => {
25
43
  if (readOnly) {
26
44
  e.preventDefault();
@@ -1,8 +1,8 @@
1
1
  'use client';
2
2
  import { jsx } from 'react/jsx-runtime';
3
- import { clsx } from '../../../../node_modules/clsx/dist/lite.js';
3
+ import { clsx } from '../../../node_modules/clsx/dist/lite.js';
4
4
  import { createContext, forwardRef, useId } from 'react';
5
- import { Fieldset } from '../../Fieldset/Fieldset.js';
5
+ import { Fieldset } from '../Fieldset/Fieldset.js';
6
6
 
7
7
  const RadioGroupContext = createContext(null);
8
8
  const RadioGroup = forwardRef(({ onChange, children, value, readOnly, defaultValue, name, size = 'md', required, inline, className, ...rest }, ref) => {
@@ -13,7 +13,7 @@ const RadioGroup = forwardRef(({ onChange, children, value, readOnly, defaultVal
13
13
  name: name ?? `radiogroup-name-${nameId}`,
14
14
  onChange,
15
15
  required,
16
- }, children: jsx("div", { className: clsx('ds-radio-group', inline && 'ds-radio-group--horizontal'), children: children }) }) }));
16
+ }, children: jsx("div", { className: clsx('ds-radio__group', `ds-radio__group--${size}`, inline && 'ds-radio__group--horizontal'), children: children }) }) }));
17
17
  });
18
18
  RadioGroup.displayName = 'RadioGroup';
19
19
 
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
  import { Radio as Radio$1 } from './Radio.js';
3
- import { RadioGroup } from './Group/Group.js';
3
+ import { RadioGroup } from './RadioGroup.js';
4
4
 
5
5
  /** `<input> element with `type="radio"` used for selecting one option */
6
6
  const Radio = Radio$1;
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { useContext } from 'react';
3
3
  import { useFormField } from '../useFormField.js';
4
- import { RadioGroupContext } from './Group/Group.js';
4
+ import { RadioGroupContext } from './RadioGroup.js';
5
5
 
6
6
  /** Handles props for `Radio` in context with `Radio.Group` (and `Fieldset`) */
7
7
  const useRadio = (props) => {
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { useContext } from 'react';
3
+ import { CheckboxGroupContext } from '../Checkbox/CheckboxGroup.js';
3
4
  import { useFormField } from '../useFormField.js';
4
- import { CheckboxGroupContext } from '../Checkbox/Group/Group.js';
5
5
 
6
6
  /** Handles props for `Switch` in context with `Checkbox.Group` (and `Fieldset`) */
7
7
  const useSwitch = (props) => {
package/dist/esm/index.js CHANGED
@@ -7,6 +7,12 @@ export { useRovingFocus } from './utilities/RovingFocus/useRovingFocus.js';
7
7
  export { RovingFocusItem, getNextFocusableValue, getPrevFocusableValue } from './utilities/RovingFocus/RovingFocusItem.js';
8
8
  export { omit } from './utilities/omit/omit.js';
9
9
  export { Button } from './components/Button/Button.js';
10
+ export { Breadcrumbs } from './components/Breadcrumbs/index.js';
11
+ export { BreadcrumbsRoot } from './components/Breadcrumbs/BreadcrumbsRoot.js';
12
+ export { BreadcrumbsNav } from './components/Breadcrumbs/BreadcrumbsNav.js';
13
+ export { BreadcrumbsList } from './components/Breadcrumbs/BreadcrumbsList.js';
14
+ export { BreadcrumbsItem } from './components/Breadcrumbs/BreadcrumbsItem.js';
15
+ export { BreadcrumbsLink } from './components/Breadcrumbs/BreadcrumbsLink.js';
10
16
  export { HelpText } from './components/HelpText/HelpText.js';
11
17
  export { Spinner } from './components/Spinner/Spinner.js';
12
18
  export { Link } from './components/Link/Link.js';
@@ -43,9 +49,9 @@ export { PaginationNext, PaginationPrevious } from './components/Pagination/Pagi
43
49
  export { SkipLink } from './components/SkipLink/SkipLink.js';
44
50
  export { Tooltip } from './components/Tooltip/Tooltip.js';
45
51
  export { Checkbox } from './components/form/Checkbox/index.js';
46
- export { CheckboxGroup } from './components/form/Checkbox/Group/Group.js';
52
+ export { CheckboxGroup } from './components/form/Checkbox/CheckboxGroup.js';
47
53
  export { Radio } from './components/form/Radio/index.js';
48
- export { RadioGroup } from './components/form/Radio/Group/Group.js';
54
+ export { RadioGroup } from './components/form/Radio/RadioGroup.js';
49
55
  export { Fieldset } from './components/form/Fieldset/Fieldset.js';
50
56
  export { Switch } from './components/form/Switch/Switch.js';
51
57
  export { Textfield } from './components/form/Textfield/Textfield.js';
@@ -64,6 +70,7 @@ export { PopoverContent } from './components/Popover/PopoverContent.js';
64
70
  export { PopoverTrigger } from './components/Popover/PopoverTrigger.js';
65
71
  export { Divider } from './components/Divider/Divider.js';
66
72
  export { Modal } from './components/Modal/index.js';
73
+ export { ModalRoot } from './components/Modal/ModalRoot.js';
67
74
  export { ModalContent } from './components/Modal/ModaContent.js';
68
75
  export { ModalFooter } from './components/Modal/ModalFooter.js';
69
76
  export { ModalHeader } from './components/Modal/ModalHeader.js';
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { evaluate, getSide, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, getAlignmentSides, getAlignment, getSideAxis, clamp, getPaddingObject, rectToClientRect, getAlignmentAxis, getOppositeAxis, getAxisLength, min, max } from '../../utils/dist/floating-ui.utils.js';
2
+ import { evaluate, getSide, getSideAxis, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, getAlignmentSides, clamp, getPaddingObject, rectToClientRect, getAlignmentAxis, getAlignment, getOppositeAxis, getAxisLength, min, max } from '../../utils/dist/floating-ui.utils.js';
3
3
 
4
4
  function computeCoordsFromPlacement(_ref, placement, rtl) {
5
5
  let {
@@ -186,9 +186,10 @@ async function detectOverflow(state, options) {
186
186
  strategy
187
187
  }));
188
188
  const rect = elementContext === 'floating' ? {
189
- ...rects.floating,
190
189
  x,
191
- y
190
+ y,
191
+ width: rects.floating.width,
192
+ height: rects.floating.height
192
193
  } : rects.reference;
193
194
  const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));
194
195
  const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {
@@ -335,10 +336,12 @@ const flip = function (options) {
335
336
  return {};
336
337
  }
337
338
  const side = getSide(placement);
339
+ const initialSideAxis = getSideAxis(initialPlacement);
338
340
  const isBasePlacement = getSide(initialPlacement) === initialPlacement;
339
341
  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));
340
342
  const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));
341
- if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== 'none') {
343
+ const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';
344
+ if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {
342
345
  fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));
343
346
  }
344
347
  const placements = [initialPlacement, ...fallbackPlacements];
@@ -384,8 +387,17 @@ const flip = function (options) {
384
387
  switch (fallbackStrategy) {
385
388
  case 'bestFit':
386
389
  {
387
- var _overflowsData$map$so;
388
- const placement = (_overflowsData$map$so = overflowsData.map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];
390
+ var _overflowsData$filter2;
391
+ const placement = (_overflowsData$filter2 = overflowsData.filter(d => {
392
+ if (hasFallbackAxisSideDirection) {
393
+ const currentSideAxis = getSideAxis(d.placement);
394
+ return currentSideAxis === initialSideAxis ||
395
+ // Create a bias to the `y` side axis due to horizontal
396
+ // reading directions favoring greater width.
397
+ currentSideAxis === 'y';
398
+ }
399
+ return true;
400
+ }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];
389
401
  if (placement) {
390
402
  resetPlacement = placement;
391
403
  }
@@ -425,6 +437,8 @@ async function convertValueToCoords(state, options) {
425
437
  const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;
426
438
  const crossAxisMulti = rtl && isVertical ? -1 : 1;
427
439
  const rawValue = evaluate(options, state);
440
+
441
+ // eslint-disable-next-line prefer-const
428
442
  let {
429
443
  mainAxis,
430
444
  crossAxis,
@@ -607,16 +621,16 @@ const size = function (options) {
607
621
  widthSide = side;
608
622
  heightSide = alignment === 'end' ? 'top' : 'bottom';
609
623
  }
610
- const overflowAvailableHeight = height - overflow[heightSide];
611
- const overflowAvailableWidth = width - overflow[widthSide];
624
+ const maximumClippingHeight = height - overflow.top - overflow.bottom;
625
+ const maximumClippingWidth = width - overflow.left - overflow.right;
626
+ const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);
627
+ const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);
612
628
  const noShift = !state.middlewareData.shift;
613
629
  let availableHeight = overflowAvailableHeight;
614
630
  let availableWidth = overflowAvailableWidth;
615
631
  if (isYAxis) {
616
- const maximumClippingWidth = width - overflow.left - overflow.right;
617
632
  availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;
618
633
  } else {
619
- const maximumClippingHeight = height - overflow.top - overflow.bottom;
620
634
  availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;
621
635
  }
622
636
  if (noShift && !alignment) {
@@ -1,8 +1,7 @@
1
1
  'use client';
2
- import { shift as shift$1, flip as flip$1, arrow as arrow$1, size as size$1, computePosition as computePosition$1 } from '../../core/dist/floating-ui.core.js';
3
- export { detectOverflow, offset } from '../../core/dist/floating-ui.core.js';
4
- import { createCoords, rectToClientRect, round, max, min, floor } from '../../utils/dist/floating-ui.utils.js';
5
- import { getOverflowAncestors, isElement, getWindow, getComputedStyle, getDocumentElement, isHTMLElement, isWebKit, getNodeName, isOverflowElement, getNodeScroll, isTableElement, isContainingBlock, getContainingBlock, getParentNode, isLastTraversableNode } from '../../utils/dist/floating-ui.utils.dom.js';
2
+ import { offset as offset$1, shift as shift$1, flip as flip$1, arrow as arrow$1, computePosition as computePosition$1, size as size$1 } from '../../core/dist/floating-ui.core.js';
3
+ import { createCoords, rectToClientRect, round, floor, max, min } from '../../utils/dist/floating-ui.utils.js';
4
+ import { getOverflowAncestors, isElement, getWindow, getComputedStyle, getDocumentElement, isHTMLElement, isWebKit, isTopLayer, getNodeName, isOverflowElement, getNodeScroll, getParentNode, isLastTraversableNode, isTableElement, isContainingBlock, getContainingBlock } from '../../utils/dist/floating-ui.utils.dom.js';
6
5
 
7
6
  function getCssDimensions(element) {
8
7
  const css = getComputedStyle(element);
@@ -131,17 +130,6 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
131
130
  });
132
131
  }
133
132
 
134
- const topLayerSelectors = [':popover-open', ':modal'];
135
- function isTopLayer(floating) {
136
- return topLayerSelectors.some(selector => {
137
- try {
138
- return floating.matches(selector);
139
- } catch (e) {
140
- return false;
141
- }
142
- });
143
- }
144
-
145
133
  function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
146
134
  let {
147
135
  elements,
@@ -323,7 +311,7 @@ function getClippingRect(_ref) {
323
311
  rootBoundary,
324
312
  strategy
325
313
  } = _ref;
326
- const elementClippingAncestors = boundary === 'clippingAncestors' ? getClippingElementAncestors(element, this._c) : [].concat(boundary);
314
+ const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);
327
315
  const clippingAncestors = [...elementClippingAncestors, rootBoundary];
328
316
  const firstClippingAncestor = clippingAncestors[0];
329
317
  const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {
@@ -385,6 +373,10 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
385
373
  };
386
374
  }
387
375
 
376
+ function isStaticPositioned(element) {
377
+ return getComputedStyle(element).position === 'static';
378
+ }
379
+
388
380
  function getTrueOffsetParent(element, polyfill) {
389
381
  if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {
390
382
  return null;
@@ -398,29 +390,41 @@ function getTrueOffsetParent(element, polyfill) {
398
390
  // Gets the closest ancestor positioned element. Handles some edge cases,
399
391
  // such as table ancestors and cross browser bugs.
400
392
  function getOffsetParent(element, polyfill) {
401
- const window = getWindow(element);
402
- if (!isHTMLElement(element) || isTopLayer(element)) {
403
- return window;
393
+ const win = getWindow(element);
394
+ if (isTopLayer(element)) {
395
+ return win;
396
+ }
397
+ if (!isHTMLElement(element)) {
398
+ let svgOffsetParent = getParentNode(element);
399
+ while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {
400
+ if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {
401
+ return svgOffsetParent;
402
+ }
403
+ svgOffsetParent = getParentNode(svgOffsetParent);
404
+ }
405
+ return win;
404
406
  }
405
407
  let offsetParent = getTrueOffsetParent(element, polyfill);
406
- while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {
408
+ while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {
407
409
  offsetParent = getTrueOffsetParent(offsetParent, polyfill);
408
410
  }
409
- if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {
410
- return window;
411
+ if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {
412
+ return win;
411
413
  }
412
- return offsetParent || getContainingBlock(element) || window;
414
+ return offsetParent || getContainingBlock(element) || win;
413
415
  }
414
416
 
415
417
  const getElementRects = async function (data) {
416
418
  const getOffsetParentFn = this.getOffsetParent || getOffsetParent;
417
419
  const getDimensionsFn = this.getDimensions;
420
+ const floatingDimensions = await getDimensionsFn(data.floating);
418
421
  return {
419
422
  reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),
420
423
  floating: {
421
424
  x: 0,
422
425
  y: 0,
423
- ...(await getDimensionsFn(data.floating))
426
+ width: floatingDimensions.width,
427
+ height: floatingDimensions.height
424
428
  }
425
429
  };
426
430
  };
@@ -490,9 +494,11 @@ function observeMove(element, onMove) {
490
494
  return refresh();
491
495
  }
492
496
  if (!ratio) {
497
+ // If the reference is clipped, the ratio is 0. Throttle the refresh
498
+ // to prevent an infinite loop of updates.
493
499
  timeoutId = setTimeout(() => {
494
500
  refresh(false, 1e-7);
495
- }, 100);
501
+ }, 1000);
496
502
  } else {
497
503
  refresh(false, ratio);
498
504
  }
@@ -596,6 +602,15 @@ function autoUpdate(reference, floating, update, options) {
596
602
  };
597
603
  }
598
604
 
605
+ /**
606
+ * Modifies the placement by translating the floating element along the
607
+ * specified axes.
608
+ * A number (shorthand for `mainAxis` or distance), or an axes configuration
609
+ * object may be passed.
610
+ * @see https://floating-ui.com/docs/offset
611
+ */
612
+ const offset = offset$1;
613
+
599
614
  /**
600
615
  * Optimizes the visibility of the floating element by shifting it in order to
601
616
  * keep it in view when it will overflow the clipping boundary.
@@ -649,4 +664,4 @@ const computePosition = (reference, floating, options) => {
649
664
  });
650
665
  };
651
666
 
652
- export { arrow, autoUpdate, computePosition, flip, getOverflowAncestors, platform, shift, size };
667
+ export { arrow, autoUpdate, computePosition, flip, getOverflowAncestors, offset, platform, shift, size };