@navikt/ds-react 5.12.5 → 5.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (726) hide show
  1. package/_docs.json +285 -138
  2. package/cjs/accordion/Accordion.js +2 -2
  3. package/cjs/accordion/AccordionHeader.js +3 -5
  4. package/cjs/accordion/AccordionItem.js +11 -14
  5. package/cjs/alert/Alert.js +2 -2
  6. package/cjs/button/Button.js +11 -12
  7. package/cjs/chat/Bubble.js +1 -1
  8. package/cjs/chat/Chat.js +2 -2
  9. package/cjs/chips/Chips.js +1 -1
  10. package/cjs/chips/Removable.js +4 -7
  11. package/cjs/copybutton/CopyButton.js +6 -7
  12. package/cjs/date/datepicker/DatePicker.js +4 -2
  13. package/cjs/date/datepicker/parts/Caption.js +2 -2
  14. package/cjs/date/datepicker/parts/DropdownCaption.js +1 -1
  15. package/cjs/date/datepicker/parts/HeadRow.js +1 -1
  16. package/cjs/date/datepicker/parts/Row.js +2 -2
  17. package/cjs/date/datepicker/parts/WeekRow.js +2 -2
  18. package/cjs/date/monthpicker/MonthCaption.js +1 -1
  19. package/cjs/date/monthpicker/MonthPicker.js +4 -3
  20. package/cjs/date/parts/DateInput.js +1 -1
  21. package/cjs/date/parts/DateWrapper.js +2 -2
  22. package/cjs/date/utils/check-dates.js +1 -1
  23. package/cjs/date/utils/is-match.js +2 -2
  24. package/cjs/date/utils/parse-date.js +1 -1
  25. package/cjs/dropdown/Dropdown.js +10 -12
  26. package/cjs/dropdown/Menu/Divider.js +1 -1
  27. package/cjs/dropdown/Menu/GroupedList/GroupedHeading.js +1 -1
  28. package/cjs/dropdown/Menu/GroupedList/GroupedItem.js +3 -6
  29. package/cjs/dropdown/Menu/List/Item.js +3 -6
  30. package/cjs/dropdown/Toggle.js +6 -5
  31. package/cjs/expansion-card/ExpansionCardHeader.js +1 -1
  32. package/cjs/form/ConfirmationPanel.js +2 -2
  33. package/cjs/form/ReadOnlyIcon.js +1 -1
  34. package/cjs/form/Select.js +1 -1
  35. package/cjs/form/Textarea.js +2 -1
  36. package/cjs/form/checkbox/Checkbox.js +3 -2
  37. package/cjs/form/combobox/Combobox.js +7 -7
  38. package/cjs/form/combobox/ComboboxProvider.js +2 -2
  39. package/cjs/form/combobox/FilteredOptions/FilteredOptions.js +4 -4
  40. package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.js +5 -6
  41. package/cjs/form/combobox/Input/inputContext.js +2 -2
  42. package/cjs/form/combobox/SelectedOptions/SelectedOptions.js +1 -1
  43. package/cjs/form/combobox/SelectedOptions/selectedOptionsContext.js +2 -5
  44. package/cjs/form/error-summary/ErrorSummary.js +3 -3
  45. package/cjs/form/error-summary/ErrorSummaryItem.js +1 -1
  46. package/cjs/form/radio/Radio.js +3 -2
  47. package/cjs/form/radio/RadioGroup.js +2 -2
  48. package/cjs/form/search/Search.js +3 -2
  49. package/cjs/form/search/SearchButton.js +3 -5
  50. package/cjs/form/useFormField.js +2 -2
  51. package/cjs/grid/Cell.js +1 -1
  52. package/cjs/grid/Grid.js +1 -1
  53. package/cjs/guide-panel/GuidePanel.js +1 -1
  54. package/cjs/guide-panel/Illustration.js +2 -2
  55. package/cjs/help-text/HelpText.js +5 -7
  56. package/cjs/help-text/HelpTextIcon.js +2 -2
  57. package/cjs/internal-header/InternalHeaderButton.js +1 -1
  58. package/cjs/internal-header/InternalHeaderTitle.js +1 -1
  59. package/cjs/internal-header/InternalHeaderUser.js +1 -1
  60. package/cjs/internal-header/InternalHeaderUserButton.js +1 -1
  61. package/cjs/layout/bleed/Bleed.js +1 -1
  62. package/cjs/layout/content-container/ContentContainer.js +1 -1
  63. package/cjs/layout/grid/HGrid.js +1 -1
  64. package/cjs/layout/page/parts/PageBlock.js +1 -1
  65. package/cjs/layout/sidemal-test/AvatarPanel.js +1 -1
  66. package/cjs/layout/sidemal-test/Content.js +3 -3
  67. package/cjs/layout/sidemal-test/Filter.js +1 -1
  68. package/cjs/layout/sidemal-test/Intro.js +1 -1
  69. package/cjs/link-panel/LinkPanel.js +3 -3
  70. package/cjs/link-panel/LinkPanelDescription.js +1 -1
  71. package/cjs/link-panel/LinkPanelTitle.js +1 -1
  72. package/cjs/list/List.js +2 -2
  73. package/cjs/loader/Loader.js +2 -1
  74. package/cjs/modal/Modal.js +21 -18
  75. package/cjs/modal/ModalBody.js +1 -1
  76. package/cjs/modal/ModalFooter.js +1 -1
  77. package/cjs/modal/ModalHeader.js +1 -1
  78. package/cjs/pagination/PaginationItem.js +1 -1
  79. package/cjs/panel/Panel.js +1 -1
  80. package/cjs/popover/Popover.js +6 -5
  81. package/cjs/popover/PopoverContent.js +1 -1
  82. package/cjs/read-more/ReadMore.js +12 -12
  83. package/cjs/skeleton/Skeleton.js +1 -1
  84. package/cjs/stepper/Step.js +6 -6
  85. package/cjs/table/Body.js +1 -1
  86. package/cjs/table/ColumnHeader.js +1 -1
  87. package/cjs/table/DataCell.js +3 -3
  88. package/cjs/table/ExpandableRow.js +23 -22
  89. package/cjs/table/Header.js +1 -1
  90. package/cjs/table/HeaderCell.js +2 -1
  91. package/cjs/table/Row.js +1 -1
  92. package/cjs/tabs/TabList.js +3 -2
  93. package/cjs/tabs/Tabs.js +1 -1
  94. package/cjs/tag/Tag.js +5 -3
  95. package/cjs/timeline/AxisLabels.js +1 -1
  96. package/cjs/timeline/Pin.js +2 -2
  97. package/cjs/timeline/TimelineRow.js +2 -2
  98. package/cjs/timeline/hooks/useTimelineRows.js +5 -3
  99. package/cjs/timeline/period/ClickablePeriod.js +2 -2
  100. package/cjs/timeline/utils/timeline.js +1 -1
  101. package/cjs/timeline/zoom/ZoomButton.js +1 -1
  102. package/cjs/toggle-group/ToggleGroup.js +3 -3
  103. package/cjs/tooltip/Tooltip.js +18 -12
  104. package/cjs/typography/BodyLong.js +1 -1
  105. package/cjs/typography/ErrorMessage.js +1 -1
  106. package/cjs/typography/Ingress.js +1 -1
  107. package/cjs/util/Slot.js +2 -5
  108. package/cjs/util/TextareaAutoSize.js +7 -5
  109. package/cjs/util/composeEventHandlers.js +17 -0
  110. package/cjs/util/hooks/index.js +19 -0
  111. package/cjs/util/hooks/package.json +6 -0
  112. package/cjs/util/hooks/useCallbackRef.js +18 -0
  113. package/cjs/util/hooks/useClientLayoutEffect.js +7 -0
  114. package/cjs/util/hooks/useControllableState.js +25 -0
  115. package/cjs/util/hooks/useMergeRefs.js +37 -0
  116. package/cjs/util/{usePrevious.js → hooks/usePrevious.js} +2 -1
  117. package/cjs/util/index.js +7 -7
  118. package/cjs/util/types/index.js +2 -0
  119. package/cjs/util/types/package.json +6 -0
  120. package/esm/accordion/Accordion.d.ts +1 -1
  121. package/esm/accordion/Accordion.js +2 -2
  122. package/esm/accordion/Accordion.js.map +1 -1
  123. package/esm/accordion/AccordionHeader.js +3 -5
  124. package/esm/accordion/AccordionHeader.js.map +1 -1
  125. package/esm/accordion/AccordionItem.d.ts +4 -0
  126. package/esm/accordion/AccordionItem.js +12 -15
  127. package/esm/accordion/AccordionItem.js.map +1 -1
  128. package/esm/alert/Alert.js +2 -2
  129. package/esm/alert/Alert.js.map +1 -1
  130. package/esm/button/Button.d.ts +1 -1
  131. package/esm/button/Button.js +12 -13
  132. package/esm/button/Button.js.map +1 -1
  133. package/esm/chat/Bubble.js +1 -1
  134. package/esm/chat/Bubble.js.map +1 -1
  135. package/esm/chat/Chat.js +2 -2
  136. package/esm/chat/Chat.js.map +1 -1
  137. package/esm/chips/Chips.d.ts +2 -2
  138. package/esm/chips/Chips.js +1 -1
  139. package/esm/chips/Chips.js.map +1 -1
  140. package/esm/chips/Removable.js +4 -7
  141. package/esm/chips/Removable.js.map +1 -1
  142. package/esm/chips/Toggle.d.ts +1 -1
  143. package/esm/copybutton/CopyButton.js +6 -7
  144. package/esm/copybutton/CopyButton.js.map +1 -1
  145. package/esm/date/context/useSharedMonthContext.js.map +1 -1
  146. package/esm/date/datepicker/DatePicker.js +5 -3
  147. package/esm/date/datepicker/DatePicker.js.map +1 -1
  148. package/esm/date/datepicker/parts/Caption.js +2 -2
  149. package/esm/date/datepicker/parts/Caption.js.map +1 -1
  150. package/esm/date/datepicker/parts/DropdownCaption.js +1 -1
  151. package/esm/date/datepicker/parts/DropdownCaption.js.map +1 -1
  152. package/esm/date/datepicker/parts/HeadRow.js +1 -1
  153. package/esm/date/datepicker/parts/HeadRow.js.map +1 -1
  154. package/esm/date/datepicker/parts/Row.js +3 -3
  155. package/esm/date/datepicker/parts/Row.js.map +1 -1
  156. package/esm/date/datepicker/parts/WeekRow.js +1 -1
  157. package/esm/date/datepicker/parts/WeekRow.js.map +1 -1
  158. package/esm/date/monthpicker/MonthCaption.js +1 -1
  159. package/esm/date/monthpicker/MonthCaption.js.map +1 -1
  160. package/esm/date/monthpicker/MonthPicker.js +4 -3
  161. package/esm/date/monthpicker/MonthPicker.js.map +1 -1
  162. package/esm/date/parts/DateInput.js +1 -1
  163. package/esm/date/parts/DateInput.js.map +1 -1
  164. package/esm/date/parts/DateWrapper.js +1 -1
  165. package/esm/date/parts/DateWrapper.js.map +1 -1
  166. package/esm/date/utils/check-dates.js +1 -1
  167. package/esm/date/utils/check-dates.js.map +1 -1
  168. package/esm/date/utils/get-month-weeks.js.map +1 -1
  169. package/esm/date/utils/is-match.js +2 -2
  170. package/esm/date/utils/is-match.js.map +1 -1
  171. package/esm/date/utils/navigation.js.map +1 -1
  172. package/esm/date/utils/parse-date.js +1 -1
  173. package/esm/date/utils/parse-date.js.map +1 -1
  174. package/esm/dropdown/Dropdown.d.ts +4 -0
  175. package/esm/dropdown/Dropdown.js +10 -12
  176. package/esm/dropdown/Dropdown.js.map +1 -1
  177. package/esm/dropdown/Menu/Divider.js +1 -1
  178. package/esm/dropdown/Menu/Divider.js.map +1 -1
  179. package/esm/dropdown/Menu/GroupedList/GroupedHeading.js +1 -1
  180. package/esm/dropdown/Menu/GroupedList/GroupedHeading.js.map +1 -1
  181. package/esm/dropdown/Menu/GroupedList/GroupedItem.d.ts +1 -1
  182. package/esm/dropdown/Menu/GroupedList/GroupedItem.js +3 -6
  183. package/esm/dropdown/Menu/GroupedList/GroupedItem.js.map +1 -1
  184. package/esm/dropdown/Menu/GroupedList/index.d.ts +1 -1
  185. package/esm/dropdown/Menu/List/Item.d.ts +1 -1
  186. package/esm/dropdown/Menu/List/Item.js +3 -6
  187. package/esm/dropdown/Menu/List/Item.js.map +1 -1
  188. package/esm/dropdown/Menu/List/index.d.ts +1 -1
  189. package/esm/dropdown/Toggle.js +6 -5
  190. package/esm/dropdown/Toggle.js.map +1 -1
  191. package/esm/expansion-card/ExpansionCard.d.ts +1 -1
  192. package/esm/expansion-card/ExpansionCardHeader.js +1 -1
  193. package/esm/expansion-card/ExpansionCardHeader.js.map +1 -1
  194. package/esm/expansion-card/ExpansionCardTitle.d.ts +1 -1
  195. package/esm/form/ConfirmationPanel.js +1 -1
  196. package/esm/form/ConfirmationPanel.js.map +1 -1
  197. package/esm/form/Fieldset/useFieldset.d.ts +1 -1
  198. package/esm/form/ReadOnlyIcon.js +1 -1
  199. package/esm/form/ReadOnlyIcon.js.map +1 -1
  200. package/esm/form/Select.js +1 -1
  201. package/esm/form/Select.js.map +1 -1
  202. package/esm/form/Switch.js.map +1 -1
  203. package/esm/form/TextField.js.map +1 -1
  204. package/esm/form/Textarea.js +2 -1
  205. package/esm/form/Textarea.js.map +1 -1
  206. package/esm/form/checkbox/Checkbox.js +2 -1
  207. package/esm/form/checkbox/Checkbox.js.map +1 -1
  208. package/esm/form/checkbox/useCheckbox.d.ts +1 -1
  209. package/esm/form/combobox/Combobox.d.ts +1 -1
  210. package/esm/form/combobox/Combobox.js +8 -8
  211. package/esm/form/combobox/Combobox.js.map +1 -1
  212. package/esm/form/combobox/ComboboxProvider.js +2 -2
  213. package/esm/form/combobox/ComboboxProvider.js.map +1 -1
  214. package/esm/form/combobox/FilteredOptions/FilteredOptions.js +4 -4
  215. package/esm/form/combobox/FilteredOptions/FilteredOptions.js.map +1 -1
  216. package/esm/form/combobox/FilteredOptions/filteredOptionsContext.d.ts +1 -1
  217. package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js +3 -4
  218. package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js.map +1 -1
  219. package/esm/form/combobox/Input/inputContext.js +1 -1
  220. package/esm/form/combobox/Input/inputContext.js.map +1 -1
  221. package/esm/form/combobox/SelectedOptions/SelectedOptions.js +1 -1
  222. package/esm/form/combobox/SelectedOptions/SelectedOptions.js.map +1 -1
  223. package/esm/form/combobox/SelectedOptions/selectedOptionsContext.js +1 -1
  224. package/esm/form/combobox/SelectedOptions/selectedOptionsContext.js.map +1 -1
  225. package/esm/form/combobox/ToggleListButton.js +1 -1
  226. package/esm/form/combobox/ToggleListButton.js.map +1 -1
  227. package/esm/form/combobox/customOptionsContext.js +1 -1
  228. package/esm/form/combobox/customOptionsContext.js.map +1 -1
  229. package/esm/form/error-summary/ErrorSummary.js +3 -3
  230. package/esm/form/error-summary/ErrorSummary.js.map +1 -1
  231. package/esm/form/error-summary/ErrorSummaryItem.d.ts +1 -1
  232. package/esm/form/error-summary/ErrorSummaryItem.js +1 -1
  233. package/esm/form/error-summary/ErrorSummaryItem.js.map +1 -1
  234. package/esm/form/radio/Radio.js +2 -1
  235. package/esm/form/radio/Radio.js.map +1 -1
  236. package/esm/form/radio/RadioGroup.js +1 -1
  237. package/esm/form/radio/RadioGroup.js.map +1 -1
  238. package/esm/form/radio/useRadio.d.ts +1 -1
  239. package/esm/form/search/Search.js +5 -4
  240. package/esm/form/search/Search.js.map +1 -1
  241. package/esm/form/search/SearchButton.js +3 -5
  242. package/esm/form/search/SearchButton.js.map +1 -1
  243. package/esm/form/useFormField.js +1 -1
  244. package/esm/form/useFormField.js.map +1 -1
  245. package/esm/grid/Cell.js +1 -1
  246. package/esm/grid/Cell.js.map +1 -1
  247. package/esm/grid/Grid.js +1 -1
  248. package/esm/grid/Grid.js.map +1 -1
  249. package/esm/guide-panel/GuidePanel.js +1 -1
  250. package/esm/guide-panel/GuidePanel.js.map +1 -1
  251. package/esm/guide-panel/Illustration.js +1 -1
  252. package/esm/guide-panel/Illustration.js.map +1 -1
  253. package/esm/help-text/HelpText.d.ts +0 -5
  254. package/esm/help-text/HelpText.js +6 -8
  255. package/esm/help-text/HelpText.js.map +1 -1
  256. package/esm/help-text/HelpTextIcon.js +1 -1
  257. package/esm/internal-header/InternalHeader.d.ts +1 -1
  258. package/esm/internal-header/InternalHeader.js.map +1 -1
  259. package/esm/internal-header/InternalHeaderButton.d.ts +1 -1
  260. package/esm/internal-header/InternalHeaderButton.js +1 -1
  261. package/esm/internal-header/InternalHeaderButton.js.map +1 -1
  262. package/esm/internal-header/InternalHeaderTitle.d.ts +1 -1
  263. package/esm/internal-header/InternalHeaderTitle.js +1 -1
  264. package/esm/internal-header/InternalHeaderTitle.js.map +1 -1
  265. package/esm/internal-header/InternalHeaderUser.js +1 -1
  266. package/esm/internal-header/InternalHeaderUser.js.map +1 -1
  267. package/esm/internal-header/InternalHeaderUserButton.d.ts +1 -1
  268. package/esm/internal-header/InternalHeaderUserButton.js +1 -1
  269. package/esm/internal-header/InternalHeaderUserButton.js.map +1 -1
  270. package/esm/layout/bleed/Bleed.js +1 -1
  271. package/esm/layout/bleed/Bleed.js.map +1 -1
  272. package/esm/layout/box/Box.d.ts +2 -2
  273. package/esm/layout/content-container/ContentContainer.js +1 -1
  274. package/esm/layout/content-container/ContentContainer.js.map +1 -1
  275. package/esm/layout/grid/HGrid.js +1 -1
  276. package/esm/layout/grid/HGrid.js.map +1 -1
  277. package/esm/layout/page/Page.d.ts +2 -2
  278. package/esm/layout/page/Page.js.map +1 -1
  279. package/esm/layout/page/parts/PageBlock.d.ts +7 -6
  280. package/esm/layout/page/parts/PageBlock.js +1 -1
  281. package/esm/layout/page/parts/PageBlock.js.map +1 -1
  282. package/esm/layout/responsive/Responsive.js.map +1 -1
  283. package/esm/layout/sidemal-test/AvatarPanel.js +1 -1
  284. package/esm/layout/sidemal-test/AvatarPanel.js.map +1 -1
  285. package/esm/layout/sidemal-test/Content.js +4 -4
  286. package/esm/layout/sidemal-test/Content.js.map +1 -1
  287. package/esm/layout/sidemal-test/Filter.js +1 -1
  288. package/esm/layout/sidemal-test/Filter.js.map +1 -1
  289. package/esm/layout/sidemal-test/Header.js +1 -1
  290. package/esm/layout/sidemal-test/Header.js.map +1 -1
  291. package/esm/layout/sidemal-test/Intro.js +2 -2
  292. package/esm/layout/sidemal-test/Intro.js.map +1 -1
  293. package/esm/layout/sidemal-test/content-box/ContentBox.js.map +1 -1
  294. package/esm/layout/stack/HStack.d.ts +1 -1
  295. package/esm/layout/stack/HStack.js.map +1 -1
  296. package/esm/layout/stack/Stack.d.ts +1 -1
  297. package/esm/layout/stack/Stack.js.map +1 -1
  298. package/esm/layout/stack/VStack.d.ts +1 -1
  299. package/esm/layout/stack/VStack.js.map +1 -1
  300. package/esm/layout/utilities/types.d.ts +2 -2
  301. package/esm/link/Link.d.ts +1 -1
  302. package/esm/link-panel/LinkPanel.d.ts +2 -2
  303. package/esm/link-panel/LinkPanel.js +3 -3
  304. package/esm/link-panel/LinkPanel.js.map +1 -1
  305. package/esm/link-panel/LinkPanelDescription.js +1 -1
  306. package/esm/link-panel/LinkPanelDescription.js.map +1 -1
  307. package/esm/link-panel/LinkPanelTitle.d.ts +1 -1
  308. package/esm/link-panel/LinkPanelTitle.js +1 -1
  309. package/esm/link-panel/LinkPanelTitle.js.map +1 -1
  310. package/esm/list/List.js +1 -1
  311. package/esm/loader/Loader.js +2 -1
  312. package/esm/loader/Loader.js.map +1 -1
  313. package/esm/modal/Modal.js +21 -18
  314. package/esm/modal/Modal.js.map +1 -1
  315. package/esm/modal/ModalBody.js +1 -1
  316. package/esm/modal/ModalBody.js.map +1 -1
  317. package/esm/modal/ModalFooter.js +1 -1
  318. package/esm/modal/ModalFooter.js.map +1 -1
  319. package/esm/modal/ModalHeader.js +1 -1
  320. package/esm/modal/ModalHeader.js.map +1 -1
  321. package/esm/modal/types.d.ts +1 -1
  322. package/esm/pagination/Pagination.js.map +1 -1
  323. package/esm/pagination/PaginationItem.d.ts +1 -1
  324. package/esm/pagination/PaginationItem.js +1 -1
  325. package/esm/pagination/PaginationItem.js.map +1 -1
  326. package/esm/panel/Panel.d.ts +1 -1
  327. package/esm/panel/Panel.js +1 -1
  328. package/esm/panel/Panel.js.map +1 -1
  329. package/esm/popover/Popover.d.ts +1 -1
  330. package/esm/popover/Popover.js +4 -3
  331. package/esm/popover/Popover.js.map +1 -1
  332. package/esm/popover/PopoverContent.js +1 -1
  333. package/esm/popover/PopoverContent.js.map +1 -1
  334. package/esm/read-more/ReadMore.d.ts +4 -0
  335. package/esm/read-more/ReadMore.js +13 -13
  336. package/esm/read-more/ReadMore.js.map +1 -1
  337. package/esm/skeleton/Skeleton.js +1 -1
  338. package/esm/skeleton/Skeleton.js.map +1 -1
  339. package/esm/stepper/Step.d.ts +1 -1
  340. package/esm/stepper/Step.js +6 -6
  341. package/esm/stepper/Step.js.map +1 -1
  342. package/esm/table/AnimateHeight.js.map +1 -0
  343. package/esm/table/Body.js +1 -1
  344. package/esm/table/Body.js.map +1 -1
  345. package/esm/table/ColumnHeader.js +1 -1
  346. package/esm/table/ColumnHeader.js.map +1 -1
  347. package/esm/table/DataCell.d.ts +4 -0
  348. package/esm/table/DataCell.js +3 -3
  349. package/esm/table/DataCell.js.map +1 -1
  350. package/esm/table/ExpandableRow.js +23 -22
  351. package/esm/table/ExpandableRow.js.map +1 -1
  352. package/esm/table/Header.js +1 -1
  353. package/esm/table/Header.js.map +1 -1
  354. package/esm/table/HeaderCell.d.ts +4 -0
  355. package/esm/table/HeaderCell.js +2 -1
  356. package/esm/table/HeaderCell.js.map +1 -1
  357. package/esm/table/Row.js +1 -1
  358. package/esm/table/Row.js.map +1 -1
  359. package/esm/tabs/Tab.d.ts +1 -1
  360. package/esm/tabs/TabList.js +4 -3
  361. package/esm/tabs/TabList.js.map +1 -1
  362. package/esm/tabs/Tabs.d.ts +1 -1
  363. package/esm/tabs/Tabs.js +1 -1
  364. package/esm/tabs/Tabs.js.map +1 -1
  365. package/esm/tag/Tag.d.ts +4 -0
  366. package/esm/tag/Tag.js +5 -3
  367. package/esm/tag/Tag.js.map +1 -1
  368. package/esm/timeline/AxisLabels.js +1 -1
  369. package/esm/timeline/AxisLabels.js.map +1 -1
  370. package/esm/timeline/Pin.js +3 -3
  371. package/esm/timeline/Pin.js.map +1 -1
  372. package/esm/timeline/TimelineRow.js +2 -2
  373. package/esm/timeline/TimelineRow.js.map +1 -1
  374. package/esm/timeline/hooks/useTimelineRows.js +5 -3
  375. package/esm/timeline/hooks/useTimelineRows.js.map +1 -1
  376. package/esm/timeline/period/ClickablePeriod.js +3 -3
  377. package/esm/timeline/period/ClickablePeriod.js.map +1 -1
  378. package/esm/timeline/utils/timeline.js +1 -1
  379. package/esm/timeline/utils/timeline.js.map +1 -1
  380. package/esm/timeline/zoom/ZoomButton.js +1 -1
  381. package/esm/timeline/zoom/ZoomButton.js.map +1 -1
  382. package/esm/toggle-group/ToggleGroup.js +2 -2
  383. package/esm/toggle-group/ToggleGroup.js.map +1 -1
  384. package/esm/tooltip/Tooltip.d.ts +4 -0
  385. package/esm/tooltip/Tooltip.js +18 -12
  386. package/esm/tooltip/Tooltip.js.map +1 -1
  387. package/esm/typography/BodyLong.d.ts +1 -1
  388. package/esm/typography/BodyLong.js +1 -1
  389. package/esm/typography/BodyLong.js.map +1 -1
  390. package/esm/typography/BodyShort.d.ts +1 -1
  391. package/esm/typography/Detail.d.ts +1 -1
  392. package/esm/typography/ErrorMessage.d.ts +1 -1
  393. package/esm/typography/ErrorMessage.js +1 -1
  394. package/esm/typography/ErrorMessage.js.map +1 -1
  395. package/esm/typography/Heading.d.ts +1 -1
  396. package/esm/typography/Ingress.d.ts +1 -1
  397. package/esm/typography/Ingress.js +1 -1
  398. package/esm/typography/Ingress.js.map +1 -1
  399. package/esm/typography/Label.d.ts +1 -1
  400. package/esm/util/Slot.js +1 -1
  401. package/esm/util/Slot.js.map +1 -1
  402. package/esm/util/TextareaAutoSize.js +5 -3
  403. package/esm/util/TextareaAutoSize.js.map +1 -1
  404. package/esm/util/composeEventHandlers.d.ts +8 -0
  405. package/esm/util/composeEventHandlers.js +14 -0
  406. package/esm/util/composeEventHandlers.js.map +1 -0
  407. package/esm/util/hooks/index.d.ts +8 -0
  408. package/esm/util/hooks/index.js +9 -0
  409. package/esm/util/hooks/index.js.map +1 -0
  410. package/esm/util/hooks/useCallbackRef.d.ts +7 -0
  411. package/esm/util/hooks/useCallbackRef.js +15 -0
  412. package/esm/util/hooks/useCallbackRef.js.map +1 -0
  413. package/esm/util/hooks/useClientLayoutEffect.js +5 -0
  414. package/esm/util/hooks/useClientLayoutEffect.js.map +1 -0
  415. package/esm/util/hooks/useControllableState.d.ts +9 -0
  416. package/esm/util/hooks/useControllableState.js +22 -0
  417. package/esm/util/hooks/useControllableState.js.map +1 -0
  418. package/esm/util/{useEventListener.d.ts → hooks/useEventListener.d.ts} +1 -1
  419. package/esm/util/hooks/useEventListener.js.map +1 -0
  420. package/esm/util/hooks/useId.js.map +1 -0
  421. package/esm/util/hooks/useMedia.js.map +1 -0
  422. package/esm/util/hooks/useMergeRefs.d.ts +15 -0
  423. package/esm/util/hooks/useMergeRefs.js +30 -0
  424. package/esm/util/hooks/useMergeRefs.js.map +1 -0
  425. package/esm/util/hooks/usePrevious.d.ts +1 -0
  426. package/esm/util/{usePrevious.js → hooks/usePrevious.js} +1 -2
  427. package/esm/util/hooks/usePrevious.js.map +1 -0
  428. package/esm/util/index.d.ts +4 -5
  429. package/esm/util/index.js +3 -5
  430. package/esm/util/index.js.map +1 -1
  431. package/esm/util/types/OverridableComponent.js.map +1 -0
  432. package/esm/util/types/index.d.ts +1 -0
  433. package/esm/util/types/index.js +2 -0
  434. package/esm/util/types/index.js.map +1 -0
  435. package/package.json +3 -3
  436. package/src/accordion/Accordion.tsx +5 -5
  437. package/src/accordion/AccordionContent.tsx +3 -3
  438. package/src/accordion/AccordionHeader.tsx +5 -7
  439. package/src/accordion/AccordionItem.tsx +22 -22
  440. package/src/accordion/accordion.stories.tsx +8 -5
  441. package/src/alert/Alert.tsx +8 -8
  442. package/src/alert/alert.stories.tsx +6 -7
  443. package/src/button/Button.tsx +18 -23
  444. package/src/button/button.stories.tsx +1 -1
  445. package/src/chat/Bubble.tsx +4 -4
  446. package/src/chat/Chat.tsx +5 -5
  447. package/src/chat/chat.stories.tsx +1 -1
  448. package/src/chips/Chips.tsx +4 -4
  449. package/src/chips/Removable.tsx +7 -8
  450. package/src/chips/Toggle.tsx +4 -4
  451. package/src/chips/chips.stories.tsx +5 -5
  452. package/src/copybutton/CopyButton.tsx +9 -10
  453. package/src/copybutton/copy-button.stories.tsx +3 -3
  454. package/src/date/context/useSharedMonthContext.tsx +1 -1
  455. package/src/date/datepicker/DatePicker.tsx +7 -5
  456. package/src/date/datepicker/DatePickerStandalone.tsx +2 -2
  457. package/src/date/datepicker/datepicker.stories.tsx +2 -2
  458. package/src/date/datepicker/parts/Caption.tsx +2 -3
  459. package/src/date/datepicker/parts/DropdownCaption.tsx +2 -2
  460. package/src/date/datepicker/parts/HeadRow.tsx +1 -1
  461. package/src/date/datepicker/parts/Row.tsx +3 -3
  462. package/src/date/datepicker/parts/WeekRow.tsx +1 -1
  463. package/src/date/hooks/useDatepicker.tsx +7 -7
  464. package/src/date/hooks/useMonthPicker.tsx +7 -7
  465. package/src/date/hooks/useRangeDatepicker.test.tsx +2 -2
  466. package/src/date/hooks/useRangeDatepicker.tsx +28 -28
  467. package/src/date/monthpicker/MonthButton.tsx +1 -1
  468. package/src/date/monthpicker/MonthCaption.tsx +1 -1
  469. package/src/date/monthpicker/MonthPicker.tsx +7 -6
  470. package/src/date/monthpicker/MonthPickerStandalone.tsx +3 -3
  471. package/src/date/monthpicker/MonthSelector.tsx +1 -1
  472. package/src/date/parts/DateInput.tsx +6 -6
  473. package/src/date/parts/DateWrapper.tsx +1 -1
  474. package/src/date/utils/__tests__/check-dates.test.ts +3 -3
  475. package/src/date/utils/__tests__/format-dates.test.ts +7 -7
  476. package/src/date/utils/__tests__/get-initial-year.test.ts +14 -14
  477. package/src/date/utils/__tests__/get-month-weeks.test.ts +0 -1
  478. package/src/date/utils/__tests__/is-match.test.ts +4 -4
  479. package/src/date/utils/__tests__/parse-dates.test.ts +2 -2
  480. package/src/date/utils/check-dates.ts +2 -2
  481. package/src/date/utils/dates-disabled.ts +1 -1
  482. package/src/date/utils/format-date.ts +1 -1
  483. package/src/date/utils/get-dates.ts +1 -1
  484. package/src/date/utils/get-month-weeks.ts +6 -6
  485. package/src/date/utils/is-match.ts +2 -3
  486. package/src/date/utils/labels.ts +1 -1
  487. package/src/date/utils/navigation.ts +18 -18
  488. package/src/date/utils/parse-date.ts +8 -8
  489. package/src/dropdown/Dropdown.tsx +14 -11
  490. package/src/dropdown/Menu/Divider.tsx +1 -1
  491. package/src/dropdown/Menu/GroupedList/GroupedHeading.tsx +2 -2
  492. package/src/dropdown/Menu/GroupedList/GroupedItem.tsx +23 -23
  493. package/src/dropdown/Menu/GroupedList/index.tsx +2 -2
  494. package/src/dropdown/Menu/List/Item.tsx +23 -23
  495. package/src/dropdown/Menu/List/index.tsx +1 -1
  496. package/src/dropdown/Menu/index.tsx +1 -1
  497. package/src/dropdown/Toggle.tsx +10 -6
  498. package/src/dropdown/dropdown.stories.tsx +1 -1
  499. package/src/expansion-card/ExpansionCard.tsx +4 -4
  500. package/src/expansion-card/ExpansionCardContent.tsx +1 -1
  501. package/src/expansion-card/ExpansionCardDescription.tsx +1 -1
  502. package/src/expansion-card/ExpansionCardHeader.tsx +2 -2
  503. package/src/expansion-card/ExpansionCardTitle.tsx +3 -3
  504. package/src/expansion-card/expansion-card.stories.tsx +1 -1
  505. package/src/form/ConfirmationPanel.test.tsx +1 -1
  506. package/src/form/ConfirmationPanel.tsx +3 -3
  507. package/src/form/Fieldset/Fieldset.tsx +2 -2
  508. package/src/form/ReadOnlyIcon.tsx +1 -1
  509. package/src/form/Select.tsx +6 -6
  510. package/src/form/Switch.tsx +4 -4
  511. package/src/form/TextField.tsx +4 -4
  512. package/src/form/Textarea.tsx +6 -5
  513. package/src/form/checkbox/Checkbox.test.tsx +8 -8
  514. package/src/form/checkbox/Checkbox.tsx +5 -4
  515. package/src/form/checkbox/CheckboxGroup.tsx +4 -4
  516. package/src/form/checkbox/useCheckbox.ts +3 -3
  517. package/src/form/combobox/Combobox.tsx +9 -12
  518. package/src/form/combobox/ComboboxProvider.tsx +3 -3
  519. package/src/form/combobox/ComboboxWrapper.tsx +1 -1
  520. package/src/form/combobox/FilteredOptions/FilteredOptions.tsx +6 -6
  521. package/src/form/combobox/FilteredOptions/filteredOptionsContext.tsx +17 -18
  522. package/src/form/combobox/FilteredOptions/useVirtualFocus.ts +5 -5
  523. package/src/form/combobox/Input/Input.tsx +6 -6
  524. package/src/form/combobox/Input/inputContext.tsx +7 -7
  525. package/src/form/combobox/SelectedOptions/SelectedOptions.tsx +1 -1
  526. package/src/form/combobox/SelectedOptions/selectedOptionsContext.tsx +10 -10
  527. package/src/form/combobox/ToggleListButton.tsx +1 -2
  528. package/src/form/combobox/combobox.stories.tsx +17 -18
  529. package/src/form/combobox/combobox.test.tsx +14 -12
  530. package/src/form/combobox/customOptionsContext.tsx +6 -6
  531. package/src/form/combobox/types.ts +2 -2
  532. package/src/form/error-summary/ErrorSummary.tsx +6 -6
  533. package/src/form/error-summary/ErrorSummaryItem.tsx +3 -3
  534. package/src/form/error-summary/error-summary.stories.tsx +2 -1
  535. package/src/form/radio/Radio.test.tsx +1 -1
  536. package/src/form/radio/Radio.tsx +3 -2
  537. package/src/form/radio/RadioGroup.tsx +4 -4
  538. package/src/form/radio/useRadio.ts +1 -1
  539. package/src/form/search/Search.tsx +9 -9
  540. package/src/form/search/SearchButton.tsx +4 -6
  541. package/src/form/search/search.stories.tsx +1 -1
  542. package/src/form/stories/fieldset.stories.tsx +3 -2
  543. package/src/form/stories/select.stories.tsx +2 -1
  544. package/src/form/stories/text-field.stories.tsx +2 -1
  545. package/src/form/useFormField.ts +4 -4
  546. package/src/grid/Cell.tsx +3 -3
  547. package/src/grid/Grid.tsx +2 -2
  548. package/src/grid/grid.stories.tsx +1 -1
  549. package/src/guide-panel/GuidePanel.tsx +2 -2
  550. package/src/guide-panel/Illustration.tsx +1 -1
  551. package/src/guide-panel/guidepanel.stories.tsx +1 -1
  552. package/src/help-text/HelpText.tsx +9 -27
  553. package/src/help-text/HelpTextIcon.tsx +1 -1
  554. package/src/help-text/help-text.stories.tsx +58 -68
  555. package/src/internal-header/InternalHeader.tsx +2 -2
  556. package/src/internal-header/InternalHeaderButton.tsx +2 -2
  557. package/src/internal-header/InternalHeaderTitle.tsx +2 -2
  558. package/src/internal-header/InternalHeaderUser.tsx +1 -1
  559. package/src/internal-header/InternalHeaderUserButton.tsx +2 -2
  560. package/src/internal-header/header.stories.tsx +3 -3
  561. package/src/layout/bleed/Bleed.tsx +7 -7
  562. package/src/layout/box/Box.stories.tsx +4 -4
  563. package/src/layout/box/Box.tsx +8 -8
  564. package/src/layout/content-container/ContentContainer.tsx +1 -1
  565. package/src/layout/grid/HGrid.tsx +4 -4
  566. package/src/layout/page/Page.stories.tsx +1 -1
  567. package/src/layout/page/Page.tsx +4 -4
  568. package/src/layout/page/parts/PageBlock.tsx +9 -8
  569. package/src/layout/responsive/Responsive.tsx +6 -6
  570. package/src/layout/responsive/hide.stories.tsx +1 -1
  571. package/src/layout/responsive/show.stories.tsx +1 -1
  572. package/src/layout/sidemal-test/AvatarPanel.tsx +1 -1
  573. package/src/layout/sidemal-test/Content.tsx +4 -4
  574. package/src/layout/sidemal-test/Filter.tsx +1 -1
  575. package/src/layout/sidemal-test/Header.tsx +1 -1
  576. package/src/layout/sidemal-test/Intro.tsx +2 -2
  577. package/src/layout/sidemal-test/content-box/ContentBox.tsx +6 -6
  578. package/src/layout/sidemal-test/navno-sidemal.stories.tsx +1 -1
  579. package/src/layout/stack/HStack.tsx +2 -2
  580. package/src/layout/stack/Stack.tsx +4 -4
  581. package/src/layout/stack/VStack.tsx +2 -2
  582. package/src/layout/stack/stack.stories.tsx +2 -2
  583. package/src/layout/utilities/css.ts +6 -6
  584. package/src/layout/utilities/types.ts +2 -2
  585. package/src/link/Link.tsx +3 -3
  586. package/src/link/{link.stories.tsx → stories/link.stories.tsx} +3 -3
  587. package/src/link-panel/LinkPanel.tsx +6 -7
  588. package/src/link-panel/LinkPanelDescription.tsx +1 -1
  589. package/src/link-panel/LinkPanelTitle.tsx +3 -3
  590. package/src/list/List.tsx +3 -3
  591. package/src/list/ListItem.tsx +2 -2
  592. package/src/list/list.stories.tsx +2 -2
  593. package/src/loader/Loader.tsx +6 -5
  594. package/src/loader/loader.stories.tsx +1 -0
  595. package/src/modal/Modal.test.tsx +4 -4
  596. package/src/modal/Modal.tsx +32 -32
  597. package/src/modal/ModalBody.tsx +2 -2
  598. package/src/modal/ModalFooter.tsx +2 -2
  599. package/src/modal/ModalHeader.tsx +2 -2
  600. package/src/modal/ModalUtils.ts +2 -2
  601. package/src/modal/dialog-polyfill.ts +16 -16
  602. package/src/modal/types.ts +1 -1
  603. package/src/pagination/Pagination.tsx +5 -6
  604. package/src/pagination/PaginationItem.tsx +4 -4
  605. package/src/pagination/steps.test.ts +8 -8
  606. package/src/panel/Panel.tsx +4 -4
  607. package/src/panel/panel.stories.tsx +2 -1
  608. package/src/popover/Popover.test.tsx +7 -7
  609. package/src/popover/Popover.tsx +11 -14
  610. package/src/popover/PopoverContent.tsx +2 -2
  611. package/src/provider/Provider.tsx +1 -1
  612. package/src/read-more/ReadMore.tsx +20 -16
  613. package/src/read-more/readmore.stories.tsx +4 -0
  614. package/src/skeleton/Skeleton.tsx +4 -4
  615. package/src/stepper/Step.tsx +10 -7
  616. package/src/stepper/Stepper.tsx +3 -3
  617. package/src/{util → table}/AnimateHeight.tsx +1 -1
  618. package/src/table/Body.tsx +1 -1
  619. package/src/table/ColumnHeader.tsx +2 -2
  620. package/src/table/DataCell.tsx +8 -3
  621. package/src/table/ExpandableRow.tsx +30 -23
  622. package/src/table/Header.tsx +1 -1
  623. package/src/table/HeaderCell.tsx +7 -2
  624. package/src/table/Row.tsx +2 -2
  625. package/src/table/Table.tsx +2 -2
  626. package/src/table/stories/table-async.stories.tsx +4 -4
  627. package/src/table/stories/table.stories.tsx +44 -30
  628. package/src/table/stories/tests/table.stories.tsx +2 -3
  629. package/src/tabs/Tab.tsx +4 -4
  630. package/src/tabs/TabList.tsx +8 -6
  631. package/src/tabs/TabPanel.tsx +1 -1
  632. package/src/tabs/Tabs.stories.tsx +1 -1
  633. package/src/tabs/Tabs.tsx +5 -5
  634. package/src/tag/Tag.tsx +12 -5
  635. package/src/tag/tag.stories.tsx +28 -2
  636. package/src/timeline/AxisLabels.tsx +9 -9
  637. package/src/timeline/Pin.tsx +4 -7
  638. package/src/timeline/Timeline.tsx +7 -7
  639. package/src/timeline/TimelineRow.tsx +5 -5
  640. package/src/timeline/hooks/useTimelineContext.tsx +1 -1
  641. package/src/timeline/hooks/useTimelineRows.ts +18 -19
  642. package/src/timeline/period/ClickablePeriod.tsx +6 -9
  643. package/src/timeline/period/NonClickablePeriod.tsx +1 -1
  644. package/src/timeline/period/index.tsx +1 -1
  645. package/src/timeline/timeline.stories.tsx +2 -2
  646. package/src/timeline/utils/calc.ts +2 -2
  647. package/src/timeline/utils/filter.ts +2 -2
  648. package/src/timeline/utils/period.ts +2 -2
  649. package/src/timeline/utils/timeline.ts +1 -1
  650. package/src/timeline/zoom/ZoomButton.tsx +3 -3
  651. package/src/timeline/zoom/index.tsx +1 -1
  652. package/src/toggle-group/ToggleGroup.stories.tsx +2 -2
  653. package/src/toggle-group/ToggleGroup.tsx +6 -6
  654. package/src/toggle-group/ToggleItem.tsx +1 -1
  655. package/src/toggle-group/context.ts +1 -1
  656. package/src/tooltip/Tooltip.test.tsx +10 -10
  657. package/src/tooltip/Tooltip.tsx +31 -33
  658. package/src/tooltip/tooltip.stories.tsx +1 -1
  659. package/src/typography/BodyLong.tsx +5 -5
  660. package/src/typography/BodyShort.tsx +4 -4
  661. package/src/typography/Detail.tsx +4 -4
  662. package/src/typography/ErrorMessage.tsx +4 -4
  663. package/src/typography/Heading.tsx +4 -4
  664. package/src/typography/Ingress.tsx +2 -2
  665. package/src/typography/Label.tsx +4 -4
  666. package/src/typography/stories/bodylong.stories.tsx +1 -2
  667. package/src/typography/stories/bodyshort.stories.tsx +1 -2
  668. package/src/typography/stories/detail.stories.tsx +1 -2
  669. package/src/typography/stories/error-message.stories.tsx +1 -2
  670. package/src/typography/stories/heading.stories.tsx +1 -3
  671. package/src/typography/stories/ingress.stories.tsx +1 -2
  672. package/src/typography/stories/label.stories.tsx +1 -2
  673. package/src/util/Slot.tsx +4 -4
  674. package/src/util/TextareaAutoSize.tsx +11 -7
  675. package/src/util/__tests__/Slot.test.tsx +11 -11
  676. package/src/util/__tests__/useMedia.test.tsx +1 -1
  677. package/src/util/composeEventHandlers.ts +19 -0
  678. package/src/util/hooks/index.ts +8 -0
  679. package/src/util/hooks/useCallbackRef.ts +20 -0
  680. package/src/util/hooks/useClientLayoutEffect.ts +5 -0
  681. package/src/util/hooks/useControllableState.ts +40 -0
  682. package/src/util/{useEventListener.ts → hooks/useEventListener.ts} +1 -1
  683. package/src/util/{useMedia.ts → hooks/useMedia.ts} +1 -1
  684. package/src/util/hooks/useMergeRefs.ts +32 -0
  685. package/src/util/{usePrevious.ts → hooks/usePrevious.ts} +1 -4
  686. package/src/util/index.ts +4 -5
  687. package/src/util/omit.ts +1 -1
  688. package/src/util/{OverridableComponent.ts → types/OverridableComponent.ts} +1 -1
  689. package/src/util/types/index.ts +1 -0
  690. package/cjs/util/RandomIcon.js +0 -38
  691. package/cjs/util/mergeRefs.js +0 -16
  692. package/cjs/util/useClientLayoutEffect.js +0 -10
  693. package/esm/util/AnimateHeight.js.map +0 -1
  694. package/esm/util/OverridableComponent.js.map +0 -1
  695. package/esm/util/RandomIcon.d.ts +0 -2
  696. package/esm/util/RandomIcon.js +0 -9
  697. package/esm/util/RandomIcon.js.map +0 -1
  698. package/esm/util/mergeRefs.d.ts +0 -2
  699. package/esm/util/mergeRefs.js +0 -14
  700. package/esm/util/mergeRefs.js.map +0 -1
  701. package/esm/util/useClientLayoutEffect.js +0 -8
  702. package/esm/util/useClientLayoutEffect.js.map +0 -1
  703. package/esm/util/useEventListener.js.map +0 -1
  704. package/esm/util/useId.js.map +0 -1
  705. package/esm/util/useMedia.js.map +0 -1
  706. package/esm/util/usePrevious.d.ts +0 -2
  707. package/esm/util/usePrevious.js.map +0 -1
  708. package/src/util/mergeRefs.tsx +0 -15
  709. package/src/util/useClientLayoutEffect.ts +0 -11
  710. package/cjs/{util → table}/AnimateHeight.js +0 -0
  711. package/cjs/util/{useEventListener.js → hooks/useEventListener.js} +0 -0
  712. package/cjs/util/{useId.js → hooks/useId.js} +0 -0
  713. package/cjs/util/{useMedia.js → hooks/useMedia.js} +0 -0
  714. package/cjs/util/{OverridableComponent.js → types/OverridableComponent.js} +0 -0
  715. package/esm/{util → table}/AnimateHeight.d.ts +0 -0
  716. package/esm/{util → table}/AnimateHeight.js +0 -0
  717. package/esm/util/{useClientLayoutEffect.d.ts → hooks/useClientLayoutEffect.d.ts} +0 -0
  718. package/esm/util/{useEventListener.js → hooks/useEventListener.js} +0 -0
  719. package/esm/util/{useId.d.ts → hooks/useId.d.ts} +0 -0
  720. package/esm/util/{useId.js → hooks/useId.js} +0 -0
  721. package/esm/util/{useMedia.d.ts → hooks/useMedia.d.ts} +0 -0
  722. package/esm/util/{useMedia.js → hooks/useMedia.js} +0 -0
  723. package/esm/util/{OverridableComponent.d.ts → types/OverridableComponent.d.ts} +0 -0
  724. package/esm/util/{OverridableComponent.js → types/OverridableComponent.js} +0 -0
  725. package/src/{util → link/stories}/RandomIcon.tsx +1 -1
  726. /package/src/util/{useId.ts → hooks/useId.ts} +0 -0
