@navikt/ds-react 7.5.2 → 7.6.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 (169) hide show
  1. package/cjs/date/datepicker/DatePicker.js +5 -3
  2. package/cjs/date/datepicker/DatePicker.js.map +1 -1
  3. package/cjs/date/datepicker/DatePickerStandalone.js +5 -3
  4. package/cjs/date/datepicker/DatePickerStandalone.js.map +1 -1
  5. package/cjs/date/datepicker/parts/Caption.js +6 -5
  6. package/cjs/date/datepicker/parts/Caption.js.map +1 -1
  7. package/cjs/date/datepicker/parts/DropdownCaption.js +10 -13
  8. package/cjs/date/datepicker/parts/DropdownCaption.js.map +1 -1
  9. package/cjs/date/datepicker/parts/WeekNumber.d.ts +1 -2
  10. package/cjs/date/datepicker/parts/WeekNumber.js +8 -19
  11. package/cjs/date/datepicker/parts/WeekNumber.js.map +1 -1
  12. package/cjs/date/datepicker/parts/WeekRow.js +5 -3
  13. package/cjs/date/datepicker/parts/WeekRow.js.map +1 -1
  14. package/cjs/date/hooks/useDatepicker.js +4 -2
  15. package/cjs/date/hooks/useDatepicker.js.map +1 -1
  16. package/cjs/date/hooks/useMonthPicker.js +4 -2
  17. package/cjs/date/hooks/useMonthPicker.js.map +1 -1
  18. package/cjs/date/hooks/useRangeDatepicker.js +4 -2
  19. package/cjs/date/hooks/useRangeDatepicker.js.map +1 -1
  20. package/cjs/date/monthpicker/MonthCaption.js +6 -4
  21. package/cjs/date/monthpicker/MonthCaption.js.map +1 -1
  22. package/cjs/date/monthpicker/MonthPicker.js +6 -2
  23. package/cjs/date/monthpicker/MonthPicker.js.map +1 -1
  24. package/cjs/date/parts/DateInput.js +5 -5
  25. package/cjs/date/parts/DateInput.js.map +1 -1
  26. package/cjs/date/parts/DateWrapper.d.ts +2 -1
  27. package/cjs/date/parts/DateWrapper.js +11 -3
  28. package/cjs/date/parts/DateWrapper.js.map +1 -1
  29. package/cjs/date/utils/index.d.ts +1 -2
  30. package/cjs/date/utils/index.js +2 -7
  31. package/cjs/date/utils/index.js.map +1 -1
  32. package/cjs/date/utils/locale.d.ts +24 -0
  33. package/cjs/date/utils/locale.js +22 -1
  34. package/cjs/date/utils/locale.js.map +1 -1
  35. package/cjs/form/combobox/Combobox.d.ts +1 -1
  36. package/cjs/form/combobox/Input/InputController.d.ts +1 -1
  37. package/cjs/form/combobox/SelectedOptions/SelectedOptions.js +1 -1
  38. package/cjs/form/combobox/SelectedOptions/SelectedOptions.js.map +1 -1
  39. package/cjs/form/switch/Switch.js +8 -3
  40. package/cjs/form/switch/Switch.js.map +1 -1
  41. package/cjs/internal-header/InternalHeader.js +9 -0
  42. package/cjs/internal-header/InternalHeader.js.map +1 -1
  43. package/cjs/overlays/action-menu/ActionMenu.d.ts +2 -1
  44. package/cjs/overlays/action-menu/ActionMenu.js +8 -4
  45. package/cjs/overlays/action-menu/ActionMenu.js.map +1 -1
  46. package/cjs/provider/theme/AkselTheme.d.ts +12 -1
  47. package/cjs/provider/theme/AkselTheme.js +6 -4
  48. package/cjs/provider/theme/AkselTheme.js.map +1 -1
  49. package/cjs/read-more/ReadMore.d.ts +1 -1
  50. package/cjs/read-more/ReadMore.js +6 -3
  51. package/cjs/read-more/ReadMore.js.map +1 -1
  52. package/cjs/stepper/Step.js +1 -1
  53. package/cjs/stepper/Step.js.map +1 -1
  54. package/cjs/stepper/Stepper.js +3 -2
  55. package/cjs/stepper/Stepper.js.map +1 -1
  56. package/cjs/util/TextareaAutoSize.js +1 -1
  57. package/cjs/util/TextareaAutoSize.js.map +1 -1
  58. package/cjs/util/i18n/locales/en.d.ts +20 -0
  59. package/cjs/util/i18n/locales/en.js +20 -0
  60. package/cjs/util/i18n/locales/en.js.map +1 -1
  61. package/cjs/util/i18n/locales/nb.d.ts +20 -0
  62. package/cjs/util/i18n/locales/nb.js +20 -0
  63. package/cjs/util/i18n/locales/nb.js.map +1 -1
  64. package/cjs/util/i18n/locales/nn.d.ts +20 -0
  65. package/cjs/util/i18n/locales/nn.js +20 -0
  66. package/cjs/util/i18n/locales/nn.js.map +1 -1
  67. package/esm/date/datepicker/DatePicker.js +6 -4
  68. package/esm/date/datepicker/DatePicker.js.map +1 -1
  69. package/esm/date/datepicker/DatePickerStandalone.js +6 -4
  70. package/esm/date/datepicker/DatePickerStandalone.js.map +1 -1
  71. package/esm/date/datepicker/parts/Caption.js +6 -5
  72. package/esm/date/datepicker/parts/Caption.js.map +1 -1
  73. package/esm/date/datepicker/parts/DropdownCaption.js +8 -11
  74. package/esm/date/datepicker/parts/DropdownCaption.js.map +1 -1
  75. package/esm/date/datepicker/parts/WeekNumber.d.ts +1 -2
  76. package/esm/date/datepicker/parts/WeekNumber.js +8 -19
  77. package/esm/date/datepicker/parts/WeekNumber.js.map +1 -1
  78. package/esm/date/datepicker/parts/WeekRow.js +5 -3
  79. package/esm/date/datepicker/parts/WeekRow.js.map +1 -1
  80. package/esm/date/hooks/useDatepicker.js +4 -2
  81. package/esm/date/hooks/useDatepicker.js.map +1 -1
  82. package/esm/date/hooks/useMonthPicker.js +4 -2
  83. package/esm/date/hooks/useMonthPicker.js.map +1 -1
  84. package/esm/date/hooks/useRangeDatepicker.js +4 -2
  85. package/esm/date/hooks/useRangeDatepicker.js.map +1 -1
  86. package/esm/date/monthpicker/MonthCaption.js +7 -5
  87. package/esm/date/monthpicker/MonthCaption.js.map +1 -1
  88. package/esm/date/monthpicker/MonthPicker.js +6 -2
  89. package/esm/date/monthpicker/MonthPicker.js.map +1 -1
  90. package/esm/date/parts/DateInput.js +5 -5
  91. package/esm/date/parts/DateInput.js.map +1 -1
  92. package/esm/date/parts/DateWrapper.d.ts +2 -1
  93. package/esm/date/parts/DateWrapper.js +11 -3
  94. package/esm/date/parts/DateWrapper.js.map +1 -1
  95. package/esm/date/utils/index.d.ts +1 -2
  96. package/esm/date/utils/index.js +1 -2
  97. package/esm/date/utils/index.js.map +1 -1
  98. package/esm/date/utils/locale.d.ts +24 -0
  99. package/esm/date/utils/locale.js +17 -0
  100. package/esm/date/utils/locale.js.map +1 -1
  101. package/esm/form/combobox/Combobox.d.ts +1 -1
  102. package/esm/form/combobox/Input/InputController.d.ts +1 -1
  103. package/esm/form/combobox/SelectedOptions/SelectedOptions.js +1 -1
  104. package/esm/form/combobox/SelectedOptions/SelectedOptions.js.map +1 -1
  105. package/esm/form/switch/Switch.js +8 -3
  106. package/esm/form/switch/Switch.js.map +1 -1
  107. package/esm/internal-header/InternalHeader.js +9 -0
  108. package/esm/internal-header/InternalHeader.js.map +1 -1
  109. package/esm/overlays/action-menu/ActionMenu.d.ts +2 -1
  110. package/esm/overlays/action-menu/ActionMenu.js +8 -4
  111. package/esm/overlays/action-menu/ActionMenu.js.map +1 -1
  112. package/esm/provider/theme/AkselTheme.d.ts +12 -1
  113. package/esm/provider/theme/AkselTheme.js +6 -4
  114. package/esm/provider/theme/AkselTheme.js.map +1 -1
  115. package/esm/read-more/ReadMore.d.ts +1 -1
  116. package/esm/read-more/ReadMore.js +6 -3
  117. package/esm/read-more/ReadMore.js.map +1 -1
  118. package/esm/stepper/Step.js +1 -1
  119. package/esm/stepper/Step.js.map +1 -1
  120. package/esm/stepper/Stepper.js +3 -2
  121. package/esm/stepper/Stepper.js.map +1 -1
  122. package/esm/util/TextareaAutoSize.js +1 -1
  123. package/esm/util/TextareaAutoSize.js.map +1 -1
  124. package/esm/util/i18n/locales/en.d.ts +20 -0
  125. package/esm/util/i18n/locales/en.js +20 -0
  126. package/esm/util/i18n/locales/en.js.map +1 -1
  127. package/esm/util/i18n/locales/nb.d.ts +20 -0
  128. package/esm/util/i18n/locales/nb.js +20 -0
  129. package/esm/util/i18n/locales/nb.js.map +1 -1
  130. package/esm/util/i18n/locales/nn.d.ts +20 -0
  131. package/esm/util/i18n/locales/nn.js +20 -0
  132. package/esm/util/i18n/locales/nn.js.map +1 -1
  133. package/package.json +4 -4
  134. package/src/date/datepicker/DatePicker.tsx +5 -4
  135. package/src/date/datepicker/DatePickerStandalone.tsx +5 -4
  136. package/src/date/datepicker/parts/Caption.tsx +5 -6
  137. package/src/date/datepicker/parts/DropdownCaption.tsx +7 -12
  138. package/src/date/datepicker/parts/WeekNumber.tsx +12 -35
  139. package/src/date/datepicker/parts/WeekRow.tsx +5 -8
  140. package/src/date/hooks/useDatepicker.tsx +4 -2
  141. package/src/date/hooks/useMonthPicker.tsx +4 -2
  142. package/src/date/hooks/useRangeDatepicker.tsx +4 -2
  143. package/src/date/monthpicker/MonthCaption.tsx +9 -10
  144. package/src/date/monthpicker/MonthPicker.tsx +6 -2
  145. package/src/date/parts/DateInput.tsx +8 -9
  146. package/src/date/parts/DateWrapper.tsx +14 -4
  147. package/src/date/utils/index.ts +1 -8
  148. package/src/date/utils/locale.ts +18 -0
  149. package/src/form/combobox/SelectedOptions/SelectedOptions.tsx +5 -1
  150. package/src/form/switch/Switch.tsx +30 -24
  151. package/src/internal-header/InternalHeader.tsx +28 -8
  152. package/src/overlays/action-menu/ActionMenu.tsx +90 -56
  153. package/src/provider/theme/AkselTheme.tsx +22 -4
  154. package/src/react-css.d.ts +2 -0
  155. package/src/read-more/ReadMore.tsx +10 -2
  156. package/src/stepper/Step.tsx +3 -0
  157. package/src/stepper/Stepper.tsx +5 -2
  158. package/src/util/TextareaAutoSize.tsx +1 -0
  159. package/src/util/i18n/locales/en.ts +20 -0
  160. package/src/util/i18n/locales/nb.ts +20 -0
  161. package/src/util/i18n/locales/nn.ts +20 -0
  162. package/src/util/i18n/locales.test.tsx +44 -12
  163. package/cjs/date/utils/labels.d.ts +0 -18
  164. package/cjs/date/utils/labels.js +0 -201
  165. package/cjs/date/utils/labels.js.map +0 -1
  166. package/esm/date/utils/labels.d.ts +0 -18
  167. package/esm/date/utils/labels.js +0 -189
  168. package/esm/date/utils/labels.js.map +0 -1
  169. package/src/date/utils/labels.ts +0 -219
