@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
@@ -1,8 +1,8 @@
1
- import React from "react";
2
1
  import { getUnixTime } from "date-fns";
3
- import { useDayPicker, Day } from "react-day-picker";
4
- import WeekNumber from "./WeekNumber";
2
+ import React from "react";
3
+ import { Day, useDayPicker } from "react-day-picker";
5
4
  import { Hide } from "../../../layout/responsive";
5
+ import WeekNumber from "./WeekNumber";
6
6
 
7
7
  /**
8
8
  * The props for the {@link Row} component.
@@ -132,7 +132,7 @@ const getValidationMessage = (val = {}): DateValidationT => ({
132
132
  * });
133
133
  */
134
134
  export const useDatepicker = (
135
- opt: UseDatepickerOptions = {}
135
+ opt: UseDatepickerOptions = {},
136
136
  ): UseDatepickerValue => {
137
137
  const {
138
138
  locale: _locale = "nb",
@@ -171,7 +171,7 @@ export const useDatepicker = (
171
171
  newOpen &&
172
172
  setMonth(selectedDay ?? defaultSelected ?? defaultMonth ?? today);
173
173
  },
174
- [defaultMonth, defaultSelected, selectedDay, today]
174
+ [defaultMonth, defaultSelected, selectedDay, today],
175
175
  );
176
176
 
177
177
  const updateDate = (date?: Date) => {
@@ -193,7 +193,7 @@ export const useDatepicker = (
193
193
  updateDate(date);
194
194
  setMonth(date ?? defaultMonth ?? today);
195
195
  setInputValue(
196
- date ? formatDateForInput(date, locale, "date", inputFormat) : ""
196
+ date ? formatDateForInput(date, locale, "date", inputFormat) : "",
197
197
  );
198
198
  };
199
199
 
@@ -206,7 +206,7 @@ export const useDatepicker = (
206
206
  today,
207
207
  locale,
208
208
  "date",
209
- allowTwoDigitYear
209
+ allowTwoDigitYear,
210
210
  );
211
211
  if (isValidDate(day)) {
212
212
  setInputValue(formatDateForInput(day, locale, "date", inputFormat));
@@ -226,7 +226,7 @@ export const useDatepicker = (
226
226
  today,
227
227
  locale,
228
228
  "date",
229
- allowTwoDigitYear
229
+ allowTwoDigitYear,
230
230
  );
231
231
  isValidDate(day) &&
232
232
  setInputValue(formatDateForInput(day, locale, "date", inputFormat));
@@ -249,7 +249,7 @@ export const useDatepicker = (
249
249
  updateValidation();
250
250
  setMonth(day);
251
251
  setInputValue(
252
- day ? formatDateForInput(day, locale, "date", inputFormat) : ""
252
+ day ? formatDateForInput(day, locale, "date", inputFormat) : "",
253
253
  );
254
254
  };
255
255
 
@@ -263,7 +263,7 @@ export const useDatepicker = (
263
263
  today,
264
264
  locale,
265
265
  "date",
266
- allowTwoDigitYear
266
+ allowTwoDigitYear,
267
267
  );
268
268
 
269
269
  const isBefore =
@@ -127,7 +127,7 @@ const getIsAfter = (opt: { toDate?: Date; date?: Date }) =>
127
127
  * });
128
128
  */
129
129
  export const useMonthpicker = (
130
- opt: UseMonthPickerOptions = {}
130
+ opt: UseMonthPickerOptions = {},
131
131
  ): UseMonthPickerValue => {
132
132
  const {
133
133
  locale: _locale = "nb",
@@ -166,7 +166,7 @@ export const useMonthpicker = (
166
166
  newOpen &&
167
167
  setYear(selectedMonth ?? defaultSelected ?? defaultYear ?? today);
168
168
  },
169
- [defaultSelected, defaultYear, selectedMonth, today]
169
+ [defaultSelected, defaultYear, selectedMonth, today],
170
170
  );
171
171
 
172
172
  const updateMonth = (date?: Date) => {
@@ -188,7 +188,7 @@ export const useMonthpicker = (
188
188
  updateMonth(date);
189
189
  setYear(date ?? defaultYear ?? today);
190
190
  setInputValue(
191
- date ? formatDateForInput(date, locale, "month", inputFormat) : ""
191
+ date ? formatDateForInput(date, locale, "month", inputFormat) : "",
192
192
  );
193
193
  };
194
194
 
@@ -202,7 +202,7 @@ export const useMonthpicker = (
202
202
  today,
203
203
  locale,
204
204
  "month",
205
- allowTwoDigitYear
205
+ allowTwoDigitYear,
206
206
  );
207
207
  const isBefore = getIsBefore({ fromDate, date: day });
208
208
  const isAfter = getIsAfter({ toDate, date: day });
@@ -221,7 +221,7 @@ export const useMonthpicker = (
221
221
  today,
222
222
  locale,
223
223
  "month",
224
- allowTwoDigitYear
224
+ allowTwoDigitYear,
225
225
  );
226
226
  isValidDate(day) &&
227
227
  setInputValue(formatDateForInput(day, locale, "month", inputFormat));
@@ -245,7 +245,7 @@ export const useMonthpicker = (
245
245
  updateMonth(month);
246
246
  updateValidation();
247
247
  setInputValue(
248
- month ? formatDateForInput(month, locale, "month", inputFormat) : ""
248
+ month ? formatDateForInput(month, locale, "month", inputFormat) : "",
249
249
  );
250
250
  };
251
251
 
@@ -259,7 +259,7 @@ export const useMonthpicker = (
259
259
  today,
260
260
  locale,
261
261
  "month",
262
- allowTwoDigitYear
262
+ allowTwoDigitYear,
263
263
  );
264
264
 
265
265
  const isBefore = getIsBefore({ fromDate, date: month });
@@ -36,7 +36,7 @@ describe("Writing in input sets correct values", () => {
36
36
  JSON.stringify({
37
37
  from: "2022-08-03T00:00:00.000Z",
38
38
  to: "2022-08-03T00:00:00.000Z",
39
- })
39
+ }),
40
40
  );
41
41
  });
