@navikt/ds-react 7.6.0 → 7.8.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 (390) hide show
  1. package/cjs/chips/Removable.d.ts +0 -5
  2. package/cjs/chips/Removable.js +2 -2
  3. package/cjs/chips/Removable.js.map +1 -1
  4. package/cjs/copybutton/CopyButton.d.ts +1 -6
  5. package/cjs/copybutton/CopyButton.js +8 -6
  6. package/cjs/copybutton/CopyButton.js.map +1 -1
  7. package/cjs/date/context/index.d.ts +2 -1
  8. package/cjs/date/context/index.js +5 -2
  9. package/cjs/date/context/index.js.map +1 -1
  10. package/cjs/date/context/useDateInputContext.d.ts +3 -3
  11. package/cjs/date/context/useDateInputContext.js +4 -4
  12. package/cjs/date/context/useDateInputContext.js.map +1 -1
  13. package/cjs/date/context/useDateTranslationContext.d.ts +8 -0
  14. package/cjs/date/context/useDateTranslationContext.js +7 -0
  15. package/cjs/date/context/useDateTranslationContext.js.map +1 -0
  16. package/cjs/date/datepicker/DatePicker.js +18 -16
  17. package/cjs/date/datepicker/DatePicker.js.map +1 -1
  18. package/cjs/date/datepicker/DatePickerStandalone.js +17 -14
  19. package/cjs/date/datepicker/DatePickerStandalone.js.map +1 -1
  20. package/cjs/date/datepicker/parts/Caption.js +2 -3
  21. package/cjs/date/datepicker/parts/Caption.js.map +1 -1
  22. package/cjs/date/datepicker/parts/DropdownCaption.js +2 -2
  23. package/cjs/date/datepicker/parts/DropdownCaption.js.map +1 -1
  24. package/cjs/date/datepicker/parts/WeekNumber.js +14 -6
  25. package/cjs/date/datepicker/parts/WeekNumber.js.map +1 -1
  26. package/cjs/date/datepicker/parts/WeekRow.js +2 -3
  27. package/cjs/date/datepicker/parts/WeekRow.js.map +1 -1
  28. package/cjs/date/datepicker/types.d.ts +8 -0
  29. package/cjs/date/monthpicker/MonthCaption.js +1 -3
  30. package/cjs/date/monthpicker/MonthCaption.js.map +1 -1
  31. package/cjs/date/monthpicker/MonthPicker.js +30 -28
  32. package/cjs/date/monthpicker/MonthPicker.js.map +1 -1
  33. package/cjs/date/monthpicker/MonthPickerStandalone.js +16 -12
  34. package/cjs/date/monthpicker/MonthPickerStandalone.js.map +1 -1
  35. package/cjs/date/monthpicker/types.d.ts +8 -0
  36. package/cjs/date/parts/DateInput.js +1 -2
  37. package/cjs/date/parts/DateInput.js.map +1 -1
  38. package/cjs/date/parts/DateWrapper.d.ts +3 -1
  39. package/cjs/date/parts/DateWrapper.js +3 -3
  40. package/cjs/date/parts/DateWrapper.js.map +1 -1
  41. package/cjs/date/utils/index.d.ts +1 -1
  42. package/cjs/date/utils/index.js +2 -1
  43. package/cjs/date/utils/index.js.map +1 -1
  44. package/cjs/date/utils/locale.d.ts +12 -2
  45. package/cjs/date/utils/locale.js +18 -2
  46. package/cjs/date/utils/locale.js.map +1 -1
  47. package/cjs/form/combobox/Combobox.d.ts +1 -1
  48. package/cjs/form/combobox/ComboboxWrapper.js +6 -6
  49. package/cjs/form/combobox/ComboboxWrapper.js.map +1 -1
  50. package/cjs/form/combobox/FilteredOptions/AddNewOption.js +3 -1
  51. package/cjs/form/combobox/FilteredOptions/AddNewOption.js.map +1 -1
  52. package/cjs/form/combobox/FilteredOptions/FilteredOptions.js +4 -4
  53. package/cjs/form/combobox/FilteredOptions/FilteredOptions.js.map +1 -1
  54. package/cjs/form/combobox/FilteredOptions/FilteredOptionsItem.js +1 -1
  55. package/cjs/form/combobox/FilteredOptions/FilteredOptionsItem.js.map +1 -1
  56. package/cjs/form/combobox/FilteredOptions/LoadingMessage.js +3 -1
  57. package/cjs/form/combobox/FilteredOptions/LoadingMessage.js.map +1 -1
  58. package/cjs/form/combobox/FilteredOptions/MaxSelectedMessage.d.ts +1 -1
  59. package/cjs/form/combobox/FilteredOptions/MaxSelectedMessage.js +6 -5
  60. package/cjs/form/combobox/FilteredOptions/MaxSelectedMessage.js.map +1 -1
  61. package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.js +4 -4
  62. package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.js.map +1 -1
  63. package/cjs/form/combobox/Input/Input.context.d.ts +1 -1
  64. package/cjs/form/combobox/Input/Input.context.js.map +1 -1
  65. package/cjs/form/combobox/Input/Input.js +1 -1
  66. package/cjs/form/combobox/Input/Input.js.map +1 -1
  67. package/cjs/form/combobox/Input/InputController.d.ts +1 -1
  68. package/cjs/form/combobox/Input/InputController.js +10 -10
  69. package/cjs/form/combobox/Input/InputController.js.map +1 -1
  70. package/cjs/form/combobox/Input/ToggleListButton.d.ts +1 -4
  71. package/cjs/form/combobox/Input/ToggleListButton.js +3 -5
  72. package/cjs/form/combobox/Input/ToggleListButton.js.map +1 -1
  73. package/cjs/form/combobox/SelectedOptions/SelectedOptions.js +8 -6
  74. package/cjs/form/combobox/SelectedOptions/SelectedOptions.js.map +1 -1
  75. package/cjs/form/combobox/SelectedOptions/selectedOptionsContext.d.ts +2 -1
  76. package/cjs/form/combobox/SelectedOptions/selectedOptionsContext.js +9 -5
  77. package/cjs/form/combobox/SelectedOptions/selectedOptionsContext.js.map +1 -1
  78. package/cjs/form/combobox/types.d.ts +7 -22
  79. package/cjs/form/form-summary/FormSummaryEditLink.js +4 -2
  80. package/cjs/form/form-summary/FormSummaryEditLink.js.map +1 -1
  81. package/cjs/form/search/Search.d.ts +2 -1
  82. package/cjs/form/search/Search.js +8 -3
  83. package/cjs/form/search/Search.js.map +1 -1
  84. package/cjs/form/textarea/Textarea.d.ts +1 -0
  85. package/cjs/form/textarea/Textarea.js.map +1 -1
  86. package/cjs/guide-panel/GuidePanel.js +11 -3
  87. package/cjs/guide-panel/GuidePanel.js.map +1 -1
  88. package/cjs/guide-panel/Illustration.d.ts +2 -8
  89. package/cjs/guide-panel/Illustration.darkside.d.ts +2 -0
  90. package/cjs/guide-panel/Illustration.darkside.js +30 -0
  91. package/cjs/guide-panel/Illustration.darkside.js.map +1 -0
  92. package/cjs/guide-panel/Illustration.js +4 -18
  93. package/cjs/guide-panel/Illustration.js.map +1 -1
  94. package/cjs/guide-panel/index.d.ts +0 -1
  95. package/cjs/guide-panel/index.js +1 -3
  96. package/cjs/guide-panel/index.js.map +1 -1
  97. package/cjs/help-text/HelpText.d.ts +1 -1
  98. package/cjs/help-text/HelpText.js +6 -3
  99. package/cjs/help-text/HelpText.js.map +1 -1
  100. package/cjs/index.d.ts +1 -1
  101. package/cjs/index.js +2 -3
  102. package/cjs/index.js.map +1 -1
  103. package/cjs/internal-header/InternalHeaderButton.d.ts +1 -1
  104. package/cjs/internal-header/InternalHeaderUserButton.d.ts +1 -1
  105. package/cjs/internal-header/InternalHeaderUserButton.js +1 -1
  106. package/cjs/internal-header/InternalHeaderUserButton.js.map +1 -1
  107. package/cjs/layout/base/BasePrimitive.js +4 -1
  108. package/cjs/layout/base/BasePrimitive.js.map +1 -1
  109. package/cjs/layout/bleed/Bleed.js +5 -2
  110. package/cjs/layout/bleed/Bleed.js.map +1 -1
  111. package/cjs/layout/box/Box.d.ts +6 -1
  112. package/cjs/layout/box/Box.darkside.d.ts +70 -0
  113. package/cjs/layout/box/Box.darkside.js +98 -0
  114. package/cjs/layout/box/Box.darkside.js.map +1 -0
  115. package/cjs/layout/box/Box.js +19 -6
  116. package/cjs/layout/box/Box.js.map +1 -1
  117. package/cjs/layout/box/index.js +2 -0
  118. package/cjs/layout/box/index.js.map +1 -1
  119. package/cjs/layout/grid/HGrid.js +4 -1
  120. package/cjs/layout/grid/HGrid.js.map +1 -1
  121. package/cjs/layout/page/Page.d.ts +1 -0
  122. package/cjs/layout/page/Page.js +5 -0
  123. package/cjs/layout/page/Page.js.map +1 -1
  124. package/cjs/layout/stack/Stack.js +4 -1
  125. package/cjs/layout/stack/Stack.js.map +1 -1
  126. package/cjs/layout/utilities/css.d.ts +2 -2
  127. package/cjs/layout/utilities/css.js +8 -9
  128. package/cjs/layout/utilities/css.js.map +1 -1
  129. package/cjs/layout/utilities/types.d.ts +10 -0
  130. package/cjs/modal/Modal.js +1 -1
  131. package/cjs/modal/Modal.js.map +1 -1
  132. package/cjs/modal/ModalHeader.js +1 -1
  133. package/cjs/modal/ModalHeader.js.map +1 -1
  134. package/cjs/popover/Popover.js +1 -1
  135. package/cjs/popover/Popover.js.map +1 -1
  136. package/cjs/provider/Provider.d.ts +35 -10
  137. package/cjs/provider/Provider.js +13 -14
  138. package/cjs/provider/Provider.js.map +1 -1
  139. package/cjs/table/ExpandableRow.js +3 -3
  140. package/cjs/table/ExpandableRow.js.map +1 -1
  141. package/cjs/tabs/Tabs.context.d.ts +1 -1
  142. package/cjs/timeline/Timeline.d.ts +1 -0
  143. package/cjs/timeline/Timeline.js.map +1 -1
  144. package/cjs/util/i18n/i18n.context.d.ts +1 -1
  145. package/cjs/util/i18n/i18n.context.js +15 -14
  146. package/cjs/util/i18n/i18n.context.js.map +1 -1
  147. package/cjs/util/i18n/locales/en.d.ts +51 -36
  148. package/cjs/util/i18n/locales/en.js +52 -37
  149. package/cjs/util/i18n/locales/en.js.map +1 -1
  150. package/cjs/util/i18n/locales/index.d.ts +3 -0
  151. package/cjs/util/i18n/locales/index.js +14 -0
  152. package/cjs/util/i18n/locales/index.js.map +1 -0
  153. package/cjs/util/i18n/locales/nb.d.ts +54 -37
  154. package/cjs/util/i18n/locales/nb.js +56 -39
  155. package/cjs/util/i18n/locales/nb.js.map +1 -1
  156. package/cjs/util/i18n/locales/nn.d.ts +51 -36
  157. package/cjs/util/i18n/locales/nn.js +52 -37
  158. package/cjs/util/i18n/locales/nn.js.map +1 -1
  159. package/esm/chips/Removable.d.ts +0 -5
  160. package/esm/chips/Removable.js +2 -2
  161. package/esm/chips/Removable.js.map +1 -1
  162. package/esm/copybutton/CopyButton.d.ts +1 -6
  163. package/esm/copybutton/CopyButton.js +8 -6
  164. package/esm/copybutton/CopyButton.js.map +1 -1
  165. package/esm/date/context/index.d.ts +2 -1
  166. package/esm/date/context/index.js +2 -1
  167. package/esm/date/context/index.js.map +1 -1
  168. package/esm/date/context/useDateInputContext.d.ts +3 -3
  169. package/esm/date/context/useDateInputContext.js +3 -3
  170. package/esm/date/context/useDateInputContext.js.map +1 -1
  171. package/esm/date/context/useDateTranslationContext.d.ts +8 -0
  172. package/esm/date/context/useDateTranslationContext.js +3 -0
  173. package/esm/date/context/useDateTranslationContext.js.map +1 -0
  174. package/esm/date/datepicker/DatePicker.js +21 -19
  175. package/esm/date/datepicker/DatePicker.js.map +1 -1
  176. package/esm/date/datepicker/DatePickerStandalone.js +19 -16
  177. package/esm/date/datepicker/DatePickerStandalone.js.map +1 -1
  178. package/esm/date/datepicker/parts/Caption.js +2 -3
  179. package/esm/date/datepicker/parts/Caption.js.map +1 -1
  180. package/esm/date/datepicker/parts/DropdownCaption.js +3 -3
  181. package/esm/date/datepicker/parts/DropdownCaption.js.map +1 -1
  182. package/esm/date/datepicker/parts/WeekNumber.js +15 -7
  183. package/esm/date/datepicker/parts/WeekNumber.js.map +1 -1
  184. package/esm/date/datepicker/parts/WeekRow.js +2 -3
  185. package/esm/date/datepicker/parts/WeekRow.js.map +1 -1
  186. package/esm/date/datepicker/types.d.ts +8 -0
  187. package/esm/date/monthpicker/MonthCaption.js +2 -4
  188. package/esm/date/monthpicker/MonthCaption.js.map +1 -1
  189. package/esm/date/monthpicker/MonthPicker.js +33 -31
  190. package/esm/date/monthpicker/MonthPicker.js.map +1 -1
  191. package/esm/date/monthpicker/MonthPickerStandalone.js +18 -14
  192. package/esm/date/monthpicker/MonthPickerStandalone.js.map +1 -1
  193. package/esm/date/monthpicker/types.d.ts +8 -0
  194. package/esm/date/parts/DateInput.js +2 -3
  195. package/esm/date/parts/DateInput.js.map +1 -1
  196. package/esm/date/parts/DateWrapper.d.ts +3 -1
  197. package/esm/date/parts/DateWrapper.js +4 -4
  198. package/esm/date/parts/DateWrapper.js.map +1 -1
  199. package/esm/date/utils/index.d.ts +1 -1
  200. package/esm/date/utils/index.js +1 -1
  201. package/esm/date/utils/index.js.map +1 -1
  202. package/esm/date/utils/locale.d.ts +12 -2
  203. package/esm/date/utils/locale.js +16 -1
  204. package/esm/date/utils/locale.js.map +1 -1
  205. package/esm/form/combobox/Combobox.d.ts +1 -1
  206. package/esm/form/combobox/ComboboxWrapper.js +6 -6
  207. package/esm/form/combobox/ComboboxWrapper.js.map +1 -1
  208. package/esm/form/combobox/FilteredOptions/AddNewOption.js +3 -1
  209. package/esm/form/combobox/FilteredOptions/AddNewOption.js.map +1 -1
  210. package/esm/form/combobox/FilteredOptions/FilteredOptions.js +4 -4
  211. package/esm/form/combobox/FilteredOptions/FilteredOptions.js.map +1 -1
  212. package/esm/form/combobox/FilteredOptions/FilteredOptionsItem.js +1 -1
  213. package/esm/form/combobox/FilteredOptions/FilteredOptionsItem.js.map +1 -1
  214. package/esm/form/combobox/FilteredOptions/LoadingMessage.js +3 -1
  215. package/esm/form/combobox/FilteredOptions/LoadingMessage.js.map +1 -1
  216. package/esm/form/combobox/FilteredOptions/MaxSelectedMessage.d.ts +1 -1
  217. package/esm/form/combobox/FilteredOptions/MaxSelectedMessage.js +6 -5
  218. package/esm/form/combobox/FilteredOptions/MaxSelectedMessage.js.map +1 -1
  219. package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js +4 -4
  220. package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js.map +1 -1
  221. package/esm/form/combobox/Input/Input.context.d.ts +1 -1
  222. package/esm/form/combobox/Input/Input.context.js.map +1 -1
  223. package/esm/form/combobox/Input/Input.js +1 -1
  224. package/esm/form/combobox/Input/Input.js.map +1 -1
  225. package/esm/form/combobox/Input/InputController.d.ts +1 -1
  226. package/esm/form/combobox/Input/InputController.js +10 -10
  227. package/esm/form/combobox/Input/InputController.js.map +1 -1
  228. package/esm/form/combobox/Input/ToggleListButton.d.ts +1 -4
  229. package/esm/form/combobox/Input/ToggleListButton.js +3 -5
  230. package/esm/form/combobox/Input/ToggleListButton.js.map +1 -1
  231. package/esm/form/combobox/SelectedOptions/SelectedOptions.js +8 -6
  232. package/esm/form/combobox/SelectedOptions/SelectedOptions.js.map +1 -1
  233. package/esm/form/combobox/SelectedOptions/selectedOptionsContext.d.ts +2 -1
  234. package/esm/form/combobox/SelectedOptions/selectedOptionsContext.js +9 -5
  235. package/esm/form/combobox/SelectedOptions/selectedOptionsContext.js.map +1 -1
  236. package/esm/form/combobox/types.d.ts +7 -22
  237. package/esm/form/form-summary/FormSummaryEditLink.js +4 -2
  238. package/esm/form/form-summary/FormSummaryEditLink.js.map +1 -1
  239. package/esm/form/search/Search.d.ts +2 -1
  240. package/esm/form/search/Search.js +8 -3
  241. package/esm/form/search/Search.js.map +1 -1
  242. package/esm/form/textarea/Textarea.d.ts +1 -0
  243. package/esm/form/textarea/Textarea.js.map +1 -1
  244. package/esm/guide-panel/GuidePanel.js +11 -3
  245. package/esm/guide-panel/GuidePanel.js.map +1 -1
  246. package/esm/guide-panel/Illustration.d.ts +2 -8
  247. package/esm/guide-panel/Illustration.darkside.d.ts +2 -0
  248. package/esm/guide-panel/Illustration.darkside.js +23 -0
  249. package/esm/guide-panel/Illustration.darkside.js.map +1 -0
  250. package/esm/guide-panel/Illustration.js +4 -18
  251. package/esm/guide-panel/Illustration.js.map +1 -1
  252. package/esm/guide-panel/index.d.ts +0 -1
  253. package/esm/guide-panel/index.js +0 -1
  254. package/esm/guide-panel/index.js.map +1 -1
  255. package/esm/help-text/HelpText.d.ts +1 -1
  256. package/esm/help-text/HelpText.js +6 -3
  257. package/esm/help-text/HelpText.js.map +1 -1
  258. package/esm/index.d.ts +1 -1
  259. package/esm/index.js +1 -1
  260. package/esm/index.js.map +1 -1
  261. package/esm/internal-header/InternalHeaderButton.d.ts +1 -1
  262. package/esm/internal-header/InternalHeaderUserButton.d.ts +1 -1
  263. package/esm/internal-header/InternalHeaderUserButton.js +1 -1
  264. package/esm/internal-header/InternalHeaderUserButton.js.map +1 -1
  265. package/esm/layout/base/BasePrimitive.js +4 -1
  266. package/esm/layout/base/BasePrimitive.js.map +1 -1
  267. package/esm/layout/bleed/Bleed.js +5 -2
  268. package/esm/layout/bleed/Bleed.js.map +1 -1
  269. package/esm/layout/box/Box.d.ts +6 -1
  270. package/esm/layout/box/Box.darkside.d.ts +70 -0
  271. package/esm/layout/box/Box.darkside.js +69 -0
  272. package/esm/layout/box/Box.darkside.js.map +1 -0
  273. package/esm/layout/box/Box.js +18 -5
  274. package/esm/layout/box/Box.js.map +1 -1
  275. package/esm/layout/grid/HGrid.js +4 -1
  276. package/esm/layout/grid/HGrid.js.map +1 -1
  277. package/esm/layout/page/Page.d.ts +1 -0
  278. package/esm/layout/page/Page.js +5 -0
  279. package/esm/layout/page/Page.js.map +1 -1
  280. package/esm/layout/stack/Stack.js +4 -1
  281. package/esm/layout/stack/Stack.js.map +1 -1
  282. package/esm/layout/utilities/css.d.ts +2 -2
  283. package/esm/layout/utilities/css.js +8 -9
  284. package/esm/layout/utilities/css.js.map +1 -1
  285. package/esm/layout/utilities/types.d.ts +10 -0
  286. package/esm/modal/Modal.js +2 -2
  287. package/esm/modal/Modal.js.map +1 -1
  288. package/esm/modal/ModalHeader.js +1 -1
  289. package/esm/modal/ModalHeader.js.map +1 -1
  290. package/esm/popover/Popover.js +2 -2
  291. package/esm/popover/Popover.js.map +1 -1
  292. package/esm/provider/Provider.d.ts +35 -10
  293. package/esm/provider/Provider.js +11 -15
  294. package/esm/provider/Provider.js.map +1 -1
  295. package/esm/table/ExpandableRow.js +3 -3
  296. package/esm/table/ExpandableRow.js.map +1 -1
  297. package/esm/tabs/Tabs.context.d.ts +1 -1
  298. package/esm/timeline/Timeline.d.ts +1 -0
  299. package/esm/timeline/Timeline.js.map +1 -1
  300. package/esm/util/i18n/i18n.context.d.ts +1 -1
  301. package/esm/util/i18n/i18n.context.js +15 -14
  302. package/esm/util/i18n/i18n.context.js.map +1 -1
  303. package/esm/util/i18n/locales/en.d.ts +51 -36
  304. package/esm/util/i18n/locales/en.js +52 -37
  305. package/esm/util/i18n/locales/en.js.map +1 -1
  306. package/esm/util/i18n/locales/index.d.ts +3 -0
  307. package/esm/util/i18n/locales/index.js +5 -0
  308. package/esm/util/i18n/locales/index.js.map +1 -0
  309. package/esm/util/i18n/locales/nb.d.ts +54 -37
  310. package/esm/util/i18n/locales/nb.js +56 -39
  311. package/esm/util/i18n/locales/nb.js.map +1 -1
  312. package/esm/util/i18n/locales/nn.d.ts +51 -36
  313. package/esm/util/i18n/locales/nn.js +52 -37
  314. package/esm/util/i18n/locales/nn.js.map +1 -1
  315. package/package.json +13 -3
  316. package/src/chips/Removable.tsx +1 -9
  317. package/src/copybutton/CopyButton.tsx +14 -30
  318. package/src/date/context/index.ts +5 -1
  319. package/src/date/context/useDateInputContext.tsx +6 -4
  320. package/src/date/context/useDateTranslationContext.ts +9 -0
  321. package/src/date/datepicker/DatePicker.tsx +41 -32
  322. package/src/date/datepicker/DatePickerStandalone.tsx +46 -37
  323. package/src/date/datepicker/parts/Caption.tsx +2 -3
  324. package/src/date/datepicker/parts/DropdownCaption.tsx +3 -3
  325. package/src/date/datepicker/parts/WeekNumber.tsx +34 -15
  326. package/src/date/datepicker/parts/WeekRow.tsx +2 -3
  327. package/src/date/datepicker/types.ts +8 -0
  328. package/src/date/monthpicker/MonthCaption.tsx +2 -4
  329. package/src/date/monthpicker/MonthPicker.tsx +67 -54
  330. package/src/date/monthpicker/MonthPickerStandalone.tsx +39 -26
  331. package/src/date/monthpicker/types.ts +8 -0
  332. package/src/date/parts/DateInput.tsx +2 -3
  333. package/src/date/parts/DateWrapper.tsx +6 -4
  334. package/src/date/utils/index.ts +5 -1
  335. package/src/date/utils/locale.ts +17 -1
  336. package/src/form/combobox/ComboboxWrapper.tsx +6 -6
  337. package/src/form/combobox/FilteredOptions/AddNewOption.tsx +3 -1
  338. package/src/form/combobox/FilteredOptions/FilteredOptions.tsx +4 -4
  339. package/src/form/combobox/FilteredOptions/FilteredOptionsItem.tsx +1 -1
  340. package/src/form/combobox/FilteredOptions/LoadingMessage.tsx +3 -1
  341. package/src/form/combobox/FilteredOptions/MaxSelectedMessage.tsx +6 -6
  342. package/src/form/combobox/FilteredOptions/filteredOptionsContext.tsx +4 -4
  343. package/src/form/combobox/Input/Input.context.tsx +3 -3
  344. package/src/form/combobox/Input/Input.tsx +1 -1
  345. package/src/form/combobox/Input/InputController.tsx +5 -27
  346. package/src/form/combobox/Input/ToggleListButton.tsx +8 -24
  347. package/src/form/combobox/SelectedOptions/SelectedOptions.tsx +17 -11
  348. package/src/form/combobox/SelectedOptions/selectedOptionsContext.tsx +10 -7
  349. package/src/form/combobox/__tests__/combobox.test.tsx +2 -1
  350. package/src/form/combobox/types.ts +11 -24
  351. package/src/form/form-summary/FormSummaryEditLink.tsx +7 -6
  352. package/src/form/search/Search.tsx +35 -13
  353. package/src/form/textarea/Textarea.tsx +1 -0
  354. package/src/guide-panel/GuidePanel.tsx +59 -15
  355. package/src/guide-panel/Illustration.darkside.tsx +96 -0
  356. package/src/guide-panel/Illustration.tsx +5 -22
  357. package/src/guide-panel/index.ts +0 -1
  358. package/src/help-text/HelpText.tsx +8 -6
  359. package/src/index.ts +1 -5
  360. package/src/internal-header/InternalHeaderButton.tsx +1 -1
  361. package/src/internal-header/InternalHeaderUserButton.tsx +2 -2
  362. package/src/layout/base/BasePrimitive.tsx +29 -25
  363. package/src/layout/bleed/Bleed.tsx +8 -0
  364. package/src/layout/box/Box.darkside.tsx +154 -0
  365. package/src/layout/box/Box.tsx +90 -61
  366. package/src/layout/box/index.ts +3 -0
  367. package/src/layout/grid/HGrid.tsx +7 -3
  368. package/src/layout/page/Page.tsx +10 -0
  369. package/src/layout/stack/Stack.tsx +8 -4
  370. package/src/layout/utilities/css.ts +18 -12
  371. package/src/layout/utilities/types.ts +24 -0
  372. package/src/modal/Modal.tsx +2 -2
  373. package/src/modal/ModalHeader.tsx +1 -1
  374. package/src/popover/Popover.tsx +2 -2
  375. package/src/provider/Provider.tsx +56 -13
  376. package/src/table/ExpandableRow.tsx +10 -3
  377. package/src/timeline/Timeline.tsx +1 -0
  378. package/src/util/i18n/i18n.context.test.tsx +29 -8
  379. package/src/util/i18n/i18n.context.ts +15 -14
  380. package/src/util/i18n/locales/en.ts +52 -37
  381. package/src/util/i18n/locales/index.ts +4 -0
  382. package/src/util/i18n/locales/nb.ts +56 -39
  383. package/src/util/i18n/locales/nn.ts +52 -37
  384. package/cjs/provider/i18n/LanguageProvider.d.ts +0 -26
  385. package/cjs/provider/i18n/LanguageProvider.js +0 -54
  386. package/cjs/provider/i18n/LanguageProvider.js.map +0 -1
  387. package/esm/provider/i18n/LanguageProvider.d.ts +0 -26
  388. package/esm/provider/i18n/LanguageProvider.js +0 -23
  389. package/esm/provider/i18n/LanguageProvider.js.map +0 -1
  390. package/src/provider/i18n/LanguageProvider.tsx +0 -49