@@ -95,5 +95,25 @@ export default {
95
95
  reset: "Tilbakestill tidsperspektiv",
96
96
  },
97
97
  },
98
+ DatePicker: {
99
+ close: "Lukk", // TODO: Consider making global
100
+ chooseDate: "Velg dato",
101
+ chooseDates: "Velg datoer",
102
+ chooseDateRange: "Velg start- og sluttdato",
103
+ chooseMonth: "Velg måned",
104
+ week: "Uke",
105
+ weekNumber: "Uke {week}",
106
+ selectWeekNumber: "Velg uke {week}",
107
+ month: "Måned",
108
+ goToNextMonth: "Gå til neste måned",
109
+ goToPreviousMonth: "Gå til forrige måned",
110
+ year: "År",
111
+ goToNextYear: "Gå til neste år",
112
+ goToPreviousYear: "Gå til forrige år",
113
+ openDatePicker: "Åpne datovelger",
114
+ openMonthPicker: "Åpne månedsvelger",
115
+ closeDatePicker: "Lukk datovelger",
116
+ closeMonthPicker: "Lukk månedsvelger",
117
+ },
98
118
  };
99
119
  //# sourceMappingURL=nb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nb.js","sourceRoot":"","sources":["../../../../src/util/i18n/locales/nb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAM7C,eAAe;IACb,MAAM,EAAE;QACN,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,YAAY;QACtB,QAAQ,EAAE,iBAAiB;KAC5B;IAED,UAAU,EAAE;QACV,QAAQ,EAAE;YACR,MAAM,EAAE,UAAU;YAClB,cAAc,EAAE,YAAY;YAC5B,WAAW,EAAE,wBAAwB;YACrC,mBAAmB,EAAE,wBAAwB;YAC7C,IAAI,EAAE,OAAO;YACb,EAAE,EAAE,OAAO;YACX,QAAQ,EAAE,6BAA6B;YACvC,iBAAiB,EAAE,mCAAmC;SACvD;QACD,IAAI,EAAE;YACJ,gBAAgB,EAAE,gCAAgC;YAClD,iBAAiB,EAAE,aAAa;YAChC,SAAS,EAAE,aAAa;YACxB,WAAW,EAAE,aAAa;SAC3B;KACF;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,mCAAmC;QACzC,YAAY,EAAE,eAAe;QAC7B,YAAY,EAAE,iBAAiB;KAChC;IACD,KAAK,EAAE;QACL,UAAU,EAAE,aAAa;QACzB,YAAY,EAAE,cAAc;QAC5B,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,UAAU;KACpB;IACD,KAAK,EAAE;QACL,SAAS,EAAE;YACT,8DAA8D;YAC9D,WAAW,EAAE,OAAO;SACrB;KACF;IACD,YAAY,EAAE;QACZ,OAAO,EAAE,iDAAiD;KAC3D;IACD,MAAM,EAAE;QACN,KAAK,EAAE,SAAS;KACjB;IACD,KAAK,EAAE;QACL,KAAK,EAAE,MAAM;KACd;IACD,UAAU,EAAE;QACV,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,OAAO;KACd;IACD,WAAW,EAAE;QACX,QAAQ,EAAE,oBAAoB;QAC9B,eAAe,EACb,gEAAgE;KACnE;IACD,MAAM,EAAE;QACN,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,KAAK;KACd;IACD,QAAQ,EAAE;QACR,0BAA0B;QAC1B,SAAS,EAAE,6CAA6C;QACxD,YAAY,EAAE,sBAAsB;QACpC,SAAS,EAAE,oBAAoB;KAChC;IACD,QAAQ,EAAE;QACR,UAAU,EAAE,YAAY;QACxB,SAAS,EAAE,OAAO;QAClB,WAAW,EAAE,QAAQ;QACrB,UAAU,EAAE,MAAM;QAClB,GAAG,EAAE;YACH,SAAS,EAAE,gBAAgB;YAC3B,MAAM,EAAE,mBAAmB;SAC5B;QACD,MAAM,EAAE;YACN,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,UAAU;YACnB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,SAAS,EAAE,qCAAqC;YACzD,MAAM,EAAE,gCAAgC;SACzC;QACD,GAAG,EAAE;YACH,GAAG,EAAE,aAAa;SACnB;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,mCAAmC;YACzC,KAAK,EAAE,6BAA6B;SACrC;KACF;CACuB,CAAC"}
