@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
@@ -116,9 +116,11 @@ class Virtualizer {
116
116
  this.measurementsCache = [];
117
117
  this.itemSizeCache = /* @__PURE__ */ new Map();
118
118
  this.pendingMeasuredCacheIndexes = [];
119
+ this.scrollRect = null;
120
+ this.scrollOffset = null;
119
121
  this.scrollDirection = null;
120
122
  this.scrollAdjustments = 0;
121
- this.measureElementCache = /* @__PURE__ */ new Map();
123
+ this.elementsCache = /* @__PURE__ */ new Map();
122
124
  this.observer = /* @__PURE__ */ (() => {
123
125
  let _ro = null;
124
126
  const get = () => {
@@ -152,8 +154,7 @@ class Virtualizer {
152
154
  this.range = null;
153
155
  this.setOptions = (opts2) => {
154
156
  Object.entries(opts2).forEach(([key, value]) => {
155
- if (typeof value === "undefined")
156
- delete opts2[key];
157
+ if (typeof value === "undefined") delete opts2[key];
157
158
  });
158
159
  this.options = {
159
160
  debug: false,
@@ -176,6 +177,7 @@ class Virtualizer {
176
177
  initialMeasurementsCache: [],
177
178
  lanes: 1,
178
179
  isScrollingResetDelay: 150,
180
+ enabled: true,
179
181
  ...opts2
180
182
  };
181
183
  };
@@ -194,26 +196,31 @@ class Virtualizer {
194
196
  this.unsubs.filter(Boolean).forEach((d) => d());
195
197
  this.unsubs = [];
196
198
  this.scrollElement = null;
199
+ this.targetWindow = null;
200
+ this.observer.disconnect();
201
+ this.elementsCache.clear();
197
202
  };
198
203
  this._didMount = () => {
199
- this.measureElementCache.forEach(this.observer.observe);
200
204
  return () => {
201
- this.observer.disconnect();
202
205
  this.cleanup();
203
206
  };
204
207
  };
205
208
  this._willUpdate = () => {
206
209
  var _a;
207
- const scrollElement = this.options.getScrollElement();
210
+ const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;
208
211
  if (this.scrollElement !== scrollElement) {
209
212
  this.cleanup();
213
+ if (!scrollElement) {
214
+ this.notify(false, false);
215
+ return;
216
+ }
210
217
  this.scrollElement = scrollElement;
211
218
  if (this.scrollElement && "ownerDocument" in this.scrollElement) {
212
219
  this.targetWindow = this.scrollElement.ownerDocument.defaultView;
213
220
  } else {
214
221
  this.targetWindow = ((_a = this.scrollElement) == null ? void 0 : _a.window) ?? null;
215
222
  }
216
- this._scrollToOffset(this.scrollOffset, {
223
+ this._scrollToOffset(this.getScrollOffset(), {
217
224
  adjustments: void 0,
218
225
  behavior: void 0
219
226
  });
@@ -226,7 +233,7 @@ class Virtualizer {
226
233
  this.unsubs.push(
227
234
  this.options.observeElementOffset(this, (offset, isScrolling) => {
228
235
  this.scrollAdjustments = 0;
229
- this.scrollDirection = isScrolling ? this.scrollOffset < offset ? "forward" : "backward" : null;
236
+ this.scrollDirection = isScrolling ? this.getScrollOffset() < offset ? "forward" : "backward" : null;
230
237
  this.scrollOffset = offset;
231
238
  const prevIsScrolling = this.isScrolling;
232
239
  this.isScrolling = isScrolling;
@@ -236,28 +243,21 @@ class Virtualizer {
236
243
  }
237
244
  };
238
245
  this.getSize = () => {
246
+ if (!this.options.enabled) {
247
+ this.scrollRect = null;
248
+ return 0;
249
+ }
250
+ this.scrollRect = this.scrollRect ?? this.options.initialRect;
239
251
  return this.scrollRect[this.options.horizontal ? "width" : "height"];
240
252
  };
241
- this.getMeasurementOptions = memo(
242
- () => [
243
- this.options.count,
244
- this.options.paddingStart,
245
- this.options.scrollMargin,
246
- this.options.getItemKey
247
- ],
248
- (count, paddingStart, scrollMargin, getItemKey) => {
249
- this.pendingMeasuredCacheIndexes = [];
250
- return {
251
- count,
252
- paddingStart,
253
- scrollMargin,
254
- getItemKey
255
- };
256
- },
257
- {
258
- key: false
253
+ this.getScrollOffset = () => {
254
+ if (!this.options.enabled) {
255
+ this.scrollOffset = null;
256
+ return 0;
259
257
  }
260
- );
258
+ this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === "function" ? this.options.initialOffset() : this.options.initialOffset);
259
+ return this.scrollOffset;
260
+ };
261
261
  this.getFurthestMeasurement = (measurements, index) => {
262
262
  const furthestMeasurementsFound = /* @__PURE__ */ new Map();
263
263
  const furthestMeasurements = /* @__PURE__ */ new Map();
@@ -285,13 +285,74 @@ class Virtualizer {
285
285
  return a.end - b.end;
286
286
  })[0] : void 0;
287
287
  };
288
+ this.getMeasurementOptions = memo(
289
+ () => [
290
+ this.options.count,
291
+ this.options.paddingStart,
292
+ this.options.scrollMargin,
293
+ this.options.getItemKey,
294
+ this.options.enabled
295
+ ],
296
+ (count, paddingStart, scrollMargin, getItemKey, enabled) => {
297
+ this.pendingMeasuredCacheIndexes = [];
298
+ return {
299
+ count,
300
+ paddingStart,
301
+ scrollMargin,
302
+ getItemKey,
303
+ enabled
304
+ };
305
+ },
306
+ {
307
+ key: false
308
+ }
309
+ );
288
310
  this.getMeasurements = memo(
289
311
  () => [this.getMeasurementOptions(), this.itemSizeCache],
290
- ({ count, paddingStart, scrollMargin, getItemKey }, itemSizeCache) => {
312
+ ({ count, paddingStart, scrollMargin, getItemKey, enabled }, itemSizeCache) => {
313
+ var _a;
314
+ if (!enabled) {
315
+ this.measurementsCache = [];
316
+ this.itemSizeCache.clear();
317
+ return [];
318
+ }
319
+ if (this.measurementsCache.length === 0) {
320
+ this.measurementsCache = this.options.initialMeasurementsCache;
321
+ this.measurementsCache.forEach((item) => {
322
+ this.itemSizeCache.set(item.key, item.size);
323
+ });
324
+ }
291
325
  const min = this.pendingMeasuredCacheIndexes.length > 0 ? Math.min(...this.pendingMeasuredCacheIndexes) : 0;
292
326
  this.pendingMeasuredCacheIndexes = [];
293
327
  const measurements = this.measurementsCache.slice(0, min);
294
328
  for (let i = min; i < count; i++) {
329
+ let measureElement2 = (_a = this.measurementsCache[i]) == null ? void 0 : _a.measureElement;
330
+ if (!measureElement2) {
331
+ measureElement2 = (node) => {
332
+ const key2 = getItemKey(i);
333
+ const prevNode = this.elementsCache.get(key2);
334
+ if (!node) {
335
+ if (prevNode) {
336
+ this.observer.unobserve(prevNode);
337
+ this.elementsCache.delete(key2);
338
+ }
339
+ return;
340
+ }
341
+ if (prevNode !== node) {
342
+ if (prevNode) {
343
+ this.observer.unobserve(prevNode);
344
+ }
345
+ this.observer.observe(node);
346
+ this.elementsCache.set(key2, node);
347
+ }
348
+ if (node.isConnected) {
349
+ this.resizeItem(
350
+ i,
351
+ this.options.measureElement(node, void 0, this)
352
+ );
353
+ }
354
+ };
355
+ }
295
356
  const key = getItemKey(i);
296
357
  const furthestMeasurement = this.options.lanes === 1 ? measurements[i - 1] : this.getFurthestMeasurement(measurements, i);
297
358
  const start = furthestMeasurement ? furthestMeasurement.end + this.options.gap : paddingStart + scrollMargin;
@@ -305,7 +366,8 @@ class Virtualizer {
305
366
  size,
306
367
  end,
307
368
  key,
308
- lane
369
+ lane,
370
+ measureElement: measureElement2
309
371
  };
310
372
  }
311
373
  this.measurementsCache = measurements;
@@ -317,7 +379,7 @@ class Virtualizer {
317
379
  }
318
380
  );
319
381
  this.calculateRange = memo(
320
- () => [this.getMeasurements(), this.getSize(), this.scrollOffset],
382
+ () => [this.getMeasurements(), this.getSize(), this.getScrollOffset()],
321
383
  (measurements, outerSize, scrollOffset) => {
322
384
  return this.range = measurements.length > 0 && outerSize > 0 ? calculateRange({
323
385
  measurements,
@@ -362,36 +424,40 @@ class Virtualizer {
362
424
  return parseInt(indexStr, 10);
363
425
  };
364
426
  this._measureElement = (node, entry) => {
365
- const item = this.measurementsCache[this.indexFromElement(node)];
427
+ const i = this.indexFromElement(node);
428
+ const item = this.getMeasurements()[i];
366
429
  if (!item || !node.isConnected) {
367
- this.measureElementCache.forEach((cached, key) => {
430
+ this.elementsCache.forEach((cached, key) => {
368
431
  if (cached === node) {
369
432
  this.observer.unobserve(node);
370
- this.measureElementCache.delete(key);
433
+ this.elementsCache.delete(key);
371
434
  }
372
435
  });
373
436
  return;
374
437
  }
375
- const prevNode = this.measureElementCache.get(item.key);
438
+ const prevNode = this.elementsCache.get(item.key);
376
439
  if (prevNode !== node) {
377
440
  if (prevNode) {
378
441
  this.observer.unobserve(prevNode);
379
442
  }
380
443
  this.observer.observe(node);
381
- this.measureElementCache.set(item.key, node);
444
+ this.elementsCache.set(item.key, node);
382
445
  }
383
- const measuredItemSize = this.options.measureElement(node, entry, this);
384
- this.resizeItem(item, measuredItemSize);
446
+ this.resizeItem(i, this.options.measureElement(node, entry, this));
385
447
  };
386
- this.resizeItem = (item, size) => {
448
+ this.resizeItem = (index, size) => {
449
+ const item = this.getMeasurements()[index];
450
+ if (!item) {
451
+ return;
452
+ }
387
453
  const itemSize = this.itemSizeCache.get(item.key) ?? item.size;
388
454
  const delta = size - itemSize;
389
455
  if (delta !== 0) {
390
- if (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(item, delta, this) : item.start < this.scrollOffset + this.scrollAdjustments) {
456
+ if (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(item, delta, this) : item.start < this.getScrollOffset() + this.scrollAdjustments) {
391
457
  if (process.env.NODE_ENV !== "production" && this.options.debug) {
392
458
  console.info("correction", delta);
393
459
  }
394
- this._scrollToOffset(this.scrollOffset, {
460
+ this._scrollToOffset(this.getScrollOffset(), {
395
461
  adjustments: this.scrollAdjustments += delta,
396
462
  behavior: void 0
397
463
  });
@@ -425,6 +491,9 @@ class Virtualizer {
425
491
  );
426
492
  this.getVirtualItemForOffset = (offset) => {
427
493
  const measurements = this.getMeasurements();
494
+ if (measurements.length === 0) {
495
+ return void 0;
496
+ }
428
497
  return notUndefined(
429
498
  measurements[findNearestBinarySearch(
430
499
  0,
@@ -436,10 +505,11 @@ class Virtualizer {
436
505
  };
437
506
  this.getOffsetForAlignment = (toOffset, align) => {
438
507
  const size = this.getSize();
508
+ const scrollOffset = this.getScrollOffset();
439
509
  if (align === "auto") {
440
- if (toOffset <= this.scrollOffset) {
510
+ if (toOffset <= scrollOffset) {
441
511
  align = "start";
442
- } else if (toOffset >= this.scrollOffset + size) {
512
+ } else if (toOffset >= scrollOffset + size) {
443
513
  align = "end";
444
514
  } else {
445
515
  align = "start";
@@ -454,25 +524,30 @@ class Virtualizer {
454
524
  }
455
525
  const scrollSizeProp = this.options.horizontal ? "scrollWidth" : "scrollHeight";
456
526
  const scrollSize = this.scrollElement ? "document" in this.scrollElement ? this.scrollElement.document.documentElement[scrollSizeProp] : this.scrollElement[scrollSizeProp] : 0;
457
- const maxOffset = scrollSize - this.getSize();
527
+ const maxOffset = scrollSize - size;
458
528
  return Math.max(Math.min(maxOffset, toOffset), 0);
459
529
  };
460
530
  this.getOffsetForIndex = (index, align = "auto") => {
461
531
  index = Math.max(0, Math.min(index, this.options.count - 1));
462
- const measurement = notUndefined(this.getMeasurements()[index]);
532
+ const item = this.getMeasurements()[index];
533
+ if (!item) {
534
+ return void 0;
535
+ }
536
+ const size = this.getSize();
537
+ const scrollOffset = this.getScrollOffset();
463
538
  if (align === "auto") {
464
- if (measurement.end >= this.scrollOffset + this.getSize() - this.options.scrollPaddingEnd) {
539
+ if (item.end >= scrollOffset + size - this.options.scrollPaddingEnd) {
465
540
  align = "end";
466
- } else if (measurement.start <= this.scrollOffset + this.options.scrollPaddingStart) {
541
+ } else if (item.start <= scrollOffset + this.options.scrollPaddingStart) {
467
542
  align = "start";
468
543
  } else {
469
- return [this.scrollOffset, align];
544
+ return [scrollOffset, align];
470
545
  }
471
546
  }
472
- const toOffset = align === "end" ? measurement.end + this.options.scrollPaddingEnd : measurement.start - this.options.scrollPaddingStart;
547
+ const toOffset = align === "end" ? item.end + this.options.scrollPaddingEnd : item.start - this.options.scrollPaddingStart;
473
548
  return [this.getOffsetForAlignment(toOffset, align), align];
474
549
  };
475
- this.isDynamicMode = () => this.measureElementCache.size > 0;
550
+ this.isDynamicMode = () => this.elementsCache.size > 0;
476
551
  this.cancelScrollToIndex = () => {
477
552
  if (this.scrollToIndexTimeoutId !== null && this.targetWindow) {
478
553
  this.targetWindow.clearTimeout(this.scrollToIndexTimeoutId);
@@ -499,17 +574,21 @@ class Virtualizer {
499
574
  "The `smooth` scroll behavior is not fully supported with dynamic size."
500
575
  );
501
576
  }
502
- const [toOffset, align] = this.getOffsetForIndex(index, initialAlign);
503
- this._scrollToOffset(toOffset, { adjustments: void 0, behavior });
577
+ const offsetAndAlign = this.getOffsetForIndex(index, initialAlign);
578
+ if (!offsetAndAlign) return;
579
+ const [offset, align] = offsetAndAlign;
580
+ this._scrollToOffset(offset, { adjustments: void 0, behavior });
504
581
  if (behavior !== "smooth" && this.isDynamicMode() && this.targetWindow) {
505
582
  this.scrollToIndexTimeoutId = this.targetWindow.setTimeout(() => {
506
583
  this.scrollToIndexTimeoutId = null;
507
- const elementInDOM = this.measureElementCache.has(
584
+ const elementInDOM = this.elementsCache.has(
508
585
  this.options.getItemKey(index)
509
586
  );
510
587
  if (elementInDOM) {
511
- const [toOffset2] = this.getOffsetForIndex(index, align);
512
- if (!approxEqual(toOffset2, this.scrollOffset)) {
588
+ const [latestOffset] = notUndefined(
589
+ this.getOffsetForIndex(index, align)
590
+ );
591
+ if (!approxEqual(latestOffset, this.getScrollOffset())) {
513
592
  this.scrollToIndex(index, { align, behavior });
514
593
  }
515
594
  } else {
@@ -525,7 +604,7 @@ class Virtualizer {
525
604
  "The `smooth` scroll behavior is not fully supported with dynamic size."
526
605
  );
527
606
  }
528
- this._scrollToOffset(this.scrollOffset + delta, {
607
+ this._scrollToOffset(this.getScrollOffset() + delta, {
529
608
  adjustments: void 0,
530
609
  behavior
531
610
  });
@@ -555,13 +634,6 @@ class Virtualizer {
555
634
  (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, false);
556
635
  };
557
636
  this.setOptions(opts);
558
- this.scrollRect = this.options.initialRect;
559
- this.scrollOffset = typeof this.options.initialOffset === "function" ? this.options.initialOffset() : this.options.initialOffset;
560
- this.measurementsCache = this.options.initialMeasurementsCache;
561
- this.measurementsCache.forEach((item) => {
562
- this.itemSizeCache.set(item.key, item.size);
563
- });
564
- this.notify(false, false);
565
637
  }
566
638
  }
567
639
  const findNearestBinarySearch = (low, high, getCurrentValue, value) => {
@@ -5,8 +5,7 @@ function memo(getDeps, fn, opts) {
5
5
  return () => {
6
6
  var _a, _b, _c, _d;
7
7
  let depTime;
8
- if (opts.key && ((_a = opts.debug) == null ? void 0 : _a.call(opts)))
9
- depTime = Date.now();
8
+ if (opts.key && ((_a = opts.debug) == null ? void 0 : _a.call(opts))) depTime = Date.now();
10
9
  const newDeps = getDeps();
11
10
  const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);
12
11
  if (!depsChanged) {
@@ -14,8 +13,7 @@ function memo(getDeps, fn, opts) {
14
13
  }
15
14
  deps = newDeps;
16
15
  let resultTime;
17
- if (opts.key && ((_b = opts.debug) == null ? void 0 : _b.call(opts)))
18
- resultTime = Date.now();
16
+ if (opts.key && ((_b = opts.debug) == null ? void 0 : _b.call(opts))) resultTime = Date.now();
19
17
  result = fn(...newDeps);
20
18
  if (opts.key && ((_c = opts.debug) == null ? void 0 : _c.call(opts))) {
21
19
  const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;
@@ -46,7 +44,7 @@ function memo(getDeps, fn, opts) {
46
44
  }
47
45
  function notUndefined(value, msg) {
48
46
  if (value === void 0) {
49
- throw new Error(`Unexpected undefined${msg ? `: ${msg}` : ""}`);
47
+ throw new Error(`Unexpected undefined${""}`);
50
48
  } else {
51
49
  return value;
52
50
  }
@@ -10,7 +10,10 @@ const transitionDurationInMilliseconds = 250;
10
10
  * AnimateHeight is a component that animates its height when the `open` prop changes.
11
11
  */
12
12
  const AnimateHeight = ({ children, className, open = false, style, ...rest }) => {
13
- const [height, setHeight] = useState(0);
13
+ /* We don't know the initial height we want to start with.
14
+ It depends on if it should start open or not, therefore we set height to `undefined`,
15
+ so we don't get any layoutshift on first render */
16
+ const [height, setHeight] = useState(undefined);
14
17
  const prevOpen = usePrevious(open);
15
18
  const openOrClosed = open ? 'open' : 'closed';
16
19
  const [state, setState] = useState(openOrClosed);
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { useMergeRefs } from '../../node_modules/@floating-ui/react/dist/floating-ui.react.js';
4
- import { Slot as $5e63c961fc1ce211$export$8c6ed5c666ac1360 } from '../../node_modules/@radix-ui/react-slot/dist/index.js';
4
+ import { Slot } from '../../node_modules/@radix-ui/react-slot/dist/index.js';
5
5
  import { forwardRef } from 'react';
6
6
  import { useRovingFocus } from './useRovingFocus.js';
7
7
 
@@ -16,21 +16,49 @@ function getPrevFocusableValue(items, value) {
16
16
  return items.at(currIndex === 0 ? -1 : currIndex - 1);
17
17
  }
18
18
  const RovingFocusItem = forwardRef(({ value, asChild, ...rest }, ref) => {
19
- const Component = asChild ? $5e63c961fc1ce211$export$8c6ed5c666ac1360 : 'div';
19
+ const Component = asChild ? Slot : 'div';
20
20
  const focusValue = value ?? (typeof rest.children == 'string' ? rest.children : '');
21
- const { getOrderedItems, getRovingProps } = useRovingFocus(focusValue);
21
+ const { getOrderedItems, getRovingProps, orientation } = useRovingFocus(focusValue);
22
22
  const rovingProps = getRovingProps({
23
23
  onKeyDown: (e) => {
24
24
  rest?.onKeyDown?.(e);
25
25
  const items = getOrderedItems();
26
26
  let nextItem;
27
- if (e.key === 'ArrowRight') {
28
- nextItem = getNextFocusableValue(items, focusValue);
27
+ switch (orientation) {
28
+ case 'horizontal':
29
+ if (e.key === 'ArrowRight') {
30
+ nextItem = getNextFocusableValue(items, focusValue);
31
+ }
32
+ if (e.key === 'ArrowLeft') {
33
+ nextItem = getPrevFocusableValue(items, focusValue);
34
+ }
35
+ break;
36
+ case 'vertical':
37
+ if (e.key === 'ArrowDown') {
38
+ nextItem = getNextFocusableValue(items, focusValue);
39
+ }
40
+ if (e.key === 'ArrowUp') {
41
+ nextItem = getPrevFocusableValue(items, focusValue);
42
+ }
43
+ break;
44
+ case 'ambiguous':
45
+ if (['ArrowRight', 'ArrowDown'].includes(e.key)) {
46
+ nextItem = getNextFocusableValue(items, focusValue);
47
+ }
48
+ if (['ArrowLeft', 'ArrowUp'].includes(e.key)) {
49
+ nextItem = getPrevFocusableValue(items, focusValue);
50
+ }
29
51
  }
30
- if (e.key === 'ArrowLeft') {
31
- nextItem = getPrevFocusableValue(items, focusValue);
52
+ if (e.key === 'Home') {
53
+ nextItem = items[0];
54
+ }
55
+ if (e.key === 'End') {
56
+ nextItem = items[items.length - 1];
57
+ }
58
+ if (nextItem) {
59
+ e.preventDefault();
60
+ nextItem.element.focus();
32
61
  }
33
- nextItem?.element.focus();
34
62
  },
35
63
  });
36
64
  const mergedRefs = useMergeRefs([ref, rovingProps.ref]);
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { useMergeRefs } from '../../node_modules/@floating-ui/react/dist/floating-ui.react.js';
4
- import { Slot as $5e63c961fc1ce211$export$8c6ed5c666ac1360 } from '../../node_modules/@radix-ui/react-slot/dist/index.js';
4
+ import { Slot } from '../../node_modules/@radix-ui/react-slot/dist/index.js';
5
5
  import { createContext, forwardRef, useState, useRef, useEffect } from 'react';
6
6
 
7
7
  const RovingFocusContext = createContext({
@@ -14,9 +14,10 @@ const RovingFocusContext = createContext({
14
14
  /* intentionally empty */
15
15
  },
16
16
  focusableValue: null,
17
+ orientation: 'horizontal',
17
18
  });
18
- const RovingFocusRoot = forwardRef(({ activeValue, asChild, onBlur, onFocus, ...rest }, ref) => {
19
- const Component = asChild ? $5e63c961fc1ce211$export$8c6ed5c666ac1360 : 'div';
19
+ const RovingFocusRoot = forwardRef(({ activeValue, asChild, orientation = 'horizontal', onBlur, onFocus, ...rest }, ref) => {
20
+ const Component = asChild ? Slot : 'div';
20
21
  const [focusableValue, setFocusableValue] = useState(null);
21
22
  const [isShiftTabbing, setIsShiftTabbing] = useState(false);
22
23
  const elements = useRef(new Map());
@@ -41,6 +42,7 @@ const RovingFocusRoot = forwardRef(({ activeValue, asChild, onBlur, onFocus, ...
41
42
  onShiftTab: () => {
42
43
  setIsShiftTabbing(true);
43
44
  },
45
+ orientation,
44
46
  }, children: jsx(Component, { ...rest, tabIndex: isShiftTabbing ? -1 : 0, onBlur: (e) => {
45
47
  onBlur?.(e);
46
48
  setIsShiftTabbing(false);
@@ -6,10 +6,11 @@ import { RovingFocusContext } from './RovingFocusRoot.js';
6
6
  // Inspired by: https://github.com/radix-ui/primitives/tree/main/packages/react/roving-focus/src
7
7
  /** Handles props for `RovingFocus` in context with `RovingFocusRoot` */
8
8
  const useRovingFocus = (value) => {
9
- const { elements, getOrderedItems, setFocusableValue, focusableValue, onShiftTab, } = useContext(RovingFocusContext);
9
+ const { elements, getOrderedItems, setFocusableValue, focusableValue, onShiftTab, orientation, } = useContext(RovingFocusContext);
10
10
  return {
11
11
  getOrderedItems,
12
12
  isFocusable: focusableValue === value,
13
+ orientation,
13
14
  getRovingProps: (props) => ({
14
15
  ...props,
15
16
  ref: (element) => {
@@ -20,7 +20,7 @@ export declare const AccordionHeading: import("react").ForwardRefExoticComponent
20
20
  * Heading level. Use this to make sure the heading is correct according to you page heading levels
21
21
  * @default 1
22
22
  */
23
- level?: 1 | 2 | 3 | 4 | 5 | 6 | undefined;
23
+ level?: 1 | 2 | 3 | 4 | 5 | 6;
24
24
  /** Handle when clicked on header */
25
25
  onHeaderClick?: MouseEventHandler<HTMLButtonElement> | undefined;
26
26
  /** Heading text */
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionHeading.d.ts","sourceRoot":"","sources":["../../../../src/components/Accordion/AccordionHeading.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAO1E,MAAM,MAAM,oBAAoB,GAAG;IACjC;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,oCAAoC;IACpC,aAAa,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;IACjE,mBAAmB;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;IAhB3B;;;OAGG;;IAEH,oCAAoC;oBACpB,kBAAkB,iBAAiB,CAAC,GAAG,SAAS;IAChE,mBAAmB;cACT,SAAS;2FAoDnB,CAAC"}
1
+ {"version":3,"file":"AccordionHeading.d.ts","sourceRoot":"","sources":["../../../../src/components/Accordion/AccordionHeading.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAO1E,MAAM,MAAM,oBAAoB,GAAG;IACjC;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,oCAAoC;IACpC,aAAa,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;IACjE,mBAAmB;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;IAhB3B;;;OAGG;YACK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;IAC7B,oCAAoC;oBACpB,iBAAiB,CAAC,iBAAiB,CAAC,GAAG,SAAS;IAChE,mBAAmB;cACT,SAAS;2FAoDnB,CAAC"}
@@ -38,12 +38,12 @@ export declare const AccordionItem: import("react").ForwardRefExoticComponent<{
38
38
  *
39
39
  * @default undefined
40
40
  */
41
- open?: boolean | undefined;
41
+ open?: boolean;
42
42
  /**
43
43
  * Defaults the accordion to open if not controlled
44
44
  * @default false
45
45
  */
46
- defaultOpen?: boolean | undefined;
46
+ defaultOpen?: boolean;
47
47
  /** Content should be one `<Accordion.Header>` and `<Accordion.Content>` */
48
48
  children: ReactNode;
49
49
  } & HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionItem.d.ts","sourceRoot":"","sources":["../../../../src/components/Accordion/AccordionItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvD,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,EAAE,SAAS,CAAC;CACrB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AAEnC,KAAK,yBAAyB,GAAG;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,oBAAoB,2DACsB,CAAC;AAExD;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa;IAlCxB;;;;;;OAMG;;IAEH;;;OAGG;;IAEH,2EAA2E;cACjE,SAAS;mFAmDpB,CAAC"}
1
+ {"version":3,"file":"AccordionItem.d.ts","sourceRoot":"","sources":["../../../../src/components/Accordion/AccordionItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvD,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,EAAE,SAAS,CAAC;CACrB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AAEnC,KAAK,yBAAyB,GAAG;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,oBAAoB,2DACsB,CAAC;AAExD;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa;IAlCxB;;;;;;OAMG;WACI,OAAO;IACd;;;OAGG;kBACW,OAAO;IACrB,2EAA2E;cACjE,SAAS;mFAmDpB,CAAC"}
@@ -21,12 +21,12 @@ export declare const AccordionRoot: import("react").ForwardRefExoticComponent<{
21
21
  * Accordion background color
22
22
  * @default neutral
23
23
  */
24
- color?: "neutral" | "brand1" | "brand2" | "brand3" | "subtle" | undefined;
24
+ color?: "brand1" | "brand2" | "brand3" | "neutral" | "subtle";
25
25
  /**
26
26
  * Show border
27
27
  * @default false
28
28
  **/
29
- border?: boolean | undefined;
29
+ border?: boolean;
30
30
  /** Instances of `Accordion.Item` */
31
31
  children: ReactNode;
32
32
  } & HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionRoot.d.ts","sourceRoot":"","sources":["../../../../src/components/Accordion/AccordionRoot.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvD,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;OAGG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC9D;;;QAGI;IACJ,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,QAAQ,EAAE,SAAS,CAAC;CACrB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AAEnC;;GAEG;AACH,eAAO,MAAM,aAAa;IAjBxB;;;OAGG;;IAEH;;;QAGI;;IAEJ,oCAAoC;cAC1B,SAAS;mFAqBpB,CAAC"}
1
+ {"version":3,"file":"AccordionRoot.d.ts","sourceRoot":"","sources":["../../../../src/components/Accordion/AccordionRoot.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvD,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;OAGG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC9D;;;QAGI;IACJ,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,QAAQ,EAAE,SAAS,CAAC;CACrB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AAEnC;;GAEG;AACH,eAAO,MAAM,aAAa;IAjBxB;;;OAGG;YACK,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ;IAC7D;;;QAGI;aACK,OAAO;IAChB,oCAAoC;cAC1B,SAAS;mFAqBpB,CAAC"}
@@ -18,8 +18,8 @@ type AccordionComponent = {
18
18
  * <Accordion.Root>
19
19
  * <Accordion.Item>
20
20
  * <Accordion.Heading>Heading 1</Accordion.Heading>
21
- * <Accordion.Content>Content 1</Accordion.Content>
22
- * </Accordion.Item>
21
+ * <Accordion.Content>Content 1</Accordion.Content>
22
+ * </Accordion.Item>
23
23
  * <Accordion.Item>
24
24
  */
25
25
  declare const Accordion: AccordionComponent;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Accordion/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,OAAO,aAAa,CAAC;IAC3B,IAAI,EAAE,OAAO,aAAa,CAAC;IAC3B,OAAO,EAAE,OAAO,gBAAgB,CAAC;IACjC,OAAO,EAAE,OAAO,gBAAgB,CAAC;CAClC,CAAC;AAEF;;;;;;;;;GASG;AACH,QAAA,MAAM,SAAS,oBAA2B,CAAC;AAY3C,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,GACnB,CAAC;AACF,OAAO,EACL,SAAS,EACT,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACjB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Accordion/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,OAAO,aAAa,CAAC;IAC3B,IAAI,EAAE,OAAO,aAAa,CAAC;IAC3B,OAAO,EAAE,OAAO,gBAAgB,CAAC;IACjC,OAAO,EAAE,OAAO,gBAAgB,CAAC;CAClC,CAAC;AAEF;;;;;;;;;GASG;AACH,QAAA,MAAM,SAAS,EAAS,kBAAkB,CAAC;AAY3C,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,GACnB,CAAC;AACF,OAAO,EACL,SAAS,EACT,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACjB,CAAC"}
@@ -31,21 +31,21 @@ export declare const Alert: import("react").ForwardRefExoticComponent<{
31
31
  * Sets color & icon according to severity
32
32
  * @default info
33
33
  */
34
- severity?: Severity | undefined;
34
+ severity?: Severity;
35
35
  /**
36
36
  * Sets `title` on the icon.
37
37
  *
38
38
  * Use this to inform screenreaders of severity.
39
39
  * Defaults to Norwegian.
40
40
  */
41
- iconTitle?: string | undefined;
41
+ iconTitle?: string;
42
42
  /**
43
43
  * Sets the size of the alert.
44
44
  * Does not affect font size.
45
45
  *
46
46
  * @default md
47
47
  */
48
- size?: "sm" | "md" | "lg" | undefined;
48
+ size?: "sm" | "md" | "lg";
49
49
  } & HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
50
50
  export {};
51
51
  //# sourceMappingURL=Alert.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Alert.d.ts","sourceRoot":"","sources":["../../../../src/components/Alert/Alert.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAqB5C,KAAK,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE1D,MAAM,MAAM,UAAU,GAAG;IACvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC3B,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AAEnC;;;;GAIG;AACH,eAAO,MAAM,KAAK;IA1BhB;;;OAGG;;IAEH;;;;;OAKG;;IAEH;;;;;OAKG;;mFAoCJ,CAAC"}
1
+ {"version":3,"file":"Alert.d.ts","sourceRoot":"","sources":["../../../../src/components/Alert/Alert.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAqB5C,KAAK,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE1D,MAAM,MAAM,UAAU,GAAG;IACvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC3B,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AAEnC;;;;GAIG;AACH,eAAO,MAAM,KAAK;IA1BhB;;;OAGG;eACQ,QAAQ;IACnB;;;;;OAKG;gBACS,MAAM;IAClB;;;;;OAKG;WACI,IAAI,GAAG,IAAI,GAAG,IAAI;mFAmC1B,CAAC"}