42
42
 
@@ -53,7 +53,7 @@ describe("Writing in input sets correct values", () => {
53
53
  expect(res.innerHTML).toEqual(
54
54
  JSON.stringify({
55
55
  from: "2022-08-03T00:00:00.000Z",
56
- })
56
+ }),
57
57
  );
58
58
  });
59
59
  });
@@ -148,7 +148,7 @@ const fromValidation = (day: Date, opt?: UseRangeDatepickerOptions) => {
148
148
  const toValidation = (
149
149
  day: Date,
150
150
  from: Date,
151
- opt?: UseRangeDatepickerOptions
151
+ opt?: UseRangeDatepickerOptions,
152
152
  ) => {
153
153
  const isBefore =
154
154
  opt?.fromDate && day && differenceInCalendarDays(opt?.fromDate, day) > 0;
@@ -185,12 +185,12 @@ const toValidation = (
185
185
 
186
186
  const initialValidation = (
187
187
  range?: DateRange,
188
- opt?: UseRangeDatepickerOptions
188
+ opt?: UseRangeDatepickerOptions,
189
189
  ): RangeValidationT => {
190
190
  if (!range || !range?.from) {
191
191
  return getValidationMessage(
192
192
  { isEmpty: true, isValidDate: false },
193
- { isEmpty: true, isValidDate: false }
193
+ { isEmpty: true, isValidDate: false },
194
194
  );
195
195
  }
196
196
 
@@ -215,7 +215,7 @@ const initialValidation = (
215
215
  * });
216
216
  */
217
217
  export const useRangeDatepicker = (
218
- opt: UseRangeDatepickerOptions = {}
218
+ opt: UseRangeDatepickerOptions = {},
219
219
  ): UseRangeDatepickerValue => {
220
220
  const {
221
221
  locale: _locale = "nb",
@@ -240,26 +240,26 @@ export const useRangeDatepicker = (
240
240
 
241
241
  // Initialize states
242
242
  const [month, setMonth] = useState(
243
- defaultSelected ? defaultSelected?.from : defaultMonth ?? today
243
+ defaultSelected ? defaultSelected?.from : defaultMonth ?? today,
244
244
  );
245
245
  const [selectedRange, setSelectedRange] = useState<DateRange | undefined>(
246
- defaultSelected ?? { from: undefined, to: undefined }
246
+ defaultSelected ?? { from: undefined, to: undefined },
247
247
  );
248
248
 
249
249
  const [fromInputValue, setFromInputValue] = useState(
250
250
  defaultSelected?.from
251
251
  ? formatDateForInput(defaultSelected.from, locale, "date", inputFormat)
252
- : ""
252
+ : "",
253
253
  );
254
254
 
255
255
  const [toInputValue, setToInputValue] = useState(
256
256
  defaultSelected?.to
257
257
  ? formatDateForInput(defaultSelected.to, locale, "date", inputFormat)
258
- : ""
258
+ : "",
259
259
  );
260
260
 
261
261
  const [validation, setValidation] = useState<RangeValidationT>(
262
- initialValidation(selectedRange, opt)
262
+ initialValidation(selectedRange, opt),
263
263
  );
264
264
 
265
265
  const [open, setOpen] = useState(false);
@@ -271,7 +271,7 @@ export const useRangeDatepicker = (
271
271
 
272
272
  const updateValidation = (
273
273
  from: Partial<RangeValidationT["from"]> = {},
274
- to: Partial<RangeValidationT["to"]> = {}
274
+ to: Partial<RangeValidationT["to"]> = {},
275
275
  ) => {
276
276
  const msg = getValidationMessage(from, to);
277
277
  setValidation(msg);
@@ -284,18 +284,18 @@ export const useRangeDatepicker = (
284
284
  setValidation(
285
285
  initialValidation(
286
286
  defaultSelected ?? { from: undefined, to: undefined },
287
- opt
288
- )
287
+ opt,
288
+ ),
289
289
  );
290
290
  setFromInputValue(
291
291
  defaultSelected?.from
292
292
  ? formatDateForInput(defaultSelected.from, locale, "date", inputFormat)
293
- : ""
293
+ : "",
294
294
  );
295
295
  setToInputValue(
296
296
  defaultSelected?.to
297
297
  ? formatDateForInput(defaultSelected.to, locale, "date", inputFormat)
298
- : ""
298
+ : "",
299
299
  );
300
300
  setDefaultSelected(_defaultSelected);
301
301
  };
@@ -305,12 +305,12 @@ export const useRangeDatepicker = (
305
305
  setFromInputValue(
306
306
  range?.from
307
307
  ? formatDateForInput(range.from, locale, "date", inputFormat)
308
- : ""
308
+ : "",
309
309
  );
310
310
  setToInputValue(
311
311
  range?.to
312
312
  ? formatDateForInput(range?.to, locale, "date", inputFormat)
313
- : ""
313
+ : "",
314
314
  );
315
315
  setValidation(initialValidation(range, opt));
316
316
  };
@@ -324,12 +324,12 @@ export const useRangeDatepicker = (
324
324
  today,
325
325
  locale,
326
326
  "date",
327
- allowTwoDigitYear
327
+ allowTwoDigitYear,
328
328
  );
329
329
  if (isValidDate(day)) {
330
330
  src === RANGE.FROM
331
331
  ? setFromInputValue(
332
- formatDateForInput(day, locale, "date", inputFormat)
332
+ formatDateForInput(day, locale, "date", inputFormat),
333
333
  )
334
334
  : setToInputValue(formatDateForInput(day, locale, "date", inputFormat));
335
335
 
@@ -348,7 +348,7 @@ export const useRangeDatepicker = (
348
348
  today,
349
349
  locale,
350
350
  "date",
351
- allowTwoDigitYear
351
+ allowTwoDigitYear,
352
352
  );
353
353
  if (!isValidDate(day)) {
354
354
  return;
@@ -381,18 +381,18 @@ export const useRangeDatepicker = (
381
381
 
382
382
  range?.from
383
383
  ? setFromInputValue(
384
- formatDateForInput(range?.from, locale, "date", inputFormat)
384
+ formatDateForInput(range?.from, locale, "date", inputFormat),
385
385
  )
386
386
  : setFromInputValue("");
387
387
  prevToRange && !resetTo
388
388
  ? setToInputValue(
389
- formatDateForInput(prevToRange, locale, "date", inputFormat)
389
+ formatDateForInput(prevToRange, locale, "date", inputFormat),
390
390
  )
391
391
  : setToInputValue("");
392
392
  updateRange({ from: range?.from, to: resetTo ? undefined : prevToRange });
393
393
  updateValidation(
394
394
  { isValidDate: !!range?.from, isEmpty: !range?.from },
395
- { isValidDate: !!range?.to, isEmpty: !prevToRange || resetTo }
395
+ { isValidDate: !!range?.to, isEmpty: !prevToRange || resetTo },
396
396
  );
397
397
  };
398
398
 
@@ -400,7 +400,7 @@ export const useRangeDatepicker = (
400
400
  val: string = "",
401
401
  day: Date,
402
402
  isBefore = false,
403
- isAfter = false
403
+ isAfter = false,
404
404
  ) => {
405
405
  setFromInputValue(val);
406
406
  if (!validateDay(day)) {
@@ -415,7 +415,7 @@ export const useRangeDatepicker = (
415
415
  isBefore,
416
416
  isAfter,
417
417
  },
418
- validation.to
418
+ validation.to,
419
419
  );
420
420
  return;
421
421
  }
@@ -427,7 +427,7 @@ export const useRangeDatepicker = (
427
427
  isBefore,
428
428
  isAfter,
429
429
  },
430
- validation.to
430
+ validation.to,
431
431
  );
432
432
  return;
433
433
  }
@@ -449,7 +449,7 @@ export const useRangeDatepicker = (
449
449
  today,
450
450
  locale,
451
451
  "date",
452
- allowTwoDigitYear
452
+ allowTwoDigitYear,
453
453
  );
454
454
  if (validateDay(toDay)) {
455
455
  updateRange({ from: day, to: toDay });
@@ -467,7 +467,7 @@ export const useRangeDatepicker = (
467
467
  val: string = "",
468
468
  day: Date,
469
469
  isBefore = false,
470
- isAfter = false
470
+ isAfter = false,
471
471
  ) => {
472
472
  setToInputValue(val);
473
473
  if (!validateDay(day)) {
@@ -518,7 +518,7 @@ export const useRangeDatepicker = (
518
518
  today,
519
519
  locale,
520
520
  "date",
521
- allowTwoDigitYear
521
+ allowTwoDigitYear,
522
522
  );
523
523
  const isBefore = fromDate && differenceInCalendarDays(fromDate, day) > 0;
524
524
  const isAfter = toDate && differenceInCalendarDays(day, toDate) > 0;
@@ -84,7 +84,7 @@ export const MonthButton = ({
84
84
  year,
85
85
  hasDropdown,
86
86
  fromDate,
87
- toDate
87
+ toDate,
88
88
  );
89
89
  setFocus(next);
90
90
  setTabRoot(next);
@@ -1,10 +1,10 @@
1
- import { ArrowLeftIcon, ArrowRightIcon } from "@navikt/aksel-icons";
2
1
  import { isAfter, isBefore } from "date-fns";
3
2
  import setYear from "date-fns/setYear";
4
3
  import startOfMonth from "date-fns/startOfMonth";
5
4
  import startOfYear from "date-fns/startOfYear";
6
5
  import React from "react";
7
6
  import { useDayPicker } from "react-day-picker";
7
+ import { ArrowLeftIcon, ArrowRightIcon } from "@navikt/aksel-icons";
8
8
  import { Button } from "../../button";
9
9
  import { Select } from "../../form/Select";
10
10
  import { useSharedMonthContext } from "../context";
@@ -43,23 +43,23 @@ export const MonthCaption = () => {
43
43
  toYear(setYear(year, newYear));
44
44
  };
45
45
 
46
- const hasPrevYear = () => {
46
+ const disablePreviousYear = () => {
47
47
  return fromDate
48
48
  ? isBefore(year?.getFullYear() - 1, fromDate?.getFullYear())
49
- : true;
49
+ : false;
50
50
  };
51
51
 
52
- const hasNextYear = () => {
52
+ const disableNextYear = () => {
53
53
  return toDate
54
54
  ? isAfter(year?.getFullYear() + 1, toDate?.getFullYear())
55
- : true;
55
+ : false;
56
56
  };
57
57
 
58
58
  return (
59
59
  <div className="navds-date__caption">
60
60
  <Button
61
61
  className="navds-date__caption-button"
62
- disabled={hasPrevYear()}
62
+ disabled={disablePreviousYear()}
63
63
  onClick={() => handleButtonClick(-1)}
64
64
  aria-label={labelPrevYear(locale?.code)}
65
65
  icon={<ArrowLeftIcon aria-hidden />}
@@ -88,7 +88,7 @@ export const MonthCaption = () => {
88
88
  )}
89
89
  <Button
90
90
  className="navds-date__caption-button"
91
- disabled={hasNextYear()}
91
+ disabled={disableNextYear()}
92
92
  onClick={() => handleButtonClick(1)}
93
93
  aria-label={labelNextYear(locale?.code)}
94
94
  icon={<ArrowRightIcon aria-hidden />}
@@ -75,7 +75,7 @@ export const MonthPicker = forwardRef<HTMLDivElement, MonthPickerProps>(
75
75
  onYearChange,
76
76
  strategy = "absolute",
77
77
  },
78
- ref
78
+ ref,
79
79
  ) => {
80
80
  const ariaId = useId(id);
81
81
  const [open, setOpen] = useState(_open ?? false);
@@ -84,7 +84,7 @@ export const MonthPicker = forwardRef<HTMLDivElement, MonthPickerProps>(
84
84
  const mergedRef = useMemo(() => mergeRefs([wrapperRef, ref]), [ref]);
85
85
 
86
86
  const [selectedMonth, setSelectedMonth] = useState<Date | undefined>(
87
- defaultSelected
87
+ defaultSelected,
88
88
  );
89
89
 
90
90
  const handleSelect = (month?: Date) => {
@@ -151,7 +151,7 @@ export const MonthPicker = forwardRef<HTMLDivElement, MonthPickerProps>(
151
151
  </div>
152
152
  </DateContext.Provider>
153
153
  );
154
- }
154
+ },
155
155
  ) as MonthPickerComponent;
156
156
 
157
157
  MonthPicker.Standalone = MonthPickerStandalone;
@@ -40,10 +40,10 @@ export const MonthPickerStandalone = forwardRef<
40
40
  year,
41
41
  onYearChange,
42
42
  },
43
- ref
43
+ ref,
44
44
  ) => {
45
45
  const [selectedMonth, setSelectedMonth] = useState<Date | undefined>(
46
- defaultSelected
46
+ defaultSelected,
47
47
  );
48
48
 
49
49
  const handleSelect = (month?: Date) => {
@@ -81,7 +81,7 @@ export const MonthPickerStandalone = forwardRef<
81
81
  </RootProvider>
82
82
  </div>
83
83
  );
84
- }
84
+ },
85
85
  );
86
86
 
87
87
  export default MonthPickerStandalone;
@@ -46,7 +46,7 @@ export const MonthSelector = () => {
46
46
  };
47
47
 
48
48
  const [tabRoot, setTabRoot] = useState(
49
- hasSelected ? selected : getRootFallback()
49
+ hasSelected ? selected : getRootFallback(),
50
50
  );
51
51
 
52
52
  if (tabRoot?.getFullYear() !== year.getFullYear()) {
@@ -1,6 +1,6 @@
1
- import { CalendarIcon } from "@navikt/aksel-icons";
2
1
  import cl from "clsx";
3
- import React, { forwardRef, InputHTMLAttributes, useRef } from "react";
2
+ import React, { InputHTMLAttributes, forwardRef, useRef } from "react";
3
+ import { CalendarIcon } from "@navikt/aksel-icons";
4
4
  import { ReadOnlyIcon } from "../../form/ReadOnlyIcon";
5
5
  import { FormFieldProps, useFormField } from "../../form/useFormField";
6
6
  import { BodyShort, ErrorMessage, Label } from "../../typography";
@@ -84,7 +84,7 @@ const DateInput = forwardRef<HTMLInputElement, DateInputProps>((props, ref) => {
84
84
  "navds-form-field--readonly": readOnly,
85
85
  "navds-text-field--readonly": readOnly,
86
86
  "navds-date__field--readonly": readOnly,
87
- }
87
+ },
88
88
  )}
89
89
  >
90
90
  <Label
@@ -121,7 +121,7 @@ const DateInput = forwardRef<HTMLInputElement, DateInputProps>((props, ref) => {
121
121
  "navds-date__field-input",
122
122
  "navds-text-field__input",
123
123
  "navds-body-short",
124
- `navds-body-short--${size}`
124
+ `navds-body-short--${size}`,
125
125
  )}
126
126
  size={isDatepickerVariant ? 11 : 14}
127
127
  />
@@ -159,9 +159,9 @@ const DateInput = forwardRef<HTMLInputElement, DateInputProps>((props, ref) => {
159
159
  });
160
160
 
161
161
  export const DatePickerInput = forwardRef<HTMLInputElement, DateInputProps>(
162
- (props, ref) => <DateInput {...props} ref={ref} />
162
+ (props, ref) => <DateInput {...props} ref={ref} />,
163
163
  );
164
164
 
165
165
  export const MonthPickerInput = forwardRef<HTMLInputElement, DateInputProps>(
166
- (props, ref) => <DateInput {...props} variant="monthpicker" ref={ref} />
166
+ (props, ref) => <DateInput {...props} variant="monthpicker" ref={ref} />,
167
167
  );
@@ -9,13 +9,13 @@ describe("Returns if date is in current month", () => {
9
9
 
10
10
  test("Date should not be within current month (false)", () => {
11
11
  expect(
12
- dateIsInCurrentMonth(new Date("Sep 2 2021"), selectedDate)
12
+ dateIsInCurrentMonth(new Date("Sep 2 2021"), selectedDate),
13
13
  ).toBeFalsy();
14
14
  expect(
15
- dateIsInCurrentMonth(new Date("Sep 1 2021"), selectedDate)
15
+ dateIsInCurrentMonth(new Date("Sep 1 2021"), selectedDate),
16
16
  ).toBeFalsy();
17
17
  expect(
18
- dateIsInCurrentMonth(new Date("Sep 30 2021"), selectedDate)
18
+ dateIsInCurrentMonth(new Date("Sep 30 2021"), selectedDate),
19
19
  ).toBeFalsy();
20
20
  });
21
21
  });
@@ -1,6 +1,6 @@
1
- import { parseDate } from "../parse-date";
2
1
  import nb from "date-fns/locale/nb";
3
2
  import { formatDateForInput } from "../format-date";
3
+ import { parseDate } from "../parse-date";
4
4
 
5
5
  const parse = (inp: string) => parseDate(inp, new Date(), nb, "date", false);
6
6
  const parseTwoDigit = (inp: string) =>
@@ -9,24 +9,24 @@ const parseTwoDigit = (inp: string) =>
9
9
  describe("Format date to correct output", () => {
10
10
  test("formatDateForInput", () => {
11
11
  expect(formatDateForInput(parse("15/05/2022"), nb, "date")).toEqual(
12
- "15.05.2022"
12
+ "15.05.2022",
13
13
  );
14
14
  expect(formatDateForInput(parse("1/5/2022"), nb, "date")).toEqual(
15
- "01.05.2022"
15
+ "01.05.2022",
16
16
  );
17
17
  expect(formatDateForInput(parse("1/05/2022"), nb, "date")).toEqual(
18
- "01.05.2022"
18
+ "01.05.2022",
19
19
  );
20
20
  expect(formatDateForInput(parse("15/5/2022"), nb, "date")).toEqual(
21
- "15.05.2022"
21
+ "15.05.2022",
22
22
  );
23
23
  });
24
24
  test("formatDateForInput with twoDigitYears", () => {
25
25
  expect(formatDateForInput(parseTwoDigit("15/05/22"), nb, "date")).toEqual(
26
- "15.05.2022"
26
+ "15.05.2022",
27
27
  );
28
28
  expect(formatDateForInput(parseTwoDigit("1/5/95"), nb, "date")).toEqual(
29
- "01.05.1995"
29
+ "01.05.1995",
30
30
  );
31
31
  });
32
32
  });
@@ -8,8 +8,8 @@ describe("Returns initial year for monthpicker", () => {
8
8
  new Date("Oct 4 2021"),
9
9
  getInitialYear({
10
10
  defaultMonth: new Date("Aug 4 2021"),
11
- })
12
- )
11
+ }),
12
+ ),
13
13
  ).toBeTruthy();
14
14
  });
15
15
  test("Default selected should not be valid (false)", () => {
@@ -18,8 +18,8 @@ describe("Returns initial year for monthpicker", () => {
18
18
  new Date("Oct 4 2021"),
19
19
  getInitialYear({
20
20
  defaultMonth: new Date("Aug 4 2020"),
21
- })
22
- )
21
+ }),
22
+ ),
23
23
  ).toBeFalsy();
24
24
  });