1
+ {"version":3,"file":"nb.js","sourceRoot":"","sources":["../../../../src/util/i18n/locales/nb.ts"],"names":[],"mappings":"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"}
@@ -92,5 +92,25 @@ declare const _default: {
92
92
  reset: string;
93
93
  };
94
94
  };
95
+ DatePicker: {
96
+ close: string;
97
+ chooseDate: string;
98
+ chooseDates: string;
99
+ chooseDateRange: string;
100
+ chooseMonth: string;
101
+ week: string;
102
+ weekNumber: string;
103
+ selectWeekNumber: string;
104
+ month: string;
105
+ goToNextMonth: string;
106
+ goToPreviousMonth: string;
107
+ year: string;
108
+ goToNextYear: string;
109
+ goToPreviousYear: string;
110
+ openDatePicker: string;
111
+ openMonthPicker: string;
112
+ closeDatePicker: string;
113
+ closeMonthPicker: string;
114
+ };
95
115
  };
96
116
  export default _default;
@@ -93,5 +93,25 @@ export default {
93
93
  reset: "Tilbakestill tidsperspektiv",
94
94
  },
95
95
  },
96
+ DatePicker: {
97
+ close: "Lukk",
98
+ chooseDate: "Vel dato",
99
+ chooseDates: "Vel datoar",
100
+ chooseDateRange: "Vel start- og sluttdato",
101
+ chooseMonth: "Vel månad",
102
+ week: "Veke",
103
+ weekNumber: "Veke {week}",
104
+ selectWeekNumber: "Vel veke {week}",
105
+ month: "Månad",
106
+ goToNextMonth: "Gå til neste månad",
107
+ goToPreviousMonth: "Gå til førre månad",
108
+ year: "År",
109
+ goToNextYear: "Gå til neste år",
110
+ goToPreviousYear: "Gå til førre år",
111
+ openDatePicker: "Opne datoveljar",
112
+ openMonthPicker: "Opne månadsveljar",
113
+ closeDatePicker: "Lukk datoveljar",
114
+ closeMonthPicker: "Lukk månadsveljar",
115
+ },
96
116
  };
