@navikt/ds-react 1.3.8 → 1.3.9

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 (181) hide show
  1. package/_docs.json +4956 -2568
  2. package/cjs/date/DateInput.js +79 -0
  3. package/cjs/date/datepicker/DatePicker.js +113 -0
  4. package/cjs/date/datepicker/DatePickerStandalone.js +81 -0
  5. package/cjs/date/datepicker/DayButton.js +43 -0
  6. package/cjs/date/datepicker/caption/Caption.js +23 -0
  7. package/cjs/date/datepicker/caption/DropdownCaption.js +38 -0
  8. package/cjs/date/datepicker/caption/index.js +10 -0
  9. package/cjs/date/datepicker/caption/package.json +6 -0
  10. package/cjs/date/hooks/index.js +15 -0
  11. package/cjs/date/hooks/package.json +6 -0
  12. package/cjs/date/hooks/useDateInputContext.js +17 -0
  13. package/cjs/date/hooks/useDatepicker.js +135 -0
  14. package/cjs/date/hooks/useMonthPicker.js +139 -0
  15. package/cjs/date/hooks/useRangeDatepicker.js +215 -0
  16. package/cjs/date/hooks/useSharedMonthContext.js +63 -0
  17. package/cjs/date/index.js +14 -0
  18. package/cjs/date/monthpicker/MonthButton.js +80 -0
  19. package/cjs/date/monthpicker/MonthCaption.js +47 -0
  20. package/cjs/date/monthpicker/MonthPicker.js +74 -0
  21. package/cjs/date/monthpicker/MonthPickerStandalone.js +54 -0
  22. package/cjs/date/monthpicker/MonthSelector.js +79 -0
  23. package/cjs/date/package.json +6 -0
  24. package/cjs/date/utils/check-dates.js +17 -0
  25. package/cjs/date/utils/dates-disabled.js +29 -0
  26. package/cjs/date/utils/format-date.js +12 -0
  27. package/cjs/date/utils/get-dates.js +43 -0
  28. package/cjs/date/utils/get-initial-year.js +21 -0
  29. package/cjs/date/utils/index.js +33 -0
  30. package/cjs/date/utils/is-match.js +61 -0
  31. package/cjs/date/utils/labels.js +85 -0
  32. package/cjs/date/utils/locale.js +21 -0
  33. package/cjs/date/utils/navigation.js +155 -0
  34. package/cjs/date/utils/package.json +6 -0
  35. package/cjs/date/utils/parse-date.js +39 -0
  36. package/cjs/form/ConfirmationPanel.js +4 -3
  37. package/cjs/index.js +1 -0
  38. package/esm/date/DateInput.d.ts +30 -0
  39. package/esm/date/DateInput.js +51 -0
  40. package/esm/date/DateInput.js.map +1 -0
  41. package/esm/date/datepicker/DatePicker.d.ts +95 -0
  42. package/esm/date/datepicker/DatePicker.js +85 -0
  43. package/esm/date/datepicker/DatePicker.js.map +1 -0
  44. package/esm/date/datepicker/DatePickerStandalone.d.ts +12 -0
  45. package/esm/date/datepicker/DatePickerStandalone.js +53 -0
  46. package/esm/date/datepicker/DatePickerStandalone.js.map +1 -0
  47. package/esm/date/datepicker/DayButton.d.ts +3 -0
  48. package/esm/date/datepicker/DayButton.js +17 -0
  49. package/esm/date/datepicker/DayButton.js.map +1 -0
  50. package/esm/date/datepicker/caption/Caption.d.ts +4 -0
  51. package/esm/date/datepicker/caption/Caption.js +17 -0
  52. package/esm/date/datepicker/caption/Caption.js.map +1 -0
  53. package/esm/date/datepicker/caption/DropdownCaption.d.ts +4 -0
  54. package/esm/date/datepicker/caption/DropdownCaption.js +32 -0
  55. package/esm/date/datepicker/caption/DropdownCaption.js.map +1 -0
  56. package/esm/date/datepicker/caption/index.d.ts +2 -0
  57. package/esm/date/datepicker/caption/index.js +3 -0
  58. package/esm/date/datepicker/caption/index.js.map +1 -0
  59. package/esm/date/hooks/index.d.ts +5 -0
  60. package/esm/date/hooks/index.js +6 -0
  61. package/esm/date/hooks/index.js.map +1 -0
  62. package/esm/date/hooks/useDateInputContext.d.ts +18 -0
  63. package/esm/date/hooks/useDateInputContext.js +14 -0
  64. package/esm/date/hooks/useDateInputContext.js.map +1 -0
  65. package/esm/date/hooks/useDatepicker.d.ts +37 -0
  66. package/esm/date/hooks/useDatepicker.js +132 -0
  67. package/esm/date/hooks/useDatepicker.js.map +1 -0
  68. package/esm/date/hooks/useMonthPicker.d.ts +33 -0
  69. package/esm/date/hooks/useMonthPicker.js +136 -0
  70. package/esm/date/hooks/useMonthPicker.js.map +1 -0
  71. package/esm/date/hooks/useRangeDatepicker.d.ts +39 -0
  72. package/esm/date/hooks/useRangeDatepicker.js +212 -0
  73. package/esm/date/hooks/useRangeDatepicker.js.map +1 -0
  74. package/esm/date/hooks/useSharedMonthContext.d.ts +21 -0
  75. package/esm/date/hooks/useSharedMonthContext.js +36 -0
  76. package/esm/date/hooks/useSharedMonthContext.js.map +1 -0
  77. package/esm/date/index.d.ts +6 -0
  78. package/esm/date/index.js +4 -0
  79. package/esm/date/index.js.map +1 -0
  80. package/esm/date/monthpicker/MonthButton.d.ts +11 -0
  81. package/esm/date/monthpicker/MonthButton.js +51 -0
  82. package/esm/date/monthpicker/MonthButton.js.map +1 -0
  83. package/esm/date/monthpicker/MonthCaption.d.ts +3 -0
  84. package/esm/date/monthpicker/MonthCaption.js +41 -0
  85. package/esm/date/monthpicker/MonthCaption.js.map +1 -0
  86. package/esm/date/monthpicker/MonthPicker.d.ts +90 -0
  87. package/esm/date/monthpicker/MonthPicker.js +46 -0
  88. package/esm/date/monthpicker/MonthPicker.js.map +1 -0
  89. package/esm/date/monthpicker/MonthPickerStandalone.d.ts +11 -0
  90. package/esm/date/monthpicker/MonthPickerStandalone.js +26 -0
  91. package/esm/date/monthpicker/MonthPickerStandalone.js.map +1 -0
  92. package/esm/date/monthpicker/MonthSelector.d.ts +3 -0
  93. package/esm/date/monthpicker/MonthSelector.js +50 -0
  94. package/esm/date/monthpicker/MonthSelector.js.map +1 -0
  95. package/esm/date/utils/check-dates.d.ts +4 -0
  96. package/esm/date/utils/check-dates.js +12 -0
  97. package/esm/date/utils/check-dates.js.map +1 -0
  98. package/esm/date/utils/dates-disabled.d.ts +1 -0
  99. package/esm/date/utils/dates-disabled.js +26 -0
  100. package/esm/date/utils/dates-disabled.js.map +1 -0
  101. package/esm/date/utils/format-date.d.ts +1 -0
  102. package/esm/date/utils/format-date.js +9 -0
  103. package/esm/date/utils/format-date.js.map +1 -0
  104. package/esm/date/utils/get-dates.d.ts +2 -0
  105. package/esm/date/utils/get-dates.js +39 -0
  106. package/esm/date/utils/get-dates.js.map +1 -0
  107. package/esm/date/utils/get-initial-year.d.ts +5 -0
  108. package/esm/date/utils/get-initial-year.js +18 -0
  109. package/esm/date/utils/get-initial-year.js.map +1 -0
  110. package/esm/date/utils/index.d.ts +10 -0
  111. package/esm/date/utils/index.js +11 -0
  112. package/esm/date/utils/index.js.map +1 -0
  113. package/esm/date/utils/is-match.d.ts +4 -0
  114. package/esm/date/utils/is-match.js +57 -0
  115. package/esm/date/utils/is-match.js.map +1 -0
  116. package/esm/date/utils/labels.d.ts +6 -0
  117. package/esm/date/utils/labels.js +79 -0
  118. package/esm/date/utils/labels.js.map +1 -0
  119. package/esm/date/utils/locale.d.ts +2 -0
  120. package/esm/date/utils/locale.js +15 -0
  121. package/esm/date/utils/locale.js.map +1 -0
  122. package/esm/date/utils/navigation.d.ts +2 -0
  123. package/esm/date/utils/navigation.js +152 -0
  124. package/esm/date/utils/navigation.js.map +1 -0
  125. package/esm/date/utils/parse-date.d.ts +3 -0
  126. package/esm/date/utils/parse-date.js +36 -0
  127. package/esm/date/utils/parse-date.js.map +1 -0
  128. package/esm/form/ConfirmationPanel.js +5 -4
  129. package/esm/form/ConfirmationPanel.js.map +1 -1
  130. package/esm/index.d.ts +1 -0
  131. package/esm/index.js +1 -0
  132. package/esm/index.js.map +1 -1
  133. package/esm/typography/Detail.d.ts +1 -1
  134. package/package.json +6 -4
  135. package/src/chat/chat.stories.tsx +15 -15
  136. package/src/date/DateInput.tsx +167 -0
  137. package/src/date/datepicker/DatePicker.tsx +252 -0
  138. package/src/date/datepicker/DatePickerStandalone.tsx +120 -0
  139. package/src/date/datepicker/DayButton.tsx +26 -0
  140. package/src/date/datepicker/caption/Caption.tsx +51 -0
  141. package/src/date/datepicker/caption/DropdownCaption.tsx +98 -0
  142. package/src/date/datepicker/caption/index.ts +2 -0
  143. package/src/date/datepicker/datepicker.stories.tsx +235 -0
  144. package/src/date/hooks/index.ts +8 -0
  145. package/src/date/hooks/useDateInputContext.tsx +32 -0
  146. package/src/date/hooks/useDatepicker.tsx +225 -0
  147. package/src/date/hooks/useMonthPicker.tsx +223 -0
  148. package/src/date/hooks/useRangeDatepicker.tsx +348 -0
  149. package/src/date/hooks/useSharedMonthContext.tsx +68 -0
  150. package/src/date/index.ts +16 -0
  151. package/src/date/monthpicker/MonthButton.tsx +109 -0
  152. package/src/date/monthpicker/MonthCaption.tsx +94 -0
  153. package/src/date/monthpicker/MonthPicker.tsx +204 -0
  154. package/src/date/monthpicker/MonthPickerStandalone.tsx +87 -0
  155. package/src/date/monthpicker/MonthSelector.tsx +85 -0
  156. package/src/date/monthpicker/monthpicker.stories.tsx +128 -0
  157. package/src/date/utils/__tests__/check-dates.test.ts +47 -0
  158. package/src/date/utils/__tests__/dates-disabled.test.ts +48 -0
  159. package/src/date/utils/__tests__/format-dates.test.ts +22 -0
  160. package/src/date/utils/__tests__/get-dates.test.ts +79 -0
  161. package/src/date/utils/__tests__/get-initial-year.test.ts +94 -0
  162. package/src/date/utils/__tests__/is-match.test.ts +42 -0
  163. package/src/date/utils/__tests__/parse-dates.test.ts +81 -0
  164. package/src/date/utils/check-dates.ts +17 -0
  165. package/src/date/utils/dates-disabled.ts +26 -0
  166. package/src/date/utils/format-date.ts +17 -0
  167. package/src/date/utils/get-dates.ts +44 -0
  168. package/src/date/utils/get-initial-year.ts +25 -0
  169. package/src/date/utils/index.ts +21 -0
  170. package/src/date/utils/is-match.ts +88 -0
  171. package/src/date/utils/labels.ts +84 -0
  172. package/src/date/utils/locale.ts +15 -0
  173. package/src/date/utils/navigation.ts +292 -0
  174. package/src/date/utils/parse-date.ts +46 -0
  175. package/src/form/ConfirmationPanel.tsx +9 -2
  176. package/src/form/checkbox/Checkbox.test.tsx +2 -2
  177. package/src/form/radio/radio.stories.tsx +4 -4
  178. package/src/form/stories/textarea.stories.tsx +1 -3
  179. package/src/help-text/help-text.stories.tsx +3 -0
  180. package/src/index.ts +1 -0
  181. package/src/typography/Detail.tsx +1 -1