25
25
  test("Default selected should be valid with fromDate", () => {
@@ -30,8 +30,8 @@ describe("Returns initial year for monthpicker", () => {
30
30
  defaultMonth: new Date("Aug 4 2021"),
31
31
  /* toDate: new Date("Oct 4 2021"), */
32
32
  fromDate: new Date("Oct 4 2021"),
33
- })
34
- )
33
+ }),
34
+ ),
35
35
  ).toBeTruthy();
36
36
  });
37
37
  test("Default selected should be valid with toDate", () => {
@@ -41,8 +41,8 @@ describe("Returns initial year for monthpicker", () => {
41
41
  getInitialYear({
42
42
  defaultMonth: new Date("Aug 4 2021"),
43
43
  toDate: new Date("Jun 4 2021"),
44
- })
45
- )
44
+ }),
45
+ ),
46
46
  ).toBeTruthy();
47
47
  });
48
48
  test("Default selected should be moved to toDate", () => {
@@ -52,8 +52,8 @@ describe("Returns initial year for monthpicker", () => {
52
52
  getInitialYear({
53
53
  defaultMonth: new Date("Aug 4 2021"),
54
54
  toDate: new Date("Jun 4 2020"),
55
- })
56
- )
55
+ }),
56
+ ),
57
57
  ).toBeTruthy();