97
117
  //# sourceMappingURL=nn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nn.js","sourceRoot":"","sources":["../../../../src/util/i18n/locales/nn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAGrC,eAAe;IACb,MAAM,EAAE;QACN,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,YAAY;QACtB,QAAQ,EAAE,gBAAgB;KAC3B;IAED,UAAU,EAAE;QACV,QAAQ,EAAE;YACR,MAAM,EAAE,SAAS;YACjB,cAAc,EAAE,WAAW;YAC3B,WAAW,EAAE,uBAAuB;YACpC,mBAAmB,EAAE,wBAAwB;YAC7C,IAAI,EAAE,OAAO;YACb,EAAE,EAAE,OAAO;YACX,QAAQ,EAAE,6BAA6B;YACvC,iBAAiB,EAAE,qCAAqC;SACzD;QACD,IAAI,EAAE;YACJ,gBAAgB,EAAE,+BAA+B;YACjD,iBAAiB,EAAE,YAAY;YAC/B,SAAS,EAAE,aAAa;YACxB,WAAW,EAAE,aAAa;SAC3B;KACF;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,mCAAmC;QACzC,YAAY,EAAE,eAAe;QAC7B,YAAY,EAAE,iBAAiB;KAChC;IACD,KAAK,EAAE;QACL,UAAU,EAAE,aAAa;QACzB,YAAY,EAAE,cAAc;QAC5B,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,UAAU;KACpB;IACD,KAAK,EAAE;QACL,SAAS,EAAE;YACT,WAAW,EAAE,OAAO;SACrB;KACF;IACD,YAAY,EAAE;QACZ,OAAO,EAAE,gDAAgD;KAC1D;IACD,MAAM,EAAE;QACN,KAAK,EAAE,SAAS;KACjB;IACD,KAAK,EAAE;QACL,KAAK,EAAE,MAAM;KACd;IACD,UAAU,EAAE;QACV,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,OAAO;KACd;IACD,WAAW,EAAE;QACX,QAAQ,EAAE,oBAAoB;QAC9B,eAAe,EACb,gEAAgE;KACnE;IACD,MAAM,EAAE;QACN,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,KAAK;KACd;IACD,QAAQ,EAAE;QACR,SAAS,EAAE,8CAA8C;QACzD,YAAY,EAAE,yBAAyB;QACvC,SAAS,EAAE,qBAAqB;KACjC;IACD,QAAQ,EAAE;QACR,UAAU,EAAE,YAAY;QACxB,SAAS,EAAE,OAAO;QAClB,WAAW,EAAE,QAAQ;QACrB,UAAU,EAAE,MAAM;QAClB,GAAG,EAAE;YACH,SAAS,EAAE,gBAAgB;YAC3B,MAAM,EAAE,mBAAmB;SAC5B;QACD,MAAM,EAAE;YACN,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,UAAU;YACnB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,gCAAgC;SACzC;QACD,GAAG,EAAE;YACH,GAAG,EAAE,aAAa;SACnB;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,iCAAiC;YACvC,KAAK,EAAE,6BAA6B;SACrC;KACF;CACqB,CAAC"}
