@digdir/designsystemet-react 1.0.0-next.17 → 1.0.0-next.33

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 (424) hide show
  1. package/dist/cjs/components/Accordion/Accordion.js +15 -0
  2. package/dist/cjs/components/Accordion/AccordionContent.js +2 -11
  3. package/dist/cjs/components/Accordion/AccordionHeading.js +5 -17
  4. package/dist/cjs/components/Accordion/AccordionItem.js +61 -16
  5. package/dist/cjs/components/Accordion/index.js +4 -7
  6. package/dist/cjs/components/Alert/Alert.js +3 -18
  7. package/dist/cjs/components/Avatar/Avatar.js +36 -0
  8. package/dist/cjs/components/Badge/Badge.js +6 -1
  9. package/dist/cjs/components/Button/Button.js +6 -3
  10. package/dist/cjs/components/Card/Card.js +1 -1
  11. package/dist/cjs/components/Divider/Divider.js +5 -4
  12. package/dist/cjs/components/DropdownMenu/DropdownMenuContent.js +3 -22
  13. package/dist/cjs/components/DropdownMenu/DropdownMenuGroup.js +1 -1
  14. package/dist/cjs/components/DropdownMenu/DropdownMenuItem.js +1 -1
  15. package/dist/cjs/components/ErrorSummary/ErrorSummaryHeading.js +11 -7
  16. package/dist/cjs/components/ErrorSummary/ErrorSummaryItem.js +4 -4
  17. package/dist/cjs/components/ErrorSummary/ErrorSummaryList.js +7 -5
  18. package/dist/cjs/components/ErrorSummary/ErrorSummaryRoot.js +4 -4
  19. package/dist/cjs/components/ErrorSummary/index.js +2 -2
  20. package/dist/cjs/components/HelpText/HelpText.js +6 -4
  21. package/dist/cjs/components/Link/Link.js +2 -2
  22. package/dist/cjs/components/List/ListItem.js +2 -4
  23. package/dist/cjs/components/List/Lists.js +10 -13
  24. package/dist/cjs/components/List/index.js +7 -14
  25. package/dist/cjs/components/Modal/ModalHeader.js +1 -1
  26. package/dist/cjs/components/Pagination/Pagination.js +3 -17
  27. package/dist/cjs/components/Pagination/PaginationButton.js +2 -3
  28. package/dist/cjs/components/Pagination/PaginationEllipsis.js +1 -2
  29. package/dist/cjs/components/Pagination/PaginationItem.js +1 -2
  30. package/dist/cjs/components/Pagination/{PaginationContent.js → PaginationList.js} +4 -5
  31. package/dist/cjs/components/Pagination/PaginationNextPrev.js +4 -6
  32. package/dist/cjs/components/Pagination/PaginationRoot.js +2 -3
  33. package/dist/cjs/components/Pagination/index.js +4 -4
  34. package/dist/cjs/components/Popover/Popover.js +94 -0
  35. package/dist/cjs/components/Popover/PopoverContext.js +16 -0
  36. package/dist/cjs/components/Popover/PopoverTrigger.js +4 -13
  37. package/dist/cjs/components/Popover/index.js +6 -9
  38. package/dist/cjs/components/Table/Table.js +2 -22
  39. package/dist/cjs/components/Table/TableBody.js +2 -22
  40. package/dist/cjs/components/Table/TableCell.js +2 -23
  41. package/dist/cjs/components/Table/TableHead.js +2 -23
  42. package/dist/cjs/components/Table/TableHeaderCell.js +2 -29
  43. package/dist/cjs/components/Table/TableRow.js +2 -23
  44. package/dist/cjs/components/Tag/Tag.js +2 -3
  45. package/dist/cjs/components/ToggleGroup/ToggleGroupItem/ToggleGroupItem.js +3 -5
  46. package/dist/cjs/components/Tooltip/Tooltip.js +6 -25
  47. package/dist/cjs/components/Typography/Heading/Heading.js +2 -2
  48. package/dist/cjs/components/form/Combobox/Combobox.js +2 -3
  49. package/dist/cjs/components/form/Combobox/internal/ComboboxInput.js +1 -2
  50. package/dist/cjs/components/form/Combobox/useFloatingCombobox.js +1 -1
  51. package/dist/cjs/components/form/Select/Select.js +20 -0
  52. package/dist/cjs/components/form/Select/SelectOptgroup.js +13 -0
  53. package/dist/cjs/components/form/Select/SelectOption.js +13 -0
  54. package/dist/cjs/components/form/Select/index.js +16 -0
  55. package/dist/cjs/components/form/Select/useSelect.js +49 -0
  56. package/dist/cjs/components/{Skeleton → loaders/Skeleton}/Circle/Circle.js +2 -2
  57. package/dist/cjs/components/{Skeleton → loaders/Skeleton}/Rectangle/Rectangle.js +2 -2
  58. package/dist/cjs/components/{Skeleton → loaders/Skeleton}/Text/Text.js +2 -2
  59. package/dist/cjs/components/loaders/Spinner/Spinner.js +16 -0
  60. package/dist/cjs/index.js +56 -60
  61. package/dist/cjs/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +7 -23
  62. package/dist/cjs/node_modules/@floating-ui/dom/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +164 -0
  63. package/dist/cjs/node_modules/@floating-ui/dom/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +22 -0
  64. package/dist/cjs/node_modules/@floating-ui/react/dist/floating-ui.react.js +85 -56
  65. package/dist/cjs/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +1 -1
  66. package/dist/cjs/node_modules/@floating-ui/react-dom/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +677 -0
  67. package/dist/cjs/node_modules/@tanstack/virtual-core/dist/esm/index.js +57 -65
  68. package/dist/cjs/node_modules/@u-elements/u-details/dist/u-details.js +117 -0
  69. package/dist/cjs/utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.js +4 -2
  70. package/dist/esm/components/Accordion/Accordion.js +13 -0
  71. package/dist/esm/components/Accordion/AccordionContent.js +3 -12
  72. package/dist/esm/components/Accordion/AccordionHeading.js +7 -19
  73. package/dist/esm/components/Accordion/AccordionItem.js +63 -17
  74. package/dist/esm/components/Accordion/index.js +5 -7
  75. package/dist/esm/components/Alert/Alert.js +4 -19
  76. package/dist/esm/components/Avatar/Avatar.js +34 -0
  77. package/dist/esm/components/Badge/Badge.js +6 -1
  78. package/dist/esm/components/Button/Button.js +8 -5
  79. package/dist/esm/components/Card/Card.js +1 -1
  80. package/dist/esm/components/Divider/Divider.js +5 -4
  81. package/dist/esm/components/DropdownMenu/DropdownMenuContent.js +4 -5
  82. package/dist/esm/components/DropdownMenu/DropdownMenuGroup.js +1 -1
  83. package/dist/esm/components/DropdownMenu/DropdownMenuItem.js +1 -1
  84. package/dist/esm/components/ErrorSummary/ErrorSummaryHeading.js +12 -8
  85. package/dist/esm/components/ErrorSummary/ErrorSummaryItem.js +4 -4
  86. package/dist/esm/components/ErrorSummary/ErrorSummaryList.js +7 -5
  87. package/dist/esm/components/ErrorSummary/ErrorSummaryRoot.js +4 -4
  88. package/dist/esm/components/ErrorSummary/index.js +1 -1
  89. package/dist/esm/components/HelpText/HelpText.js +8 -6
  90. package/dist/esm/components/Link/Link.js +2 -2
  91. package/dist/esm/components/List/ListItem.js +2 -4
  92. package/dist/esm/components/List/Lists.js +10 -13
  93. package/dist/esm/components/List/index.js +7 -12
  94. package/dist/esm/components/Modal/ModalHeader.js +1 -1
  95. package/dist/esm/components/Pagination/Pagination.js +3 -17
  96. package/dist/esm/components/Pagination/PaginationButton.js +2 -3
  97. package/dist/esm/components/Pagination/PaginationEllipsis.js +1 -2
  98. package/dist/esm/components/Pagination/PaginationItem.js +1 -2
  99. package/dist/esm/components/Pagination/{PaginationContent.js → PaginationList.js} +4 -5
  100. package/dist/esm/components/Pagination/PaginationNextPrev.js +4 -6
  101. package/dist/esm/components/Pagination/PaginationRoot.js +2 -3
  102. package/dist/esm/components/Pagination/index.js +4 -4
  103. package/dist/esm/components/Popover/Popover.js +92 -0
  104. package/dist/esm/components/Popover/PopoverContext.js +13 -0
  105. package/dist/esm/components/Popover/PopoverTrigger.js +5 -14
  106. package/dist/esm/components/Popover/index.js +6 -8
  107. package/dist/esm/components/Table/Table.js +3 -4
  108. package/dist/esm/components/Table/TableBody.js +3 -4
  109. package/dist/esm/components/Table/TableCell.js +3 -5
  110. package/dist/esm/components/Table/TableHead.js +3 -5
  111. package/dist/esm/components/Table/TableHeaderCell.js +4 -12
  112. package/dist/esm/components/Table/TableRow.js +3 -5
  113. package/dist/esm/components/Tag/Tag.js +2 -3
  114. package/dist/esm/components/ToggleGroup/ToggleGroupItem/ToggleGroupItem.js +3 -5
  115. package/dist/esm/components/Tooltip/Tooltip.js +9 -10
  116. package/dist/esm/components/Typography/Heading/Heading.js +2 -2
  117. package/dist/esm/components/form/Combobox/Combobox.js +2 -3
  118. package/dist/esm/components/form/Combobox/internal/ComboboxInput.js +1 -2
  119. package/dist/esm/components/form/Combobox/useFloatingCombobox.js +1 -1
  120. package/dist/esm/components/form/Select/Select.js +18 -0
  121. package/dist/esm/components/form/Select/SelectOptgroup.js +11 -0
  122. package/dist/esm/components/form/Select/SelectOption.js +11 -0
  123. package/dist/esm/components/form/Select/index.js +12 -0
  124. package/dist/esm/components/form/Select/useSelect.js +47 -0
  125. package/dist/esm/components/{Skeleton → loaders/Skeleton}/Circle/Circle.js +2 -2
  126. package/dist/esm/components/{Skeleton → loaders/Skeleton}/Rectangle/Rectangle.js +2 -2
  127. package/dist/esm/components/{Skeleton → loaders/Skeleton}/Text/Text.js +2 -2
  128. package/dist/esm/components/loaders/Spinner/Spinner.js +14 -0
  129. package/dist/esm/index.js +13 -15
  130. package/dist/esm/node_modules/@floating-ui/core/dist/floating-ui.core.js +1 -1
  131. package/dist/esm/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +7 -21
  132. package/dist/esm/node_modules/@floating-ui/dom/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +143 -0
  133. package/dist/esm/node_modules/@floating-ui/dom/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +16 -0
  134. package/dist/esm/node_modules/@floating-ui/react/dist/floating-ui.react.js +85 -56
  135. package/dist/esm/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +2 -2
  136. package/dist/esm/node_modules/@floating-ui/react-dom/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +667 -0
  137. package/dist/esm/node_modules/@tanstack/virtual-core/dist/esm/index.js +57 -65
  138. package/dist/esm/node_modules/@u-elements/u-details/dist/u-details.js +114 -0
  139. package/dist/esm/utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.js +4 -2
  140. package/dist/types/components/Accordion/{AccordionRoot.d.ts → Accordion.d.ts} +5 -5
  141. package/dist/types/components/Accordion/Accordion.d.ts.map +1 -0
  142. package/dist/types/components/Accordion/AccordionContent.d.ts +1 -1
  143. package/dist/types/components/Accordion/AccordionContent.d.ts.map +1 -1
  144. package/dist/types/components/Accordion/AccordionHeading.d.ts +6 -20
  145. package/dist/types/components/Accordion/AccordionHeading.d.ts.map +1 -1
  146. package/dist/types/components/Accordion/AccordionItem.d.ts +12 -26
  147. package/dist/types/components/Accordion/AccordionItem.d.ts.map +1 -1
  148. package/dist/types/components/Accordion/index.d.ts +9 -11
  149. package/dist/types/components/Accordion/index.d.ts.map +1 -1
  150. package/dist/types/components/Alert/Alert.d.ts +7 -23
  151. package/dist/types/components/Alert/Alert.d.ts.map +1 -1
  152. package/dist/types/components/Avatar/Avatar.d.ts +78 -0
  153. package/dist/types/components/Avatar/Avatar.d.ts.map +1 -0
  154. package/dist/types/components/Avatar/index.d.ts +3 -0
  155. package/dist/types/components/Avatar/index.d.ts.map +1 -0
  156. package/dist/types/components/Badge/Badge.d.ts +2 -2
  157. package/dist/types/components/Badge/Badge.d.ts.map +1 -1
  158. package/dist/types/components/Breadcrumbs/BreadcrumbsItem.d.ts +1 -1
  159. package/dist/types/components/Breadcrumbs/BreadcrumbsItem.d.ts.map +1 -1
  160. package/dist/types/components/Breadcrumbs/BreadcrumbsLink.d.ts +3 -3
  161. package/dist/types/components/Breadcrumbs/BreadcrumbsLink.d.ts.map +1 -1
  162. package/dist/types/components/Breadcrumbs/BreadcrumbsList.d.ts +1 -1
  163. package/dist/types/components/Breadcrumbs/BreadcrumbsList.d.ts.map +1 -1
  164. package/dist/types/components/Breadcrumbs/BreadcrumbsNav.d.ts +6 -4
  165. package/dist/types/components/Breadcrumbs/BreadcrumbsNav.d.ts.map +1 -1
  166. package/dist/types/components/Breadcrumbs/BreadcrumbsRoot.d.ts +2 -2
  167. package/dist/types/components/Breadcrumbs/BreadcrumbsRoot.d.ts.map +1 -1
  168. package/dist/types/components/Breadcrumbs/index.d.ts +9 -9
  169. package/dist/types/components/Button/Button.d.ts +10 -12
  170. package/dist/types/components/Button/Button.d.ts.map +1 -1
  171. package/dist/types/components/Card/Card.d.ts +2 -2
  172. package/dist/types/components/Card/Card.d.ts.map +1 -1
  173. package/dist/types/components/Card/CardContent.d.ts +2 -2
  174. package/dist/types/components/Card/CardContent.d.ts.map +1 -1
  175. package/dist/types/components/Card/CardFooter.d.ts +2 -2
  176. package/dist/types/components/Card/CardFooter.d.ts.map +1 -1
  177. package/dist/types/components/Card/CardHeader.d.ts +2 -2
  178. package/dist/types/components/Card/CardHeader.d.ts.map +1 -1
  179. package/dist/types/components/Card/CardMedia.d.ts +2 -2
  180. package/dist/types/components/Card/CardMedia.d.ts.map +1 -1
  181. package/dist/types/components/Chip/Group/Group.d.ts +3 -3
  182. package/dist/types/components/Chip/Group/Group.d.ts.map +1 -1
  183. package/dist/types/components/Chip/Removable/Removable.d.ts +2 -2
  184. package/dist/types/components/Chip/Removable/Removable.d.ts.map +1 -1
  185. package/dist/types/components/Chip/Toggle/Toggle.d.ts +2 -2
  186. package/dist/types/components/Chip/Toggle/Toggle.d.ts.map +1 -1
  187. package/dist/types/components/Divider/Divider.d.ts +3 -15
  188. package/dist/types/components/Divider/Divider.d.ts.map +1 -1
  189. package/dist/types/components/DropdownMenu/DropdownMenuContent.d.ts +5 -5
  190. package/dist/types/components/DropdownMenu/DropdownMenuContent.d.ts.map +1 -1
  191. package/dist/types/components/DropdownMenu/DropdownMenuGroup.d.ts +5 -5
  192. package/dist/types/components/DropdownMenu/DropdownMenuGroup.d.ts.map +1 -1
  193. package/dist/types/components/DropdownMenu/DropdownMenuItem.d.ts +2 -2
  194. package/dist/types/components/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
  195. package/dist/types/components/DropdownMenu/DropdownMenuRoot.d.ts +3 -3
  196. package/dist/types/components/DropdownMenu/DropdownMenuRoot.d.ts.map +1 -1
  197. package/dist/types/components/DropdownMenu/DropdownMenuTrigger.d.ts +3 -3
  198. package/dist/types/components/DropdownMenu/DropdownMenuTrigger.d.ts.map +1 -1
  199. package/dist/types/components/ErrorSummary/ErrorSummaryHeading.d.ts +8 -6
  200. package/dist/types/components/ErrorSummary/ErrorSummaryHeading.d.ts.map +1 -1
  201. package/dist/types/components/ErrorSummary/ErrorSummaryItem.d.ts +2 -5
  202. package/dist/types/components/ErrorSummary/ErrorSummaryItem.d.ts.map +1 -1
  203. package/dist/types/components/ErrorSummary/ErrorSummaryList.d.ts +6 -7
  204. package/dist/types/components/ErrorSummary/ErrorSummaryList.d.ts.map +1 -1
  205. package/dist/types/components/ErrorSummary/ErrorSummaryRoot.d.ts +7 -6
  206. package/dist/types/components/ErrorSummary/ErrorSummaryRoot.d.ts.map +1 -1
  207. package/dist/types/components/ErrorSummary/index.d.ts +1 -1
  208. package/dist/types/components/ErrorSummary/index.d.ts.map +1 -1
  209. package/dist/types/components/HelpText/HelpText.d.ts +19 -8
  210. package/dist/types/components/HelpText/HelpText.d.ts.map +1 -1
  211. package/dist/types/components/Link/Link.d.ts +2 -2
  212. package/dist/types/components/Link/Link.d.ts.map +1 -1
  213. package/dist/types/components/List/ListItem.d.ts +2 -2
  214. package/dist/types/components/List/ListItem.d.ts.map +1 -1
  215. package/dist/types/components/List/Lists.d.ts +11 -21
  216. package/dist/types/components/List/Lists.d.ts.map +1 -1
  217. package/dist/types/components/List/index.d.ts +15 -14
  218. package/dist/types/components/List/index.d.ts.map +1 -1
  219. package/dist/types/components/Modal/ModaContent.d.ts +2 -2
  220. package/dist/types/components/Modal/ModaContent.d.ts.map +1 -1
  221. package/dist/types/components/Modal/ModalDialog.d.ts +2 -2
  222. package/dist/types/components/Modal/ModalDialog.d.ts.map +1 -1
  223. package/dist/types/components/Modal/ModalFooter.d.ts +2 -2
  224. package/dist/types/components/Modal/ModalFooter.d.ts.map +1 -1
  225. package/dist/types/components/Modal/ModalHeader.d.ts +2 -2
  226. package/dist/types/components/Modal/ModalHeader.d.ts.map +1 -1
  227. package/dist/types/components/Modal/ModalRoot.d.ts +4 -3
  228. package/dist/types/components/Modal/ModalRoot.d.ts.map +1 -1
  229. package/dist/types/components/Modal/ModalTrigger.d.ts +3 -3
  230. package/dist/types/components/Modal/ModalTrigger.d.ts.map +1 -1
  231. package/dist/types/components/Pagination/Pagination.d.ts +4 -5
  232. package/dist/types/components/Pagination/Pagination.d.ts.map +1 -1
  233. package/dist/types/components/Pagination/PaginationButton.d.ts +3 -3
  234. package/dist/types/components/Pagination/PaginationButton.d.ts.map +1 -1
  235. package/dist/types/components/Pagination/PaginationEllipsis.d.ts +1 -2
  236. package/dist/types/components/Pagination/PaginationEllipsis.d.ts.map +1 -1
  237. package/dist/types/components/Pagination/PaginationItem.d.ts +2 -3
  238. package/dist/types/components/Pagination/PaginationItem.d.ts.map +1 -1
  239. package/dist/types/components/Pagination/{PaginationContent.d.ts → PaginationList.d.ts} +4 -4
  240. package/dist/types/components/Pagination/PaginationList.d.ts.map +1 -0
  241. package/dist/types/components/Pagination/PaginationNextPrev.d.ts +4 -5
  242. package/dist/types/components/Pagination/PaginationNextPrev.d.ts.map +1 -1
  243. package/dist/types/components/Pagination/PaginationRoot.d.ts +14 -4
  244. package/dist/types/components/Pagination/PaginationRoot.d.ts.map +1 -1
  245. package/dist/types/components/Pagination/index.d.ts +9 -10
  246. package/dist/types/components/Pagination/index.d.ts.map +1 -1
  247. package/dist/types/components/Pagination/usePagination.d.ts +1 -1
  248. package/dist/types/components/Popover/Popover.d.ts +83 -0
  249. package/dist/types/components/Popover/Popover.d.ts.map +1 -0
  250. package/dist/types/components/Popover/PopoverContext.d.ts +13 -0
  251. package/dist/types/components/Popover/PopoverContext.d.ts.map +1 -0
  252. package/dist/types/components/Popover/PopoverTrigger.d.ts +3 -3
  253. package/dist/types/components/Popover/PopoverTrigger.d.ts.map +1 -1
  254. package/dist/types/components/Popover/index.d.ts +8 -10
  255. package/dist/types/components/Popover/index.d.ts.map +1 -1
  256. package/dist/types/components/Table/Table.d.ts +3 -3
  257. package/dist/types/components/Table/Table.d.ts.map +1 -1
  258. package/dist/types/components/Table/TableBody.d.ts +2 -2
  259. package/dist/types/components/Table/TableBody.d.ts.map +1 -1
  260. package/dist/types/components/Table/TableCell.d.ts +2 -2
  261. package/dist/types/components/Table/TableCell.d.ts.map +1 -1
  262. package/dist/types/components/Table/TableHead.d.ts +2 -2
  263. package/dist/types/components/Table/TableHead.d.ts.map +1 -1
  264. package/dist/types/components/Table/TableHeaderCell.d.ts +5 -25
  265. package/dist/types/components/Table/TableHeaderCell.d.ts.map +1 -1
  266. package/dist/types/components/Table/TableRow.d.ts +2 -2
  267. package/dist/types/components/Table/TableRow.d.ts.map +1 -1
  268. package/dist/types/components/Tabs/Tab.d.ts +2 -2
  269. package/dist/types/components/Tabs/Tab.d.ts.map +1 -1
  270. package/dist/types/components/Tabs/TabContent.d.ts +2 -2
  271. package/dist/types/components/Tabs/TabContent.d.ts.map +1 -1
  272. package/dist/types/components/Tabs/TabList.d.ts +1 -1
  273. package/dist/types/components/Tabs/TabList.d.ts.map +1 -1
  274. package/dist/types/components/Tabs/TabsRoot.d.ts +3 -3
  275. package/dist/types/components/Tabs/TabsRoot.d.ts.map +1 -1
  276. package/dist/types/components/Tag/Tag.d.ts +2 -2
  277. package/dist/types/components/Tag/Tag.d.ts.map +1 -1
  278. package/dist/types/components/ToggleGroup/ToggleGroupItem/ToggleGroupItem.d.ts +3 -3
  279. package/dist/types/components/ToggleGroup/ToggleGroupItem/ToggleGroupItem.d.ts.map +1 -1
  280. package/dist/types/components/ToggleGroup/ToggleGroupRoot.d.ts +3 -3
  281. package/dist/types/components/ToggleGroup/ToggleGroupRoot.d.ts.map +1 -1
  282. package/dist/types/components/Tooltip/Tooltip.d.ts +6 -7
  283. package/dist/types/components/Tooltip/Tooltip.d.ts.map +1 -1
  284. package/dist/types/components/Typography/ErrorMessage/ErrorMessage.d.ts +2 -2
  285. package/dist/types/components/Typography/ErrorMessage/ErrorMessage.d.ts.map +1 -1
  286. package/dist/types/components/Typography/Heading/Heading.d.ts +4 -4
  287. package/dist/types/components/Typography/Heading/Heading.d.ts.map +1 -1
  288. package/dist/types/components/Typography/Ingress/Ingress.d.ts +2 -2
  289. package/dist/types/components/Typography/Ingress/Ingress.d.ts.map +1 -1
  290. package/dist/types/components/Typography/Label/Label.d.ts +2 -2
  291. package/dist/types/components/Typography/Label/Label.d.ts.map +1 -1
  292. package/dist/types/components/Typography/Paragraph/Paragraph.d.ts +2 -2
  293. package/dist/types/components/Typography/Paragraph/Paragraph.d.ts.map +1 -1
  294. package/dist/types/components/form/Checkbox/Checkbox.d.ts +2 -2
  295. package/dist/types/components/form/Checkbox/Checkbox.d.ts.map +1 -1
  296. package/dist/types/components/form/Checkbox/CheckboxGroup.d.ts +3 -3
  297. package/dist/types/components/form/Checkbox/CheckboxGroup.d.ts.map +1 -1
  298. package/dist/types/components/form/Combobox/Combobox.d.ts +4 -4
  299. package/dist/types/components/form/Combobox/Combobox.d.ts.map +1 -1
  300. package/dist/types/components/form/Combobox/ComboboxContext.d.ts +5 -4
  301. package/dist/types/components/form/Combobox/ComboboxContext.d.ts.map +1 -1
  302. package/dist/types/components/form/Combobox/ComboboxIdContext.d.ts +4 -4
  303. package/dist/types/components/form/Combobox/ComboboxIdContext.d.ts.map +1 -1
  304. package/dist/types/components/form/Combobox/Custom.d.ts +2 -2
  305. package/dist/types/components/form/Combobox/Custom.d.ts.map +1 -1
  306. package/dist/types/components/form/Combobox/Empty.d.ts +2 -2
  307. package/dist/types/components/form/Combobox/Empty.d.ts.map +1 -1
  308. package/dist/types/components/form/Combobox/Option/Description.d.ts +2 -2
  309. package/dist/types/components/form/Combobox/Option/Description.d.ts.map +1 -1
  310. package/dist/types/components/form/Combobox/Option/Option.d.ts +3 -3
  311. package/dist/types/components/form/Combobox/Option/Option.d.ts.map +1 -1
  312. package/dist/types/components/form/Combobox/Option/useComboboxOption.d.ts +1 -1
  313. package/dist/types/components/form/Combobox/internal/ComboboxClearButton.d.ts +2 -1
  314. package/dist/types/components/form/Combobox/internal/ComboboxClearButton.d.ts.map +1 -1
  315. package/dist/types/components/form/Combobox/internal/ComboboxInput.d.ts +3 -2
  316. package/dist/types/components/form/Combobox/internal/ComboboxInput.d.ts.map +1 -1
  317. package/dist/types/components/form/Combobox/useCombobox.d.ts +3 -3
  318. package/dist/types/components/form/Combobox/useComboboxKeyboard.d.ts +2 -1
  319. package/dist/types/components/form/Combobox/useComboboxKeyboard.d.ts.map +1 -1
  320. package/dist/types/components/form/Combobox/useFloatingCombobox.d.ts +13 -12
  321. package/dist/types/components/form/Combobox/useFloatingCombobox.d.ts.map +1 -1
  322. package/dist/types/components/form/Fieldset/Fieldset.d.ts +2 -2
  323. package/dist/types/components/form/Fieldset/Fieldset.d.ts.map +1 -1
  324. package/dist/types/components/form/Fieldset/FieldsetContext.d.ts +1 -1
  325. package/dist/types/components/form/Fieldset/FieldsetContext.d.ts.map +1 -1
  326. package/dist/types/components/form/Fieldset/useFieldset.d.ts +1 -1
  327. package/dist/types/components/form/Radio/Radio.d.ts +2 -2
  328. package/dist/types/components/form/Radio/Radio.d.ts.map +1 -1
  329. package/dist/types/components/form/Radio/RadioGroup.d.ts +3 -3
  330. package/dist/types/components/form/Radio/RadioGroup.d.ts.map +1 -1
  331. package/dist/types/components/form/Search/Search.d.ts +2 -2
  332. package/dist/types/components/form/Search/Search.d.ts.map +1 -1
  333. package/dist/types/components/form/{NativeSelect/NativeSelect.d.ts → Select/Select.d.ts} +5 -5
  334. package/dist/types/components/form/Select/Select.d.ts.map +1 -0
  335. package/dist/types/components/form/Select/SelectOptgroup.d.ts +16 -0
  336. package/dist/types/components/form/Select/SelectOptgroup.d.ts.map +1 -0
  337. package/dist/types/components/form/Select/SelectOption.d.ts +16 -0
  338. package/dist/types/components/form/Select/SelectOption.d.ts.map +1 -0
  339. package/dist/types/components/form/Select/index.d.ts +13 -0
  340. package/dist/types/components/form/Select/index.d.ts.map +1 -0
  341. package/dist/types/components/form/Select/useSelect.d.ts +10 -0
  342. package/dist/types/components/form/Select/useSelect.d.ts.map +1 -0
  343. package/dist/types/components/form/Switch/Switch.d.ts +2 -2
  344. package/dist/types/components/form/Switch/Switch.d.ts.map +1 -1
  345. package/dist/types/components/form/Textarea/Textarea.d.ts +2 -2
  346. package/dist/types/components/form/Textarea/Textarea.d.ts.map +1 -1
  347. package/dist/types/components/form/Textfield/Textfield.d.ts +2 -2
  348. package/dist/types/components/form/Textfield/Textfield.d.ts.map +1 -1
  349. package/dist/types/components/index.d.ts +4 -4
  350. package/dist/types/components/index.d.ts.map +1 -1
  351. package/dist/types/components/loaders/Skeleton/Circle/Circle.d.ts.map +1 -0
  352. package/dist/types/components/loaders/Skeleton/Rectangle/Rectangle.d.ts.map +1 -0
  353. package/dist/types/components/loaders/Skeleton/Text/Text.d.ts.map +1 -0
  354. package/dist/types/components/loaders/Skeleton/index.d.ts.map +1 -0
  355. package/dist/types/components/{Spinner → loaders/Spinner}/Spinner.d.ts +3 -3
  356. package/dist/types/components/loaders/Spinner/Spinner.d.ts.map +1 -0
  357. package/dist/types/components/loaders/Spinner/index.d.ts.map +1 -0
  358. package/dist/types/utilities/AnimateHeight/AnimateHeight.d.ts +2 -2
  359. package/dist/types/utilities/AnimateHeight/AnimateHeight.d.ts.map +1 -1
  360. package/dist/types/utilities/RovingFocus/RovingFocusItem.d.ts +2 -2
  361. package/dist/types/utilities/RovingFocus/RovingFocusItem.d.ts.map +1 -1
  362. package/dist/types/utilities/RovingFocus/RovingFocusRoot.d.ts +3 -3
  363. package/dist/types/utilities/RovingFocus/RovingFocusRoot.d.ts.map +1 -1
  364. package/dist/types/utilities/RovingFocus/useRovingFocus.d.ts +163 -162
  365. package/dist/types/utilities/RovingFocus/useRovingFocus.d.ts.map +1 -1
  366. package/dist/types/utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.d.ts +1 -1
  367. package/dist/types/utilities/hooks/useSynchronizedAnimation/useSynchronizedAnimation.d.ts.map +1 -1
  368. package/package.json +9 -4
  369. package/dist/cjs/components/Accordion/AccordionRoot.js +0 -16
  370. package/dist/cjs/components/Box/Box.js +0 -15
  371. package/dist/cjs/components/List/ListHeading.js +0 -28
  372. package/dist/cjs/components/List/ListRoot.js +0 -21
  373. package/dist/cjs/components/Popover/PopoverContent.js +0 -105
  374. package/dist/cjs/components/Popover/PopoverRoot.js +0 -68
  375. package/dist/cjs/components/Spinner/Spinner.js +0 -24
  376. package/dist/cjs/components/form/NativeSelect/NativeSelect.js +0 -21
  377. package/dist/cjs/components/form/NativeSelect/useNativeSelect.js +0 -55
  378. package/dist/cjs/utilities/AnimateHeight/AnimateHeight.js +0 -46
  379. package/dist/cjs/utilities/hooks/useMediaQuery/useMediaQuery.js +0 -49
  380. package/dist/cjs/utilities/hooks/usePrevious.js +0 -14
  381. package/dist/esm/components/Accordion/AccordionRoot.js +0 -14
  382. package/dist/esm/components/Box/Box.js +0 -13
  383. package/dist/esm/components/List/ListHeading.js +0 -26
  384. package/dist/esm/components/List/ListRoot.js +0 -18
  385. package/dist/esm/components/Popover/PopoverContent.js +0 -85
  386. package/dist/esm/components/Popover/PopoverRoot.js +0 -47
  387. package/dist/esm/components/Spinner/Spinner.js +0 -22
  388. package/dist/esm/components/form/NativeSelect/NativeSelect.js +0 -19
  389. package/dist/esm/components/form/NativeSelect/useNativeSelect.js +0 -53
  390. package/dist/esm/utilities/AnimateHeight/AnimateHeight.js +0 -44
  391. package/dist/esm/utilities/hooks/useMediaQuery/useMediaQuery.js +0 -47
  392. package/dist/esm/utilities/hooks/usePrevious.js +0 -12
  393. package/dist/types/components/Accordion/AccordionRoot.d.ts.map +0 -1
  394. package/dist/types/components/Box/Box.d.ts +0 -56
  395. package/dist/types/components/Box/Box.d.ts.map +0 -1
  396. package/dist/types/components/Box/index.d.ts +0 -3
  397. package/dist/types/components/Box/index.d.ts.map +0 -1
  398. package/dist/types/components/List/ListHeading.d.ts +0 -9
  399. package/dist/types/components/List/ListHeading.d.ts.map +0 -1
  400. package/dist/types/components/List/ListRoot.d.ts +0 -34
  401. package/dist/types/components/List/ListRoot.d.ts.map +0 -1
  402. package/dist/types/components/Pagination/PaginationContent.d.ts.map +0 -1
  403. package/dist/types/components/Popover/PopoverContent.d.ts +0 -8
  404. package/dist/types/components/Popover/PopoverContent.d.ts.map +0 -1
  405. package/dist/types/components/Popover/PopoverRoot.d.ts +0 -54
  406. package/dist/types/components/Popover/PopoverRoot.d.ts.map +0 -1
  407. package/dist/types/components/Skeleton/Circle/Circle.d.ts.map +0 -1
  408. package/dist/types/components/Skeleton/Rectangle/Rectangle.d.ts.map +0 -1
  409. package/dist/types/components/Skeleton/Text/Text.d.ts.map +0 -1
  410. package/dist/types/components/Skeleton/index.d.ts.map +0 -1
  411. package/dist/types/components/Spinner/Spinner.d.ts.map +0 -1
  412. package/dist/types/components/Spinner/index.d.ts.map +0 -1
  413. package/dist/types/components/form/NativeSelect/NativeSelect.d.ts.map +0 -1
  414. package/dist/types/components/form/NativeSelect/index.d.ts +0 -3
  415. package/dist/types/components/form/NativeSelect/index.d.ts.map +0 -1
  416. package/dist/types/components/form/NativeSelect/useNativeSelect.d.ts +0 -10
  417. package/dist/types/components/form/NativeSelect/useNativeSelect.d.ts.map +0 -1
  418. /package/dist/cjs/components/{Skeleton → loaders/Skeleton}/index.js +0 -0
  419. /package/dist/esm/components/{Skeleton → loaders/Skeleton}/index.js +0 -0
  420. /package/dist/types/components/{Skeleton → loaders/Skeleton}/Circle/Circle.d.ts +0 -0
  421. /package/dist/types/components/{Skeleton → loaders/Skeleton}/Rectangle/Rectangle.d.ts +0 -0
  422. /package/dist/types/components/{Skeleton → loaders/Skeleton}/Text/Text.d.ts +0 -0
  423. /package/dist/types/components/{Skeleton → loaders/Skeleton}/index.d.ts +0 -0
  424. /package/dist/types/components/{Spinner → loaders/Spinner}/index.d.ts +0 -0