@@ -3,8 +3,9 @@ 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 } from "../../util/i18n/i18n.context";
7
- import { getLocaleFromString } from "../utils";
6
+ import { useDateLocale, useI18n } from "../../util/i18n/i18n.context";
7
+ import { DateTranslationContextProvider } from "../context";
8
+ import { getLocaleFromString, getTranslations } from "../utils";
8
9
  import Caption from "./parts/Caption";
9
10
  import DropdownCaption from "./parts/DropdownCaption";
10
11
  import { HeadRow } from "./parts/HeadRow";
@@ -51,6 +52,7 @@ export const DatePickerStandalone: DatePickerStandaloneType = forwardRef<
51
52
  {
52
53
  className,
53
54
  locale,
55
+ translations,
54
56
  dropdownCaption,
55
57
  disabled = [],
56
58
  disableWeekends = false,
@@ -64,6 +66,11 @@ export const DatePickerStandalone: DatePickerStandaloneType = forwardRef<
64
66
  },
65
67
  ref,
66
68
  ) => {
69
+ const translate = useI18n(
70
+ "DatePicker",
71
+ translations,
72
+ getTranslations(locale),
73
+ );
67
74
  const langProviderLocale = useDateLocale();
68
75
  const [selectedDates, setSelectedDates] = React.useState<
69
76
  Date | Date[] | DateRange | undefined
@@ -84,41 +91,43 @@ export const DatePickerStandalone: DatePickerStandaloneType = forwardRef<
84
91
  ref={ref}
85
92
  className={cl("navds-date__standalone-wrapper", className)}
86
93
  >
87
- <DayPicker
88
- locale={locale ? getLocaleFromString(locale) : langProviderLocale}
89
- mode={mode}
90
- onSelect={handleSelect}
91
- selected={selected ?? selectedDates}
92
- components={{
93
- Caption: dropdownCaption ? DropdownCaption : Caption,
94
- Head: TableHead,
95
- HeadRow,
96
- WeekNumber,
97
- Row,
98
- }}
99
- className="navds-date"
100
- classNames={{ vhidden: "navds-sr-only" }}
101
- disabled={(day) => {
102
- return (
103
- (disableWeekends && isWeekend(day)) || isMatch(day, disabled)
104
- );
105
- }}
106
- weekStartsOn={1}
107
- initialFocus={false}
108
- modifiers={{
109
- weekend: (day) => disableWeekends && isWeekend(day),
110
- }}
111
- modifiersClassNames={{
112
- weekend: "rdp-day__weekend",
113
- }}
114
- showWeekNumber={showWeekNumber}
115
- onWeekNumberClick={
116
- mode === "multiple" ? onWeekNumberClick : undefined
117
- }
118
- fixedWeeks={fixedWeeks}
119
- showOutsideDays
120
- {...omit(rest, ["children", "id"])}
121
- />
94
+ <DateTranslationContextProvider translate={translate}>
95
+ <DayPicker
96
+ locale={locale ? getLocaleFromString(locale) : langProviderLocale}
97
+ mode={mode}
98
+ onSelect={handleSelect}
99
+ selected={selected ?? selectedDates}
100
+ components={{
101
+ Caption: dropdownCaption ? DropdownCaption : Caption,
102
+ Head: TableHead,
103
+ HeadRow,
104
+ WeekNumber,
105
+ Row,
106
+ }}
107
+ className="navds-date"
108
+ classNames={{ vhidden: "navds-sr-only" }}
109
+ disabled={(day) => {
110
+ return (
111
+ (disableWeekends && isWeekend(day)) || isMatch(day, disabled)
112
+ );
113
+ }}
114
+ weekStartsOn={1}
115
+ initialFocus={false}
116
+ modifiers={{
117
+ weekend: (day) => disableWeekends && isWeekend(day),
118
+ }}
119
+ modifiersClassNames={{
120
+ weekend: "rdp-day__weekend",
121
+ }}
122
+ showWeekNumber={showWeekNumber}
123
+ onWeekNumberClick={
124
+ mode === "multiple" ? onWeekNumberClick : undefined
125
+ }
126
+ fixedWeeks={fixedWeeks}
127
+ showOutsideDays
128
+ {...omit(rest, ["children", "id"])}
129
+ />
130
+ </DateTranslationContextProvider>
122
131
  </div>
123
132
  );