@@ -12,18 +12,18 @@ const useCheckbox = (props: CheckboxProps) => {
12
12
 
13
13
  const { inputProps, readOnly, ...rest } = useFormField(
14
14
  omit(props, ["description", "children"]),
15
- "checkbox"
15
+ "checkbox",
16
16
  );
17
17
 
18
18
  if (checkboxGroup) {
19
19
  if (props.checked) {
20
20
  console.warn(
21
- "`checked` is unsupported on <Checkbox> elements within a <CheckboxGroup>. Please set a `value` or `defaultValue` on <CheckboxGroup> instead."
21
+ "`checked` is unsupported on <Checkbox> elements within a <CheckboxGroup>. Please set a `value` or `defaultValue` on <CheckboxGroup> instead.",
22
22
  );
23
23
  }
24
24
  if (props.value === undefined) {
25
25
  console.warn(
26
- "A <Checkbox> element within a <CheckboxGroup> requires a `value` property."
26
+ "A <Checkbox> element within a <CheckboxGroup> requires a `value` property.",
27
27
  );
28
28
  }
29
29
  }
@@ -1,17 +1,17 @@
1
1
  import cl from "clsx";
2
- import React, { forwardRef, useMemo, useRef } from "react";
2
+ import React, { forwardRef, useRef } from "react";
3
+ import { BodyShort, ErrorMessage, Label } from "../../typography";
4
+ import { useMergeRefs } from "../../util/hooks/useMergeRefs";
3
5
  import ClearButton from "./ClearButton";
6
+ import ComboboxWrapper from "./ComboboxWrapper";
4
7
  import FilteredOptions from "./FilteredOptions/FilteredOptions";
5
8
  import { useFilteredOptionsContext } from "./FilteredOptions/filteredOptionsContext";
9
+ import Input from "./Input/Input";
10
+ import { useInputContext } from "./Input/inputContext";
6
11
  import SelectedOptions from "./SelectedOptions/SelectedOptions";
12
+ import { useSelectedOptionsContext } from "./SelectedOptions/selectedOptionsContext";
7
13
  import ToggleListButton from "./ToggleListButton";
8
14
  import { ComboboxProps } from "./types";
9
- import { useSelectedOptionsContext } from "./SelectedOptions/selectedOptionsContext";
10
- import ComboboxWrapper from "./ComboboxWrapper";
11
- import { useInputContext } from "./Input/inputContext";
12
- import Input from "./Input/Input";
13
- import { mergeRefs } from "../../util";
14
- import { BodyShort, ErrorMessage, Label } from "../../typography";
15
15
 
16
16
  export const Combobox = forwardRef<
17
17
  HTMLInputElement,
@@ -50,10 +50,7 @@ export const Combobox = forwardRef<
50
50
  size = "medium",
51
51
  } = useInputContext();
