@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.
@@ -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(false);
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 false;
37
- return localStorage.getItem(storageKey) === "true";
37
+ if (isControlled || !storageKey) return defaultExpanded;
38
+ const stored = localStorage.getItem(storageKey);
39
+ return stored !== null ? stored === "true" : defaultExpanded;
38
40
  },
39
- () => false
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(false);
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 false;
31
- return localStorage.getItem(storageKey) === "true";
31
+ if (isControlled || !storageKey) return defaultExpanded;
32
+ const stored = localStorage.getItem(storageKey);
33
+ return stored !== null ? stored === "true" : defaultExpanded;
32
34
  },
33
- () => false
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(" ");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dbcdk/react-components",
3
- "version": "0.0.117",
3
+ "version": "0.0.119",
4
4
  "description": "Reusable React components for DBC projects",
5
5
  "license": "ISC",
6
6
  "author": "",