@navikt/ds-react 6.6.1 → 6.7.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 (55) hide show
  1. package/cjs/index.d.ts +1 -0
  2. package/cjs/index.js +4 -2
  3. package/cjs/index.js.map +1 -1
  4. package/cjs/progress-bar/ProgressBar.d.ts +60 -0
  5. package/cjs/progress-bar/ProgressBar.js +76 -0
  6. package/cjs/progress-bar/ProgressBar.js.map +1 -0
  7. package/cjs/progress-bar/index.d.ts +1 -0
  8. package/cjs/progress-bar/index.js +10 -0
  9. package/cjs/progress-bar/index.js.map +1 -0
  10. package/cjs/typography/BodyLong.d.ts +7 -7
  11. package/cjs/typography/BodyLong.js +5 -5
  12. package/cjs/typography/BodyShort.d.ts +5 -5
  13. package/cjs/typography/BodyShort.js +3 -3
  14. package/cjs/typography/Detail.d.ts +5 -5
  15. package/cjs/typography/Detail.js +3 -3
  16. package/cjs/typography/ErrorMessage.d.ts +5 -5
  17. package/cjs/typography/ErrorMessage.js +3 -3
  18. package/cjs/typography/Heading.d.ts +6 -6
  19. package/cjs/typography/Heading.js +3 -3
  20. package/cjs/typography/Label.d.ts +5 -5
  21. package/cjs/typography/Label.js +3 -3
  22. package/cjs/typography/types.d.ts +3 -3
  23. package/esm/index.d.ts +1 -0
  24. package/esm/index.js +1 -0
  25. package/esm/index.js.map +1 -1
  26. package/esm/progress-bar/ProgressBar.d.ts +60 -0
  27. package/esm/progress-bar/ProgressBar.js +47 -0
  28. package/esm/progress-bar/ProgressBar.js.map +1 -0
  29. package/esm/progress-bar/index.d.ts +1 -0
  30. package/esm/progress-bar/index.js +3 -0
  31. package/esm/progress-bar/index.js.map +1 -0
  32. package/esm/typography/BodyLong.d.ts +7 -7
  33. package/esm/typography/BodyLong.js +5 -5
  34. package/esm/typography/BodyShort.d.ts +5 -5
  35. package/esm/typography/BodyShort.js +3 -3
  36. package/esm/typography/Detail.d.ts +5 -5
  37. package/esm/typography/Detail.js +3 -3
  38. package/esm/typography/ErrorMessage.d.ts +5 -5
  39. package/esm/typography/ErrorMessage.js +3 -3
  40. package/esm/typography/Heading.d.ts +6 -6
  41. package/esm/typography/Heading.js +3 -3
  42. package/esm/typography/Label.d.ts +5 -5
  43. package/esm/typography/Label.js +3 -3
  44. package/esm/typography/types.d.ts +3 -3
  45. package/package.json +13 -3
  46. package/src/index.ts +1 -0
  47. package/src/progress-bar/ProgressBar.tsx +124 -0
  48. package/src/progress-bar/index.ts +2 -0
  49. package/src/typography/BodyLong.tsx +7 -7
  50. package/src/typography/BodyShort.tsx +5 -5
  51. package/src/typography/Detail.tsx +5 -5
  52. package/src/typography/ErrorMessage.tsx +5 -5
  53. package/src/typography/Heading.tsx +6 -6
  54. package/src/typography/Label.tsx +5 -5
  55. package/src/typography/types.ts +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressBar.js","sourceRoot":"","sources":["../../src/progress-bar/ProgressBar.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAkB,UAAU,EAAE,MAAM,OAAO,CAAC;AAqD1D;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CACnC,CACE,EAQC,EACD,GAAG,EACH,EAAE;QAVF,EACE,IAAI,GAAG,QAAQ,EACf,KAAK,GAAG,CAAC,EACT,QAAQ,GAAG,GAAG,EACd,iBAAiB,EAAE,cAAc,EACjC,YAAY,EAAE,SAAS,EACvB,SAAS,OAEV,EADI,IAAI,cAPT,2EAQC,CADQ;IAIT,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC;IAC7D,MAAM,QAAQ,GAAG,SAAS,CAAC;IAE3B,OAAO,CACL,2CACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,oBAAoB,EACpB,uBAAuB,IAAI,EAAE,EAC7B,SAAS,CACV,mBACc,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,mBACnC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,oBAE7C,QAAQ;YACN,CAAC,CAAC,6BAA6B;YAC/B,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAEvD,IAAI,EAAC,aAAa,qBACD,cAAc,gBACnB,SAAS,IACjB,IAAI;QAER,6BACE,SAAS,EAAE,EAAE,CAAC,gCAAgC,EAAE;gBAC9C,+CAA+C,EAC7C,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;aAC7B,CAAC,EACF,KAAK,EAAE;gBACL,8BAA8B,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;oBACxD,CAAC,CAAC,GAAG,QAAQ,GAAG;oBAChB,CAAC,CAAC,SAAS;gBACb,2BAA2B,EAAE,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;gBACzD,+BAA+B,EAAE,IAAI,SAAS,GAAG;aAClD,GACD,CACE,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1 @@