52
52
 
53
- const mergedInputRef = useMemo(
54
- () => mergeRefs([inputRef, ref]),
55
- [inputRef, ref]
56
- );
53
+ const mergedInputRef = useMergeRefs(inputRef, ref);
57
54
 
58
55
  return (
59
56
  <ComboboxWrapper
@@ -93,7 +90,7 @@ export const Combobox = forwardRef<
93
90
  {
94
91
  "navds-combobox__wrapper-inner--virtually-unfocused":
95
92
  activeDecendantId !== null,
96
- }
93
+ },
97
94
  )}
98
95
  onClick={focusInput}
99
96
  >
@@ -1,9 +1,9 @@
1
1
  import React, { forwardRef } from "react";
2
2
  import Combobox from "./Combobox";
3
3
  import { FilteredOptionsProvider } from "./FilteredOptions/filteredOptionsContext";
4
- import { CustomOptionsProvider } from "./customOptionsContext";
5
- import { SelectedOptionsProvider } from "./SelectedOptions/selectedOptionsContext";
6
4
  import { InputContextProvider } from "./Input/inputContext";
5
+ import { SelectedOptionsProvider } from "./SelectedOptions/selectedOptionsContext";
6
+ import { CustomOptionsProvider } from "./customOptionsContext";
7
7
  import { ComboboxProps } from "./types";
