@navikt/ds-react 7.8.1 → 7.9.1

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 (424) hide show
  1. package/README.md +2 -2
  2. package/cjs/accordion/AccordionContent.js +2 -2
  3. package/cjs/accordion/AccordionContent.js.map +1 -1
  4. package/cjs/accordion/AccordionHeader.js +2 -2
  5. package/cjs/accordion/AccordionHeader.js.map +1 -1
  6. package/cjs/alert/Alert.js +2 -2
  7. package/cjs/alert/Alert.js.map +1 -1
  8. package/cjs/button/Button.js +9 -25
  9. package/cjs/button/Button.js.map +1 -1
  10. package/cjs/chips/Removable.js +2 -2
  11. package/cjs/chips/Removable.js.map +1 -1
  12. package/cjs/copybutton/CopyButton.js +2 -2
  13. package/cjs/copybutton/CopyButton.js.map +1 -1
  14. package/cjs/date/context/useDateTranslationContext.d.ts +1 -1
  15. package/cjs/date/datepicker/DatePicker.js +3 -3
  16. package/cjs/date/datepicker/DatePicker.js.map +1 -1
  17. package/cjs/date/datepicker/DatePickerStandalone.js +3 -3
  18. package/cjs/date/datepicker/DatePickerStandalone.js.map +1 -1
  19. package/cjs/date/datepicker/parts/WeekNumber.js +2 -2
  20. package/cjs/date/datepicker/parts/WeekNumber.js.map +1 -1
  21. package/cjs/date/hooks/useDatepicker.js +2 -2
  22. package/cjs/date/hooks/useDatepicker.js.map +1 -1
  23. package/cjs/date/hooks/useMonthPicker.js +2 -2
  24. package/cjs/date/hooks/useMonthPicker.js.map +1 -1
  25. package/cjs/date/hooks/useRangeDatepicker.js +2 -2
  26. package/cjs/date/hooks/useRangeDatepicker.js.map +1 -1
  27. package/cjs/date/monthpicker/MonthPicker.js +3 -3
  28. package/cjs/date/monthpicker/MonthPicker.js.map +1 -1
  29. package/cjs/date/monthpicker/MonthPickerStandalone.js +3 -3
  30. package/cjs/date/monthpicker/MonthPickerStandalone.js.map +1 -1
  31. package/cjs/date/parts/DateInput.js +1 -1
  32. package/cjs/date/parts/DateInput.js.map +1 -1
  33. package/cjs/date/parts/DateWrapper.d.ts +1 -1
  34. package/cjs/date/parts/DateWrapper.js +2 -2
  35. package/cjs/date/parts/DateWrapper.js.map +1 -1
  36. package/cjs/expansion-card/ExpansionCardHeader.js +2 -2
  37. package/cjs/expansion-card/ExpansionCardHeader.js.map +1 -1
  38. package/cjs/form/ReadOnlyIcon.js +2 -2
  39. package/cjs/form/ReadOnlyIcon.js.map +1 -1
  40. package/cjs/form/combobox/Combobox.d.ts +1 -1
  41. package/cjs/form/combobox/Combobox.js +1 -1
  42. package/cjs/form/combobox/Combobox.js.map +1 -1
  43. package/cjs/form/combobox/FilteredOptions/AddNewOption.js +2 -2
  44. package/cjs/form/combobox/FilteredOptions/AddNewOption.js.map +1 -1
  45. package/cjs/form/combobox/FilteredOptions/LoadingMessage.js +2 -2
  46. package/cjs/form/combobox/FilteredOptions/LoadingMessage.js.map +1 -1
  47. package/cjs/form/combobox/FilteredOptions/MaxSelectedMessage.js +2 -2
  48. package/cjs/form/combobox/FilteredOptions/MaxSelectedMessage.js.map +1 -1
  49. package/cjs/form/combobox/Input/InputController.d.ts +1 -1
  50. package/cjs/form/confirmation-panel/ConfirmationPanel.js +1 -1
  51. package/cjs/form/confirmation-panel/ConfirmationPanel.js.map +1 -1
  52. package/cjs/form/error-summary/ErrorSummary.js +2 -2
  53. package/cjs/form/error-summary/ErrorSummary.js.map +1 -1
  54. package/cjs/form/fieldset/Fieldset.js +1 -1
  55. package/cjs/form/fieldset/Fieldset.js.map +1 -1
  56. package/cjs/form/file-upload/parts/dropzone/Dropzone.js +3 -3
  57. package/cjs/form/file-upload/parts/dropzone/Dropzone.js.map +1 -1
  58. package/cjs/form/file-upload/parts/item/Item.js +2 -2
  59. package/cjs/form/file-upload/parts/item/Item.js.map +1 -1
  60. package/cjs/form/form-progress/FormProgress.js +2 -2
  61. package/cjs/form/form-progress/FormProgress.js.map +1 -1
  62. package/cjs/form/form-summary/FormSummaryEditLink.js +2 -2
  63. package/cjs/form/form-summary/FormSummaryEditLink.js.map +1 -1
  64. package/cjs/form/search/Search.js +5 -5
  65. package/cjs/form/search/Search.js.map +1 -1
  66. package/cjs/form/search/SearchButton.js +2 -2
  67. package/cjs/form/search/SearchButton.js.map +1 -1
  68. package/cjs/form/select/Select.js +1 -1
  69. package/cjs/form/select/Select.js.map +1 -1
  70. package/cjs/form/switch/Switch.js +1 -7
  71. package/cjs/form/switch/Switch.js.map +1 -1
  72. package/cjs/form/textarea/Textarea.js +1 -1
  73. package/cjs/form/textarea/Textarea.js.map +1 -1
  74. package/cjs/form/textarea/TextareaCounter.js +2 -2
  75. package/cjs/form/textarea/TextareaCounter.js.map +1 -1
  76. package/cjs/form/textfield/TextField.js +1 -1
  77. package/cjs/form/textfield/TextField.js.map +1 -1
  78. package/cjs/guide-panel/GuidePanel.js +2 -2
  79. package/cjs/guide-panel/GuidePanel.js.map +1 -1
  80. package/cjs/guide-panel/Illustration.darkside.js +2 -2
  81. package/cjs/guide-panel/Illustration.darkside.js.map +1 -1
  82. package/cjs/guide-panel/Illustration.js +2 -2
  83. package/cjs/guide-panel/Illustration.js.map +1 -1
  84. package/cjs/help-text/HelpText.js +4 -4
  85. package/cjs/help-text/HelpText.js.map +1 -1
  86. package/cjs/internal-header/InternalHeader.js +3 -3
  87. package/cjs/internal-header/InternalHeader.js.map +1 -1
  88. package/cjs/layout/base/BasePrimitive.js +2 -2
  89. package/cjs/layout/base/BasePrimitive.js.map +1 -1
  90. package/cjs/layout/bleed/Bleed.js +2 -2
  91. package/cjs/layout/bleed/Bleed.js.map +1 -1
  92. package/cjs/layout/box/Box.js +2 -2
  93. package/cjs/layout/box/Box.js.map +1 -1
  94. package/cjs/layout/grid/HGrid.js +2 -2
  95. package/cjs/layout/grid/HGrid.js.map +1 -1
  96. package/cjs/layout/page/Page.js +2 -2
  97. package/cjs/layout/page/Page.js.map +1 -1
  98. package/cjs/layout/stack/Stack.js +2 -2
  99. package/cjs/layout/stack/Stack.js.map +1 -1
  100. package/cjs/link/stories/RandomIcon.d.ts +2 -0
  101. package/cjs/link/stories/RandomIcon.js +39 -0
  102. package/cjs/link/stories/RandomIcon.js.map +1 -0
  103. package/cjs/loader/Loader.js +2 -2
  104. package/cjs/loader/Loader.js.map +1 -1
  105. package/cjs/modal/ModalHeader.js +2 -2
  106. package/cjs/modal/ModalHeader.js.map +1 -1
  107. package/cjs/overlays/action-menu/ActionMenu.js +2 -2
  108. package/cjs/overlays/action-menu/ActionMenu.js.map +1 -1
  109. package/cjs/pagination/Pagination.js +2 -2
  110. package/cjs/pagination/Pagination.js.map +1 -1
  111. package/cjs/pagination/PaginationItem.js +2 -2
  112. package/cjs/pagination/PaginationItem.js.map +1 -1
  113. package/cjs/popover/Popover.js +2 -2
  114. package/cjs/popover/Popover.js.map +1 -1
  115. package/cjs/portal/Portal.js +12 -0
  116. package/cjs/portal/Portal.js.map +1 -1
  117. package/cjs/progress-bar/ProgressBar.js +2 -2
  118. package/cjs/progress-bar/ProgressBar.js.map +1 -1
  119. package/cjs/provider/index.d.ts +0 -1
  120. package/cjs/provider/index.js +1 -4
  121. package/cjs/provider/index.js.map +1 -1
  122. package/cjs/read-more/ReadMore.js +1 -3
  123. package/cjs/read-more/ReadMore.js.map +1 -1
  124. package/cjs/table/ExpandableRow.js +2 -2
  125. package/cjs/table/ExpandableRow.js.map +1 -1
  126. package/cjs/tabs/Tabs.context.d.ts +1 -1
  127. package/cjs/tabs/parts/tablist/useScrollButtons.d.ts +1 -1
  128. package/cjs/theme/Theme.d.ts +16 -0
  129. package/cjs/{provider/theme/AkselTheme.js → theme/Theme.js} +17 -18
  130. package/cjs/theme/Theme.js.map +1 -0
  131. package/cjs/theme/index.d.ts +1 -0
  132. package/cjs/theme/index.js +7 -0
  133. package/cjs/theme/index.js.map +1 -0
  134. package/cjs/timeline/AxisLabels.js +3 -3
  135. package/cjs/timeline/AxisLabels.js.map +1 -1
  136. package/cjs/timeline/Pin.js +4 -4
  137. package/cjs/timeline/Pin.js.map +1 -1
  138. package/cjs/timeline/TimelineRow.js +2 -2
  139. package/cjs/timeline/TimelineRow.js.map +1 -1
  140. package/cjs/timeline/period/ClickablePeriod.js +4 -4
  141. package/cjs/timeline/period/ClickablePeriod.js.map +1 -1
  142. package/cjs/timeline/period/NonClickablePeriod.js +2 -2
  143. package/cjs/timeline/period/NonClickablePeriod.js.map +1 -1
  144. package/cjs/timeline/utils/period.d.ts +1 -1
  145. package/cjs/timeline/zoom/ZoomButton.js +2 -2
  146. package/cjs/timeline/zoom/ZoomButton.js.map +1 -1
  147. package/cjs/toggle-group/parts/ToggleItem.js +1 -1
  148. package/cjs/toggle-group/parts/ToggleItem.js.map +1 -1
  149. package/cjs/tooltip/Tooltip.js +2 -2
  150. package/cjs/tooltip/Tooltip.js.map +1 -1
  151. package/cjs/typography/ErrorMessage.d.ts +4 -0
  152. package/cjs/typography/ErrorMessage.js +6 -2
  153. package/cjs/typography/ErrorMessage.js.map +1 -1
  154. package/cjs/util/TextareaAutoSize.js +1 -1
  155. package/cjs/util/TextareaAutoSize.js.map +1 -1
  156. package/cjs/util/debounce.d.ts +2 -2
  157. package/cjs/util/debounce.js +5 -1
  158. package/cjs/util/debounce.js.map +1 -1
  159. package/cjs/util/i18n/i18n.hooks.d.ts +4 -0
  160. package/cjs/util/i18n/{i18n.context.js → i18n.hooks.js} +3 -7
  161. package/cjs/util/i18n/i18n.hooks.js.map +1 -0
  162. package/cjs/util/i18n/i18n.types.d.ts +4 -0
  163. package/cjs/util/i18n/locales/nb.d.ts +81 -4
  164. package/cjs/util/i18n/locales/nb.js +81 -4
  165. package/cjs/util/i18n/locales/nb.js.map +1 -1
  166. package/esm/accordion/AccordionContent.js +2 -2
  167. package/esm/accordion/AccordionContent.js.map +1 -1
  168. package/esm/accordion/AccordionHeader.js +2 -2
  169. package/esm/accordion/AccordionHeader.js.map +1 -1
  170. package/esm/alert/Alert.js +1 -1
  171. package/esm/alert/Alert.js.map +1 -1
  172. package/esm/button/Button.js +10 -26
  173. package/esm/button/Button.js.map +1 -1
  174. package/esm/chips/Removable.js +1 -1
  175. package/esm/chips/Removable.js.map +1 -1
  176. package/esm/copybutton/CopyButton.js +1 -1
  177. package/esm/copybutton/CopyButton.js.map +1 -1
  178. package/esm/date/context/useDateTranslationContext.d.ts +1 -1
  179. package/esm/date/datepicker/DatePicker.js +1 -1
  180. package/esm/date/datepicker/DatePicker.js.map +1 -1
  181. package/esm/date/datepicker/DatePickerStandalone.js +1 -1
  182. package/esm/date/datepicker/DatePickerStandalone.js.map +1 -1
  183. package/esm/date/datepicker/parts/WeekNumber.js +2 -2
  184. package/esm/date/datepicker/parts/WeekNumber.js.map +1 -1
  185. package/esm/date/hooks/useDatepicker.js +1 -1
  186. package/esm/date/hooks/useDatepicker.js.map +1 -1
  187. package/esm/date/hooks/useMonthPicker.js +1 -1
  188. package/esm/date/hooks/useMonthPicker.js.map +1 -1
  189. package/esm/date/hooks/useRangeDatepicker.js +1 -1
  190. package/esm/date/hooks/useRangeDatepicker.js.map +1 -1
  191. package/esm/date/monthpicker/MonthPicker.js +1 -1
  192. package/esm/date/monthpicker/MonthPicker.js.map +1 -1
  193. package/esm/date/monthpicker/MonthPickerStandalone.js +1 -1
  194. package/esm/date/monthpicker/MonthPickerStandalone.js.map +1 -1
  195. package/esm/date/parts/DateInput.js +1 -1
  196. package/esm/date/parts/DateInput.js.map +1 -1
  197. package/esm/date/parts/DateWrapper.d.ts +1 -1
  198. package/esm/date/parts/DateWrapper.js +1 -1
  199. package/esm/date/parts/DateWrapper.js.map +1 -1
  200. package/esm/expansion-card/ExpansionCardHeader.js +1 -1
  201. package/esm/expansion-card/ExpansionCardHeader.js.map +1 -1
  202. package/esm/form/ReadOnlyIcon.js +1 -1
  203. package/esm/form/ReadOnlyIcon.js.map +1 -1
  204. package/esm/form/combobox/Combobox.d.ts +1 -1
  205. package/esm/form/combobox/Combobox.js +1 -1
  206. package/esm/form/combobox/Combobox.js.map +1 -1
  207. package/esm/form/combobox/FilteredOptions/AddNewOption.js +1 -1
  208. package/esm/form/combobox/FilteredOptions/AddNewOption.js.map +1 -1
  209. package/esm/form/combobox/FilteredOptions/LoadingMessage.js +1 -1
  210. package/esm/form/combobox/FilteredOptions/LoadingMessage.js.map +1 -1
  211. package/esm/form/combobox/FilteredOptions/MaxSelectedMessage.js +1 -1
  212. package/esm/form/combobox/FilteredOptions/MaxSelectedMessage.js.map +1 -1
  213. package/esm/form/combobox/Input/InputController.d.ts +1 -1
  214. package/esm/form/confirmation-panel/ConfirmationPanel.js +1 -1
  215. package/esm/form/confirmation-panel/ConfirmationPanel.js.map +1 -1
  216. package/esm/form/error-summary/ErrorSummary.js +1 -1
  217. package/esm/form/error-summary/ErrorSummary.js.map +1 -1
  218. package/esm/form/fieldset/Fieldset.js +1 -1
  219. package/esm/form/fieldset/Fieldset.js.map +1 -1
  220. package/esm/form/file-upload/parts/dropzone/Dropzone.js +2 -2
  221. package/esm/form/file-upload/parts/dropzone/Dropzone.js.map +1 -1
  222. package/esm/form/file-upload/parts/item/Item.js +1 -1
  223. package/esm/form/file-upload/parts/item/Item.js.map +1 -1
  224. package/esm/form/form-progress/FormProgress.js +1 -1
  225. package/esm/form/form-progress/FormProgress.js.map +1 -1
  226. package/esm/form/form-summary/FormSummaryEditLink.js +1 -1
  227. package/esm/form/form-summary/FormSummaryEditLink.js.map +1 -1
  228. package/esm/form/search/Search.js +4 -4
  229. package/esm/form/search/Search.js.map +1 -1
  230. package/esm/form/search/SearchButton.js +1 -1
  231. package/esm/form/search/SearchButton.js.map +1 -1
  232. package/esm/form/select/Select.js +1 -1
  233. package/esm/form/select/Select.js.map +1 -1
  234. package/esm/form/switch/Switch.js +1 -7
  235. package/esm/form/switch/Switch.js.map +1 -1
  236. package/esm/form/textarea/Textarea.js +1 -1
  237. package/esm/form/textarea/Textarea.js.map +1 -1
  238. package/esm/form/textarea/TextareaCounter.js +1 -1
  239. package/esm/form/textarea/TextareaCounter.js.map +1 -1
  240. package/esm/form/textfield/TextField.js +1 -1
  241. package/esm/form/textfield/TextField.js.map +1 -1
  242. package/esm/guide-panel/GuidePanel.js +2 -2
  243. package/esm/guide-panel/GuidePanel.js.map +1 -1
  244. package/esm/guide-panel/Illustration.darkside.js +1 -1
  245. package/esm/guide-panel/Illustration.darkside.js.map +1 -1
  246. package/esm/guide-panel/Illustration.js +1 -1
  247. package/esm/guide-panel/Illustration.js.map +1 -1
  248. package/esm/help-text/HelpText.js +3 -3
  249. package/esm/help-text/HelpText.js.map +1 -1
  250. package/esm/internal-header/InternalHeader.js +3 -3
  251. package/esm/internal-header/InternalHeader.js.map +1 -1
  252. package/esm/layout/base/BasePrimitive.js +2 -2
  253. package/esm/layout/base/BasePrimitive.js.map +1 -1
  254. package/esm/layout/bleed/Bleed.js +2 -2
  255. package/esm/layout/bleed/Bleed.js.map +1 -1
  256. package/esm/layout/box/Box.js +2 -2
  257. package/esm/layout/box/Box.js.map +1 -1
  258. package/esm/layout/grid/HGrid.js +2 -2
  259. package/esm/layout/grid/HGrid.js.map +1 -1
  260. package/esm/layout/page/Page.js +2 -2
  261. package/esm/layout/page/Page.js.map +1 -1
  262. package/esm/layout/stack/Stack.js +2 -2
  263. package/esm/layout/stack/Stack.js.map +1 -1
  264. package/esm/link/stories/RandomIcon.d.ts +2 -0
  265. package/esm/link/stories/RandomIcon.js +9 -0
  266. package/esm/link/stories/RandomIcon.js.map +1 -0
  267. package/esm/loader/Loader.js +1 -1
  268. package/esm/loader/Loader.js.map +1 -1
  269. package/esm/modal/ModalHeader.js +1 -1
  270. package/esm/modal/ModalHeader.js.map +1 -1
  271. package/esm/overlays/action-menu/ActionMenu.js +2 -2
  272. package/esm/overlays/action-menu/ActionMenu.js.map +1 -1
  273. package/esm/pagination/Pagination.js +1 -1
  274. package/esm/pagination/Pagination.js.map +1 -1
  275. package/esm/pagination/PaginationItem.js +2 -2
  276. package/esm/pagination/PaginationItem.js.map +1 -1
  277. package/esm/popover/Popover.js +2 -2
  278. package/esm/popover/Popover.js.map +1 -1
  279. package/esm/portal/Portal.js +12 -0
  280. package/esm/portal/Portal.js.map +1 -1
  281. package/esm/progress-bar/ProgressBar.js +1 -1
  282. package/esm/progress-bar/ProgressBar.js.map +1 -1
  283. package/esm/provider/index.d.ts +0 -1
  284. package/esm/provider/index.js +0 -1
  285. package/esm/provider/index.js.map +1 -1
  286. package/esm/read-more/ReadMore.js +1 -3
  287. package/esm/read-more/ReadMore.js.map +1 -1
  288. package/esm/table/ExpandableRow.js +1 -1
  289. package/esm/table/ExpandableRow.js.map +1 -1
  290. package/esm/tabs/Tabs.context.d.ts +1 -1
  291. package/esm/tabs/parts/tablist/useScrollButtons.d.ts +1 -1
  292. package/esm/theme/Theme.d.ts +16 -0
  293. package/esm/theme/Theme.js +21 -0
  294. package/esm/theme/Theme.js.map +1 -0
  295. package/esm/theme/index.d.ts +1 -0
  296. package/esm/theme/index.js +3 -0
  297. package/esm/theme/index.js.map +1 -0
  298. package/esm/timeline/AxisLabels.js +1 -1
  299. package/esm/timeline/AxisLabels.js.map +1 -1
  300. package/esm/timeline/Pin.js +3 -3
  301. package/esm/timeline/Pin.js.map +1 -1
  302. package/esm/timeline/TimelineRow.js +1 -1
  303. package/esm/timeline/TimelineRow.js.map +1 -1
  304. package/esm/timeline/period/ClickablePeriod.js +3 -3
  305. package/esm/timeline/period/ClickablePeriod.js.map +1 -1
  306. package/esm/timeline/period/NonClickablePeriod.js +1 -1
  307. package/esm/timeline/period/NonClickablePeriod.js.map +1 -1
  308. package/esm/timeline/utils/period.d.ts +1 -1
  309. package/esm/timeline/zoom/ZoomButton.js +1 -1
  310. package/esm/timeline/zoom/ZoomButton.js.map +1 -1
  311. package/esm/toggle-group/parts/ToggleItem.js +1 -1
  312. package/esm/toggle-group/parts/ToggleItem.js.map +1 -1
  313. package/esm/tooltip/Tooltip.js +2 -2
  314. package/esm/tooltip/Tooltip.js.map +1 -1
  315. package/esm/typography/ErrorMessage.d.ts +4 -0
  316. package/esm/typography/ErrorMessage.js +6 -2
  317. package/esm/typography/ErrorMessage.js.map +1 -1
  318. package/esm/util/TextareaAutoSize.js +1 -1
  319. package/esm/util/TextareaAutoSize.js.map +1 -1
  320. package/esm/util/debounce.d.ts +2 -2
  321. package/esm/util/debounce.js +5 -1
  322. package/esm/util/debounce.js.map +1 -1
  323. package/esm/util/i18n/i18n.hooks.d.ts +4 -0
  324. package/esm/util/i18n/{i18n.context.js → i18n.hooks.js} +3 -7
  325. package/esm/util/i18n/{i18n.context.js.map → i18n.hooks.js.map} +1 -1
  326. package/esm/util/i18n/i18n.types.d.ts +4 -0
  327. package/esm/util/i18n/locales/nb.d.ts +81 -4
  328. package/esm/util/i18n/locales/nb.js +81 -4
  329. package/esm/util/i18n/locales/nb.js.map +1 -1
  330. package/package.json +17 -12
  331. package/src/accordion/AccordionContent.tsx +2 -2
  332. package/src/accordion/AccordionHeader.tsx +2 -2
  333. package/src/alert/Alert.tsx +1 -1
  334. package/src/button/Button.tsx +20 -50
  335. package/src/chips/Removable.tsx +1 -1
  336. package/src/copybutton/CopyButton.tsx +1 -1
  337. package/src/date/context/useDateTranslationContext.ts +1 -1
  338. package/src/date/datepicker/DatePicker.tsx +1 -1
  339. package/src/date/datepicker/DatePickerStandalone.tsx +1 -1
  340. package/src/date/datepicker/datepicker.test.tsx +2 -5
  341. package/src/date/datepicker/parts/WeekNumber.tsx +2 -2
  342. package/src/date/hooks/useDatepicker.tsx +1 -1
  343. package/src/date/hooks/useMonthPicker.tsx +1 -1
  344. package/src/date/hooks/useRangeDatepicker.test.tsx +5 -10
  345. package/src/date/hooks/useRangeDatepicker.tsx +1 -1
  346. package/src/date/monthpicker/MonthPicker.tsx +1 -1
  347. package/src/date/monthpicker/MonthPickerStandalone.tsx +1 -1
  348. package/src/date/parts/DateInput.tsx +5 -1
  349. package/src/date/parts/DateWrapper.tsx +2 -1
  350. package/src/expansion-card/ExpansionCardHeader.tsx +1 -1
  351. package/src/form/ReadOnlyIcon.tsx +1 -1
  352. package/src/form/combobox/Combobox.tsx +5 -1
  353. package/src/form/combobox/FilteredOptions/AddNewOption.tsx +1 -1
  354. package/src/form/combobox/FilteredOptions/LoadingMessage.tsx +1 -1
  355. package/src/form/combobox/FilteredOptions/MaxSelectedMessage.tsx +1 -1
  356. package/src/form/confirmation-panel/ConfirmationPanel.tsx +5 -1
  357. package/src/form/error-summary/ErrorSummary.tsx +1 -1
  358. package/src/form/fieldset/Fieldset.tsx +3 -1
  359. package/src/form/file-upload/parts/dropzone/Dropzone.tsx +2 -2
  360. package/src/form/file-upload/parts/item/Item.tsx +1 -1
  361. package/src/form/form-progress/FormProgress.tsx +1 -1
  362. package/src/form/form-summary/FormSummaryEditLink.tsx +1 -1
  363. package/src/form/search/Search.tsx +6 -4
  364. package/src/form/search/SearchButton.tsx +1 -1
  365. package/src/form/select/Select.tsx +3 -1
  366. package/src/form/switch/Switch.tsx +1 -10
  367. package/src/form/textarea/Textarea.tsx +3 -1
  368. package/src/form/textarea/TextareaCounter.tsx +1 -1
  369. package/src/form/textfield/TextField.tsx +3 -1
  370. package/src/guide-panel/GuidePanel.tsx +2 -2
  371. package/src/guide-panel/Illustration.darkside.tsx +1 -1
  372. package/src/guide-panel/Illustration.tsx +1 -1
  373. package/src/help-text/HelpText.tsx +3 -3
  374. package/src/internal-header/InternalHeader.tsx +4 -4
  375. package/src/layout/base/BasePrimitive.tsx +2 -2
  376. package/src/layout/bleed/Bleed.tsx +2 -2
  377. package/src/layout/box/Box.tsx +2 -2
  378. package/src/layout/grid/HGrid.tsx +2 -2
  379. package/src/layout/page/Page.tsx +2 -2
  380. package/src/layout/stack/Stack.tsx +2 -2
  381. package/src/loader/Loader.tsx +1 -1
  382. package/src/modal/ModalHeader.tsx +1 -1
  383. package/src/overlays/action-menu/ActionMenu.tsx +2 -2
  384. package/src/pagination/Pagination.tsx +1 -1
  385. package/src/pagination/PaginationItem.tsx +2 -2
  386. package/src/popover/Popover.tsx +2 -2
  387. package/src/portal/Portal.tsx +17 -0
  388. package/src/progress-bar/ProgressBar.tsx +1 -1
  389. package/src/provider/index.ts +0 -4
  390. package/src/read-more/ReadMore.tsx +1 -4
  391. package/src/table/ExpandableRow.tsx +1 -1
  392. package/src/tabs/Tabs.test.tsx +4 -12
  393. package/src/theme/Theme.tsx +60 -0
  394. package/src/theme/index.ts +2 -0
  395. package/src/timeline/AxisLabels.tsx +2 -1
  396. package/src/timeline/Pin.tsx +3 -3
  397. package/src/timeline/TimelineRow.tsx +1 -1
  398. package/src/timeline/period/ClickablePeriod.tsx +3 -3
  399. package/src/timeline/period/NonClickablePeriod.tsx +1 -1
  400. package/src/timeline/utils/period.ts +1 -1
  401. package/src/timeline/zoom/ZoomButton.tsx +1 -1
  402. package/src/toggle-group/parts/ToggleItem.tsx +1 -0
  403. package/src/tooltip/Tooltip.tsx +2 -2
  404. package/src/typography/ErrorMessage.tsx +36 -2
  405. package/src/util/TextareaAutoSize.tsx +15 -11
  406. package/src/util/debounce.ts +11 -3
  407. package/src/util/i18n/{i18n.context.test.tsx → i18n.hooks.test.tsx} +62 -3
  408. package/src/util/i18n/{i18n.context.ts → i18n.hooks.ts} +3 -19
  409. package/src/util/i18n/i18n.types.ts +12 -0
  410. package/cjs/modal/types.test-d.d.ts +0 -1
  411. package/cjs/modal/types.test-d.js +0 -67
  412. package/cjs/modal/types.test-d.js.map +0 -1
  413. package/cjs/provider/theme/AkselTheme.d.ts +0 -22
  414. package/cjs/provider/theme/AkselTheme.js.map +0 -1
  415. package/cjs/util/i18n/i18n.context.d.ts +0 -9
  416. package/cjs/util/i18n/i18n.context.js.map +0 -1
  417. package/esm/modal/types.test-d.d.ts +0 -1
  418. package/esm/modal/types.test-d.js +0 -65
  419. package/esm/modal/types.test-d.js.map +0 -1
  420. package/esm/provider/theme/AkselTheme.d.ts +0 -22
  421. package/esm/provider/theme/AkselTheme.js +0 -22
  422. package/esm/provider/theme/AkselTheme.js.map +0 -1
  423. package/esm/util/i18n/i18n.context.d.ts +0 -9
  424. package/src/provider/theme/AkselTheme.tsx +0 -70