58
58
  });
59
59
  test("Default selected should be moved to fromDate", () => {
@@ -63,8 +63,8 @@ describe("Returns initial year for monthpicker", () => {
63
63
  getInitialYear({
64
64
  defaultMonth: new Date("Aug 4 2021"),
65
65
  fromDate: new Date("Jun 4 2022"),
66
- })
67
- )
66
+ }),
67
+ ),
68
68
  ).toBeTruthy();
69
69
  });
70
70
  test("Default selected should be moved to fromDate, not toDate", () => {
@@ -75,8 +75,8 @@ describe("Returns initial year for monthpicker", () => {
75
75
  defaultMonth: new Date("Aug 4 2021"),
76
76
  toDate: new Date("Oct 4 2023"),
77
77
  fromDate: new Date("Jun 4 2022"),
78
- })
79
- )
78
+ }),
79
+ ),
80
80
  ).toBeTruthy();
81
81
  });
82
82
  });
@@ -1,6 +1,5 @@
1
1
  /* https://github.com/gpbl/react-day-picker/blob/main/src/components/Table/utils/getMonthWeeks.test.ts */
2
2
  import { enGB, nb } from "date-fns/locale";
3
-
4
3
  import { getMonthWeeks } from "../get-month-weeks";
5
4
 
6
5
  describe('when using the "nB" locale', () => {