@@ -403,7 +403,8 @@ const FloatingArrow = /*#__PURE__*/React.forwardRef(function FloatingArrow(props
403
403
  floating
404
404
  },
405
405
  middlewareData: {
406
- arrow
406
+ arrow,
407
+ shift
407
408
  }
408
409
  },
409
410
  width = 14,
@@ -438,6 +439,12 @@ const FloatingArrow = /*#__PURE__*/React.forwardRef(function FloatingArrow(props
438
439
  if (!floating) {
439
440
  return null;
440
441
  }
442
+ const [side, alignment] = placement.split('-');
443
+ const isVerticalSide = side === 'top' || side === 'bottom';
444
+ let computedStaticOffset = staticOffset;
445
+ if (isVerticalSide && shift != null && shift.x || !isVerticalSide && shift != null && shift.y) {
446
+ computedStaticOffset = null;
447
+ }
441
448
 
442
449
  // Strokes must be double the border width, this ensures the stroke's width
443
450
  // works as you'd expect.
@@ -445,16 +452,14 @@ const FloatingArrow = /*#__PURE__*/React.forwardRef(function FloatingArrow(props
445
452
  const halfStrokeWidth = computedStrokeWidth / 2;
446
453
  const svgX = width / 2 * (tipRadius / -8 + 1);
447
454
  const svgY = height / 2 * tipRadius / 4;
448
- const [side, alignment] = placement.split('-');
449
455
  const isCustomShape = !!d;
450
- const isVerticalSide = side === 'top' || side === 'bottom';
451
- const yOffsetProp = staticOffset && alignment === 'end' ? 'bottom' : 'top';
452
- let xOffsetProp = staticOffset && alignment === 'end' ? 'right' : 'left';
453
- if (staticOffset && isRTL) {
456
+ const yOffsetProp = computedStaticOffset && alignment === 'end' ? 'bottom' : 'top';
457
+ let xOffsetProp = computedStaticOffset && alignment === 'end' ? 'right' : 'left';
458
+ if (computedStaticOffset && isRTL) {
454
459
  xOffsetProp = alignment === 'end' ? 'left' : 'right';
455
460
  }
456
- const arrowX = (arrow == null ? void 0 : arrow.x) != null ? staticOffset || arrow.x : '';
457
- const arrowY = (arrow == null ? void 0 : arrow.y) != null ? staticOffset || arrow.y : '';
461
+ const arrowX = (arrow == null ? void 0 : arrow.x) != null ? computedStaticOffset || arrow.x : '';
462
+ const arrowY = (arrow == null ? void 0 : arrow.y) != null ? computedStaticOffset || arrow.y : '';
458
463
  const dValue = d || 'M0,0' + (" H" + width) + (" L" + (width - svgX) + "," + (height - svgY)) + (" Q" + width / 2 + "," + height + " " + svgX + "," + (height - svgY)) + ' Z';
459
464
  const rotation = {
460
465
  top: isCustomShape ? 'rotate(180deg)' : '',
@@ -769,21 +774,22 @@ function useHover(context, props) {
769
774
  var _handleCloseRef$curre;
770
775
  if (!enabled) return;
771
776
  if (open && (_handleCloseRef$curre = handleCloseRef.current) != null && _handleCloseRef$curre.__options.blockPointerEvents && isHoverOpen()) {
772
- const body = getDocument(elements.floating).body;
773
- body.setAttribute(safePolygonIdentifier, '');
774
- body.style.pointerEvents = 'none';
775
777
  performedPointerEventsMutationRef.current = true;
776
778
  const floatingEl = elements.floating;
777
779
  if (isElement(elements.domReference) && floatingEl) {
778
780
  var _tree$nodesRef$curren;
781
+ const body = getDocument(elements.floating).body;
782
+ body.setAttribute(safePolygonIdentifier, '');
779
783
  const ref = elements.domReference;
780
784
  const parentFloating = tree == null || (_tree$nodesRef$curren = tree.nodesRef.current.find(node => node.id === parentId)) == null || (_tree$nodesRef$curren = _tree$nodesRef$curren.context) == null ? void 0 : _tree$nodesRef$curren.elements.floating;
781
785
  if (parentFloating) {
782
786
  parentFloating.style.pointerEvents = '';
783
787
  }
788
+ body.style.pointerEvents = 'none';
784
789
  ref.style.pointerEvents = 'auto';
785
790
  floatingEl.style.pointerEvents = 'auto';
786
791
  return () => {
792
+ body.style.pointerEvents = '';
787
793
  ref.style.pointerEvents = '';
788
794
  floatingEl.style.pointerEvents = '';
789
795
  };
@@ -1217,6 +1223,8 @@ function FloatingPortal(props) {
1217
1223
  const afterOutsideRef = React.useRef(null);
1218
1224
  const beforeInsideRef = React.useRef(null);
1219
1225
  const afterInsideRef = React.useRef(null);
1226
+ const modal = focusManagerState == null ? void 0 : focusManagerState.modal;
1227
+ const open = focusManagerState == null ? void 0 : focusManagerState.open;
1220
1228
  const shouldRenderGuards =
1221
1229
  // The FocusManager and therefore floating element are currently open/
1222
1230
  // rendered.
@@ -1228,7 +1236,7 @@ function FloatingPortal(props) {
1228
1236
 
1229
1237
  // https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/TabbablePortal.tsx
1230
1238
  React.useEffect(() => {
1231
- if (!portalNode || !preserveTabOrder || focusManagerState != null && focusManagerState.modal) {
1239
+ if (!portalNode || !preserveTabOrder || modal) {
1232
1240
  return;
1233
1241
  }
1234
1242
 
@@ -1250,7 +1258,12 @@ function FloatingPortal(props) {
1250
1258
  portalNode.removeEventListener('focusin', onFocus, true);
1251
1259
  portalNode.removeEventListener('focusout', onFocus, true);
1252
1260
  };
1253
- }, [portalNode, preserveTabOrder, focusManagerState == null ? void 0 : focusManagerState.modal]);
1261
+ }, [portalNode, preserveTabOrder, modal]);
1262
+ React.useEffect(() => {
1263
+ if (!portalNode) return;
1264
+ if (open) return;
1265
+ enableFocusInside(portalNode);
1266
+ }, [open, portalNode]);
1254
1267
  return /*#__PURE__*/React.createElement(PortalContext.Provider, {
1255
1268
  value: React.useMemo(() => ({
1256
1269
  preserveTabOrder,
@@ -1286,13 +1299,25 @@ function FloatingPortal(props) {
1286
1299
  } else {
1287
1300
  const nextTabbable = getNextTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);
1288
1301
  nextTabbable == null || nextTabbable.focus();
1289
- (focusManagerState == null ? void 0 : focusManagerState.closeOnFocusOut) && (focusManagerState == null ? void 0 : focusManagerState.onOpenChange(false, event.nativeEvent));
1302
+ (focusManagerState == null ? void 0 : focusManagerState.closeOnFocusOut) && (focusManagerState == null ? void 0 : focusManagerState.onOpenChange(false, event.nativeEvent, 'focus-out'));
1290
1303
  }
1291
1304
  }
1292
1305
  }));
1293
1306
  }
1294
1307
  const usePortalContext = () => React.useContext(PortalContext);
1295
1308
 
1309
+ const FOCUSABLE_ATTRIBUTE = 'data-floating-ui-focusable';
1310
+ function getFloatingFocusElement(floatingElement) {
1311
+ if (!floatingElement) {
1312
+ return null;
1313
+ }
1314
+ // Try to find the element that has `{...getFloatingProps()}` spread on it.
1315
+ // This indicates the floating element is acting as a positioning wrapper, and
1316
+ // so focus should be managed on the child element with the event handlers and
1317
+ // aria props.
1318
+ return floatingElement.hasAttribute(FOCUSABLE_ATTRIBUTE) ? floatingElement : floatingElement.querySelector("[" + FOCUSABLE_ATTRIBUTE + "]") || floatingElement;
1319
+ }
1320
+
1296
1321
  const LIST_LIMIT = 20;
1297
1322
  let previouslyFocusedElements = [];
1298
1323
  function addPreviouslyFocusedElement(element) {
@@ -1373,13 +1398,10 @@ function FloatingFocusManager(props) {
1373
1398
  const isPointerDownRef = React.useRef(false);
1374
1399
  const tabbableIndexRef = React.useRef(-1);
1375
1400
  const isInsidePortal = portalContext != null;
1376
- const firstElementChild = floating == null ? void 0 : floating.firstElementChild;
1377
- // If the floating element is acting as a positioning wrapper rather than the
1378
- // element that receives aria props, use it as the focus root instead.
1379
- const floatingFocusNode = (firstElementChild == null ? void 0 : firstElementChild.id) === floatingId ? firstElementChild : floating;
1401
+ const floatingFocusElement = getFloatingFocusElement(floating);
1380
1402
  const getTabbableContent = useEffectEvent(function (container) {
1381
1403
  if (container === void 0) {
1382
- container = floatingFocusNode;
1404
+ container = floatingFocusElement;
1383
1405
  }
1384
1406
  return container ? tabbable(container, getTabbableOptions()) : [];
1385
1407
  });
@@ -1389,19 +1411,22 @@ function FloatingFocusManager(props) {
1389
1411
  if (domReference && type === 'reference') {
1390
1412
  return domReference;
1391
1413
  }
1392
- if (floatingFocusNode && type === 'floating') {
1393
- return floatingFocusNode;
1414
+ if (floatingFocusElement && type === 'floating') {
1415
+ return floatingFocusElement;
1394
1416
  }
1395
1417
  return content;
1396
1418
  }).filter(Boolean).flat();
1397
1419
  });
1420
+ React.useEffect(() => {
1421
+ preventReturnFocusRef.current = false;
1422
+ }, [disabled]);
1398
1423
  React.useEffect(() => {
1399
1424
  if (disabled) return;
1400
1425
  if (!modal) return;
1401
1426
  function onKeyDown(event) {
1402
1427
  if (event.key === 'Tab') {
1403
1428
  // The focus guards have nothing to focus, so we need to stop the event.
1404
- if (contains(floatingFocusNode, activeElement(getDocument(floatingFocusNode))) && getTabbableContent().length === 0 && !isUntrappedTypeableCombobox) {
1429
+ if (contains(floatingFocusElement, activeElement(getDocument(floatingFocusElement))) && getTabbableContent().length === 0 && !isUntrappedTypeableCombobox) {
1405
1430
  stopEvent(event);
1406
1431
  }
1407
1432
  const els = getTabbableElements();
@@ -1414,18 +1439,18 @@ function FloatingFocusManager(props) {
1414
1439
  enqueueFocus(els[1]);
1415
1440
  }
1416
1441
  }
1417
- if (orderRef.current[1] === 'floating' && target === floatingFocusNode && event.shiftKey) {
1442
+ if (orderRef.current[1] === 'floating' && target === floatingFocusElement && event.shiftKey) {
1418
1443
  stopEvent(event);
1419
1444
  enqueueFocus(els[0]);
1420
1445
  }
1421
1446
  }
1422
1447
  }
1423
- const doc = getDocument(floatingFocusNode);
1448
+ const doc = getDocument(floatingFocusElement);
1424
1449
  doc.addEventListener('keydown', onKeyDown);
1425
1450
  return () => {
1426
1451
  doc.removeEventListener('keydown', onKeyDown);
1427
1452
  };
1428
- }, [disabled, domReference, floatingFocusNode, modal, orderRef, isUntrappedTypeableCombobox, getTabbableContent, getTabbableElements]);
1453
+ }, [disabled, domReference, floatingFocusElement, modal, orderRef, isUntrappedTypeableCombobox, getTabbableContent, getTabbableElements]);
1429
1454
  React.useEffect(() => {
1430
1455
  if (disabled) return;
1431
1456
  if (!floating) return;
@@ -1466,15 +1491,15 @@ function FloatingFocusManager(props) {
1466
1491
 
1467
1492
  // Restore focus to the previous tabbable element index to prevent
1468
1493
  // focus from being lost outside the floating tree.
1469
- if (restoreFocus && movedToUnrelatedNode && activeElement(getDocument(floatingFocusNode)) === getDocument(floatingFocusNode).body) {
1494
+ if (restoreFocus && movedToUnrelatedNode && activeElement(getDocument(floatingFocusElement)) === getDocument(floatingFocusElement).body) {
1470
1495
  // Let `FloatingPortal` effect knows that focus is still inside the
1471
1496
  // floating tree.
1472
- if (isHTMLElement(floatingFocusNode)) {
1473
- floatingFocusNode == null || floatingFocusNode.focus();
1497
+ if (isHTMLElement(floatingFocusElement)) {
1498
+ floatingFocusElement.focus();
1474
1499
  }
1475
1500
  const prevTabbableIndex = tabbableIndexRef.current;
1476
1501
  const tabbableContent = getTabbableContent();
1477
- const nodeToFocus = tabbableContent[prevTabbableIndex] || tabbableContent[tabbableContent.length - 1] || floatingFocusNode;
1502
+ const nodeToFocus = tabbableContent[prevTabbableIndex] || tabbableContent[tabbableContent.length - 1] || floatingFocusElement;
1478
1503
  if (isHTMLElement(nodeToFocus)) {
1479
1504
  nodeToFocus.focus();
1480
1505
  }
@@ -1486,7 +1511,7 @@ function FloatingFocusManager(props) {
1486
1511
  // Fix React 18 Strict Mode returnFocus due to double rendering.
1487
1512
  relatedTarget !== getPreviouslyFocusedElement()) {
1488
1513
  preventReturnFocusRef.current = true;
1489
- onOpenChange(false, event);
1514
+ onOpenChange(false, event, 'focus-out');
1490
1515
  }
1491
1516
  });
1492
1517
  }
@@ -1500,7 +1525,7 @@ function FloatingFocusManager(props) {
1500
1525
  floating.removeEventListener('focusout', handleFocusOutside);
1501
1526
  };
1502
1527
  }
1503
- }, [disabled, domReference, floating, floatingFocusNode, modal, nodeId, tree, portalContext, onOpenChange, closeOnFocusOut, restoreFocus, getTabbableContent, isUntrappedTypeableCombobox]);
1528
+ }, [disabled, domReference, floating, floatingFocusElement, modal, nodeId, tree, portalContext, onOpenChange, closeOnFocusOut, restoreFocus, getTabbableContent, isUntrappedTypeableCombobox]);
1504
1529
  React.useEffect(() => {
1505
1530
  var _portalContext$portal;
1506
1531
  if (disabled) return;
@@ -1516,27 +1541,27 @@ function FloatingFocusManager(props) {
1516
1541
  }
1517
1542
  }, [disabled, domReference, floating, modal, orderRef, portalContext, isUntrappedTypeableCombobox, guards]);
1518
1543
  index(() => {
1519
- if (disabled || !isHTMLElement(floatingFocusNode)) return;
1520
- const doc = getDocument(floatingFocusNode);
1544
+ if (disabled || !isHTMLElement(floatingFocusElement)) return;
1545
+ const doc = getDocument(floatingFocusElement);
1521
1546
  const previouslyFocusedElement = activeElement(doc);
1522
1547
 
1523
1548
  // Wait for any layout effect state setters to execute to set `tabIndex`.
1524
1549
  queueMicrotask(() => {
1525
- const focusableElements = getTabbableElements(floatingFocusNode);
1550
+ const focusableElements = getTabbableElements(floatingFocusElement);
1526
1551
  const initialFocusValue = initialFocusRef.current;
1527
- const elToFocus = (typeof initialFocusValue === 'number' ? focusableElements[initialFocusValue] : initialFocusValue.current) || floatingFocusNode;
1528
- const focusAlreadyInsideFloatingEl = contains(floatingFocusNode, previouslyFocusedElement);
1552
+ const elToFocus = (typeof initialFocusValue === 'number' ? focusableElements[initialFocusValue] : initialFocusValue.current) || floatingFocusElement;
1553
+ const focusAlreadyInsideFloatingEl = contains(floatingFocusElement, previouslyFocusedElement);
1529
1554
  if (!ignoreInitialFocus && !focusAlreadyInsideFloatingEl && open) {
1530
1555
  enqueueFocus(elToFocus, {
1531
- preventScroll: elToFocus === floatingFocusNode
1556
+ preventScroll: elToFocus === floatingFocusElement
1532
1557
  });
1533
1558
  }
1534
1559
  });
1535
- }, [disabled, open, floatingFocusNode, ignoreInitialFocus, getTabbableElements, initialFocusRef]);
1560
+ }, [disabled, open, floatingFocusElement, ignoreInitialFocus, getTabbableElements, initialFocusRef]);
1536
1561
  index(() => {
1537
- if (disabled || !floatingFocusNode) return;
1562
+ if (disabled || !floatingFocusElement) return;
1538
1563
  let preventReturnFocusScroll = false;
1539
- const doc = getDocument(floatingFocusNode);
1564
+ const doc = getDocument(floatingFocusElement);
1540
1565
  const previouslyFocusedElement = activeElement(doc);
1541
1566
  const contextData = dataRef.current;
1542
1567
  let openEvent = contextData.openEvent;
@@ -1604,7 +1629,7 @@ function FloatingFocusManager(props) {
1604
1629
  }
1605
1630
  });
1606
1631
  };
1607
- }, [disabled, floating, floatingFocusNode, returnFocusRef, dataRef, refs, events, tree, nodeId]);
1632
+ }, [disabled, floating, floatingFocusElement, returnFocusRef, dataRef, refs, events, tree, nodeId]);
1608
1633
 