8
8
 
9
9
  /**
@@ -92,7 +92,7 @@ const ComboboxProvider = forwardRef<HTMLInputElement, ComboboxProps>(
92
92
  </CustomOptionsProvider>
93
93
  </InputContextProvider>
94
94
  );
95
- }
95
+ },
96
96
  );
97
97
 
98
98
  export default ComboboxProvider;
@@ -53,7 +53,7 @@ const ComboboxWrapper = ({
53
53
  "navds-combobox--error": hasError,
54
54
  "navds-combobox--disabled": !!inputProps.disabled,
55
55
  "navds-combobox--focused": hasFocusWithin,
56
- }
56
+ },
57
57
  )}
58
58
  onFocus={onFocusInsideWrapper}
59
59
  onBlur={onBlurWrapper}
@@ -1,12 +1,12 @@
1
- import React from "react";
2
1
  import cl from "clsx";
2
+ import React from "react";
3
3
  import { CheckmarkIcon, PlusIcon } from "@navikt/aksel-icons";
4
- import { useFilteredOptionsContext } from "./filteredOptionsContext";
5
- import { useSelectedOptionsContext } from "../SelectedOptions/selectedOptionsContext";
6
- import { useInputContext } from "../Input/inputContext";
7
4
  import { Loader } from "../../../loader";
8
5
  import { BodyShort, Label } from "../../../typography";
6
+ import { useInputContext } from "../Input/inputContext";
7
+ import { useSelectedOptionsContext } from "../SelectedOptions/selectedOptionsContext";
9
8
  import filteredOptionsUtil from "./filtered-options-util";
9
+ import { useFilteredOptionsContext } from "./filteredOptionsContext";
10
10
 
11
11
  const FilteredOptions = () => {
12
12
  const {
@@ -60,7 +60,7 @@ const FilteredOptions = () => {
60
60
  activeDecendantId !== filteredOptionsUtil.getAddNewOptionId(id)
61
61
  ) {
62
62
  virtualFocus.moveFocusToElement(
63
- filteredOptionsUtil.getAddNewOptionId(id)
63
+ filteredOptionsUtil.getAddNewOptionId(id),
64
64
  );
65
65
  setIsMouseLastUsedInputDevice(true);
66
66
  }
@@ -114,7 +114,7 @@ const FilteredOptions = () => {
114
114
  activeDecendantId !== filteredOptionsUtil.getOptionId(id, option)
115
115
  ) {
116
116
  virtualFocus.moveFocusToElement(
117
- filteredOptionsUtil.getOptionId(id, option)
117
+ filteredOptionsUtil.getOptionId(id, option),
118
118
  );
119
119
  setIsMouseLastUsedInputDevice(true);
120
120
  }
@@ -1,19 +1,18 @@
1
+ import cl from "clsx";
1
2
  import React, {
2
- useState,
3
- useMemo,
3
+ SetStateAction,
4
4
  createContext,
5
- useContext,
6
5
  useCallback,
7
- SetStateAction,
6
+ useContext,
7
+ useMemo,
8
+ useState,
8
9
  } from "react";
9
- import cl from "clsx";
10
- import { useCustomOptionsContext } from "../customOptionsContext";
10
+ import { useClientLayoutEffect, usePrevious } from "../../../util/hooks";
11
11
  import { useInputContext } from "../Input/inputContext";
12
- import usePrevious from "../../../util/usePrevious";
13
- import { useClientLayoutEffect } from "../../../util";
12
+ import { useCustomOptionsContext } from "../customOptionsContext";
13
+ import { ComboboxProps } from "../types";
14
14
  import filteredOptionsUtils from "./filtered-options-util";
15
15
  import useVirtualFocus, { VirtualFocusType } from "./useVirtualFocus";
16
- import { ComboboxProps } from "../types";
17
16
 
18
17
  type FilteredOptionsProps = {
19
18
  children: any;
@@ -46,7 +45,7 @@ type FilteredOptionsContextType = {
46
45
  virtualFocus: VirtualFocusType;
47
46
  };
48
47
  const FilteredOptionsContext = createContext<FilteredOptionsContextType>(
49
- {} as FilteredOptionsContextType
48
+ {} as FilteredOptionsContextType,
50
49
  );
51
50
 
52
51
  export const FilteredOptionsProvider = ({
@@ -99,9 +98,9 @@ export const FilteredOptionsProvider = ({
99
98
  [filteredOptionsUtils.getAddNewOptionId(id)]: allowNewValues
100
99
  ? value
101
100
  : undefined,
102
- }
101
+ },
103
102
  ),
104
- [allowNewValues, id, options, value]
103
+ [allowNewValues, id, options, value],
105
104
  );
106
105
 
107
106
  useClientLayoutEffect(() => {
@@ -112,7 +111,7 @@ export const FilteredOptionsProvider = ({
112
111
  filteredOptions.length > 0
113
112
  ) {
114
113
  setValue(
115
- `${searchTerm}${filteredOptions[0].substring(searchTerm.length)}`
114
+ `${searchTerm}${filteredOptions[0].substring(searchTerm.length)}`,
116
115
  );
117
116
  setSearchTerm(searchTerm);
118
117
  }
@@ -134,14 +133,14 @@ export const FilteredOptionsProvider = ({
134
133
  virtualFocus.moveFocusToTop();
135
134
  setInternalListOpen((oldState) => newState ?? !oldState);
136
135
  },
137
- [virtualFocus]
136
+ [virtualFocus],
138
137
  );
139
138
 
140
139
  const isValueNew = useMemo(
141
140
  () =>
142
141
  Boolean(value) &&
143
142
  !filteredOptionsMap[filteredOptionsUtils.getOptionId(id, value)],
144
- [filteredOptionsMap, id, value]
143
+ [filteredOptionsMap, id, value],
145
144
  );
146
145
 
147
146
  const ariaDescribedBy = useMemo(() => {
@@ -169,12 +168,12 @@ export const FilteredOptionsProvider = ({
169
168
  const currentOption = useMemo(
170
169
  () =>
171
170
  filteredOptionsMap[virtualFocus.activeElement?.getAttribute("id") || -1],
172
- [filteredOptionsMap, virtualFocus]
171
+ [filteredOptionsMap, virtualFocus],
173
172
  );
174
173
 
175
174
  const activeDecendantId = useMemo(
176
175
  () => virtualFocus.activeElement?.getAttribute("id") || undefined,
177
- [virtualFocus.activeElement]
176
+ [virtualFocus.activeElement],
178
177
  );
179
178
 
180
179
  const filteredOptionsState = {
@@ -205,7 +204,7 @@ export const useFilteredOptionsContext = () => {
205
204
  const context = useContext(FilteredOptionsContext);
206
205
  if (!context) {
207
206
  throw new Error(
208
- "useFilteredOptionsContext must be used within a FilteredOptionsProvider"
207
+ "useFilteredOptionsContext must be used within a FilteredOptionsProvider",
209
208
  );
210
209
  }
211
210
  return context;
@@ -14,7 +14,7 @@ export type VirtualFocusType = {
14
14
  };
15
15
 
16
16
  const useVirtualFocus = (
17
- containerRef: HTMLElement | null
17
+ containerRef: HTMLElement | null,
18
18
  ): VirtualFocusType => {
19
19
  const [index, setIndex] = useState(-1);
20
20
 
@@ -22,7 +22,7 @@ const useVirtualFocus = (
22
22
  ? Array.prototype.slice.call(containerRef?.children)
23
23
  : [];
24
24
  const elementsAbleToReceiveFocus = listOfAllChildren.filter(
25
- (child) => child.getAttribute("data-no-focus") !== "true"
25
+ (child) => child.getAttribute("data-no-focus") !== "true",
26
26
  );
27
27
 
28
28
  const activeElement = elementsAbleToReceiveFocus[index];
@@ -34,7 +34,7 @@ const useVirtualFocus = (
34
34
  const scrollToOption = (newIndex: number) => {
35
35
  const indexOfElementToScrollTo = Math.min(
36
36
  Math.max(newIndex, 0),
37
- containerRef?.children.length || 0
37
+ containerRef?.children.length || 0,
38
38
  );
39
39
  if (containerRef?.children[indexOfElementToScrollTo]) {
40
40
  const child = containerRef.children[indexOfElementToScrollTo];
@@ -53,14 +53,14 @@ const useVirtualFocus = (
53
53
  const moveFocusUp = () => _moveFocusAndScrollTo(Math.max(index - 1, -1));
54
54
  const moveFocusDown = () =>
55
55
  _moveFocusAndScrollTo(
56
- Math.min(index + 1, elementsAbleToReceiveFocus.length - 1)
56
+ Math.min(index + 1, elementsAbleToReceiveFocus.length - 1),
57
57
  );
58
58
  const moveFocusToTop = () => _moveFocusAndScrollTo(-1);
59
59
  const moveFocusToBottom = () =>
60
60
  _moveFocusAndScrollTo(elementsAbleToReceiveFocus.length - 1);
61
61
  const moveFocusToElement = (id: string) => {
62
62
  const thisElement = elementsAbleToReceiveFocus.find(
63
- (_element) => _element.getAttribute("id") === id
63
+ (_element) => _element.getAttribute("id") === id,
64
64
  );
65
65
  const indexOfElement = thisElement
66
66
  ? elementsAbleToReceiveFocus.indexOf(thisElement)
@@ -45,7 +45,7 @@ const Input = forwardRef<HTMLInputElement, InputProps>(
45
45
  (event: React.KeyboardEvent) => {
46
46
  const isTextInSelectedOptions = (text: string) => {
47
47
  return selectedOptions.find(
48
- (item) => item.toLocaleLowerCase() === text.toLocaleLowerCase()
48
+ (item) => item.toLocaleLowerCase() === text.toLocaleLowerCase(),
49
49
  );
50
50
  };
51
51
 
@@ -86,7 +86,7 @@ const Input = forwardRef<HTMLInputElement, InputProps>(
86
86
  toggleIsListOpen,
87
87
  toggleOption,
88
88
  value,
89
- ]
89
+ ],
90
90
  );
91
91
 
92
92
  const handleKeyUp = (e: React.KeyboardEvent<HTMLInputElement>) => {
@@ -151,7 +151,7 @@ const Input = forwardRef<HTMLInputElement, InputProps>(
151
151
  setIsMouseLastUsedInputDevice,
152
152
  toggleIsListOpen,
153
153
  virtualFocus,
154
- ]
154
+ ],
155
155
  );
156
156
 
157
157
  const onChangeHandler = useCallback(
@@ -165,7 +165,7 @@ const Input = forwardRef<HTMLInputElement, InputProps>(
165
165
  virtualFocus.moveFocusToTop();
166
166
  onChange(event);
167
167
  },
168
- [filteredOptions.length, virtualFocus, onChange, toggleIsListOpen]
168
+ [filteredOptions.length, virtualFocus, onChange, toggleIsListOpen],
169
169
  );
170
170
 
171
171
  return (
@@ -190,11 +190,11 @@ const Input = forwardRef<HTMLInputElement, InputProps>(
190
190
  inputClassName,
191
191
  "navds-combobox__input",
192
192
  "navds-body-short",
193
- `navds-body-short--${size}`
193
+ `navds-body-short--${size}`,
194
194
  )}
195
195
  />
196
196
  );
197
- }
197
+ },
198
198
  );
199
199
 
200
200
  export default Input;
@@ -8,7 +8,7 @@ import React, {
8
8
  useRef,
9
9
  useState,
10
10
  } from "react";
11
- import { useClientLayoutEffect } from "../../../util";
11
+ import { useClientLayoutEffect } from "../../../util/hooks";
12
12
  import { FormFieldType, useFormField } from "../../useFormField";
13
13
 
14
14
  interface InputContextType extends FormFieldType {
@@ -49,14 +49,14 @@ export const InputContextProvider = ({ children, value: props }) => {
49
49
  id: externalId,
50
50
  size,
51
51
  },
52
- "comboboxfield"
52
+ "comboboxfield",
53
53
  );
54
54
  const inputRef = useRef<HTMLInputElement | null>(null);
55
55
  const [internalValue, setInternalValue] = useState<string>(defaultValue);
56
56
 
57
57
  const value = useMemo(
58
58
  () => String(externalValue ?? internalValue),
59
- [externalValue, internalValue]
59
+ [externalValue, internalValue],
60
60
  );
61
61
 
62
62
  const [searchTerm, setSearchTerm] = useState(value);
@@ -68,14 +68,14 @@ export const InputContextProvider = ({ children, value: props }) => {
68
68
  externalOnChange?.(event);
69
69
  setSearchTerm(newValue);
70
70
  },
71
- [externalValue, externalOnChange]
71
+ [externalValue, externalOnChange],
72
72
  );
73
73
 
74
74
  const setValue = useCallback(
75
75
  (text) => {
76
76
  setInternalValue(text);
77
77
  },
78
- [setInternalValue]
78
+ [setInternalValue],
79
79
  );
80
80
 
81
81
  const clearInput = useCallback(
@@ -85,7 +85,7 @@ export const InputContextProvider = ({ children, value: props }) => {
85
85
  setValue("");
86
86
  setSearchTerm("");
87
87
  },
88
- [externalOnChange, onClear, setValue]
88
+ [externalOnChange, onClear, setValue],
89
89
  );
90
90
 
91
91
  const focusInput = useCallback(() => {
@@ -123,7 +123,7 @@ export const useInputContext = () => {
123
123
  const context = useContext(InputContext);
124
124
  if (!context) {
125
125
  throw new Error(
126
- "useInputContext must be used within an InputContextProvider"
126
+ "useInputContext must be used within an InputContextProvider",
127
127
  );
128
128
  }
129
129
  return context;
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import { Chips } from "../../../chips";
3
- import { useSelectedOptionsContext } from "./selectedOptionsContext";
4
3
  import { useInputContext } from "../Input/inputContext";
4
+ import { useSelectedOptionsContext } from "./selectedOptionsContext";
5
5
 
6
6
  interface SelectedOptionsProps {
7
7
  selectedOptions?: string[];
@@ -5,7 +5,7 @@ import React, {
5
5
  useMemo,
6
6
  useState,
7
7
  } from "react";
8
- import usePrevious from "../../../util/usePrevious";
8
+ import { usePrevious } from "../../../util/hooks";
9
9
  import { useInputContext } from "../Input/inputContext";
10
10
  import { useCustomOptionsContext } from "../customOptionsContext";
11
11
  import { ComboboxProps } from "../types";
@@ -19,12 +19,12 @@ type SelectedOptionsContextType = {
19
19
  setSelectedOptions: (any) => void;
20
20
  toggleOption: (
21
21
  option: string,
22
- event: React.KeyboardEvent | React.PointerEvent
22
+ event: React.KeyboardEvent | React.PointerEvent,
23
23
  ) => void;
24
24
  };
25
25
 
26
26
  const SelectedOptionsContext = createContext<SelectedOptionsContextType>(
27
- {} as SelectedOptionsContextType
27
+ {} as SelectedOptionsContextType,
28
28
  );
29
29
 
30
30
  export const SelectedOptionsProvider = ({
@@ -59,7 +59,7 @@ export const SelectedOptionsProvider = ({
59
59
  const selectedOptions = useMemo(
60
60
  () =>
61
61
  externalSelectedOptions ?? [...customOptions, ...internalSelectedOptions],
62
- [customOptions, externalSelectedOptions, internalSelectedOptions]
62
+ [customOptions, externalSelectedOptions, internalSelectedOptions],
63
63
  );
64
64
 
65
65
  const addSelectedOption = useCallback(
@@ -88,7 +88,7 @@ export const SelectedOptionsProvider = ({
88
88
  onToggleSelected,
89
89
  options,
90
90
  setCustomOptions,
91
- ]
91
+ ],
92
92
  );
93
93
 
94
94
  const removeSelectedOption = useCallback(
@@ -99,13 +99,13 @@ export const SelectedOptionsProvider = ({
99
99
  } else {
100
100
  setSelectedOptions((oldSelectedOptions) =>
101
101
  oldSelectedOptions.filter(
102
- (selectedOption) => selectedOption !== option
103
- )
102
+ (selectedOption) => selectedOption !== option,
103
+ ),
104
104
  );
105
105
  }
106
106
  onToggleSelected?.(option, false, isCustomOption);
107
107
  },
108
- [customOptions, onToggleSelected, removeCustomOption]
108
+ [customOptions, onToggleSelected, removeCustomOption],
109
109
  );
110
110
 
111
111
  const toggleOption = useCallback(
@@ -124,7 +124,7 @@ export const SelectedOptionsProvider = ({
124
124
  focusInput,
125
125
  removeSelectedOption,
126
126
  selectedOptions,
127
- ]
127
+ ],
128
128
  );
129
129
 
130
130
  const prevSelectedOptions = usePrevious<string[]>(selectedOptions);
@@ -150,7 +150,7 @@ export const useSelectedOptionsContext = () => {
150
150
  const context = useContext(SelectedOptionsContext);
151
151
  if (!context) {
152
152
  throw new Error(
153
- "useSelectedOptionsContext must be used within a SelectedOptionsProvider"
153
+ "useSelectedOptionsContext must be used within a SelectedOptionsProvider",
154
154
  );
155
155
  }
156
156
  return context;
@@ -1,6 +1,5 @@
1
1
  import React, { forwardRef } from "react";
2
- import { ChevronUpIcon, ChevronDownIcon } from "@navikt/aksel-icons";
3
-
2
+ import { ChevronDownIcon, ChevronUpIcon } from "@navikt/aksel-icons";
4
3
  import { useFilteredOptionsContext } from "./FilteredOptions/filteredOptionsContext";
5
4
 
6
5
  interface ToggleListButtonProps {
@@ -1,8 +1,7 @@
1
1
  import { Meta, StoryFn, StoryObj } from "@storybook/react";
2
- import React, { useState, useId, useMemo } from "react";
3
- import { userEvent, within } from "@storybook/testing-library";
4
- import { Chips, UNSAFE_Combobox, ComboboxProps, TextField } from "../../index";
5
- import { expect, jest } from "@storybook/jest";
2
+ import { expect, fn, userEvent, within } from "@storybook/test";
3
+ import React, { useId, useMemo, useState } from "react";
4
+ import { Chips, ComboboxProps, TextField, UNSAFE_Combobox } from "../../index";
6
5
 
7
6
  export default {
8
7
  title: "ds-react/Combobox",
@@ -207,11 +206,11 @@ export const Controlled: StoryFn<{
207
206
  const id = useId();
208
207
  const [value, setValue] = useState(props.value);
209
208
  const [selectedOptions, setSelectedOptions] = useState(
210
- props.initialSelectedOptions
209
+ props.initialSelectedOptions,
211
210
  );
212
211
  const filteredOptions = useMemo(
213
212
  () => props.options.filter((option) => option.includes(value)),
214
- [props.options, value]
213
+ [props.options, value],
215
214
  );
216
215
 
217
216
  const onToggleSelected = (option: string, isSelected: boolean) => {
@@ -427,14 +426,14 @@ export const AddWhenAddNewDisabledTest: StoryObject = {
427
426
  };
428
427
 
429
428
  export const TestThatCallbacksOnlyFireWhenExpected: StoryObj<{
430
- onChange: ReturnType<typeof jest.fn>;
431
- onClear: ReturnType<typeof jest.fn>;
432
- onToggleSelected: ReturnType<typeof jest.fn>;
429
+ onChange: ReturnType<typeof fn>;
430
+ onClear: ReturnType<typeof fn>;
431
+ onToggleSelected: ReturnType<typeof fn>;
433
432
  }> = {
434
433
  args: {
435
- onChange: jest.fn(),
436
- onClear: jest.fn(),
437
- onToggleSelected: jest.fn(),
434
+ onChange: fn(),
435
+ onClear: fn(),
436
+ onToggleSelected: fn(),
438
437
  },
439
438
  render: (props) => {
440
439
  return (
@@ -469,9 +468,9 @@ export const TestThatCallbacksOnlyFireWhenExpected: StoryObj<{
469
468
 
470
469
  export const TestCasingWhenAutoCompleting = {
471
470
  args: {
472
- onChange: jest.fn(),
473
- onClear: jest.fn(),
474
- onToggleSelected: jest.fn(),
471
+ onChange: fn(),
472
+ onClear: fn(),
473
+ onToggleSelected: fn(),
475
474
  },
476
475
  render: (props) => {
477
476
  return (
@@ -536,20 +535,20 @@ export const TestHoverAndFocusSwitching: StoryObject = {
536
535
  await sleep(250);
537
536
  const bananaOption = canvas.getByRole("option", { name: "banana" });
538
537
  expect(getInput().getAttribute("aria-activedescendant")).toBe(
539
- bananaOption.getAttribute("id")
538
+ bananaOption.getAttribute("id"),
540
539
  );
541
540
 
542
541
  userEvent.keyboard("{ArrowDown}");
543
542
  await sleep(250);
544
543
  const appleOption = canvas.getByRole("option", { name: "apple" });
545
544
  expect(getInput().getAttribute("aria-activedescendant")).toBe(
546
- appleOption.getAttribute("id")
545
+ appleOption.getAttribute("id"),
547
546
  );
548
547
 
549
548
  userEvent.hover(bananaOption);
550
549
  await sleep(250);
551
550
  expect(getInput().getAttribute("aria-activedescendant")).toBe(
552
- bananaOption.getAttribute("id")
551
+ bananaOption.getAttribute("id"),
553
552
  );
554
553
  },
555
554
  };
@@ -2,8 +2,8 @@
2
2
  import { render, screen } from "@testing-library/react";
3
3
  import userEvent from "@testing-library/user-event";
4
4
  import React, { useId } from "react";
5
- import { UNSAFE_Combobox } from "..";
6
5
  import { act } from "react-dom/test-utils";
6
+ import { UNSAFE_Combobox } from "..";
7
7
 
8
8
  const options = [
9
9
  "banana",
@@ -42,7 +42,9 @@ describe("Render combobox", () => {
42
42
 
43
43
  await act(async () => {
44
44
  await userEvent.click(
45
- screen.getByRole("combobox", { name: "Hva er dine favorittfrukter?" })
45
+ screen.getByRole("combobox", {
46
+ name: "Hva er dine favorittfrukter?",
47
+ }),
46
48
  );
47
49
  });
48
50
  await act(async () => {
@@ -50,20 +52,20 @@ describe("Render combobox", () => {
50
52
  screen.getByRole("combobox", {
51
53
  name: "Hva er dine favorittfrukter?",
52
54
  }),
53
- "apple"
55
+ "apple",
54
56
  );
55
57
  });
56
58
  await act(async () => {
57
59
  await userEvent.click(
58
- await screen.findByRole("option", { name: "apple" })
60
+ await screen.findByRole("option", { name: "apple" }),
59
61
  );
60
62
  });
61
63
  expect(
62
- await screen.findByRole("option", { name: "apple", selected: true })
64
+ await screen.findByRole("option", { name: "apple", selected: true }),
63
65
  ).toBeInTheDocument();
64
66
  await act(async () => {
65
67
  await userEvent.click(
66
- await screen.findByRole("button", { name: "apple slett" })
68
+ await screen.findByRole("button", { name: "apple slett" }),
67
69
  );
68
70
  });
69
71
  });
@@ -73,7 +75,7 @@ describe("Render combobox", () => {
73
75
  render(<App options={[]} isListOpen isLoading />);
74
76
 
75
77
  expect(
76
- await screen.findByRole("option", { name: "venter..." })
78
+ await screen.findByRole("option", { name: "venter..." }),
77
79
  ).toBeInTheDocument();
78
80
  });
79
81
  });
@@ -84,13 +86,13 @@ describe("Combobox state-handling", () => {
84
86
 
85
87
  await act(async () => {
86
88
  await userEvent.click(
87
- screen.getByRole("combobox", { name: "Hva er dine favorittfrukter?" })
89
+ screen.getByRole("combobox", { name: "Hva er dine favorittfrukter?" }),
88
90
  );
89
91
  });
90
92
  await act(async () => {
91
93
  await userEvent.type(
92
94
  screen.getByRole("combobox", { name: "Hva er dine favorittfrukter?" }),
93
- "ban"
95
+ "ban",
94
96
  );
95
97
  await userEvent.keyboard("{ArrowDown}");
96
98
  await userEvent.keyboard("{ArrowUp}");
@@ -105,13 +107,13 @@ describe("Combobox state-handling", () => {
105
107
 
106
108
  await act(async () => {
107
109
  await userEvent.click(
108
- screen.getByRole("combobox", { name: "Hva er dine favorittfrukter?" })
110
+ screen.getByRole("combobox", { name: "Hva er dine favorittfrukter?" }),
109
111
  );
110
112
  });
111
113
  await act(async () => {
112
114
  await userEvent.type(
113
115
  screen.getByRole("combobox", { name: "Hva er dine favorittfrukter?" }),
114
- "apple"
116
+ "apple",
115
117
  );
116
118
  await userEvent.keyboard("{ArrowDown}");
117
119
  await userEvent.keyboard("{Escape}");
@@ -119,7 +121,7 @@ describe("Combobox state-handling", () => {
119
121
  });
120
122
 
121
123
  expect(
122
- await screen.findByRole("option", { name: "banana" })
124
+ await screen.findByRole("option", { name: "banana" }),
123
125
  ).toBeInTheDocument();
124
126
  });
125
127
  });