@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.
Files changed (90) hide show
  1. package/mtds/ai/AGENTS.md +892 -0
  2. package/mtds/ai/alert.mdx +63 -0
  3. package/mtds/ai/alert.stories.tsx +128 -0
  4. package/mtds/ai/analytics.mdx +185 -0
  5. package/mtds/ai/app.mdx +60 -0
  6. package/mtds/ai/app.stories.tsx +897 -0
  7. package/mtds/ai/atlas.mdx +82 -0
  8. package/mtds/ai/atlas.stories.tsx +424 -0
  9. package/mtds/ai/avatar.mdx +45 -0
  10. package/mtds/ai/avatar.stories.tsx +109 -0
  11. package/mtds/ai/badge.mdx +70 -0
  12. package/mtds/ai/badge.stories.tsx +122 -0
  13. package/mtds/ai/breadcrumbs.mdx +36 -0
  14. package/mtds/ai/breadcrumbs.stories.tsx +158 -0
  15. package/mtds/ai/button.mdx +179 -0
  16. package/mtds/ai/button.stories.tsx +440 -0
  17. package/mtds/ai/card.mdx +51 -0
  18. package/mtds/ai/card.stories.tsx +469 -0
  19. package/mtds/ai/chart.mdx +67 -0
  20. package/mtds/ai/chart.stories.tsx +519 -0
  21. package/mtds/ai/chip.mdx +71 -0
  22. package/mtds/ai/chip.stories.tsx +211 -0
  23. package/mtds/ai/details.mdx +33 -0
  24. package/mtds/ai/details.stories.tsx +91 -0
  25. package/mtds/ai/dialog.mdx +38 -0
  26. package/mtds/ai/dialog.stories.tsx +373 -0
  27. package/mtds/ai/divider.mdx +19 -0
  28. package/mtds/ai/divider.stories.tsx +50 -0
  29. package/mtds/ai/errorsummary.mdx +26 -0
  30. package/mtds/ai/errorsummary.stories.tsx +137 -0
  31. package/mtds/ai/field.mdx +86 -0
  32. package/mtds/ai/field.stories.tsx +863 -0
  33. package/mtds/ai/fieldset.mdx +126 -0
  34. package/mtds/ai/fieldset.stories.tsx +298 -0
  35. package/mtds/ai/fileupload.mdx +16 -0
  36. package/mtds/ai/fileupload.stories.tsx +126 -0
  37. package/mtds/ai/helptext.mdx +24 -0
  38. package/mtds/ai/helptext.stories.tsx +106 -0
  39. package/mtds/ai/input.mdx +223 -0
  40. package/mtds/ai/input.stories.tsx +352 -0
  41. package/mtds/ai/law.mdx +115 -0
  42. package/mtds/ai/law.stories.tsx +168 -0
  43. package/mtds/ai/layout.mdx +145 -0
  44. package/mtds/ai/layout.stories.tsx +443 -0
  45. package/mtds/ai/link.mdx +45 -0
  46. package/mtds/ai/link.stories.tsx +44 -0
  47. package/mtds/ai/logo.mdx +86 -0
  48. package/mtds/ai/logo.stories.tsx +146 -0
  49. package/mtds/ai/pagination.mdx +136 -0
  50. package/mtds/ai/pagination.stories.tsx +404 -0
  51. package/mtds/ai/popover.mdx +86 -0
  52. package/mtds/ai/popover.stories.tsx +355 -0
  53. package/mtds/ai/print.mdx +96 -0
  54. package/mtds/ai/print.stories.tsx +839 -0
  55. package/mtds/ai/progress.mdx +41 -0
  56. package/mtds/ai/progress.stories.tsx +141 -0
  57. package/mtds/ai/skeleton.mdx +26 -0
  58. package/mtds/ai/skeleton.stories.tsx +131 -0
  59. package/mtds/ai/spinner.mdx +26 -0
  60. package/mtds/ai/spinner.stories.tsx +72 -0
  61. package/mtds/ai/steps.mdx +37 -0
  62. package/mtds/ai/steps.stories.tsx +568 -0
  63. package/mtds/ai/table.mdx +124 -0
  64. package/mtds/ai/table.stories.tsx +1715 -0
  65. package/mtds/ai/tabs.mdx +106 -0
  66. package/mtds/ai/tabs.stories.tsx +159 -0
  67. package/mtds/ai/tag.mdx +49 -0
  68. package/mtds/ai/tag.stories.tsx +111 -0
  69. package/mtds/ai/toast.mdx +67 -0
  70. package/mtds/ai/toast.stories.tsx +215 -0
  71. package/mtds/ai/togglegroup.mdx +75 -0
  72. package/mtds/ai/togglegroup.stories.tsx +96 -0
  73. package/mtds/ai/tooltip.mdx +32 -0
  74. package/mtds/ai/tooltip.stories.tsx +34 -0
  75. package/mtds/ai/typography.mdx +67 -0
  76. package/mtds/ai/typography.stories.tsx +798 -0
  77. package/mtds/ai/validation.mdx +19 -0
  78. package/mtds/ai/validation.stories.tsx +45 -0
  79. package/mtds/atlas/atlas-element.js +1 -1
  80. package/mtds/chart/chart-lines.js +19 -19
  81. package/mtds/chart/chart-lines.js.map +1 -1
  82. package/mtds/chart/chart.css.js +16 -1
  83. package/mtds/chart/chart.css.js.map +1 -1
  84. package/mtds/chart/chart.stories.d.ts +1 -0
  85. package/mtds/index.iife.js +32 -17
  86. package/mtds/package.json.js +1 -1
  87. package/mtds/styles.css +1 -1
  88. package/mtds/table/table-observer.js +26 -15
  89. package/mtds/table/table-observer.js.map +1 -1
  90. package/package.json +4 -2