124
133
  },
@@ -3,8 +3,7 @@ import { CaptionProps, useDayPicker, useNavigation } from "react-day-picker";
3
3
  import { ArrowLeftIcon, ArrowRightIcon } from "@navikt/aksel-icons";
4
4
  import { Button } from "../../../button";
5
5
  import { Label } from "../../../typography";
6
- import { useI18n } from "../../../util/i18n/i18n.context";
7
- import { getTranslations } from "../../utils";
6
+ import { useDateTranslationContext } from "../../context";
8
7
  import WeekRow from "./WeekRow";
9
8
 
10
9
  /**
@@ -16,7 +15,7 @@ export const DatePickerCaption = ({ displayMonth, id }: CaptionProps) => {
16
15
  formatters: { formatCaption },
17
16
  locale,
18
17
  } = useDayPicker();
19
- const translate = useI18n("DatePicker", getTranslations(locale.code));
18
+ const translate = useDateTranslationContext().translate;
20
19
 
21
20
  return (
22
21
  <>
@@ -4,8 +4,8 @@ import { CaptionProps, useDayPicker, useNavigation } from "react-day-picker";
4
4
  import { ArrowLeftIcon, ArrowRightIcon } from "@navikt/aksel-icons";
5
5
  import { Button } from "../../../button";
6
6
  import { Select } from "../../../form/select";
7
- import { useI18n } from "../../../util/i18n/i18n.context";
8
- import { getMonths, getTranslations, getYears } from "../../utils";
7
+ import { useDateTranslationContext } from "../../context";
8
+ import { getMonths, getYears } from "../../utils";
9
9
  import WeekRow from "./WeekRow";
10
10
 
11
11
  /**
@@ -19,7 +19,7 @@ export const DropdownCaption = ({ displayMonth, id }: CaptionProps) => {
19
19
  formatters: { formatYearCaption, formatMonthCaption, formatCaption },
20
20
  locale,
21
21
  } = useDayPicker();
22
- const translate = useI18n("DatePicker", getTranslations(locale.code));
22
+ const translate = useDateTranslationContext().translate;
23
23
 
24
24
  if (!fromDate || !toDate) {
25
25
  console.warn("Using dropdownCaption required fromDate and toDate");
@@ -1,8 +1,10 @@
1
1
  /* https://github.com/gpbl/react-day-picker/blob/7f78cd5/src/components/WeekNumber/WeekNumber.tsx#L21 */
