@navikt/ds-react 6.5.0 → 6.6.1
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/collapsible/Collapsible.context.d.ts +48 -0
- package/cjs/collapsible/Collapsible.context.js +10 -0
- package/cjs/collapsible/Collapsible.context.js.map +1 -0
- package/cjs/collapsible/Collapsible.d.ts +48 -0
- package/cjs/collapsible/Collapsible.js +91 -0
- package/cjs/collapsible/Collapsible.js.map +1 -0
- package/cjs/collapsible/Collapsible.types.d.ts +19 -0
- package/cjs/collapsible/Collapsible.types.js +3 -0
- package/cjs/collapsible/Collapsible.types.js.map +1 -0
- package/cjs/collapsible/index.d.ts +3 -0
- package/cjs/collapsible/index.js +14 -0
- package/cjs/collapsible/index.js.map +1 -0
- package/cjs/collapsible/parts/Collapsible.Content.d.ts +10 -0
- package/cjs/collapsible/parts/Collapsible.Content.js +48 -0
- package/cjs/collapsible/parts/Collapsible.Content.js.map +1 -0
- package/cjs/collapsible/parts/Collapsible.Trigger.d.ts +10 -0
- package/cjs/collapsible/parts/Collapsible.Trigger.js +49 -0
- package/cjs/collapsible/parts/Collapsible.Trigger.js.map +1 -0
- package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.js +2 -4
- package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.js.map +1 -1
- package/cjs/form/combobox/Input/Input.js +6 -1
- package/cjs/form/combobox/Input/Input.js.map +1 -1
- package/cjs/form/form-summary/FormSummary.d.ts +82 -0
- package/cjs/form/form-summary/FormSummary.js +81 -0
- package/cjs/form/form-summary/FormSummary.js.map +1 -0
- package/cjs/form/form-summary/FormSummaryAnswer.d.ts +11 -0
- package/cjs/form/form-summary/FormSummaryAnswer.js +25 -0
- package/cjs/form/form-summary/FormSummaryAnswer.js.map +1 -0
- package/cjs/form/form-summary/FormSummaryAnswers.d.ts +9 -0
- package/cjs/form/form-summary/FormSummaryAnswers.js +48 -0
- package/cjs/form/form-summary/FormSummaryAnswers.js.map +1 -0
- package/cjs/form/form-summary/FormSummaryEditLink.d.ts +17 -0
- package/cjs/form/form-summary/FormSummaryEditLink.js +49 -0
- package/cjs/form/form-summary/FormSummaryEditLink.js.map +1 -0
- package/cjs/form/form-summary/FormSummaryHeader.d.ts +9 -0
- package/cjs/form/form-summary/FormSummaryHeader.js +48 -0
- package/cjs/form/form-summary/FormSummaryHeader.js.map +1 -0
- package/cjs/form/form-summary/FormSummaryHeading.d.ts +14 -0
- package/cjs/form/form-summary/FormSummaryHeading.js +31 -0
- package/cjs/form/form-summary/FormSummaryHeading.js.map +1 -0
- package/cjs/form/form-summary/FormSummaryLabel.d.ts +6 -0
- package/cjs/form/form-summary/FormSummaryLabel.js +45 -0
- package/cjs/form/form-summary/FormSummaryLabel.js.map +1 -0
- package/cjs/form/form-summary/FormSummaryValue.d.ts +6 -0
- package/cjs/form/form-summary/FormSummaryValue.js +49 -0
- package/cjs/form/form-summary/FormSummaryValue.js.map +1 -0
- package/cjs/form/form-summary/index.d.ts +8 -0
- package/cjs/form/form-summary/index.js +24 -0
- package/cjs/form/form-summary/index.js.map +1 -0
- package/cjs/index.d.ts +3 -2
- package/cjs/index.js +5 -3
- package/cjs/index.js.map +1 -1
- package/cjs/layout/stack/Spacer.js +1 -1
- package/cjs/layout/stack/Spacer.js.map +1 -1
- package/cjs/util/hooks/descendants/descendant.js +10 -1
- package/cjs/util/hooks/descendants/descendant.js.map +1 -1
- package/cjs/util/hooks/descendants/useDescendant.js +0 -5
- package/cjs/util/hooks/descendants/useDescendant.js.map +1 -1
- package/esm/collapsible/Collapsible.context.d.ts +48 -0
- package/esm/collapsible/Collapsible.context.js +6 -0
- package/esm/collapsible/Collapsible.context.js.map +1 -0
- package/esm/collapsible/Collapsible.d.ts +48 -0
- package/esm/collapsible/Collapsible.js +62 -0
- package/esm/collapsible/Collapsible.js.map +1 -0
- package/esm/collapsible/Collapsible.types.d.ts +19 -0
- package/esm/collapsible/Collapsible.types.js +2 -0
- package/esm/collapsible/Collapsible.types.js.map +1 -0
- package/esm/collapsible/index.d.ts +3 -0
- package/esm/collapsible/index.js +5 -0
- package/esm/collapsible/index.js.map +1 -0
- package/esm/collapsible/parts/Collapsible.Content.d.ts +10 -0
- package/esm/collapsible/parts/Collapsible.Content.js +22 -0
- package/esm/collapsible/parts/Collapsible.Content.js.map +1 -0
- package/esm/collapsible/parts/Collapsible.Trigger.d.ts +10 -0
- package/esm/collapsible/parts/Collapsible.Trigger.js +23 -0
- package/esm/collapsible/parts/Collapsible.Trigger.js.map +1 -0
- package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js +2 -4
- package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js.map +1 -1
- package/esm/form/combobox/Input/Input.js +6 -1
- package/esm/form/combobox/Input/Input.js.map +1 -1
- package/esm/form/form-summary/FormSummary.d.ts +82 -0
- package/esm/form/form-summary/FormSummary.js +52 -0
- package/esm/form/form-summary/FormSummary.js.map +1 -0
- package/esm/form/form-summary/FormSummaryAnswer.d.ts +11 -0
- package/esm/form/form-summary/FormSummaryAnswer.js +19 -0
- package/esm/form/form-summary/FormSummaryAnswer.js.map +1 -0
- package/esm/form/form-summary/FormSummaryAnswers.d.ts +9 -0
- package/esm/form/form-summary/FormSummaryAnswers.js +19 -0
- package/esm/form/form-summary/FormSummaryAnswers.js.map +1 -0
- package/esm/form/form-summary/FormSummaryEditLink.d.ts +17 -0
- package/esm/form/form-summary/FormSummaryEditLink.js +20 -0
- package/esm/form/form-summary/FormSummaryEditLink.js.map +1 -0
- package/esm/form/form-summary/FormSummaryHeader.d.ts +9 -0
- package/esm/form/form-summary/FormSummaryHeader.js +19 -0
- package/esm/form/form-summary/FormSummaryHeader.js.map +1 -0
- package/esm/form/form-summary/FormSummaryHeading.d.ts +14 -0
- package/esm/form/form-summary/FormSummaryHeading.js +5 -0
- package/esm/form/form-summary/FormSummaryHeading.js.map +1 -0
- package/esm/form/form-summary/FormSummaryLabel.d.ts +6 -0
- package/esm/form/form-summary/FormSummaryLabel.js +19 -0
- package/esm/form/form-summary/FormSummaryLabel.js.map +1 -0
- package/esm/form/form-summary/FormSummaryValue.d.ts +6 -0
- package/esm/form/form-summary/FormSummaryValue.js +20 -0
- package/esm/form/form-summary/FormSummaryValue.js.map +1 -0
- package/esm/form/form-summary/index.d.ts +8 -0
- package/esm/form/form-summary/index.js +10 -0
- package/esm/form/form-summary/index.js.map +1 -0
- package/esm/index.d.ts +3 -2
- package/esm/index.js +2 -1
- package/esm/index.js.map +1 -1
- package/esm/layout/stack/Spacer.js +1 -1
- package/esm/layout/stack/Spacer.js.map +1 -1
- package/esm/util/hooks/descendants/descendant.js +10 -1
- package/esm/util/hooks/descendants/descendant.js.map +1 -1
- package/esm/util/hooks/descendants/useDescendant.js +0 -5
- package/esm/util/hooks/descendants/useDescendant.js.map +1 -1
- package/package.json +15 -4
- package/src/collapsible/Collapsible.context.tsx +32 -0
- package/src/collapsible/Collapsible.tsx +100 -0
- package/src/collapsible/Collapsible.types.ts +19 -0
- package/src/collapsible/index.ts +10 -0
- package/src/collapsible/parts/Collapsible.Content.tsx +39 -0
- package/src/collapsible/parts/Collapsible.Trigger.tsx +42 -0
- package/src/form/combobox/FilteredOptions/filteredOptionsContext.tsx +9 -1
- package/src/form/combobox/Input/Input.tsx +5 -0
- package/src/form/form-summary/FormSummary.tsx +106 -0
- package/src/form/form-summary/FormSummaryAnswer.tsx +27 -0
- package/src/form/form-summary/FormSummaryAnswers.tsx +25 -0
- package/src/form/form-summary/FormSummaryEditLink.tsx +35 -0
- package/src/form/form-summary/FormSummaryHeader.tsx +25 -0
- package/src/form/form-summary/FormSummaryHeading.tsx +23 -0
- package/src/form/form-summary/FormSummaryLabel.tsx +17 -0
- package/src/form/form-summary/FormSummaryValue.tsx +24 -0
- package/src/form/form-summary/index.ts +30 -0
- package/src/index.ts +16 -15
- package/src/layout/stack/Spacer.tsx +1 -1
- package/src/util/hooks/descendants/descendant.ts +15 -1
- package/src/util/hooks/descendants/useDescendant.tsx +0 -5
- package/src/accordion/accordion.stories.tsx +0 -286
- package/src/alert/alert.stories.tsx +0 -306
- package/src/button/button.stories.tsx +0 -185
- package/src/chat/chat.stories.tsx +0 -341
- package/src/chips/chips.stories.tsx +0 -260
- package/src/copybutton/copy-button.stories.tsx +0 -261
- package/src/date/datepicker/datepicker.stories.tsx +0 -614
- package/src/date/monthpicker/monthpicker.stories.tsx +0 -221
- package/src/dropdown/dropdown.stories.tsx +0 -124
- package/src/expansion-card/expansion-card.stories.tsx +0 -282
- package/src/form/checkbox/checkbox.stories.tsx +0 -281
- package/src/form/combobox/combobox.stories.tsx +0 -626
- package/src/form/confirmation-panel/confirmation-panel.stories.tsx +0 -128
- package/src/form/error-summary/error-summary.stories.tsx +0 -81
- package/src/form/fieldset/fieldset.stories.tsx +0 -157
- package/src/form/file-upload/file-upload-dropzone.stories.tsx +0 -123
- package/src/form/file-upload/file-upload-item.stories.tsx +0 -148
- package/src/form/file-upload/file-upload.stories.tsx +0 -248
- package/src/form/radio/radio.stories.tsx +0 -230
- package/src/form/search/search.stories.tsx +0 -238
- package/src/form/select/select.stories.tsx +0 -172
- package/src/form/switch/switch.stories.tsx +0 -171
- package/src/form/textarea/textarea.stories.tsx +0 -254
- package/src/form/textfield/text-field.stories.tsx +0 -143
- package/src/guide-panel/guidepanel.stories.tsx +0 -90
- package/src/help-text/help-text.stories.tsx +0 -91
- package/src/internal-header/header.stories.tsx +0 -229
- package/src/layout/bleed/Bleed.stories.tsx +0 -395
- package/src/layout/box/Box.stories.tsx +0 -380
- package/src/layout/grid/h-grid.stories.tsx +0 -122
- package/src/layout/page/Page.stories.tsx +0 -271
- package/src/layout/responsive/hide.stories.tsx +0 -80
- package/src/layout/responsive/show.stories.tsx +0 -80
- package/src/layout/sidemal-test/navno-sidemal.stories.tsx +0 -69
- package/src/layout/stack/stack.stories.tsx +0 -183
- package/src/link/stories/link.stories.tsx +0 -304
- package/src/link-panel/link-panel.stories.tsx +0 -59
- package/src/list/list.stories.tsx +0 -280
- package/src/loader/loader.stories.tsx +0 -82
- package/src/modal/modal.stories.tsx +0 -391
- package/src/pagination/pagination.stories.tsx +0 -110
- package/src/popover/popover.stories.tsx +0 -113
- package/src/portal/Portal.stories.tsx +0 -102
- package/src/read-more/readmore.stories.tsx +0 -91
- package/src/skeleton/skeleton.stories.tsx +0 -130
- package/src/stepper/stepper.stories.tsx +0 -200
- package/src/table/stories/table-1.stories.tsx +0 -292
- package/src/table/stories/table-2-expandable.stories.tsx +0 -298
- package/src/table/stories/table-3-async.stories.tsx +0 -179
- package/src/table/stories/tests/table.stories.tsx +0 -102
- package/src/tabs/Tabs.stories.tsx +0 -311
- package/src/tag/tag.stories.tsx +0 -126
- package/src/timeline/timeline.stories.tsx +0 -445
- package/src/toggle-group/ToggleGroup.stories.tsx +0 -198
- package/src/tooltip/tooltip.stories.tsx +0 -101
- package/src/typography/stories/bodylong.stories.tsx +0 -209
- package/src/typography/stories/bodyshort.stories.tsx +0 -208
- package/src/typography/stories/detail.stories.tsx +0 -115
- package/src/typography/stories/error-message.stories.tsx +0 -122
- package/src/typography/stories/heading.stories.tsx +0 -169
- package/src/typography/stories/label.stories.tsx +0 -131
- package/src/util/hooks/descendants/descendant.stories.tsx +0 -147
|
@@ -1,292 +0,0 @@
|
|
|
1
|
-
import React, { useState } from "react";
|
|
2
|
-
import { Table, TableProps } from "../";
|
|
3
|
-
import { Button } from "../../button";
|
|
4
|
-
import { Checkbox } from "../../form/checkbox";
|
|
5
|
-
import { VStack } from "../../layout/stack";
|
|
6
|
-
import {
|
|
7
|
-
Expandable,
|
|
8
|
-
ExpandableLarge,
|
|
9
|
-
ExpandableSmall,
|
|
10
|
-
} from "./table-2-expandable.stories";
|
|
11
|
-
|
|
12
|
-
export default {
|
|
13
|
-
title: "ds-react/Table",
|
|
14
|
-
component: Table,
|
|
15
|
-
parameters: {
|
|
16
|
-
chromatic: { disable: true },
|
|
17
|
-
},
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
interface Props extends TableProps {
|
|
21
|
-
button?: boolean;
|
|
22
|
-
shadeOnHover?: boolean;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
const TableComponent = ({ button, shadeOnHover, ...rest }: Props) => (
|
|
26
|
-
<Table {...rest}>
|
|
27
|
-
<Table.Header>
|
|
28
|
-
<Table.Row>
|
|
29
|
-
{button && <Table.HeaderCell>Action</Table.HeaderCell>}
|
|
30
|
-
<Table.HeaderCell>ID</Table.HeaderCell>
|
|
31
|
-
<Table.HeaderCell>Fornavn</Table.HeaderCell>
|
|
32
|
-
<Table.HeaderCell textSize="medium">Etternavn</Table.HeaderCell>
|
|
33
|
-
<Table.HeaderCell textSize="small">Rolle</Table.HeaderCell>
|
|
34
|
-
</Table.Row>
|
|
35
|
-
</Table.Header>
|
|
36
|
-
<Table.Body>
|
|
37
|
-
<Table.Row shadeOnHover={shadeOnHover}>
|
|
38
|
-
{button && (
|
|
39
|
-
<Table.DataCell
|
|
40
|
-
style={{
|
|
41
|
-
paddingTop: 6,
|
|
42
|
-
paddingBottom: 6,
|
|
43
|
-
}}
|
|
44
|
-
>
|
|
45
|
-
<Button size="xsmall">Click me!</Button>
|
|
46
|
-
</Table.DataCell>
|
|
47
|
-
)}
|
|
48
|
-
<Table.HeaderCell>1</Table.HeaderCell>
|
|
49
|
-
<Table.DataCell>Jean-Luc</Table.DataCell>
|
|
50
|
-
<Table.DataCell>Picard</Table.DataCell>
|
|
51
|
-
<Table.DataCell>Kaptein</Table.DataCell>
|
|
52
|
-
</Table.Row>
|
|
53
|
-
<Table.Row shadeOnHover={shadeOnHover}>
|
|
54
|
-
{button && (
|
|
55
|
-
<Table.DataCell
|
|
56
|
-
style={{
|
|
57
|
-
paddingTop: 6,
|
|
58
|
-
paddingBottom: 6,
|
|
59
|
-
}}
|
|
60
|
-
>
|
|
61
|
-
<Button size="xsmall">Click me!</Button>
|
|
62
|
-
</Table.DataCell>
|
|
63
|
-
)}
|
|
64
|
-
<Table.HeaderCell>2</Table.HeaderCell>
|
|
65
|
-
<Table.DataCell>William</Table.DataCell>
|
|
66
|
-
<Table.DataCell>Riker</Table.DataCell>
|
|
67
|
-
<Table.DataCell>Kommandør</Table.DataCell>
|
|
68
|
-
</Table.Row>
|
|
69
|
-
<Table.Row shadeOnHover={shadeOnHover}>
|
|
70
|
-
{button && (
|
|
71
|
-
<Table.DataCell
|
|
72
|
-
style={{
|
|
73
|
-
paddingTop: 6,
|
|
74
|
-
paddingBottom: 6,
|
|
75
|
-
}}
|
|
76
|
-
>
|
|
77
|
-
<Button size="xsmall">Click me!</Button>
|
|
78
|
-
</Table.DataCell>
|
|
79
|
-
)}
|
|
80
|
-
<Table.HeaderCell>3</Table.HeaderCell>
|
|
81
|
-
<Table.DataCell>Geordi</Table.DataCell>
|
|
82
|
-
<Table.DataCell textSize="medium">La Forge</Table.DataCell>
|
|
83
|
-
<Table.DataCell textSize="small">Sjefsingeniør</Table.DataCell>
|
|
84
|
-
</Table.Row>
|
|
85
|
-
</Table.Body>
|
|
86
|
-
</Table>
|
|
87
|
-
);
|
|
88
|
-
|
|
89
|
-
export const Default = () => <TableComponent />;
|
|
90
|
-
export const Zebra = () => <TableComponent zebraStripes />;
|
|
91
|
-
export const NoShadeOnHover = () => <TableComponent shadeOnHover={false} />;
|
|
92
|
-
export const ZebraNoShadeOnHover = () => (
|
|
93
|
-
<TableComponent zebraStripes shadeOnHover={false} />
|
|
94
|
-
);
|
|
95
|
-
export const SizeLarge = () => <TableComponent size="large" />;
|
|
96
|
-
export const SizeMedium = () => <TableComponent size="medium" />;
|
|
97
|
-
export const SizeSmall = () => <TableComponent size="small" />;
|
|
98
|
-
|
|
99
|
-
export const Buttons = () => <TableComponent size="small" button />;
|
|
100
|
-
|
|
101
|
-
export const WithDivs = () => {
|
|
102
|
-
return (
|
|
103
|
-
<div className="navds-table" role="table">
|
|
104
|
-
<div className="navds-table__header" role="rowgroup">
|
|
105
|
-
<div className="navds-table__row" role="row">
|
|
106
|
-
<div className="navds-table__header-cell" role="columnheader">
|
|
107
|
-
Fornavn
|
|
108
|
-
</div>
|
|
109
|
-
<div className="navds-table__header-cell" role="columnheader">
|
|
110
|
-
Etternavn
|
|
111
|
-
</div>
|
|
112
|
-
<div className="navds-table__header-cell" role="columnheader">
|
|
113
|
-
Rolle
|
|
114
|
-
</div>
|
|
115
|
-
</div>
|
|
116
|
-
</div>
|
|
117
|
-
<div className="navds-table__body" role="rowgroup">
|
|
118
|
-
<div className="navds-table__row" role="row">
|
|
119
|
-
<div className="navds-table__data-cell" role="cell">
|
|
120
|
-
Jean-Luc
|
|
121
|
-
</div>
|
|
122
|
-
<div className="navds-table__data-cell" role="cell">
|
|
123
|
-
Picard
|
|
124
|
-
</div>
|
|
125
|
-
<div className="navds-table__data-cell" role="cell">
|
|
126
|
-
Kaptein
|
|
127
|
-
</div>
|
|
128
|
-
</div>
|
|
129
|
-
<div className="navds-table__row" role="row">
|
|
130
|
-
<div className="navds-table__data-cell" role="cell">
|
|
131
|
-
William
|
|
132
|
-
</div>
|
|
133
|
-
<div className="navds-table__data-cell" role="cell">
|
|
134
|
-
Riker
|
|
135
|
-
</div>
|
|
136
|
-
<div className="navds-table__data-cell" role="cell">
|
|
137
|
-
Kommandør
|
|
138
|
-
</div>
|
|
139
|
-
</div>
|
|
140
|
-
<div className="navds-table__row" role="row">
|
|
141
|
-
<div className="navds-table__data-cell" role="cell">
|
|
142
|
-
Geordi
|
|
143
|
-
</div>
|
|
144
|
-
<div className="navds-table__data-cell" role="cell">
|
|
145
|
-
La Forge
|
|
146
|
-
</div>
|
|
147
|
-
<div className="navds-table__data-cell" role="cell">
|
|
148
|
-
Sjefsingeniør
|
|
149
|
-
</div>
|
|
150
|
-
</div>
|
|
151
|
-
</div>
|
|
152
|
-
</div>
|
|
153
|
-
);
|
|
154
|
-
};
|
|
155
|
-
|
|
156
|
-
const SelectionTable = ({ size = "medium" }: { size?: "small" | "medium" }) => {
|
|
157
|
-
const useToggleList = (initialState) => {
|
|
158
|
-
const [list, setList] = useState(initialState);
|
|
159
|
-
|
|
160
|
-
return [
|
|
161
|
-
list,
|
|
162
|
-
(value) =>
|
|
163
|
-
setList((oldList) =>
|
|
164
|
-
oldList.includes(value)
|
|
165
|
-
? oldList.filter((id) => id !== value)
|
|
166
|
-
: [...oldList, value],
|
|
167
|
-
),
|
|
168
|
-
];
|
|
169
|
-
};
|
|
170
|
-
|
|
171
|
-
const [selectedRows, toggleSelectedRow] = useToggleList([]);
|
|
172
|
-
|
|
173
|
-
return (
|
|
174
|
-
<Table size={size} zebraStripes>
|
|
175
|
-
<Table.Body>
|
|
176
|
-
<Table.Row>
|
|
177
|
-
<Table.DataCell>
|
|
178
|
-
<Checkbox
|
|
179
|
-
size={size}
|
|
180
|
-
indeterminate
|
|
181
|
-
onChange={() => toggleSelectedRow("all")}
|
|
182
|
-
>
|
|
183
|
-
Select all
|
|
184
|
-
</Checkbox>
|
|
185
|
-
</Table.DataCell>
|
|
186
|
-
<Table.HeaderCell scope="col">Name</Table.HeaderCell>
|
|
187
|
-
<Table.HeaderCell scope="col">Age</Table.HeaderCell>
|
|
188
|
-
<Table.HeaderCell scope="col">Country</Table.HeaderCell>
|
|
189
|
-
<Table.HeaderCell scope="col">Points</Table.HeaderCell>
|
|
190
|
-
</Table.Row>
|
|
191
|
-
<Table.Row selected={selectedRows.includes("1")}>
|
|
192
|
-
<Table.DataCell>
|
|
193
|
-
<Checkbox
|
|
194
|
-
size={size}
|
|
195
|
-
hideLabel
|
|
196
|
-
checked={selectedRows.includes("1")}
|
|
197
|
-
onChange={() => toggleSelectedRow("1")}
|
|
198
|
-
aria-labelledby={`x_r1-${size}`}
|
|
199
|
-
>
|
|
200
|
-
{" "}
|
|
201
|
-
</Checkbox>
|
|
202
|
-
</Table.DataCell>
|
|
203
|
-
<Table.HeaderCell scope="row">
|
|
204
|
-
<span id={`x_r1-${size}`}>Donald Smith</span>
|
|
205
|
-
</Table.HeaderCell>
|
|
206
|
-
<Table.DataCell>32</Table.DataCell>
|
|
207
|
-
<Table.DataCell>USA</Table.DataCell>
|
|
208
|
-
<Table.DataCell>38</Table.DataCell>
|
|
209
|
-
</Table.Row>
|
|
210
|
-
<Table.Row selected>
|
|
211
|
-
<Table.DataCell>
|
|
212
|
-
<Checkbox
|
|
213
|
-
size={size}
|
|
214
|
-
hideLabel
|
|
215
|
-
checked
|
|
216
|
-
onChange={() => toggleSelectedRow("2")}
|
|
217
|
-
aria-labelledby={`x_r2-${size}`}
|
|
218
|
-
>
|
|
219
|
-
{" "}
|
|
220
|
-
</Checkbox>
|
|
221
|
-
</Table.DataCell>
|
|
222
|
-
<Table.HeaderCell scope="row">
|
|
223
|
-
<span id={`x_r2-${size}`}>Preben Aalborg</span>
|
|
224
|
-
</Table.HeaderCell>
|
|
225
|
-
<Table.DataCell>44</Table.DataCell>
|
|
226
|
-
<Table.DataCell>Denmark</Table.DataCell>
|
|
227
|
-
<Table.DataCell>11</Table.DataCell>
|
|
228
|
-
</Table.Row>
|
|
229
|
-
</Table.Body>
|
|
230
|
-
</Table>
|
|
231
|
-
);
|
|
232
|
-
};
|
|
233
|
-
|
|
234
|
-
export const Selection = () => <SelectionTable />;
|
|
235
|
-
export const SelectionSmall = () => <SelectionTable size="small" />;
|
|
236
|
-
|
|
237
|
-
export const Chromatic = {
|
|
238
|
-
render: () => (
|
|
239
|
-
<VStack gap="8">
|
|
240
|
-
<div>
|
|
241
|
-
<h3>Default</h3>
|
|
242
|
-
<Default />
|
|
243
|
-
<h3>Zebra</h3>
|
|
244
|
-
<Zebra />
|
|
245
|
-
</div>
|
|
246
|
-
<div>
|
|
247
|
-
<h3>Large</h3>
|
|
248
|
-
<SizeLarge />
|
|
249
|
-
</div>
|
|
250
|
-
<div>
|
|
251
|
-
<h3>Medium</h3>
|
|
252
|
-
<SizeMedium />
|
|
253
|
-
</div>
|
|
254
|
-
<div>
|
|
255
|
-
<h3>Small</h3>
|
|
256
|
-
<SizeSmall />
|
|
257
|
-
</div>
|
|
258
|
-
<div>
|
|
259
|
-
<h3>With Buttons</h3>
|
|
260
|
-
<Buttons />
|
|
261
|
-
</div>
|
|
262
|
-
<div>
|
|
263
|
-
<h3>Custom with divs</h3>
|
|
264
|
-
<WithDivs />
|
|
265
|
-
</div>
|
|
266
|
-
<div>
|
|
267
|
-
<h3>Selection</h3>
|
|
268
|
-
<Selection />
|
|
269
|
-
</div>
|
|
270
|
-
<div>
|
|
271
|
-
<h3>Selection small</h3>
|
|
272
|
-
<SelectionSmall />
|
|
273
|
-
</div>
|
|
274
|
-
<h2>Expandable</h2>
|
|
275
|
-
<div>
|
|
276
|
-
<h3>Large</h3>
|
|
277
|
-
<ExpandableLarge />
|
|
278
|
-
</div>
|
|
279
|
-
<div>
|
|
280
|
-
<h3>Medium</h3>
|
|
281
|
-
<Expandable />
|
|
282
|
-
</div>
|
|
283
|
-
<div>
|
|
284
|
-
<h3>Small</h3>
|
|
285
|
-
<ExpandableSmall />
|
|
286
|
-
</div>
|
|
287
|
-
</VStack>
|
|
288
|
-
),
|
|
289
|
-
parameters: {
|
|
290
|
-
chromatic: { disable: false },
|
|
291
|
-
},
|
|
292
|
-
};
|
|
@@ -1,298 +0,0 @@
|
|
|
1
|
-
import React, { useState } from "react";
|
|
2
|
-
import { Button } from "../../button";
|
|
3
|
-
import { Checkbox } from "../../form/checkbox";
|
|
4
|
-
import { Link } from "../../link";
|
|
5
|
-
import Table from "../Table";
|
|
6
|
-
|
|
7
|
-
export default {
|
|
8
|
-
title: "ds-react/Table",
|
|
9
|
-
component: Table,
|
|
10
|
-
parameters: {
|
|
11
|
-
chromatic: { disable: true },
|
|
12
|
-
},
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
export const Expandable = () => {
|
|
16
|
-
return (
|
|
17
|
-
<Table zebraStripes>
|
|
18
|
-
<Table.Header>
|
|
19
|
-
<Table.Row>
|
|
20
|
-
{columns.map(({ key, name }) => (
|
|
21
|
-
<Table.HeaderCell key={key}>{name}</Table.HeaderCell>
|
|
22
|
-
))}
|
|
23
|
-
<Table.HeaderCell />
|
|
24
|
-
</Table.Row>
|
|
25
|
-
</Table.Header>
|
|
26
|
-
<Table.Body>
|
|
27
|
-
{data.map((row) => (
|
|
28
|
-
<Table.ExpandableRow
|
|
29
|
-
expansionDisabled={row.animal === "Sel"}
|
|
30
|
-
content={row.content}
|
|
31
|
-
key={row.name}
|
|
32
|
-
togglePlacement="right"
|
|
33
|
-
defaultOpen
|
|
34
|
-
>
|
|
35
|
-
{columns.map(({ key }) => (
|
|
36
|
-
<Table.DataCell key={key}>{row[key]}</Table.DataCell>
|
|
37
|
-
))}
|
|
38
|
-
</Table.ExpandableRow>
|
|
39
|
-
))}
|
|
40
|
-
</Table.Body>
|
|
41
|
-
</Table>
|
|
42
|
-
);
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
export const ExpandableLarge = () => {
|
|
46
|
-
const [open, setOpen] = useState(false);
|
|
47
|
-
return (
|
|
48
|
-
<Table size="large">
|
|
49
|
-
<Table.Header>
|
|
50
|
-
<Table.Row>
|
|
51
|
-
<Table.HeaderCell />
|
|
52
|
-
{columns.map(({ key, name }) => (
|
|
53
|
-
<Table.HeaderCell key={key}>{name}</Table.HeaderCell>
|
|
54
|
-
))}
|
|
55
|
-
</Table.Row>
|
|
56
|
-
</Table.Header>
|
|
57
|
-
<Table.Body>
|
|
58
|
-
{data.slice(0, 1).map((row) => (
|
|
59
|
-
<Table.ExpandableRow defaultOpen content={row.content} key={row.name}>
|
|
60
|
-
{columns.map(({ key }) => (
|
|
61
|
-
<Table.DataCell key={key}>{row[key]}</Table.DataCell>
|
|
62
|
-
))}
|
|
63
|
-
</Table.ExpandableRow>
|
|
64
|
-
))}
|
|
65
|
-
{data.slice(1, 2).map((row) => (
|
|
66
|
-
<Table.ExpandableRow
|
|
67
|
-
content={row.content}
|
|
68
|
-
key={row.name}
|
|
69
|
-
open={open}
|
|
70
|
-
onOpenChange={setOpen}
|
|
71
|
-
>
|
|
72
|
-
{columns.map(({ key }) => (
|
|
73
|
-
<Table.DataCell key={key}>{row[key]}</Table.DataCell>
|
|
74
|
-
))}
|
|
75
|
-
</Table.ExpandableRow>
|
|
76
|
-
))}
|
|
77
|
-
</Table.Body>
|
|
78
|
-
</Table>
|
|
79
|
-
);
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
export const ExpandableSmall = () => {
|
|
83
|
-
const [open, setOpen] = useState(false);
|
|
84
|
-
return (
|
|
85
|
-
<Table size="small">
|
|
86
|
-
<Table.Header>
|
|
87
|
-
<Table.Row>
|
|
88
|
-
<Table.HeaderCell />
|
|
89
|
-
{columns.map(({ key, name }) => (
|
|
90
|
-
<Table.HeaderCell key={key}>{name}</Table.HeaderCell>
|
|
91
|
-
))}
|
|
92
|
-
</Table.Row>
|
|
93
|
-
</Table.Header>
|
|
94
|
-
<Table.Body>
|
|
95
|
-
{data.slice(0, 1).map((row) => (
|
|
96
|
-
<Table.ExpandableRow defaultOpen content={row.content} key={row.name}>
|
|
97
|
-
{columns.map(({ key }) => (
|
|
98
|
-
<Table.DataCell key={key}>{row[key]}</Table.DataCell>
|
|
99
|
-
))}
|
|
100
|
-
</Table.ExpandableRow>
|
|
101
|
-
))}
|
|
102
|
-
{data.slice(1, 2).map((row) => (
|
|
103
|
-
<Table.ExpandableRow
|
|
104
|
-
content={row.content}
|
|
105
|
-
key={row.name}
|
|
106
|
-
open={open}
|
|
107
|
-
onOpenChange={setOpen}
|
|
108
|
-
>
|
|
109
|
-
{columns.map(({ key }) => (
|
|
110
|
-
<Table.DataCell key={key}>{row[key]}</Table.DataCell>
|
|
111
|
-
))}
|
|
112
|
-
</Table.ExpandableRow>
|
|
113
|
-
))}
|
|
114
|
-
</Table.Body>
|
|
115
|
-
</Table>
|
|
116
|
-
);
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
const columns = [
|
|
120
|
-
{
|
|
121
|
-
name: "Navn",
|
|
122
|
-
key: "name",
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
name: "Favoritt dyr",
|
|
126
|
-
key: "animal",
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
name: "Favoritt farge",
|
|
130
|
-
key: "color",
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
name: "Minst favoritt dyr",
|
|
134
|
-
key: "leastAnimal",
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
name: "Minst favoritt farge",
|
|
138
|
-
key: "leastColor",
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
name: "Status",
|
|
142
|
-
key: "status",
|
|
143
|
-
},
|
|
144
|
-
];
|
|
145
|
-
|
|
146
|
-
const data = [
|
|
147
|
-
{
|
|
148
|
-
name: "Ola Conny Brakkestad",
|
|
149
|
-
animal: "Ku",
|
|
150
|
-
color: "Brun",
|
|
151
|
-
leastAnimal: "Sel",
|
|
152
|
-
leastColor: "Lyseblå",
|
|
153
|
-
status: "Inaktiv",
|
|
154
|
-
content: (
|
|
155
|
-
<>
|
|
156
|
-
Ola Conny Brakkestad sier hei. Her er litt innhold med en{" "}
|
|
157
|
-
<Link href="#">link.</Link>
|
|
158
|
-
</>
|
|
159
|
-
),
|
|
160
|
-
},
|
|
161
|
-
|
|
162
|
-
{
|
|
163
|
-
name: "Henriette Kristensen",
|
|
164
|
-
animal: "Bjørn",
|
|
165
|
-
color: "Hvit",
|
|
166
|
-
leastAnimal: "Grevling",
|
|
167
|
-
leastColor: "Transparent",
|
|
168
|
-
status: <Link href="http://example.com">Hissig</Link>,
|
|
169
|
-
content: (
|
|
170
|
-
<>
|
|
171
|
-
Henriette Kristensen sier hei. Her er litt innhold med en{" "}
|
|
172
|
-
<Link href="http://example.com">lenke</Link>. I forhold til en betydelig
|
|
173
|
-
avveining synliggjøres potensialet med sikte på satsingsområdet. Gitt en
|
|
174
|
-
manglende avveining synliggjøres instrumentet på bakgrunn av forholdene.
|
|
175
|
-
Under hensyntagen til en inkluderende avveining stimuleres resultatene
|
|
176
|
-
med henblikk på løsningen. På grunn av en integrert organisasjon
|
|
177
|
-
initieres kunnskapene eller sagt på en annen måte: evalueringen. Grunnet
|
|
178
|
-
en gjeldende målsetting dokumenteres relasjonene hva angår egenarten.
|
|
179
|
-
</>
|
|
180
|
-
),
|
|
181
|
-
},
|
|
182
|
-
|
|
183
|
-
{
|
|
184
|
-
name: "Suki Clydesdale",
|
|
185
|
-
animal: "Sel",
|
|
186
|
-
color: "Grønn",
|
|
187
|
-
leastAnimal: "Serval",
|
|
188
|
-
leastColor: "Rosa",
|
|
189
|
-
status: "Deaktivert",
|
|
190
|
-
content: (
|
|
191
|
-
<>
|
|
192
|
-
Suki Clydesdale sier hei. Her er litt innhold med en{" "}
|
|
193
|
-
<Link href="http://example.com">link</Link>.
|
|
194
|
-
</>
|
|
195
|
-
),
|
|
196
|
-
},
|
|
197
|
-
|
|
198
|
-
{
|
|
199
|
-
name: "Hans-Hermann Hoppe",
|
|
200
|
-
animal: "Mudkip",
|
|
201
|
-
color: "Oransje",
|
|
202
|
-
leastAnimal: "Skare",
|
|
203
|
-
leastColor: "Hvit",
|
|
204
|
-
status: <Link href="#">Starter</Link>,
|
|
205
|
-
content: (
|
|
206
|
-
<>
|
|
207
|
-
Hans-Hermann Hoppe sier hei. Her er litt innhold med en{" "}
|
|
208
|
-
<Link href="http://example.com">link</Link>.
|
|
209
|
-
</>
|
|
210
|
-
),
|
|
211
|
-
},
|
|
212
|
-
|
|
213
|
-
{
|
|
214
|
-
name: "Max Kraft",
|
|
215
|
-
animal: "Løve",
|
|
216
|
-
color: "Blå",
|
|
217
|
-
leastAnimal: "Hund",
|
|
218
|
-
leastColor: "Cyan",
|
|
219
|
-
status: <Link href="#">Eksplodert</Link>,
|
|
220
|
-
content: (
|
|
221
|
-
<>
|
|
222
|
-
Max Kraft sier hei. Her er litt innhold med en{" "}
|
|
223
|
-
<Link href="http://example.com">link</Link>.
|
|
224
|
-
</>
|
|
225
|
-
),
|
|
226
|
-
},
|
|
227
|
-
|
|
228
|
-
{
|
|
229
|
-
name: "Pat Ole",
|
|
230
|
-
animal: "Bjørnedyr",
|
|
231
|
-
color: "Gul",
|
|
232
|
-
leastAnimal: "Meitemark",
|
|
233
|
-
leastColor: "Svart",
|
|
234
|
-
status: <Link href="#">Gunstig</Link>,
|
|
235
|
-
content: (
|
|
236
|
-
<>
|
|
237
|
-
Pat Ole sier hei. Her er litt innhold med en{" "}
|
|
238
|
-
<Link href="http://example.com">lenke</Link>.
|
|
239
|
-
</>
|
|
240
|
-
),
|
|
241
|
-
},
|
|
242
|
-
];
|
|
243
|
-
|
|
244
|
-
export const ClickableRow = () => {
|
|
245
|
-
const [isRowOpen1, setIsRowOpen1] = useState(false);
|
|
246
|
-
const [isRowOpen2, setIsRowOpen2] = useState(false);
|
|
247
|
-
|
|
248
|
-
return (
|
|
249
|
-
<>
|
|
250
|
-
<Table zebraStripes>
|
|
251
|
-
<Table.Header>
|
|
252
|
-
<Table.Row>
|
|
253
|
-
<Table.HeaderCell>Navn</Table.HeaderCell>
|
|
254
|
-
<Table.HeaderCell>Info</Table.HeaderCell>
|
|
255
|
-
<Table.HeaderCell aria-hidden />
|
|
256
|
-
</Table.Row>
|
|
257
|
-
</Table.Header>
|
|
258
|
-
<Table.Body>
|
|
259
|
-
<Table.ExpandableRow
|
|
260
|
-
content={<div>placeholder row 1</div>}
|
|
261
|
-
togglePlacement="right"
|
|
262
|
-
onOpenChange={setIsRowOpen1}
|
|
263
|
-
data-testid="row1"
|
|
264
|
-
open={isRowOpen1}
|
|
265
|
-
expandOnRowClick
|
|
266
|
-
>
|
|
267
|
-
<Table.DataCell>Ola</Table.DataCell>
|
|
268
|
-
<Table.DataCell>
|
|
269
|
-
<Button
|
|
270
|
-
size="xsmall"
|
|
271
|
-
onClick={() => {
|
|
272
|
-
alert("Mer info");
|
|
273
|
-
}}
|
|
274
|
-
>
|
|
275
|
-
Mer info
|
|
276
|
-
</Button>
|
|
277
|
-
</Table.DataCell>
|
|
278
|
-
</Table.ExpandableRow>
|
|
279
|
-
<Table.ExpandableRow
|
|
280
|
-
content={<div>placeholder row 2</div>}
|
|
281
|
-
togglePlacement="right"
|
|
282
|
-
onOpenChange={setIsRowOpen2}
|
|
283
|
-
data-testid="row2"
|
|
284
|
-
open={isRowOpen2}
|
|
285
|
-
expandOnRowClick
|
|
286
|
-
>
|
|
287
|
-
<Table.DataCell>Hans</Table.DataCell>
|
|
288
|
-
<Table.DataCell>
|
|
289
|
-
<Checkbox hideLabel size="small">
|
|
290
|
-
Sett
|
|
291
|
-
</Checkbox>
|
|
292
|
-
</Table.DataCell>
|
|
293
|
-
</Table.ExpandableRow>
|
|
294
|
-
</Table.Body>
|
|
295
|
-
</Table>
|
|
296
|
-
</>
|
|
297
|
-
);
|
|
298
|
-
};
|