@navikt/ds-react 5.12.4 → 5.13.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 (521) hide show
  1. package/_docs.json +79 -3
  2. package/cjs/accordion/Accordion.js +2 -2
  3. package/cjs/accordion/AccordionHeader.js +1 -1
  4. package/cjs/accordion/AccordionItem.js +11 -14
  5. package/cjs/alert/Alert.js +2 -2
  6. package/cjs/chat/Bubble.js +1 -1
  7. package/cjs/chat/Chat.js +2 -2
  8. package/cjs/chips/Chips.js +1 -1
  9. package/cjs/chips/Removable.js +1 -1
  10. package/cjs/copybutton/CopyButton.js +2 -2
  11. package/cjs/date/datepicker/parts/Caption.js +2 -2
  12. package/cjs/date/datepicker/parts/DropdownCaption.js +1 -1
  13. package/cjs/date/datepicker/parts/HeadRow.js +1 -1
  14. package/cjs/date/datepicker/parts/Row.js +2 -2
  15. package/cjs/date/monthpicker/MonthCaption.js +7 -7
  16. package/cjs/date/parts/DateInput.js +1 -1
  17. package/cjs/date/utils/check-dates.js +1 -1
  18. package/cjs/date/utils/is-match.js +2 -2
  19. package/cjs/date/utils/parse-date.js +1 -1
  20. package/cjs/dropdown/Dropdown.js +10 -12
  21. package/cjs/dropdown/Menu/Divider.js +1 -1
  22. package/cjs/dropdown/Menu/GroupedList/GroupedHeading.js +1 -1
  23. package/cjs/expansion-card/ExpansionCardHeader.js +1 -1
  24. package/cjs/form/ReadOnlyIcon.js +1 -1
  25. package/cjs/form/Select.js +1 -1
  26. package/cjs/form/combobox/Combobox.js +6 -6
  27. package/cjs/form/combobox/ComboboxProvider.js +2 -2
  28. package/cjs/form/combobox/FilteredOptions/FilteredOptions.js +4 -4
  29. package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.js +4 -4
  30. package/cjs/form/combobox/Input/Input.js +4 -4
  31. package/cjs/form/combobox/SelectedOptions/SelectedOptions.js +1 -1
  32. package/cjs/form/error-summary/ErrorSummary.js +2 -2
  33. package/cjs/form/error-summary/ErrorSummaryItem.js +1 -1
  34. package/cjs/form/search/Search.js +1 -1
  35. package/cjs/form/search/SearchButton.js +1 -1
  36. package/cjs/grid/Cell.js +1 -1
  37. package/cjs/grid/Grid.js +1 -1
  38. package/cjs/guide-panel/GuidePanel.js +1 -1
  39. package/cjs/internal-header/InternalHeaderButton.js +1 -1
  40. package/cjs/internal-header/InternalHeaderTitle.js +1 -1
  41. package/cjs/internal-header/InternalHeaderUser.js +1 -1
  42. package/cjs/internal-header/InternalHeaderUserButton.js +1 -1
  43. package/cjs/layout/bleed/Bleed.js +1 -1
  44. package/cjs/layout/content-container/ContentContainer.js +1 -1
  45. package/cjs/layout/grid/HGrid.js +1 -1
  46. package/cjs/layout/page/parts/PageBlock.js +1 -1
  47. package/cjs/layout/sidemal-test/AvatarPanel.js +1 -1
  48. package/cjs/layout/sidemal-test/Content.js +3 -3
  49. package/cjs/layout/sidemal-test/Filter.js +1 -1
  50. package/cjs/layout/sidemal-test/Intro.js +1 -1
  51. package/cjs/link-panel/LinkPanel.js +3 -3
  52. package/cjs/link-panel/LinkPanelDescription.js +1 -1
  53. package/cjs/link-panel/LinkPanelTitle.js +1 -1
  54. package/cjs/modal/ModalBody.js +1 -1
  55. package/cjs/modal/ModalFooter.js +1 -1
  56. package/cjs/modal/ModalHeader.js +1 -1
  57. package/cjs/pagination/PaginationItem.js +1 -1
  58. package/cjs/panel/Panel.js +1 -1
  59. package/cjs/popover/PopoverContent.js +1 -1
  60. package/cjs/read-more/ReadMore.js +12 -10
  61. package/cjs/skeleton/Skeleton.js +1 -1
  62. package/cjs/table/Body.js +1 -1
  63. package/cjs/table/ColumnHeader.js +1 -1
  64. package/cjs/table/DataCell.js +1 -1
  65. package/cjs/table/ExpandableRow.js +14 -13
  66. package/cjs/table/Header.js +1 -1
  67. package/cjs/table/Row.js +1 -1
  68. package/cjs/tabs/TabList.js +1 -1
  69. package/cjs/tabs/Tabs.js +1 -1
  70. package/cjs/tag/Tag.js +1 -1
  71. package/cjs/timeline/AxisLabels.js +1 -1
  72. package/cjs/timeline/TimelineRow.js +2 -2
  73. package/cjs/timeline/hooks/useTimelineRows.js +5 -3
  74. package/cjs/timeline/utils/timeline.js +1 -1
  75. package/cjs/timeline/zoom/ZoomButton.js +1 -1
  76. package/cjs/toggle-group/ToggleGroup.js +1 -1
  77. package/cjs/tooltip/Tooltip.js +12 -7
  78. package/cjs/typography/BodyLong.js +1 -1
  79. package/cjs/typography/ErrorMessage.js +1 -1
  80. package/cjs/typography/Ingress.js +1 -1
  81. package/cjs/util/RandomIcon.js +1 -1
  82. package/cjs/util/hooks/useCallbackRef.js +18 -0
  83. package/cjs/util/hooks/useControllableState.js +25 -0
  84. package/esm/accordion/Accordion.d.ts +1 -1
  85. package/esm/accordion/Accordion.js +2 -2
  86. package/esm/accordion/Accordion.js.map +1 -1
  87. package/esm/accordion/AccordionHeader.js +1 -1
  88. package/esm/accordion/AccordionHeader.js.map +1 -1
  89. package/esm/accordion/AccordionItem.d.ts +4 -0
  90. package/esm/accordion/AccordionItem.js +12 -15
  91. package/esm/accordion/AccordionItem.js.map +1 -1
  92. package/esm/alert/Alert.js +2 -2
  93. package/esm/alert/Alert.js.map +1 -1
  94. package/esm/chat/Bubble.js +1 -1
  95. package/esm/chat/Bubble.js.map +1 -1
  96. package/esm/chat/Chat.js +2 -2
  97. package/esm/chat/Chat.js.map +1 -1
  98. package/esm/chips/Chips.d.ts +2 -2
  99. package/esm/chips/Chips.js +1 -1
  100. package/esm/chips/Chips.js.map +1 -1
  101. package/esm/chips/Removable.js +1 -1
  102. package/esm/chips/Removable.js.map +1 -1
  103. package/esm/copybutton/CopyButton.js +2 -2
  104. package/esm/copybutton/CopyButton.js.map +1 -1
  105. package/esm/date/context/useSharedMonthContext.js.map +1 -1
  106. package/esm/date/datepicker/parts/Caption.js +2 -2
  107. package/esm/date/datepicker/parts/Caption.js.map +1 -1
  108. package/esm/date/datepicker/parts/DropdownCaption.js +1 -1
  109. package/esm/date/datepicker/parts/DropdownCaption.js.map +1 -1
  110. package/esm/date/datepicker/parts/HeadRow.js +1 -1
  111. package/esm/date/datepicker/parts/HeadRow.js.map +1 -1
  112. package/esm/date/datepicker/parts/Row.js +3 -3
  113. package/esm/date/datepicker/parts/Row.js.map +1 -1
  114. package/esm/date/monthpicker/MonthCaption.js +7 -7
  115. package/esm/date/monthpicker/MonthCaption.js.map +1 -1
  116. package/esm/date/parts/DateInput.js +1 -1
  117. package/esm/date/parts/DateInput.js.map +1 -1
  118. package/esm/date/utils/check-dates.js +1 -1
  119. package/esm/date/utils/check-dates.js.map +1 -1
  120. package/esm/date/utils/get-month-weeks.js.map +1 -1
  121. package/esm/date/utils/is-match.js +2 -2
  122. package/esm/date/utils/is-match.js.map +1 -1
  123. package/esm/date/utils/navigation.js.map +1 -1
  124. package/esm/date/utils/parse-date.js +1 -1
  125. package/esm/date/utils/parse-date.js.map +1 -1
  126. package/esm/dropdown/Dropdown.d.ts +4 -0
  127. package/esm/dropdown/Dropdown.js +10 -12
  128. package/esm/dropdown/Dropdown.js.map +1 -1
  129. package/esm/dropdown/Menu/Divider.js +1 -1
  130. package/esm/dropdown/Menu/Divider.js.map +1 -1
  131. package/esm/dropdown/Menu/GroupedList/GroupedHeading.js +1 -1
  132. package/esm/dropdown/Menu/GroupedList/GroupedHeading.js.map +1 -1
  133. package/esm/expansion-card/ExpansionCardHeader.js +1 -1
  134. package/esm/expansion-card/ExpansionCardHeader.js.map +1 -1
  135. package/esm/form/Fieldset/useFieldset.d.ts +1 -1
  136. package/esm/form/ReadOnlyIcon.js +1 -1
  137. package/esm/form/ReadOnlyIcon.js.map +1 -1
  138. package/esm/form/Select.js +1 -1
  139. package/esm/form/Select.js.map +1 -1
  140. package/esm/form/Switch.js.map +1 -1
  141. package/esm/form/TextField.js.map +1 -1
  142. package/esm/form/checkbox/useCheckbox.d.ts +1 -1
  143. package/esm/form/combobox/Combobox.d.ts +1 -1
  144. package/esm/form/combobox/Combobox.js +6 -6
  145. package/esm/form/combobox/Combobox.js.map +1 -1
  146. package/esm/form/combobox/ComboboxProvider.js +2 -2
  147. package/esm/form/combobox/ComboboxProvider.js.map +1 -1
  148. package/esm/form/combobox/FilteredOptions/FilteredOptions.js +4 -4
  149. package/esm/form/combobox/FilteredOptions/FilteredOptions.js.map +1 -1
  150. package/esm/form/combobox/FilteredOptions/filteredOptionsContext.d.ts +1 -1
  151. package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js +4 -4
  152. package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js.map +1 -1
  153. package/esm/form/combobox/Input/Input.js +4 -4
  154. package/esm/form/combobox/Input/Input.js.map +1 -1
  155. package/esm/form/combobox/SelectedOptions/SelectedOptions.js +1 -1
  156. package/esm/form/combobox/SelectedOptions/SelectedOptions.js.map +1 -1
  157. package/esm/form/combobox/ToggleListButton.js +1 -1
  158. package/esm/form/combobox/ToggleListButton.js.map +1 -1
  159. package/esm/form/combobox/customOptionsContext.js +1 -1
  160. package/esm/form/combobox/customOptionsContext.js.map +1 -1
  161. package/esm/form/error-summary/ErrorSummary.js +3 -3
  162. package/esm/form/error-summary/ErrorSummary.js.map +1 -1
  163. package/esm/form/error-summary/ErrorSummaryItem.js +1 -1
  164. package/esm/form/error-summary/ErrorSummaryItem.js.map +1 -1
  165. package/esm/form/radio/useRadio.d.ts +1 -1
  166. package/esm/form/search/Search.js +1 -1
  167. package/esm/form/search/Search.js.map +1 -1
  168. package/esm/form/search/SearchButton.js +1 -1
  169. package/esm/form/search/SearchButton.js.map +1 -1
  170. package/esm/grid/Cell.js +1 -1
  171. package/esm/grid/Cell.js.map +1 -1
  172. package/esm/grid/Grid.js +1 -1
  173. package/esm/grid/Grid.js.map +1 -1
  174. package/esm/guide-panel/GuidePanel.js +1 -1
  175. package/esm/guide-panel/GuidePanel.js.map +1 -1
  176. package/esm/internal-header/InternalHeader.js.map +1 -1
  177. package/esm/internal-header/InternalHeaderButton.js +1 -1
  178. package/esm/internal-header/InternalHeaderButton.js.map +1 -1
  179. package/esm/internal-header/InternalHeaderTitle.js +1 -1
  180. package/esm/internal-header/InternalHeaderTitle.js.map +1 -1
  181. package/esm/internal-header/InternalHeaderUser.js +1 -1
  182. package/esm/internal-header/InternalHeaderUser.js.map +1 -1
  183. package/esm/internal-header/InternalHeaderUserButton.js +1 -1
  184. package/esm/internal-header/InternalHeaderUserButton.js.map +1 -1
  185. package/esm/layout/bleed/Bleed.js +1 -1
  186. package/esm/layout/bleed/Bleed.js.map +1 -1
  187. package/esm/layout/box/Box.d.ts +1 -1
  188. package/esm/layout/content-container/ContentContainer.js +1 -1
  189. package/esm/layout/content-container/ContentContainer.js.map +1 -1
  190. package/esm/layout/grid/HGrid.js +1 -1
  191. package/esm/layout/grid/HGrid.js.map +1 -1
  192. package/esm/layout/page/Page.d.ts +2 -2
  193. package/esm/layout/page/Page.js.map +1 -1
  194. package/esm/layout/page/parts/PageBlock.d.ts +6 -5
  195. package/esm/layout/page/parts/PageBlock.js +1 -1
  196. package/esm/layout/page/parts/PageBlock.js.map +1 -1
  197. package/esm/layout/responsive/Responsive.js.map +1 -1
  198. package/esm/layout/sidemal-test/AvatarPanel.js +1 -1
  199. package/esm/layout/sidemal-test/AvatarPanel.js.map +1 -1
  200. package/esm/layout/sidemal-test/Content.js +4 -4
  201. package/esm/layout/sidemal-test/Content.js.map +1 -1
  202. package/esm/layout/sidemal-test/Filter.js +1 -1
  203. package/esm/layout/sidemal-test/Filter.js.map +1 -1
  204. package/esm/layout/sidemal-test/Header.js +1 -1
  205. package/esm/layout/sidemal-test/Header.js.map +1 -1
  206. package/esm/layout/sidemal-test/Intro.js +2 -2
  207. package/esm/layout/sidemal-test/Intro.js.map +1 -1
  208. package/esm/layout/sidemal-test/content-box/ContentBox.js.map +1 -1
  209. package/esm/layout/stack/HStack.js.map +1 -1
  210. package/esm/layout/stack/Stack.js.map +1 -1
  211. package/esm/layout/stack/VStack.js.map +1 -1
  212. package/esm/layout/utilities/types.d.ts +2 -2
  213. package/esm/link-panel/LinkPanel.d.ts +2 -2
  214. package/esm/link-panel/LinkPanel.js +3 -3
  215. package/esm/link-panel/LinkPanel.js.map +1 -1
  216. package/esm/link-panel/LinkPanelDescription.js +1 -1
  217. package/esm/link-panel/LinkPanelDescription.js.map +1 -1
  218. package/esm/link-panel/LinkPanelTitle.js +1 -1
  219. package/esm/link-panel/LinkPanelTitle.js.map +1 -1
  220. package/esm/loader/Loader.js.map +1 -1
  221. package/esm/modal/ModalBody.js +1 -1
  222. package/esm/modal/ModalBody.js.map +1 -1
  223. package/esm/modal/ModalFooter.js +1 -1
  224. package/esm/modal/ModalFooter.js.map +1 -1
  225. package/esm/modal/ModalHeader.js +1 -1
  226. package/esm/modal/ModalHeader.js.map +1 -1
  227. package/esm/pagination/Pagination.js.map +1 -1
  228. package/esm/pagination/PaginationItem.js +1 -1
  229. package/esm/pagination/PaginationItem.js.map +1 -1
  230. package/esm/panel/Panel.js +1 -1
  231. package/esm/panel/Panel.js.map +1 -1
  232. package/esm/popover/Popover.js.map +1 -1
  233. package/esm/popover/PopoverContent.js +1 -1
  234. package/esm/popover/PopoverContent.js.map +1 -1
  235. package/esm/read-more/ReadMore.d.ts +4 -0
  236. package/esm/read-more/ReadMore.js +13 -11
  237. package/esm/read-more/ReadMore.js.map +1 -1
  238. package/esm/skeleton/Skeleton.js +1 -1
  239. package/esm/skeleton/Skeleton.js.map +1 -1
  240. package/esm/table/Body.js +1 -1
  241. package/esm/table/Body.js.map +1 -1
  242. package/esm/table/ColumnHeader.js +1 -1
  243. package/esm/table/ColumnHeader.js.map +1 -1
  244. package/esm/table/DataCell.js +1 -1
  245. package/esm/table/DataCell.js.map +1 -1
  246. package/esm/table/ExpandableRow.js +15 -14
  247. package/esm/table/ExpandableRow.js.map +1 -1
  248. package/esm/table/Header.js +1 -1
  249. package/esm/table/Header.js.map +1 -1
  250. package/esm/table/Row.js +1 -1
  251. package/esm/table/Row.js.map +1 -1
  252. package/esm/tabs/TabList.js +1 -1
  253. package/esm/tabs/TabList.js.map +1 -1
  254. package/esm/tabs/Tabs.js +1 -1
  255. package/esm/tabs/Tabs.js.map +1 -1
  256. package/esm/tag/Tag.js +1 -1
  257. package/esm/tag/Tag.js.map +1 -1
  258. package/esm/timeline/AxisLabels.js +1 -1
  259. package/esm/timeline/AxisLabels.js.map +1 -1
  260. package/esm/timeline/TimelineRow.js +2 -2
  261. package/esm/timeline/TimelineRow.js.map +1 -1
  262. package/esm/timeline/hooks/useTimelineRows.js +5 -3
  263. package/esm/timeline/hooks/useTimelineRows.js.map +1 -1
  264. package/esm/timeline/utils/timeline.js +1 -1
  265. package/esm/timeline/utils/timeline.js.map +1 -1
  266. package/esm/timeline/zoom/ZoomButton.js +1 -1
  267. package/esm/timeline/zoom/ZoomButton.js.map +1 -1
  268. package/esm/toggle-group/ToggleGroup.js +1 -1
  269. package/esm/toggle-group/ToggleGroup.js.map +1 -1
  270. package/esm/tooltip/Tooltip.d.ts +4 -0
  271. package/esm/tooltip/Tooltip.js +13 -8
  272. package/esm/tooltip/Tooltip.js.map +1 -1
  273. package/esm/typography/BodyLong.js +1 -1
  274. package/esm/typography/BodyLong.js.map +1 -1
  275. package/esm/typography/ErrorMessage.js +1 -1
  276. package/esm/typography/ErrorMessage.js.map +1 -1
  277. package/esm/typography/Ingress.js +1 -1
  278. package/esm/typography/Ingress.js.map +1 -1
  279. package/esm/util/RandomIcon.js +1 -1
  280. package/esm/util/RandomIcon.js.map +1 -1
  281. package/esm/util/hooks/useCallbackRef.d.ts +7 -0
  282. package/esm/util/hooks/useCallbackRef.js +15 -0
  283. package/esm/util/hooks/useCallbackRef.js.map +1 -0
  284. package/esm/util/hooks/useControllableState.d.ts +9 -0
  285. package/esm/util/hooks/useControllableState.js +22 -0
  286. package/esm/util/hooks/useControllableState.js.map +1 -0
  287. package/esm/util/mergeRefs.js.map +1 -1
  288. package/package.json +3 -3
  289. package/src/accordion/Accordion.tsx +5 -5
  290. package/src/accordion/AccordionContent.tsx +3 -3
  291. package/src/accordion/AccordionHeader.tsx +3 -3
  292. package/src/accordion/AccordionItem.tsx +21 -21
  293. package/src/accordion/accordion.stories.tsx +8 -5
  294. package/src/alert/Alert.tsx +8 -8
  295. package/src/alert/alert.stories.tsx +7 -7
  296. package/src/button/Button.tsx +4 -4
  297. package/src/button/button.stories.tsx +1 -1
  298. package/src/chat/Bubble.tsx +4 -4
  299. package/src/chat/Chat.tsx +5 -5
  300. package/src/chat/chat.stories.tsx +1 -1
  301. package/src/chips/Chips.tsx +4 -4
  302. package/src/chips/Removable.tsx +4 -4
  303. package/src/chips/Toggle.tsx +3 -3
  304. package/src/chips/chips.stories.tsx +5 -5
  305. package/src/copybutton/CopyButton.tsx +6 -6
  306. package/src/copybutton/copy-button.stories.tsx +3 -3
  307. package/src/date/context/useSharedMonthContext.tsx +1 -1
  308. package/src/date/datepicker/DatePicker.tsx +2 -2
  309. package/src/date/datepicker/DatePickerStandalone.tsx +2 -2
  310. package/src/date/datepicker/datepicker.stories.tsx +2 -2
  311. package/src/date/datepicker/parts/Caption.tsx +2 -3
  312. package/src/date/datepicker/parts/DropdownCaption.tsx +2 -2
  313. package/src/date/datepicker/parts/HeadRow.tsx +1 -1
  314. package/src/date/datepicker/parts/Row.tsx +3 -3
  315. package/src/date/hooks/useDatepicker.tsx +7 -7
  316. package/src/date/hooks/useMonthPicker.tsx +7 -7
  317. package/src/date/hooks/useRangeDatepicker.test.tsx +2 -2
  318. package/src/date/hooks/useRangeDatepicker.tsx +28 -28
  319. package/src/date/monthpicker/MonthButton.tsx +1 -1
  320. package/src/date/monthpicker/MonthCaption.tsx +7 -7
  321. package/src/date/monthpicker/MonthPicker.tsx +3 -3
  322. package/src/date/monthpicker/MonthPickerStandalone.tsx +3 -3
  323. package/src/date/monthpicker/MonthSelector.tsx +1 -1
  324. package/src/date/parts/DateInput.tsx +6 -6
  325. package/src/date/utils/__tests__/check-dates.test.ts +3 -3
  326. package/src/date/utils/__tests__/format-dates.test.ts +7 -7
  327. package/src/date/utils/__tests__/get-initial-year.test.ts +14 -14
  328. package/src/date/utils/__tests__/get-month-weeks.test.ts +0 -1
  329. package/src/date/utils/__tests__/is-match.test.ts +4 -4
  330. package/src/date/utils/__tests__/parse-dates.test.ts +2 -2
  331. package/src/date/utils/check-dates.ts +2 -2
  332. package/src/date/utils/dates-disabled.ts +1 -1
  333. package/src/date/utils/format-date.ts +1 -1
  334. package/src/date/utils/get-dates.ts +1 -1
  335. package/src/date/utils/get-month-weeks.ts +6 -6
  336. package/src/date/utils/is-match.ts +2 -3
  337. package/src/date/utils/labels.ts +1 -1
  338. package/src/date/utils/navigation.ts +18 -18
  339. package/src/date/utils/parse-date.ts +8 -8
  340. package/src/dropdown/Dropdown.tsx +14 -11
  341. package/src/dropdown/Menu/Divider.tsx +1 -1
  342. package/src/dropdown/Menu/GroupedList/GroupedHeading.tsx +2 -2
  343. package/src/dropdown/Menu/GroupedList/GroupedItem.tsx +1 -1
  344. package/src/dropdown/Menu/GroupedList/index.tsx +1 -1
  345. package/src/dropdown/Menu/List/Item.tsx +1 -1
  346. package/src/dropdown/Menu/index.tsx +1 -1
  347. package/src/dropdown/dropdown.stories.tsx +1 -1
  348. package/src/expansion-card/ExpansionCard.tsx +3 -3
  349. package/src/expansion-card/ExpansionCardContent.tsx +1 -1
  350. package/src/expansion-card/ExpansionCardDescription.tsx +1 -1
  351. package/src/expansion-card/ExpansionCardHeader.tsx +2 -2
  352. package/src/expansion-card/ExpansionCardTitle.tsx +2 -2
  353. package/src/expansion-card/expansion-card.stories.tsx +1 -1
  354. package/src/form/ConfirmationPanel.test.tsx +1 -1
  355. package/src/form/ConfirmationPanel.tsx +2 -2
  356. package/src/form/Fieldset/Fieldset.tsx +2 -2
  357. package/src/form/ReadOnlyIcon.tsx +1 -1
  358. package/src/form/Select.tsx +6 -6
  359. package/src/form/Switch.tsx +4 -4
  360. package/src/form/TextField.tsx +4 -4
  361. package/src/form/Textarea.tsx +4 -4
  362. package/src/form/checkbox/Checkbox.test.tsx +8 -8
  363. package/src/form/checkbox/Checkbox.tsx +3 -3
  364. package/src/form/checkbox/CheckboxGroup.tsx +4 -4
  365. package/src/form/checkbox/useCheckbox.ts +3 -3
  366. package/src/form/combobox/Combobox.tsx +8 -8
  367. package/src/form/combobox/ComboboxProvider.tsx +3 -3
  368. package/src/form/combobox/ComboboxWrapper.tsx +1 -1
  369. package/src/form/combobox/FilteredOptions/FilteredOptions.tsx +6 -6
  370. package/src/form/combobox/FilteredOptions/filteredOptionsContext.tsx +18 -18
  371. package/src/form/combobox/FilteredOptions/useVirtualFocus.ts +5 -5
  372. package/src/form/combobox/Input/Input.tsx +13 -13
  373. package/src/form/combobox/Input/inputContext.tsx +6 -6
  374. package/src/form/combobox/SelectedOptions/SelectedOptions.tsx +1 -1
  375. package/src/form/combobox/SelectedOptions/selectedOptionsContext.tsx +9 -9
  376. package/src/form/combobox/ToggleListButton.tsx +1 -2
  377. package/src/form/combobox/combobox.stories.tsx +8 -8
  378. package/src/form/combobox/combobox.test.tsx +14 -12
  379. package/src/form/combobox/customOptionsContext.tsx +6 -6
  380. package/src/form/combobox/types.ts +2 -2
  381. package/src/form/error-summary/ErrorSummary.tsx +6 -6
  382. package/src/form/error-summary/ErrorSummaryItem.tsx +2 -2
  383. package/src/form/error-summary/error-summary.stories.tsx +2 -1
  384. package/src/form/radio/Radio.test.tsx +1 -1
  385. package/src/form/radio/Radio.tsx +1 -1
  386. package/src/form/radio/RadioGroup.tsx +3 -3
  387. package/src/form/radio/useRadio.ts +1 -1
  388. package/src/form/search/Search.tsx +6 -6
  389. package/src/form/search/SearchButton.tsx +2 -2
  390. package/src/form/search/search.stories.tsx +1 -1
  391. package/src/form/stories/fieldset.stories.tsx +3 -2
  392. package/src/form/stories/select.stories.tsx +2 -1
  393. package/src/form/stories/text-field.stories.tsx +2 -1
  394. package/src/form/useFormField.ts +3 -3
  395. package/src/grid/Cell.tsx +3 -3
  396. package/src/grid/Grid.tsx +2 -2
  397. package/src/grid/grid.stories.tsx +1 -1
  398. package/src/guide-panel/GuidePanel.tsx +2 -2
  399. package/src/guide-panel/guidepanel.stories.tsx +1 -1
  400. package/src/help-text/HelpText.tsx +2 -2
  401. package/src/internal-header/InternalHeader.tsx +1 -1
  402. package/src/internal-header/InternalHeaderButton.tsx +1 -1
  403. package/src/internal-header/InternalHeaderTitle.tsx +1 -1
  404. package/src/internal-header/InternalHeaderUser.tsx +1 -1
  405. package/src/internal-header/InternalHeaderUserButton.tsx +1 -1
  406. package/src/internal-header/header.stories.tsx +3 -3
  407. package/src/layout/bleed/Bleed.tsx +7 -7
  408. package/src/layout/box/Box.stories.tsx +4 -4
  409. package/src/layout/box/Box.tsx +7 -7
  410. package/src/layout/content-container/ContentContainer.tsx +1 -1
  411. package/src/layout/grid/HGrid.tsx +4 -4
  412. package/src/layout/page/Page.stories.tsx +1 -1
  413. package/src/layout/page/Page.tsx +4 -4
  414. package/src/layout/page/parts/PageBlock.tsx +8 -7
  415. package/src/layout/responsive/Responsive.tsx +6 -6
  416. package/src/layout/responsive/hide.stories.tsx +1 -1
  417. package/src/layout/responsive/show.stories.tsx +1 -1
  418. package/src/layout/sidemal-test/AvatarPanel.tsx +1 -1
  419. package/src/layout/sidemal-test/Content.tsx +4 -4
  420. package/src/layout/sidemal-test/Filter.tsx +1 -1
  421. package/src/layout/sidemal-test/Header.tsx +1 -1
  422. package/src/layout/sidemal-test/Intro.tsx +2 -2
  423. package/src/layout/sidemal-test/content-box/ContentBox.tsx +6 -6
  424. package/src/layout/sidemal-test/navno-sidemal.stories.tsx +1 -1
  425. package/src/layout/stack/HStack.tsx +1 -1
  426. package/src/layout/stack/Stack.tsx +3 -3
  427. package/src/layout/stack/VStack.tsx +1 -1
  428. package/src/layout/stack/stack.stories.tsx +2 -2
  429. package/src/layout/utilities/css.ts +6 -6
  430. package/src/layout/utilities/types.ts +2 -2
  431. package/src/link/Link.tsx +2 -2
  432. package/src/link/link.stories.tsx +1 -1
  433. package/src/link-panel/LinkPanel.tsx +6 -7
  434. package/src/link-panel/LinkPanelDescription.tsx +1 -1
  435. package/src/link-panel/LinkPanelTitle.tsx +2 -2
  436. package/src/list/List.tsx +2 -2
  437. package/src/list/ListItem.tsx +2 -2
  438. package/src/list/list.stories.tsx +2 -2
  439. package/src/loader/Loader.tsx +4 -4
  440. package/src/loader/loader.stories.tsx +1 -0
  441. package/src/modal/Modal.test.tsx +4 -4
  442. package/src/modal/Modal.tsx +2 -2
  443. package/src/modal/ModalBody.tsx +2 -2
  444. package/src/modal/ModalFooter.tsx +2 -2
  445. package/src/modal/ModalHeader.tsx +2 -2
  446. package/src/modal/ModalUtils.ts +2 -2
  447. package/src/modal/dialog-polyfill.ts +16 -16
  448. package/src/pagination/Pagination.tsx +5 -6
  449. package/src/pagination/PaginationItem.tsx +3 -3
  450. package/src/pagination/steps.test.ts +8 -8
  451. package/src/panel/Panel.tsx +3 -3
  452. package/src/panel/panel.stories.tsx +2 -1
  453. package/src/popover/Popover.test.tsx +7 -7
  454. package/src/popover/Popover.tsx +8 -8
  455. package/src/popover/PopoverContent.tsx +2 -2
  456. package/src/provider/Provider.tsx +1 -1
  457. package/src/read-more/ReadMore.tsx +19 -13
  458. package/src/read-more/readmore.stories.tsx +4 -0
  459. package/src/skeleton/Skeleton.tsx +4 -4
  460. package/src/stepper/Step.tsx +2 -2
  461. package/src/stepper/Stepper.tsx +3 -3
  462. package/src/table/Body.tsx +1 -1
  463. package/src/table/ColumnHeader.tsx +2 -2
  464. package/src/table/DataCell.tsx +2 -2
  465. package/src/table/ExpandableRow.tsx +19 -17
  466. package/src/table/Header.tsx +1 -1
  467. package/src/table/HeaderCell.tsx +1 -1
  468. package/src/table/Row.tsx +2 -2
  469. package/src/table/Table.tsx +2 -2
  470. package/src/table/stories/table-async.stories.tsx +4 -4
  471. package/src/table/stories/table.stories.tsx +1 -1
  472. package/src/tabs/Tab.tsx +3 -3
  473. package/src/tabs/TabList.tsx +4 -4
  474. package/src/tabs/TabPanel.tsx +1 -1
  475. package/src/tabs/Tabs.stories.tsx +1 -1
  476. package/src/tabs/Tabs.tsx +4 -4
  477. package/src/tag/Tag.tsx +3 -3
  478. package/src/tag/tag.stories.tsx +1 -1
  479. package/src/timeline/AxisLabels.tsx +9 -9
  480. package/src/timeline/Pin.tsx +2 -2
  481. package/src/timeline/Timeline.tsx +7 -7
  482. package/src/timeline/TimelineRow.tsx +5 -5
  483. package/src/timeline/hooks/useTimelineContext.tsx +1 -1
  484. package/src/timeline/hooks/useTimelineRows.ts +18 -19
  485. package/src/timeline/period/ClickablePeriod.tsx +4 -4
  486. package/src/timeline/period/NonClickablePeriod.tsx +1 -1
  487. package/src/timeline/period/index.tsx +1 -1
  488. package/src/timeline/timeline.stories.tsx +2 -2
  489. package/src/timeline/utils/calc.ts +2 -2
  490. package/src/timeline/utils/filter.ts +2 -2
  491. package/src/timeline/utils/period.ts +2 -2
  492. package/src/timeline/utils/timeline.ts +1 -1
  493. package/src/timeline/zoom/ZoomButton.tsx +3 -3
  494. package/src/timeline/zoom/index.tsx +1 -1
  495. package/src/toggle-group/ToggleGroup.stories.tsx +2 -2
  496. package/src/toggle-group/ToggleGroup.tsx +5 -5
  497. package/src/toggle-group/ToggleItem.tsx +1 -1
  498. package/src/toggle-group/context.ts +1 -1
  499. package/src/tooltip/Tooltip.test.tsx +10 -10
  500. package/src/tooltip/Tooltip.tsx +20 -11
  501. package/src/tooltip/tooltip.stories.tsx +1 -1
  502. package/src/typography/BodyLong.tsx +4 -4
  503. package/src/typography/BodyShort.tsx +3 -3
  504. package/src/typography/Detail.tsx +3 -3
  505. package/src/typography/ErrorMessage.tsx +3 -3
  506. package/src/typography/Heading.tsx +3 -3
  507. package/src/typography/Ingress.tsx +1 -1
  508. package/src/typography/Label.tsx +3 -3
  509. package/src/typography/stories/heading.stories.tsx +1 -2
  510. package/src/util/AnimateHeight.tsx +1 -1
  511. package/src/util/OverridableComponent.ts +1 -1
  512. package/src/util/RandomIcon.tsx +1 -1
  513. package/src/util/Slot.tsx +3 -3
  514. package/src/util/TextareaAutoSize.tsx +4 -4
  515. package/src/util/__tests__/Slot.test.tsx +11 -11
  516. package/src/util/hooks/useCallbackRef.ts +20 -0
  517. package/src/util/hooks/useControllableState.ts +40 -0
  518. package/src/util/mergeRefs.tsx +2 -1
  519. package/src/util/omit.ts +1 -1
  520. package/src/util/useEventListener.ts +1 -1
  521. package/src/util/useMedia.ts +1 -1
