@navikt/ds-react 2.7.7 → 2.8.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 (39) hide show
  1. package/_docs.json +340 -0
  2. package/cjs/expansion-card/ExpansionCard.js +76 -0
  3. package/cjs/expansion-card/ExpansionCardContent.js +56 -0
  4. package/cjs/expansion-card/ExpansionCardDescription.js +47 -0
  5. package/cjs/expansion-card/ExpansionCardHeader.js +56 -0
  6. package/cjs/expansion-card/ExpansionCardTitle.js +46 -0
  7. package/cjs/expansion-card/index.js +8 -0
  8. package/cjs/expansion-card/package.json +6 -0
  9. package/cjs/index.js +1 -0
  10. package/esm/expansion-card/ExpansionCard.d.ts +43 -0
  11. package/esm/expansion-card/ExpansionCard.js +48 -0
  12. package/esm/expansion-card/ExpansionCard.js.map +1 -0
  13. package/esm/expansion-card/ExpansionCardContent.d.ts +7 -0
  14. package/esm/expansion-card/ExpansionCardContent.js +29 -0
  15. package/esm/expansion-card/ExpansionCardContent.js.map +1 -0
  16. package/esm/expansion-card/ExpansionCardDescription.d.ts +7 -0
  17. package/esm/expansion-card/ExpansionCardDescription.js +19 -0
  18. package/esm/expansion-card/ExpansionCardDescription.js.map +1 -0
  19. package/esm/expansion-card/ExpansionCardHeader.d.ts +7 -0
  20. package/esm/expansion-card/ExpansionCardHeader.js +29 -0
  21. package/esm/expansion-card/ExpansionCardHeader.js.map +1 -0
  22. package/esm/expansion-card/ExpansionCardTitle.d.ts +13 -0
  23. package/esm/expansion-card/ExpansionCardTitle.js +18 -0
  24. package/esm/expansion-card/ExpansionCardTitle.js.map +1 -0
  25. package/esm/expansion-card/index.d.ts +1 -0
  26. package/esm/expansion-card/index.js +2 -0
  27. package/esm/expansion-card/index.js.map +1 -0
  28. package/esm/index.d.ts +1 -0
  29. package/esm/index.js +1 -0
  30. package/esm/index.js.map +1 -1
  31. package/package.json +3 -2
  32. package/src/expansion-card/ExpansionCard.tsx +119 -0
  33. package/src/expansion-card/ExpansionCardContent.tsx +42 -0
  34. package/src/expansion-card/ExpansionCardDescription.tsx +22 -0
  35. package/src/expansion-card/ExpansionCardHeader.tsx +50 -0
  36. package/src/expansion-card/ExpansionCardTitle.tsx +34 -0
  37. package/src/expansion-card/expansion-card.stories.tsx +269 -0
  38. package/src/expansion-card/index.ts +4 -0
  39. package/src/index.ts +1 -0