@@ -0,0 +1,11 @@
1
+ export { formatDateForInput } from "./format-date";
2
+ export { getMonths, getYears } from "./get-dates";
3
+ export { labelMonthDropdown, labelYearDropdown, labels, labelNextYear, labelPrevYear, } from "./labels";
4
+ export { INPUT_DATE_STRING_FORMAT_DATE, INPUT_DATE_STRING_FORMAT_MONTH, parseDate, } from "./parse-date";
5
+ export { getLocaleFromString } from "./locale";
6
+ export { disableDate } from "./dates-disabled";
7
+ export { dateIsInCurrentMonth, isValidDate, hasNextYear } from "./check-dates";
8
+ export { getInitialYear } from "./get-initial-year";
9
+ export { isMatch, isDateInRange } from "./is-match";
10
+ export { nextEnabled } from "./navigation";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/date/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,EACN,aAAa,EACb,aAAa,GACd,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,SAAS,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAW,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { DateAfter, DateBefore, DateRange } from "react-day-picker";
2
+ export declare type Matcher = ((date: Date) => boolean) | Date | Date[] | DateRange | DateBefore | DateAfter;
3
+ export declare function isMatch(day: Date, matchers: Matcher[]): boolean;
4
+ export declare function isDateInRange(date: Date, range: DateRange): boolean;
@@ -0,0 +1,57 @@
1
+ import { isDate, isSameDay, differenceInCalendarDays, isSameMonth, } from "date-fns";
2
+ import { isDateAfterType, isDateBeforeType, isDateRange, } from "react-day-picker";
3
+ function isDateType(value) {
4
+ return isDate(value);
5
+ }
6
+ function isArrayOfDates(value) {
7
+ return Array.isArray(value) && value.every(isDate);
8
+ }
9
+ export function isMatch(day, matchers) {
10
+ return matchers.some((matcher) => {
11
+ if (isDateType(matcher)) {
12
+ return isSameMonth(day, matcher);
13
+ }
14
+ if (isArrayOfDates(matcher)) {
15
+ return matcher.some((matcherDay) => {
16
+ return isSameMonth(matcherDay, day);
17
+ });
18
+ }
19
+ if (isDateRange(matcher)) {
20
+ return isDateInRange(day, matcher);
21
+ }
22
+ if (isDateAfterType(matcher)) {
23
+ return (isSameMonth(day, matcher.after) ||
24
+ differenceInCalendarDays(day, matcher.after) > 0);
25
+ }
26
+ if (isDateBeforeType(matcher)) {
27
+ return (isSameMonth(day, matcher.before) ||
28
+ differenceInCalendarDays(matcher.before, day) > 0);
29
+ }
30
+ if (typeof matcher === "function") {
31
+ return matcher(day);
32
+ }
33
+ return false;
34
+ });
35
+ }
36
+ export function isDateInRange(date, range) {
37
+ let { from, to } = range;
38
+ if (!from) {
39
+ return false;
40
+ }
41
+ if (!to && isSameDay(from, date)) {
42
+ return true;
43
+ }
44
+ if (!to) {
45
+ return false;
46
+ }
47
+ const isToBeforeFrom = differenceInCalendarDays(to, from) < 0;
48
+ if (to && isToBeforeFrom) {
49
+ [from, to] = [to, from];
50
+ }
51
+ if (isSameMonth(from, date) || isSameMonth(to, date)) {
52
+ return true;
53
+ }
54
+ return (differenceInCalendarDays(date, from) >= 0 &&
55
+ differenceInCalendarDays(to, date) >= 0);
56
+ }
57
+ //# sourceMappingURL=is-match.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-match.js","sourceRoot":"","sources":["../../../src/date/utils/is-match.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,SAAS,EACT,wBAAwB,EACxB,WAAW,GACZ,MAAM,UAAU,CAAC;AAClB,OAAO,EAIL,eAAe,EACf,gBAAgB,EAChB,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAU1B,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAS,EAAE,QAAmB;IACpD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAgB,EAAE,EAAE;QACxC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE;YACvB,OAAO,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;SAClC;QACD,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE;YAC3B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE;gBACjC,OAAO,WAAW,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE;YACxB,OAAO,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;SACpC;QACD,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE;YAC5B,OAAO,CACL,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC;gBAC/B,wBAAwB,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CACjD,CAAC;SACH;QACD,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE;YAC7B,OAAO,CACL,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC;gBAChC,wBAAwB,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAClD,CAAC;SACH;QACD,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;YACjC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;SACrB;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAU,EAAE,KAAgB;IACxD,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;IACzB,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,KAAK,CAAC;KACd;IACD,IAAI,CAAC,EAAE,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;QAChC,OAAO,IAAI,CAAC;KACb;IACD,IAAI,CAAC,EAAE,EAAE;QACP,OAAO,KAAK,CAAC;KACd;IACD,MAAM,cAAc,GAAG,wBAAwB,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9D,IAAI,EAAE,IAAI,cAAc,EAAE;QACxB,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;KACzB;IAED,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE;QACpD,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;QACzC,wBAAwB,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CACxC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Labels } from "react-day-picker";
2
+ export declare const labelYearDropdown: (locale: Locale) => "År" | "Year";
3
+ export declare const labelMonthDropdown: (locale: Locale) => "Måned" | "Månad" | "Month";
4
+ export declare const labelNextYear: (localeCode: string | undefined) => "Gå til neste måned" | "Gå til neste år" | "Go to next year";
5
+ export declare const labelPrevYear: (localeCode: string | undefined) => string;
6
+ export declare const labels: Partial<Labels>;
@@ -0,0 +1,79 @@
1
+ const labelNext = (date, options) => {
2
+ var _a;
3
+ switch ((_a = options === null || options === void 0 ? void 0 : options.locale) === null || _a === void 0 ? void 0 : _a.code) {
4
+ case "nb":
5
+ return "Gå til neste måned";
6
+ case "nn":
7
+ return "Gå til neste månad";
8
+ case "en":
9
+ return "Go to next month";
10
+ default:
11
+ return "Gå til neste måned";
12
+ }
13
+ };
14
+ const labelPrevious = (date, options) => {
15
+ var _a;
16
+ switch ((_a = options === null || options === void 0 ? void 0 : options.locale) === null || _a === void 0 ? void 0 : _a.code) {
17
+ case "nb":
18
+ return "Gå til forrige måned";
19
+ case "nn":
20
+ return "Gå til førre månad";
21
+ case "en":
22
+ return "Go to previous month";
23
+ default:
24
+ return "Gå til forrige måned";
25
+ }
26
+ };
27
+ export const labelYearDropdown = (locale) => {
28
+ switch (locale === null || locale === void 0 ? void 0 : locale.code) {
29
+ case "nb":
30
+ return "År";
31
+ case "nn":
32
+ return "År";
33
+ case "en":
34
+ return "Year";
35
+ default:
36
+ return "År";
37
+ }
38
+ };
39
+ export const labelMonthDropdown = (locale) => {
40
+ switch (locale === null || locale === void 0 ? void 0 : locale.code) {
41
+ case "nb":
42
+ return "Måned";
43
+ case "nn":
44
+ return "Månad";
45
+ case "en":
46
+ return "Month";
47
+ default:
48
+ return "Måned";
49
+ }
50
+ };
51
+ export const labelNextYear = (localeCode) => {
52
+ switch (localeCode) {
53
+ case "nb":
54
+ return "Gå til neste år";
55
+ case "nn":
56
+ return "Gå til neste år";
57
+ case "en-GB":
58
+ return "Go to next year";
59
+ default:
60
+ return "Gå til neste måned";
61
+ }
62
+ };
63
+ export const labelPrevYear = (localeCode) => {
64
+ switch (localeCode) {
65
+ case "nb":
66
+ return "Gå til forrige år";
67
+ case "nn":
68
+ return "Gå til førre år";
69
+ case "en-GB":
70
+ return "Go to next year";
71
+ default:
72
+ return "Gå til neste år";
73
+ }
74
+ };
75
+ export const labels = {
76
+ labelNext,
77
+ labelPrevious,
78
+ };
79
+ //# sourceMappingURL=labels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labels.js","sourceRoot":"","sources":["../../../src/date/utils/labels.ts"],"names":[],"mappings":"AAEA,MAAM,SAAS,GAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;;IAClD,QAAQ,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,IAAI,EAAE;QAC7B,KAAK,IAAI;YACP,OAAO,oBAAoB,CAAC;QAC9B,KAAK,IAAI;YACP,OAAO,oBAAoB,CAAC;QAC9B,KAAK,IAAI;YACP,OAAO,kBAAkB,CAAC;QAC5B;YACE,OAAO,oBAAoB,CAAC;KAC/B;AACH,CAAC,CAAC;AAEF,MAAM,aAAa,GAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;;IACtD,QAAQ,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,IAAI,EAAE;QAC7B,KAAK,IAAI;YACP,OAAO,sBAAsB,CAAC;QAChC,KAAK,IAAI;YACP,OAAO,oBAAoB,CAAC;QAC9B,KAAK,IAAI;YACP,OAAO,sBAAsB,CAAC;QAChC;YACE,OAAO,sBAAsB,CAAC;KACjC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAc,EAAE,EAAE;IAClD,QAAQ,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,EAAE;QACpB,KAAK,IAAI;YACP,OAAO,IAAI,CAAC;QACd,KAAK,IAAI;YACP,OAAO,IAAI,CAAC;QACd,KAAK,IAAI;YACP,OAAO,MAAM,CAAC;QAChB;YACE,OAAO,IAAI,CAAC;KACf;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAc,EAAE,EAAE;IACnD,QAAQ,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,EAAE;QACpB,KAAK,IAAI;YACP,OAAO,OAAO,CAAC;QACjB,KAAK,IAAI;YACP,OAAO,OAAO,CAAC;QACjB,KAAK,IAAI;YACP,OAAO,OAAO,CAAC;QACjB;YACE,OAAO,OAAO,CAAC;KAClB;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,UAA8B,EAAE,EAAE;IAC9D,QAAQ,UAAU,EAAE;QAClB,KAAK,IAAI;YACP,OAAO,iBAAiB,CAAC;QAC3B,KAAK,IAAI;YACP,OAAO,iBAAiB,CAAC;QAC3B,KAAK,OAAO;YACV,OAAO,iBAAiB,CAAC;QAC3B;YACE,OAAO,oBAAoB,CAAC;KAC/B;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,UAA8B,EAAU,EAAE;IACtE,QAAQ,UAAU,EAAE;QAClB,KAAK,IAAI;YACP,OAAO,mBAAmB,CAAC;QAC7B,KAAK,IAAI;YACP,OAAO,iBAAiB,CAAC;QAC3B,KAAK,OAAO;YACV,OAAO,iBAAiB,CAAC;QAC3B;YACE,OAAO,iBAAiB,CAAC;KAC5B;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAoB;IACrC,SAAS;IACT,aAAa;CACd,CAAC"}
@@ -0,0 +1,2 @@
1
+ /** @private */
2
+ export declare const getLocaleFromString: (locale?: "nb" | "nn" | "en") => Locale;
@@ -0,0 +1,15 @@
1
+ import enGB from "date-fns/locale/en-GB";
2
+ import nb from "date-fns/locale/nb";
3
+ import nn from "date-fns/locale/nn";
4
+ /** @private */
5
+ export const getLocaleFromString = (locale = "nb") => {
6
+ switch (locale) {
7
+ case "nn":
8
+ return nn;
9
+ case "en":
10
+ return enGB;
11
+ default:
12
+ return nb;
13
+ }
14
+ };
15
+ //# sourceMappingURL=locale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locale.js","sourceRoot":"","sources":["../../../src/date/utils/locale.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,uBAAuB,CAAC;AACzC,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACpC,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAEpC,eAAe;AACf,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,SAA6B,IAAI,EAAE,EAAE;IACvE,QAAQ,MAAM,EAAE;QACd,KAAK,IAAI;YACP,OAAO,EAAE,CAAC;QACZ,KAAK,IAAI;YACP,OAAO,IAAI,CAAC;QACd;YACE,OAAO,EAAE,CAAC;KACb;AACH,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Matcher } from "./is-match";
2
+ export declare const nextEnabled: (months: any, key: string, disabled: Matcher[], currentMonth: Date, setYearState: Function, yearState: Date, dropdownCaption: boolean, fromDate?: Date, toDate?: Date) => Date;
@@ -0,0 +1,152 @@
1
+ import { setYear } from "date-fns";
2
+ import { isMatch } from "./is-match";
3
+ export const nextEnabled = (months, key, disabled, currentMonth, setYearState, yearState, dropdownCaption, fromDate, toDate) => {
4
+ const currentIndex = currentMonth.getMonth();
5
+ if (key === "Home") {
6
+ const nextEnabled = nextOnRow(currentIndex, months, yearState, disabled, "home");
7
+ if (nextEnabled) {
8
+ return nextEnabled;
9
+ }
10
+ }
11
+ if (key === "End") {
12
+ const nextEnabled = nextOnRow(currentIndex, months, yearState, disabled, "end");
13
+ if (nextEnabled) {
14
+ return nextEnabled;
15
+ }
16
+ }
17
+ if (key === "PageUp") {
18
+ if (!dropdownCaption ||
19
+ (fromDate && yearState.getFullYear() - 1 >= (fromDate === null || fromDate === void 0 ? void 0 : fromDate.getFullYear()))) {
20
+ setYearState(setYear(yearState, Number(yearState.getFullYear() - 1)));
21
+ }
22
+ }
23
+ if (key === "PageDown") {
24
+ if (!dropdownCaption ||
25
+ (toDate && yearState.getFullYear() + 1 <= (toDate === null || toDate === void 0 ? void 0 : toDate.getFullYear()))) {
26
+ setYearState(setYear(yearState, Number(yearState.getFullYear() + 1)));
27
+ }
28
+ }
29
+ if (key === "ArrowRight") {
30
+ const nextMonth = loopForward(currentIndex, months, yearState, setYearState, disabled, false, dropdownCaption, fromDate, toDate);
31
+ if (nextMonth) {
32
+ return setYear(months[nextMonth.index], nextMonth.year);
33
+ }
34
+ }
35
+ if (key === "ArrowLeft") {
36
+ const prevMonth = loopBack(currentIndex - 1, months, disabled, yearState, setYearState, false, dropdownCaption, fromDate, toDate);
37
+ if (prevMonth) {
38
+ return setYear(months[prevMonth.index], prevMonth.year);
39
+ }
40
+ }
41
+ if (key === "ArrowDown") {
42
+ if (months[currentIndex + 4] &&
43
+ !isMatch(setYear(months[currentIndex + 4], yearState.getFullYear()), disabled)) {
44
+ return setYear(months[currentIndex + 4], yearState.getFullYear());
45
+ }
46
+ const fallbackNext = loopForward(currentIndex, months, yearState, setYearState, disabled, true, dropdownCaption, fromDate, toDate);
47
+ if (fallbackNext &&
48
+ getRow(fallbackNext.index) !== getRow(currentIndex + 8)) {
49
+ return setYear(months[fallbackNext.index], fallbackNext.year);
50
+ }
51
+ }
52
+ if (key === "ArrowUp") {
53
+ if (months[currentIndex - 4] &&
54
+ !isMatch(setYear(months[currentIndex - 4], Number(yearState.getFullYear())), disabled))
55
+ return setYear(months[currentIndex - 4], Number(yearState.getFullYear()));
56
+ const fallbackPrev = loopBack(currentIndex, months, disabled, yearState, setYearState, true, dropdownCaption, fromDate, toDate);
57
+ if (fallbackPrev)
58
+ return setYear(months[fallbackPrev.index], fallbackPrev.year);
59
+ }
60
+ return currentMonth;
61
+ };
62
+ const loopBack = (currentIndex, months, disabled, yearState, setYearState, rowCheck, dropdownCaption, fromDate, toDate) => {
63
+ let currentYear = setYear(yearState, Number(yearState.getFullYear()));
64
+ for (let i = currentIndex; i >= -1; i--) {
65
+ if (i === -1) {
66
+ if (isOutOfRange(dropdownCaption, setYear(currentYear, Number(currentYear.getFullYear() - 1)), fromDate, toDate))
67
+ return;
68
+ currentYear = setYear(currentYear, Number(currentYear.getFullYear() - 1));
69
+ setYearState(currentYear);
70
+ i = 11;
71
+ }
72
+ const month = months[i];
73
+ const isDisabled = !isMatch(setYear(month, Number(currentYear.getFullYear())), disabled);
74
+ if (rowCheck) {
75
+ if (isDisabled && getRow(i) !== getRow(currentIndex)) {
76
+ return { index: i, year: Number(currentYear.getFullYear()) };
77
+ }
78
+ }
79
+ else {
80
+ if (isDisabled) {
81
+ return { index: i, year: Number(currentYear.getFullYear()) };
82
+ }
83
+ }
84
+ }
85
+ };
86
+ const loopForward = (currentIndex, months, yearState, setYearState, disabled, rowCheck, dropdownCaption, fromDate, toDate) => {
87
+ let currentYear = setYear(yearState, Number(yearState.getFullYear()));
88
+ for (let i = currentIndex + 1; i < months.length + 1; i++) {
89
+ if (i === 12) {
90
+ if (isOutOfRange(dropdownCaption, setYear(currentYear, Number(currentYear.getFullYear() + 1)), fromDate, toDate))
91
+ return;
92
+ currentYear = setYear(currentYear, Number(currentYear.getFullYear() + 1));
93
+ setYearState(currentYear);
94
+ i = 0;
95
+ }
96
+ const month = months[i];
97
+ const isDisabled = !isMatch(setYear(month, Number(currentYear.getFullYear())), disabled);
98
+ if (rowCheck) {
99
+ if (isDisabled && getRow(i) !== getRow(currentIndex)) {
100
+ return { index: i, year: Number(currentYear.getFullYear()) };
101
+ }
102
+ }
103
+ else {
104
+ if (isDisabled) {
105
+ return { index: i, year: Number(currentYear.getFullYear()) };
106
+ }
107
+ }
108
+ }
109
+ };
110
+ const getRow = (index) => {
111
+ if (index >= 0 && index <= 3)
112
+ return 1;
113
+ if (index >= 4 && index <= 7)
114
+ return 2;
115
+ return 3;
116
+ };
117
+ const isOutOfRange = (dropdownCaption, year, fromDate, toDate) => {
118
+ if (dropdownCaption &&
119
+ fromDate &&
120
+ toDate &&
121
+ (year.getFullYear() < (fromDate === null || fromDate === void 0 ? void 0 : fromDate.getFullYear()) ||
122
+ year.getFullYear() > (toDate === null || toDate === void 0 ? void 0 : toDate.getFullYear()))) {
123
+ return true;
124
+ }
125
+ return false;
126
+ };
127
+ const nextOnRow = (currentIndex, months, yearState, disabled, mode) => {
128
+ const row = getRow(currentIndex);
129
+ let monthsOfRow;
130
+ switch (row) {
131
+ case 1:
132
+ monthsOfRow = months.slice(0, 4);
133
+ break;
134
+ case 2:
135
+ monthsOfRow = months.slice(4, 8);
136
+ break;
137
+ case 3:
138
+ monthsOfRow = months.slice(8, 12);
139
+ break;
140
+ default:
141
+ break;
142
+ }
143
+ if (mode === "end")
144
+ monthsOfRow = monthsOfRow.reverse();
145
+ for (let i = 0; i < monthsOfRow.length; i++) {
146
+ const month = monthsOfRow[i];
147
+ if (!isMatch(setYear(month, Number(yearState.getFullYear())), disabled)) {
148
+ return setYear(month, Number(yearState.getFullYear()));
149
+ }
150
+ }
151
+ };
152
+ //# sourceMappingURL=navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../../src/date/utils/navigation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const INPUT_DATE_STRING_FORMAT_DATE = "dd.MM.yyyy";
2
+ export declare const INPUT_DATE_STRING_FORMAT_MONTH = "MM.yyyy";
3
+ export declare const parseDate: (date: string, today: Date, locale: Locale, type: "date" | "month") => any;
@@ -0,0 +1,36 @@
1
+ import { parse } from "date-fns";
2
+ import { isValidDate } from ".";
3
+ export const INPUT_DATE_STRING_FORMAT_DATE = "dd.MM.yyyy";
4
+ export const INPUT_DATE_STRING_FORMAT_MONTH = "MM.yyyy";
5
+ const ALLOWED_INPUT_FORMATS_DATE = [
6
+ "ddMMyy",
7
+ "d.M.yy",
8
+ "dd.MM.yy",
9
+ "dd/MM/yy",
10
+ "dd-MM-yy",
11
+ INPUT_DATE_STRING_FORMAT_DATE,
12
+ "ddMMyyyy",
13
+ "dd/MM/yyyy",
14
+ "dd-MM-yyyy",
15
+ "d.M.yyyy",
16
+ ];
17
+ const ALLOWED_INPUT_FORMATS_MONTH = [
18
+ "M/yyyy",
19
+ "MM/yyyy",
20
+ "M-yyyy",
21
+ "MM-yyyy",
22
+ "MM.yyyy",
23
+ INPUT_DATE_STRING_FORMAT_MONTH,
24
+ ];
25
+ export const parseDate = (date, today, locale, type) => {
26
+ let parsed;
27
+ const ALLOWED_FORMATS = type === "date" ? ALLOWED_INPUT_FORMATS_DATE : ALLOWED_INPUT_FORMATS_MONTH;
28
+ for (const format of ALLOWED_FORMATS) {
29
+ parsed = parse(date, format, today, { locale });
30
+ if (isValidDate(parsed)) {
31
+ return parsed;
32
+ }
33
+ }
34
+ return parsed;
35
+ };
36
+ //# sourceMappingURL=parse-date.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-date.js","sourceRoot":"","sources":["../../../src/date/utils/parse-date.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAEhC,MAAM,CAAC,MAAM,6BAA6B,GAAG,YAAY,CAAC;AAE1D,MAAM,CAAC,MAAM,8BAA8B,GAAG,SAAS,CAAC;AAExD,MAAM,0BAA0B,GAAG;IACjC,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,UAAU;IACV,UAAU;IACV,6BAA6B;IAC7B,UAAU;IACV,YAAY;IACZ,YAAY;IACZ,UAAU;CACX,CAAC;AAEF,MAAM,2BAA2B,GAAG;IAClC,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,SAAS;IACT,SAAS;IACT,8BAA8B;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,IAAY,EACZ,KAAW,EACX,MAAc,EACd,IAAsB,EACtB,EAAE;IACF,IAAI,MAAM,CAAC;IACX,MAAM,eAAe,GACnB,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,2BAA2B,CAAC;IAC7E,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE;QACpC,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAChD,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;YACvB,OAAO,MAAM,CAAC;SACf;KACF;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
@@ -9,21 +9,22 @@ var __rest = (this && this.__rest) || function (s, e) {
9
9
  }
