@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
@@ -24,7 +24,7 @@ export const ListItem = forwardRef<HTMLLIElement, ListItemProps>(
24
24
 
25
25
  if (listType === "ol" && icon) {
26
26
  console.warn(
27
- "<List />: Icon prop is not supported for ordered lists. Please remove the icon prop."
27
+ "<List />: Icon prop is not supported for ordered lists. Please remove the icon prop.",
28
28
  );
29
29
  }
30
30
 
@@ -66,7 +66,7 @@ export const ListItem = forwardRef<HTMLLIElement, ListItemProps>(
66
66
  </BodyShort>
67
67
  </li>
68
68
  );
69
- }
69
+ },
70
70
  );
71
71
 
72
72
  ListItem.displayName = "List.Item";
@@ -1,11 +1,11 @@
1
+ import { Meta } from "@storybook/react";
2
+ import React from "react";
1
3
  import {
2
4
  BabyWrappedIcon,
3
5
  BrailleIcon,
4
6
  HeadHeartIcon,
5
7
  RecycleIcon,
6
8
  } from "@navikt/aksel-icons";
7
- import { Meta } from "@storybook/react";
8
- import React from "react";
9
9
  import { List, VStack } from "..";
10
10
 
11
11
  export default {
@@ -1,5 +1,5 @@
1
1
  import cl from "clsx";
2
- import React, { forwardRef, SVGProps } from "react";
2
+ import React, { SVGProps, forwardRef } from "react";
3
3
  import { omit, useId } from "../util";
4
4
 
5
5
  export interface LoaderProps extends Omit<SVGProps<SVGSVGElement>, "ref"> {
@@ -66,7 +66,7 @@ export const Loader: LoaderType = forwardRef<SVGSVGElement, LoaderProps>(
66
66
  id,
67
67
  ...rest
68
68
  },
69
- ref
69
+ ref,
70
70
  ) => {
71
71
  const internalId = useId();
72
72
 
@@ -81,7 +81,7 @@ export const Loader: LoaderType = forwardRef<SVGSVGElement, LoaderProps>(
81
81
  `navds-loader--${variant}`,
82
82
  {
83
83
  "navds-loader--transparent": transparent,
84
- }
84
+ },
85
85
  )}
86
86
  focusable="false"
87
87
  viewBox="0 0 50 50"
@@ -107,7 +107,7 @@ export const Loader: LoaderType = forwardRef<SVGSVGElement, LoaderProps>(
107
107
  />
108
108
  </svg>
109
109
  );
110
- }
110
+ },
111
111
  );
112
112
 
113
113
  export default Loader;
@@ -1,6 +1,7 @@
1
1
  import { Meta } from "@storybook/react";
2
2
  import React from "react";
3
3
  import { Loader, LoaderProps } from "..";
4
+
4
5
  export default {
5
6
  title: "ds-react/Loader",
6
7
  component: Loader,
@@ -1,5 +1,5 @@
1
- import React, { useState } from "react";
2
1
  import { fireEvent, render, screen, waitFor } from "@testing-library/react";
2
+ import React, { useState } from "react";
3
3
  import { Button, Modal } from "..";
4
4
  import { BODY_CLASS } from "./ModalUtils";
5
5
 
@@ -34,7 +34,7 @@ describe("Modal", () => {
34
34
 
35
35
  fireEvent.click(screen.getByText("Close"));
36
36
  await waitFor(() =>
37
- expect(document.body.classList).not.toContain(BODY_CLASS)
37
+ expect(document.body.classList).not.toContain(BODY_CLASS),
38
38
  );
39
39
  });
40
40
 
@@ -42,13 +42,13 @@ describe("Modal", () => {
42
42
  render(
43
43
  <Modal portal open>
44
44
  <Modal.Header />
45
- </Modal>
45
+ </Modal>,
46
46
  );
47
47
  expect(document.body.classList).toContain(BODY_CLASS);
48
48
 
49
49
  fireEvent.click(screen.getByRole("button"));
50
50
  await waitFor(() =>
51
- expect(document.body.classList).not.toContain(BODY_CLASS)
51
+ expect(document.body.classList).not.toContain(BODY_CLASS),
52
52
  );
53
53
  });
54
54
  });