1
+ export { default as ProgressBar, type ProgressBarProps } from "./ProgressBar.js";
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ export { default as ProgressBar } from "./ProgressBar.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/progress-bar/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,OAAO,EAAE,OAAO,IAAI,WAAW,EAAyB,MAAM,eAAe,CAAC"}
@@ -3,12 +3,12 @@ import { OverridableComponent } from "../util/types/index.js";
3
3
  import { TypoProps } from "./types.js";
4
4
  export interface BodyLongProps extends TypoProps, React.HTMLAttributes<HTMLParagraphElement> {
5
5
  /**
6
- * large: 20px, medium: 18px, small: 16px
6
+ * large: 20px, medium: 18px, small: 16px.
7
7
  * @default "medium"
8
8
  */
9
9
  size?: "large" | "medium" | "small";
10
10
  /**
11
- * Text
11
+ * Text.
12
12
  */
13
13
  children: React.ReactNode;
14
14
  }
@@ -21,11 +21,11 @@ export interface BodyLongProps extends TypoProps, React.HTMLAttributes<HTMLParag
21
21
  *
22
22
  * @example
23
23
  * ```jsx
24
- * <BodyLong>
25
- * Hvis du ikke bor sammen med begge foreldrene dine,
26
- * kan du ha rett til barnebidrag fra en eller begge foreldre mens du
27
- * fullfører videregående skole eller tilsvarende.
28
- * </BodyLong>
24
+ * <BodyLong>
25
+ * Hvis du ikke bor sammen med begge foreldrene dine,
26
+ * kan du ha rett til barnebidrag fra en eller begge foreldre mens du
27
+ * fullfører videregående skole eller tilsvarende.
28
+ * </BodyLong>
29
29
  * ```
30
30
  */
31
31
  export declare const BodyLong: OverridableComponent<BodyLongProps, HTMLParagraphElement>;
@@ -21,11 +21,11 @@ import { typoClassNames } from "./util.js";
21
21
  *
22
22
  * @example
23
23
  * ```jsx
24
- * <BodyLong>
25
- * Hvis du ikke bor sammen med begge foreldrene dine,
26
- * kan du ha rett til barnebidrag fra en eller begge foreldre mens du
27
- * fullfører videregående skole eller tilsvarende.
28
- * </BodyLong>
24
+ * <BodyLong>
25
+ * Hvis du ikke bor sammen med begge foreldrene dine,
26
+ * kan du ha rett til barnebidrag fra en eller begge foreldre mens du
27
+ * fullfører videregående skole eller tilsvarende.
28
+ * </BodyLong>
29
29
  * ```
30
30
  */