10
10
  return t;
11
11
  };
12
- import React, { forwardRef } from "react";
12
+ import React, { forwardRef, useId } from "react";
13
13
  import cl from "clsx";
14
14
  import { BodyLong, Checkbox, ErrorMessage } from "..";
15
15
  import { useFormField } from "./useFormField";
16
16
  export const ConfirmationPanel = forwardRef((_a, ref) => {
17
17
  var { className, children, label } = _a, props = __rest(_a, ["className", "children", "label"]);
18
- const { errorId, showErrorMsg, hasError, size, inputProps } = useFormField(props, "confirmationPanel");
18
+ const { errorId, showErrorMsg, hasError, size, inputProps } = useFormField(props, "confirmation-panel");
19
+ const id = useId();
19
20
  return (React.createElement("div", { className: cl("navds-confirmation-panel", "navds-form-field", className, {
20
21
  "navds-confirmation-panel--small": size === "small",
21
22
  "navds-confirmation-panel--error": hasError,
22
23
  "navds-confirmation-panel--checked": !!props.checked,
23
24
  }) },
24
25
  React.createElement("div", { className: "navds-confirmation-panel__inner" },
25
- children && (React.createElement(BodyLong, { size: props.size, className: "navds-confirmation-panel__content" }, children)),
26
- React.createElement(Checkbox, Object.assign({ ref: ref }, props, inputProps, { error: hasError, size: size }), label)),
26
+ children && (React.createElement(BodyLong, { size: props.size, className: "navds-confirmation-panel__content", id: `confirmation-panel-${id}` }, children)),
27
+ React.createElement(Checkbox, Object.assign({ ref: ref }, props, inputProps, { "aria-describedby": cl(inputProps["aria-describedby"], children && `confirmation-panel-${id}`), error: hasError, size: size }), label)),
27
28
  React.createElement("div", { className: "navds-form-field__error", id: errorId, "aria-relevant": "additions removals", "aria-live": "polite" }, showErrorMsg && React.createElement(ErrorMessage, { size: size }, props.error))));
28
29
  });