@@ -92,7 +92,7 @@ export const Modal = forwardRef<HTMLDialogElement, ModalProps>(
92
92
  onClick,
93
93
  ...rest
94
94
  }: ModalProps,
95
- ref
95
+ ref,
96
96
  ) => {
97
97
  const modalRef = useRef<HTMLDialogElement>(null);
98
98
  const mergedRef = useMemo(() => mergeRefs([modalRef, ref]), [ref]);
@@ -217,7 +217,7 @@ export const Modal = forwardRef<HTMLDialogElement, ModalProps>(
217
217
  return null;
218
218
  }
219
219
  return component;
220
- }
220
+ },
221
221
  ) as ModalComponent;
222
222
 
223
223
  Modal.Header = ModalHeader;
@@ -1,5 +1,5 @@
1
- import React, { forwardRef } from "react";
2
1
  import cl from "clsx";
2
+ import React, { forwardRef } from "react";
3
3
 
4
4
  export interface ModalBodyProps extends React.HTMLAttributes<HTMLDivElement> {
5
5
  children: React.ReactNode;
@@ -8,7 +8,7 @@ export interface ModalBodyProps extends React.HTMLAttributes<HTMLDivElement> {
8
8
  const ModalBody = forwardRef<HTMLDivElement, ModalBodyProps>(
9
9
  ({ className, ...rest }, ref) => (
10
10
  <div {...rest} ref={ref} className={cl("navds-modal__body", className)} />
11
- )
11
+ ),
12
12
  );
13
13
 
14
14
  export default ModalBody;
@@ -1,5 +1,5 @@
1
- import React, { forwardRef } from "react";
2
1
  import cl from "clsx";
2
+ import React, { forwardRef } from "react";
3
3
 
4
4
  export interface ModalFooterProps extends React.HTMLAttributes<HTMLDivElement> {
5
5
  children: React.ReactNode;
@@ -8,7 +8,7 @@ export interface ModalFooterProps extends React.HTMLAttributes<HTMLDivElement> {
8
8
  const ModalFooter = forwardRef<HTMLDivElement, ModalFooterProps>(
9
9
  ({ className, ...rest }, ref) => (
10
10
  <div {...rest} ref={ref} className={cl("navds-modal__footer", className)} />
11
- )
11
+ ),
12
12
  );
13
13
 
14
14
  export default ModalFooter;
@@ -1,5 +1,5 @@
1
- import React, { forwardRef, useContext } from "react";
2
1
  import cl from "clsx";
2
+ import React, { forwardRef, useContext } from "react";
3
3
  import { XMarkIcon } from "@navikt/aksel-icons";
4
4
  import { Button } from "../button";
5
5
  import { ModalContext } from "./ModalContext";
@@ -36,7 +36,7 @@ const ModalHeader = forwardRef<HTMLDivElement, ModalHeaderProps>(
36
36
  {children}
37
37
  </div>
38
38
  );
39
- }
39
+ },
40
40
  );
41
41
 
42
42
  export default ModalHeader;
