@dbcdk/react-components 0.0.117 → 0.0.119
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.
- package/dist/components/headline/CollapsibleHeadline.cjs +6 -4
- package/dist/components/headline/CollapsibleHeadline.d.ts +6 -1
- package/dist/components/headline/CollapsibleHeadline.js +6 -4
- package/dist/components/segmented-progress-bar/SegmentedProgressBar.cjs +4 -1
- package/dist/components/segmented-progress-bar/SegmentedProgressBar.js +4 -1
- package/package.json +1 -1
|
@@ -19,6 +19,7 @@ function CollapsibleHeadline({
|
|
|
19
19
|
controls,
|
|
20
20
|
addition,
|
|
21
21
|
storageKey,
|
|
22
|
+
defaultExpanded = false,
|
|
22
23
|
children,
|
|
23
24
|
size = 2,
|
|
24
25
|
variant = "muted",
|
|
@@ -28,15 +29,16 @@ function CollapsibleHeadline({
|
|
|
28
29
|
const generatedId = react.useId();
|
|
29
30
|
const panelId = controls != null ? controls : generatedId;
|
|
30
31
|
const isControlled = expanded !== void 0;
|
|
31
|
-
const [internalExpanded, setInternalExpanded] = react.useState(
|
|
32
|
+
const [internalExpanded, setInternalExpanded] = react.useState(defaultExpanded);
|
|
32
33
|
const [hasToggled, setHasToggled] = react.useState(false);
|
|
33
34
|
const persistedExpanded = react.useSyncExternalStore(
|
|
34
35
|
() => () => void 0,
|
|
35
36
|
() => {
|
|
36
|
-
if (isControlled || !storageKey) return
|
|
37
|
-
|
|
37
|
+
if (isControlled || !storageKey) return defaultExpanded;
|
|
38
|
+
const stored = localStorage.getItem(storageKey);
|
|
39
|
+
return stored !== null ? stored === "true" : defaultExpanded;
|
|
38
40
|
},
|
|
39
|
-
() =>
|
|
41
|
+
() => defaultExpanded
|
|
40
42
|
);
|
|
41
43
|
const isExpanded = isControlled ? expanded : hasToggled ? internalExpanded : persistedExpanded;
|
|
42
44
|
const handleToggle = () => {
|
|
@@ -17,5 +17,10 @@ export interface CollapsibleHeadlineProps extends Omit<HeadlineProps, 'addition'
|
|
|
17
17
|
* collapsed to stay hydration-safe.
|
|
18
18
|
*/
|
|
19
19
|
storageKey?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Initial expanded state when uncontrolled and no persisted storageKey
|
|
22
|
+
* value exists yet. Defaults to false.
|
|
23
|
+
*/
|
|
24
|
+
defaultExpanded?: boolean;
|
|
20
25
|
}
|
|
21
|
-
export declare function CollapsibleHeadline({ header, expanded, onToggle, controls, addition, storageKey, children, size, variant, weight, ...headlineProps }: PropsWithChildren<CollapsibleHeadlineProps>): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
export declare function CollapsibleHeadline({ header, expanded, onToggle, controls, addition, storageKey, defaultExpanded, children, size, variant, weight, ...headlineProps }: PropsWithChildren<CollapsibleHeadlineProps>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -13,6 +13,7 @@ function CollapsibleHeadline({
|
|
|
13
13
|
controls,
|
|
14
14
|
addition,
|
|
15
15
|
storageKey,
|
|
16
|
+
defaultExpanded = false,
|
|
16
17
|
children,
|
|
17
18
|
size = 2,
|
|
18
19
|
variant = "muted",
|
|
@@ -22,15 +23,16 @@ function CollapsibleHeadline({
|
|
|
22
23
|
const generatedId = useId();
|
|
23
24
|
const panelId = controls != null ? controls : generatedId;
|
|
24
25
|
const isControlled = expanded !== void 0;
|
|
25
|
-
const [internalExpanded, setInternalExpanded] = useState(
|
|
26
|
+
const [internalExpanded, setInternalExpanded] = useState(defaultExpanded);
|
|
26
27
|
const [hasToggled, setHasToggled] = useState(false);
|
|
27
28
|
const persistedExpanded = useSyncExternalStore(
|
|
28
29
|
() => () => void 0,
|
|
29
30
|
() => {
|
|
30
|
-
if (isControlled || !storageKey) return
|
|
31
|
-
|
|
31
|
+
if (isControlled || !storageKey) return defaultExpanded;
|
|
32
|
+
const stored = localStorage.getItem(storageKey);
|
|
33
|
+
return stored !== null ? stored === "true" : defaultExpanded;
|
|
32
34
|
},
|
|
33
|
-
() =>
|
|
35
|
+
() => defaultExpanded
|
|
34
36
|
);
|
|
35
37
|
const isExpanded = isControlled ? expanded : hasToggled ? internalExpanded : persistedExpanded;
|
|
36
38
|
const handleToggle = () => {
|
|
@@ -17,6 +17,9 @@ const sizeTokenMap = {
|
|
|
17
17
|
md: "var(--component-size-md)",
|
|
18
18
|
lg: "var(--component-size-lg)"
|
|
19
19
|
};
|
|
20
|
+
function formatNumberDa(value) {
|
|
21
|
+
return value.toLocaleString("da-DK");
|
|
22
|
+
}
|
|
20
23
|
function SegmentWithTooltip({
|
|
21
24
|
seg,
|
|
22
25
|
index,
|
|
@@ -77,7 +80,7 @@ const SegmentedProgressBar = ({
|
|
|
77
80
|
const autoNumbers = (() => {
|
|
78
81
|
const base = segments.map((s) => s.value || 0);
|
|
79
82
|
if (showRemainder) base.push(remainder);
|
|
80
|
-
return base.join("/");
|
|
83
|
+
return base.map(formatNumberDa).join("/");
|
|
81
84
|
})();
|
|
82
85
|
const filteredSegments = computedSegments.filter((x) => x.value > 0);
|
|
83
86
|
const rootClass = [styles__default.default.container, className].filter(Boolean).join(" ");
|
|
@@ -11,6 +11,9 @@ const sizeTokenMap = {
|
|
|
11
11
|
md: "var(--component-size-md)",
|
|
12
12
|
lg: "var(--component-size-lg)"
|
|
13
13
|
};
|
|
14
|
+
function formatNumberDa(value) {
|
|
15
|
+
return value.toLocaleString("da-DK");
|
|
16
|
+
}
|
|
14
17
|
function SegmentWithTooltip({
|
|
15
18
|
seg,
|
|
16
19
|
index,
|
|
@@ -71,7 +74,7 @@ const SegmentedProgressBar = ({
|
|
|
71
74
|
const autoNumbers = (() => {
|
|
72
75
|
const base = segments.map((s) => s.value || 0);
|
|
73
76
|
if (showRemainder) base.push(remainder);
|
|
74
|
-
return base.join("/");
|
|
77
|
+
return base.map(formatNumberDa).join("/");
|
|
75
78
|
})();
|
|
76
79
|
const filteredSegments = computedSegments.filter((x) => x.value > 0);
|
|
77
80
|
const rootClass = [styles.container, className].filter(Boolean).join(" ");
|