@postenbring/hedwig-react 0.0.87 → 0.0.89
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/badge/badge.d.ts +7 -3
- package/dist/badge/badge.d.ts.map +1 -1
- package/dist/badge/badge.js.map +1 -1
- package/dist/badge/badge.mjs +1 -1
- package/dist/badge/index.js.map +1 -1
- package/dist/badge/index.mjs +1 -1
- package/dist/blockquote/blockquote.d.ts +29 -0
- package/dist/blockquote/blockquote.d.ts.map +1 -0
- package/dist/blockquote/blockquote.js +83 -0
- package/dist/blockquote/blockquote.js.map +1 -0
- package/dist/blockquote/blockquote.mjs +8 -0
- package/dist/blockquote/index.d.ts +3 -0
- package/dist/blockquote/index.d.ts.map +1 -0
- package/dist/blockquote/index.js +85 -0
- package/dist/blockquote/index.js.map +1 -0
- package/dist/blockquote/index.mjs +9 -0
- package/dist/chunk-3H7S7C3S.mjs +37 -0
- package/dist/chunk-3H7S7C3S.mjs.map +1 -0
- package/dist/{chunk-YIERXOCG.mjs → chunk-6ZO2TMOX.mjs} +2 -2
- package/dist/{chunk-F4EAUOJX.mjs → chunk-EAFQ3XQU.mjs} +2 -2
- package/dist/{chunk-OFY2FVXB.mjs → chunk-EGW3RCXD.mjs} +2 -2
- package/dist/chunk-EGW3RCXD.mjs.map +1 -0
- package/dist/{chunk-WEQIEPMT.mjs → chunk-JQGB77SS.mjs} +1 -1
- package/dist/chunk-JQGB77SS.mjs.map +1 -0
- package/dist/chunk-JYN2QSN2.mjs +36 -0
- package/dist/chunk-JYN2QSN2.mjs.map +1 -0
- package/dist/chunk-K2CB2NLY.mjs +1 -0
- package/dist/chunk-KFDS3IPB.mjs +1 -0
- package/dist/{chunk-YLBJMVIX.mjs → chunk-M7MG7ZQT.mjs} +2 -2
- package/dist/chunk-OE6RISJS.mjs +24 -0
- package/dist/chunk-OE6RISJS.mjs.map +1 -0
- package/dist/{chunk-TCO3ZAZW.mjs → chunk-OXZOGFNV.mjs} +1 -1
- package/dist/chunk-OXZOGFNV.mjs.map +1 -0
- package/dist/{chunk-GUNPGSAS.mjs → chunk-UL2V2Z5B.mjs} +12 -12
- package/dist/chunk-UL2V2Z5B.mjs.map +1 -0
- package/dist/chunk-XAFNJELJ.mjs +1 -0
- package/dist/chunk-XAFNJELJ.mjs.map +1 -0
- package/dist/{chunk-ZYTUK4B4.mjs → chunk-YS7HBWOI.mjs} +4 -3
- package/dist/chunk-YS7HBWOI.mjs.map +1 -0
- package/dist/figure/figure.d.ts +22 -0
- package/dist/figure/figure.d.ts.map +1 -0
- package/dist/figure/figure.js +71 -0
- package/dist/figure/figure.js.map +1 -0
- package/dist/figure/figure.mjs +8 -0
- package/dist/figure/figure.mjs.map +1 -0
- package/dist/figure/index.d.ts +3 -0
- package/dist/figure/index.d.ts.map +1 -0
- package/dist/figure/index.js +73 -0
- package/dist/figure/index.js.map +1 -0
- package/dist/figure/index.mjs +9 -0
- package/dist/figure/index.mjs.map +1 -0
- package/dist/form/checkbox/checkbox.js.map +1 -1
- package/dist/form/checkbox/checkbox.mjs +2 -2
- package/dist/form/checkbox/index.js.map +1 -1
- package/dist/form/checkbox/index.mjs +2 -2
- package/dist/form/fieldset/fieldset.d.ts +2 -2
- package/dist/form/fieldset/fieldset.js.map +1 -1
- package/dist/form/fieldset/fieldset.mjs +1 -1
- package/dist/form/fieldset/index.js.map +1 -1
- package/dist/form/fieldset/index.mjs +1 -1
- package/dist/form/index.d.ts +1 -1
- package/dist/form/index.d.ts.map +1 -1
- package/dist/form/index.js +13 -12
- package/dist/form/index.js.map +1 -1
- package/dist/form/index.mjs +17 -17
- package/dist/form/radio-button/index.d.ts +5 -0
- package/dist/form/radio-button/index.d.ts.map +1 -0
- package/dist/form/{radiobutton → radio-button}/index.js +17 -16
- package/dist/form/radio-button/index.js.map +1 -0
- package/dist/form/{radiobutton → radio-button}/index.mjs +6 -6
- package/dist/form/radio-button/index.mjs.map +1 -0
- package/dist/form/{radiobutton/radiobutton.d.ts → radio-button/radio-button.d.ts} +6 -6
- package/dist/form/radio-button/radio-button.d.ts.map +1 -0
- package/dist/form/{radiobutton/radiobutton.js → radio-button/radio-button.js} +17 -16
- package/dist/form/radio-button/radio-button.js.map +1 -0
- package/dist/form/radio-button/radio-button.mjs +13 -0
- package/dist/form/radio-button/radio-button.mjs.map +1 -0
- package/dist/form/{radiobutton/radiogroup.d.ts → radio-button/radio-group.d.ts} +7 -7
- package/dist/form/radio-button/radio-group.d.ts.map +1 -0
- package/dist/form/{radiobutton/radiogroup.js → radio-button/radio-group.js} +7 -6
- package/dist/form/radio-button/radio-group.js.map +1 -0
- package/dist/form/{radiobutton/radiogroup.mjs → radio-button/radio-group.mjs} +3 -3
- package/dist/form/radio-button/radio-group.mjs.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +554 -498
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +76 -66
- package/dist/layout/index.mjs +6 -6
- package/dist/navbar/icons.d.ts.map +1 -1
- package/dist/navbar/icons.js +16 -5
- package/dist/navbar/icons.js.map +1 -1
- package/dist/navbar/icons.mjs +1 -1
- package/dist/navbar/index.js +16 -5
- package/dist/navbar/index.js.map +1 -1
- package/dist/navbar/index.mjs +3 -3
- package/dist/navbar/navbar-expandable-menu.js +16 -5
- package/dist/navbar/navbar-expandable-menu.js.map +1 -1
- package/dist/navbar/navbar-expandable-menu.mjs +2 -2
- package/dist/navbar/navbar.js +16 -5
- package/dist/navbar/navbar.js.map +1 -1
- package/dist/navbar/navbar.mjs +3 -3
- package/dist/styled-html/index.js +1 -1
- package/dist/styled-html/index.js.map +1 -1
- package/dist/styled-html/index.mjs +1 -1
- package/dist/styled-html/styled-html.d.ts +9 -1
- package/dist/styled-html/styled-html.d.ts.map +1 -1
- package/dist/styled-html/styled-html.js +1 -1
- package/dist/styled-html/styled-html.js.map +1 -1
- package/dist/styled-html/styled-html.mjs +1 -1
- package/package.json +4 -4
- package/src/accordion/accordion.stories.tsx +8 -113
- package/src/badge/badge.stories.tsx +2 -30
- package/src/badge/badge.tsx +7 -3
- package/src/blockquote/blockquote.stories.tsx +22 -0
- package/src/blockquote/blockquote.tsx +52 -0
- package/src/blockquote/index.tsx +3 -0
- package/src/box/box.stories.tsx +14 -84
- package/src/breadcrumbs/breadcrumbs.stories.tsx +8 -22
- package/src/button/button.stories.tsx +2 -85
- package/src/card/card.stories.tsx +2 -42
- package/src/description-list/description-list.stories.tsx +6 -71
- package/src/figure/figure.stories.tsx +22 -0
- package/src/figure/figure.tsx +36 -0
- package/src/figure/index.tsx +3 -0
- package/src/form/checkbox/checkbox.stories.tsx +5 -80
- package/src/form/date-picker/date-picker.stories.tsx +8 -7
- package/src/form/error-message/error-message.stories.tsx +3 -2
- package/src/form/fieldset/fieldset.stories.tsx +2 -58
- package/src/form/fieldset/fieldset.tsx +2 -2
- package/src/form/index.tsx +1 -1
- package/src/form/input/input.stories.tsx +2 -142
- package/src/form/radio-button/index.tsx +4 -0
- package/src/form/radio-button/radio-button.stories.tsx +26 -0
- package/src/form/{radiobutton/radiobutton.tsx → radio-button/radio-button.tsx} +13 -13
- package/src/form/{radiobutton/radiogroup.stories.tsx → radio-button/radio-group.stories.tsx} +9 -9
- package/src/form/{radiobutton/radiogroup.tsx → radio-button/radio-group.tsx} +7 -6
- package/src/form/select/select.stories.tsx +2 -61
- package/src/form/textarea/textarea.stories.tsx +5 -85
- package/src/help-text/help-text.stories.tsx +20 -0
- package/src/index.ts +2 -0
- package/src/layout/container/container.stories.tsx +18 -14
- package/src/layout/grid/grid.stories.tsx +28 -0
- package/src/layout/stack/stack.stories.tsx +28 -0
- package/src/link/link.stories.tsx +8 -38
- package/src/list/link-list.stories.tsx +25 -27
- package/src/list/list.stories.tsx +11 -48
- package/src/message/message.stories.tsx +8 -65
- package/src/modal/modal.stories.tsx +2 -103
- package/src/navbar/icons.tsx +10 -3
- package/src/navbar/navbar.stories.tsx +23 -62
- package/src/show-more/show-more.stories.tsx +3 -98
- package/src/skeleton/skeleton.stories.tsx +3 -126
- package/src/step-indicator/step-indicator.stories.tsx +2 -31
- package/src/styled-html/styled-html.stories.tsx +22 -155
- package/src/styled-html/styled-html.tsx +12 -2
- package/src/table/table.stories.tsx +43 -0
- package/src/tabs/tabs.stories.tsx +8 -114
- package/src/text/text.stories.tsx +18 -83
- package/src/warning-banner/warning-banner.stories.tsx +2 -23
- package/dist/chunk-2KX7VFN2.mjs +0 -1
- package/dist/chunk-GUNPGSAS.mjs.map +0 -1
- package/dist/chunk-MOU6WBT2.mjs +0 -26
- package/dist/chunk-MOU6WBT2.mjs.map +0 -1
- package/dist/chunk-OFY2FVXB.mjs.map +0 -1
- package/dist/chunk-TCO3ZAZW.mjs.map +0 -1
- package/dist/chunk-WEQIEPMT.mjs.map +0 -1
- package/dist/chunk-ZYTUK4B4.mjs.map +0 -1
- package/dist/form/radiobutton/index.d.ts +0 -5
- package/dist/form/radiobutton/index.d.ts.map +0 -1
- package/dist/form/radiobutton/index.js.map +0 -1
- package/dist/form/radiobutton/radiobutton.d.ts.map +0 -1
- package/dist/form/radiobutton/radiobutton.js.map +0 -1
- package/dist/form/radiobutton/radiobutton.mjs +0 -13
- package/dist/form/radiobutton/radiogroup.d.ts.map +0 -1
- package/dist/form/radiobutton/radiogroup.js.map +0 -1
- package/src/form/radiobutton/index.tsx +0 -4
- package/src/form/radiobutton/radiobutton.stories.tsx +0 -93
- /package/dist/{chunk-2KX7VFN2.mjs.map → blockquote/blockquote.mjs.map} +0 -0
- /package/dist/{form/radiobutton → blockquote}/index.mjs.map +0 -0
- /package/dist/{chunk-YIERXOCG.mjs.map → chunk-6ZO2TMOX.mjs.map} +0 -0
- /package/dist/{chunk-F4EAUOJX.mjs.map → chunk-EAFQ3XQU.mjs.map} +0 -0
- /package/dist/{form/radiobutton/radiobutton.mjs.map → chunk-K2CB2NLY.mjs.map} +0 -0
- /package/dist/{form/radiobutton/radiogroup.mjs.map → chunk-KFDS3IPB.mjs.map} +0 -0
- /package/dist/{chunk-YLBJMVIX.mjs.map → chunk-M7MG7ZQT.mjs.map} +0 -0
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
/* eslint-disable import/no-extraneous-dependencies -- storybook story */
|
|
2
|
-
|
|
2
|
+
|
|
3
3
|
import type { Meta, StoryObj } from "@storybook/react";
|
|
4
|
-
import { useRef, useState } from "react";
|
|
5
|
-
import { flushSync } from "react-dom";
|
|
6
|
-
import { StyledHtml } from "../styled-html";
|
|
7
|
-
import { AutoAnimateHeight } from "../utils/auto-animate-height";
|
|
8
4
|
import { ShowMoreButton } from ".";
|
|
9
5
|
|
|
10
6
|
const meta: Meta<typeof ShowMoreButton> = {
|
|
@@ -16,7 +12,8 @@ export default meta;
|
|
|
16
12
|
|
|
17
13
|
type Story = StoryObj<typeof ShowMoreButton>;
|
|
18
14
|
|
|
19
|
-
export const
|
|
15
|
+
export const Preview: Story = {
|
|
16
|
+
tags: ["!dev"],
|
|
20
17
|
args: {
|
|
21
18
|
text: "Vis flere",
|
|
22
19
|
onClick: () => {
|
|
@@ -25,95 +22,3 @@ export const ShowMore: Story = {
|
|
|
25
22
|
},
|
|
26
23
|
},
|
|
27
24
|
};
|
|
28
|
-
|
|
29
|
-
export const ShowMoreShowLess: Story = {
|
|
30
|
-
args: {
|
|
31
|
-
text: "Vis resten",
|
|
32
|
-
variant: "show-more-show-less",
|
|
33
|
-
expanded: false,
|
|
34
|
-
},
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
export const ShowMoreShowLessExpanded: Story = {
|
|
38
|
-
args: {
|
|
39
|
-
text: "Skjul resten",
|
|
40
|
-
variant: "show-more-show-less",
|
|
41
|
-
expanded: true,
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
export const SimpleShowMoreShowLess: Story = {
|
|
46
|
-
render: () => {
|
|
47
|
-
const [expanded, setExpanded] = useState(false);
|
|
48
|
-
const elements = Array.from({ length: expanded ? 8 : 3 }, (_, i) => (
|
|
49
|
-
<li key={i}>Hallo {Math.random()}</li>
|
|
50
|
-
));
|
|
51
|
-
return (
|
|
52
|
-
<>
|
|
53
|
-
<StyledHtml>
|
|
54
|
-
<AutoAnimateHeight animationDuration="quick">
|
|
55
|
-
<ul>{elements}</ul>
|
|
56
|
-
</AutoAnimateHeight>
|
|
57
|
-
</StyledHtml>
|
|
58
|
-
<ShowMoreButton
|
|
59
|
-
variant="show-more-show-less"
|
|
60
|
-
expanded={expanded}
|
|
61
|
-
onClick={() => {
|
|
62
|
-
setExpanded((prev) => !prev);
|
|
63
|
-
}}
|
|
64
|
-
style={{ marginTop: "var(--hds-spacing-24)" }}
|
|
65
|
-
text={expanded ? "Vis færre hendelser" : "Vis flere hendelser"}
|
|
66
|
-
/>
|
|
67
|
-
</>
|
|
68
|
-
);
|
|
69
|
-
},
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
export const CompleteShowMoreShowLess: Story = {
|
|
73
|
-
render: () => {
|
|
74
|
-
const [expanded, setExpanded] = useState(false);
|
|
75
|
-
const ref = useRef<HTMLDivElement>(null);
|
|
76
|
-
|
|
77
|
-
const elements = Array.from({ length: expanded ? 40 : 3 }, (_, i) => (
|
|
78
|
-
<li key={i}>Hallo {Math.random()}</li>
|
|
79
|
-
));
|
|
80
|
-
return (
|
|
81
|
-
<div>
|
|
82
|
-
<div
|
|
83
|
-
style={{
|
|
84
|
-
height: 1400,
|
|
85
|
-
background: "linear-gradient(to bottom, #051937, #004d7a, #008793, #00bf72, #a8eb12)",
|
|
86
|
-
}}
|
|
87
|
-
/>
|
|
88
|
-
<StyledHtml ref={ref}>
|
|
89
|
-
<AutoAnimateHeight animationDuration="normal">
|
|
90
|
-
<ul>{elements}</ul>
|
|
91
|
-
</AutoAnimateHeight>
|
|
92
|
-
</StyledHtml>
|
|
93
|
-
<ShowMoreButton
|
|
94
|
-
variant="show-more-show-less"
|
|
95
|
-
expanded={expanded}
|
|
96
|
-
onClick={() => {
|
|
97
|
-
// Using flushSync to ensure the scrollIntoView is called after the state is updated
|
|
98
|
-
flushSync(() => {
|
|
99
|
-
setExpanded((prev) => !prev);
|
|
100
|
-
});
|
|
101
|
-
if (expanded) {
|
|
102
|
-
setTimeout(() => {
|
|
103
|
-
ref.current?.scrollIntoView({ behavior: "smooth", block: "nearest" });
|
|
104
|
-
}, 300); // Wait for the animation to finish
|
|
105
|
-
}
|
|
106
|
-
}}
|
|
107
|
-
style={{ marginTop: "var(--hds-spacing-24)" }}
|
|
108
|
-
text={expanded ? "Vis færre hendelser" : "Vis flere hendelser"}
|
|
109
|
-
/>
|
|
110
|
-
<div
|
|
111
|
-
style={{
|
|
112
|
-
height: 1400,
|
|
113
|
-
background: "linear-gradient(to top, #051937, #004d7a, #008793, #00bf72, #a8eb12)",
|
|
114
|
-
}}
|
|
115
|
-
/>
|
|
116
|
-
</div>
|
|
117
|
-
);
|
|
118
|
-
},
|
|
119
|
-
};
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
/* eslint-disable react-hooks/rules-of-hooks -- storybook story */
|
|
2
1
|
/* eslint-disable import/no-extraneous-dependencies -- storybook story */
|
|
3
2
|
import type { Meta, StoryObj } from "@storybook/react";
|
|
4
|
-
import {
|
|
5
|
-
import { StyledHtml } from "../styled-html";
|
|
6
|
-
import { Card } from "../card";
|
|
7
|
-
import { CardStory } from "../card/card.stories";
|
|
8
|
-
import { Button } from "../button";
|
|
9
|
-
import { HStack, VStack } from "../layout";
|
|
3
|
+
import { VStack } from "../layout";
|
|
10
4
|
import { Skeleton } from ".";
|
|
11
5
|
|
|
12
6
|
const meta: Meta<typeof Skeleton> = {
|
|
@@ -18,7 +12,8 @@ export default meta;
|
|
|
18
12
|
|
|
19
13
|
type Story = StoryObj<typeof Skeleton>;
|
|
20
14
|
|
|
21
|
-
export const
|
|
15
|
+
export const Preview: Story = {
|
|
16
|
+
tags: ["!dev"],
|
|
22
17
|
render: () => (
|
|
23
18
|
<VStack gap="8">
|
|
24
19
|
<Skeleton variant="circle">
|
|
@@ -32,121 +27,3 @@ export const Default: Story = {
|
|
|
32
27
|
</VStack>
|
|
33
28
|
),
|
|
34
29
|
};
|
|
35
|
-
|
|
36
|
-
export const LoadingCards: Story = {
|
|
37
|
-
render: () => {
|
|
38
|
-
// @ts-expect-error -- It's ok
|
|
39
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- It really is
|
|
40
|
-
const realCard = CardStory.render!({
|
|
41
|
-
style: { width: "400px" },
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
const skeletonCard = (
|
|
45
|
-
<Card
|
|
46
|
-
aria-hidden
|
|
47
|
-
as="div"
|
|
48
|
-
style={{
|
|
49
|
-
width: "400px",
|
|
50
|
-
backgroundColor: "var(--hds-ui-colors-light-grey-fill)",
|
|
51
|
-
}}
|
|
52
|
-
>
|
|
53
|
-
<Card.Media style={{ width: "100%", background: "white" }}>
|
|
54
|
-
<Skeleton variant="rectangle" style={{ width: "100%", aspectRatio: 16 / 9 }} />
|
|
55
|
-
</Card.Media>
|
|
56
|
-
<Card.Body>
|
|
57
|
-
<Card.BodyHeader as="h2">
|
|
58
|
-
<Card.BodyHeaderOverline asChild>
|
|
59
|
-
<Skeleton>Theme</Skeleton>
|
|
60
|
-
</Card.BodyHeaderOverline>
|
|
61
|
-
<Card.BodyHeaderTitle asChild>
|
|
62
|
-
<Skeleton>Cool article</Skeleton>
|
|
63
|
-
</Card.BodyHeaderTitle>
|
|
64
|
-
</Card.BodyHeader>
|
|
65
|
-
<Card.BodyDescription>
|
|
66
|
-
<Skeleton variant="text" />
|
|
67
|
-
<Skeleton variant="text" />
|
|
68
|
-
<Skeleton variant="text" />
|
|
69
|
-
<Skeleton variant="text" />
|
|
70
|
-
<Skeleton variant="text" width="80%" />
|
|
71
|
-
</Card.BodyDescription>
|
|
72
|
-
<Card.BodyAction>
|
|
73
|
-
<Skeleton variant="rectangle" height="1em" width="1em" />
|
|
74
|
-
</Card.BodyAction>
|
|
75
|
-
</Card.Body>
|
|
76
|
-
</Card>
|
|
77
|
-
);
|
|
78
|
-
|
|
79
|
-
const [isLoading, setIsLoading] = useState(true);
|
|
80
|
-
useEffect(() => {
|
|
81
|
-
if (isLoading) {
|
|
82
|
-
setTimeout(
|
|
83
|
-
() => {
|
|
84
|
-
setIsLoading(false);
|
|
85
|
-
},
|
|
86
|
-
randomNumberBetween(2000, 5000),
|
|
87
|
-
);
|
|
88
|
-
}
|
|
89
|
-
}, [isLoading]);
|
|
90
|
-
|
|
91
|
-
const card = isLoading ? skeletonCard : realCard;
|
|
92
|
-
return (
|
|
93
|
-
<div>
|
|
94
|
-
<Button
|
|
95
|
-
size="small"
|
|
96
|
-
onClick={() => {
|
|
97
|
-
setIsLoading(true);
|
|
98
|
-
}}
|
|
99
|
-
>
|
|
100
|
-
Reload
|
|
101
|
-
</Button>
|
|
102
|
-
<p className="hds-mt-8">Only use greytones, never any red or green colors.</p>
|
|
103
|
-
<HStack className="hds-mt-16" wrap gap="24">
|
|
104
|
-
{card}
|
|
105
|
-
{card}
|
|
106
|
-
{card}
|
|
107
|
-
</HStack>
|
|
108
|
-
</div>
|
|
109
|
-
);
|
|
110
|
-
},
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
function randomNumberBetween(min: number, max: number) {
|
|
114
|
-
return Math.floor(Math.random() * (max - min + 1) + min);
|
|
115
|
-
}
|
|
116
|
-
export const Article: Story = {
|
|
117
|
-
render: () => (
|
|
118
|
-
<StyledHtml aria-hidden>
|
|
119
|
-
<Skeleton variant="text" style={{ font: "var(--hds-typography-h1-display)" }}>
|
|
120
|
-
A title is loading
|
|
121
|
-
</Skeleton>
|
|
122
|
-
<Skeleton variant="rectangle">
|
|
123
|
-
<figure style={{ height: 300, aspectRatio: 16 / 9 }} />
|
|
124
|
-
</Skeleton>
|
|
125
|
-
<Skeleton variant="text" as="h2">
|
|
126
|
-
A subtitle with some more text is loading
|
|
127
|
-
</Skeleton>
|
|
128
|
-
<p>
|
|
129
|
-
<Skeleton variant="text" width={`${randomNumberBetween(75, 90)}%`} />
|
|
130
|
-
<Skeleton variant="text" width={`${randomNumberBetween(75, 90)}%`} />
|
|
131
|
-
<Skeleton variant="text" width={`${randomNumberBetween(25, 60)}%`} />
|
|
132
|
-
<Skeleton variant="text" width={`${randomNumberBetween(45, 80)}%`} />
|
|
133
|
-
<Skeleton variant="text" width={`${randomNumberBetween(75, 90)}%`} />
|
|
134
|
-
<Skeleton variant="text" width={`${randomNumberBetween(75, 90)}%`} />
|
|
135
|
-
<Skeleton variant="text" width={`${randomNumberBetween(75, 90)}%`} />
|
|
136
|
-
</p>
|
|
137
|
-
|
|
138
|
-
<Skeleton variant="text" as="h2">
|
|
139
|
-
Another piece of text
|
|
140
|
-
</Skeleton>
|
|
141
|
-
<p>
|
|
142
|
-
<Skeleton variant="text" width={`${randomNumberBetween(75, 90)}%`} />
|
|
143
|
-
<Skeleton variant="text" width={`${randomNumberBetween(75, 90)}%`} />
|
|
144
|
-
<Skeleton variant="text" width={`${randomNumberBetween(25, 60)}%`} />
|
|
145
|
-
<Skeleton variant="text" width={`${randomNumberBetween(45, 80)}%`} />
|
|
146
|
-
<Skeleton variant="text" width={`${randomNumberBetween(75, 90)}%`} />
|
|
147
|
-
<Skeleton variant="text" width={`${randomNumberBetween(75, 90)}%`} />
|
|
148
|
-
<Skeleton variant="text" width={`${randomNumberBetween(75, 90)}%`} />
|
|
149
|
-
</p>
|
|
150
|
-
</StyledHtml>
|
|
151
|
-
),
|
|
152
|
-
};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/* eslint-disable import/no-extraneous-dependencies -- storybook story */
|
|
2
2
|
import type { Meta, StoryObj } from "@storybook/react";
|
|
3
|
-
import { Badge } from "../badge";
|
|
4
3
|
import { StepIndicator } from ".";
|
|
5
4
|
|
|
6
5
|
const meta: Meta<typeof StepIndicator> = {
|
|
@@ -12,39 +11,11 @@ export default meta;
|
|
|
12
11
|
|
|
13
12
|
type Story = StoryObj<typeof StepIndicator>;
|
|
14
13
|
|
|
15
|
-
export const
|
|
14
|
+
export const Preview: Story = {
|
|
15
|
+
tags: ["!dev"],
|
|
16
16
|
args: {
|
|
17
17
|
label: "Progress name",
|
|
18
18
|
totalSteps: 5,
|
|
19
19
|
activeStep: 2,
|
|
20
20
|
},
|
|
21
21
|
};
|
|
22
|
-
|
|
23
|
-
export const Title: Story = {
|
|
24
|
-
args: {
|
|
25
|
-
activeStep: 2,
|
|
26
|
-
label: "Pakke til utlandet",
|
|
27
|
-
lang: "no",
|
|
28
|
-
totalSteps: 5,
|
|
29
|
-
title: "Hvem sender pakken?",
|
|
30
|
-
titleAs: "h2",
|
|
31
|
-
},
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
export const WithBadgeInLabel: Story = {
|
|
35
|
-
args: {
|
|
36
|
-
activeStep: 2,
|
|
37
|
-
label: (
|
|
38
|
-
<>
|
|
39
|
-
Norgespakke™ liten
|
|
40
|
-
<Badge size="smaller" style={{ marginLeft: "var(--hds-spacing-12)" }}>
|
|
41
|
-
73,-
|
|
42
|
-
</Badge>
|
|
43
|
-
</>
|
|
44
|
-
),
|
|
45
|
-
lang: "no",
|
|
46
|
-
totalSteps: 5,
|
|
47
|
-
title: "Størrelse og vekt",
|
|
48
|
-
titleAs: "h2",
|
|
49
|
-
},
|
|
50
|
-
};
|
|
@@ -5,28 +5,7 @@ import { StyledHtml } from ".";
|
|
|
5
5
|
const meta: Meta<typeof StyledHtml> = {
|
|
6
6
|
title: "Styled Html",
|
|
7
7
|
component: StyledHtml,
|
|
8
|
-
args: {
|
|
9
|
-
children: (
|
|
10
|
-
<>
|
|
11
|
-
<h1>Hello</h1>
|
|
12
|
-
<h2>Hello</h2>
|
|
13
|
-
|
|
14
|
-
<a href="https://www.postenbring.no">Postenbring</a>
|
|
15
|
-
|
|
16
|
-
<ul>
|
|
17
|
-
<li>Hei</li>
|
|
18
|
-
<li>Hallo</li>
|
|
19
|
-
<li>Hello</li>
|
|
20
|
-
</ul>
|
|
21
8
|
|
|
22
|
-
<ol>
|
|
23
|
-
<li>En</li>
|
|
24
|
-
<li>To</li>
|
|
25
|
-
<li>Tre</li>
|
|
26
|
-
</ol>
|
|
27
|
-
</>
|
|
28
|
-
),
|
|
29
|
-
},
|
|
30
9
|
argTypes: {
|
|
31
10
|
size: {
|
|
32
11
|
defaultValue: "default",
|
|
@@ -48,142 +27,30 @@ const meta: Meta<typeof StyledHtml> = {
|
|
|
48
27
|
export default meta;
|
|
49
28
|
|
|
50
29
|
type Story = StoryObj<typeof StyledHtml>;
|
|
51
|
-
export const
|
|
52
|
-
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
export const Darkmode: Story = {
|
|
56
|
-
args: {
|
|
57
|
-
darkmode: true,
|
|
58
|
-
},
|
|
59
|
-
parameters: {
|
|
60
|
-
backgrounds: { default: "dark" },
|
|
61
|
-
},
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
export const Small: Story = {
|
|
65
|
-
args: {
|
|
66
|
-
size: "small",
|
|
67
|
-
},
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
export const DarkmodeSmall: Story = {
|
|
30
|
+
export const Preview: Story = {
|
|
31
|
+
tags: ["!dev"],
|
|
71
32
|
args: {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
backgrounds: { default: "dark" },
|
|
77
|
-
},
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
export const ArticleContent: Story = {
|
|
81
|
-
render: () => (
|
|
82
|
-
<StyledHtml>
|
|
83
|
-
<p>
|
|
84
|
-
Pakkeboksene er selvbetjente, og er plassert slik at de er mulig å bruke hele døgnet. Du
|
|
85
|
-
trenger bare mobilen din og Posten-appen for å åpne lukene.
|
|
86
|
-
</p>
|
|
87
|
-
|
|
88
|
-
<p>
|
|
89
|
-
Akkurat nå er det satt ut pakkebokser over 1800 steder i landet, og fremover vil det komme
|
|
90
|
-
enda flere.
|
|
91
|
-
</p>
|
|
92
|
-
|
|
93
|
-
<p>
|
|
94
|
-
<a href="/motta/fleksibelt/pakkeboks" title="Les mer og finn Pakkeboks">
|
|
95
|
-
Her kan du finne din nærmeste Pakkeboks
|
|
96
|
-
</a>
|
|
97
|
-
</p>
|
|
98
|
-
|
|
99
|
-
<h1 className="hds-text-h3">Slik bruker du Pakkeboks:</h1>
|
|
100
|
-
|
|
101
|
-
<p>
|
|
102
|
-
For å bruke pakkeboksene må du
|
|
103
|
-
<a href="/posten-app" target="_blank" title="Last ned Posten-appen">
|
|
104
|
-
laste ned Posten-appen
|
|
105
|
-
</a>
|
|
106
|
-
på mobilen din. Med appen kan du:
|
|
107
|
-
</p>
|
|
108
|
-
|
|
109
|
-
<ul>
|
|
110
|
-
<li>Åpne luke for å hente pakke</li>
|
|
111
|
-
<li>Reservere og åpne luke når du skal sende pakke</li>
|
|
112
|
-
<li>Velge om du vil ha pakker kun levert i de midterste lukene</li>
|
|
113
|
-
<li>Dele pakkene dine med andre, slik at de kan hente eller sende dem for deg</li>
|
|
114
|
-
</ul>
|
|
115
|
-
|
|
116
|
-
<h2>Hente pakker</h2>
|
|
117
|
-
|
|
118
|
-
<p>
|
|
119
|
-
Du får varsel i Posten-appen når du har en pakke som skal hentes i Pakkeboks. Slik gjør du:
|
|
120
|
-
</p>
|
|
121
|
-
|
|
122
|
-
<ul>
|
|
123
|
-
<li>Stå ved pakkeboksen og åpne appen. Husk å ha på Bluetooth</li>
|
|
124
|
-
<li>Appen kobler til riktig boks, og viser hvilken luke pakken din er i</li>
|
|
125
|
-
<li>Trykk på Åpne luke, og ta ut pakken din.</li>
|
|
126
|
-
<li>Steng luken og lukk appen</li>
|
|
127
|
-
</ul>
|
|
128
|
-
|
|
129
|
-
<h2>Velge høyde på luke</h2>
|
|
130
|
-
|
|
131
|
-
<p>Slik velger du at du vil ha pakkene kun i midterste luker:</p>
|
|
132
|
-
|
|
133
|
-
<ul>
|
|
134
|
-
<li>Du må ha nyeste versjon av Posten-appen</li>
|
|
135
|
-
<li>Åpne appen, og trykk på «Profil»</li>
|
|
136
|
-
<li>Velg «Levering i Pakkeboks», deretter «Luker på midten»</li>
|
|
137
|
-
<li>Lagre valget ditt</li>
|
|
138
|
-
</ul>
|
|
139
|
-
|
|
140
|
-
<h2>Sende fra Pakkeboks</h2>
|
|
141
|
-
|
|
142
|
-
<p>
|
|
143
|
-
Nå kan du bruke Posten-appen for å reservere luker i pakkeboksen når du skal sende{" "}
|
|
144
|
-
<a
|
|
145
|
-
href="/sende/i-norge/norgespakke/norgespakke-0-5-kg"
|
|
146
|
-
target="_blank"
|
|
147
|
-
title="Les mer om Norgespakke™ liten"
|
|
148
|
-
>
|
|
149
|
-
Norgespakke™ liten
|
|
150
|
-
</a>
|
|
151
|
-
.
|
|
152
|
-
</p>
|
|
153
|
-
|
|
154
|
-
<p>Slik reserverer du luke for å sende pakke:</p>
|
|
155
|
-
|
|
156
|
-
<ul>
|
|
157
|
-
<li>
|
|
158
|
-
Du må ha Posten-appen for å bestille sending og holde av en luke i pakkeboksen
|
|
159
|
-
</li>
|
|
160
|
-
<li>Velg Norgespakke™ liten, og følg stegene for kjøp av frakt</li>
|
|
161
|
-
<li>Velg innlevering på Posten, og fullfør kjøpet</li>
|
|
162
|
-
<li>
|
|
163
|
-
Du trenger ikke reservere luke rett etter kjøp, dette kan du gjøre innenfor 2 timer før du
|
|
164
|
-
skal sende pakken
|
|
165
|
-
</li>
|
|
166
|
-
<li>Pakken din blir hentet senest neste virkedag</li>
|
|
167
|
-
</ul>
|
|
168
|
-
|
|
169
|
-
<h2>Returnere fra Pakkeboks</h2>
|
|
33
|
+
children: (
|
|
34
|
+
<>
|
|
35
|
+
<h1>Heading</h1>
|
|
36
|
+
<h2>Subheading</h2>
|
|
170
37
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
reservere en luke.
|
|
175
|
-
</li>
|
|
176
|
-
<li>Velg retur i appen og følg stegene videre</li>
|
|
177
|
-
<li>Fest adresselappen for retur midt på pakken med strekkoden godt synlig</li>
|
|
178
|
-
<li>Luken holdes av i to timer fra du reserverer den.</li>
|
|
179
|
-
<li>Du kan reservere en luke når som helst</li>
|
|
180
|
-
</ul>
|
|
38
|
+
<p>
|
|
39
|
+
God dag, her er en lenke til <a href="https://www.postenbring.no">Postenbring</a>
|
|
40
|
+
</p>
|
|
181
41
|
|
|
182
|
-
|
|
42
|
+
<ul>
|
|
43
|
+
<li>Hei</li>
|
|
44
|
+
<li>Hallo</li>
|
|
45
|
+
<li>Hello</li>
|
|
46
|
+
</ul>
|
|
183
47
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
48
|
+
<ol>
|
|
49
|
+
<li>En</li>
|
|
50
|
+
<li>To</li>
|
|
51
|
+
<li>Tre</li>
|
|
52
|
+
</ol>
|
|
53
|
+
</>
|
|
54
|
+
),
|
|
55
|
+
},
|
|
189
56
|
};
|
|
@@ -4,8 +4,18 @@ import { Slot } from "@radix-ui/react-slot";
|
|
|
4
4
|
|
|
5
5
|
export interface StyledHtmlProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
6
6
|
children?: React.ReactNode;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Size of content inside. Setting this to `small` makes the font size be `body-small`.
|
|
10
|
+
*
|
|
11
|
+
* @default "default"
|
|
12
|
+
*/
|
|
7
13
|
size?: "default" | "small";
|
|
8
|
-
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* 🚧 Work in progress darkmode support
|
|
17
|
+
*/
|
|
18
|
+
unstable_darkmode?: boolean;
|
|
9
19
|
|
|
10
20
|
/**
|
|
11
21
|
* Change the default rendered element for the one passed as a child, merging their props and behavior.
|
|
@@ -38,7 +48,7 @@ export interface StyledHtmlProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
38
48
|
* ```
|
|
39
49
|
*/
|
|
40
50
|
export const StyledHtml = forwardRef<HTMLDivElement, StyledHtmlProps>(
|
|
41
|
-
({ asChild, children, size, darkmode = false, className, ...rest }, ref) => {
|
|
51
|
+
({ asChild, children, size, unstable_darkmode: darkmode = false, className, ...rest }, ref) => {
|
|
42
52
|
const Component = asChild ? Slot : "div";
|
|
43
53
|
return (
|
|
44
54
|
<Component
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/* eslint-disable import/no-extraneous-dependencies -- storybook story */
|
|
2
|
+
import type { Meta, StoryObj } from "@storybook/react";
|
|
3
|
+
import { Table } from ".";
|
|
4
|
+
|
|
5
|
+
type Story = StoryObj<typeof Table>;
|
|
6
|
+
|
|
7
|
+
const meta: Meta<typeof Table> = {
|
|
8
|
+
title: "Table",
|
|
9
|
+
component: Table,
|
|
10
|
+
};
|
|
11
|
+
export default meta;
|
|
12
|
+
|
|
13
|
+
export const Preview: Story = {
|
|
14
|
+
tags: ["!dev"],
|
|
15
|
+
args: {
|
|
16
|
+
caption: "Default table",
|
|
17
|
+
description: "A short explanation of what this table contains, If you need it.",
|
|
18
|
+
|
|
19
|
+
children: (
|
|
20
|
+
<>
|
|
21
|
+
<thead>
|
|
22
|
+
<tr>
|
|
23
|
+
<th>Header 1</th>
|
|
24
|
+
<th>Header 2</th>
|
|
25
|
+
<th>Header 3</th>
|
|
26
|
+
</tr>
|
|
27
|
+
</thead>
|
|
28
|
+
<tbody>
|
|
29
|
+
<tr>
|
|
30
|
+
<td>Row 1, Cell 1</td>
|
|
31
|
+
<td>Row 1, Cell 2</td>
|
|
32
|
+
<td>Row 1, Cell 3</td>
|
|
33
|
+
</tr>
|
|
34
|
+
<tr>
|
|
35
|
+
<td>Row 2, Cell 1</td>
|
|
36
|
+
<td>Row 2, Cell 2</td>
|
|
37
|
+
<td>Row 2, Cell 3</td>
|
|
38
|
+
</tr>
|
|
39
|
+
</tbody>
|
|
40
|
+
</>
|
|
41
|
+
),
|
|
42
|
+
},
|
|
43
|
+
};
|