@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
@@ -118,9 +118,11 @@ class Virtualizer {
118
118
  this.measurementsCache = [];
119
119
  this.itemSizeCache = /* @__PURE__ */ new Map();
120
120
  this.pendingMeasuredCacheIndexes = [];
121
+ this.scrollRect = null;
122
+ this.scrollOffset = null;
121
123
  this.scrollDirection = null;
122
124
  this.scrollAdjustments = 0;
123
- this.measureElementCache = /* @__PURE__ */ new Map();
125
+ this.elementsCache = /* @__PURE__ */ new Map();
124
126
  this.observer = /* @__PURE__ */ (() => {
125
127
  let _ro = null;
126
128
  const get = () => {
@@ -154,8 +156,7 @@ class Virtualizer {
154
156
  this.range = null;
155
157
  this.setOptions = (opts2) => {
156
158
  Object.entries(opts2).forEach(([key, value]) => {
157
- if (typeof value === "undefined")
158
- delete opts2[key];
159
+ if (typeof value === "undefined") delete opts2[key];
159
160
  });
160
161
  this.options = {
161
162
  debug: false,
@@ -178,6 +179,7 @@ class Virtualizer {
178
179
  initialMeasurementsCache: [],
179
180
  lanes: 1,
180
181
  isScrollingResetDelay: 150,
182
+ enabled: true,
181
183
  ...opts2
182
184
  };
183
185
  };
@@ -196,26 +198,31 @@ class Virtualizer {
196
198
  this.unsubs.filter(Boolean).forEach((d) => d());
197
199
  this.unsubs = [];
198
200
  this.scrollElement = null;
201
+ this.targetWindow = null;
202
+ this.observer.disconnect();
203
+ this.elementsCache.clear();
199
204
  };
200
205
  this._didMount = () => {
201
- this.measureElementCache.forEach(this.observer.observe);
202
206
  return () => {
203
- this.observer.disconnect();
204
207
  this.cleanup();
205
208
  };
206
209
  };
207
210
  this._willUpdate = () => {
208
211
  var _a;
209
- const scrollElement = this.options.getScrollElement();
212
+ const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;
210
213
  if (this.scrollElement !== scrollElement) {
211
214
  this.cleanup();
215
+ if (!scrollElement) {
216
+ this.notify(false, false);
217
+ return;
218
+ }
212
219
  this.scrollElement = scrollElement;
213
220
  if (this.scrollElement && "ownerDocument" in this.scrollElement) {
214
221
  this.targetWindow = this.scrollElement.ownerDocument.defaultView;
215
222
  } else {
216
223
  this.targetWindow = ((_a = this.scrollElement) == null ? void 0 : _a.window) ?? null;
217
224
  }
218
- this._scrollToOffset(this.scrollOffset, {
225
+ this._scrollToOffset(this.getScrollOffset(), {
219
226
  adjustments: void 0,
220
227
  behavior: void 0
221
228
  });
@@ -228,7 +235,7 @@ class Virtualizer {
228
235
  this.unsubs.push(
229
236
  this.options.observeElementOffset(this, (offset, isScrolling) => {
230
237
  this.scrollAdjustments = 0;
231
- this.scrollDirection = isScrolling ? this.scrollOffset < offset ? "forward" : "backward" : null;
238
+ this.scrollDirection = isScrolling ? this.getScrollOffset() < offset ? "forward" : "backward" : null;
232
239
  this.scrollOffset = offset;
233
240
  const prevIsScrolling = this.isScrolling;
234
241
  this.isScrolling = isScrolling;
@@ -238,28 +245,21 @@ class Virtualizer {
238
245
  }
239
246
  };
240
247
  this.getSize = () => {
248
+ if (!this.options.enabled) {
249
+ this.scrollRect = null;
250
+ return 0;
251
+ }
252
+ this.scrollRect = this.scrollRect ?? this.options.initialRect;
241
253
  return this.scrollRect[this.options.horizontal ? "width" : "height"];
242
254
  };
243
- this.getMeasurementOptions = utils.memo(
244
- () => [
245
- this.options.count,
246
- this.options.paddingStart,
247
- this.options.scrollMargin,
248
- this.options.getItemKey
249
- ],
250
- (count, paddingStart, scrollMargin, getItemKey) => {
251
- this.pendingMeasuredCacheIndexes = [];
252
- return {
253
- count,
254
- paddingStart,
255
- scrollMargin,
256
- getItemKey
257
- };
258
- },
259
- {
260
- key: false
255
+ this.getScrollOffset = () => {
256
+ if (!this.options.enabled) {
257
+ this.scrollOffset = null;
258
+ return 0;
261
259
  }
262
- );
260
+ this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === "function" ? this.options.initialOffset() : this.options.initialOffset);
261
+ return this.scrollOffset;
262
+ };
263
263
  this.getFurthestMeasurement = (measurements, index) => {
264
264
  const furthestMeasurementsFound = /* @__PURE__ */ new Map();
265
265
  const furthestMeasurements = /* @__PURE__ */ new Map();
@@ -287,13 +287,74 @@ class Virtualizer {
287
287
  return a.end - b.end;
288
288
  })[0] : void 0;
289
289
  };
290
+ this.getMeasurementOptions = utils.memo(
291
+ () => [
292
+ this.options.count,
293
+ this.options.paddingStart,
294
+ this.options.scrollMargin,
295
+ this.options.getItemKey,
296
+ this.options.enabled
297
+ ],
298
+ (count, paddingStart, scrollMargin, getItemKey, enabled) => {
299
+ this.pendingMeasuredCacheIndexes = [];
300
+ return {
301
+ count,
302
+ paddingStart,
303
+ scrollMargin,
304
+ getItemKey,
305
+ enabled
306
+ };
307
+ },
308
+ {
309
+ key: false
310
+ }
311
+ );
290
312
  this.getMeasurements = utils.memo(
291
313
  () => [this.getMeasurementOptions(), this.itemSizeCache],
292
- ({ count, paddingStart, scrollMargin, getItemKey }, itemSizeCache) => {
314
+ ({ count, paddingStart, scrollMargin, getItemKey, enabled }, itemSizeCache) => {
315
+ var _a;
316
+ if (!enabled) {
317
+ this.measurementsCache = [];
318
+ this.itemSizeCache.clear();
319
+ return [];
320
+ }
321
+ if (this.measurementsCache.length === 0) {
322
+ this.measurementsCache = this.options.initialMeasurementsCache;
323
+ this.measurementsCache.forEach((item) => {
324
+ this.itemSizeCache.set(item.key, item.size);
325
+ });
326
+ }
293
327
  const min = this.pendingMeasuredCacheIndexes.length > 0 ? Math.min(...this.pendingMeasuredCacheIndexes) : 0;
294
328
  this.pendingMeasuredCacheIndexes = [];
295
329
  const measurements = this.measurementsCache.slice(0, min);
296
330
  for (let i = min; i < count; i++) {
331
+ let measureElement2 = (_a = this.measurementsCache[i]) == null ? void 0 : _a.measureElement;
332
+ if (!measureElement2) {
333
+ measureElement2 = (node) => {
334
+ const key2 = getItemKey(i);
335
+ const prevNode = this.elementsCache.get(key2);
336
+ if (!node) {
337
+ if (prevNode) {
338
+ this.observer.unobserve(prevNode);
339
+ this.elementsCache.delete(key2);
340
+ }
341
+ return;
342
+ }
343
+ if (prevNode !== node) {
344
+ if (prevNode) {
345
+ this.observer.unobserve(prevNode);
346
+ }
347
+ this.observer.observe(node);
348
+ this.elementsCache.set(key2, node);
349
+ }
350
+ if (node.isConnected) {
351
+ this.resizeItem(
352
+ i,
353
+ this.options.measureElement(node, void 0, this)
354
+ );
355
+ }
356
+ };
357
+ }
297
358
  const key = getItemKey(i);
298
359
  const furthestMeasurement = this.options.lanes === 1 ? measurements[i - 1] : this.getFurthestMeasurement(measurements, i);
299
360
  const start = furthestMeasurement ? furthestMeasurement.end + this.options.gap : paddingStart + scrollMargin;
@@ -307,7 +368,8 @@ class Virtualizer {
307
368
  size,
308
369
  end,
309
370
  key,
310
- lane
371
+ lane,
372
+ measureElement: measureElement2
311
373
  };
312
374
  }
313
375
  this.measurementsCache = measurements;
@@ -319,7 +381,7 @@ class Virtualizer {
319
381
  }
320
382
  );
321
383
  this.calculateRange = utils.memo(
322
- () => [this.getMeasurements(), this.getSize(), this.scrollOffset],
384
+ () => [this.getMeasurements(), this.getSize(), this.getScrollOffset()],
323
385
  (measurements, outerSize, scrollOffset) => {
324
386
  return this.range = measurements.length > 0 && outerSize > 0 ? calculateRange({
325
387
  measurements,
@@ -364,36 +426,40 @@ class Virtualizer {
364
426
  return parseInt(indexStr, 10);
365
427
  };
366
428
  this._measureElement = (node, entry) => {
367
- const item = this.measurementsCache[this.indexFromElement(node)];
429
+ const i = this.indexFromElement(node);
430
+ const item = this.getMeasurements()[i];
368
431
  if (!item || !node.isConnected) {
369
- this.measureElementCache.forEach((cached, key) => {
432
+ this.elementsCache.forEach((cached, key) => {
370
433
  if (cached === node) {
371
434
  this.observer.unobserve(node);
372
- this.measureElementCache.delete(key);
435
+ this.elementsCache.delete(key);
373
436
  }
374
437
  });
375
438
  return;
376
439
  }
377
- const prevNode = this.measureElementCache.get(item.key);
440
+ const prevNode = this.elementsCache.get(item.key);
378
441
  if (prevNode !== node) {
379
442
  if (prevNode) {
380
443
  this.observer.unobserve(prevNode);
381
444
  }
382
445
  this.observer.observe(node);
383
- this.measureElementCache.set(item.key, node);
446
+ this.elementsCache.set(item.key, node);
384
447
  }
385
- const measuredItemSize = this.options.measureElement(node, entry, this);
386
- this.resizeItem(item, measuredItemSize);
448
+ this.resizeItem(i, this.options.measureElement(node, entry, this));
387
449
  };
388
- this.resizeItem = (item, size) => {
450
+ this.resizeItem = (index, size) => {
451
+ const item = this.getMeasurements()[index];
452
+ if (!item) {
453
+ return;
454
+ }
389
455
  const itemSize = this.itemSizeCache.get(item.key) ?? item.size;
390
456
  const delta = size - itemSize;
391
457
  if (delta !== 0) {
392
- if (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(item, delta, this) : item.start < this.scrollOffset + this.scrollAdjustments) {
458
+ if (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(item, delta, this) : item.start < this.getScrollOffset() + this.scrollAdjustments) {
393
459
  if (process.env.NODE_ENV !== "production" && this.options.debug) {
394
460
  console.info("correction", delta);
395
461
  }
396
- this._scrollToOffset(this.scrollOffset, {
462
+ this._scrollToOffset(this.getScrollOffset(), {
397
463
  adjustments: this.scrollAdjustments += delta,
398
464
  behavior: void 0
399
465
  });
@@ -427,6 +493,9 @@ class Virtualizer {
427
493
  );
428
494
  this.getVirtualItemForOffset = (offset) => {
429
495
  const measurements = this.getMeasurements();
496
+ if (measurements.length === 0) {
497
+ return void 0;
498
+ }
430
499
  return utils.notUndefined(
431
500
  measurements[findNearestBinarySearch(
432
501
  0,
@@ -438,10 +507,11 @@ class Virtualizer {
438
507
  };
439
508
  this.getOffsetForAlignment = (toOffset, align) => {
440
509
  const size = this.getSize();
510
+ const scrollOffset = this.getScrollOffset();
441
511
  if (align === "auto") {
442
- if (toOffset <= this.scrollOffset) {
512
+ if (toOffset <= scrollOffset) {
443
513
  align = "start";
444
- } else if (toOffset >= this.scrollOffset + size) {
514
+ } else if (toOffset >= scrollOffset + size) {
445
515
  align = "end";
446
516
  } else {
447
517
  align = "start";
@@ -456,25 +526,30 @@ class Virtualizer {
456
526
  }
457
527
  const scrollSizeProp = this.options.horizontal ? "scrollWidth" : "scrollHeight";
458
528
  const scrollSize = this.scrollElement ? "document" in this.scrollElement ? this.scrollElement.document.documentElement[scrollSizeProp] : this.scrollElement[scrollSizeProp] : 0;
459
- const maxOffset = scrollSize - this.getSize();
529
+ const maxOffset = scrollSize - size;
460
530
  return Math.max(Math.min(maxOffset, toOffset), 0);
461
531
  };
462
532
  this.getOffsetForIndex = (index, align = "auto") => {
463
533
  index = Math.max(0, Math.min(index, this.options.count - 1));
464
- const measurement = utils.notUndefined(this.getMeasurements()[index]);
534
+ const item = this.getMeasurements()[index];
535
+ if (!item) {
536
+ return void 0;
537
+ }
538
+ const size = this.getSize();
539
+ const scrollOffset = this.getScrollOffset();
465
540
  if (align === "auto") {
466
- if (measurement.end >= this.scrollOffset + this.getSize() - this.options.scrollPaddingEnd) {
541
+ if (item.end >= scrollOffset + size - this.options.scrollPaddingEnd) {
467
542
  align = "end";
468
- } else if (measurement.start <= this.scrollOffset + this.options.scrollPaddingStart) {
543
+ } else if (item.start <= scrollOffset + this.options.scrollPaddingStart) {
469
544
  align = "start";
470
545
  } else {
471
- return [this.scrollOffset, align];
546
+ return [scrollOffset, align];
472
547
  }
473
548
  }
474
- const toOffset = align === "end" ? measurement.end + this.options.scrollPaddingEnd : measurement.start - this.options.scrollPaddingStart;
549
+ const toOffset = align === "end" ? item.end + this.options.scrollPaddingEnd : item.start - this.options.scrollPaddingStart;
475
550
  return [this.getOffsetForAlignment(toOffset, align), align];
476
551
  };
477
- this.isDynamicMode = () => this.measureElementCache.size > 0;
552
+ this.isDynamicMode = () => this.elementsCache.size > 0;
478
553
  this.cancelScrollToIndex = () => {
479
554
  if (this.scrollToIndexTimeoutId !== null && this.targetWindow) {
480
555
  this.targetWindow.clearTimeout(this.scrollToIndexTimeoutId);
@@ -501,17 +576,21 @@ class Virtualizer {
501
576
  "The `smooth` scroll behavior is not fully supported with dynamic size."
502
577
  );
503
578
  }
504
- const [toOffset, align] = this.getOffsetForIndex(index, initialAlign);
505
- this._scrollToOffset(toOffset, { adjustments: void 0, behavior });
579
+ const offsetAndAlign = this.getOffsetForIndex(index, initialAlign);
580
+ if (!offsetAndAlign) return;
581
+ const [offset, align] = offsetAndAlign;
582
+ this._scrollToOffset(offset, { adjustments: void 0, behavior });
506
583
  if (behavior !== "smooth" && this.isDynamicMode() && this.targetWindow) {
507
584
  this.scrollToIndexTimeoutId = this.targetWindow.setTimeout(() => {
508
585
  this.scrollToIndexTimeoutId = null;
509
- const elementInDOM = this.measureElementCache.has(
586
+ const elementInDOM = this.elementsCache.has(
510
587
  this.options.getItemKey(index)
511
588
  );
512
589
  if (elementInDOM) {
513
- const [toOffset2] = this.getOffsetForIndex(index, align);
514
- if (!utils.approxEqual(toOffset2, this.scrollOffset)) {
590
+ const [latestOffset] = utils.notUndefined(
591
+ this.getOffsetForIndex(index, align)
592
+ );
593
+ if (!utils.approxEqual(latestOffset, this.getScrollOffset())) {
515
594
  this.scrollToIndex(index, { align, behavior });
516
595
  }
517
596
  } else {
@@ -527,7 +606,7 @@ class Virtualizer {
527
606
  "The `smooth` scroll behavior is not fully supported with dynamic size."
528
607
  );
529
608
  }
530
- this._scrollToOffset(this.scrollOffset + delta, {
609
+ this._scrollToOffset(this.getScrollOffset() + delta, {
531
610
  adjustments: void 0,
532
611
  behavior
533
612
  });
@@ -557,13 +636,6 @@ class Virtualizer {
557
636
  (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, false);
558
637
  };
559
638
  this.setOptions(opts);
560
- this.scrollRect = this.options.initialRect;
561
- this.scrollOffset = typeof this.options.initialOffset === "function" ? this.options.initialOffset() : this.options.initialOffset;
562
- this.measurementsCache = this.options.initialMeasurementsCache;
563
- this.measurementsCache.forEach((item) => {
564
- this.itemSizeCache.set(item.key, item.size);
565
- });
566
- this.notify(false, false);
567
639
  }
568
640
  }
569
641
  const findNearestBinarySearch = (low, high, getCurrentValue, value) => {
@@ -7,8 +7,7 @@ function memo(getDeps, fn, opts) {
7
7
  return () => {
8
8
  var _a, _b, _c, _d;
9
9
  let depTime;
10
- if (opts.key && ((_a = opts.debug) == null ? void 0 : _a.call(opts)))
11
- depTime = Date.now();
10
+ if (opts.key && ((_a = opts.debug) == null ? void 0 : _a.call(opts))) depTime = Date.now();
12
11
  const newDeps = getDeps();
13
12
  const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);
14
13
  if (!depsChanged) {
@@ -16,8 +15,7 @@ function memo(getDeps, fn, opts) {
16
15
  }
17
16
  deps = newDeps;
18
17
  let resultTime;
19
- if (opts.key && ((_b = opts.debug) == null ? void 0 : _b.call(opts)))
20
- resultTime = Date.now();
18
+ if (opts.key && ((_b = opts.debug) == null ? void 0 : _b.call(opts))) resultTime = Date.now();
21
19
  result = fn(...newDeps);
22
20
  if (opts.key && ((_c = opts.debug) == null ? void 0 : _c.call(opts))) {
23
21
  const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;
@@ -48,7 +46,7 @@ function memo(getDeps, fn, opts) {
48
46
  }
49
47
  function notUndefined(value, msg) {
50
48
  if (value === void 0) {
51
- throw new Error(`Unexpected undefined${msg ? `: ${msg}` : ""}`);
49
+ throw new Error(`Unexpected undefined${""}`);
52
50
  } else {
53
51
  return value;
54
52
  }
@@ -12,7 +12,10 @@ const transitionDurationInMilliseconds = 250;
12
12
  * AnimateHeight is a component that animates its height when the `open` prop changes.
13
13
  */
14
14
  const AnimateHeight = ({ children, className, open = false, style, ...rest }) => {
15
- const [height, setHeight] = React.useState(0);
15
+ /* We don't know the initial height we want to start with.
16
+ It depends on if it should start open or not, therefore we set height to `undefined`,
17
+ so we don't get any layoutshift on first render */
18
+ const [height, setHeight] = React.useState(undefined);
16
19
  const prevOpen = usePrevious.usePrevious(open);
17
20
  const openOrClosed = open ? 'open' : 'closed';
18
21
  const [state, setState] = React.useState(openOrClosed);
@@ -20,19 +20,47 @@ function getPrevFocusableValue(items, value) {
20
20
  const RovingFocusItem = React.forwardRef(({ value, asChild, ...rest }, ref) => {
21
21
  const Component = asChild ? index.Slot : 'div';
22
22
  const focusValue = value ?? (typeof rest.children == 'string' ? rest.children : '');
23
- const { getOrderedItems, getRovingProps } = useRovingFocus.useRovingFocus(focusValue);
23
+ const { getOrderedItems, getRovingProps, orientation } = useRovingFocus.useRovingFocus(focusValue);
24
24
  const rovingProps = getRovingProps({
25
25
  onKeyDown: (e) => {
26
26
  rest?.onKeyDown?.(e);
27
27
  const items = getOrderedItems();
28
28
  let nextItem;
29
- if (e.key === 'ArrowRight') {
30
- nextItem = getNextFocusableValue(items, focusValue);
29
+ switch (orientation) {
30
+ case 'horizontal':
31
+ if (e.key === 'ArrowRight') {
32
+ nextItem = getNextFocusableValue(items, focusValue);
33
+ }
34
+ if (e.key === 'ArrowLeft') {
35
+ nextItem = getPrevFocusableValue(items, focusValue);
36
+ }
37
+ break;
38
+ case 'vertical':
39
+ if (e.key === 'ArrowDown') {
40
+ nextItem = getNextFocusableValue(items, focusValue);
41
+ }
42
+ if (e.key === 'ArrowUp') {
43
+ nextItem = getPrevFocusableValue(items, focusValue);
44
+ }
45
+ break;
46
+ case 'ambiguous':
47
+ if (['ArrowRight', 'ArrowDown'].includes(e.key)) {
48
+ nextItem = getNextFocusableValue(items, focusValue);
49
+ }
50
+ if (['ArrowLeft', 'ArrowUp'].includes(e.key)) {
51
+ nextItem = getPrevFocusableValue(items, focusValue);
52
+ }
31
53
  }
32
- if (e.key === 'ArrowLeft') {
33
- nextItem = getPrevFocusableValue(items, focusValue);
54
+ if (e.key === 'Home') {
55
+ nextItem = items[0];
56
+ }
57
+ if (e.key === 'End') {
58
+ nextItem = items[items.length - 1];
59
+ }
60
+ if (nextItem) {
61
+ e.preventDefault();
62
+ nextItem.element.focus();
34
63
  }
35
- nextItem?.element.focus();
36
64
  },
37
65
  });
38
66
  const mergedRefs = floatingUi_react.useMergeRefs([ref, rovingProps.ref]);
@@ -16,8 +16,9 @@ const RovingFocusContext = React.createContext({
16
16
  /* intentionally empty */
17
17
  },
18
18
  focusableValue: null,
19
+ orientation: 'horizontal',
19
20
  });
20
- const RovingFocusRoot = React.forwardRef(({ activeValue, asChild, onBlur, onFocus, ...rest }, ref) => {
21
+ const RovingFocusRoot = React.forwardRef(({ activeValue, asChild, orientation = 'horizontal', onBlur, onFocus, ...rest }, ref) => {
21
22
  const Component = asChild ? index.Slot : 'div';
22
23
  const [focusableValue, setFocusableValue] = React.useState(null);
23
24
  const [isShiftTabbing, setIsShiftTabbing] = React.useState(false);
@@ -43,6 +44,7 @@ const RovingFocusRoot = React.forwardRef(({ activeValue, asChild, onBlur, onFocu
43
44
  onShiftTab: () => {
44
45
  setIsShiftTabbing(true);
45
46
  },
47
+ orientation,
46
48
  }, children: jsxRuntime.jsx(Component, { ...rest, tabIndex: isShiftTabbing ? -1 : 0, onBlur: (e) => {
47
49
  onBlur?.(e);
48
50
  setIsShiftTabbing(false);
@@ -8,10 +8,11 @@ var RovingFocusRoot = require('./RovingFocusRoot.js');
8
8
  // Inspired by: https://github.com/radix-ui/primitives/tree/main/packages/react/roving-focus/src
9
9
  /** Handles props for `RovingFocus` in context with `RovingFocusRoot` */
10
10
  const useRovingFocus = (value) => {
11
- const { elements, getOrderedItems, setFocusableValue, focusableValue, onShiftTab, } = React.useContext(RovingFocusRoot.RovingFocusContext);
11
+ const { elements, getOrderedItems, setFocusableValue, focusableValue, onShiftTab, orientation, } = React.useContext(RovingFocusRoot.RovingFocusContext);
12
12
  return {
13
13
  getOrderedItems,
14
14
  isFocusable: focusableValue === value,
15
+ orientation,
15
16
  getRovingProps: (props) => ({
16
17
  ...props,
17
18
  ref: (element) => {
@@ -10,8 +10,8 @@ import { AccordionRoot } from './AccordionRoot.js';
10
10
  * <Accordion.Root>
11
11
  * <Accordion.Item>
12
12
  * <Accordion.Heading>Heading 1</Accordion.Heading>
13
- * <Accordion.Content>Content 1</Accordion.Content>
14
- * </Accordion.Item>
13
+ * <Accordion.Content>Content 1</Accordion.Content>
14
+ * </Accordion.Item>
15
15
  * <Accordion.Item>
16
16
  */
17
17
  const Accordion = {};
@@ -1,11 +1,11 @@
1
1
  'use client';
2
2
  import { jsx } from 'react/jsx-runtime';
3
- import { Slot as $5e63c961fc1ce211$export$8c6ed5c666ac1360 } from '../../node_modules/@radix-ui/react-slot/dist/index.js';
3
+ import { Slot } from '../../node_modules/@radix-ui/react-slot/dist/index.js';
4
4
  import { clsx } from '../../node_modules/clsx/dist/lite.js';
5
5
  import { forwardRef } from 'react';
6
6
 
7
7
  const Box = forwardRef(({ shadow, borderColor, borderRadius, background = 'default', children, asChild = false, className, ...rest }, ref) => {
8
- const Component = asChild ? $5e63c961fc1ce211$export$8c6ed5c666ac1360 : 'div';
8
+ const Component = asChild ? Slot : 'div';
9
9
  return (jsx(Component, { ref: ref, className: clsx(shadow && `ds-box--${shadow}-shadow`, borderColor && `ds-box--${borderColor}-border-color`, borderRadius && `ds-box--${borderRadius}-border-radius`, `ds-box--${background}-background`, className), ...rest, children: children }));
10
10
  });
11
11
  Box.displayName = 'Box';
@@ -0,0 +1,9 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { clsx } from '../../node_modules/clsx/dist/lite.js';
4
+ import { forwardRef } from 'react';
5
+
6
+ const BreadcrumbsItem = forwardRef(({ className, ...rest }, ref) => (jsx("li", { ref: ref, className: clsx('ds-breadcrumbs__item', className), ...rest })));
7
+ BreadcrumbsItem.displayName = 'BreadcrumbsItem';
8
+
9
+ export { BreadcrumbsItem };
@@ -0,0 +1,10 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { clsx } from '../../node_modules/clsx/dist/lite.js';
4
+ import { forwardRef } from 'react';
5
+ import { Link } from '../Link/Link.js';
6
+
7
+ const BreadcrumbsLink = forwardRef(({ className, ...rest }, ref) => (jsx(Link, { className: clsx(`ds-breadcrumbs__link`, className), ref: ref, ...rest })));
8
+ BreadcrumbsLink.displayName = 'BreadcrumbsLink';
9
+
10
+ export { BreadcrumbsLink };
@@ -0,0 +1,21 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { useMergeRefs } from '../../node_modules/@floating-ui/react/dist/floating-ui.react.js';
4
+ import { clsx } from '../../node_modules/clsx/dist/lite.js';
5
+ import { forwardRef, useRef, useEffect } from 'react';
6
+
7
+ const BreadcrumbsList = forwardRef(({ className, ...rest }, ref) => {
8
+ const innerRef = useRef(null);
9
+ const mergedRefs = useMergeRefs([innerRef, ref]);
10
+ // Set aria-current on last link
11
+ useEffect(() => {
12
+ const links = innerRef.current?.querySelectorAll('a') || [];
13
+ const lastLink = links[links?.length - 1];
14
+ lastLink?.setAttribute('aria-current', 'page');
15
+ return () => lastLink?.removeAttribute('aria-current'); // Remove on re-render as React can re-use DOM elements
16
+ });
17
+ return (jsx("ol", { className: clsx('ds-breadcrumbs__list', className), ref: mergedRefs, ...rest }));
18
+ });
19
+ BreadcrumbsList.displayName = 'BreadcrumbsList';
20
+
21
+ export { BreadcrumbsList };
@@ -0,0 +1,9 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { clsx } from '../../node_modules/clsx/dist/lite.js';
4
+ import { forwardRef } from 'react';
5
+
6
+ const BreadcrumbsNav = forwardRef(({ 'aria-label': ariaLabel = 'Du er her:', className, ...rest }, ref) => (jsx("nav", { "aria-label": ariaLabel, ref: ref, className: clsx('ds-breadcrumbs__nav', className), ...rest })));
7
+ BreadcrumbsNav.displayName = 'BreadcrumbsNav';
8
+
9
+ export { BreadcrumbsNav };
@@ -0,0 +1,9 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { clsx } from '../../node_modules/clsx/dist/lite.js';
4
+ import { forwardRef } from 'react';
5
+
6
+ const BreadcrumbsRoot = forwardRef(({ className, size = 'md', ...rest }, ref) => (jsx("div", { ref: ref, className: clsx('ds-breadcrumbs', `ds-breadcrumbs--${size}`, className), ...rest })));
7
+ BreadcrumbsRoot.displayName = 'BreadcrumbsRoot';
8
+
9
+ export { BreadcrumbsRoot };
@@ -0,0 +1,36 @@
1
+ 'use client';
2
+ import { BreadcrumbsItem } from './BreadcrumbsItem.js';
3
+ import { BreadcrumbsLink } from './BreadcrumbsLink.js';
4
+ import { BreadcrumbsList } from './BreadcrumbsList.js';
5
+ import { BreadcrumbsNav } from './BreadcrumbsNav.js';
6
+ import { BreadcrumbsRoot } from './BreadcrumbsRoot.js';
7
+
8
+ /**
9
+ * Breadcrumbs are used to visualize the current page path.
10
+ * @example
11
+ * <Breadcrumbs.Root>
12
+ * <Breadcrumbs.Link aria-label="Go back to level 2">Level 2</Breadcrumbs.Link>
13
+ * <Breadcrumbs.Nav aria-label="You are here:">
14
+ * <Breadcrumbs.List>
15
+ * <Breadcrumbs.Item><Breadcrumbs.Link>Level 1</Breadcrumbs.Link></Breadcrumbs.Item>
16
+ * <Breadcrumbs.Item><Breadcrumbs.Link>Level 2</Breadcrumbs.Link></Breadcrumbs.Item>
17
+ * <Breadcrumbs.Item><Breadcrumbs.Link>Level 3</Breadcrumbs.Link></Breadcrumbs.Item>
18
+ * <Breadcrumbs.Item><Breadcrumbs.Link>Level 4</Breadcrumbs.Link></Breadcrumbs.Item>
19
+ * </Breadcrumbs.List>
20
+ * </Breadcrumbs.Nav>
21
+ * <Breadcrumbs.Root>
22
+ */
23
+ const Breadcrumbs = {
24
+ Root: BreadcrumbsRoot,
25
+ Nav: BreadcrumbsNav,
26
+ List: BreadcrumbsList,
27
+ Item: BreadcrumbsItem,
28
+ Link: BreadcrumbsLink,
29
+ };
30
+ Breadcrumbs.Root.displayName = 'Breadcrumbs.Root';
31
+ Breadcrumbs.Nav.displayName = 'Breadcrumbs.Nav';
32
+ Breadcrumbs.List.displayName = 'Breadcrumbs.List';
33
+ Breadcrumbs.Item.displayName = 'Breadcrumbs.Item';
34
+ Breadcrumbs.Link.displayName = 'Breadcrumbs.Link';
35
+
36
+ export { Breadcrumbs, BreadcrumbsItem, BreadcrumbsLink, BreadcrumbsList, BreadcrumbsNav, BreadcrumbsRoot };
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
  import { jsx } from 'react/jsx-runtime';
3
- import { Slot as $5e63c961fc1ce211$export$8c6ed5c666ac1360 } from '../../node_modules/@radix-ui/react-slot/dist/index.js';
3
+ import { Slot } from '../../node_modules/@radix-ui/react-slot/dist/index.js';
4
4
  import { clsx } from '../../node_modules/clsx/dist/lite.js';
5
5
  import { forwardRef } from 'react';
6
6
  import { Paragraph } from '../Typography/Paragraph/Paragraph.js';
@@ -11,7 +11,7 @@ import { Paragraph } from '../Typography/Paragraph/Paragraph.js';
11
11
  * <Button>Click me</Button>
12
12
  */
13
13
  const Button = forwardRef(({ children, variant = 'primary', color = 'accent', fullWidth = false, icon = false, type = 'button', size = 'md', asChild, className, ...rest }, ref) => {
14
- const Component = asChild ? $5e63c961fc1ce211$export$8c6ed5c666ac1360 : 'button';
14
+ const Component = asChild ? Slot : 'button';
15
15
  return (jsx(Paragraph, { variant: 'short', size: size, asChild: true, children: jsx(Component, { ref: ref, type: type, className: clsx('ds-btn', `ds-focus`, `ds-btn--${size}`, `ds-btn--${variant}`, `ds-btn--${color}`, fullWidth && 'ds-btn--full-width', icon && 'ds-btn--icon-only', className), ...rest, children: children }) }));
16
16
  });
17
17
  Button.displayName = 'Button';