@@ -0,0 +1,897 @@
1
+ import {
2
+ BellIcon,
3
+ GearIcon,
4
+ ListChecksIcon,
5
+ MagnifyingGlassIcon,
6
+ PlantIcon,
7
+ SignatureIcon,
8
+ SignOutIcon,
9
+ UserIcon,
10
+ } from "@phosphor-icons/react";
11
+ import type { Meta, StoryObj } from "@storybook/react-vite";
12
+ import { useEffect } from "react";
13
+ import { toggleAppExpanded } from "..";
14
+ import { App, Avatar, Button, Card, Logo, Popover } from "../react";
15
+ import styles from "../styles.module.css";
16
+
17
+ const Lipsum =
18
+ "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent velit orci, sagittis sodales viverra id, malesuada quis lacus. Nunc ac vulputate enim, et feugiat lorem. Suspendisse metus est, semper in tempor ut, ornare nec sapien. Maecenas dictum sodales leo, ut ultrices ex. Quisque in interdum nisl. Fusce non est finibus, imperdiet diam quis, sodales tellus. Maecenas vitae scelerisque ipsum. Maecenas tempor leo orci, a lacinia leo interdum et. Maecenas dictum tortor ut nisi mollis, ac lobortis metus congue. Aliquam pharetra leo at nulla molestie sagittis. Aenean condimentum viverra blandit. Phasellus placerat imperdiet felis, vel mollis ante maximus at. Nam pretium mattis augue, quis vehicula nisl facilisis in. Fusce in dolor et enim sollicitudin lobortis. Etiam tincidunt eleifend felis, sed faucibus ligula iaculis at. Fusce a venenatis nunc.";
19
+ const Image = (
20
+ <img
21
+ style={{ width: "100%", aspectRatio: "16 / 9", objectFit: "cover" }}
22
+ src="/docs/bilder/gaard-sau-inspeksjon-ute-1.jpg"
23
+ alt=""
24
+ />
25
+ );
26
+
27
+ const meta = {
28
+ title: "Designsystem/App",
29
+ parameters: {
30
+ layout: "fullscreen",
31
+ },
32
+ decorators: [
33
+ (Story) => (
34
+ <>
35
+ <style>
36
+ {
37
+ "body:not(:has(.sbdocs-content)) { background: var(--ds-color-background-default) } img { display: block }"
38
+ }
39
+ </style>
40
+ <Story />
41
+ </>
42
+ ),
43
+ ],
44
+ } satisfies Meta;
45
+
46
+ export default meta;
47
+ type Story = StoryObj<typeof meta>;
48
+
49
+ const mobileDecorators: StoryObj["decorators"] = [
50
+ (Story) => {
51
+ useEffect(() => {
52
+ if (document.querySelector(".sbdocs-wrapper")) return; // Do not shrink in docs mode
53
+ const el = window.frameElement as HTMLElement;
54
+ const iframe = el?.nodeName === "IFRAME" ? el : undefined;
55
+ if (iframe) iframe.style.maxWidth = "400px";
56
+ return () => iframe?.removeAttribute("style");
57
+ }, []);
58
+
59
+ return <Story />;
60
+ },
61
+ ];
62
+
63
+ export const Default: Story = {
64
+ render: () => (
65
+ <div className={styles.app}>
66
+ <header>
67
+ <a href="/" className={styles.logo}>
68
+ <PlantIcon weight="fill" />
69
+ Digiplant
70
+ </a>
71
+ <button type="button" className={styles.button}>
72
+ <BellIcon />
73
+ </button>
74
+ <button
75
+ aria-label="Meny"
76
+ className={styles.button}
77
+ popoverTarget="menu"
78
+ type="button"
79
+ >
80
+ <span className={styles.avatar} data-size="xs"></span>
81
+ </button>
82
+ <menu className={styles.popover} popover="auto" id="menu">
83
+ <li>
84
+ <a className={styles.button} href="/">
85
+ <UserIcon />
86
+ Profil
87
+ </a>
88
+ </li>
89
+ <li>
90
+ <a className={styles.button} href="/">
91
+ <GearIcon />
92
+ Innstillinger
93
+ </a>
94
+ </li>
95
+ <li>
96
+ <a className={styles.button} href="/">
97
+ <SignOutIcon />
98
+ Logg ut
99
+ </a>
100
+ </li>
101
+ </menu>
102
+ </header>
103
+ <button
104
+ type="button"
105
+ className={styles.button}
106
+ command="show-modal"
107
+ commandfor="mtds-sidebar"
108
+ data-tooltip="Vis meny"
109
+ >
110
+ Skjul meny
111
+ </button>
112
+ <dialog role="navigation" id="mtds-sidebar">
113
+ <menu className={styles.sticky}>
114
+ <li>
115
+ <a
116
+ className={styles.button}
117
+ href="/"
118
+ aria-current="page"
119
+ data-tooltip="Søknader"
120
+ >
121
+ <SignatureIcon />
122
+ </a>
123
+ </li>
124
+ <li>
125
+ <a className={styles.button} href="/" data-tooltip="Behandling">
126
+ <ListChecksIcon />
127
+ </a>
128
+ </li>
129
+ <li>
130
+ <a className={styles.button} href="/" data-tooltip="Søk">
131
+ <MagnifyingGlassIcon />
132
+ </a>
133
+ </li>
134
+ </menu>
135
+ </dialog>
136
+ <main>
137
+ <div className={styles.card}>{Image}</div>
138
+ </main>
139
+ </div>
140
+ ),
141
+ };
142
+
143
+ export const React: Story = {
144
+ render: () => (
145
+ <App>
146
+ <App.Header>
147
+ <Logo href="/">
148
+ <PlantIcon weight="fill" />
149
+ Digiplant
150
+ </Logo>
151
+ <Button>
152
+ <BellIcon />
153
+ </Button>
154
+ <Button aria-label="Meny" popoverTarget="menu">
155
+ <Avatar data-size="xs" />
156
+ </Button>
157
+ <Popover as="menu" popover="auto" id="menu">
158
+ <li>
159
+ <Button href="/">
160
+ <UserIcon />
161
+ Profil
162
+ </Button>
163
+ </li>
164
+ <li>
165
+ <Button href="/">
166
+ <GearIcon />
167
+ Innstillinger
168
+ </Button>
169
+ </li>
170
+ <li>
171
+ <Button href="/">
172
+ <SignOutIcon />
173
+ Logg ut
174
+ </Button>
175
+ </li>
176
+ </Popover>
177
+ </App.Header>
178
+ <App.Toggle />
179
+ <App.Sidebar>
180
+ <App.Sticky as="menu">
181
+ <li>
182
+ <Button href="/" aria-current="page" data-tooltip="Søknader">
183
+ <SignatureIcon />
184
+ </Button>
185
+ </li>
186
+ <li>
187
+ <Button href="/" data-tooltip="Behandling">
188
+ <ListChecksIcon />
189
+ </Button>
190
+ </li>
191
+ <li>
192
+ <Button href="/" data-tooltip="Søk">
193
+ <MagnifyingGlassIcon />
194
+ </Button>
195
+ </li>
196
+ </App.Sticky>
197
+ </App.Sidebar>
198
+ <App.Main>
199
+ <Card>{Image}</Card>
200
+ </App.Main>
201
+ <App.Footer style={{ height: 300 }}>
202
+ <Logo href="/" />
203
+ </App.Footer>
204
+ </App>
205
+ ),
206
+ };
207
+
208
+ export const WithFooter: Story = {
209
+ render: () => (
210
+ <div className={styles.app}>
211
+ <header>
212
+ <a href="/" className={styles.logo}>
213
+ <PlantIcon weight="fill" />
214
+ Digiplant
215
+ </a>
216
+ <button type="button" className={styles.button}>
217
+ <BellIcon />
218
+ </button>
219
+
220
+ <button
221
+ aria-label="Meny"
222
+ className={styles.avatar}
223
+ data-size="xs"
224
+ popoverTarget="menu"
225
+ type="button"
226
+ ></button>
227
+ <menu className={styles.popover} popover="auto" id="menu">
228
+ <li>
229
+ <a className={styles.button} href="/">
230
+ <UserIcon />
231
+ Profil
232
+ </a>
233
+ </li>
234
+ <li>
235
+ <a className={styles.button} href="/">
236
+ <GearIcon />
237
+ Innstillinger
238
+ </a>
239
+ </li>
240
+ <li>
241
+ <a className={styles.button} href="/">
242
+ <SignOutIcon />
243
+ Logg ut
244
+ </a>
245
+ </li>
246
+ </menu>
247
+ </header>
248
+ <button
249
+ type="button"
250
+ className={styles.button}
251
+ command="show-modal"
252
+ commandfor="mtds-sidebar"
253
+ data-tooltip="Vis meny"
254
+ >
255
+ Skjul meny
256
+ </button>
257
+ <dialog role="navigation" id="mtds-sidebar">
258
+ <menu className={styles.sticky}>
259
+ <li>
260
+ <a
261
+ className={styles.button}
262
+ href="/"
263
+ aria-current="page"
264
+ data-tooltip="Søknader"
265
+ >
266
+ <SignatureIcon />
267
+ </a>
268
+ </li>
269
+ <li>
270
+ <a className={styles.button} href="/" data-tooltip="Behandling">
271
+ <ListChecksIcon />
272
+ </a>
273
+ </li>
274
+ <li>
275
+ <a className={styles.button} href="/" data-tooltip="Søk">
276
+ <MagnifyingGlassIcon />
277
+ </a>
278
+ </li>
279
+ </menu>
280
+ </dialog>
281
+ <main>
282
+ <div className={styles.card}>{Image}</div>
283
+ </main>
284
+ <footer style={{ height: 300 }}>
285
+ <a href="/" className={styles.logo}></a>
286
+ </footer>
287
+ </div>
288
+ ),
289
+ };
290
+
291
+ export const WithComplexContent: Story = {
292
+ render: () => (
293
+ <div className={styles.app}>
294
+ <header>
295
+ <a href="/" className={styles.logo}>
296
+ <PlantIcon weight="fill" />
297
+ Digiplant
298
+ </a>
299
+ <button type="button" className={styles.button}>
300
+ <span className={styles.badge} data-badge="" data-color="danger">
301
+ <BellIcon />
302
+ </span>
303
+ </button>
304
+ <button
305
+ type="button"
306
+ className={styles.button}
307
+ aria-label="Meny"
308
+ popoverTarget="menu"
309
+ >
310
+ <span data-app-expanded="desktop">Navn Navnesen</span>
311
+ <span className={styles.avatar} data-size="xs"></span>
312
+ </button>
313
+ <menu className={styles.popover} popover="auto" id="menu">
314
+ <li>
315
+ <a className={styles.button} href="/">
316
+ <UserIcon />
317
+ Profil
318
+ </a>
319
+ </li>
320
+ <li>
321
+ <a className={styles.button} href="/">
322
+ <GearIcon />
323
+ Innstillinger
324
+ </a>
325
+ </li>
326
+ <li>
327
+ <a className={styles.button} href="/">
328
+ <SignOutIcon />
329
+ Logg ut
330
+ </a>
331
+ </li>
332
+ </menu>
333
+ </header>
334
+ <button
335
+ type="button"
336
+ className={styles.button}
337
+ command="show-modal"
338
+ commandfor="mtds-sidebar"
339
+ data-tooltip="Vis meny"
340
+ >
341
+ Skjul meny
342
+ </button>
343
+ <dialog role="navigation" id="mtds-sidebar">
344
+ <div className={styles.sticky}>
345
+ <div className={styles.prose}>
346
+ <h2
347
+ className={styles.heading}
348
+ data-app-expanded="true"
349
+ data-size="2xs"
350
+ >
351
+ Navigasjon
352
+ </h2>
353
+ <menu>
354
+ <li>
355
+ <a
356
+ className={styles.button}
357
+ href="/"
358
+ data-tooltip="Søknader"
359
+ aria-current="page"
360
+ >
361
+ <span className={styles.badge} data-badge="99">
362
+ <SignatureIcon />
363
+ </span>
364
+ </a>
365
+ </li>
366
+ <li>
367
+ <a className={styles.button} href="/" data-tooltip="Behandling">
368
+ <ListChecksIcon />
369
+ </a>
370
+ </li>
371
+ <li>
372
+ <a className={styles.button} href="/" data-tooltip="Søk">
373
+ <MagnifyingGlassIcon />
374
+ </a>
375
+ </li>
376
+ </menu>
377
+ <hr className={styles.divider} />
378
+ <h2
379
+ className={styles.heading}
380
+ data-size="2xs"
381
+ data-app-expanded="true"
382
+ >
383
+ Rapporter
384
+ </h2>
385
+ <menu>
386
+ <li>
387
+ <a className={styles.button} href="/" data-tooltip="Søknader">
388
+ <SignatureIcon />
389
+ </a>
390
+ </li>
391
+ <li>
392
+ <a className={styles.button} href="/" data-tooltip="Behandling">
393
+ <ListChecksIcon />
394
+ </a>
395
+ </li>
396
+ <li>
397
+ <a className={styles.button} href="/" data-tooltip="Søk">
398
+ <MagnifyingGlassIcon />
399
+ </a>
400
+ </li>
401
+ </menu>
402
+ <form className={styles.prose} data-app-expanded="true">
403
+ <hr className={styles.divider} />
404
+ <fieldset className={styles.fieldset}>
405
+ <legend>Velg type iskrem</legend>
406
+ <ds-field className={styles.field}>
407
+ <input type="checkbox" className={styles.input} />
408
+ <label>Sjokolade</label>
409
+ </ds-field>
410
+ <ds-field className={styles.field}>
411
+ <input type="checkbox" className={styles.input} />
412
+ <label>Kokkos</label>
413
+ </ds-field>
414
+ <ds-field className={styles.field}>
415
+ <input type="checkbox" className={styles.input} />
416
+ <label>Jordbær</label>
417
+ </ds-field>
418
+ <ds-field className={styles.field}>
419
+ <input type="checkbox" className={styles.input} />
420
+ <label>Pistasj</label>
421
+ </ds-field>
422
+ <ds-field className={styles.field}>
423
+ <input type="checkbox" className={styles.input} />
424
+ <label>Banan</label>
425
+ </ds-field>
426
+ <ds-field className={styles.field}>
427
+ <input type="checkbox" className={styles.input} />
428
+ <label>Sitron</label>
429
+ </ds-field>
430
+ <ds-field className={styles.field}>
431
+ <input type="checkbox" className={styles.input} />
432
+ <label>Hasselnøtt</label>
433
+ </ds-field>
434
+ <ds-field className={styles.field}>
435
+ <input type="checkbox" className={styles.input} />
436
+ <label>Vanilje</label>
437
+ </ds-field>
438
+ <ds-field className={styles.field}>
439
+ <input type="checkbox" className={styles.input} />
440
+ <label>Karamell</label>
441
+ </ds-field>
442
+ <ds-field className={styles.field}>
443
+ <input type="checkbox" className={styles.input} />
444
+ <label>Bringebær</label>
445
+ </ds-field>
446
+ <ds-field className={styles.field}>
447
+ <input type="checkbox" className={styles.input} />
448
+ <label>Mango</label>
449
+ </ds-field>
450
+ <ds-field className={styles.field}>
451
+ <input type="checkbox" className={styles.input} />
452
+ <label>Krokan</label>
453
+ </ds-field>
454
+ <ds-field className={styles.field}>
455
+ <input type="checkbox" className={styles.input} />
456
+ <label>Kaffe</label>
457
+ </ds-field>
458
+ <ds-field className={styles.field}>
459
+ <input type="checkbox" className={styles.input} />
460
+ <label>Lakris</label>
461
+ </ds-field>
462
+ <ds-field className={styles.field}>
463
+ <input type="checkbox" className={styles.input} />
464
+ <label>Appelsin</label>
465
+ </ds-field>
466
+ <ds-field className={styles.field}>
467
+ <input type="checkbox" className={styles.input} />
468
+ <label>Kirsebær</label>
469
+ </ds-field>
470
+ <ds-field className={styles.field}>
471
+ <input type="checkbox" className={styles.input} />
472
+ <label>Pære</label>
473
+ </ds-field>
474
+ <ds-field className={styles.field}>
475
+ <input type="checkbox" className={styles.input} />
476
+ <label>Kanel</label>
477
+ </ds-field>
478
+ <ds-field className={styles.field}>
479
+ <input type="checkbox" className={styles.input} />
480
+ <label>Mint</label>
481
+ </ds-field>
482
+ </fieldset>
483
+ </form>
484
+ </div>
485
+ </div>
486
+ </dialog>
487
+ <main>
488
+ <div className={styles.grid}>
489
+ <div className={styles.card}>
490
+ <div className={styles.grid} data-items="400">
491
+ <div className={styles.prose}>
492
+ <h2 className={styles.header}>Overskrift</h2>
493
+ {Image}
494
+ </div>
495
+ <div className={styles.prose}>
496
+ <h2 className={styles.header}>Overskrift</h2>
497
+ {Image}
498
+ </div>
499
+ </div>
500
+ </div>
501
+ <div className={styles.group}>
502
+ <div className={styles.prose}>
503
+ <h2 className={styles.header}>Overskrift</h2>
504
+ <p>{Lipsum}</p>
505
+ <p>{Lipsum}</p>
506
+ <p>{Lipsum}</p>
507
+ <p>{Lipsum}</p>
508
+ <p>{Lipsum}</p>
509
+ <p>{Lipsum}</p>
510
+ </div>
511
+ </div>
512
+ </div>
513
+ </main>
514
+ <footer style={{ height: 300 }}>
515
+ <a href="/" className={styles.logo}></a>
516
+ </footer>
517
+ </div>
518
+ ),
519
+ };
520
+
521
+ export const WithCustomToggle: Story = {
522
+ render: () => (
523
+ <div className={styles.app}>
524
+ <header>
525
+ <a href="/" className={styles.logo}>
526
+ <PlantIcon weight="fill" />
527
+ Digiplant
528
+ </a>
529
+ </header>
530
+ <button
531
+ type="button"
532
+ className={styles.button}
533
+ command="show-modal"
534
+ commandfor="mtds-sidebar"
535
+ data-app-expanded="mobile"
536
+ data-tooltip="Meny"
537
+ ></button>
538
+ <dialog role="navigation" id="mtds-sidebar">
539
+ <menu className={styles.sticky}>
540
+ <li>
541
+ <a
542
+ className={styles.button}
543
+ href="/"
544
+ aria-current="page"
545
+ data-tooltip="Søknader"
546
+ >
547
+ <SignatureIcon />
548
+ </a>
549
+ </li>
550
+ <li>
551
+ <a className={styles.button} href="/" data-tooltip="Behandling">
552
+ <ListChecksIcon />
553
+ </a>
554
+ </li>
555
+ <li>
556
+ <a className={styles.button} href="/" data-tooltip="Søk">
557
+ <MagnifyingGlassIcon />
558
+ </a>
559
+ </li>
560
+ </menu>
561
+ </dialog>
562
+ <main>
563
+ <div className={styles.card}>
564
+ <menu>
565
+ <li>
566
+ <button
567
+ className={styles.button}
568
+ onClick={() => toggleAppExpanded()}
569
+ type="button"
570
+ >
571
+ <div className={styles.grid} data-gap="1">
572
+ Veksle sideområde
573
+ <small>
574
+ <code>toggleAppExpanded()</code>
575
+ </small>
576
+ </div>
577
+ </button>
578
+ </li>
579
+ <li>
580
+ <button
581
+ className={styles.button}
582
+ onClick={() => toggleAppExpanded(false)}
583
+ type="button"
584
+ >
585
+ <div className={styles.grid} data-gap="1">
586
+ Lukk sideområde
587
+ <small>
588
+ <code>toggleAppExpanded(false)</code>
589
+ </small>
590
+ </div>
591
+ </button>
592
+ </li>
593
+ <li>
594
+ <button
595
+ className={styles.button}
596
+ onClick={() => toggleAppExpanded(true)}
597
+ type="button"
598
+ >
599
+ <div className={styles.grid} data-gap="1">
600
+ Åpne sideområde
601
+ <small>
602
+ <code>toggleAppExpanded(true)</code>
603
+ </small>
604
+ </div>
605
+ </button>
606
+ </li>
607
+ </menu>
608
+ </div>
609
+ </main>
610
+ </div>
611
+ ),
612
+ };
613
+
614
+ export const WithMobileBar: Story = {
615
+ decorators: mobileDecorators,
616
+ render: () => (
617
+ <div className={styles.app} data-variant="mobilebar">
618
+ <header>
619
+ <a href="/" className={styles.logo}>
620
+ <PlantIcon weight="fill" />
621
+ Digiplant
622
+ </a>
623
+ <button type="button" className={styles.button}>
624
+ <BellIcon />
625
+ </button>
626
+ <button
627
+ aria-label="Meny"
628
+ className={styles.button}
629
+ popoverTarget="menu"
630
+ type="button"
631
+ >
632
+ <span className={styles.avatar} data-size="xs"></span>
633
+ </button>
634
+ <menu className={styles.popover} popover="auto" id="menu">
635
+ <li>
636
+ <a className={styles.button} href="/">
637
+ <UserIcon />
638
+ Profil
639
+ </a>
640
+ </li>
641
+ <li>
642
+ <a className={styles.button} href="/">
643
+ <GearIcon />
644
+ Innstillinger
645
+ </a>
646
+ </li>
647
+ <li>
648
+ <a className={styles.button} href="/">
649
+ <SignOutIcon />
650
+ Logg ut
651
+ </a>
652
+ </li>
653
+ </menu>
654
+ </header>
655
+ <button
656
+ type="button"
657
+ className={styles.button}
658
+ command="show-modal"
659
+ commandfor="mtds-sidebar"
660
+ data-tooltip="Vis meny"
661
+ >
662
+ Skjul meny
663
+ </button>
664
+ {/* <dialog role="navigation" id="mtds-sidebar">
665
+ <menu className={styles.sticky}>
666
+ <li>
667
+ <a
668
+ className={styles.button}
669
+ href="/"
670
+ aria-current="page"
671
+ data-tooltip="Søknader"
672
+ >
673
+ <SignatureIcon />
674
+ </a>
675
+ </li>
676
+ <li>
677
+ <a className={styles.button} href="/" data-tooltip="Behandling">
678
+ <ListChecksIcon />
679
+ </a>
680
+ </li>
681
+ <li>
682
+ <a className={styles.button} href="/" data-tooltip="Søk">
683
+ <MagnifyingGlassIcon />
684
+ </a>
685
+ </li>
686
+ </menu>
687
+ </dialog> */}
688
+ <dialog role="navigation" id="mtds-sidebar">
689
+ <div className={styles.sticky}>
690
+ <div className={styles.prose}>
691
+ <h2
692
+ className={styles.heading}
693
+ data-app-expanded="true"
694
+ data-size="2xs"
695
+ >
696
+ Navigasjon
697
+ </h2>
698
+ <menu>
699
+ <li>
700
+ <a
701
+ className={styles.button}
702
+ href="/"
703
+ data-tooltip="Søknader"
704
+ aria-current="page"
705
+ >
706
+ <span className={styles.badge} data-badge="99">
707
+ <SignatureIcon />
708
+ </span>
709
+ </a>
710
+ </li>
711
+ <li>
712
+ <a className={styles.button} href="/" data-tooltip="Behandling">
713
+ <ListChecksIcon />
714
+ </a>
715
+ </li>
716
+ <li>
717
+ <a className={styles.button} href="/" data-tooltip="Søk">
718
+ <MagnifyingGlassIcon />
719
+ </a>
720
+ </li>
721
+ </menu>
722
+ <hr className={styles.divider} />
723
+ <form className={styles.prose} data-app-expanded="true">
724
+ <hr className={styles.divider} />
725
+ <fieldset className={styles.fieldset}>
726
+ <legend>Velg type iskrem</legend>
727
+ <ds-field className={styles.field}>
728
+ <input type="checkbox" className={styles.input} />
729
+ <label>Sjokolade</label>
730
+ </ds-field>
731
+ <ds-field className={styles.field}>
732
+ <input type="checkbox" className={styles.input} />
733
+ <label>Kokkos</label>
734
+ </ds-field>
735
+ <ds-field className={styles.field}>
736
+ <input type="checkbox" className={styles.input} />
737
+ <label>Jordbær</label>
738
+ </ds-field>
739
+ <ds-field className={styles.field}>
740
+ <input type="checkbox" className={styles.input} />
741
+ <label>Pistasj</label>
742
+ </ds-field>
743
+ <ds-field className={styles.field}>
744
+ <input type="checkbox" className={styles.input} />
745
+ <label>Banan</label>
746
+ </ds-field>
747
+ <ds-field className={styles.field}>
748
+ <input type="checkbox" className={styles.input} />
749
+ <label>Sitron</label>
750
+ </ds-field>
751
+ <ds-field className={styles.field}>
752
+ <input type="checkbox" className={styles.input} />
753
+ <label>Hasselnøtt</label>
754
+ </ds-field>
755
+ <ds-field className={styles.field}>
756
+ <input type="checkbox" className={styles.input} />
757
+ <label>Vanilje</label>
758
+ </ds-field>
759
+ <ds-field className={styles.field}>
760
+ <input type="checkbox" className={styles.input} />
761
+ <label>Karamell</label>
762
+ </ds-field>
763
+ <ds-field className={styles.field}>
764
+ <input type="checkbox" className={styles.input} />
765
+ <label>Bringebær</label>
766
+ </ds-field>
767
+ <ds-field className={styles.field}>
768
+ <input type="checkbox" className={styles.input} />
769
+ <label>Mango</label>
770
+ </ds-field>
771
+ <ds-field className={styles.field}>
772
+ <input type="checkbox" className={styles.input} />
773
+ <label>Krokan</label>
774
+ </ds-field>
775
+ <ds-field className={styles.field}>
776
+ <input type="checkbox" className={styles.input} />
777
+ <label>Kaffe</label>
778
+ </ds-field>
779
+ <ds-field className={styles.field}>
780
+ <input type="checkbox" className={styles.input} />
781
+ <label>Lakris</label>
782
+ </ds-field>
783
+ <ds-field className={styles.field}>
784
+ <input type="checkbox" className={styles.input} />
785
+ <label>Appelsin</label>
786
+ </ds-field>
787
+ <ds-field className={styles.field}>
788
+ <input type="checkbox" className={styles.input} />
789
+ <label>Kirsebær</label>
790
+ </ds-field>
791
+ <ds-field className={styles.field}>
792
+ <input type="checkbox" className={styles.input} />
793
+ <label>Pære</label>
794
+ </ds-field>
795
+ <ds-field className={styles.field}>
796
+ <input type="checkbox" className={styles.input} />
797
+ <label>Kanel</label>
798
+ </ds-field>
799
+ <ds-field className={styles.field}>
800
+ <input type="checkbox" className={styles.input} />
801
+ <label>Mint</label>
802
+ </ds-field>
803
+ </fieldset>
804
+ </form>
805
+ </div>
806
+ </div>
807
+ </dialog>
808
+ <main>
809
+ <div className={styles.card}>{Image}</div>
810
+ </main>
811
+ <footer style={{ height: 300 }} hidden>
812
+ <a href="/" className={styles.logo}></a>
813
+ </footer>
814
+ </div>
815
+ ),
816
+ };
817
+
818
+ // Used to test deprecated data-command="toggle-app-expanded"
819
+ export const DeprecatedDefault: Story = {
820
+ tags: ["!dev"],
821
+ render: () => (
822
+ <div className={styles.app}>
823
+ <header>
824
+ <a href="/" className={styles.logo}>
825
+ <PlantIcon weight="fill" />
826
+ Digiplant
827
+ </a>
828
+ <button type="button" className={styles.button}>
829
+ <BellIcon />
830
+ </button>
831
+ <button
832
+ aria-label="Meny"
833
+ className={styles.button}
834
+ popoverTarget="menu"
835
+ type="button"
836
+ >
837
+ <span className={styles.avatar} data-size="xs"></span>
838
+ </button>
839
+ <menu className={styles.popover} popover="auto" id="menu">
840
+ <li>
841
+ <a className={styles.button} href="/">
842
+ <UserIcon />
843
+ Profil
844
+ </a>
845
+ </li>
846
+ <li>
847
+ <a className={styles.button} href="/">
848
+ <GearIcon />
849
+ Innstillinger
850
+ </a>
851
+ </li>
852
+ <li>
853
+ <a className={styles.button} href="/">
854
+ <SignOutIcon />
855
+ Logg ut
856
+ </a>
857
+ </li>
858
+ </menu>
859
+ </header>
860
+ <Button
861
+ type="button"
862
+ className={styles.button}
863
+ data-command="toggle-app-expanded"
864
+ data-tooltip="Vis meny"
865
+ >
866
+ Skjul meny
867
+ </Button>
868
+ <dialog role="navigation">
869
+ <menu className={styles.sticky}>
870
+ <li>
871
+ <a
872
+ className={styles.button}
873
+ href="/"
874
+ aria-current="page"
875
+ data-tooltip="Søknader"
876
+ >
877
+ <SignatureIcon />
878
+ </a>
879
+ </li>
880
+ <li>
881
+ <a className={styles.button} href="/" data-tooltip="Behandling">
882
+ <ListChecksIcon />
883
+ </a>
884
+ </li>
885
+ <li>
886
+ <a className={styles.button} href="/" data-tooltip="Søk">
887
+ <MagnifyingGlassIcon />
888
+ </a>
889
+ </li>
890
+ </menu>
891
+ </dialog>
892
+ <main>
893
+ <div className={styles.card}>{Image}</div>
894
+ </main>
895
+ </div>
896
+ ),
897
+ };