@navikt/ds-react 6.0.0-alpha.7 → 6.0.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/cjs/date/parts/DateWrapper.js +2 -2
- package/cjs/date/parts/DateWrapper.js.map +1 -1
- package/cjs/form/error-summary/ErrorSummary.d.ts +3 -9
- package/cjs/form/error-summary/ErrorSummary.js +9 -4
- package/cjs/form/error-summary/ErrorSummary.js.map +1 -1
- package/cjs/form/error-summary/ErrorSummaryItem.d.ts +1 -1
- package/cjs/form/error-summary/ErrorSummaryItem.js +1 -2
- package/cjs/form/error-summary/ErrorSummaryItem.js.map +1 -1
- package/cjs/form/search/Search.d.ts +1 -1
- package/cjs/form/search/Search.js +1 -1
- package/cjs/index.js +1 -0
- package/cjs/index.js.map +1 -1
- package/cjs/modal/Modal.context.d.ts +9 -0
- package/cjs/modal/Modal.context.js +10 -0
- package/cjs/modal/Modal.context.js.map +1 -0
- package/cjs/modal/Modal.js +3 -6
- package/cjs/modal/Modal.js.map +1 -1
- package/cjs/modal/ModalHeader.js +2 -6
- package/cjs/modal/ModalHeader.js.map +1 -1
- package/cjs/modal/types.d.ts +24 -3
- package/cjs/panel/Panel.d.ts +9 -16
- package/cjs/panel/Panel.js +6 -16
- package/cjs/panel/Panel.js.map +1 -1
- package/cjs/popover/Popover.js +2 -2
- package/cjs/popover/Popover.js.map +1 -1
- package/cjs/table/types.d.ts +1 -1
- package/cjs/tooltip/Tooltip.js +3 -3
- package/cjs/tooltip/Tooltip.js.map +1 -1
- package/cjs/util/create-context.d.ts +2 -5
- package/cjs/util/create-context.js +9 -5
- package/cjs/util/create-context.js.map +1 -1
- package/cjs/util/types/OverridableComponent.d.ts +1 -1
- package/esm/date/parts/DateWrapper.js +3 -3
- package/esm/date/parts/DateWrapper.js.map +1 -1
- package/esm/form/error-summary/ErrorSummary.d.ts +3 -9
- package/esm/form/error-summary/ErrorSummary.js +10 -5
- package/esm/form/error-summary/ErrorSummary.js.map +1 -1
- package/esm/form/error-summary/ErrorSummaryItem.d.ts +1 -1
- package/esm/form/error-summary/ErrorSummaryItem.js +1 -2
- package/esm/form/error-summary/ErrorSummaryItem.js.map +1 -1
- package/esm/form/search/Search.d.ts +1 -1
- package/esm/form/search/Search.js +1 -1
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -1
- package/esm/modal/Modal.context.d.ts +9 -0
- package/esm/modal/Modal.context.js +6 -0
- package/esm/modal/Modal.context.js.map +1 -0
- package/esm/modal/Modal.js +3 -6
- package/esm/modal/Modal.js.map +1 -1
- package/esm/modal/ModalHeader.js +3 -7
- package/esm/modal/ModalHeader.js.map +1 -1
- package/esm/modal/types.d.ts +24 -3
- package/esm/panel/Panel.d.ts +9 -16
- package/esm/panel/Panel.js +6 -16
- package/esm/panel/Panel.js.map +1 -1
- package/esm/popover/Popover.js +2 -2
- package/esm/popover/Popover.js.map +1 -1
- package/esm/table/types.d.ts +1 -1
- package/esm/tooltip/Tooltip.js +4 -4
- package/esm/tooltip/Tooltip.js.map +1 -1
- package/esm/util/create-context.d.ts +2 -5
- package/esm/util/create-context.js +10 -6
- package/esm/util/create-context.js.map +1 -1
- package/esm/util/types/OverridableComponent.d.ts +1 -1
- package/package.json +6 -6
- package/src/accordion/accordion.stories.tsx +121 -135
- package/src/button/button.stories.tsx +88 -185
- package/src/chat/chat.stories.tsx +285 -186
- package/src/date/datepicker/datepicker.stories.tsx +6 -2
- package/src/date/monthpicker/monthpicker.stories.tsx +2 -1
- package/src/date/parts/DateWrapper.tsx +3 -3
- package/src/dropdown/dropdown.stories.tsx +1 -1
- package/src/form/error-summary/ErrorSummary.tsx +11 -15
- package/src/form/error-summary/ErrorSummaryItem.tsx +8 -10
- package/src/form/error-summary/error-summary.stories.tsx +2 -56
- package/src/form/search/Search.tsx +4 -4
- package/src/form/stories/confirmation-panel.stories.tsx +1 -1
- package/src/form/stories/textarea.stories.tsx +1 -1
- package/src/help-text/help-text.stories.tsx +2 -1
- package/src/index.ts +1 -0
- package/src/internal-header/header.stories.tsx +2 -1
- package/src/layout/bleed/Bleed.stories.tsx +2 -1
- package/src/layout/box/Box.stories.tsx +2 -1
- package/src/layout/sidemal-test/navno-sidemal.stories.tsx +4 -1
- package/src/link/stories/link.stories.tsx +20 -22
- package/src/link-panel/link-panel.stories.tsx +1 -1
- package/src/list/list.stories.tsx +2 -1
- package/src/loader/loader.stories.tsx +1 -1
- package/src/modal/Modal.context.ts +13 -0
- package/src/modal/Modal.test.tsx +2 -2
- package/src/modal/Modal.tsx +6 -8
- package/src/modal/ModalHeader.tsx +3 -7
- package/src/modal/modal.stories.tsx +33 -6
- package/src/modal/types.ts +21 -4
- package/src/panel/Panel.tsx +9 -16
- package/src/popover/Popover.tsx +2 -2
- package/src/stepper/stepper.stories.tsx +1 -1
- package/src/table/stories/{table.stories.tsx → table-1.stories.tsx} +118 -92
- package/src/table/stories/{table-expandable.stories.tsx → table-2-expandable.stories.tsx} +10 -34
- package/src/table/stories/{table-async.stories.tsx → table-3-async.stories.tsx} +5 -3
- package/src/table/stories/tests/table.stories.tsx +4 -1
- package/src/table/types.ts +1 -1
- package/src/tabs/Tabs.test.tsx +109 -0
- package/src/toggle-group/ToggleGroup.test.tsx +54 -0
- package/src/tooltip/Tooltip.tsx +4 -10
- package/src/tooltip/tooltip.stories.tsx +4 -1
- package/src/typography/stories/bodylong.stories.tsx +49 -3
- package/src/typography/stories/bodyshort.stories.tsx +50 -4
- package/src/typography/stories/detail.stories.tsx +32 -3
- package/src/typography/stories/error-message.stories.tsx +34 -3
- package/src/typography/stories/heading.stories.tsx +32 -3
- package/src/typography/stories/label.stories.tsx +38 -3
- package/src/util/create-context.tsx +26 -15
- package/src/util/types/OverridableComponent.ts +1 -1
- package/_docs.json +0 -20247
- package/cjs/modal/ModalContext.d.ts +0 -7
- package/cjs/modal/ModalContext.js +0 -9
- package/cjs/modal/ModalContext.js.map +0 -1
- package/esm/modal/ModalContext.d.ts +0 -7
- package/esm/modal/ModalContext.js +0 -3
- package/esm/modal/ModalContext.js.map +0 -1
- package/src/modal/ModalContext.ts +0 -7
- package/src/panel/panel.stories.tsx +0 -63
- package/src/typography/stories/ingress.stories.tsx +0 -50
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { StoryObj } from "@storybook/react";
|
|
1
2
|
import React, { useState } from "react";
|
|
2
3
|
import { Accordion, AccordionProps } from ".";
|
|
3
|
-
import { Table } from "..";
|
|
4
4
|
import AccordionContent from "./AccordionContent";
|
|
5
5
|
import AccordionHeader from "./AccordionHeader";
|
|
6
6
|
import AccordionItem from "./AccordionItem";
|
|
@@ -13,13 +13,15 @@ export default {
|
|
|
13
13
|
AccordionContent,
|
|
14
14
|
AccordionHeader,
|
|
15
15
|
},
|
|
16
|
+
parameters: {
|
|
17
|
+
chromatic: { disable: true },
|
|
18
|
+
},
|
|
16
19
|
decorators: [
|
|
17
20
|
(Story) => (
|
|
18
21
|
<div
|
|
19
22
|
style={{
|
|
20
23
|
width: "600px",
|
|
21
24
|
minHeight: "100vh",
|
|
22
|
-
padding: "10rem 0",
|
|
23
25
|
display: "flex",
|
|
24
26
|
flexDirection: "column",
|
|
25
27
|
gap: "1rem",
|
|
@@ -29,25 +31,10 @@ export default {
|
|
|
29
31
|
</div>
|
|
30
32
|
),
|
|
31
33
|
],
|
|
32
|
-
argTypes: {
|
|
33
|
-
variant: {
|
|
34
|
-
options: ["default", "neutral"],
|
|
35
|
-
control: { type: "select" },
|
|
36
|
-
},
|
|
37
|
-
headingSize: {
|
|
38
|
-
options: ["large", "medium", "small", "xsmall"],
|
|
39
|
-
control: { type: "select" },
|
|
40
|
-
},
|
|
41
|
-
size: {
|
|
42
|
-
options: ["large", "medium", "small"],
|
|
43
|
-
control: { type: "select" },
|
|
44
|
-
},
|
|
45
|
-
nItems: {
|
|
46
|
-
control: { type: "number" },
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
34
|
};
|
|
50
35
|
|
|
36
|
+
type Story = StoryObj<typeof Accordion>;
|
|
37
|
+
|
|
51
38
|
const Content = () => (
|
|
52
39
|
<Accordion.Content>
|
|
53
40
|
Magna aliquip aliquip fugiat nostrud nostrud velit pariatur veniam officia
|
|
@@ -103,22 +90,34 @@ const Item = (props) => {
|
|
|
103
90
|
);
|
|
104
91
|
};
|
|
105
92
|
|
|
106
|
-
export const
|
|
107
|
-
render: ({
|
|
93
|
+
export const Controls: Story = {
|
|
94
|
+
render: ({ ...props }) => {
|
|
108
95
|
return (
|
|
109
96
|
<div style={{ width: 500 }}>
|
|
110
97
|
<Accordion {...props}>
|
|
111
|
-
{[...Array(
|
|
98
|
+
{[...Array(4)].map((_, y) => (
|
|
112
99
|
<Item key={y} {...props} />
|
|
113
100
|
))}
|
|
114
101
|
</Accordion>
|
|
115
102
|
</div>
|
|
116
103
|
);
|
|
117
104
|
},
|
|
105
|
+
argTypes: {
|
|
106
|
+
variant: {
|
|
107
|
+
options: ["default", "neutral"],
|
|
108
|
+
control: { type: "select" },
|
|
109
|
+
},
|
|
110
|
+
headingSize: {
|
|
111
|
+
options: ["large", "medium", "small", "xsmall"],
|
|
112
|
+
control: { type: "select" },
|
|
113
|
+
},
|
|
114
|
+
size: {
|
|
115
|
+
options: ["large", "medium", "small"],
|
|
116
|
+
control: { type: "select" },
|
|
117
|
+
},
|
|
118
|
+
},
|
|
118
119
|
|
|
119
120
|
args: {
|
|
120
|
-
controlled: false,
|
|
121
|
-
nItems: 2,
|
|
122
121
|
variant: "default",
|
|
123
122
|
headingSize: "medium",
|
|
124
123
|
size: "medium",
|
|
@@ -126,37 +125,31 @@ export const Default = {
|
|
|
126
125
|
},
|
|
127
126
|
};
|
|
128
127
|
|
|
129
|
-
export const DefaultOpen = {
|
|
130
|
-
render: (
|
|
128
|
+
export const DefaultOpen: Story = {
|
|
129
|
+
render: () => {
|
|
131
130
|
return (
|
|
132
131
|
<div style={{ width: 500 }}>
|
|
133
|
-
<Accordion
|
|
134
|
-
{[...Array(
|
|
135
|
-
<Item key={y} defaultOpen={
|
|
132
|
+
<Accordion>
|
|
133
|
+
{[...Array(4)].map((_, y) => (
|
|
134
|
+
<Item key={y} defaultOpen={y === 2} />
|
|
136
135
|
))}
|
|
137
136
|
</Accordion>
|
|
138
137
|
</div>
|
|
139
138
|
);
|
|
140
139
|
},
|
|
141
|
-
|
|
142
|
-
args: {
|
|
143
|
-
openItems: [1, 2],
|
|
144
|
-
controlled: false,
|
|
145
|
-
nItems: 5,
|
|
146
|
-
variant: "neutral",
|
|
147
|
-
headingSize: "large",
|
|
148
|
-
},
|
|
149
140
|
};
|
|
150
141
|
|
|
151
|
-
export const Variants = {
|
|
142
|
+
export const Variants: Story = {
|
|
152
143
|
render: () => {
|
|
153
144
|
return (
|
|
154
145
|
<div style={{ width: 500 }} className="colgap">
|
|
146
|
+
<h3>Default</h3>
|
|
155
147
|
<Accordion>
|
|
156
148
|
{[...Array(2)].map((_, y) => (
|
|
157
149
|
<Item key={y} defaultOpen />
|
|
158
150
|
))}
|
|
159
151
|
</Accordion>
|
|
152
|
+
<h3>Neutral</h3>
|
|
160
153
|
<Accordion variant="neutral">
|
|
161
154
|
{[...Array(2)].map((_, y) => (
|
|
162
155
|
<Item key={y} defaultOpen />
|
|
@@ -167,96 +160,32 @@ export const Variants = {
|
|
|
167
160
|
},
|
|
168
161
|
};
|
|
169
162
|
|
|
170
|
-
export const
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
<Accordion {...props}>
|
|
177
|
-
<Accordion.Item open={open}>
|
|
178
|
-
<Accordion.Header onClick={() => setOpen(!open)}>
|
|
179
|
-
Accordion header text
|
|
180
|
-
</Accordion.Header>
|
|
181
|
-
<Content />
|
|
182
|
-
</Accordion.Item>
|
|
183
|
-
<Accordion.Item open={open2}>
|
|
184
|
-
<Accordion.Header onClick={() => setOpen2(!open2)}>
|
|
185
|
-
Accordion header text
|
|
186
|
-
</Accordion.Header>
|
|
187
|
-
<Content />
|
|
188
|
-
</Accordion.Item>
|
|
189
|
-
</Accordion>
|
|
190
|
-
</div>
|
|
191
|
-
);
|
|
192
|
-
};
|
|
193
|
-
|
|
194
|
-
export const WithTable = {
|
|
195
|
-
render: (props) => {
|
|
196
|
-
const ExampleTable = () => {
|
|
197
|
-
return (
|
|
198
|
-
<Table>
|
|
199
|
-
<Table.Header>
|
|
200
|
-
<Table.Row>
|
|
201
|
-
<Table.HeaderCell>ID</Table.HeaderCell>
|
|
202
|
-
<Table.HeaderCell>Fornavn</Table.HeaderCell>
|
|
203
|
-
<Table.HeaderCell>Etternavn</Table.HeaderCell>
|
|
204
|
-
<Table.HeaderCell>Rolle</Table.HeaderCell>
|
|
205
|
-
</Table.Row>
|
|
206
|
-
</Table.Header>
|
|
207
|
-
<Table.Body>
|
|
208
|
-
<Table.Row>
|
|
209
|
-
<Table.HeaderCell>1</Table.HeaderCell>
|
|
210
|
-
<Table.DataCell>Jean-Luc</Table.DataCell>
|
|
211
|
-
<Table.DataCell>Picard</Table.DataCell>
|
|
212
|
-
<Table.DataCell>Kaptein</Table.DataCell>
|
|
213
|
-
</Table.Row>
|
|
214
|
-
<Table.Row>
|
|
215
|
-
<Table.HeaderCell>2</Table.HeaderCell>
|
|
216
|
-
<Table.DataCell>William</Table.DataCell>
|
|
217
|
-
<Table.DataCell>Riker</Table.DataCell>
|
|
218
|
-
<Table.DataCell>Kommandør</Table.DataCell>
|
|
219
|
-
</Table.Row>
|
|
220
|
-
<Table.Row>
|
|
221
|
-
<Table.HeaderCell>3</Table.HeaderCell>
|
|
222
|
-
<Table.DataCell>Geordi</Table.DataCell>
|
|
223
|
-
<Table.DataCell>La Forge</Table.DataCell>
|
|
224
|
-
<Table.DataCell>Sjefsingeniør</Table.DataCell>
|
|
225
|
-
</Table.Row>
|
|
226
|
-
</Table.Body>
|
|
227
|
-
</Table>
|
|
228
|
-
);
|
|
229
|
-
};
|
|
230
|
-
|
|
231
|
-
const ContentWithTable = () => {
|
|
232
|
-
return (
|
|
233
|
-
<Accordion.Content>
|
|
234
|
-
<ExampleTable />
|
|
235
|
-
</Accordion.Content>
|
|
236
|
-
);
|
|
237
|
-
};
|
|
163
|
+
export const ControlledState: Story = {
|
|
164
|
+
render: () => {
|
|
165
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
166
|
+
const [open, setOpen] = useState(false);
|
|
167
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
168
|
+
const [open2, setOpen2] = useState(false);
|
|
238
169
|
|
|
239
170
|
return (
|
|
240
171
|
<div style={{ width: 500 }}>
|
|
241
|
-
<Accordion
|
|
242
|
-
<Accordion.Item>
|
|
243
|
-
<Accordion.Header
|
|
244
|
-
|
|
172
|
+
<Accordion>
|
|
173
|
+
<Accordion.Item open={open}>
|
|
174
|
+
<Accordion.Header onClick={() => setOpen(!open)}>
|
|
175
|
+
Accordion header text
|
|
176
|
+
</Accordion.Header>
|
|
177
|
+
<Content />
|
|
245
178
|
</Accordion.Item>
|
|
246
|
-
<Accordion.Item>
|
|
247
|
-
<Accordion.Header
|
|
248
|
-
|
|
179
|
+
<Accordion.Item open={open2}>
|
|
180
|
+
<Accordion.Header onClick={() => setOpen2(!open2)}>
|
|
181
|
+
Accordion header text
|
|
182
|
+
</Accordion.Header>
|
|
183
|
+
<Content />
|
|
249
184
|
</Accordion.Item>
|
|
250
185
|
</Accordion>
|
|
251
186
|
</div>
|
|
252
187
|
);
|
|
253
188
|
},
|
|
254
|
-
|
|
255
|
-
args: {
|
|
256
|
-
variant: "default",
|
|
257
|
-
headingSize: "large",
|
|
258
|
-
indent: false,
|
|
259
|
-
},
|
|
260
189
|
};
|
|
261
190
|
|
|
262
191
|
const SingleHeaderAccordion = ({
|
|
@@ -269,9 +198,11 @@ const SingleHeaderAccordion = ({
|
|
|
269
198
|
<Accordion.Header>{`${size} size + ${headingSize} heading`}</Accordion.Header>
|
|
270
199
|
<Accordion.Content>a</Accordion.Content>
|
|
271
200
|
</Accordion.Item>
|
|
272
|
-
<Accordion.Item>
|
|
201
|
+
<Accordion.Item open>
|
|
273
202
|
<Accordion.Header>{`${size} size + ${headingSize} heading`}</Accordion.Header>
|
|
274
|
-
<Accordion.Content>
|
|
203
|
+
<Accordion.Content>
|
|
204
|
+
lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
|
205
|
+
</Accordion.Content>
|
|
275
206
|
</Accordion.Item>
|
|
276
207
|
</Accordion>
|
|
277
208
|
);
|
|
@@ -285,18 +216,73 @@ const headingSizes: AccordionProps["headingSize"][] = [
|
|
|
285
216
|
"xsmall",
|
|
286
217
|
];
|
|
287
218
|
|
|
288
|
-
export const Size =
|
|
289
|
-
|
|
290
|
-
{
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
219
|
+
export const Size: Story = {
|
|
220
|
+
render: () => (
|
|
221
|
+
<div style={{ width: 500 }} className="colgap">
|
|
222
|
+
{sizes.map((size) => (
|
|
223
|
+
<SingleHeaderAccordion key={size} size={size} />
|
|
224
|
+
))}
|
|
225
|
+
</div>
|
|
226
|
+
),
|
|
227
|
+
};
|
|
295
228
|
|
|
296
|
-
export const HeadingSize =
|
|
297
|
-
|
|
298
|
-
{
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
229
|
+
export const HeadingSize: Story = {
|
|
230
|
+
render: () => (
|
|
231
|
+
<div style={{ width: 500 }} className="colgap">
|
|
232
|
+
{headingSizes.map((size) => (
|
|
233
|
+
<SingleHeaderAccordion key={size} headingSize={size} />
|
|
234
|
+
))}
|
|
235
|
+
</div>
|
|
236
|
+
),
|
|
237
|
+
};
|
|
238
|
+
|
|
239
|
+
export const Indent: Story = {
|
|
240
|
+
render: () => {
|
|
241
|
+
return (
|
|
242
|
+
<div style={{ width: 500 }} className="colgap">
|
|
243
|
+
<h3>No indent</h3>
|
|
244
|
+
<Accordion indent>
|
|
245
|
+
{[...Array(2)].map((_, y) => (
|
|
246
|
+
<Item key={y} defaultOpen />
|
|
247
|
+
))}
|
|
248
|
+
</Accordion>
|
|
249
|
+
<h3>Indent</h3>
|
|
250
|
+
<Accordion indent={false}>
|
|
251
|
+
{[...Array(2)].map((_, y) => (
|
|
252
|
+
<Item key={y} defaultOpen />
|
|
253
|
+
))}
|
|
254
|
+
</Accordion>
|
|
255
|
+
</div>
|
|
256
|
+
);
|
|
257
|
+
},
|
|
258
|
+
};
|
|
259
|
+
|
|
260
|
+
export const Chromatic: Story = {
|
|
261
|
+
render: (...props) => (
|
|
262
|
+
<div>
|
|
263
|
+
<div>
|
|
264
|
+
<h2>Variants</h2>
|
|
265
|
+
{Variants.render?.(...props)}
|
|
266
|
+
</div>
|
|
267
|
+
<div>
|
|
268
|
+
<h2>Size</h2>
|
|
269
|
+
{Size.render?.(...props)}
|
|
270
|
+
</div>
|
|
271
|
+
<div>
|
|
272
|
+
<h2>HeadingSize</h2>
|
|
273
|
+
{HeadingSize.render?.(...props)}
|
|
274
|
+
</div>
|
|
275
|
+
<div>
|
|
276
|
+
<h2>DefaultOpen</h2>
|
|
277
|
+
{DefaultOpen.render?.(...props)}
|
|
278
|
+
</div>
|
|
279
|
+
<div>
|
|
280
|
+
<h2>Indent</h2>
|
|
281
|
+
{Indent.render?.(...props)}
|
|
282
|
+
</div>
|
|
283
|
+
</div>
|
|
284
|
+
),
|
|
285
|
+
parameters: {
|
|
286
|
+
chromatic: { disable: false },
|
|
287
|
+
},
|
|
288
|
+
};
|
|
@@ -1,15 +1,21 @@
|
|
|
1
|
+
import { StoryObj } from "@storybook/react";
|
|
1
2
|
import React from "react";
|
|
2
|
-
import { StarIcon } from "@navikt/aksel-icons";
|
|
3
|
+
import { StarIcon as BaseStarIcon } from "@navikt/aksel-icons";
|
|
4
|
+
import { HStack, VStack } from "../layout/stack";
|
|
3
5
|
import { Button } from "./index";
|
|
4
6
|
|
|
5
7
|
export default {
|
|
6
8
|
title: "ds-react/Button",
|
|
7
9
|
component: Button,
|
|
8
10
|
parameters: {
|
|
9
|
-
chromatic: {
|
|
11
|
+
chromatic: { disable: true },
|
|
10
12
|
},
|
|
11
13
|
};
|
|
12
14
|
|
|
15
|
+
type Story = StoryObj<typeof Button>;
|
|
16
|
+
|
|
17
|
+
const StarIcon = () => <BaseStarIcon aria-hidden />;
|
|
18
|
+
|
|
13
19
|
const variants: (
|
|
14
20
|
| "primary"
|
|
15
21
|
| "secondary"
|
|
@@ -28,17 +34,7 @@ const variants: (
|
|
|
28
34
|
"tertiary-neutral",
|
|
29
35
|
];
|
|
30
36
|
|
|
31
|
-
const
|
|
32
|
-
primary: "Primary",
|
|
33
|
-
secondary: "Secondary",
|
|
34
|
-
tertiary: "Tertiary",
|
|
35
|
-
danger: "Danger",
|
|
36
|
-
"primary-neutral": "Primary",
|
|
37
|
-
"secondary-neutral": "Secondary",
|
|
38
|
-
"tertiary-neutral": "Tertiary",
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
export const Default = {
|
|
37
|
+
export const Controls: Story = {
|
|
42
38
|
render: (props) => {
|
|
43
39
|
return (
|
|
44
40
|
<Button
|
|
@@ -57,7 +53,7 @@ export const Default = {
|
|
|
57
53
|
icon: false,
|
|
58
54
|
loading: false,
|
|
59
55
|
iconPosition: "left",
|
|
60
|
-
children: "
|
|
56
|
+
children: "Button",
|
|
61
57
|
variant: "primary",
|
|
62
58
|
size: "medium",
|
|
63
59
|
},
|
|
@@ -91,192 +87,99 @@ export const Default = {
|
|
|
91
87
|
},
|
|
92
88
|
};
|
|
93
89
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
{
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
90
|
+
function ButtonGrid(props: any) {
|
|
91
|
+
return (
|
|
92
|
+
<VStack gap="2">
|
|
93
|
+
{variants.map((variant) => (
|
|
94
|
+
<HStack gap="2" key={variant}>
|
|
95
|
+
<Button variant={variant} {...props}>
|
|
96
|
+
Button
|
|
97
|
+
</Button>
|
|
98
|
+
<Button variant={variant} {...props} icon={<StarIcon />}>
|
|
99
|
+
Button
|
|
100
|
+
</Button>
|
|
101
|
+
<Button
|
|
102
|
+
variant={variant}
|
|
103
|
+
{...props}
|
|
104
|
+
icon={<StarIcon />}
|
|
105
|
+
iconPosition="right"
|
|
106
|
+
>
|
|
107
|
+
Button
|
|
108
|
+
</Button>
|
|
109
|
+
<Button variant={variant} {...props} icon={<StarIcon />} />
|
|
110
|
+
</HStack>
|
|
111
|
+
))}
|
|
112
|
+
</VStack>
|
|
113
|
+
);
|
|
114
|
+
}
|
|
103
115
|
|
|
104
|
-
export const
|
|
105
|
-
<
|
|
106
|
-
|
|
107
|
-
<Button key={variant} variant={variant} size="xsmall">
|
|
108
|
-
{varSwitch[variant]}
|
|
109
|
-
</Button>
|
|
110
|
-
))}
|
|
111
|
-
</div>
|
|
112
|
-
);
|
|
116
|
+
export const Medium: Story = {
|
|
117
|
+
render: () => <ButtonGrid size="medium" />,
|
|
118
|
+
};
|
|
113
119
|
|
|
114
|
-
export const
|
|
115
|
-
<
|
|
116
|
-
|
|
117
|
-
<Button key={variant} variant={variant} as="a" href="#thecakeisalie">
|
|
118
|
-
{varSwitch[variant]}
|
|
119
|
-
</Button>
|
|
120
|
-
))}
|
|
121
|
-
</div>
|
|
122
|
-
);
|
|
120
|
+
export const Small: Story = {
|
|
121
|
+
render: () => <ButtonGrid size="small" />,
|
|
122
|
+
};
|
|
123
123
|
|
|
124
|
-
export const
|
|
124
|
+
export const XSmall: Story = {
|
|
125
|
+
render: () => <ButtonGrid size="xsmall" />,
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
export const AsLink: Story = {
|
|
125
129
|
render: () => (
|
|
126
|
-
<
|
|
127
|
-
<
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
<div className="rowgap">
|
|
135
|
-
{variants.map((variant) => (
|
|
136
|
-
<Button key={variant} variant={variant} loading size="small">
|
|
137
|
-
{varSwitch[variant]}
|
|
138
|
-
</Button>
|
|
139
|
-
))}
|
|
140
|
-
</div>
|
|
141
|
-
<div className="rowgap">
|
|
142
|
-
{variants.map((variant) => (
|
|
143
|
-
<Button key={variant} variant={variant} loading size="xsmall">
|
|
144
|
-
{varSwitch[variant]}
|
|
145
|
-
</Button>
|
|
146
|
-
))}
|
|
147
|
-
</div>
|
|
148
|
-
</div>
|
|
130
|
+
<VStack gap="4">
|
|
131
|
+
<Button href="#" as="a">
|
|
132
|
+
Button as a-tag
|
|
133
|
+
</Button>
|
|
134
|
+
<Button href="#" as="a" disabled>
|
|
135
|
+
Disabled Button as a-tag
|
|
136
|
+
</Button>
|
|
137
|
+
</VStack>
|
|
149
138
|
),
|
|
139
|
+
};
|
|
150
140
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
},
|
|
141
|
+
export const Loading: Story = {
|
|
142
|
+
render: () => <ButtonGrid loading />,
|
|
154
143
|
};
|
|
155
144
|
|
|
156
|
-
export const
|
|
157
|
-
<
|
|
158
|
-
|
|
159
|
-
{variants.map((variant) => (
|
|
160
|
-
<Button
|
|
161
|
-
key={variant}
|
|
162
|
-
variant={variant}
|
|
163
|
-
icon={<StarIcon title="Stjerne" />}
|
|
164
|
-
/>
|
|
165
|
-
))}
|
|
166
|
-
</div>
|
|
167
|
-
<div className="rowgap">
|
|
168
|
-
{variants.map((variant) => (
|
|
169
|
-
<Button
|
|
170
|
-
key={variant}
|
|
171
|
-
variant={variant}
|
|
172
|
-
size="small"
|
|
173
|
-
icon={<StarIcon title="Stjerne" />}
|
|
174
|
-
/>
|
|
175
|
-
))}
|
|
176
|
-
</div>
|
|
177
|
-
<div className="rowgap">
|
|
178
|
-
{variants.map((variant) => (
|
|
179
|
-
<Button
|
|
180
|
-
key={variant}
|
|
181
|
-
variant={variant}
|
|
182
|
-
size="xsmall"
|
|
183
|
-
icon={<StarIcon title="Stjerne" />}
|
|
184
|
-
/>
|
|
185
|
-
))}
|
|
186
|
-
</div>
|
|
187
|
-
</div>
|
|
188
|
-
);
|
|
145
|
+
export const LoadingAsLink: Story = {
|
|
146
|
+
render: () => <ButtonGrid loading href="#" as="a" />,
|
|
147
|
+
};
|
|
189
148
|
|
|
190
|
-
export const
|
|
191
|
-
<
|
|
192
|
-
|
|
193
|
-
{variants.map((variant, i) => (
|
|
194
|
-
<Button
|
|
195
|
-
key={variant}
|
|
196
|
-
variant={variant}
|
|
197
|
-
icon={<StarIcon title="Stjerne" />}
|
|
198
|
-
iconPosition={i % 2 ? "left" : "right"}
|
|
199
|
-
>
|
|
200
|
-
{varSwitch[variant]}
|
|
201
|
-
</Button>
|
|
202
|
-
))}
|
|
203
|
-
</div>
|
|
204
|
-
<div className="rowgap">
|
|
205
|
-
{variants.map((variant, i) => (
|
|
206
|
-
<Button
|
|
207
|
-
key={variant}
|
|
208
|
-
variant={variant}
|
|
209
|
-
size="small"
|
|
210
|
-
icon={<StarIcon title="Stjerne" />}
|
|
211
|
-
iconPosition={i % 2 ? "left" : "right"}
|
|
212
|
-
>
|
|
213
|
-
{varSwitch[variant]}
|
|
214
|
-
</Button>
|
|
215
|
-
))}
|
|
216
|
-
</div>
|
|
217
|
-
<div className="rowgap">
|
|
218
|
-
{variants.map((variant, i) => (
|
|
219
|
-
<Button
|
|
220
|
-
key={variant}
|
|
221
|
-
variant={variant}
|
|
222
|
-
size="xsmall"
|
|
223
|
-
icon={<StarIcon title="Stjerne" />}
|
|
224
|
-
iconPosition={i % 2 ? "left" : "right"}
|
|
225
|
-
>
|
|
226
|
-
{varSwitch[variant]}
|
|
227
|
-
</Button>
|
|
228
|
-
))}
|
|
229
|
-
</div>
|
|
230
|
-
</div>
|
|
231
|
-
);
|
|
149
|
+
export const Disabled: Story = {
|
|
150
|
+
render: () => <ButtonGrid disabled />,
|
|
151
|
+
};
|
|
232
152
|
|
|
233
|
-
export const
|
|
234
|
-
<
|
|
235
|
-
|
|
236
|
-
{variants.map((variant) => (
|
|
237
|
-
<Button key={variant} variant={variant} disabled>
|
|
238
|
-
{varSwitch[variant]}
|
|
239
|
-
</Button>
|
|
240
|
-
))}
|
|
241
|
-
</div>
|
|
242
|
-
<div className="rowgap">
|
|
243
|
-
{variants.map((variant) => (
|
|
244
|
-
<Button key={variant} variant={variant} disabled as="a" href="#">
|
|
245
|
-
{varSwitch[variant]}
|
|
246
|
-
</Button>
|
|
247
|
-
))}
|
|
248
|
-
</div>
|
|
249
|
-
</div>
|
|
250
|
-
);
|
|
153
|
+
export const DisabledAsLink: Story = {
|
|
154
|
+
render: () => <ButtonGrid disabled href="#" as="a" />,
|
|
155
|
+
};
|
|
251
156
|
|
|
252
|
-
export const
|
|
157
|
+
export const Chromatic: Story = {
|
|
253
158
|
render: () => (
|
|
254
|
-
<
|
|
255
|
-
<div
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
{varSwitch[variant]}
|
|
259
|
-
</Button>
|
|
260
|
-
))}
|
|
159
|
+
<VStack gap="6" align="center">
|
|
160
|
+
<div>
|
|
161
|
+
<h2>Medium</h2>
|
|
162
|
+
<ButtonGrid size="medium" />
|
|
261
163
|
</div>
|
|
262
|
-
<div
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
as="a"
|
|
270
|
-
href="#"
|
|
271
|
-
>
|
|
272
|
-
{varSwitch[variant]}
|
|
273
|
-
</Button>
|
|
274
|
-
))}
|
|
164
|
+
<div>
|
|
165
|
+
<h2>Small</h2>
|
|
166
|
+
<ButtonGrid size="small" />
|
|
167
|
+
</div>
|
|
168
|
+
<div>
|
|
169
|
+
<h2>XSmall</h2>
|
|
170
|
+
<ButtonGrid size="xsmall" />
|
|
275
171
|
</div>
|
|
276
|
-
|
|
172
|
+
<div>
|
|
173
|
+
<h2>As Link</h2>
|
|
174
|
+
<ButtonGrid as="a" href="#" />
|
|
175
|
+
</div>
|
|
176
|
+
<div>
|
|
177
|
+
<h2>Disabled</h2>
|
|
178
|
+
<ButtonGrid disabled />
|
|
179
|
+
</div>
|
|
180
|
+
</VStack>
|
|
277
181
|
),
|
|
278
|
-
|
|
279
182
|
parameters: {
|
|
280
|
-
chromatic: {
|
|
183
|
+
chromatic: { disable: false },
|
|
281
184
|
},
|
|
282
185
|
};
|