31
31
  export const BodyLong = forwardRef((_a, ref) => {
@@ -3,12 +3,12 @@ import { OverridableComponent } from "../util/types/index.js";
3
3
  import { TypoProps } from "./types.js";
4
4
  export interface BodyShortProps extends TypoProps, React.HTMLAttributes<HTMLParagraphElement> {
5
5
  /**
6
- * large: 20px, medium: 18px, small: 16px
6
+ * large: 20px, medium: 18px, small: 16px.
7
7
  * @default "medium"
8
8
  */
9
9
  size?: "large" | "medium" | "small";
10
10
  /**
11
- * Paragraph text
11
+ * Paragraph text.
12
12
  */
13
13
  children: React.ReactNode;
14
14
  }
@@ -21,9 +21,9 @@ export interface BodyShortProps extends TypoProps, React.HTMLAttributes<HTMLPara
21
21
  *
22
22
  * @example
23
23
  * ```jsx
24
- * <BodyShort>
25
- * Du må gjøre en filtrering for å se brukere i listen.
26
- * </BodyShort>
24
+ * <BodyShort>
25
+ * Du må gjøre en filtrering for å se brukere i listen.
26
+ * </BodyShort>
27
27
  * ```
28
28
  */
29
29
  export declare const BodyShort: OverridableComponent<BodyShortProps, HTMLParagraphElement>;
@@ -21,9 +21,9 @@ import { typoClassNames } from "./util.js";
21
21
  *
22
22
  * @example
23
23
  * ```jsx
24
- * <BodyShort>
25
- * Du må gjøre en filtrering for å se brukere i listen.
26
- * </BodyShort>
24
+ * <BodyShort>
25
+ * Du må gjøre en filtrering for å se brukere i listen.
26
+ * </BodyShort>
27
27
  * ```
28
28
  */
29
29
  export const BodyShort = forwardRef((_a, ref) => {
@@ -7,11 +7,11 @@ export interface DetailProps extends TypoProps, React.HTMLAttributes<HTMLParagra
7
7
  */
8
8
  size?: "medium" | "small";
9
9
  /**
10
- * Paragraph text
10
+ * Text.
11
11
  */
12
12
  children: React.ReactNode;
13
13
  /**
14
- * All caps
14
+ * ALL CAPS.
15
15
  */
16
16
  uppercase?: boolean;
17
17
  }
@@ -24,9 +24,9 @@ export interface DetailProps extends TypoProps, React.HTMLAttributes<HTMLParagra
24
24
  *
25
25
  * @example
26
26
  * ```jsx
27
- * <Detail>
28
- * Du må gjøre en filtrering for å se brukere i listen.
29
- * </Detail>
27
+ * <Detail>
28
+ * Du må gjøre en filtrering for å se brukere i listen.
29
+ * </Detail>
30
30
  * ```
31
31
  */
32
32
  export declare const Detail: OverridableComponent<DetailProps, HTMLParagraphElement>;
@@ -21,9 +21,9 @@ import { typoClassNames } from "./util.js";
21
21
  *
22
22
  * @example
23
23
  * ```jsx
24
- * <Detail>
25
- * Du må gjøre en filtrering for å se brukere i listen.
26
- * </Detail>
24
+ * <Detail>
25
+ * Du må gjøre en filtrering for å se brukere i listen.
26
+ * </Detail>
27
27
  * ```
28
28
  */
29
29
  export const Detail = forwardRef((_a, ref) => {
@@ -3,12 +3,12 @@ import { OverridableComponent } from "../util/types/index.js";
3
3
  import { TypoProps } from "./types.js";
4
4
  export interface ErrorMessageProps extends Pick<TypoProps, "spacing">, React.HTMLAttributes<HTMLParagraphElement> {
5
5
  /**
6
- * medium: 18px, small: 16px
6
+ * medium: 18px, small: 16px.
7
7
  * @default "medium"
8
8
  */
9
9
  size?: "medium" | "small";
10
10
  /**
11
- * Error text
11
+ * Error text.
12
12
  */
13
13
  children: React.ReactNode;
14
14
  }
@@ -21,9 +21,9 @@ export interface ErrorMessageProps extends Pick<TypoProps, "spacing">, React.HTM
21
21
  *
22
22
  * @example
23
23
  * ```jsx
24
- * <ErrorMessage>
25
- * Du må fylle ut: Oppgi årsaken til at du har ventet mer enn 6 måneder med å søke om refusjon
26
- * </ErrorMessage>
24
+ * <ErrorMessage>
25
+ * Du må fylle ut: Oppgi årsaken til at du har ventet mer enn 6 måneder med å søke om refusjon
26
+ * </ErrorMessage>
27
27
  * ```
28
28
  */
29
29
  export declare const ErrorMessage: OverridableComponent<ErrorMessageProps, HTMLParagraphElement>;
@@ -21,9 +21,9 @@ import { typoClassNames } from "./util.js";
21
21
  *
22
22
  * @example
23
23
  * ```jsx
24
- * <ErrorMessage>
25
- * Du må fylle ut: Oppgi årsaken til at du har ventet mer enn 6 måneder med å søke om refusjon
26
- * </ErrorMessage>
24
+ * <ErrorMessage>
25
+ * Du må fylle ut: Oppgi årsaken til at du har ventet mer enn 6 måneder med å søke om refusjon
26
+ * </ErrorMessage>
27
27
  * ```
28
28
  */
29
29
  export const ErrorMessage = forwardRef((_a, ref) => {
@@ -3,16 +3,16 @@ import { OverridableComponent } from "../util/types/index.js";
3
3
  import { TypoProps } from "./types.js";
4
4
  export interface HeadingProps extends Pick<TypoProps, "spacing" | "visuallyHidden" | "align" | "textColor">, React.HTMLAttributes<HTMLHeadingElement> {
5
5
  /**
6
- * Heading level
6
+ * Heading level.
7
7
  * @default "1"
8
8
  */
9
9
  level?: "1" | "2" | "3" | "4" | "5" | "6";
10
10
  /**
11
- * Changes text-sizing
11
+ * xlarge: 40px, large: 32px, medium: 24px, small: 20px, xsmall: 18px.
12
12
  */
13
13
  size: "xlarge" | "large" | "medium" | "small" | "xsmall";
14
14
  /**
15
- * Heading text
15
+ * Heading text.
16
16
  */
17
17
  children: React.ReactNode;
18
18
  }
@@ -25,9 +25,9 @@ export interface HeadingProps extends Pick<TypoProps, "spacing" | "visuallyHidde
25
25
  *
26
26
  * @example
27
27
  * ```jsx
28
- * <Heading level="1" size="xlarge">
29
- * Hva kan vi hjelpe deg med?
30
- * </Heading>
28
+ * <Heading level="1" size="xlarge">
29
+ * Hva kan vi hjelpe deg med?
30
+ * </Heading>
31
31
  * ```
32
32
  */
33
33
  export declare const Heading: OverridableComponent<HeadingProps, HTMLHeadingElement>;
@@ -21,9 +21,9 @@ import { typoClassNames } from "./util.js";
21
21
  *
22
22
  * @example
23
23
  * ```jsx
24
- * <Heading level="1" size="xlarge">
25
- * Hva kan vi hjelpe deg med?
26
- * </Heading>
24
+ * <Heading level="1" size="xlarge">
25
+ * Hva kan vi hjelpe deg med?
26
+ * </Heading>
27
27
  * ```
28
28
  */
29
29
  export const Heading = forwardRef((_a, ref) => {
@@ -3,12 +3,12 @@ import { OverridableComponent } from "../util/types/index.js";
3
3
  import { TypoProps } from "./types.js";
4
4
  export interface LabelProps extends Omit<TypoProps, "weight" | "align" | "truncate">, React.LabelHTMLAttributes<HTMLLabelElement> {
5
5
  /**
6
- * medium: 18px, small: 16px
6
+ * medium: 18px, small: 16px.
7
7
  * @default "medium"
8
8
  */
9
9
  size?: "medium" | "small";
10
10
  /**
11
- * Paragraph text
11
+ * Label text.
12
12
  */
13
13
  children: React.ReactNode;
14
14
  }
@@ -21,9 +21,9 @@ export interface LabelProps extends Omit<TypoProps, "weight" | "align" | "trunca
21
21
  *
22
22
  * @example
23
23
  * ```jsx
24
- * <Label>
25
- * Oppgi årsaken til at du har ventet mer enn 6 måneder med å søke om refusjon
26
- * </Label>
24
+ * <Label>
25
+ * Oppgi årsaken til at du har ventet mer enn 6 måneder med å søke om refusjon
26
+ * </Label>
27
27
  * ```
28
28
  */
29
29
  export declare const Label: OverridableComponent<LabelProps, HTMLLabelElement>;
@@ -21,9 +21,9 @@ import { typoClassNames } from "./util.js";
21
21
  *
22
22
  * @example
23
23
  * ```jsx
24
- * <Label>
25
- * Oppgi årsaken til at du har ventet mer enn 6 måneder med å søke om refusjon
26
- * </Label>
24
+ * <Label>
25
+ * Oppgi årsaken til at du har ventet mer enn 6 måneder med å søke om refusjon
26
+ * </Label>
27
27
  * ```
28
28
  */
29
29
  export const Label = forwardRef((_a, ref) => {
@@ -12,15 +12,15 @@ export type TypoProps = {
12
12
  */
13
13
  align?: "start" | "center" | "end";
14
14
  /**
15
- * Visually hide text. Text will still be accessible for screenreaders
15
+ * Visually hide text. Text will still be accessible for screenreaders.
16
16
  */
17
17
  visuallyHidden?: boolean;
18
18
  /**
19
- * Adds spacing below text
19
+ * Adds spacing below text.
20
20
  */
21
21
  spacing?: boolean;
22
22
  /**
23
- * Adjusts color
23
+ * Adjusts color.
24
24
  */
25
25
  textColor?: "default" | "subtle";
26
26
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@navikt/ds-react",
3
- "version": "6.6.1",
3
+ "version": "6.7.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",
@@ -310,6 +310,16 @@
310
310
  "default": "./cjs/popover/index.js"
311
311
  }
312
312
  },
313
+ "./ProgressBar": {
314
+ "import": {
315
+ "types": "./esm/progress-bar/index.d.ts",
316
+ "default": "./esm/progress-bar/index.js"
317
+ },
318
+ "require": {
319
+ "types": "./cjs/progress-bar/index.d.ts",
320
+ "default": "./cjs/progress-bar/index.js"
321
+ }
322
+ },
313
323
  "./Provider": {
314
324
  "import": {
315
325
  "types": "./esm/provider/index.d.ts",
@@ -573,8 +583,8 @@
573
583
  },
574
584
  "dependencies": {
575
585
  "@floating-ui/react": "0.25.4",
576
- "@navikt/aksel-icons": "^6.6.1",
577
- "@navikt/ds-tokens": "^6.6.1",
586
+ "@navikt/aksel-icons": "^6.7.0",
587
+ "@navikt/ds-tokens": "^6.7.0",
578
588
  "clsx": "^2.1.0",
579
589
  "date-fns": "^3.0.0",
580
590
  "react-day-picker": "8.10.0"
package/src/index.ts CHANGED
@@ -59,6 +59,7 @@ export { Modal, type ModalProps } from "./modal";
59
59
  export { Pagination, type PaginationProps } from "./pagination";
60
60
  export { Popover, type PopoverProps } from "./popover";
61
61
  export { Portal, type PortalProps } from "./portal";
62
+ export { ProgressBar, type ProgressBarProps } from "./progress-bar";
62
63
  export { Provider, type ProviderProps } from "./provider";
63
64
  export { ReadMore, type ReadMoreProps } from "./read-more";
64
65
  export { Skeleton, type SkeletonProps } from "./skeleton";
@@ -0,0 +1,124 @@
1
+ import cl from "clsx";
2
+ import React, { HTMLAttributes, forwardRef } from "react";
3
+
4
+ interface ProgressBarPropsBase
5
+ extends Omit<HTMLAttributes<HTMLDivElement>, "role"> {
6
+ /**
7
+ * Changes height.
8
+ * @default "medium"
9
+ */
10
+ size?: "large" | "medium" | "small";
11
+ /**
12
+ * Current progress. When duration is set, value is ignored.
13
+ */
14
+ value?: number;
15
+ /**
16
+ * Maximum progress.
17
+ * @default 100
18
+ */
19
+ valueMax?: number;
20
+ /**
21
+ * Expected task duration in seconds.
22
+ * ProgressBar grows with a preset animation for {duration} seconds.
23
+ * After a 4 sec delay, it then shows an indeterminate animation.
24
+ * A duration of 0 will show an indeterminate animation immediately.
25
+ * Temporary removed to avoid conflicts when updating API
26
+ */
27
+ //duration?: number;
28
+ /**
29
+ * String ID of the element that labels the progress bar.
30
+ * Not needed if `aria-label` is used.
31
+ */
32
+ "aria-labelledby"?: string;
33
+ /**
34
+ * String value that labels the progress bar.
35
+ * Not needed if `aria-labelledby` is used.
36
+ */
37
+ "aria-label"?: string;
38
+ }
39
+
40
+ export type ProgressBarProps = ProgressBarPropsBase &
41
+ (
42
+ | {
43
+ "aria-hidden": string;
44
+ }
45
+ | {
46
+ "aria-labelledby": string;
47
+ "aria-label"?: never;
48
+ }
49
+ | {
50
+ "aria-label": string;
51
+ "aria-labelledby"?: never;
52
+ }
53
+ );
54
+
55
+ /**
56
+ * ProgressBar
57
+ * A component for visualizing progression in a process.
58
+ *
59
+ * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/progress-bar)
60
+ * @see 🏷️ {@link ProgressBarProps}
61
+ *
62
+ * @example
63
+ * // For loading content with an approximate duration in sec.
64
+ * <ProgressBar duration={30} />
65
+ *
66
+ * @example
67
+ * // As a step indicator for forms, questionnaires, etc.
68
+ * <ProgressBar value={2} valueMax={7} />
69
+ */
70
+ export const ProgressBar = forwardRef<HTMLDivElement, ProgressBarProps>(
71
+ (
72
+ {
73
+ size = "medium",
74
+ value = 0,
75
+ valueMax = 100,
76
+ "aria-labelledby": ariaLabelledBy,
77
+ "aria-label": ariaLabel,
78
+ className,
79
+ ...rest
80
+ },
81
+ ref,
82
+ ) => {
83
+ const translate = 100 - (Math.round(value) / valueMax) * 100;
84
+ const duration = undefined;
85
+
86
+ return (
87
+ <div
88
+ ref={ref}
89
+ className={cl(
90
+ "navds-progress-bar",
91
+ `navds-progress-bar--${size}`,
92
+ className,
93
+ )}
94
+ aria-valuemax={duration ? 0 : Math.round(valueMax)}
95
+ aria-valuenow={duration ? 0 : Math.round(value)}
96
+ aria-valuetext={
97
+ duration
98
+ ? "Fremdrift kan ikke beregnes"
99
+ : `${Math.round(value)} av ${Math.round(valueMax)}`
100
+ }
101
+ role="progressbar"
102
+ aria-labelledby={ariaLabelledBy}
103
+ aria-label={ariaLabel}
104
+ {...rest}
105
+ >
106
+ <div
107
+ className={cl("navds-progress-bar__foreground", {
108
+ "navds-progress-bar__foreground--indeterminate":
109
+ Number.isInteger(duration),
110
+ })}
111
+ style={{
112
+ "--__ac-progress-bar-duration": Number.isInteger(duration)
113
+ ? `${duration}s`
114
+ : undefined,
115
+ "--__ac-progress-bar-delay": `${duration === 0 ? 0 : 4}s`,
116
+ "--__ac-progress-bar-translate": `-${translate}%`,
117
+ }}
118
+ />
119
+ </div>
120
+ );
121
+ },
122
+ );
123
+
124
+ export default ProgressBar;
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ export { default as ProgressBar, type ProgressBarProps } from "./ProgressBar";
@@ -8,12 +8,12 @@ export interface BodyLongProps
8
8
  extends TypoProps,
9
9
  React.HTMLAttributes<HTMLParagraphElement> {
10
10
  /**
11
- * large: 20px, medium: 18px, small: 16px
11
+ * large: 20px, medium: 18px, small: 16px.
12
12
  * @default "medium"
13
13
  */
14
14
  size?: "large" | "medium" | "small";
15
15
  /**
16
- * Text
16
+ * Text.
17
17
  */
18
18
  children: React.ReactNode;
19
19
  }
@@ -27,11 +27,11 @@ export interface BodyLongProps
27
27
  *
28
28
  * @example
29
29
  * ```jsx
30
- * <BodyLong>
31
- * Hvis du ikke bor sammen med begge foreldrene dine,
32
- * kan du ha rett til barnebidrag fra en eller begge foreldre mens du
33
- * fullfører videregående skole eller tilsvarende.
34
- * </BodyLong>
30
+ * <BodyLong>
31
+ * Hvis du ikke bor sammen med begge foreldrene dine,
32
+ * kan du ha rett til barnebidrag fra en eller begge foreldre mens du
33
+ * fullfører videregående skole eller tilsvarende.
34
+ * </BodyLong>
35
35
  * ```
36
36
  */
37
37
  export const BodyLong: OverridableComponent<
@@ -8,12 +8,12 @@ export interface BodyShortProps
8
8
  extends TypoProps,
9
9
  React.HTMLAttributes<HTMLParagraphElement> {
10
10
  /**
11
- * large: 20px, medium: 18px, small: 16px
11
+ * large: 20px, medium: 18px, small: 16px.
12
12
  * @default "medium"
13
13
  */
14
14
  size?: "large" | "medium" | "small";
15
15
  /**
16
- * Paragraph text
16
+ * Paragraph text.
17
17
  */
18
18
  children: React.ReactNode;
19
19
  }
@@ -27,9 +27,9 @@ export interface BodyShortProps
27
27
  *
28
28
  * @example
29
29
  * ```jsx
30
- * <BodyShort>
31
- * Du må gjøre en filtrering for å se brukere i listen.
32
- * </BodyShort>
30
+ * <BodyShort>
31
+ * Du må gjøre en filtrering for å se brukere i listen.
32
+ * </BodyShort>
33
33
  * ```
34
34
  */
35
35
  export const BodyShort: OverridableComponent<
@@ -12,11 +12,11 @@ export interface DetailProps
12
12
  */
13
13
  size?: "medium" | "small";
14
14
  /**
15
- * Paragraph text
15
+ * Text.
16
16
  */
17
17
  children: React.ReactNode;
18
18
  /**
19
- * All caps
19
+ * ALL CAPS.
20
20
  */
21
21
  uppercase?: boolean;
22
22
  }
@@ -30,9 +30,9 @@ export interface DetailProps
30
30
  *
31
31
  * @example
32
32
  * ```jsx
33
- * <Detail>
34
- * Du må gjøre en filtrering for å se brukere i listen.
35
- * </Detail>
33
+ * <Detail>
34
+ * Du må gjøre en filtrering for å se brukere i listen.
35
+ * </Detail>
36
36
  * ```
37
37
  */
38
38
  export const Detail: OverridableComponent<DetailProps, HTMLParagraphElement> =
@@ -8,12 +8,12 @@ export interface ErrorMessageProps
8
8
  extends Pick<TypoProps, "spacing">,
9
9
  React.HTMLAttributes<HTMLParagraphElement> {
10
10
  /**
11
- * medium: 18px, small: 16px
11
+ * medium: 18px, small: 16px.
12
12
  * @default "medium"
13
13
  */
14
14
  size?: "medium" | "small";
15
15
  /**
16
- * Error text
16
+ * Error text.
17
17
  */
18
18
  children: React.ReactNode;
19
19
  }
@@ -27,9 +27,9 @@ export interface ErrorMessageProps
27
27
  *
28
28
  * @example
29
29
  * ```jsx
30
- * <ErrorMessage>
31
- * Du må fylle ut: Oppgi årsaken til at du har ventet mer enn 6 måneder med å søke om refusjon
32
- * </ErrorMessage>
30
+ * <ErrorMessage>
31
+ * Du må fylle ut: Oppgi årsaken til at du har ventet mer enn 6 måneder med å søke om refusjon
32
+ * </ErrorMessage>
33
33
  * ```
34
34
  */
35
35
  export const ErrorMessage: OverridableComponent<
@@ -8,16 +8,16 @@ export interface HeadingProps
8
8
  extends Pick<TypoProps, "spacing" | "visuallyHidden" | "align" | "textColor">,
9
9
  React.HTMLAttributes<HTMLHeadingElement> {
10
10
  /**
11
- * Heading level
11
+ * Heading level.
12
12
  * @default "1"
13
13
  */
14
14
  level?: "1" | "2" | "3" | "4" | "5" | "6";
15
15
  /**
16
- * Changes text-sizing
16
+ * xlarge: 40px, large: 32px, medium: 24px, small: 20px, xsmall: 18px.
17
17
  */
18
18
  size: "xlarge" | "large" | "medium" | "small" | "xsmall";
19
19
  /**
20
- * Heading text
20
+ * Heading text.
21
21
  */
22
22
  children: React.ReactNode;
23
23
  }
@@ -31,9 +31,9 @@ export interface HeadingProps
31
31
  *
32
32
  * @example
33
33
  * ```jsx
34
- * <Heading level="1" size="xlarge">
35
- * Hva kan vi hjelpe deg med?
36
- * </Heading>
34
+ * <Heading level="1" size="xlarge">
35
+ * Hva kan vi hjelpe deg med?
36
+ * </Heading>
37
37
  * ```
38
38
  */
39
39
  export const Heading: OverridableComponent<HeadingProps, HTMLHeadingElement> =
@@ -8,12 +8,12 @@ export interface LabelProps
8
8
  extends Omit<TypoProps, "weight" | "align" | "truncate">,
9
9
  React.LabelHTMLAttributes<HTMLLabelElement> {
10
10
  /**
11
- * medium: 18px, small: 16px
11
+ * medium: 18px, small: 16px.
12
12
  * @default "medium"
13
13
  */
14
14
  size?: "medium" | "small";
15
15
  /**
16
- * Paragraph text
16
+ * Label text.
17
17
  */
18
18
  children: React.ReactNode;
19
19
  }
@@ -27,9 +27,9 @@ export interface LabelProps
27
27
  *
28
28
  * @example
29
29
  * ```jsx
30
- * <Label>
31
- * Oppgi årsaken til at du har ventet mer enn 6 måneder med å søke om refusjon
32
- * </Label>
30
+ * <Label>
31
+ * Oppgi årsaken til at du har ventet mer enn 6 måneder med å søke om refusjon
32
+ * </Label>
33
33
  * ```
34
34
  */
35
35
  export const Label: OverridableComponent<LabelProps, HTMLLabelElement> =