29
30
  export default ConfirmationPanel;
@@ -1 +1 @@
1
- {"version":3,"file":"ConfirmationPanel.js","sourceRoot":"","sources":["../../src/form/ConfirmationPanel.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAiB,YAAY,EAAE,MAAM,IAAI,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAyB9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAGzC,CAAC,EAAwC,EAAE,GAAG,EAAE,EAAE;QAAjD,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,OAAY,EAAP,KAAK,cAAtC,kCAAwC,CAAF;IACvC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,YAAY,CACxE,KAAK,EACL,mBAAmB,CACpB,CAAC;IAEF,OAAO,CACL,6BACE,SAAS,EAAE,EAAE,CAAC,0BAA0B,EAAE,kBAAkB,EAAE,SAAS,EAAE;YACvE,iCAAiC,EAAE,IAAI,KAAK,OAAO;YACnD,iCAAiC,EAAE,QAAQ;YAC3C,mCAAmC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO;SACrD,CAAC;QAEF,6BAAK,SAAS,EAAC,iCAAiC;YAC7C,QAAQ,IAAI,CACX,oBAAC,QAAQ,IACP,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,SAAS,EAAC,mCAAmC,IAE5C,QAAQ,CACA,CACZ;YACD,oBAAC,QAAQ,kBACP,GAAG,EAAE,GAAG,IACJ,KAAK,EACL,UAAU,IACd,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,IAAI,KAET,KAAK,CACG,CACP;QACN,6BACE,SAAS,EAAC,yBAAyB,EACnC,EAAE,EAAE,OAAO,mBACG,oBAAoB,eACxB,QAAQ,IAEjB,YAAY,IAAI,oBAAC,YAAY,IAAC,IAAI,EAAE,IAAI,IAAG,KAAK,CAAC,KAAK,CAAgB,CACnE,CACF,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"ConfirmationPanel.js","sourceRoot":"","sources":["../../src/form/ConfirmationPanel.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAiB,YAAY,EAAE,MAAM,IAAI,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAyB9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAGzC,CAAC,EAAwC,EAAE,GAAG,EAAE,EAAE;QAAjD,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,OAAY,EAAP,KAAK,cAAtC,kCAAwC,CAAF;IACvC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,YAAY,CACxE,KAAK,EACL,oBAAoB,CACrB,CAAC;IAEF,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAEnB,OAAO,CACL,6BACE,SAAS,EAAE,EAAE,CAAC,0BAA0B,EAAE,kBAAkB,EAAE,SAAS,EAAE;YACvE,iCAAiC,EAAE,IAAI,KAAK,OAAO;YACnD,iCAAiC,EAAE,QAAQ;YAC3C,mCAAmC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO;SACrD,CAAC;QAEF,6BAAK,SAAS,EAAC,iCAAiC;YAC7C,QAAQ,IAAI,CACX,oBAAC,QAAQ,IACP,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,SAAS,EAAC,mCAAmC,EAC7C,EAAE,EAAE,sBAAsB,EAAE,EAAE,IAE7B,QAAQ,CACA,CACZ;YACD,oBAAC,QAAQ,kBACP,GAAG,EAAE,GAAG,IACJ,KAAK,EACL,UAAU,wBACI,EAAE,CAClB,UAAU,CAAC,kBAAkB,CAAC,EAC9B,QAAQ,IAAI,sBAAsB,EAAE,EAAE,CACvC,EACD,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,IAAI,KAET,KAAK,CACG,CACP;QACN,6BACE,SAAS,EAAC,yBAAyB,EACnC,EAAE,EAAE,OAAO,mBACG,oBAAoB,eACxB,QAAQ,IAEjB,YAAY,IAAI,oBAAC,YAAY,IAAC,IAAI,EAAE,IAAI,IAAG,KAAK,CAAC,KAAK,CAAgB,CACnE,CACF,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,iBAAiB,CAAC"}
package/esm/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from "./accordion";
2
2
  export * from "./alert";
3
3
  export * from "./button";
4
+ export * from "./date";
4
5
  export * from "./form";
5
6
  export * from "./grid";
6
7
  export * from "./help-text";
package/esm/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from "./accordion";
2
2
  export * from "./alert";
3
3
  export * from "./button";
4
+ export * from "./date";
4
5
  export * from "./form";
5
6
  export * from "./grid";
6
7
  export * from "./help-text";
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC"}
@@ -2,7 +2,7 @@ import React from "react";
2
2
  import { OverridableComponent } from "..";
3
3
  export interface DetailProps extends React.HTMLAttributes<HTMLParagraphElement> {
4
4
  /**
5
- * medium: 14px bold, small: 14px
5
+ * medium: 14px, small: 14px
6
6
  * @default "medium"
7
7
  */
8
8
  size?: "medium" | "small";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@navikt/ds-react",
3
- "version": "1.3.8",
3
+ "version": "1.3.9",
4
4
  "description": "NAV designsystem react components",
5
5
  "author": "NAV Designsystem team",
6
6
  "license": "MIT",
@@ -36,10 +36,12 @@
36
36
  },
37
37
  "dependencies": {
38
38
  "@floating-ui/react-dom-interactions": "0.9.2",
39
- "@navikt/ds-icons": "^1.3.8",
39
+ "@navikt/ds-icons": "^1.3.9",
40
40
  "@radix-ui/react-tabs": "1.0.0",
41
41
  "@radix-ui/react-toggle-group": "1.0.0",
42
- "clsx": "^1.1.1",
42
+ "clsx": "^1.2.1",
43
+ "date-fns": "2.29.3",
44
+ "react-day-picker": "8.3.4",
43
45
  "react-modal": "3.15.1"
44
46
  },
45
47
  "devDependencies": {
@@ -74,5 +76,5 @@
74
76
  "optional": true
75
77
  }
76
78
  },
77
- "gitHead": "1c13cb1728f26e027766fafce08c369241b45fac"
79
+ "gitHead": "baf905d76c643b2d9e1b78c59eddb6253a143899"
78
80
  }