2
2
  import React from "react";
3
- import { Button, useDayPicker } from "react-day-picker";
4
- import { useI18n } from "../../../util/i18n/i18n.context";
5
- import { getTranslations } from "../../utils";
3
+ import { Button as RDPButton, useDayPicker } from "react-day-picker";
4
+ import { Button } from "../../../button";
5
+ import { UNSAFE_useAkselTheme } from "../../../provider";
6
+ import { Detail } from "../../../typography";
7
+ import { useDateTranslationContext } from "../../context";
6
8
 
7
9
  export interface WeekNumberProps {
8
10
  /** The number of the week. */
@@ -18,38 +20,55 @@ function WeekNumber({
18
20
  number: weekNumber,
19
21
  dates,
20
22
  }: WeekNumberProps): JSX.Element {
21
- const {
22
- onWeekNumberClick,
23
- styles,
24
- classNames,
25
- locale: { code },
26
- } = useDayPicker();
27
- const translate = useI18n("DatePicker", getTranslations(code));
23
+ const { onWeekNumberClick, styles, classNames } = useDayPicker();
24
+ const themeContext = UNSAFE_useAkselTheme(false);
25
+ const translate = useDateTranslationContext().translate;
28
26
 
29
27
  if (!onWeekNumberClick) {
30
28
  return (
31
- <span
29
+ <Detail
30
+ as="span"
31
+ textColor="subtle"
32
32
  className={classNames.weeknumber}
33
33
  style={styles.weeknumber}
34
34
  aria-label={translate("weekNumber", { week: weekNumber })}
35
35
  >
36
36
  {weekNumber}
37
- </span>
37
+ </Detail>
38
+ );
39
+ }
40
+
41
+ if (themeContext) {
42
+ return (
43
+ <Button
44
+ variant="secondary-neutral"
45
+ size="small"
46
+ name="week-number"
47
+ aria-label={translate("selectWeekNumber", { week: weekNumber })}
48
+ style={styles.weeknumber}
49
+ className="navds-date__weeknumber"
50
+ onClick={(event) => {
51
+ onWeekNumberClick(weekNumber, dates, event);
52
+ }}
53
+ icon={
54
+ <span className="navds-date__weeknumber-number">{weekNumber}</span>
55
+ }
56
+ />
38
57
  );
39
58
  }
40
59
 
41
60
  return (
42
- <Button
61
+ <RDPButton
43
62
  name="week-number"
44
63
  aria-label={translate("selectWeekNumber", { week: weekNumber })}
45
- className={classNames.weeknumber}
46
64
  style={styles.weeknumber}
65
+ className={classNames.weeknumber}
47
66
  onClick={(event) => {
48
67
  onWeekNumberClick(weekNumber, dates, event);
49
68
  }}
50
69
  >
51
70
  {weekNumber}
52
- </Button>
71
+ </RDPButton>
53
72
  );
54
73
  }
55
74
 
@@ -3,14 +3,13 @@ import { useDayPicker } from "react-day-picker";
3
3
  import { Show } from "../../../layout/responsive";
4
4
  import { Detail } from "../../../typography";
5
5
  import { useId } from "../../../util/hooks";
6
- import { useI18n } from "../../../util/i18n/i18n.context";
7
- import { getTranslations } from "../../utils";
6
+ import { useDateTranslationContext } from "../../context";
8
7
  import { getMonthWeeks } from "../../utils/get-month-weeks";
9
8
  import WeekNumber from "./WeekNumber";
10
9
 
11
10
  const WeekRow = ({ displayMonth }: { displayMonth: Date }) => {
12
11
  const { locale, fixedWeeks, onWeekNumberClick } = useDayPicker();
13
- const translate = useI18n("DatePicker", getTranslations(locale.code));
12
+ const translate = useDateTranslationContext().translate;
14
13
  const labelId = useId();
15
14
 
16
15
  if (!onWeekNumberClick) {
@@ -1,4 +1,5 @@
1
1
  import { DateRange, DayPickerBase, Matcher } from "react-day-picker";
2
+ import { ComponentTranslation } from "../../util/i18n/i18n.types";
2
3
 
3
4
  export type SingleMode = {
4
5
  mode?: "single";
@@ -52,8 +53,15 @@ export interface DatePickerDefaultProps
52
53
  /**
53
54
  * Changes datepicker locale
54
55
  * @default "nb" (norsk bokmål)
56
+ * @deprecated Use `<Provider />`-component
55
57
  */
56
58
  locale?: "nb" | "nn" | "en";
59
+ /**
60
+ * i18n-API for customizing texts and labels.
61
+ *
62
+ * **NB: If you need to change the language, use [Provider](https://aksel.nav.no/komponenter/core/provider#84d7ea5ec517) instead.**
63
+ */
64
+ translations?: ComponentTranslation<"DatePicker">;
57
65
  /**
58
66
  * The earliest day to start navigation.
59
67
  */
@@ -10,9 +10,7 @@ import { useDayPicker } from "react-day-picker";
10
10
  import { ArrowLeftIcon, ArrowRightIcon } from "@navikt/aksel-icons";
11
11
  import { Button } from "../../button";
12
12
  import { Select } from "../../form/select";
13
- import { useI18n } from "../../util/i18n/i18n.context";
14
- import { useSharedMonthContext } from "../context";
15
- import { getTranslations } from "../utils";
13
+ import { useDateTranslationContext, useSharedMonthContext } from "../context";
16
14
 
17
15
  export const MonthCaption = () => {
18
16
  const {
@@ -22,7 +20,7 @@ export const MonthCaption = () => {
22
20
  locale,
23
21
  } = useDayPicker();
24
22
  const { hasDropdown, year, toYear } = useSharedMonthContext();
25
- const translate = useI18n("DatePicker", getTranslations(locale.code));
23
+ const translate = useDateTranslationContext().translate;
26
24
 
27
25
  const years: Date[] = [];
28
26
 
@@ -3,11 +3,15 @@ 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 } from "../../util/i18n/i18n.context";
7
- import { DateContext, SharedMonthProvider } from "../context";
6
+ import { useDateLocale, useI18n } from "../../util/i18n/i18n.context";
7
+ import {
8
+ DateInputContext,
9
+ DateTranslationContextProvider,
10
+ SharedMonthProvider,
11
+ } from "../context";
8
12
  import { MonthPickerInput } from "../parts/DateInput";
9
13
  import { DateWrapper } from "../parts/DateWrapper";
10
- import { getLocaleFromString } from "../utils";
14
+ import { getLocaleFromString, getTranslations } from "../utils";
11
15
  import MonthCaption from "./MonthCaption";
12
16
  import MonthPickerStandalone from "./MonthPickerStandalone";
13
17
  import MonthSelector from "./MonthSelector";
@@ -69,6 +73,7 @@ export const MonthPicker = forwardRef<HTMLDivElement, MonthPickerProps>(
69
73
  onClose,
70
74
  onOpenToggle,
71
75
  locale,
76
+ translations,
72
77
  onMonthSelect,
73
78
  className,
74
79
  wrapperClassName,
@@ -79,6 +84,11 @@ export const MonthPicker = forwardRef<HTMLDivElement, MonthPickerProps>(
79
84
  },
80
85
  ref,
81
86
  ) => {
87
+ const translate = useI18n(
88
+ "DatePicker",
89
+ translations,
90
+ getTranslations(locale),
91
+ );
82
92
  const langProviderLocale = useDateLocale();
83
93
  const ariaId = useId(id);
84
94
  const [open, setOpen] = useState(_open ?? false);
@@ -103,61 +113,64 @@ export const MonthPicker = forwardRef<HTMLDivElement, MonthPickerProps>(
103
113
  }
104
114
 
105
115
  return (
106
- <DateContext.Provider
107
- value={{
108
- open: _open ?? open,
109
- onOpen: () => {
110
- setOpen((x) => !x);
111
- onOpenToggle?.();
112
- },
113
- ariaId,
114
- defined: true,
115
- }}
116
- >
117
- <div
118
- ref={mergedRef}
119
- className={cl("navds-date__wrapper", wrapperClassName)}
116
+ <DateTranslationContextProvider translate={translate}>
117
+ <DateInputContext.Provider
118
+ value={{
119
+ open: _open ?? open,
120
+ onOpen: () => {
121
+ setOpen((x) => !x);
122
+ onOpenToggle?.();
123
+ },
124
+ ariaId,
125
+ defined: true,
126
+ }}
120
127
  >
121
- {children}
122
- <DateWrapper
123
- open={_open ?? open}
124
- anchor={wrapperRef}
125
- onClose={() => onClose?.() ?? setOpen(false)}
126
- locale={locale}
127
- variant="month"
128
- popoverProps={{
129
- id: ariaId,
130
- strategy,
131
- }}
128
+ <div
129
+ ref={mergedRef}
130
+ className={cl("navds-date__wrapper", wrapperClassName)}
132
131
  >
133
- <DayPickerProvider
134
- initialProps={{
135
- locale: locale
136
- ? getLocaleFromString(locale)
137
- : langProviderLocale,
138
- selected: selected ?? selectedMonth,
139
- toDate,
140
- fromDate,
141
- month: selected ?? selectedMonth,
132
+ {children}
133
+ <DateWrapper
134
+ open={_open ?? open}
135
+ anchor={wrapperRef}
136
+ onClose={() => onClose?.() ?? setOpen(false)}
137
+ locale={locale}
138
+ translate={translate}
139
+ variant="month"
140
+ popoverProps={{
141
+ id: ariaId,
142
+ strategy,
142
143
  }}
143
144
  >
144
- <div className={cl("rdp-month", className)}>
145
- <SharedMonthProvider
146
- dropdownCaption={dropdownCaption}
147
- disabled={disabled}
148
- selected={selected ?? selectedMonth}
149
- onSelect={handleSelect}
150
- year={year}
151
- onYearChange={onYearChange}
152
- >
153
- <MonthCaption />
154
- <MonthSelector />
155
- </SharedMonthProvider>
156
- </div>
157
- </DayPickerProvider>
158
- </DateWrapper>
159
- </div>
160
- </DateContext.Provider>
145
+ <DayPickerProvider
146
+ initialProps={{
147
+ locale: locale
148
+ ? getLocaleFromString(locale)
149
+ : langProviderLocale,
150
+ selected: selected ?? selectedMonth,
151
+ toDate,
152
+ fromDate,
153
+ month: selected ?? selectedMonth,
154
+ }}
155
+ >
156
+ <div className={cl("rdp-month", className)}>
157
+ <SharedMonthProvider
158
+ dropdownCaption={dropdownCaption}
159
+ disabled={disabled}
160
+ selected={selected ?? selectedMonth}
161
+ onSelect={handleSelect}
162
+ year={year}
163
+ onYearChange={onYearChange}
164
+ >
165
+ <MonthCaption />
166
+ <MonthSelector />
167
+ </SharedMonthProvider>
168
+ </div>
169
+ </DayPickerProvider>
170
+ </DateWrapper>
171
+ </div>
172
+ </DateInputContext.Provider>
173
+ </DateTranslationContextProvider>
161
174
  );
162
175
  },
163
176
  ) as MonthPickerComponent;
@@ -1,8 +1,12 @@
1
1
  import cl from "clsx";
2
2
  import React, { forwardRef, useState } from "react";
3
3
  import { DayPickerProvider } from "react-day-picker";
4
- import { SharedMonthProvider } from "../context";
5
- import { getLocaleFromString } from "../utils";
4
+ import { useDateLocale, useI18n } from "../../util/i18n/i18n.context";
5
+ import {
6
+ DateTranslationContextProvider,
7
+ SharedMonthProvider,
8
+ } from "../context";
9
+ import { getLocaleFromString, getTranslations } from "../utils";
6
10
  import MonthCaption from "./MonthCaption";
7
11
  import MonthSelector from "./MonthSelector";
8
12
  import { MonthPickerProps } from "./types";
@@ -34,7 +38,8 @@ export const MonthPickerStandalone = forwardRef<
34
38
  disabled = [],
35
39
  selected,
36
40
  className,
37
- locale = "nb",
41
+ locale,
42
+ translations,
38
43
  onMonthSelect,
39
44
  defaultSelected,
40
45
  year,
@@ -42,6 +47,12 @@ export const MonthPickerStandalone = forwardRef<
42
47
  },
43
48
  ref,
44
49
  ) => {
50
+ const translate = useI18n(
51
+ "DatePicker",
52
+ translations,
53
+ getTranslations(locale),
54
+ );
55
+ const langProviderLocale = useDateLocale();
45
56
  const [selectedMonth, setSelectedMonth] = useState<Date | undefined>(
46
57
  defaultSelected,
47
58
  );
@@ -58,29 +69,31 @@ export const MonthPickerStandalone = forwardRef<
58
69
 
59
70
  return (
60
71
  <div ref={ref} className={cl("navds-date__wrapper", className)}>
61
- <DayPickerProvider
62
- initialProps={{
63
- locale: getLocaleFromString(locale),
64
- selected: selected ?? selectedMonth,
65
- toDate,
66
- fromDate,
67
- month: selected ?? selectedMonth,
68
- }}
69
- >
70
- <div className="navds-date rdp-month">
71
- <SharedMonthProvider
72
- dropdownCaption={dropdownCaption}
73
- disabled={disabled}
74
- selected={selected ?? selectedMonth}
75
- onSelect={handleSelect}
76
- year={year}
77
- onYearChange={onYearChange}
78
- >
79
- <MonthCaption />
80
- <MonthSelector />
81
- </SharedMonthProvider>
82
- </div>
83
- </DayPickerProvider>
72
+ <DateTranslationContextProvider translate={translate}>
73
+ <DayPickerProvider
74
+ initialProps={{
75
+ locale: locale ? getLocaleFromString(locale) : langProviderLocale,
76
+ selected: selected ?? selectedMonth,
77
+ toDate,
78
+ fromDate,
79
+ month: selected ?? selectedMonth,
80
+ }}
81
+ >
82
+ <div className="navds-date rdp-month">
83
+ <SharedMonthProvider
84
+ dropdownCaption={dropdownCaption}
85
+ disabled={disabled}
86
+ selected={selected ?? selectedMonth}
87
+ onSelect={handleSelect}
88
+ year={year}
89
+ onYearChange={onYearChange}
90
+ >
91
+ <MonthCaption />
92
+ <MonthSelector />
93
+ </SharedMonthProvider>
94
+ </div>
95
+ </DayPickerProvider>
96
+ </DateTranslationContextProvider>
84
97
  </div>
85
98
  );
86
99
  },
@@ -1,3 +1,4 @@
1
+ import { ComponentTranslation } from "../../util/i18n/i18n.types";
1
2
  import { Matcher } from "../utils";
2
3
 
3
4
  export interface MonthPickerProps extends React.HTMLAttributes<HTMLDivElement> {
@@ -25,8 +26,15 @@ export interface MonthPickerProps extends React.HTMLAttributes<HTMLDivElement> {
25
26
  /**
26
27
  * Changes monthpicker locale
27
28
  * @default "nb" (norsk bokmål)
29
+ * @deprecated Use `<Provider />`-component
28
30
  */
29
31
  locale?: "nb" | "nn" | "en";
32
+ /**
33
+ * i18n-API for customizing texts and labels.
34
+ *
35
+ * **NB: If you need to change the language, use [Provider](https://aksel.nav.no/komponenter/core/provider#84d7ea5ec517) instead.**
36
+ */
37
+ translations?: ComponentTranslation<"DatePicker">;
30
38
  /**
31
39
  * Display dropdown for choosing year. Needs `fromDate` + `toDate` to work.
32
40
  * @default false
@@ -5,8 +5,7 @@ import { ReadOnlyIcon } from "../../form/ReadOnlyIcon";
5
5
  import { FormFieldProps, useFormField } from "../../form/useFormField";
6
6
  import { BodyShort, ErrorMessage, Label } from "../../typography";
7
7
  import { omit } from "../../util";
8
- import { useI18n } from "../../util/i18n/i18n.context";
9
- import { useDateInputContext } from "../context";
8
+ import { useDateInputContext, useDateTranslationContext } from "../context";
10
9
 
11
10
  export interface DateInputProps
12
11
  extends FormFieldProps,
@@ -47,7 +46,7 @@ const DateInput = forwardRef<HTMLInputElement, DateInputProps>((props, ref) => {
47
46
  } = props;
48
47
 
49
48
  const buttonRef = useRef<HTMLButtonElement>(null);
50
- const translate = useI18n("DatePicker");
49
+ const translate = useDateTranslationContext().translate;
51
50
 
52
51
  const isDatepickerVariant = variant === "datepicker";
53
52
 
@@ -5,8 +5,8 @@ import { Modal } from "../../modal";
5
5
  import { useModalContext } from "../../modal/Modal.context";
6
6
  import { Popover } from "../../popover";
7
7
  import { useMedia } from "../../util/hooks";
8
- import { useI18n } from "../../util/i18n/i18n.context";
9
- import { getTranslations } from "../utils";
8
+ import { TFunction, useI18n } from "../../util/i18n/i18n.context";
9
+ import { getGlobalTranslations } from "../utils";
10
10
 
11
11
  const variantToLabel = {
12
12
  single: "chooseDate",
@@ -22,6 +22,7 @@ type DateWrapperProps = {
22
22
  anchor: HTMLDivElement | null;
23
23
  /** @deprecated Temporary to support locale prop */
24
24
  locale: "nb" | "nn" | "en" | undefined;
25
+ translate: TFunction<"DatePicker">;
25
26
  variant: "single" | "multiple" | "range" | "month";
26
27
  popoverProps: {
27
28
  id?: string;
@@ -35,10 +36,11 @@ export const DateWrapper = ({
35
36
  onClose,
36
37
  anchor,
37
38
  locale,
39
+ translate,
38
40
  variant,
39
41
  popoverProps,
40
42
  }: DateWrapperProps) => {
41
- const translate = useI18n("DatePicker", getTranslations(locale));
43
+ const translateGlobal = useI18n("global", getGlobalTranslations(locale));
42
44
  const modalRef = useRef<HTMLDialogElement>(null);
43
45
  const isInModal = useModalContext(false) !== undefined;
44
46
  const hideModal =
@@ -86,7 +88,7 @@ export const DateWrapper = ({
86
88
  size="small"
87
89
  type="button"
88
90
  >
89
- {translate("close")}
91
+ {translateGlobal("close")}
90
92
  </Button>
91
93
  </div>
92
94
  </Modal>
@@ -5,7 +5,11 @@ export {
5
5
  INPUT_DATE_STRING_FORMAT_MONTH,
6
6
  parseDate,
7
7
  } from "./parse-date";
8
- export { getLocaleFromString, getTranslations } from "./locale";
8
+ export {
9
+ getLocaleFromString,
10
+ getTranslations,
11
+ getGlobalTranslations,
12
+ } from "./locale";
9
13
  export { disableDate } from "./dates-disabled";
10
14
 
11
15
  export { dateIsInCurrentMonth, isValidDate } from "./check-dates";