1
+ {"version":3,"file":"nn.js","sourceRoot":"","sources":["../../../../src/util/i18n/locales/nn.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.5.2",
3
+ "version": "7.6.0",
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",
@@ -604,8 +604,8 @@
604
604
  "dependencies": {
605
605
  "@floating-ui/react": "0.25.4",
606
606
  "@floating-ui/react-dom": "^2.0.9",
607
- "@navikt/aksel-icons": "^7.5.2",
608
- "@navikt/ds-tokens": "^7.5.2",
607
+ "@navikt/aksel-icons": "^7.6.0",
608
+ "@navikt/ds-tokens": "^7.6.0",
609
609
  "clsx": "^2.1.0",
610
610
  "date-fns": "^3.0.0",
611
611
  "react-day-picker": "8.10.1"
@@ -629,7 +629,7 @@
629
629
  },
630
630
  "peerDependencies": {
631
631
  "@types/react": ">=17.0.30",
632
- "react": ">=17.0.0"
632
+ "react": ">=17.0.0 || >19.0.0-rc"
633
633
  },
634
634
  "peerDependenciesMeta": {
635
635
  "@types/react": {
@@ -5,10 +5,11 @@ 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 } from "../../util/i18n/i18n.context";
8
9
  import { DateContext } from "../context";
9
10
  import { DatePickerInput } from "../parts/DateInput";
10
11
  import { DateWrapper } from "../parts/DateWrapper";
11
- import { getLocaleFromString, labels } from "../utils";
12
+ import { getLocaleFromString } from "../utils";
12
13
  import DatePickerStandalone from "./DatePickerStandalone";
13
14
  import Caption from "./parts/Caption";
14
15
  import DropdownCaption from "./parts/DropdownCaption";
@@ -66,7 +67,7 @@ export const DatePicker = forwardRef<HTMLDivElement, DatePickerProps>(
66
67
  (
67
68
  {
68
69
  children,
69
- locale = "nb",
70
+ locale,
70
71
  dropdownCaption,
71
72
  disabled = [],
72
73
  disableWeekends = false,
@@ -85,6 +86,7 @@ export const DatePicker = forwardRef<HTMLDivElement, DatePickerProps>(
85
86
  },
86
87
  ref,
87
88
  ) => {
89
+ const langProviderLocale = useDateLocale();
88
90
  const ariaId = useId(id);
89
91
  const [open, setOpen] = useState(_open ?? false);
90
92
 
@@ -114,7 +116,7 @@ export const DatePicker = forwardRef<HTMLDivElement, DatePickerProps>(
114
116
 
115
117
  const DatePickerComponent = (
116
118
  <DayPicker
117
- locale={getLocaleFromString(locale)}
119
+ locale={locale ? getLocaleFromString(locale) : langProviderLocale}
118
120
  mode={mode}
119
121
  onSelect={handleSelect}
120
122
  selected={selected ?? selectedDates}
@@ -134,7 +136,6 @@ export const DatePicker = forwardRef<HTMLDivElement, DatePickerProps>(
134
136
  }}
135
137
  weekStartsOn={1}
136
138
  initialFocus={false}
137
- labels={labels as any}
138
139
  modifiers={{
139
140
  weekend: (day) => disableWeekends && isWeekend(day),
140
141
  }}
@@ -3,7 +3,8 @@ 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 { getLocaleFromString, labels } from "../utils";
6
+ import { useDateLocale } from "../../util/i18n/i18n.context";
7
+ import { getLocaleFromString } from "../utils";
7
8
  import Caption from "./parts/Caption";
8
9
  import DropdownCaption from "./parts/DropdownCaption";
9
10
  import { HeadRow } from "./parts/HeadRow";
@@ -49,7 +50,7 @@ export const DatePickerStandalone: DatePickerStandaloneType = forwardRef<
49
50
  (
50
51
  {
51
52
  className,
52
- locale = "nb",
53
+ locale,
53
54
  dropdownCaption,
54
55
  disabled = [],
55
56
  disableWeekends = false,
@@ -63,6 +64,7 @@ export const DatePickerStandalone: DatePickerStandaloneType = forwardRef<
63
64
  },
64
65
  ref,
65
66
  ) => {
67
+ const langProviderLocale = useDateLocale();
66
68
  const [selectedDates, setSelectedDates] = React.useState<
67
69
  Date | Date[] | DateRange | undefined
68
70
  >(defaultSelected);
@@ -83,7 +85,7 @@ export const DatePickerStandalone: DatePickerStandaloneType = forwardRef<
83
85
  className={cl("navds-date__standalone-wrapper", className)}
84
86
  >
85
87
  <DayPicker
86
- locale={getLocaleFromString(locale)}
88
+ locale={locale ? getLocaleFromString(locale) : langProviderLocale}
87
89
  mode={mode}
88
90
  onSelect={handleSelect}
89
91
  selected={selected ?? selectedDates}
@@ -103,7 +105,6 @@ export const DatePickerStandalone: DatePickerStandaloneType = forwardRef<
103
105
  }}
104
106
  weekStartsOn={1}
105
107
  initialFocus={false}
106
- labels={labels as any}
107
108
  modifiers={{
108
109
  weekend: (day) => disableWeekends && isWeekend(day),
109
110
  }}
@@ -3,6 +3,8 @@ 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
8
  import WeekRow from "./WeekRow";
7
9
 
8
10
  /**
@@ -11,13 +13,10 @@ import WeekRow from "./WeekRow";
11
13
  export const DatePickerCaption = ({ displayMonth, id }: CaptionProps) => {
12
14
  const { goToMonth, nextMonth, previousMonth } = useNavigation();
13
15
  const {
14
- labels: { labelPrevious, labelNext },
15
16
  formatters: { formatCaption },
16
17
  locale,
17
18
  } = useDayPicker();
18
-
19
- const previousLabel = labelPrevious(previousMonth, { locale });
20
- const nextLabel = labelNext(nextMonth, { locale });
19
+ const translate = useI18n("DatePicker", getTranslations(locale.code));
21
20
 
22
21
  return (
23
22
  <>
@@ -26,7 +25,7 @@ export const DatePickerCaption = ({ displayMonth, id }: CaptionProps) => {
26
25
  variant="tertiary"
27
26
  disabled={!previousMonth}
28
27
  onClick={() => previousMonth && goToMonth(previousMonth)}
29
- icon={<ArrowLeftIcon title={previousLabel} />}
28
+ icon={<ArrowLeftIcon title={translate("goToPreviousMonth")} />}
30
29
  className="navds-date__caption-button"
31
30
  type="button"
32
31
  />
@@ -40,7 +39,7 @@ export const DatePickerCaption = ({ displayMonth, id }: CaptionProps) => {
40
39
  {formatCaption(displayMonth, { locale })}
41
40
  </Label>
42
41
  <Button
43
- icon={<ArrowRightIcon title={nextLabel} />}
42
+ icon={<ArrowRightIcon title={translate("goToNextMonth")} />}
44
43
  onClick={() => nextMonth && goToMonth(nextMonth)}
45
44
  disabled={!nextMonth}
46
45
  variant="tertiary"
@@ -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 { getMonths, getYears } from "../../utils/get-dates";
8
- import { labelMonthDropdown, labelYearDropdown } from "../../utils/labels";
7
+ import { useI18n } from "../../../util/i18n/i18n.context";
8
+ import { getMonths, getTranslations, getYears } from "../../utils";
9
9
  import WeekRow from "./WeekRow";
10
10
 
11
11
  /**
@@ -17,9 +17,9 @@ export const DropdownCaption = ({ displayMonth, id }: CaptionProps) => {
17
17
  fromDate,
18
18
  toDate,
19
19
  formatters: { formatYearCaption, formatMonthCaption, formatCaption },
20
- labels: { labelPrevious, labelNext },
21
20
  locale,
22
21
  } = useDayPicker();
22
+ const translate = useI18n("DatePicker", getTranslations(locale.code));
23
23
 
24
24
  if (!fromDate || !toDate) {
25
25
  console.warn("Using dropdownCaption required fromDate and toDate");
@@ -44,11 +44,6 @@ export const DropdownCaption = ({ displayMonth, id }: CaptionProps) => {
44
44
  ).reverse();
45
45
  const months = getMonths(fromDate, toDate, displayMonth);
46
46
 
47
- const previousLabel = labelPrevious(previousMonth, { locale });
48
- const nextLabel = labelNext(nextMonth, { locale });
49
- const yearDropdownLabel = labelYearDropdown(locale);
50
- const MonthDropdownLabel = labelMonthDropdown(locale);
51
-
52
47
  return (
53
48
  <>
54
49
  <div className="navds-date__caption">
@@ -64,14 +59,14 @@ export const DropdownCaption = ({ displayMonth, id }: CaptionProps) => {
64
59
  variant="tertiary"
65
60
  disabled={!previousMonth}
66
61
  onClick={() => previousMonth && goToMonth(previousMonth)}
67
- icon={<ArrowLeftIcon title={previousLabel} />}
62
+ icon={<ArrowLeftIcon title={translate("goToPreviousMonth")} />}
68
63
  className="navds-date__caption-button"
69
64
  type="button"
70
65
  />
71
66
 
72
67
  <div className="navds-date__caption">
73
68
  <Select
74
- label={MonthDropdownLabel}
69
+ label={translate("month")}
75
70
  hideLabel
76
71
  className="navds-date__caption__month"
77
72
  value={displayMonth.getMonth()}
@@ -84,7 +79,7 @@ export const DropdownCaption = ({ displayMonth, id }: CaptionProps) => {
84
79
  ))}
85
80
  </Select>
86
81
  <Select
87
- label={yearDropdownLabel}
82
+ label={translate("year")}
88
83
  hideLabel
89
84
  value={displayMonth.getFullYear()}
90
85
  onChange={handleYearChange}
@@ -99,7 +94,7 @@ export const DropdownCaption = ({ displayMonth, id }: CaptionProps) => {
99
94
  </div>
100
95
 
101
96
  <Button
102
- icon={<ArrowRightIcon title={nextLabel} />}
97
+ icon={<ArrowRightIcon title={translate("goToNextMonth")} />}
103
98
  onClick={() => nextMonth && goToMonth(nextMonth)}
104
99
  disabled={!nextMonth}
105
100
  variant="tertiary"
@@ -1,75 +1,52 @@
1
1
  /* https://github.com/gpbl/react-day-picker/blob/7f78cd5/src/components/WeekNumber/WeekNumber.tsx#L21 */
2
2
  import React from "react";
3
3
  import { Button, useDayPicker } from "react-day-picker";
4
- import { labelWeekNumber, labelWeekNumberButton } from "../../utils/labels";
4
+ import { useI18n } from "../../../util/i18n/i18n.context";
5
+ import { getTranslations } from "../../utils";
5
6
 
6
7
  export interface WeekNumberProps {
7
8
  /** The number of the week. */
8
9
  number: number;
9
10
  /** The dates in the week. */
10
11
  dates: Date[];
11
- headerVersion?: boolean;
12
12
  }
13
13
 
14
14
  /**
15
15
  * https://github.com/gpbl/react-day-picker/tree/main/src/components/WeekNumber
16
16
  */
17
- function WeekNumber(props: WeekNumberProps): JSX.Element {
18
- const { number: weekNumber, dates } = props;
17
+ function WeekNumber({
18
+ number: weekNumber,
19
+ dates,
20
+ }: WeekNumberProps): JSX.Element {
19
21
  const {
20
22
  onWeekNumberClick,
21
23
  styles,
22
24
  classNames,
23
25
  locale: { code },
24
26
  } = useDayPicker();
25
-
26
- const weekLabel = labelWeekNumber({
27
- week: Number(weekNumber),
28
- localeCode: code,
29
- });
27
+ const translate = useI18n("DatePicker", getTranslations(code));
30
28
 
31
29
  if (!onWeekNumberClick) {
32
30
  return (
33
31
  <span
34
32
  className={classNames.weeknumber}
35
33
  style={styles.weeknumber}
36
- aria-label={weekLabel}
34
+ aria-label={translate("weekNumber", { week: weekNumber })}
37
35
  >
38
36
  {weekNumber}
39
37
  </span>
40
38
  );
41
39
  }
42
40
 
43
- const label = labelWeekNumberButton({
44
- week: Number(weekNumber),
45
- localeCode: code,
46
- });
47
-
48
- const handleClick: React.MouseEventHandler = function (e) {
49
- onWeekNumberClick(weekNumber, dates, e);
50
- };
51
-
52
- if (props?.headerVersion) {
53
- return (
54
- <Button
55
- name="week-number"
56
- aria-label={label}
57
- className={classNames.weeknumber}
58
- style={styles.weeknumber}
59
- onClick={handleClick}
60
- >
61
- {weekNumber}
62
- </Button>
63
- );
64
- }
65
-
66
41
  return (
67
42
  <Button
68
43
  name="week-number"
69
- aria-label={label}
44
+ aria-label={translate("selectWeekNumber", { week: weekNumber })}
70
45
  className={classNames.weeknumber}
71
46
  style={styles.weeknumber}
72
- onClick={handleClick}
47
+ onClick={(event) => {
48
+ onWeekNumberClick(weekNumber, dates, event);
49
+ }}
73
50
  >
74
51
  {weekNumber}
75
52
  </Button>
@@ -3,13 +3,14 @@ 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
8
  import { getMonthWeeks } from "../../utils/get-month-weeks";
7
- import { labelWeek } from "../../utils/labels";
8
9
  import WeekNumber from "./WeekNumber";
9
10
 
10
11
  const WeekRow = ({ displayMonth }: { displayMonth: Date }) => {
11
12
  const { locale, fixedWeeks, onWeekNumberClick } = useDayPicker();
12
-
13
+ const translate = useI18n("DatePicker", getTranslations(locale.code));
13
14
  const labelId = useId();
14
15
 
15
16
  if (!onWeekNumberClick) {
@@ -32,7 +33,7 @@ const WeekRow = ({ displayMonth }: { displayMonth: Date }) => {
32
33
  className="rdp-cell navds-date__week-cell"
33
34
  >
34
35
  <span className="navds-date__week-wrapper" id={labelId}>
35
- {labelWeek(locale?.code)}
36
+ {`${translate("week")}:`}
36
37
  </span>
37
38
  </Detail>
38
39
 
@@ -42,11 +43,7 @@ const WeekRow = ({ displayMonth }: { displayMonth: Date }) => {
42
43
  className="rdp-cell navds-date__week-cell"
43
44
  >
44
45
  <span className="navds-date__week-wrapper">
45
- <WeekNumber
46
- number={week.weekNumber}
47
- dates={week.dates}
48
- headerVersion
49
- />
46
+ <WeekNumber number={week.weekNumber} dates={week.dates} />
50
47
  </span>
51
48
  </td>
52
49
  ))}
@@ -1,6 +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
5
  import { DatePickerProps } from "../datepicker/DatePicker";
5
6
  import { DateInputProps } from "../parts/DateInput";
6
7
  import {
@@ -130,7 +131,7 @@ export const useDatepicker = (
130
131
  opt: UseDatepickerOptions = {},
131
132
  ): UseDatepickerValue => {
132
133
  const {
133
- locale: _locale = "nb",
134
+ locale: _locale,
134
135
  required,
135
136
  defaultSelected: _defaultSelected,
136
137
  today = new Date(),
@@ -146,7 +147,8 @@ export const useDatepicker = (
146
147
  } = opt;
147
148
 
148
149
  const [anchorRef, setAnchorRef] = useState<HTMLButtonElement | null>(null);
149
- const locale = getLocaleFromString(_locale);
150
+ const localeFromProvider = useDateLocale();
151
+ const locale = _locale ? getLocaleFromString(_locale) : localeFromProvider;
150
152
 
151
153
  const [defaultSelected, setDefaultSelected] = useState(_defaultSelected);
152
154
 
@@ -1,4 +1,5 @@
1
1
  import React, { useCallback, useMemo, useState } from "react";
2
+ import { useDateLocale } from "../../util/i18n/i18n.context";
2
3
  import { MonthPickerProps } from "../monthpicker/types";
3
4
  import { DateInputProps } from "../parts/DateInput";
4
5
  import {
@@ -126,7 +127,7 @@ export const useMonthpicker = (
126
127
  opt: UseMonthPickerOptions = {},
127
128
  ): UseMonthPickerValue => {
128
129
  const {
129
- locale: _locale = "nb",
130
+ locale: _locale,
130
131
  defaultSelected: _defaultSelected,
131
132
  fromDate,
132
133
  toDate,
@@ -143,7 +144,8 @@ export const useMonthpicker = (
143
144
  const [defaultSelected, setDefaultSelected] = useState(_defaultSelected);
144
145
 
145
146
  const today = useMemo(() => new Date(), []);
146
- const locale = getLocaleFromString(_locale);
147
+ const localeFromProvider = useDateLocale();
148
+ const locale = _locale ? getLocaleFromString(_locale) : localeFromProvider;
147
149
 
148
150
  // Initialize states
149
151
  const [year, setYear] = useState(defaultSelected ?? defaultYear ?? today);
@@ -5,6 +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
9
  import { DatePickerProps } from "../datepicker/DatePicker";
9
10
  import { DateInputProps } from "../parts/DateInput";
10
11
  import {
@@ -220,7 +221,7 @@ export const useRangeDatepicker = (
220
221
  opt: UseRangeDatepickerOptions = {},
221
222
  ): UseRangeDatepickerValue => {
222
223
  const {
223
- locale: _locale = "nb",
224
+ locale: _locale,
224
225
  defaultSelected: _defaultSelected,
225
226
  today = new Date(),
226
227
  fromDate,
@@ -236,7 +237,8 @@ export const useRangeDatepicker = (
236
237
 
237
238
  const [anchorRef, setAnchorRef] = useState<HTMLButtonElement | null>(null);
238
239
 
239
- const locale = getLocaleFromString(_locale);
240
+ const localeFromProvider = useDateLocale();
241
+ const locale = _locale ? getLocaleFromString(_locale) : localeFromProvider;
240
242
 
241
243
  const [defaultSelected, setDefaultSelected] = useState(_defaultSelected);
242
244
 
@@ -10,8 +10,9 @@ 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";
13
14
  import { useSharedMonthContext } from "../context";
14
- import { labelNextYear, labelPrevYear } from "../utils";
15
+ import { getTranslations } from "../utils";
15
16
 
16
17
  export const MonthCaption = () => {
17
18
  const {
@@ -20,8 +21,8 @@ export const MonthCaption = () => {
20
21
  formatters: { formatYearCaption },
21
22
  locale,
22
23
  } = useDayPicker();
23
-
24
24
  const { hasDropdown, year, toYear } = useSharedMonthContext();
25
+ const translate = useI18n("DatePicker", getTranslations(locale.code));
25
26
 
26
27
  const years: Date[] = [];
27
28
 
@@ -38,8 +39,8 @@ export const MonthCaption = () => {
38
39
  years.sort((a, b) => b.getFullYear() - a.getFullYear());
39
40
  }
40
41
 
41
- const handleYearChange = (e) =>
42
- toYear(setYear(startOfMonth(new Date()), Number(e.target.value)));
42
+ const handleYearChange = (event: React.ChangeEvent<HTMLSelectElement>) =>
43
+ toYear(setYear(startOfMonth(new Date()), Number(event.target.value)));
43
44
 
44
45
  const handleButtonClick = (val: number) => {
45
46
  const newYear = Number(year.getFullYear() + val);
@@ -64,17 +65,16 @@ export const MonthCaption = () => {
64
65
  className="navds-date__caption-button"
65
66
  disabled={disablePreviousYear()}
66
67
  onClick={() => handleButtonClick(-1)}
67
- aria-label={labelPrevYear(locale?.code)}
68
- icon={<ArrowLeftIcon aria-hidden />}
68
+ icon={<ArrowLeftIcon title={translate("goToPreviousYear")} />}
69
69
  variant="tertiary"
70
70
  type="button"
71
71
  />
72
72
 
73
73
  {hasDropdown ? (
74
74
  <Select
75
- label="velg år"
75
+ label={translate("year")}
76
76
  hideLabel
77
- value={year?.getFullYear()}
77
+ value={year.getFullYear()}
78
78
  onChange={handleYearChange}
79
79
  className="navds-date__caption__year"
80
80
  >
@@ -93,8 +93,7 @@ export const MonthCaption = () => {
93
93
  className="navds-date__caption-button"
94
94
  disabled={disableNextYear()}
95
95
  onClick={() => handleButtonClick(1)}
96
- aria-label={labelNextYear(locale?.code)}
97
- icon={<ArrowRightIcon aria-hidden />}
96
+ icon={<ArrowRightIcon title={translate("goToNextYear")} />}
98
97
  variant="tertiary"
99
98
  type="button"
100
99
  />
@@ -3,6 +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 } from "../../util/i18n/i18n.context";
6
7
  import { DateContext, SharedMonthProvider } from "../context";
7
8
  import { MonthPickerInput } from "../parts/DateInput";
8
9
  import { DateWrapper } from "../parts/DateWrapper";
@@ -67,7 +68,7 @@ export const MonthPicker = forwardRef<HTMLDivElement, MonthPickerProps>(
67
68
  id,
68
69
  onClose,
69
70
  onOpenToggle,
70
- locale = "nb",
71
+ locale,
71
72
  onMonthSelect,
72
73
  className,
73
74
  wrapperClassName,
@@ -78,6 +79,7 @@ export const MonthPicker = forwardRef<HTMLDivElement, MonthPickerProps>(
78
79
  },
79
80
  ref,
80
81
  ) => {
82
+ const langProviderLocale = useDateLocale();
81
83
  const ariaId = useId(id);
82
84
  const [open, setOpen] = useState(_open ?? false);
83
85
 
@@ -130,7 +132,9 @@ export const MonthPicker = forwardRef<HTMLDivElement, MonthPickerProps>(
130
132
  >
131
133
  <DayPickerProvider
132
134
  initialProps={{
133
- locale: getLocaleFromString(locale),
135
+ locale: locale
136
+ ? getLocaleFromString(locale)
137
+ : langProviderLocale,
134
138
  selected: selected ?? selectedMonth,
135
139
  toDate,
136
140
  fromDate,