@@ -4,7 +4,7 @@ import type { ModalProps } from "./types";
4
4
  export function getCloseHandler(
5
5
  modalRef: React.RefObject<HTMLDialogElement>,
6
6
  header: ModalProps["header"],
7
- onBeforeClose: ModalProps["onBeforeClose"]
7
+ onBeforeClose: ModalProps["onBeforeClose"],
8
8
  ) {
9
9
  if (header && header.closeButton === false) return undefined;
10
10
  if (onBeforeClose) {
@@ -17,7 +17,7 @@ export const BODY_CLASS = "navds-modal__document-body";
17
17
 
18
18
  export function useBodyScrollLock(
19
19
  modalRef: React.RefObject<HTMLDialogElement>,
20
- portalNode: HTMLElement | null
20
+ portalNode: HTMLElement | null,
21
21
  ) {
22
22
  React.useEffect(() => {
23
23
  if (!modalRef.current || !portalNode) return; // We check both to avoid running this twice when not using portal
@@ -273,7 +273,7 @@ function dialogPolyfillInfo(dialog) {
273
273
  ["DOMAttrModified", "DOMNodeRemoved", "DOMNodeRemovedFromDocument"].forEach(
274
274
  function (name) {
275
275
  dialog.addEventListener(name, delayModel);
276
- }
276
+ },
277
277
  );
278
278
  }
279
279
  // Note that the DOM is observed inside DialogManager while any dialog
@@ -288,11 +288,11 @@ function dialogPolyfillInfo(dialog) {
288
288
  this.backdrop_.className = "backdrop";
289
289
  this.backdrop_.addEventListener(
290
290
  "mouseup",
291
- this.backdropMouseEvent_.bind(this)
291
+ this.backdropMouseEvent_.bind(this),
292
292
  );
293
293
  this.backdrop_.addEventListener(
294
294
  "mousedown",
295
- this.backdropMouseEvent_.bind(this)
295
+ this.backdropMouseEvent_.bind(this),
296
296
  );
297
297
  this.backdrop_.addEventListener("click", this.backdropMouseEvent_.bind(this));
298
298
  }
@@ -387,7 +387,7 @@ dialogPolyfillInfo.prototype = /** @type {HTMLDialogElement.prototype} */ {
387
387
  e.shiftKey,
388
388
  e.metaKey,
389
389
  e.button,
390
- e.relatedTarget
390
+ e.relatedTarget,
391
391
  );
392
392
  this.dialog_.dispatchEvent(redirectedEvent);
393
393
  e.stopPropagation();
@@ -440,17 +440,17 @@ dialogPolyfillInfo.prototype = /** @type {HTMLDialogElement.prototype} */ {
440
440
  showModal: function () {
441
441
  if (this.dialog_.hasAttribute("open")) {
442
442
  throw new Error(
443
- "Failed to execute 'showModal' on dialog: The element is already open, and therefore cannot be opened modally."
443
+ "Failed to execute 'showModal' on dialog: The element is already open, and therefore cannot be opened modally.",
444
444
  );
445
445
  }
446
446
  if (!isConnected(this.dialog_)) {
447
447
  throw new Error(
448
- "Failed to execute 'showModal' on dialog: The element is not in a Document."
448
+ "Failed to execute 'showModal' on dialog: The element is not in a Document.",
449
449
  );
450
450
  }
451
451
  if (!dialogPolyfill.dm.pushDialog(this)) {
452
452
  throw new Error(
453
- "Failed to execute 'showModal' on dialog: There are too many open modal dialogs."
453
+ "Failed to execute 'showModal' on dialog: There are too many open modal dialogs.",
454
454
  );
455
455
  }
456
456
 
@@ -468,7 +468,7 @@ dialogPolyfillInfo.prototype = /** @type {HTMLDialogElement.prototype} */ {
468
468
  // Insert backdrop.
469
469
  this.dialog_.parentNode.insertBefore(
470
470
  this.backdrop_,
471
- this.dialog_.nextSibling
471
+ this.dialog_.nextSibling,
472
472
  );
473
473
 
474
474
  // Focus on whatever inside the dialog.
@@ -484,7 +484,7 @@ dialogPolyfillInfo.prototype = /** @type {HTMLDialogElement.prototype} */ {
484
484
  close: function (opt_returnValue) {
485
485
  if (!this.dialog_.hasAttribute("open")) {
486
486
  throw new Error(
487
- "Failed to execute 'close' on dialog: The element does not have an 'open' attribute, and therefore cannot be closed."
487
+ "Failed to execute 'close' on dialog: The element does not have an 'open' attribute, and therefore cannot be closed.",
488
488
  );
489
489
  }
490
490
  this.setOpen(false);
@@ -576,7 +576,7 @@ dialogPolyfill.forceRegisterDialog = function (element) {
576
576
  console.warn(
577
577
  "This browser already supports <dialog>, the polyfill " +
578
578
  "may not work correctly",
579
- element
579
+ element,
580
580
  );
581
581
  }
582
582
  if (element.localName !== "dialog") {
@@ -616,7 +616,7 @@ dialogPolyfill.DialogManager = function () {
616
616
  this.forwardTab_ = undefined;
617
617
  e.stopPropagation();
618
618
  checkDOM([]); // sanity-check DOM
619
- }.bind(this)
619
+ }.bind(this),
620
620
  );
621
621
 
622
622
  this.handleKey_ = this.handleKey_.bind(this);
@@ -663,7 +663,7 @@ dialogPolyfill.DialogManager.prototype.unblockDocument = function () {
663
663
  document.documentElement.removeEventListener(
664
664
  "focus",
665
665
  this.handleFocus_,
666
- true
666
+ true,
667
667
  );
668
668
  document.removeEventListener("keydown", this.handleKey_);
669
669
  this.mo_ && this.mo_.disconnect();
@@ -697,7 +697,7 @@ dialogPolyfill.DialogManager.prototype.updateStacking = function () {
697
697
  * @return {boolean} whether candidate is contained in top dialog
698
698
  */
699
699
  dialogPolyfill.DialogManager.prototype.containedByTopDialog_ = function (
700
- candidate
700
+ candidate,
701
701
  ) {
702
702
  while ((candidate = findNearestDialog(candidate))) {
703
703
  for (var i = 0, dpi; (dpi = this.pendingDialogStack[i]); ++i) {
@@ -837,7 +837,7 @@ if (needPolyfill) {
837
837
  if (testForm.method !== "dialog") {
838
838
  var methodDescriptor = Object.getOwnPropertyDescriptor(
839
839
  HTMLFormElement.prototype,
840
- "method"
840
+ "method",
841
841
  );
842
842
  if (methodDescriptor) {
843
843
  // nb. Some older iOS and older PhantomJS fail to return the descriptor. Don't do anything
@@ -860,7 +860,7 @@ if (needPolyfill) {
860
860
  Object.defineProperty(
861
861
  HTMLFormElement.prototype,
862
862
  "method",
863
- methodDescriptor
863
+ methodDescriptor,
864
864
  );
865
865
  }
866
866
  }
@@ -906,7 +906,7 @@ if (needPolyfill) {
906
906
 
907
907
  dialogPolyfill.formSubmitter = target;
908
908
  },
909
- false
909
+ false,
910
910
  );
911
911
 
912
912
  /**
@@ -1,6 +1,5 @@
1
1
  import cl from "clsx";
2
2
  import React, { forwardRef } from "react";
3
-
4
3
  import { ChevronLeftIcon, ChevronRightIcon } from "@navikt/aksel-icons";
5
4
  import { BodyShort } from "../typography";
6
5
  import PaginationItem, {
@@ -72,7 +71,7 @@ export const getSteps = ({
72
71
 
73
72
  const siblingsStart = Math.max(
74
73
  Math.min(page - siblingCount, count - boundaryCount - siblingCount * 2 - 1),
75
- boundaryCount + 2
74
+ boundaryCount + 2,
76
75
  );
77
76
  const siblingsEnd = siblingsStart + siblingCount * 2;
78
77
 
@@ -122,7 +121,7 @@ export const Pagination = forwardRef<HTMLElement, PaginationProps>(
122
121
  ),
123
122
  ...rest
124
123
  },
125
- ref
124
+ ref,
126
125
  ) => {
127
126
  if (page < 1) {
128
127
  console.error("page cannot be less than 1");
@@ -148,7 +147,7 @@ export const Pagination = forwardRef<HTMLElement, PaginationProps>(
148
147
  className={cl(
149
148
  "navds-pagination",
150
149
  `navds-pagination--${size}`,
151
- className
150
+ className,
152
151
  )}
153
152
  >
154
153
  <ul className="navds-pagination__list">
@@ -204,7 +203,7 @@ export const Pagination = forwardRef<HTMLElement, PaginationProps>(
204
203
  </Item>
205
204
  </li>
206
205
  );
207
- }
206
+ },
208
207
  )}
209
208
  <li>
210
209
  <Item
@@ -239,7 +238,7 @@ export const Pagination = forwardRef<HTMLElement, PaginationProps>(
239
238
  </ul>
240
239
  </nav>
241
240
  );
242
- }
241
+ },
243
242
  ) as PaginationType;
244
243
 
245
244
  Pagination.Item = PaginationItem;
@@ -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 { Button, ButtonProps } from "../button";
4
4
  import { OverridableComponent } from "../util";
5
5
 
@@ -35,7 +35,7 @@ export const Item: PaginationItemType = forwardRef(
35
35
  className,
36
36
  ...rest
37
37
  },
38
- ref
38
+ ref,
39
39
  ) => {
40
40
  return (
41
41
  <Button
@@ -52,7 +52,7 @@ export const Item: PaginationItemType = forwardRef(
52
52
  {children}
53
53
  </Button>
54
54
  );
55
- }
55
+ },
56
56
  );
57
57
 
58
58
  export default Item;
@@ -5,7 +5,7 @@ describe("getSteps", () => {
5
5
  it("lists all pages when count is <= 7", () => {
6
6
  const count = faker.datatype.number({ min: 1, max: 7 });
7
7
  expect(getSteps({ page: 1, count })).toEqual(
8
- Array.from({ length: count }, (_, i) => i + 1)
8
+ Array.from({ length: count }, (_, i) => i + 1),
9
9
  );
10
10
  });
11
11
 
@@ -16,7 +16,7 @@ describe("getSteps", () => {
16
16
  getSteps({
17
17
  page,
18
18
  count,
19
- })
19
+ }),
20
20
  ).toEqual([1, 2, 3, 4, 5, "ellipsis", count]);
21
21
  });
22
22
 
@@ -27,7 +27,7 @@ describe("getSteps", () => {
27
27
  getSteps({
28
28
  page,
29
29
  count,
30
- })
30
+ }),
31
31
  ).toEqual([
32
32
  1,
33
33
  "ellipsis",
@@ -46,7 +46,7 @@ describe("getSteps", () => {
46
46
  getSteps({
47
47
  page,
48
48
  count,
49
- })
49
+ }),
50
50
  ).toEqual([1, "ellipsis", page - 1, page, page + 1, "ellipsis", count]);
51
51
  });
52
52
 
@@ -58,7 +58,7 @@ describe("getSteps", () => {
58
58
  page,
59
59
  count,
60
60
  siblingCount: 0,
61
- })
61
+ }),
62
62
  ).toEqual([1, "ellipsis", page, "ellipsis", count]);
63
63
  });
64
64
 
@@ -70,7 +70,7 @@ describe("getSteps", () => {
70
70
  page,
71
71
  count,
72
72
  siblingCount: 2,
73
- })
73
+ }),
74
74
  ).toEqual([
75
75
  1,
76
76
  "ellipsis",
@@ -92,7 +92,7 @@ describe("getSteps", () => {
92
92
  page,
93
93
  count,
94
94
  boundaryCount: 0,
95
- })
95
+ }),
96
96
  ).toEqual(["ellipsis", page - 1, page, page + 1, "ellipsis"]);
97
97
  });
98
98
 
@@ -104,7 +104,7 @@ describe("getSteps", () => {
104
104
  page,
105
105
  count,
106
106
  boundaryCount: 2,
107
- })
107
+ }),
108
108
  ).toEqual([
109
109
  1,
110
110
  2,
@@ -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 PanelProps extends React.HTMLAttributes<HTMLElement> {
@@ -38,7 +38,7 @@ export type PanelType = OverridableComponent<PanelProps, HTMLElement>;
38
38
  export const Panel: PanelType = forwardRef(
39
39
  (
40
40
  { children, className, border = false, as: Component = "div", ...rest },
41
- ref
41
+ ref,
42
42
  ) => {
43
43
  return (
44
44
  <Component
@@ -51,7 +51,7 @@ export const Panel: PanelType = forwardRef(
51
51
  {children}
52
52
  </Component>
53
53
  );
54
- }
54
+ },
55
55
  );
56
56
 
57
57
  export default Panel;
@@ -1,6 +1,7 @@
1
+ import { Meta } from "@storybook/react";
1
2
  import React from "react";
2
3
  import { Panel } from "../index";
3
- import { Meta } from "@storybook/react";
4
+
4
5
  export default {
5
6
  title: "ds-react/Panel",
6
7
  component: Panel,
@@ -13,7 +13,7 @@ describe("Popover", () => {
13
13
  data-testid="popover-id"
14
14
  >
15
15
  <div />
16
- </Popover>
16
+ </Popover>,
17
17
  );
18
18
 
19
19
  expect(screen.getByTestId("popover-id")).toBeVisible();
@@ -28,7 +28,7 @@ describe("Popover", () => {
28
28
  data-testid="popover-id"
29
29
  >
30
30
  <div />
31
- </Popover>
31
+ </Popover>,
32
32
  );
33
33
 
34
34
  expect(screen.getByTestId("popover-id")).not.toBeVisible();
@@ -47,7 +47,7 @@ describe("Popover", () => {
47
47
  <div />
48
48
  </Popover>
49
49
  <a href="/#">link</a>
50
- </div>
50
+ </div>,
51
51
  );
52
52
 
53
53
  await act(async () => {
@@ -70,14 +70,14 @@ describe("Popover", () => {
70
70
  >
71
71
  <div />
72
72
  </Popover>
73
- </div>
73
+ </div>,
74
74
  );
75
75
 
76
76
  expect(screen.getByTestId("popover-id")).toBeVisible();
77
77
  fireEvent.keyDown(
78
78
  // Should work anywhere
79
79
  container,
80
- { key: "Escape" }
80
+ { key: "Escape" },
81
81
  );
82
82
 
83
83
  expect(fn).toHaveBeenCalled();
@@ -95,7 +95,7 @@ describe("Popover", () => {
95
95
  >
96
96
  <div />
97
97
  </Popover>
98
- </div>
98
+ </div>,
99
99
  );
100
100
 
101
101
  await act(async () => {
@@ -118,7 +118,7 @@ describe("Popover", () => {
118
118
  >
119
119
  <div />
120
120
  </Popover>
121
- </div>
121
+ </div>,
122
122
  );
123
123
 
124
124
  expect(screen.getByTestId("popover-id")).toBeVisible();
@@ -123,7 +123,7 @@ export const Popover = forwardRef<HTMLDivElement, PopoverProps>(
123
123
  flip: _flip = true,
124
124
  ...rest
125
125
  },
126
- ref
126
+ ref,
127
127
  ) => {
128
128
  const arrowRef = useRef<HTMLDivElement | null>(null);
129
129
  const isInModal = useContext(ModalContext) !== null;
@@ -165,7 +165,7 @@ export const Popover = forwardRef<HTMLDivElement, PopoverProps>(
165
165
 
166
166
  const floatingRef = useMemo(
167
167
  () => mergeRefs([refs.setFloating, ref]),
168
- [refs.setFloating, ref]
168
+ [refs.setFloating, ref],
169
169
  );
170
170
 
171
171
  useClientLayoutEffect(() => {
@@ -173,7 +173,7 @@ export const Popover = forwardRef<HTMLDivElement, PopoverProps>(
173
173
  const cleanup = autoUpdate(
174
174
  refs.reference.current,
175
175
  refs.floating.current,
176
- update
176
+ update,
177
177
  );
178
178
  return () => cleanup();
179
179
  }, [refs.floating, refs.reference, update, open, anchorEl]);
@@ -184,16 +184,16 @@ export const Popover = forwardRef<HTMLDivElement, PopoverProps>(
184
184
  (e: FocusEvent) => {
185
185
  if (
186
186
  e.target instanceof HTMLElement &&
187
- ![anchorEl, refs.floating.current].some((element) =>
188
- element?.contains(e.target as Node)
187
+ ![anchorEl, refs.floating.current].some(
188
+ (element) => element?.contains(e.target as Node),
189
189
  ) &&
190
190
  !e.target.contains(refs.floating.current)
191
191
  ) {
192
192
  open && onClose();
193
193
  }
194
194
  },
195
- [anchorEl, refs, open, onClose]
196
- )
195
+ [anchorEl, refs, open, onClose],
196
+ ),
197
197
  );
198
198
 
199
199
  const staticSide = {
@@ -237,7 +237,7 @@ export const Popover = forwardRef<HTMLDivElement, PopoverProps>(
237
237
  )}
238
238
  </div>
239
239
  );
240
- }
240
+ },
241
241
  ) as PopoverComponent;
242
242
 
243
243
  Popover.Content = PopoverContent;
@@ -1,5 +1,5 @@
1
- import React, { forwardRef } from "react";
2
1
  import cl from "clsx";
2
+ import React, { forwardRef } from "react";
3
3
 
4
4
  export interface PopoverContentProps
5
5
  extends React.HTMLAttributes<HTMLDivElement> {
@@ -17,7 +17,7 @@ const PopoverContent: PopoverContentType = forwardRef(
17
17
  ref={ref}
18
18
  className={cl("navds-popover__content", className)}
19
19
  />
20
- )
20
+ ),
21
21
  );
22
22
 
23
23
  export default PopoverContent;
@@ -8,7 +8,7 @@ export interface ProviderContextType {
8
8
  }
9
9
 
10
10
  export const ProviderContext = createContext<ProviderContextType | undefined>(
11
- undefined
11
+ undefined,
12
12
  );
13
13
 
14
14
  export interface ProviderProps {