1609
1634
  // Synchronize the `context` & `modal` value to the FloatingPortal context.
1610
1635
  // It will decide whether or not it needs to render its own guards.
@@ -1624,11 +1649,11 @@ function FloatingFocusManager(props) {
1624
1649
  }, [disabled, portalContext, modal, open, onOpenChange, refs, closeOnFocusOut]);
1625
1650
  index(() => {
1626
1651
  if (disabled) return;
1627
- if (!floatingFocusNode) return;
1652
+ if (!floatingFocusElement) return;
1628
1653
  if (typeof MutationObserver !== 'function') return;
1629
1654
  if (ignoreInitialFocus) return;
1630
1655
  const handleMutation = () => {
1631
- const tabIndex = floatingFocusNode.getAttribute('tabindex');
1656
+ const tabIndex = floatingFocusElement.getAttribute('tabindex');
1632
1657
  const tabbableContent = getTabbableContent();
1633
1658
  const activeEl = activeElement(getDocument(floating));
1634
1659
  const tabbableIndex = tabbableContent.indexOf(activeEl);
@@ -1637,15 +1662,15 @@ function FloatingFocusManager(props) {
1637
1662
  }
1638
1663
  if (orderRef.current.includes('floating') || activeEl !== refs.domReference.current && tabbableContent.length === 0) {
1639
1664
  if (tabIndex !== '0') {
1640
- floatingFocusNode.setAttribute('tabindex', '0');
1665
+ floatingFocusElement.setAttribute('tabindex', '0');
1641
1666
  }
1642
1667
  } else if (tabIndex !== '-1') {
1643
- floatingFocusNode.setAttribute('tabindex', '-1');
1668
+ floatingFocusElement.setAttribute('tabindex', '-1');
1644
1669
  }
1645
1670
  };
1646
1671
  handleMutation();
1647
1672
  const observer = new MutationObserver(handleMutation);
1648
- observer.observe(floatingFocusNode, {
1673
+ observer.observe(floatingFocusElement, {
1649
1674
  childList: true,
1650
1675
  subtree: true,
1651
1676
  attributes: true
@@ -1653,7 +1678,7 @@ function FloatingFocusManager(props) {
1653
1678
  return () => {
1654
1679
  observer.disconnect();
1655
1680
  };
1656
- }, [disabled, floating, floatingFocusNode, refs, orderRef, getTabbableContent, ignoreInitialFocus]);
1681
+ }, [disabled, floating, floatingFocusElement, refs, orderRef, getTabbableContent, ignoreInitialFocus]);
1657
1682
  function renderDismissButton(location) {
1658
1683
  if (disabled || !visuallyHiddenDismiss || !modal) {
1659
1684
  return null;
@@ -2356,7 +2381,8 @@ function mergeProps(userProps, propsList, elementKey) {
2356
2381
  }
2357
2382
  return {
2358
2383
  ...(elementKey === 'floating' && {
2359
- tabIndex: -1
2384
+ tabIndex: -1,
2385
+ [FOCUSABLE_ATTRIBUTE]: ''
2360
2386
  }),
2361
2387
  ...domUserProps,
2362
2388
  ...propsList.map(value => {
@@ -2503,6 +2529,8 @@ function useListNavigation(context, props) {
2503
2529
  warn('In grid list navigation mode (`cols` > 1), the `orientation` should', 'be either "horizontal" or "both".');
2504
2530
  }
2505
2531
  }
2532
+ const floatingFocusElement = getFloatingFocusElement(elements.floating);
2533
+ const floatingFocusElementRef = useLatestRef(floatingFocusElement);
2506
2534
  const parentId = useFloatingParentNodeId();
2507
2535
  const tree = useFloatingTree();
2508
2536
  const onNavigate = useEffectEvent(unstable_onNavigate);
@@ -2518,7 +2546,6 @@ function useListNavigation(context, props) {
2518
2546
  const disabledIndicesRef = useLatestRef(disabledIndices);
2519
2547
  const latestOpenRef = useLatestRef(open);
2520
2548
  const scrollItemIntoViewRef = useLatestRef(scrollItemIntoView);
2521
- const floatingRef = useLatestRef(elements.floating);
2522
2549
  const selectedIndexRef = useLatestRef(selectedIndex);
2523
2550
  const [activeId, setActiveId] = React.useState();
2524
2551
  const [virtualId, setVirtualId] = React.useState();
@@ -2734,7 +2761,7 @@ function useListNavigation(context, props) {
2734
2761
  focusItem(listRef, indexRef);
2735
2762
  onNavigate(null);
2736
2763
  if (!virtual) {
2737
- enqueueFocus(floatingRef.current, {
2764
+ enqueueFocus(floatingFocusElementRef.current, {
2738
2765
  preventScroll: true
2739
2766
  });
2740
2767
  }
@@ -2742,7 +2769,7 @@ function useListNavigation(context, props) {
2742
2769
  })
2743
2770
  };
2744
2771
  return props;
2745
- }, [open, floatingRef, focusItem, focusItemOnHover, listRef, onNavigate, virtual]);
2772
+ }, [open, floatingFocusElementRef, focusItem, focusItemOnHover, listRef, onNavigate, virtual]);
2746
2773
  const commonOnKeyDown = useEffectEvent(event => {
2747
2774
  isPointerModalityRef.current = false;
2748
2775
  forceSyncFocus.current = true;
@@ -2750,7 +2777,7 @@ function useListNavigation(context, props) {
2750
2777
  // If the floating element is animating out, ignore navigation. Otherwise,
2751
2778
  // the `activeIndex` gets set to 0 despite not being open so the next time
2752
2779
  // the user ArrowDowns, the first item won't be focused.
2753
- if (!latestOpenRef.current && event.currentTarget === floatingRef.current) {
2780
+ if (!latestOpenRef.current && event.currentTarget === floatingFocusElementRef.current) {
2754
2781
  return;
2755
2782
  }
2756
2783
  if (nested && isCrossOrientationCloseKey(event.key, orientation, rtl)) {
@@ -2789,7 +2816,7 @@ function useListNavigation(context, props) {
2789
2816
  const minGridIndex = cellMap.findIndex(index => index != null && !isDisabled(listRef.current, index, disabledIndices));
2790
2817
  // last enabled index
2791
2818
  const maxGridIndex = cellMap.reduce((foundIndex, index, cellIndex) => index != null && !isDisabled(listRef.current, index, disabledIndices) ? cellIndex : foundIndex, -1);
2792
- indexRef.current = cellMap[getGridNavigatedIndex({
2819
+ const index = cellMap[getGridNavigatedIndex({
2793
2820
  current: cellMap.map(itemIndex => itemIndex != null ? listRef.current[itemIndex] : null)
2794
2821
  }, {
2795
2822
  event,
@@ -2807,9 +2834,11 @@ function useListNavigation(context, props) {
2807
2834
  // top/left over bottom/right.
2808
2835
  event.key === ARROW_DOWN ? 'bl' : event.key === ARROW_RIGHT ? 'tr' : 'tl'),
2809
2836
  stopEvent: true
2810
- })]; // navigated cell will never be nullish
2811
-
2812
- onNavigate(indexRef.current);
2837
+ })];
2838
+ if (index != null) {
2839
+ indexRef.current = index;
2840
+ onNavigate(indexRef.current);
2841
+ }
2813
2842
  if (orientation === 'both') {
2814
2843
  return;
2815
2844
  }
@@ -1,6 +1,6 @@
1
1
  'use client';
2
- import { offset as offset$1, shift as shift$1, flip as flip$1, computePosition, arrow as arrow$2, size as size$1 } from '../../dom/dist/floating-ui.dom.js';
3
- export { autoUpdate, platform } from '../../dom/dist/floating-ui.dom.js';
2
+ import { offset as offset$1, shift as shift$1, computePosition, flip as flip$1, arrow as arrow$2, size as size$1 } from '../node_modules/@floating-ui/dom/dist/floating-ui.dom.js';
3
+ export { autoUpdate, platform } from '../node_modules/@floating-ui/dom/dist/floating-ui.dom.js';
4
4
  import * as React from 'react';
5
5
  import { useLayoutEffect, useEffect } from 'react';
6
6
  import * as ReactDOM from 'react-dom';