@@ -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,8 @@
1
+ import { expect, jest } from "@storybook/jest";
1
2
  import { Meta, StoryFn, StoryObj } from "@storybook/react";
2
- import React, { useState, useId, useMemo } from "react";
3
3
  import { userEvent, within } from "@storybook/testing-library";
4
- import { Chips, UNSAFE_Combobox, ComboboxProps, TextField } from "../../index";
5
- import { expect, jest } from "@storybook/jest";
4
+ import React, { useId, useMemo, useState } from "react";
5
+ import { Chips, ComboboxProps, TextField, UNSAFE_Combobox } from "../../index";
6
6
 
7
7
  export default {
8
8
  title: "ds-react/Combobox",
@@ -207,11 +207,11 @@ export const Controlled: StoryFn<{
207
207
  const id = useId();
208
208
  const [value, setValue] = useState(props.value);
209
209
  const [selectedOptions, setSelectedOptions] = useState(
210
- props.initialSelectedOptions
210
+ props.initialSelectedOptions,
211
211
  );
212
212
  const filteredOptions = useMemo(
213
213
  () => props.options.filter((option) => option.includes(value)),
214
- [props.options, value]
214
+ [props.options, value],
215
215
  );
216
216
 
217
217
  const onToggleSelected = (option: string, isSelected: boolean) => {
@@ -536,20 +536,20 @@ export const TestHoverAndFocusSwitching: StoryObject = {
536
536
  await sleep(250);
537
537
  const bananaOption = canvas.getByRole("option", { name: "banana" });
538
538
  expect(getInput().getAttribute("aria-activedescendant")).toBe(
539
- bananaOption.getAttribute("id")
539
+ bananaOption.getAttribute("id"),
540
540
  );
541
541
 
542
542
  userEvent.keyboard("{ArrowDown}");
543
543
  await sleep(250);
544
544
  const appleOption = canvas.getByRole("option", { name: "apple" });
545
545
  expect(getInput().getAttribute("aria-activedescendant")).toBe(
546
- appleOption.getAttribute("id")
546
+ appleOption.getAttribute("id"),
547
547
  );
548
548
 
549
549
  userEvent.hover(bananaOption);
550
550
  await sleep(250);
551
551
  expect(getInput().getAttribute("aria-activedescendant")).toBe(
552
- bananaOption.getAttribute("id")
552
+ bananaOption.getAttribute("id"),
553
553
  );
554
554
  },
555
555
  };
@@ -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
  });