@@ -2,133 +2,210 @@ import { nb } from "date-fns/locale";
2
2
  export default {
3
3
  global: {
4
4
  dateLocale: nb,
5
+ /** @default "Vis mer" */
5
6
  showMore: "Vis mer",
7
+ /** @default "Vis mindre" */
6
8
  showLess: "Vis mindre",
9
+ /** @default "Skrivebeskyttet" */
7
10
  readOnly: "Skrivebeskyttet",
11
+ /** @default "Lukk" */
8
12
  close: "Lukk",
9
13
  },
10
14
  Alert: {
15
+ /** @default "Lukk varsel" */
11
16
  closeAlert: "Lukk varsel",
17
+ /** @default "Lukk melding" */
12
18
  closeMessage: "Lukk melding",
19
+ /** @default "Feil" */
13
20
  error: "Feil",
21
+ /** @default "Informasjon" */
14
22
  info: "Informasjon",
23
+ /** @default "Suksess" */
15
24
  success: "Suksess",
25
+ /** @default "Advarsel" */
16
26
  warning: "Advarsel",
17
27
  },
18
28
  Chips: {
19
29
  Removable: {
20
- /** Will be appended to the accessible name for the button. */
30
+ /** Will be appended to the accessible name for the button.
31
+ * @default "slett" */
21
32
  labelSuffix: "slett",
22
33
  },
23
34
  },
24
35
  Combobox: {
25
- /** The input value will be appended to the end of this text, e.g. `Legg til "input value"`. */
36
+ /** The input value will be appended to the end of this text, e.g. `Legg til "input value"`.
37
+ * @default "Legg til" */
26
38
  addOption: "Legg til",
27
- /** Loader title */
39
+ /** Loader title
40
+ * @default "Søker…" */
28
41
  loading: "Søker…",
42
+ /** @default "{selected} av maks {limit} er valgt." */
29
43
  maxSelected: "{selected} av maks {limit} er valgt.",
30
44
  },
31
45
  CopyButton: {
46
+ /** @default "Kopier" */
32
47
  title: "Kopier",
48
+ /** @default "Kopiert!" */
33
49
  activeText: "Kopiert!",
34
50
  },
35
51
  DatePicker: {
52
+ /** @default "Velg dato" */
36
53
  chooseDate: "Velg dato",
54
+ /** @default "Velg datoer" */
37
55
  chooseDates: "Velg datoer",
56
+ /** @default "Velg start- og sluttdato" */
38
57
  chooseDateRange: "Velg start- og sluttdato",
58
+ /** @default "Velg måned" */
39
59
  chooseMonth: "Velg måned",
60
+ /** @default "Uke" */
40
61
  week: "Uke",
62
+ /** @default "Uke {week}" */
41
63
  weekNumber: "Uke {week}",
64
+ /** @default "Velg uke {week}" */
42
65
  selectWeekNumber: "Velg uke {week}",
66
+ /** @default "Måned" */
43
67
  month: "Måned",
68
+ /** @default "Gå til neste måned" */
44
69
  goToNextMonth: "Gå til neste måned",
70
+ /** @default "Gå til forrige måned" */
45
71
  goToPreviousMonth: "Gå til forrige måned",
72
+ /** @default "År" */
46
73
  year: "År",
74
+ /** @default "Gå til neste år" */
47
75
  goToNextYear: "Gå til neste år",
76
+ /** @default "Gå til forrige år" */
48
77
  goToPreviousYear: "Gå til forrige år",
78
+ /** @default "Åpne datovelger" */
49
79
  openDatePicker: "Åpne datovelger",
80
+ /** @default "Åpne månedsvelger" */
50
81
  openMonthPicker: "Åpne månedsvelger",
82
+ /** @default "Lukk datovelger" */
51
83
  closeDatePicker: "Lukk datovelger",
84
+ /** @default "Lukk månedsvelger" */
52
85
  closeMonthPicker: "Lukk månedsvelger",
53
86
  },
54
87
  ErrorSummary: {
88
+ /** @default "Du må rette disse feilene før du kan fortsette:" */
55
89
  heading: "Du må rette disse feilene før du kan fortsette:",
56
90
  },
57
91
  FileUpload: {
58
92
  dropzone: {
93
+ /** @default "Velg fil" */
59
94
  button: "Velg fil",
95
+ /** @default "Velg filer" */
60
96
  buttonMultiple: "Velg filer",
97
+ /** @default "Dra og slipp filen her" */
61
98
  dragAndDrop: "Dra og slipp filen her",
99
+ /** @default "Dra og slipp filer her" */
62
100
  dragAndDropMultiple: "Dra og slipp filer her",
101
+ /** @default "Slipp" */
63
102
  drop: "Slipp",
103
+ /** @default "eller" */
64
104
  or: "eller",
105
+ /** @default "Filopplasting er deaktivert" */
65
106
  disabled: "Filopplasting er deaktivert",
107
+ /** @default "Du kan ikke laste opp flere filer" */
66
108
  disabledFilelimit: "Du kan ikke laste opp flere filer",
67
109
  },
68
110
  item: {
111
+ /** @default "Prøv å laste opp filen på nytt" */
69
112
  retryButtonTitle: "Prøv å laste opp filen på nytt",
113
+ /** @default "Slett filen" */
70
114
  deleteButtonTitle: "Slett filen",
115
+ /** @default "Laster opp…" */
71
116
  uploading: "Laster opp…",
117
+ /** @default "Laster ned…" */
72
118
  downloading: "Laster ned…",
73
119
  },
74
120
  },
75
121
  FormProgress: {
122
+ /** @default "Steg {activeStep} av {totalSteps}" */
76
123
  step: "Steg {activeStep} av {totalSteps}",
124
+ /** @default "Vis alle steg" */
77
125
  showAllSteps: "Vis alle steg",
126
+ /** @default "Skjul alle steg" */
78
127
  hideAllSteps: "Skjul alle steg",
79
128
  },
80
129
  FormSummary: {
130
+ /** @default "Endre svar" */
81
131
  editAnswer: "Endre svar",
82
132
  },
83
133
  GuidePanel: {
134
+ /** @default "Illustrasjon av veileder" */
84
135
  illustrationLabel: "Illustrasjon av veileder",
85
136
  },
86
137
  HelpText: {
138
+ /** @default "Mer informasjon" */
87
139
  title: "Mer informasjon",
88
140
  },
89
141
  Loader: {
142
+ /** @default "Venter…" */
90
143
  title: "Venter…",
91
144
  },
92
145
  Pagination: {
146
+ /** @default "Forrige" */
93
147
  previous: "Forrige",
148
+ /** @default "Neste" */
94
149
  next: "Neste",
95
150
  },
96
151
  ProgressBar: {
152
+ /** @default "{current} av {max}" */
97
153
  progress: "{current} av {max}",
154
+ /** @default "Fremdrift kan ikke beregnes, antatt tid er {seconds} sekunder." */
98
155
  progressUnknown: "Fremdrift kan ikke beregnes, antatt tid er {seconds} sekunder.",
99
156
  },
100
157
  Search: {
158
+ /** @default "Tøm feltet" */
101
159
  clear: "Tøm feltet",
160
+ /** @default "Søk" */
102
161
  search: "Søk",
103
162
  },
104
163
  Textarea: {
105
- /** Screen readers only */
164
+ /** Screen readers only
165
+ * @default "Tekstområde med plass til {maxLength} tegn." */
106
166
  maxLength: "Tekstområde med plass til {maxLength} tegn.",
167
+ /** @default "{chars} tegn for mye" */
107
168
  charsTooMany: "{chars} tegn for mye",
169
+ /** @default "{chars} tegn igjen" */
108
170
  charsLeft: "{chars} tegn igjen",
109
171
  },
110
172
  Timeline: {
173
+ /** @default "dd.MM.yyyy" */
111
174
  dateFormat: "dd.MM.yyyy",
175
+ /** @default "dd.MM" */
112
176
  dayFormat: "dd.MM",
177
+ /** @default "MMM yy" */
113
178
  monthFormat: "MMM yy",
179
+ /** @default "yyyy" */
114
180
  yearFormat: "yyyy",
115
181
  Row: {
182
+ /** @default "Ingen perioder" */
116
183
  noPeriods: "Ingen perioder",
184
+ /** @default "{start} til {end}" */
117
185
  period: "{start} til {end}",
118
186
  },
119
187
  Period: {
188
+ /** @default "Suksess" */
120
189
  success: "Suksess",
190
+ /** @default "Advarsel" */
121
191
  warning: "Advarsel",
192
+ /** @default "Fare" */
122
193
  danger: "Fare",
194
+ /** @default "Info" */
123
195
  info: "Info",
196
+ /** @default "Nøytral" */
124
197
  neutral: "Nøytral",
198
+ /** @default "{status} fra {start} til {end}" */
125
199
  period: "{status} fra {start} til {end}",
126
200
  },
127
201
  Pin: {
202
+ /** @default "Pin: {date}" */
128
203
  pin: "Pin: {date}",
129
204
  },
130
205
  Zoom: {
206
+ /** @default "Zoom tidslinjen {start} til {end}" */
131
207
  zoom: "Zoom tidslinjen {start} til {end}",
208
+ /** @default "Tilbakestill tidsperspektiv" */
132
209
  reset: "Tilbakestill tidsperspektiv",
133
210
  },
134
211
  },
@@ -1 +1 @@
1
- {"version":3,"file":"nb.js","sourceRoot":"","sources":["../../../../src/util/i18n/locales/nb.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nb.js","sourceRoot":"","sources":["../../../../src/util/i18n/locales/nb.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@navikt/ds-react",
3
- "version": "7.8.1",
3
+ "version": "7.9.1",
4
4
  "description": "React components from the Norwegian Labour and Welfare Administration.",
5
5
  "author": "Aksel, a team part of the Norwegian Labour and Welfare Administration.",
6
6
  "license": "MIT",
@@ -603,10 +603,11 @@
603
603
  "./package.json": "./package.json"
604
604
  },
605
605
  "scripts": {
606
- "docgen": "yarn tsx ../../../scripts/docgen.ts",
606
+ "docgen": "tsx ../../../scripts/docgen.ts",
607
+ "i18n-jsdoc": "tsx ./scripts/addJsdocToLocales.ts",
607
608
  "write-packagejson": "echo '{\"type\": \"module\"}' > esm/package.json",
608
609
  "clean": "rimraf cjs esm",
609
- "build": "concurrently \"tsc -p tsconfig.build.json\" \"tsc -p tsconfig.esm.json && tsc-alias -p tsconfig.esm.json && yarn write-packagejson\" ",
610
+ "build": "yarn i18n-jsdoc && concurrently \"tsc -p tsconfig.build.json\" \"tsc -p tsconfig.esm.json && tsc-alias -p tsconfig.esm.json && yarn write-packagejson\" && yarn i18n-jsdoc --cleanup",
610
611
  "watch": "tsc --watch -p tsconfig.esm.json",
611
612
  "test": "TZ=UTC vitest run -c tests/vitest.config.ts",
612
613
  "test:watch": "vitest watch"
@@ -614,20 +615,23 @@
614
615
  "dependencies": {
615
616
  "@floating-ui/react": "0.25.4",
616
617
  "@floating-ui/react-dom": "^2.0.9",
617
- "@navikt/aksel-icons": "^7.8.1",
618
- "@navikt/ds-tokens": "^7.8.1",
618
+ "@navikt/aksel-icons": "^7.9.1",
619
+ "@navikt/ds-tokens": "^7.9.1",
619
620
  "clsx": "^2.1.0",
620
621
  "date-fns": "^3.0.0",
621
622
  "react-day-picker": "8.10.1"
622
623
  },
623
624
  "devDependencies": {
624
- "@testing-library/dom": "9.3.4",
625
- "@testing-library/jest-dom": "^5.16.0",
626
- "@testing-library/react": "^15.0.7",
627
- "@testing-library/user-event": "^14.2.0",
625
+ "@testing-library/dom": "10.4.0",
626
+ "@testing-library/jest-dom": "^6.6.3",
627
+ "@testing-library/react": "^16.1.0",
628
+ "@testing-library/user-event": "^14.5.2",
629
+ "@types/jscodeshift": "^0.11.11",
630
+ "aksel": "workspace:^",
628
631
  "concurrently": "9.0.1",
629
632
  "fast-glob": "3.2.11",
630
- "jsdom": "24.0.0",
633
+ "jscodeshift": "^0.15.1",
634
+ "jsdom": "25.0.1",
631
635
  "react-dom": "^18.0.0",
632
636
  "react-router-dom": "^6.3.0",
633
637
  "rimraf": "6.0.1",
@@ -635,7 +639,7 @@
635
639
  "tsc-alias": "1.8.8",
636
640
  "tsx": "^4.19.1",
637
641
  "typescript": "5.5.4",
638
- "vitest": "^1.2.2"
642
+ "vitest": "^2.1.8"
639
643
  },
640
644
  "peerDependencies": {
641
645
  "@types/react": ">=17.0.30",
@@ -645,5 +649,6 @@
645
649
  "@types/react": {
646
650
  "optional": true
647
651
  }
648
- }
652
+ },
653
+ "_comment": "The 'aksel' dependency tells yarn to install the root deps when installing deps for this package. Helps make it possible to contribute without access to GPR."
649
654
  }
@@ -1,6 +1,6 @@
1
1
  import cl from "clsx";
2
2
  import React, { forwardRef, useContext } from "react";
3
- import { UNSAFE_useAkselTheme } from "../provider";
3
+ import { useThemeInternal } from "../theme/Theme";
4
4
  import { BodyLong } from "../typography";
5
5
  import { AccordionItemContext } from "./AccordionItem";
6
6
 
@@ -16,7 +16,7 @@ const AccordionContent = forwardRef<HTMLDivElement, AccordionContentProps>(
16
16
  ({ children, className, ...rest }, ref) => {
17
17
  const context = useContext(AccordionItemContext);
18
18
 
19
- const themeContext = UNSAFE_useAkselTheme(false);
19
+ const themeContext = useThemeInternal(false);
20
20
 
21
21
  if (context === null) {
22
22
  console.error(
@@ -1,7 +1,7 @@
1
1
  import cl from "clsx";
2
2
  import React, { forwardRef, useContext } from "react";
3
3
  import { ChevronDownIcon } from "@navikt/aksel-icons";
4
- import { UNSAFE_useAkselTheme } from "../provider";
4
+ import { useThemeInternal } from "../theme/Theme";
5
5
  import { Heading } from "../typography";
6
6
  import { composeEventHandlers } from "../util/composeEventHandlers";
7
7
  import { AccordionContext } from "./AccordionContext";
@@ -20,7 +20,7 @@ const AccordionHeader = forwardRef<HTMLButtonElement, AccordionHeaderProps>(
20
20
  const itemContext = useContext(AccordionItemContext);
21
21
  const accordionContext = useContext(AccordionContext);
22
22
 
23
- const themeContext = UNSAFE_useAkselTheme(false);
23
+ const themeContext = useThemeInternal(false);
24
24
 
25
25
  if (itemContext === null) {
26
26
  console.error(
@@ -9,7 +9,7 @@ import {
9
9
  } from "@navikt/aksel-icons";
10
10
  import { Button } from "../button";
11
11
  import { BodyLong } from "../typography";
12
- import { useI18n } from "../util/i18n/i18n.context";
12
+ import { useI18n } from "../util/i18n/i18n.hooks";
13
13
 
14
14
  export interface AlertProps extends React.HTMLAttributes<HTMLDivElement> {
15
15
  /**
@@ -1,11 +1,9 @@
1
1
  import cl from "clsx";
2
- import React, { forwardRef, useRef, useState } from "react";
2
+ import React, { forwardRef } from "react";
3
3
  import { Loader } from "../loader";
4
4
  import { Label } from "../typography";
5
5
  import { omit } from "../util";
6
6
  import { composeEventHandlers } from "../util/composeEventHandlers";
7
- import { useClientLayoutEffect } from "../util/hooks";
8
- import { useMergeRefs } from "../util/hooks/useMergeRefs";
9
7
  import { OverridableComponent } from "../util/types";
10
8
 
11
9
  export interface ButtonProps
@@ -74,37 +72,18 @@ export const Button: OverridableComponent<ButtonProps, HTMLButtonElement> =
74
72
  size = "medium",
75
73
  loading = false,
76
74
  disabled,
77
- style,
78
75
  icon,
79
76
  iconPosition = "left",
77
+ onKeyUp,
80
78
  ...rest
81
79
  },
82
80
  ref,
83
81
  ) => {
84
- const buttonRef = useRef<HTMLButtonElement | null>(null);
85
- const [widthOverride, setWidthOverride] = useState<number>();
86
-
87
- const mergedRef = useMergeRefs(buttonRef, ref);
88
-
89
- useClientLayoutEffect(() => {
90
- if (loading) {
91
- const requestID = window.requestAnimationFrame(() => {
92
- setWidthOverride(
93
- buttonRef?.current?.getBoundingClientRect()?.width,
94
- );
95
- });
96
- return () => {
97
- setWidthOverride(undefined);
98
- cancelAnimationFrame(requestID);
99
- };
100
- }
101
- }, [loading, children]);
102
-
103
82
  const filterProps: React.ButtonHTMLAttributes<HTMLButtonElement> =
104
- disabled ?? widthOverride ? omit(rest, ["href"]) : rest;
83
+ disabled || loading ? omit(rest, ["href"]) : rest;
105
84
 
106
85
  const handleKeyUp = (e: React.KeyboardEvent<HTMLButtonElement>) => {
107
- if (e.key === " " && !disabled && !widthOverride) {
86
+ if (e.key === " " && !disabled && !loading) {
108
87
  e.currentTarget.click();
109
88
  }
110
89
  };
@@ -113,41 +92,32 @@ export const Button: OverridableComponent<ButtonProps, HTMLButtonElement> =
113
92
  <Component
114
93
  {...(Component !== "button" ? { role: "button" } : {})}
115
94
  {...filterProps}
116
- ref={mergedRef}
117
- onKeyUp={composeEventHandlers(filterProps.onKeyUp, handleKeyUp)}
95
+ ref={ref}
96
+ onKeyUp={composeEventHandlers(onKeyUp, handleKeyUp)}
118
97
  className={cl(
119
98
  className,
120
99
  "navds-button",
121
100
  `navds-button--${variant}`,
122
101
  `navds-button--${size}`,
123
102
  {
124
- "navds-button--loading": widthOverride,
103
+ "navds-button--loading": loading,
125
104
  "navds-button--icon-only": !!icon && !children,
126
- "navds-button--disabled": disabled ?? widthOverride,
105
+ "navds-button--disabled": disabled ?? loading,
127
106
  },
128
107
  )}
129
- style={{
130
- ...style,
131
- width: widthOverride,
132
- }}
133
- disabled={disabled ?? widthOverride ? true : undefined}
108
+ disabled={disabled ?? loading ? true : undefined}
134
109
  >
135
- {widthOverride ? (
136
- <Loader size={size} />
137
- ) : (
138
- <>
139
- {icon && iconPosition === "left" && (
140
- <span className="navds-button__icon">{icon}</span>
141
- )}
142
- {children && (
143
- <Label as="span" size={size === "medium" ? "medium" : "small"}>
144
- {children}
145
- </Label>
146
- )}
147
- {icon && iconPosition === "right" && (
148
- <span className="navds-button__icon">{icon}</span>
149
- )}
150
- </>
110
+ {icon && iconPosition === "left" && (
111
+ <span className="navds-button__icon">{icon}</span>
112
+ )}
113
+ {loading && <Loader size={size} />}
114
+ {children && (
115
+ <Label as="span" size={size === "medium" ? "medium" : "small"}>
116
+ {children}
117
+ </Label>
118
+ )}
119
+ {icon && iconPosition === "right" && (
120
+ <span className="navds-button__icon">{icon}</span>
151
121
  )}
152
122
  </Component>
153
123
  );
@@ -2,7 +2,7 @@ import cl from "clsx";
2
2
  import React, { forwardRef } from "react";
3
3
  import { XMarkIcon } from "@navikt/aksel-icons";
4
4
  import { composeEventHandlers } from "../util/composeEventHandlers";
5
- import { useI18n } from "../util/i18n/i18n.context";
5
+ import { useI18n } from "../util/i18n/i18n.hooks";
6
6
 
7
7
  export interface ChipsRemovableProps
8
8
  extends React.ButtonHTMLAttributes<HTMLButtonElement> {
@@ -10,7 +10,7 @@ import { CheckmarkIcon, FilesIcon } from "@navikt/aksel-icons";
10
10
  import { Label } from "../typography";
11
11
  import { composeEventHandlers } from "../util/composeEventHandlers";
12
12
  import copy from "../util/copy";
13
- import { useI18n } from "../util/i18n/i18n.context";
13
+ import { useI18n } from "../util/i18n/i18n.hooks";
14
14
 
15
15
  export interface CopyButtonProps
16
16
  extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children"> {
@@ -1,5 +1,5 @@
1
1
  import { createContext } from "../../util/create-context";
2
- import { TFunction } from "../../util/i18n/i18n.context";
2
+ import { TFunction } from "../../util/i18n/i18n.types";
3
3
 
4
4
  interface DateTranslationContextProps {
5
5
  translate: TFunction<"DatePicker">;
@@ -5,7 +5,7 @@ import { DateRange, DayPicker, isMatch } from "react-day-picker";
5
5
  import { omit } from "../../util";
6
6
  import { useId } from "../../util/hooks";
7
7
  import { useMergeRefs } from "../../util/hooks/useMergeRefs";
8
- import { useDateLocale, useI18n } from "../../util/i18n/i18n.context";
8
+ import { useDateLocale, useI18n } from "../../util/i18n/i18n.hooks";
9
9
  import { DateInputContext, DateTranslationContextProvider } from "../context";
10
10
  import { DatePickerInput } from "../parts/DateInput";
11
11
  import { DateWrapper } from "../parts/DateWrapper";
@@ -3,7 +3,7 @@ import { isWeekend } from "date-fns";
3
3
  import React, { forwardRef } from "react";
4
4
  import { DateRange, DayPicker, isMatch } from "react-day-picker";
5
5
  import { omit } from "../../util";
6
- import { useDateLocale, useI18n } from "../../util/i18n/i18n.context";
6
+ import { useDateLocale, useI18n } from "../../util/i18n/i18n.hooks";
7
7
  import { DateTranslationContextProvider } from "../context";
8
8
  import { getLocaleFromString, getTranslations } from "../utils";
9
9
  import Caption from "./parts/Caption";
@@ -1,4 +1,4 @@
1
- import { act, render, screen } from "@testing-library/react";
1
+ import { render, screen } from "@testing-library/react";
2
2
  import userEvent from "@testing-library/user-event";
3
3
  import React from "react";
4
4
  import { describe, test } from "vitest";
@@ -23,9 +23,6 @@ describe("Render datepicker", () => {
23
23
  test("Should not crash when e.target is window", async () => {
24
24
  render(<App />);
25
25
 
26
- // eslint-disable-next-line testing-library/no-unnecessary-act -- https://kentcdodds.com/blog/fix-the-not-wrapped-in-act-warning
27
- await act(async () => {
28
- await userEvent.click(screen.getByText("Velg dato"));
29
- });
26
+ await userEvent.click(screen.getByText("Velg dato"));
30
27
  });
31
28
  });
@@ -2,7 +2,7 @@
2
2
  import React from "react";
3
3
  import { Button as RDPButton, useDayPicker } from "react-day-picker";
4
4
  import { Button } from "../../../button";
5
- import { UNSAFE_useAkselTheme } from "../../../provider";
5
+ import { useThemeInternal } from "../../../theme/Theme";
6
6
  import { Detail } from "../../../typography";
7
7
  import { useDateTranslationContext } from "../../context";
8
8
 
@@ -21,7 +21,7 @@ function WeekNumber({
21
21
  dates,
22
22
  }: WeekNumberProps): JSX.Element {
23
23
  const { onWeekNumberClick, styles, classNames } = useDayPicker();
24
- const themeContext = UNSAFE_useAkselTheme(false);
24
+ const themeContext = useThemeInternal(false);
25
25
  const translate = useDateTranslationContext().translate;
26
26
 
27
27
  if (!onWeekNumberClick) {
@@ -1,7 +1,7 @@
1
1
  import { differenceInCalendarDays, isWeekend } from "date-fns";
2
2
  import React, { useCallback, useState } from "react";
3
3
  import { DayClickEventHandler, isMatch } from "react-day-picker";
4
- import { useDateLocale } from "../../util/i18n/i18n.context";
4
+ import { useDateLocale } from "../../util/i18n/i18n.hooks";
5
5
  import { DatePickerProps } from "../datepicker/DatePicker";
6
6
  import { DateInputProps } from "../parts/DateInput";
7
7
  import {
@@ -1,5 +1,5 @@
1
1
  import React, { useCallback, useMemo, useState } from "react";
2
- import { useDateLocale } from "../../util/i18n/i18n.context";
2
+ import { useDateLocale } from "../../util/i18n/i18n.hooks";
3
3
  import { MonthPickerProps } from "../monthpicker/types";
4
4
  import { DateInputProps } from "../parts/DateInput";
5
5
  import {
@@ -1,5 +1,4 @@
1
- /* eslint-disable testing-library/no-unnecessary-act -- https://kentcdodds.com/blog/fix-the-not-wrapped-in-act-warning */
2
- import { act, render, screen } from "@testing-library/react";
1
+ import { render, screen } from "@testing-library/react";
3
2
  import userEvent from "@testing-library/user-event";
4
3
  import React from "react";
5
4
  import { describe, expect, test } from "vitest";
@@ -29,10 +28,8 @@ describe("Writing in input sets correct values", () => {
29
28
 
30
29
  const fraInput = screen.getByRole("textbox", { name: "Fra" });
31
30
  const tilInput = screen.getByRole("textbox", { name: "Til" });
32
- await act(async () => {
33
- await userEvent.type(fraInput, "03.08.2022");
34
- await userEvent.type(tilInput, "03.08.2022");
35
- });
31
+ await userEvent.type(fraInput, "03.08.2022");
32
+ await userEvent.type(tilInput, "03.08.2022");
36
33
  const res = screen.getByTitle("res");
37
34
  expect(res.innerHTML).toEqual(
38
35
  JSON.stringify({
@@ -47,10 +44,8 @@ describe("Writing in input sets correct values", () => {
47
44
 
48
45
  const fraInput = screen.getByRole("textbox", { name: "Fra" });
49
46
  const tilInput = screen.getByRole("textbox", { name: "Til" });
50
- await act(async () => {
51
- await userEvent.type(fraInput, "03.08.2022");
52
- await userEvent.type(tilInput, "02.08.2022");
53
- });
47
+ await userEvent.type(fraInput, "03.08.2022");
48
+ await userEvent.type(tilInput, "02.08.2022");
54
49
  const res = screen.getByTitle("res");
55
50
  expect(res.innerHTML).toEqual(
56
51
  JSON.stringify({
@@ -5,7 +5,7 @@ import {
5
5
  } from "date-fns";
6
6
  import React, { useState } from "react";
7
7
  import { DateRange, isMatch } from "react-day-picker";
8
- import { useDateLocale } from "../../util/i18n/i18n.context";
8
+ import { useDateLocale } from "../../util/i18n/i18n.hooks";
9
9
  import { DatePickerProps } from "../datepicker/DatePicker";
10
10
  import { DateInputProps } from "../parts/DateInput";
11
11
  import {
@@ -3,7 +3,7 @@ import React, { forwardRef, useState } from "react";
3
3
  import { DayPickerProvider } from "react-day-picker";
4
4
  import { useId } from "../../util/hooks";
5
5
  import { useMergeRefs } from "../../util/hooks/useMergeRefs";
6
- import { useDateLocale, useI18n } from "../../util/i18n/i18n.context";
6
+ import { useDateLocale, useI18n } from "../../util/i18n/i18n.hooks";
7
7
  import {
8
8
  DateInputContext,
9
9
  DateTranslationContextProvider,
@@ -1,7 +1,7 @@
1
1
  import cl from "clsx";
2
2
  import React, { forwardRef, useState } from "react";
3
3
  import { DayPickerProvider } from "react-day-picker";
4
- import { useDateLocale, useI18n } from "../../util/i18n/i18n.context";
4
+ import { useDateLocale, useI18n } from "../../util/i18n/i18n.hooks";
5
5
  import {
6
6
  DateTranslationContextProvider,
7
7
  SharedMonthProvider,
@@ -150,7 +150,11 @@ const DateInput = forwardRef<HTMLInputElement, DateInputProps>((props, ref) => {
150
150
  aria-relevant="additions removals"
151
151
  aria-live="polite"
152
152
  >
153
- {showErrorMsg && <ErrorMessage size={size}>{props.error}</ErrorMessage>}
153
+ {showErrorMsg && (
154
+ <ErrorMessage size={size} showIcon>
155
+ {props.error}
156
+ </ErrorMessage>
157
+ )}
154
158
  </div>
155
159
  </div>
156
160
  );