@mattilsynet/design 3.2.9 → 3.3.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.
- package/mtds/ai/AGENTS.md +892 -0
- package/mtds/ai/alert.mdx +63 -0
- package/mtds/ai/alert.stories.tsx +128 -0
- package/mtds/ai/analytics.mdx +185 -0
- package/mtds/ai/app.mdx +60 -0
- package/mtds/ai/app.stories.tsx +897 -0
- package/mtds/ai/atlas.mdx +82 -0
- package/mtds/ai/atlas.stories.tsx +424 -0
- package/mtds/ai/avatar.mdx +45 -0
- package/mtds/ai/avatar.stories.tsx +109 -0
- package/mtds/ai/badge.mdx +70 -0
- package/mtds/ai/badge.stories.tsx +122 -0
- package/mtds/ai/breadcrumbs.mdx +36 -0
- package/mtds/ai/breadcrumbs.stories.tsx +158 -0
- package/mtds/ai/button.mdx +179 -0
- package/mtds/ai/button.stories.tsx +440 -0
- package/mtds/ai/card.mdx +51 -0
- package/mtds/ai/card.stories.tsx +469 -0
- package/mtds/ai/chart.mdx +67 -0
- package/mtds/ai/chart.stories.tsx +519 -0
- package/mtds/ai/chip.mdx +71 -0
- package/mtds/ai/chip.stories.tsx +211 -0
- package/mtds/ai/details.mdx +33 -0
- package/mtds/ai/details.stories.tsx +91 -0
- package/mtds/ai/dialog.mdx +38 -0
- package/mtds/ai/dialog.stories.tsx +373 -0
- package/mtds/ai/divider.mdx +19 -0
- package/mtds/ai/divider.stories.tsx +50 -0
- package/mtds/ai/errorsummary.mdx +26 -0
- package/mtds/ai/errorsummary.stories.tsx +137 -0
- package/mtds/ai/field.mdx +86 -0
- package/mtds/ai/field.stories.tsx +863 -0
- package/mtds/ai/fieldset.mdx +126 -0
- package/mtds/ai/fieldset.stories.tsx +298 -0
- package/mtds/ai/fileupload.mdx +16 -0
- package/mtds/ai/fileupload.stories.tsx +126 -0
- package/mtds/ai/helptext.mdx +24 -0
- package/mtds/ai/helptext.stories.tsx +106 -0
- package/mtds/ai/input.mdx +223 -0
- package/mtds/ai/input.stories.tsx +352 -0
- package/mtds/ai/law.mdx +115 -0
- package/mtds/ai/law.stories.tsx +168 -0
- package/mtds/ai/layout.mdx +145 -0
- package/mtds/ai/layout.stories.tsx +443 -0
- package/mtds/ai/link.mdx +45 -0
- package/mtds/ai/link.stories.tsx +44 -0
- package/mtds/ai/logo.mdx +86 -0
- package/mtds/ai/logo.stories.tsx +146 -0
- package/mtds/ai/pagination.mdx +136 -0
- package/mtds/ai/pagination.stories.tsx +404 -0
- package/mtds/ai/popover.mdx +86 -0
- package/mtds/ai/popover.stories.tsx +355 -0
- package/mtds/ai/print.mdx +96 -0
- package/mtds/ai/print.stories.tsx +839 -0
- package/mtds/ai/progress.mdx +41 -0
- package/mtds/ai/progress.stories.tsx +141 -0
- package/mtds/ai/skeleton.mdx +26 -0
- package/mtds/ai/skeleton.stories.tsx +131 -0
- package/mtds/ai/spinner.mdx +26 -0
- package/mtds/ai/spinner.stories.tsx +72 -0
- package/mtds/ai/steps.mdx +37 -0
- package/mtds/ai/steps.stories.tsx +568 -0
- package/mtds/ai/table.mdx +124 -0
- package/mtds/ai/table.stories.tsx +1715 -0
- package/mtds/ai/tabs.mdx +106 -0
- package/mtds/ai/tabs.stories.tsx +159 -0
- package/mtds/ai/tag.mdx +49 -0
- package/mtds/ai/tag.stories.tsx +111 -0
- package/mtds/ai/toast.mdx +67 -0
- package/mtds/ai/toast.stories.tsx +215 -0
- package/mtds/ai/togglegroup.mdx +75 -0
- package/mtds/ai/togglegroup.stories.tsx +96 -0
- package/mtds/ai/tooltip.mdx +32 -0
- package/mtds/ai/tooltip.stories.tsx +34 -0
- package/mtds/ai/typography.mdx +67 -0
- package/mtds/ai/typography.stories.tsx +798 -0
- package/mtds/ai/validation.mdx +19 -0
- package/mtds/ai/validation.stories.tsx +45 -0
- package/mtds/atlas/atlas-element.js +1 -1
- package/mtds/chart/chart-lines.js +19 -19
- package/mtds/chart/chart-lines.js.map +1 -1
- package/mtds/chart/chart.css.js +16 -1
- package/mtds/chart/chart.css.js.map +1 -1
- package/mtds/chart/chart.stories.d.ts +1 -0
- package/mtds/index.iife.js +32 -17
- package/mtds/package.json.js +1 -1
- package/mtds/styles.css +1 -1
- package/mtds/table/table-observer.js +26 -15
- package/mtds/table/table-observer.js.map +1 -1
- package/package.json +4 -2
|
@@ -0,0 +1,568 @@
|
|
|
1
|
+
import { FilePlusIcon, HandshakeIcon, HeartIcon } from "@phosphor-icons/react";
|
|
2
|
+
import type { Meta, StoryObj } from "@storybook/react-vite";
|
|
3
|
+
import { Flex, Grid, Steps } from "../react";
|
|
4
|
+
import styles from "../styles.module.css";
|
|
5
|
+
|
|
6
|
+
const meta = {
|
|
7
|
+
title: "Designsystem/Steps",
|
|
8
|
+
parameters: {
|
|
9
|
+
layout: "padded",
|
|
10
|
+
},
|
|
11
|
+
decorators: [
|
|
12
|
+
(Story) => (
|
|
13
|
+
<Grid data-gap="14">
|
|
14
|
+
<Story />
|
|
15
|
+
</Grid>
|
|
16
|
+
),
|
|
17
|
+
],
|
|
18
|
+
} satisfies Meta;
|
|
19
|
+
|
|
20
|
+
export default meta;
|
|
21
|
+
type Story = StoryObj<typeof meta>;
|
|
22
|
+
|
|
23
|
+
export const Default: Story = {
|
|
24
|
+
render: () => (
|
|
25
|
+
<ol className={styles.steps}>
|
|
26
|
+
<li>
|
|
27
|
+
<mark>
|
|
28
|
+
<HeartIcon />
|
|
29
|
+
</mark>
|
|
30
|
+
<strong>Steg 1</strong>
|
|
31
|
+
<br />
|
|
32
|
+
<small>Beskrivelse</small>
|
|
33
|
+
</li>
|
|
34
|
+
<li>
|
|
35
|
+
<mark />
|
|
36
|
+
<strong>Steg 2</strong>
|
|
37
|
+
<br />
|
|
38
|
+
<small>Donec et odio</small>
|
|
39
|
+
</li>
|
|
40
|
+
<li aria-current="step" data-color="danger">
|
|
41
|
+
<mark />
|
|
42
|
+
<strong>Steg 3</strong>
|
|
43
|
+
</li>
|
|
44
|
+
<li>
|
|
45
|
+
<mark />
|
|
46
|
+
<strong>Steg 4</strong>
|
|
47
|
+
</li>
|
|
48
|
+
<li>
|
|
49
|
+
<mark />
|
|
50
|
+
<strong>Steg 5</strong>
|
|
51
|
+
</li>
|
|
52
|
+
</ol>
|
|
53
|
+
),
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
export const React: Story = {
|
|
57
|
+
render: () => (
|
|
58
|
+
<Steps>
|
|
59
|
+
<li>
|
|
60
|
+
<mark />
|
|
61
|
+
<strong>Steg 1</strong>
|
|
62
|
+
</li>
|
|
63
|
+
<li>
|
|
64
|
+
<mark />
|
|
65
|
+
<strong>Steg 2</strong>
|
|
66
|
+
</li>
|
|
67
|
+
<li aria-current="step">
|
|
68
|
+
<mark />
|
|
69
|
+
<strong>Steg 3</strong>
|
|
70
|
+
</li>
|
|
71
|
+
<li>
|
|
72
|
+
<mark />
|
|
73
|
+
<strong>Steg 4</strong>
|
|
74
|
+
</li>
|
|
75
|
+
</Steps>
|
|
76
|
+
),
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
export const WithStateComplete: Story = {
|
|
80
|
+
render: () => (
|
|
81
|
+
<ol className={styles.steps} data-state="complete">
|
|
82
|
+
<li>
|
|
83
|
+
<mark />
|
|
84
|
+
<strong>Steg 1</strong>
|
|
85
|
+
<br />
|
|
86
|
+
<small>Beskrivelse</small>
|
|
87
|
+
</li>
|
|
88
|
+
<li>
|
|
89
|
+
<mark />
|
|
90
|
+
<strong>Steg 2</strong>
|
|
91
|
+
<br />
|
|
92
|
+
<small>Donec et odio</small>
|
|
93
|
+
</li>
|
|
94
|
+
<li>
|
|
95
|
+
<mark />
|
|
96
|
+
<strong>Steg 3</strong>
|
|
97
|
+
</li>
|
|
98
|
+
<li>
|
|
99
|
+
<mark />
|
|
100
|
+
<strong>Steg 4</strong>
|
|
101
|
+
</li>
|
|
102
|
+
<li>
|
|
103
|
+
<mark />
|
|
104
|
+
<strong>Steg 5</strong>
|
|
105
|
+
</li>
|
|
106
|
+
</ol>
|
|
107
|
+
),
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
export const WithDirection: Story = {
|
|
111
|
+
render: () => (
|
|
112
|
+
<Flex data-items="500" data-gap="14">
|
|
113
|
+
<Grid style={{ flexBasis: "100%" }}>
|
|
114
|
+
<strong>
|
|
115
|
+
With <code>data-direction="right"</code>:
|
|
116
|
+
</strong>
|
|
117
|
+
<ol className={styles.steps} data-direction="right">
|
|
118
|
+
<li>
|
|
119
|
+
<mark>
|
|
120
|
+
<HeartIcon />
|
|
121
|
+
</mark>
|
|
122
|
+
<strong>Steg 1</strong> Beskrivelse
|
|
123
|
+
</li>
|
|
124
|
+
<li data-color="danger">
|
|
125
|
+
<mark />
|
|
126
|
+
<strong>Steg 2</strong>
|
|
127
|
+
</li>
|
|
128
|
+
<li aria-current="step">
|
|
129
|
+
<mark />
|
|
130
|
+
<strong>Steg 3</strong>
|
|
131
|
+
</li>
|
|
132
|
+
<li>
|
|
133
|
+
<mark />
|
|
134
|
+
<strong>Steg 4</strong>
|
|
135
|
+
</li>
|
|
136
|
+
<li>
|
|
137
|
+
<mark />
|
|
138
|
+
<strong>Steg 5</strong>
|
|
139
|
+
</li>
|
|
140
|
+
</ol>
|
|
141
|
+
</Grid>
|
|
142
|
+
<Grid>
|
|
143
|
+
<strong>
|
|
144
|
+
With <code>data-direction="down"</code>:
|
|
145
|
+
</strong>
|
|
146
|
+
<ol className={styles.steps} data-direction="down">
|
|
147
|
+
<li>
|
|
148
|
+
<mark>
|
|
149
|
+
<HeartIcon />
|
|
150
|
+
</mark>
|
|
151
|
+
<strong>Steg 1</strong> Beskrivelse
|
|
152
|
+
</li>
|
|
153
|
+
<li data-color="danger">
|
|
154
|
+
<mark />
|
|
155
|
+
<strong>Steg 2</strong>
|
|
156
|
+
<br />
|
|
157
|
+
Donec sagittis et odio in consequat. Nullam rutrum erat in euismod
|
|
158
|
+
scelerisque. Nullam imperdiet lorem mauris, ut dapibus sem efficitur
|
|
159
|
+
a. Proin nec vulputate erat. Proin venenatis aliquam justo at
|
|
160
|
+
venenatis. Proin pharetra turpis sem, et consectetur nunc fringilla
|
|
161
|
+
vitae. Morbi molestie eleifend libero, et posuere magna semper non.
|
|
162
|
+
Nullam dictum massa non nibh sagittis vestibulum.
|
|
163
|
+
</li>
|
|
164
|
+
<li aria-current="step">
|
|
165
|
+
<mark />
|
|
166
|
+
<strong>Steg 3</strong>
|
|
167
|
+
</li>
|
|
168
|
+
<li>
|
|
169
|
+
<mark />
|
|
170
|
+
<strong>Steg 4</strong>
|
|
171
|
+
</li>
|
|
172
|
+
<li>
|
|
173
|
+
<mark />
|
|
174
|
+
<strong>Steg 5</strong>
|
|
175
|
+
</li>
|
|
176
|
+
</ol>
|
|
177
|
+
</Grid>
|
|
178
|
+
<Grid>
|
|
179
|
+
<strong>
|
|
180
|
+
With <code>data-direction="up"</code>:
|
|
181
|
+
</strong>
|
|
182
|
+
<ol className={styles.steps} data-direction="up">
|
|
183
|
+
<li>
|
|
184
|
+
<mark>
|
|
185
|
+
<HeartIcon />
|
|
186
|
+
</mark>
|
|
187
|
+
<strong>Steg 5</strong> Beskrivelse
|
|
188
|
+
</li>
|
|
189
|
+
<li>
|
|
190
|
+
<mark />
|
|
191
|
+
<strong>Steg 4</strong>
|
|
192
|
+
<br />
|
|
193
|
+
Donec sagittis et odio in consequat. Nullam rutrum erat in euismod
|
|
194
|
+
scelerisque. Nullam imperdiet lorem mauris, ut dapibus sem efficitur
|
|
195
|
+
a. Proin nec vulputate erat. Proin venenatis aliquam justo at
|
|
196
|
+
venenatis. Proin pharetra turpis sem, et consectetur nunc fringilla
|
|
197
|
+
vitae. Morbi molestie eleifend libero, et posuere magna semper non.
|
|
198
|
+
Nullam dictum massa non nibh sagittis vestibulum.
|
|
199
|
+
</li>
|
|
200
|
+
<li aria-current="step">
|
|
201
|
+
<mark />
|
|
202
|
+
<strong>Steg 3</strong>
|
|
203
|
+
</li>
|
|
204
|
+
<li>
|
|
205
|
+
<mark />
|
|
206
|
+
<strong>Steg 2</strong>
|
|
207
|
+
</li>
|
|
208
|
+
<li>
|
|
209
|
+
<mark />
|
|
210
|
+
<strong>Steg 1</strong>
|
|
211
|
+
</li>
|
|
212
|
+
</ol>
|
|
213
|
+
</Grid>
|
|
214
|
+
</Flex>
|
|
215
|
+
),
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
export const WithFade: Story = {
|
|
219
|
+
render: () => (
|
|
220
|
+
<>
|
|
221
|
+
<strong>
|
|
222
|
+
No <code>data-fade</code>:
|
|
223
|
+
</strong>
|
|
224
|
+
<ol className={styles.steps}>
|
|
225
|
+
<li>
|
|
226
|
+
<mark />
|
|
227
|
+
<strong>Steg 1</strong>
|
|
228
|
+
</li>
|
|
229
|
+
<li aria-current="step">
|
|
230
|
+
<mark />
|
|
231
|
+
<strong>Steg 2</strong>
|
|
232
|
+
</li>
|
|
233
|
+
<li>
|
|
234
|
+
<mark />
|
|
235
|
+
<strong>Steg 3</strong>
|
|
236
|
+
</li>
|
|
237
|
+
</ol>
|
|
238
|
+
<strong>
|
|
239
|
+
With <code>data-fade</code>:
|
|
240
|
+
</strong>
|
|
241
|
+
<ol className={styles.steps} data-fade>
|
|
242
|
+
<li>
|
|
243
|
+
<mark />
|
|
244
|
+
<strong>Steg 1</strong>
|
|
245
|
+
</li>
|
|
246
|
+
<li aria-current="step">
|
|
247
|
+
<mark />
|
|
248
|
+
<strong>Steg 2</strong>
|
|
249
|
+
</li>
|
|
250
|
+
<li>
|
|
251
|
+
<mark />
|
|
252
|
+
<strong>Steg 3</strong>
|
|
253
|
+
</li>
|
|
254
|
+
</ol>
|
|
255
|
+
<strong>
|
|
256
|
+
With <code>data-fade="start"</code>:
|
|
257
|
+
</strong>
|
|
258
|
+
<ol className={styles.steps} data-fade="start">
|
|
259
|
+
<li>
|
|
260
|
+
<mark />
|
|
261
|
+
<strong>Steg 1</strong>
|
|
262
|
+
</li>
|
|
263
|
+
<li aria-current="step">
|
|
264
|
+
<mark />
|
|
265
|
+
<strong>Steg 2</strong>
|
|
266
|
+
</li>
|
|
267
|
+
<li>
|
|
268
|
+
<mark />
|
|
269
|
+
<strong>Steg 3</strong>
|
|
270
|
+
</li>
|
|
271
|
+
</ol>
|
|
272
|
+
<strong>
|
|
273
|
+
With <code>data-fade="end"</code>:
|
|
274
|
+
</strong>
|
|
275
|
+
<ol className={styles.steps} data-fade="end">
|
|
276
|
+
<li>
|
|
277
|
+
<mark />
|
|
278
|
+
<strong>Steg 1</strong>
|
|
279
|
+
</li>
|
|
280
|
+
<li aria-current="step">
|
|
281
|
+
<mark />
|
|
282
|
+
<strong>Steg 2</strong>
|
|
283
|
+
</li>
|
|
284
|
+
<li>
|
|
285
|
+
<mark />
|
|
286
|
+
<strong>Steg 3</strong>
|
|
287
|
+
</li>
|
|
288
|
+
</ol>
|
|
289
|
+
</>
|
|
290
|
+
),
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
export const WithFadeAndDirection: Story = {
|
|
294
|
+
render: () => (
|
|
295
|
+
<Flex data-items="500" data-gap="14">
|
|
296
|
+
<Grid data-gap="14">
|
|
297
|
+
<strong>
|
|
298
|
+
With <code>data-direction="down"</code> and <code>data-fade</code>:
|
|
299
|
+
</strong>
|
|
300
|
+
<ol className={styles.steps} data-fade data-direction="down">
|
|
301
|
+
<li>
|
|
302
|
+
<mark />
|
|
303
|
+
<strong>Steg 1</strong>
|
|
304
|
+
</li>
|
|
305
|
+
<li aria-current="step">
|
|
306
|
+
<mark />
|
|
307
|
+
<strong>Steg 2</strong>
|
|
308
|
+
</li>
|
|
309
|
+
<li>
|
|
310
|
+
<mark />
|
|
311
|
+
<strong>Steg 3</strong>
|
|
312
|
+
</li>
|
|
313
|
+
</ol>
|
|
314
|
+
<strong>
|
|
315
|
+
With <code>data-direction="down"</code> and{" "}
|
|
316
|
+
<code>data-fade="start"</code>:
|
|
317
|
+
</strong>
|
|
318
|
+
<ol className={styles.steps} data-fade="start" data-direction="down">
|
|
319
|
+
<li>
|
|
320
|
+
<mark />
|
|
321
|
+
<strong>Steg 1</strong>
|
|
322
|
+
</li>
|
|
323
|
+
<li aria-current="step">
|
|
324
|
+
<mark />
|
|
325
|
+
<strong>Steg 2</strong>
|
|
326
|
+
</li>
|
|
327
|
+
<li>
|
|
328
|
+
<mark />
|
|
329
|
+
<strong>Steg 3</strong>
|
|
330
|
+
</li>
|
|
331
|
+
</ol>
|
|
332
|
+
<strong>
|
|
333
|
+
With <code>data-direction="down"</code> and{" "}
|
|
334
|
+
<code>data-fade="end"</code>:
|
|
335
|
+
</strong>
|
|
336
|
+
<ol className={styles.steps} data-fade="end" data-direction="down">
|
|
337
|
+
<li>
|
|
338
|
+
<mark />
|
|
339
|
+
<strong>Steg 1</strong>
|
|
340
|
+
</li>
|
|
341
|
+
<li aria-current="step">
|
|
342
|
+
<mark />
|
|
343
|
+
<strong>Steg 2</strong>
|
|
344
|
+
</li>
|
|
345
|
+
<li>
|
|
346
|
+
<mark />
|
|
347
|
+
<strong>Steg 3</strong>
|
|
348
|
+
</li>
|
|
349
|
+
</ol>
|
|
350
|
+
</Grid>
|
|
351
|
+
<Grid data-gap="14">
|
|
352
|
+
<strong>
|
|
353
|
+
With <code>data-direction="up"</code> and <code>data-fade</code>:
|
|
354
|
+
</strong>
|
|
355
|
+
<ol className={styles.steps} data-fade data-direction="up">
|
|
356
|
+
<li>
|
|
357
|
+
<mark />
|
|
358
|
+
<strong>Steg 3</strong>
|
|
359
|
+
</li>
|
|
360
|
+
<li aria-current="step">
|
|
361
|
+
<mark />
|
|
362
|
+
<strong>Steg 2</strong>
|
|
363
|
+
</li>
|
|
364
|
+
<li>
|
|
365
|
+
<mark />
|
|
366
|
+
<strong>Steg 1</strong>
|
|
367
|
+
</li>
|
|
368
|
+
</ol>
|
|
369
|
+
<strong>
|
|
370
|
+
With <code>data-direction="up"</code> and{" "}
|
|
371
|
+
<code>data-fade="start"</code>:
|
|
372
|
+
</strong>
|
|
373
|
+
<ol className={styles.steps} data-fade="start" data-direction="up">
|
|
374
|
+
<li>
|
|
375
|
+
<mark />
|
|
376
|
+
<strong>Steg 3</strong>
|
|
377
|
+
</li>
|
|
378
|
+
<li aria-current="step">
|
|
379
|
+
<mark />
|
|
380
|
+
<strong>Steg 2</strong>
|
|
381
|
+
</li>
|
|
382
|
+
<li>
|
|
383
|
+
<mark />
|
|
384
|
+
<strong>Steg 1</strong>
|
|
385
|
+
</li>
|
|
386
|
+
</ol>
|
|
387
|
+
<strong>
|
|
388
|
+
With <code>data-direction="up"</code> and <code>data-fade="end"</code>
|
|
389
|
+
:
|
|
390
|
+
</strong>
|
|
391
|
+
<ol className={styles.steps} data-fade="end" data-direction="up">
|
|
392
|
+
<li>
|
|
393
|
+
<mark />
|
|
394
|
+
<strong>Steg 3</strong>
|
|
395
|
+
</li>
|
|
396
|
+
<li aria-current="step">
|
|
397
|
+
<mark />
|
|
398
|
+
<strong>Steg 2</strong>
|
|
399
|
+
</li>
|
|
400
|
+
<li>
|
|
401
|
+
<mark />
|
|
402
|
+
<strong>Steg 1</strong>
|
|
403
|
+
</li>
|
|
404
|
+
</ol>
|
|
405
|
+
</Grid>
|
|
406
|
+
</Flex>
|
|
407
|
+
),
|
|
408
|
+
};
|
|
409
|
+
|
|
410
|
+
export const WithColors: Story = {
|
|
411
|
+
render: () => (
|
|
412
|
+
<ol className={styles.steps}>
|
|
413
|
+
<li>
|
|
414
|
+
<mark />
|
|
415
|
+
<strong>Steg 1</strong>
|
|
416
|
+
<br />
|
|
417
|
+
<small>Beskrivelse</small>
|
|
418
|
+
</li>
|
|
419
|
+
<li data-color="danger">
|
|
420
|
+
<mark />
|
|
421
|
+
<strong>Steg 2</strong>
|
|
422
|
+
<br />
|
|
423
|
+
<small>Donec et odio</small>
|
|
424
|
+
</li>
|
|
425
|
+
<li aria-current="step">
|
|
426
|
+
<mark />
|
|
427
|
+
<strong>Steg 3</strong>
|
|
428
|
+
</li>
|
|
429
|
+
<li data-color="warning">
|
|
430
|
+
<mark />
|
|
431
|
+
<strong>Steg 4</strong>
|
|
432
|
+
</li>
|
|
433
|
+
<li>
|
|
434
|
+
<mark />
|
|
435
|
+
<strong>Steg 5</strong>
|
|
436
|
+
</li>
|
|
437
|
+
</ol>
|
|
438
|
+
),
|
|
439
|
+
};
|
|
440
|
+
|
|
441
|
+
export const WithVariantFilled: Story = {
|
|
442
|
+
render: () => (
|
|
443
|
+
<>
|
|
444
|
+
<ol className={styles.steps} data-variant="filled">
|
|
445
|
+
<li>
|
|
446
|
+
<mark />
|
|
447
|
+
<strong>Steg 1</strong>
|
|
448
|
+
<br />
|
|
449
|
+
<small>Beskrivelse</small>
|
|
450
|
+
</li>
|
|
451
|
+
<li aria-current="step">
|
|
452
|
+
<mark />
|
|
453
|
+
<strong>Steg 2</strong>
|
|
454
|
+
<br />
|
|
455
|
+
<small>Donec et odio</small>
|
|
456
|
+
</li>
|
|
457
|
+
<li>
|
|
458
|
+
<mark />
|
|
459
|
+
<strong>Steg 3</strong>
|
|
460
|
+
</li>
|
|
461
|
+
</ol>
|
|
462
|
+
<ol className={styles.steps} data-variant="filled" data-direction="down">
|
|
463
|
+
<li>
|
|
464
|
+
<mark />
|
|
465
|
+
<strong>Steg 1</strong>
|
|
466
|
+
<br />
|
|
467
|
+
<small>Beskrivelse</small>
|
|
468
|
+
</li>
|
|
469
|
+
<li data-color="danger" aria-current="step">
|
|
470
|
+
<mark />
|
|
471
|
+
<strong>Steg 2</strong>
|
|
472
|
+
<br />
|
|
473
|
+
<small>Donec et odio</small>
|
|
474
|
+
</li>
|
|
475
|
+
<li>
|
|
476
|
+
<mark />
|
|
477
|
+
<strong>Steg 3</strong>
|
|
478
|
+
</li>
|
|
479
|
+
</ol>
|
|
480
|
+
<ol className={styles.steps} data-variant="filled" data-direction="up">
|
|
481
|
+
<li>
|
|
482
|
+
<mark />
|
|
483
|
+
<strong>Steg 1</strong>
|
|
484
|
+
<br />
|
|
485
|
+
<small>Beskrivelse</small>
|
|
486
|
+
</li>
|
|
487
|
+
<li data-color="danger" aria-current="step">
|
|
488
|
+
<mark />
|
|
489
|
+
<strong>Steg 2</strong>
|
|
490
|
+
<br />
|
|
491
|
+
<small>Donec et odio</small>
|
|
492
|
+
</li>
|
|
493
|
+
<li data-color="danger">
|
|
494
|
+
<mark />
|
|
495
|
+
<strong>Steg 3</strong>
|
|
496
|
+
</li>
|
|
497
|
+
</ol>
|
|
498
|
+
</>
|
|
499
|
+
),
|
|
500
|
+
};
|
|
501
|
+
|
|
502
|
+
export const WithInteraction: Story = {
|
|
503
|
+
render: () => (
|
|
504
|
+
<ol className={styles.steps}>
|
|
505
|
+
<li>
|
|
506
|
+
<a href="#none">
|
|
507
|
+
<mark />
|
|
508
|
+
<strong>Steg 1</strong>
|
|
509
|
+
<br />
|
|
510
|
+
<small>Beskrivelse</small>
|
|
511
|
+
</a>
|
|
512
|
+
</li>
|
|
513
|
+
<li>
|
|
514
|
+
<a href="#none">
|
|
515
|
+
<mark />
|
|
516
|
+
<strong>Steg 2</strong>
|
|
517
|
+
<br />
|
|
518
|
+
<small>Donec et odio</small>
|
|
519
|
+
</a>
|
|
520
|
+
</li>
|
|
521
|
+
<li aria-current="step">
|
|
522
|
+
<button type="button">
|
|
523
|
+
<mark />
|
|
524
|
+
<strong>Steg 3</strong>
|
|
525
|
+
</button>
|
|
526
|
+
</li>
|
|
527
|
+
<li>
|
|
528
|
+
<button type="button">
|
|
529
|
+
<mark />
|
|
530
|
+
<strong>Steg 4</strong>
|
|
531
|
+
</button>
|
|
532
|
+
</li>
|
|
533
|
+
</ol>
|
|
534
|
+
),
|
|
535
|
+
};
|
|
536
|
+
|
|
537
|
+
export const Timeline: Story = {
|
|
538
|
+
parameters: { showInOverview: true },
|
|
539
|
+
render: () => (
|
|
540
|
+
<ol className={styles.steps} data-direction="up">
|
|
541
|
+
<li data-color="main">
|
|
542
|
+
<mark>
|
|
543
|
+
<HeartIcon />
|
|
544
|
+
</mark>
|
|
545
|
+
<strong>06.04.2025</strong> Enighet om løsning
|
|
546
|
+
</li>
|
|
547
|
+
<li data-color="main">
|
|
548
|
+
<mark>
|
|
549
|
+
<HandshakeIcon />
|
|
550
|
+
</mark>
|
|
551
|
+
<strong>05.04.2025</strong> Oppfølgingsmøte gjennomført
|
|
552
|
+
<br />
|
|
553
|
+
Donec sagittis et odio in consequat. Nullam rutrum erat in euismod
|
|
554
|
+
scelerisque. Nullam imperdiet lorem mauris, ut dapibus sem efficitur a.
|
|
555
|
+
Proin nec vulputate erat. Proin venenatis aliquam justo at venenatis.
|
|
556
|
+
Proin pharetra turpis sem, et consectetur nunc fringilla vitae. Morbi
|
|
557
|
+
molestie eleifend libero, et posuere magna semper non. Nullam dictum
|
|
558
|
+
massa non nibh sagittis vestibulum.
|
|
559
|
+
</li>
|
|
560
|
+
<li data-color="main">
|
|
561
|
+
<mark>
|
|
562
|
+
<FilePlusIcon />
|
|
563
|
+
</mark>
|
|
564
|
+
<strong>01.02.2025</strong> Sak opprettet
|
|
565
|
+
</li>
|
|
566
|
+
</ol>
|
|
567
|
+
),
|
|
568
|
+
};
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { Meta, Canvas } from '@storybook/addon-docs/blocks';
|
|
2
|
+
import { Example, CssVariables, JumpTo } from '../../.storybook/blocks';
|
|
3
|
+
import { Button } from "../react";
|
|
4
|
+
import * as stories from './table.stories';
|
|
5
|
+
import { Flex } from '../react';
|
|
6
|
+
import styles from '../styles.module.css';
|
|
7
|
+
|
|
8
|
+
<Meta of={stories} />
|
|
9
|
+
|
|
10
|
+
# Table
|
|
11
|
+
>Table brukes for å vise strukturert informasjon på en ryddig og oversiktlig måte. Tabeller kan gjøre det enklere for brukerne å skanne og sammenligne informasjon.
|
|
12
|
+
|
|
13
|
+
<JumpTo />
|
|
14
|
+
|
|
15
|
+
## Kode
|
|
16
|
+
- Legg klassen `table` på `<table>`
|
|
17
|
+
- Bruk `<thead>` med `<tr><th>` som barn for topplinje
|
|
18
|
+
- Bruk `<tbody>` med `<tr><td>` som barn for rader
|
|
19
|
+
- Bruk `aria-label` for å navngi tabellen for skjermlesere
|
|
20
|
+
- Bruk `data-nowrap` hvor du vil på tabellen, rader eller celler for å hindre linjeskift
|
|
21
|
+
<Canvas of={stories.Default} />
|
|
22
|
+
|
|
23
|
+
## Horisontale titler
|
|
24
|
+
- Bruk `<th scope="row">` som første barn i en rad for å få horisontal overskrift
|
|
25
|
+
<Canvas of={stories.WithHorizontalTitles} />
|
|
26
|
+
|
|
27
|
+
## Låste bredder
|
|
28
|
+
- Tabeller tilpasser kolonnebredder automatisk etter innhold
|
|
29
|
+
- Dette kan være upraktisk når innholdet endrer seg/sorteres/pagineres
|
|
30
|
+
- Bruk `data-fixed` på `<table>` for låste bredder. **OBS:** Fungerer ikke med [mobil scroll](#mobil-scroll)
|
|
31
|
+
- Bruk evt. `style="width: X"` på `<th>` for å sette bredde på gitte kolonner
|
|
32
|
+
<Canvas of={stories.WithFixedWidths} />
|
|
33
|
+
|
|
34
|
+
## Numeriske verdier
|
|
35
|
+
- Bruk `data-numeric` for tall med lik bredde.
|
|
36
|
+
<Canvas of={stories.WithNumericValues} />
|
|
37
|
+
|
|
38
|
+
## Tekstjustering
|
|
39
|
+
- Bruk `data-justify="start | center | end"` for å justere tekstplassering.
|
|
40
|
+
<Canvas of={stories.WithJustify} />
|
|
41
|
+
|
|
42
|
+
## Vertikal justering av innhold
|
|
43
|
+
- Bruk `data-align="start | center"` for å vertikalt justere innhold (`start` er default)
|
|
44
|
+
<Canvas of={stories.WithAlign} />
|
|
45
|
+
|
|
46
|
+
## Sortering
|
|
47
|
+
- Bruk `<th aria-sort="none | ascending | descending | other">`
|
|
48
|
+
- Bruk `<button type="button">` i `<th>` for sorting
|
|
49
|
+
- Bruk [TanStack Table](https://tanstack.com/table/latest) eller annen valgfri kode for å utføre sorteringen
|
|
50
|
+
- **React?** Bruk `<Table.ThSortable aria-sort={} onClick={}>` for automisk knapp og støtte for flere verdier i `aria-sort` : `"acending" | "asc" | "desc" | "descending" | "down" | "false" | "none" | "up" | false | null`. Dersom **onClick er undefined**, vil en vanlig `<th>` uten sortering rendres.
|
|
51
|
+
- Se også [låste bredder](#laste-bredder)
|
|
52
|
+
<Canvas of={stories.SortableSimple} />
|
|
53
|
+
|
|
54
|
+
## Bunnlinje
|
|
55
|
+
- Bruk `<tfoot>` med `<tr><th>` som barn for bunnlinje
|
|
56
|
+
<Canvas of={stories.WithFooter} />
|
|
57
|
+
|
|
58
|
+
## Størrelser
|
|
59
|
+
- Bruk `data-size="sm | md | lg"`
|
|
60
|
+
<Canvas of={stories.Sizes} />
|
|
61
|
+
|
|
62
|
+
## Ekspandering
|
|
63
|
+
- Legg `<button aria-expanded="true | false">` som barn av `td` eller `th`
|
|
64
|
+
- Legg til en rad etter `<tr><td colspan="x">`, hvor `x` er antall kolonner
|
|
65
|
+
<Canvas of={stories.ExpandableSimple} />
|
|
66
|
+
|
|
67
|
+
## Checkbox
|
|
68
|
+
- Legg et [Field](/designsystem/field/) med `<input type="checkbox">` og `<label>` i første celle
|
|
69
|
+
<Canvas of={stories.CheckableSimple} />
|
|
70
|
+
|
|
71
|
+
## Rad med handling
|
|
72
|
+
- Legg `data-clickdelegatefor="TARGET-ID"` på en `<tr>`, hvor `TARGET-ID` er `id` til en knapp, lenke eller checkbox inni raden
|
|
73
|
+
<Canvas of={stories.ClickableSimple} />
|
|
74
|
+
|
|
75
|
+
## Paginering
|
|
76
|
+
- Tabell kan brukes sammen med [Pagination](/designsystem/pagination/)
|
|
77
|
+
<Canvas of={stories.PaginatableSimple} />
|
|
78
|
+
|
|
79
|
+
## Mobil: Scroll
|
|
80
|
+
- Plasser tabellen inni en `<figure>` for å få scroll på mobil
|
|
81
|
+
- Bruk `data-nowrap` hvor du vil på tabellen, rader eller celler for å hindre linjeskift
|
|
82
|
+
<div className="sbdocs-canvas-thumbnail">
|
|
83
|
+
<Button data-arrow data-variant="primary" href="?path=/story/designsystem-table--mobile-scroll">Se scroll tabell i egen visning</Button>
|
|
84
|
+
<Canvas className="sbdocs-canvas--max-height" of={stories.MobileDivided} />
|
|
85
|
+
</div>
|
|
86
|
+
|
|
87
|
+
## Mobile: Divided
|
|
88
|
+
- Legg `data-mobile="divided"` på `<table>` for todelt visning opp til `768px`
|
|
89
|
+
- Bruk `data-mobile-size="768"` for å sette egen breakpoint
|
|
90
|
+
- Bruk `data-mobile-source="self"` for breakpoint basert på egen størrelse - ikke viewport
|
|
91
|
+
<div className="sbdocs-canvas-thumbnail">
|
|
92
|
+
<Button data-arrow data-variant="primary" href="?path=/story/designsystem-table--mobile-divided">Se divided tabell i egen visning</Button>
|
|
93
|
+
<Canvas className="sbdocs-canvas--max-height" of={stories.MobileDivided} />
|
|
94
|
+
</div>
|
|
95
|
+
|
|
96
|
+
## Mobile: Spaced
|
|
97
|
+
- Legg `data-mobile="spaced"` på `<table>` for todelt visning opp til `768px`
|
|
98
|
+
- Bruk `data-mobile-size="768"` for å sette egen breakpoint
|
|
99
|
+
- Bruk `data-mobile-source="self"` for breakpoint basert på egen størrelse - ikke viewport
|
|
100
|
+
<div className="sbdocs-canvas-thumbnail">
|
|
101
|
+
<Button data-arrow data-variant="primary" href="?path=/story/designsystem-table--mobile-spaced">Se spaced tabell i egen visning</Button>
|
|
102
|
+
<Canvas className="sbdocs-canvas--max-height" of={stories.MobileSpaced} />
|
|
103
|
+
</div>
|
|
104
|
+
|
|
105
|
+
## Mobile: Stacked
|
|
106
|
+
- Legg `data-mobile="stacked"` på `<table>` for stablet visning opp til `768px`
|
|
107
|
+
- Bruk `data-mobile-size="768"` for å sette egen breakpoint
|
|
108
|
+
- Bruk `data-mobile-source="self"` for breakpoint basert på egen størrelse - ikke viewport
|
|
109
|
+
<div className="sbdocs-canvas-thumbnail">
|
|
110
|
+
<Button data-arrow data-variant="primary" href="?path=/story/designsystem-table--mobile-stacked">Se stacked tabell i egen visning</Button>
|
|
111
|
+
<Canvas className="sbdocs-canvas--max-height" of={stories.MobileStacked} />
|
|
112
|
+
</div>
|
|
113
|
+
|
|
114
|
+
## Kant rundt
|
|
115
|
+
- Legg `data-border="true"` på `<table>` for å få kant rundt tabellen
|
|
116
|
+
- **Merk:** Skal hovedsakelig kun brukes når tabell ligger rett på gåsunge bakgrunn
|
|
117
|
+
<Canvas of={stories.WithBorderAround} />
|
|
118
|
+
|
|
119
|
+
## Uten kant
|
|
120
|
+
- Legg `data-border="false"` på `<table>` for å fjerne alle `border` linjer
|
|
121
|
+
- **Merk:** Skal hovedsakelig kun brukes når tabell har kun to kolonner
|
|
122
|
+
<Canvas of={stories.WithoutBorders} />
|
|
123
|
+
|
|
124
|
+
<CssVariables component="table" exclude="zebra,sticky,hover,sorted" />
|