@@ -0,0 +1,269 @@
1
+ import { PlantIcon } from "@navikt/aksel-icons";
2
+ import React, { useState } from "react";
3
+ import { ExpansionCard } from ".";
4
+ import { BodyLong } from "../typography";
5
+ import ExpansionCardContent from "./ExpansionCardContent";
6
+ import ExpansionCardHeader from "./ExpansionCardHeader";
7
+
8
+ export default {
9
+ title: "ds-react/ExpansionCard",
10
+ component: ExpansionCard,
11
+ subcomponents: [ExpansionCardHeader, ExpansionCardContent],
12
+ decorators: [
13
+ (Story) => (
14
+ <div
15
+ style={{
16
+ width: "600px",
17
+ minHeight: "100vh",
18
+ padding: "10rem 0",
19
+ display: "flex",
20
+ flexDirection: "column",
21
+ gap: "1rem",
22
+ }}
23
+ >
24
+ <Story />
25
+ </div>
26
+ ),
27
+ ],
28
+ };
29
+
30
+ const Content = () => (
31
+ <ExpansionCard.Content>
32
+ <BodyLong spacing>
33
+ På ditt faste arbeidssted vil du ha yrkesskadedekning også i hvilepauser,
34
+ lunsjpauser, trimaktiviteter og lignende i arbeidstiden.
35
+ </BodyLong>
36
+ <BodyLong spacing>
37
+ Som hovedregel er du som arbeidstaker ikke yrkesskadedekket på veien til
38
+ og fra arbeid eller første og siste oppdragssted. Du er heller ikke
39
+ yrkesskadedekket på fritiden eller under private gjøremål i arbeidstiden.
40
+ </BodyLong>
41
+ <BodyLong spacing>
42
+ Lorem ipsum, dolor sit amet consectetur adipisicing elit. Fuga suscipit
43
+ voluptatum expedita earum id, aperiam deleniti molestiae eveniet
44
+ doloremque explicabo perspiciatis quasi repellendus! Est dolore a nemo
45
+ aspernatur obcaecati dicta.
46
+ </BodyLong>
47
+ <BodyLong spacing>
48
+ Lorem ipsum, dolor sit amet consectetur adipisicing elit. Fuga suscipit
49
+ voluptatum expedita earum id, aperiam deleniti molestiae eveniet
50
+ doloremque explicabo perspiciatis quasi repellendus! Est dolore a nemo
51
+ aspernatur obcaecati dicta.
52
+ </BodyLong>
53
+ <BodyLong>
54
+ Lorem ipsum, dolor sit amet consectetur adipisicing elit. Fuga suscipit
55
+ voluptatum expedita earum id, aperiam deleniti molestiae eveniet
56
+ doloremque explicabo perspiciatis quasi repellendus! Est dolore a nemo
57
+ aspernatur obcaecati dicta.
58
+ </BodyLong>
59
+ </ExpansionCard.Content>
60
+ );
61
+
62
+ export const Default = {
63
+ render: (props) => {
64
+ return (
65
+ <ExpansionCard
66
+ {...props}
67
+ open={props?.open || undefined}
68
+ size={props.size}
69
+ aria-label="default-demo"
70
+ >
71
+ <ExpansionCard.Header>
72
+ <ExpansionCard.Title>Arbeidstakere</ExpansionCard.Title>
73
+ {props.description && (
74
+ <ExpansionCard.Description>
75
+ For at yrkesskadedekningen skal gjelde, er det som hovedregel krav
76
+ til tid, sted og arbeidsoppgaver
77
+ </ExpansionCard.Description>
78
+ )}
79
+ </ExpansionCard.Header>
80
+ <Content />
81
+ </ExpansionCard>
82
+ );
83
+ },
84
+ args: {
85
+ open: false,
86
+ size: "medium",
87
+ description: false,
88
+ variant: "neutral",
89
+ },
90
+ argTypes: {
91
+ size: { control: "select", options: ["medium", "small"] },
92
+ },
93
+ };
94
+
95
+ export const Description = {
96
+ render: () => (
97
+ <ExpansionCard aria-label="bare description">
98
+ <ExpansionCard.Header>
99
+ <ExpansionCard.Title>Arbeidstakere</ExpansionCard.Title>
100
+ <ExpansionCard.Description>
101
+ For at yrkesskadedekningen skal gjelde, er det som hovedregel krav til
102
+ tid, sted og arbeidsoppgaver
103
+ </ExpansionCard.Description>
104
+ </ExpansionCard.Header>
105
+ <Content />
106
+ </ExpansionCard>
107
+ ),
108
+ };
109
+
110
+ export const Sizes = {
111
+ render: () => (
112
+ <>
113
+ <h2>Medium</h2>
114
+ <ExpansionCard aria-label="Demo med description">
115
+ <ExpansionCard.Header>
116
+ <ExpansionCard.Title>Arbeidstakere</ExpansionCard.Title>
117
+ <ExpansionCard.Description>
118
+ For at yrkesskadedekningen skal gjelde, er det som hovedregel krav
119
+ til tid, sted og arbeidsoppgaver
120
+ </ExpansionCard.Description>
121
+ </ExpansionCard.Header>
122
+ <Content />
123
+ </ExpansionCard>
124
+ <ExpansionCard aria-label="Demo">
125
+ <ExpansionCard.Header>
126
+ <ExpansionCard.Title>Arbeidstakere</ExpansionCard.Title>
127
+ </ExpansionCard.Header>
128
+ <Content />
129
+ </ExpansionCard>
130
+ <h2>Small</h2>
131
+ <ExpansionCard size="small" aria-label="small-demo">
132
+ <ExpansionCard.Header>
133
+ <ExpansionCard.Title>Arbeidstakere</ExpansionCard.Title>
134
+ <ExpansionCard.Description>
135
+ For at yrkesskadedekningen skal gjelde, er det som hovedregel krav
136
+ til tid, sted og arbeidsoppgaver
137
+ </ExpansionCard.Description>
138
+ </ExpansionCard.Header>
139
+ <Content />
140
+ </ExpansionCard>
141
+ <ExpansionCard
142
+ size="small"
143
+ aria-label="small-demo med avatar uten description"
144
+ >
145
+ <ExpansionCard.Header>
146
+ <ExpansionCard.Title>Arbeidstakere</ExpansionCard.Title>
147
+ </ExpansionCard.Header>
148
+ <Content />
149
+ </ExpansionCard>
150
+ </>
151
+ ),
152
+ };
153
+
154
+ export const HeadingSizing = {
155
+ render: () => (
156
+ <>
157
+ {(["large", "medium", "small"] as const).map((x) => (
158
+ <ExpansionCard aria-label={`demo-${x}`}>
159
+ <ExpansionCard.Header key={x}>
160
+ <ExpansionCard.Title size={x}>{x}</ExpansionCard.Title>
161
+ <ExpansionCard.Description>
162
+ For at yrkesskadedekningen skal gjelde, er det som hovedregel krav
163
+ til tid, sted og arbeidsoppgaver
164
+ </ExpansionCard.Description>
165
+ </ExpansionCard.Header>
166
+ <Content />
167
+ </ExpansionCard>
168
+ ))}
169
+ </>
170
+ ),
171
+ };
172
+
173
+ export const DefaultOpen = {
174
+ render: () => (
175
+ <ExpansionCard defaultOpen aria-label="defaultOpen demo">
176
+ <ExpansionCard.Header>
177
+ <ExpansionCard.Title>Arbeidstakere</ExpansionCard.Title>
178
+ <ExpansionCard.Description>
179
+ For at yrkesskadedekningen skal gjelde, er det som hovedregel krav til
180
+ tid, sted og arbeidsoppgaver
181
+ </ExpansionCard.Description>
182
+ </ExpansionCard.Header>
183
+ <Content />
184
+ </ExpansionCard>
185
+ ),
186
+ };
187
+
188
+ export const ControlledState = {
189
+ render: () => {
190
+ // eslint-disable-next-line react-hooks/rules-of-hooks
191
+ const [open, setOpen] = useState(false);
192
+ return (
193
+ <ExpansionCard
194
+ open={open}
195
+ onToggle={setOpen}
196
+ aria-label="Controlled-state demo"
197
+ >
198
+ <ExpansionCard.Header>
199
+ <ExpansionCard.Title>Arbeidstakere</ExpansionCard.Title>
200
+ <ExpansionCard.Description>
201
+ For at yrkesskadedekningen skal gjelde, er det som hovedregel krav
202
+ til tid, sted og arbeidsoppgaver
203
+ </ExpansionCard.Description>
204
+ </ExpansionCard.Header>
205
+ <Content />
206
+ </ExpansionCard>
207
+ );
208
+ },
209
+ };
210
+
211
+ export const Customization = {
212
+ render: () => (
213
+ <div className="subtle-card">
214
+ <ExpansionCard aria-label="custom-styling demo">
215
+ <ExpansionCard.Header>
216
+ <ExpansionCard.Title>Arbeidstakere</ExpansionCard.Title>
217
+ <ExpansionCard.Description>
218
+ For at yrkesskadedekningen skal gjelde, er det som hovedregel krav
219
+ til tid, sted og arbeidsoppgaver
220
+ </ExpansionCard.Description>
221
+ </ExpansionCard.Header>
222
+ <Content />
223
+ </ExpansionCard>
224
+
225
+ <style>{`
226
+ .subtle-card {
227
+ --ac-expansioncard-bg: var(--a-surface-subtle);
228
+ --ac-expansioncard-border-open-color: var(--a-border-alt-3);
229
+ }`}</style>
230
+ </div>
231
+ ),
232
+ };
233
+
234
+ export const Icon = {
235
+ render: () => (
236
+ <div>
237
+ <ExpansionCard aria-label="custom-styling demo">
238
+ <ExpansionCard.Header>
239
+ <div className="with-icon">
240
+ <div className="icon">
241
+ <PlantIcon aria-hidden />
242
+ </div>
243
+ <div>
244
+ <ExpansionCard.Title>Arbeidstakere</ExpansionCard.Title>
245
+ <ExpansionCard.Description>
246
+ For at yrkesskadedekningen skal gjelde, er det som hovedregel
247
+ krav til tid, sted og arbeidsoppgaver
248
+ </ExpansionCard.Description>
249
+ </div>
250
+ </div>
251
+ </ExpansionCard.Header>
252
+ <Content />
253
+ </ExpansionCard>
254
+
255
+ <style>{`
256
+ .with-icon {
257
+ display: flex;
258
+ align-items: center;
259
+ gap: 1rem;
260
+ }
261
+ .icon {
262
+ font-size: 3rem;
263
+ flex-shrink: 0;
264
+ display: grid;
265
+ place-content: center;
266
+ }`}</style>
267
+ </div>
268
+ ),
269
+ };
@@ -0,0 +1,4 @@
1
+ export {
2
+ type ExpansionCardProps,
3
+ default as ExpansionCard,
4
+ } from "./ExpansionCard";
package/src/index.ts CHANGED
@@ -5,6 +5,7 @@ export * from "./chat";
5
5
  export * from "./chips";
6
6
  export * from "./date";
7
7
  export * from "./form";
8
+ export * from "./expansion-card";
8
9
  export * from "./grid";
9
10
  export * from "./guide-panel";
10
11
  export * from "./help-text";