@@ -1,4 +1,4 @@
1
- import React, { useState, useCallback, createContext, useContext } from "react";
1
+ import React, { createContext, useCallback, useContext, useState } from "react";
2
2
  import { useInputContext } from "./Input/inputContext";
3
3
 
4
4
  type CustomOptionsContextType = {
@@ -9,7 +9,7 @@ type CustomOptionsContextType = {
9
9
  };
10
10
 
11
11
  const CustomOptionsContext = createContext<CustomOptionsContextType>(
12
- {} as CustomOptionsContextType
12
+ {} as CustomOptionsContextType,
13
13
  );
14
14
 
15
15
  export const CustomOptionsProvider = ({
@@ -26,11 +26,11 @@ export const CustomOptionsProvider = ({
26
26
  const removeCustomOption = useCallback(
27
27
  (option: string) => {
28
28
  setCustomOptions((prevCustomOptions) =>
29
- prevCustomOptions.filter((o) => o !== option)
29
+ prevCustomOptions.filter((o) => o !== option),
30
30
  );
31
31
  focusInput();
32
32
  },
33
- [focusInput, setCustomOptions]
33
+ [focusInput, setCustomOptions],
34
34
  );
35
35
 
36
36
  const addCustomOption = useCallback(
@@ -42,7 +42,7 @@ export const CustomOptionsProvider = ({
42
42
  }
43
43
  focusInput();
44
44
  },
45
- [focusInput, isMultiSelect, setCustomOptions]
45
+ [focusInput, isMultiSelect, setCustomOptions],
46
46
  );
47
47
 
48
48
  const customOptionsState = {
@@ -63,7 +63,7 @@ export const useCustomOptionsContext = () => {
63
63
  const context = useContext(CustomOptionsContext);
64
64
  if (!context) {
65
65
  throw new Error(
66
- "useCustomOptionsContext must be used within a CustomOptionsProvider"
66
+ "useCustomOptionsContext must be used within a CustomOptionsProvider",
67
67
  );
68
68
  }
69
69
  return context;
@@ -68,7 +68,7 @@ export interface ComboboxProps
68
68
  */
69
69
  onChange?: (
70
70
  event: ChangeEvent<HTMLInputElement> | null,
71
- value?: string
71
+ value?: string,
72
72
  ) => void;
73
73
  /**
74
74
  * Callback function triggered whenever the input field is cleared
@@ -88,7 +88,7 @@ export interface ComboboxProps
88
88
  onToggleSelected?: (
89
89
  option: string,
90
90
  isSelected: boolean,
91
- isCustomOption: boolean
91
+ isCustomOption: boolean,
92
92
  ) => void;
93
93
  /**
94
94
  * List of selected options.
@@ -1,8 +1,8 @@
1
- import React, { forwardRef, HTMLAttributes, isValidElement } from "react";
2
1
  import cl from "clsx";
3
- import { Heading, BodyShort } from "../../typography";
4
- import ErrorSummaryItem, { ErrorSummaryItemType } from "./ErrorSummaryItem";
2
+ import React, { HTMLAttributes, forwardRef, isValidElement } from "react";
3
+ import { BodyShort, Heading } from "../../typography";
5
4
  import { useId } from "../../util";
5
+ import ErrorSummaryItem, { ErrorSummaryItemType } from "./ErrorSummaryItem";
6
6
 
7
7
  export interface ErrorSummaryProps extends HTMLAttributes<HTMLDivElement> {
8
8
  /**
@@ -72,7 +72,7 @@ export const ErrorSummary = forwardRef<HTMLDivElement, ErrorSummaryProps>(
72
72
  heading,
73
73
  ...rest
74
74
  },
75
- ref
75
+ ref,
76
76
  ) => {
77
77
  const headingId = useId();
78
78
 
@@ -83,7 +83,7 @@ export const ErrorSummary = forwardRef<HTMLDivElement, ErrorSummaryProps>(
83
83
  className={cl(
84
84
  className,
85
85
  "navds-error-summary",
86
- `navds-error-summary--${size}`
86
+ `navds-error-summary--${size}`,
87
87
  )}
88
88
  tabIndex={-1}
89
89
  aria-live="polite"
@@ -108,7 +108,7 @@ export const ErrorSummary = forwardRef<HTMLDivElement, ErrorSummaryProps>(
108
108
  </BodyShort>
109
109
  </section>
110
110
  );
111
- }
111
+ },
112
112
  ) as ErrorSummaryComponent;
113
113
 
114
114
  ErrorSummary.Item = ErrorSummaryItem;
@@ -1,5 +1,5 @@
1
- import React, { forwardRef } from "react";
2
1
  import cl from "clsx";
2
+ import React, { forwardRef } from "react";
3
3
  import { OverridableComponent } from "../../util";
4
4
 
5
5
  export interface ErrorSummaryItemProps
@@ -30,7 +30,7 @@ export const ErrorSummaryItem: ErrorSummaryItemType = forwardRef(
30
30
  {children}
31
31
  </Component>
32
32
  );
33
- }
33
+ },
34
34
  );
35
35
 
36
36
  export default ErrorSummaryItem;
@@ -1,6 +1,7 @@
1
- import React from "react";
2
1
  import { Meta } from "@storybook/react";
2
+ import React from "react";
3
3
  import { ErrorSummary } from "..";
4
+
4
5
  export default {
5
6
  title: "ds-react/Errorsummary",
6
7
  component: ErrorSummary,
@@ -1,7 +1,7 @@
1
- import React from "react";
2
1
  import { render, screen } from "@testing-library/react";
3
2
  import userEvent from "@testing-library/user-event";
4
3
  import faker from "faker";
4
+ import React from "react";
5
5
  import { Radio, RadioGroup } from ".";
6
6
 
7
7
  const value1 = faker.datatype.string();
@@ -27,7 +27,7 @@ export const Radio = forwardRef<HTMLInputElement, RadioProps>((props, ref) => {
27
27
  !!props["aria-labelledby"] && props["aria-labelledby"],
28
28
  {
29
29
  [descriptionId]: props.description,
30
- }
30
+ },
31
31
  )}
32
32
  className="navds-radio__input"
33
33
  ref={ref}
@@ -68,7 +68,7 @@ export const RadioGroup = forwardRef<HTMLFieldSetElement, RadioGroupProps>(
68
68
  readOnly,
69
69
  ...rest
70
70
  },
71
- ref
71
+ ref,
72
72
  ) => {
73
73
  const fieldset = useContext(FieldsetContext);
74
74
 
@@ -82,7 +82,7 @@ export const RadioGroup = forwardRef<HTMLFieldSetElement, RadioGroupProps>(
82
82
  className={cl(
83
83
  className,
84
84
  "navds-radio-group",
85
- `navds-radio-group--${rest.size ?? fieldset?.size ?? "medium"}`
85
+ `navds-radio-group--${rest.size ?? fieldset?.size ?? "medium"}`,
86
86
  )}
87
87
  nativeReadOnly={false}
88
88
  >
@@ -99,7 +99,7 @@ export const RadioGroup = forwardRef<HTMLFieldSetElement, RadioGroupProps>(
99
99
  </RadioGroupContext.Provider>
100
100
  </Fieldset>
101
101
  );
102
- }
102
+ },
103
103
  );
104
104
 
105
105
  export default RadioGroup;
@@ -12,7 +12,7 @@ export const useRadio = (props: RadioProps) => {
12
12
 
13
13
  const { inputProps, readOnly, ...rest } = useFormField(
14
14
  omit(props, ["description"]),
15
- "radio"
15
+ "radio",
16
16
  );
17
17
 
18
18
  if (!radioGroup) {
@@ -1,4 +1,3 @@
1
- import { MagnifyingGlassIcon, XMarkIcon } from "@navikt/aksel-icons";
2
1
  import cl from "clsx";
3
2
  import React, {
4
3
  InputHTMLAttributes,
@@ -8,6 +7,7 @@ import React, {
8
7
  useRef,
9
8
  useState,
10
9
  } from "react";
10
+ import { MagnifyingGlassIcon, XMarkIcon } from "@navikt/aksel-icons";
11
11
  import { BodyShort, ErrorMessage, Label } from "../../typography";
12
12
  import { mergeRefs, omit } from "../../util";
13
13
  import { FormFieldProps, useFormField } from "../useFormField";
@@ -127,7 +127,7 @@ export const Search = forwardRef<HTMLInputElement, SearchProps>(
127
127
  value === undefined && setInternalValue(v);
128
128
  onChange?.(v);
129
129
  },
130
- [onChange, value]
130
+ [onChange, value],
131
131
  );
132
132
 
133
133
  const handleClear = useCallback(
@@ -136,7 +136,7 @@ export const Search = forwardRef<HTMLInputElement, SearchProps>(
136
136
  handleChange("");
137
137
  searchRef.current && searchRef.current?.focus?.();
138
138
  },
139
- [handleChange, onClear]
139
+ [handleChange, onClear],
140
140
  );
141
141
 
142
142
  const handleClick = () => {
@@ -166,7 +166,7 @@ export const Search = forwardRef<HTMLInputElement, SearchProps>(
166
166
  "navds-search--error": hasError,
167
167
  "navds-search--disabled": !!inputProps.disabled,
168
168
  "navds-search--with-size": !!htmlSize,
169
- }
169
+ },
170
170
  )}
171
171
  >
172
172
  <Label
@@ -212,7 +212,7 @@ export const Search = forwardRef<HTMLInputElement, SearchProps>(
212
212
  `navds-search__input--${variant}`,
213
213
  "navds-text-field__input",
214
214
  "navds-body-short",
215
- `navds-body-short--${size}`
215
+ `navds-body-short--${size}`,
216
216
  )}
217
217
  {...(htmlSize ? { size: Number(htmlSize) } : {})}
218
218
  />
@@ -252,7 +252,7 @@ export const Search = forwardRef<HTMLInputElement, SearchProps>(
252
252
  </div>
253
253
  </div>
254
254
  );
255
- }
255
+ },
256
256
  ) as SearchComponent;
257
257
 
258
258
  Search.Button = SearchButton;
@@ -1,6 +1,6 @@
1
- import { MagnifyingGlassIcon } from "@navikt/aksel-icons";
2
1
  import cl from "clsx";
3
2
  import React, { forwardRef, useContext } from "react";
3
+ import { MagnifyingGlassIcon } from "@navikt/aksel-icons";
4
4
  import { Button, ButtonProps } from "../../button";
5
5
  import { SearchContext } from "./context";
6
6
 
@@ -49,7 +49,7 @@ const SearchButton: SearchButtonType = forwardRef(
49
49
  {children}
50
50
  </Button>
51
51
  );
52
- }
52
+ },
53
53
  );
54
54
 
55
55
  export default SearchButton;
@@ -1,7 +1,7 @@
1
1
  import { Meta } from "@storybook/react";
2
2
  import React, { useState } from "react";
3
-
4
3
  import { Search } from "../index";
4
+
5
5
  export default {
6
6
  title: "ds-react/Search",
7
7
  component: Search,
@@ -1,7 +1,8 @@
1
- import React from "react";
2
- import { Fieldset } from "../index";
3
1
  import { Meta } from "@storybook/react";
2
+ import React from "react";
4
3
  import { TextField } from "../../index";
4
+ import { Fieldset } from "../index";
5
+
5
6
  export default {
6
7
  title: "ds-react/Fieldset",
7
8
  component: Fieldset,
@@ -1,6 +1,7 @@
1
+ import { Meta } from "@storybook/react";
1
2
  import React from "react";
2
3
  import { Select } from "../index";
3
- import { Meta } from "@storybook/react";
4
+
4
5
  export default {
5
6
  title: "ds-react/Select",
6
7
  component: Select,
@@ -1,6 +1,7 @@
1
+ import { Meta } from "@storybook/react";
1
2
  import React from "react";
2
3
  import { TextField } from "../index";
3
- import { Meta } from "@storybook/react";
4
+
4
5
  export default {
5
6
  title: "ds-react/TextField",
6
7
  component: TextField,
@@ -55,7 +55,7 @@ export interface FormFieldType {
55
55
  */
56
56
  export const useFormField = (
57
57
  props: FormFieldProps,
58
- prefix: string
58
+ prefix: string,
59
59
  ): FormFieldType => {
60
60
  const { size, error, errorId: propErrorId } = props;
61
61
 
@@ -80,10 +80,10 @@ export const useFormField = (
80
80
 
81
81
  if ((props as any)?.required && process.env.NODE_ENV !== "production") {
82
82
  console.warn(
83
- "Aksel: Use of 'required' in form-elements is heavily discuouraged. Docs about why here:"
83
+ "Aksel: Use of 'required' in form-elements is heavily discuouraged. Docs about why here:",
84
84
  );
85
85
  console.warn(
86
- "https://aksel.nav.no/god-praksis/artikler/obligatoriske-og-valgfrie-skjemafelter#h3bfe00453471"
86
+ "https://aksel.nav.no/god-praksis/artikler/obligatoriske-og-valgfrie-skjemafelter#h3bfe00453471",
87
87
  );
88
88
  }
89
89
 
package/src/grid/Cell.tsx CHANGED
@@ -1,5 +1,5 @@
1
- import React, { forwardRef, HTMLAttributes } from "react";
2
1
  import cl from "clsx";
2
+ import React, { HTMLAttributes, forwardRef } from "react";
3
3
 
4
4
  type Column = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
5
5
  export interface CellProps extends HTMLAttributes<HTMLDivElement> {
@@ -41,13 +41,13 @@ export const Cell = forwardRef<HTMLDivElement, CellProps>(
41
41
  sm && `navds-grid__cell--sm-${sm}`,
42
42
  md && `navds-grid__cell--md-${md}`,
43
43
  lg && `navds-grid__cell--lg-${lg}`,
44
- className
44
+ className,
45
45
  )}
46
46
  >
47
47
  {children}
48
48
  </div>
49
49
  );
50
- }
50
+ },
51
51
  );
52
52
 
53
53
  export default Cell;
package/src/grid/Grid.tsx CHANGED
@@ -1,5 +1,5 @@
1
- import React, { forwardRef, HTMLAttributes } from "react";
2
1
  import cl from "clsx";
2
+ import React, { HTMLAttributes, forwardRef } from "react";
3
3
 
4
4
  export interface GridProps extends HTMLAttributes<HTMLDivElement> {
5
5
  /**
@@ -17,7 +17,7 @@ export const Grid = forwardRef<HTMLDivElement, GridProps>(
17
17
  <div ref={ref} className={cl("navds-grid", className)} {...rest}>
18
18
  {children}
19
19
  </div>
20
- )
20
+ ),
21
21
  );
22
22
 
23
23
  export default Grid;
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import { BodyLong, Grid, Cell, ContentContainer } from "../index";
2
+ import { BodyLong, Cell, ContentContainer, Grid } from "../index";
3
3
 
4
4
  export default {
5
5
  title: "ds-react/Primitives/Grid",
@@ -1,5 +1,5 @@
1
- import React, { forwardRef, HTMLAttributes } from "react";
2
1
  import cl from "clsx";
2
+ import React, { HTMLAttributes, forwardRef } from "react";
3
3
  import { DefaultIllustration } from "./Illustration";
4
4
 
5
5
  export interface GuidePanelProps extends HTMLAttributes<HTMLDivElement> {
@@ -49,7 +49,7 @@ export const GuidePanel = forwardRef<HTMLDivElement, GuidePanelProps>(
49
49
  </div>
50
50
  <div className="navds-guide-panel__content">{children}</div>
51
51
  </div>
52
- )
52
+ ),
53
53
  );
54
54
 
55
55
  export default GuidePanel;
@@ -1,6 +1,6 @@
1
- import { InformationIcon } from "@navikt/aksel-icons";
2
1
  import { Meta } from "@storybook/react";
3
2
  import React from "react";
3
+ import { InformationIcon } from "@navikt/aksel-icons";
4
4
  import { BodyLong, GuidePanel, VStack } from "../index";
5
5
 
6
6
  export default {
@@ -61,7 +61,7 @@ export const HelpText = forwardRef<HTMLButtonElement, HelpTextProps>(
61
61
  wrapperClassName,
62
62
  ...rest
63
63
  },
64
- ref
64
+ ref,
65
65
  ) => {
66
66
  const buttonRef = useRef<HTMLButtonElement | null>(null);
67
67
  const mergedRef = useMemo(() => mergeRefs([buttonRef, ref]), [ref]);
@@ -98,7 +98,7 @@ export const HelpText = forwardRef<HTMLButtonElement, HelpTextProps>(
98
98
  </Popover>
99
99
  </div>
100
100
  );
101
- }
101
+ },
102
102
  );
103
103
 
104
104
  export default HelpText;
@@ -1,5 +1,5 @@
1
1
  import cl from "clsx";
2
- import React, { forwardRef, HTMLAttributes } from "react";
2
+ import React, { HTMLAttributes, forwardRef } from "react";
3
3
  import { OverridableComponent } from "../util/OverridableComponent";
4
4
  import InternalHeaderButton, {
5
5
  InternalHeaderButtonProps,
@@ -1,5 +1,5 @@
1
- import React, { forwardRef } from "react";
2
1
  import cl from "clsx";
2
+ import React, { forwardRef } from "react";
3
3
  import { OverridableComponent } from "../util/OverridableComponent";
4
4
 
5
5
  export interface InternalHeaderButtonProps
@@ -1,5 +1,5 @@
1
- import React, { forwardRef } from "react";
2
1
  import cl from "clsx";
2
+ import React, { forwardRef } from "react";
3
3
  import { OverridableComponent } from "../util/OverridableComponent";
4
4
 
5
5
  export interface InternalHeaderTitleProps