@@ -49,11 +49,11 @@ Default.args = {
49
49
  export const Farger = () => {
50
50
  return (
51
51
  <Chat
52
- avatar={"ON"}
53
- name={"Ola Normann"}
54
- timestamp={"01.01.21 14:00"}
55
- avatarBgColor={"var(--navds-global-color-lightblue-200)"}
56
- backgroundColor={"var(--navds-global-color-lightblue-100)"}
52
+ avatar="ON"
53
+ name="Ola Normann"
54
+ timestamp="01.01.21 14:00"
55
+ avatarBgColor="var(--navds-global-color-lightblue-200)"
56
+ backgroundColor="var(--navds-global-color-lightblue-100)"
57
57
  >
58
58
  <Chat.Bubble>
59
59
  Aute minim nisi sunt mollit duis sunt nulla minim non proident.
@@ -71,9 +71,9 @@ export const Position = () => {
71
71
  return (
72
72
  <div className="colgap">
73
73
  <Chat
74
- avatar={"ON"}
75
- name={"Ola Normann"}
76
- timestamp={"01.01.21 14:00"}
74
+ avatar="ON"
75
+ name="Ola Normann"
76
+ timestamp="01.01.21 14:00"
77
77
  backgroundColor="rgba(255, 249, 240, 1)"
78
78
  avatarBgColor="rgba(255, 236, 204, 1)"
79
79
  >
@@ -83,9 +83,9 @@ export const Position = () => {
83
83
  </Chat.Bubble>
84
84
  </Chat>
85
85
  <Chat
86
- avatar={"KH"}
87
- name={"Kari Høyli"}
88
- timestamp={"01.01.21 14:32"}
86
+ avatar="KH"
87
+ name="Kari Høyli"
88
+ timestamp="01.01.21 14:32"
89
89
  position="right"
90
90
  backgroundColor="rgba(230, 240, 255, 1)"
91
91
  avatarBgColor="rgba(204, 225, 255, 1)"
@@ -99,9 +99,9 @@ export const Position = () => {
99
99
  </Chat.Bubble>
100
100
  </Chat>
101
101
  <Chat
102
- avatar={"ON"}
103
- name={"Ola Normann"}
104
- timestamp={"01.01.21 15:00"}
102
+ avatar="ON"
103
+ name="Ola Normann"
104
+ timestamp="01.01.21 15:00"
105
105
  backgroundColor="rgba(255, 249, 240, 1)"
106
106
  avatarBgColor="rgba(255, 236, 204, 1)"
107
107
  >
@@ -118,7 +118,7 @@ export const Position = () => {
118
118
 
119
119
  export const Avatar = () => {
120
120
  return (
121
- <Chat avatar={<Illustration />} timestamp={"01.01.21 14:00"}>
121
+ <Chat avatar={<Illustration />} timestamp="01.01.21 14:00">
122
122
  <Chat.Bubble>
123
123
  Aute minim nisi sunt mollit duis sunt nulla minim non proident.
124
124
  </Chat.Bubble>