@navikt/ds-react 0.13.2 → 0.14.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/form/Fieldset/Fieldset.js +6 -3
- package/cjs/form/Select.js +4 -1
- package/cjs/form/TextField.js +8 -3
- package/cjs/form/Textarea.js +4 -1
- package/cjs/form/checkbox/Checkbox.js +9 -8
- package/cjs/form/checkbox/useCheckbox.js +2 -1
- package/cjs/form/radio/Radio.js +8 -14
- package/cjs/form/radio/useRadio.js +2 -1
- package/cjs/form/search-field/SearchField.js +4 -1
- package/cjs/loader/Loader.js +1 -1
- package/cjs/table/DataCell.js +5 -2
- package/cjs/table/HeaderCell.js +4 -2
- package/cjs/table/Row.js +4 -2
- package/cjs/table/Table.js +7 -2
- package/esm/form/Fieldset/Fieldset.js +7 -4
- package/esm/form/Fieldset/Fieldset.js.map +1 -1
- package/esm/form/Select.js +4 -1
- package/esm/form/Select.js.map +1 -1
- package/esm/form/TextField.js +9 -4
- package/esm/form/TextField.js.map +1 -1
- package/esm/form/Textarea.js +4 -1
- package/esm/form/Textarea.js.map +1 -1
- package/esm/form/checkbox/Checkbox.d.ts +6 -1
- package/esm/form/checkbox/Checkbox.js +10 -9
- package/esm/form/checkbox/Checkbox.js.map +1 -1
- package/esm/form/checkbox/CheckboxGroup.d.ts +1 -1
- package/esm/form/checkbox/CheckboxGroup.js.map +1 -1
- package/esm/form/checkbox/useCheckbox.js +2 -1
- package/esm/form/checkbox/useCheckbox.js.map +1 -1
- package/esm/form/radio/Radio.d.ts +4 -1
- package/esm/form/radio/Radio.js +9 -15
- package/esm/form/radio/Radio.js.map +1 -1
- package/esm/form/radio/RadioGroup.d.ts +1 -1
- package/esm/form/radio/RadioGroup.js.map +1 -1
- package/esm/form/radio/useRadio.js +2 -1
- package/esm/form/radio/useRadio.js.map +1 -1
- package/esm/form/search-field/SearchField.js +4 -1
- package/esm/form/search-field/SearchField.js.map +1 -1
- package/esm/loader/Loader.js +1 -1
- package/esm/loader/Loader.js.map +1 -1
- package/esm/table/DataCell.js +6 -3
- package/esm/table/DataCell.js.map +1 -1
- package/esm/table/HeaderCell.d.ts +1 -0
- package/esm/table/HeaderCell.js +5 -3
- package/esm/table/HeaderCell.js.map +1 -1
- package/esm/table/Row.d.ts +5 -0
- package/esm/table/Row.js +4 -2
- package/esm/table/Row.js.map +1 -1
- package/esm/table/Table.d.ts +9 -0
- package/esm/table/Table.js +7 -3
- package/esm/table/Table.js.map +1 -1
- package/package.json +5 -4
- package/src/form/Fieldset/Fieldset.tsx +25 -13
- package/src/form/Select.tsx +4 -1
- package/src/form/TextField.tsx +30 -12
- package/src/form/Textarea.tsx +4 -1
- package/src/form/checkbox/Checkbox.tsx +30 -38
- package/src/form/checkbox/CheckboxGroup.tsx +2 -1
- package/src/form/checkbox/stories/checkbox.stories.mdx +17 -45
- package/src/form/checkbox/stories/checkbox.stories.tsx +55 -82
- package/src/form/checkbox/useCheckbox.ts +5 -1
- package/src/form/radio/Radio.tsx +26 -41
- package/src/form/radio/RadioGroup.tsx +2 -1
- package/src/form/radio/stories/radio.stories.mdx +3 -29
- package/src/form/radio/stories/radio.stories.tsx +33 -64
- package/src/form/radio/useRadio.ts +5 -1
- package/src/form/search-field/SearchField.tsx +4 -1
- package/src/form/search-field/stories/search-field.stories.tsx +24 -0
- package/src/form/stories/text-field.stories.tsx +19 -0
- package/src/form/stories/textarea.stories.tsx +11 -1
- package/src/grid/stories/grid.stories.mdx +3 -3
- package/src/guide-panel/stories/example.css +4 -4
- package/src/guide-panel/stories/guidepanel.stories.mdx +7 -7
- package/src/guide-panel/stories/guidepanel.stories.tsx +6 -6
- package/src/loader/Loader.tsx +1 -1
- package/src/loader/stories/loader.stories.mdx +0 -16
- package/src/popover/stories/popover.stories.tsx +1 -1
- package/src/speech-bubble/stories/speechbubble.stories.mdx +4 -4
- package/src/speech-bubble/stories/speechbubble.stories.tsx +2 -2
- package/src/table/DataCell.tsx +20 -4
- package/src/table/HeaderCell.tsx +22 -5
- package/src/table/Row.tsx +18 -4
- package/src/table/Table.tsx +25 -8
- package/src/table/stories/table.stories.tsx +157 -74
- package/src/typography/stories/index.css +1 -1
|
@@ -85,19 +85,3 @@ Størrelsen justeres også automatisk, slik at alt man trenger er å sette Loade
|
|
|
85
85
|
<Loader />
|
|
86
86
|
</Button>
|
|
87
87
|
</Canvas>
|
|
88
|
-
|
|
89
|
-
## Overskrive farger for å sikre kontrast
|
|
90
|
-
|
|
91
|
-
I de casene der man må justere fargene for å ha bedre kontrast så kan man endre på selve css-variablene som bli brukt
|
|
92
|
-
|
|
93
|
-
```css
|
|
94
|
-
--navds-loader-color-foreground: var(--navds-color-gray-40);
|
|
95
|
-
--navds-loader-color-background: var(--navds-color-gray-10);
|
|
96
|
-
--navds-loader-color-neutral-foreground: var(--navds-color-gray-40);
|
|
97
|
-
--navds-loader-color-interaction-foreground: var(--navds-color-blue-50);
|
|
98
|
-
--navds-loader-color-inverted-foreground: var(--navds-color-white);
|
|
99
|
-
--navds-loader-color-inverted-background: rgba(255, 255, 255, 0.3);
|
|
100
|
-
--navds-loader-color-transparent-background: transparent;
|
|
101
|
-
--navds-loader-color-on-button-background: rgba(255, 255, 255, 0.3);
|
|
102
|
-
--navds-loader-color-on-button-foreground: currentColor;
|
|
103
|
-
```
|
|
@@ -80,8 +80,8 @@ Man kan endre bakgrunnsfargen selv med `illustrationBgColor` og `backgroundColor
|
|
|
80
80
|
<SpeechBubble
|
|
81
81
|
illustration="OLA"
|
|
82
82
|
position="left"
|
|
83
|
-
illustrationBgColor="var(--navds-color-lightblue-
|
|
84
|
-
backgroundColor="var(--navds-color-lightblue-
|
|
83
|
+
illustrationBgColor="var(--navds-global-color-lightblue-100)"
|
|
84
|
+
backgroundColor="var(--navds-global-color-lightblue-200)"
|
|
85
85
|
>
|
|
86
86
|
<SpeechBubble.Bubble>
|
|
87
87
|
Aute minim nisi sunt mollit duis sunt nulla minim non proident.
|
|
@@ -93,8 +93,8 @@ Man kan endre bakgrunnsfargen selv med `illustrationBgColor` og `backgroundColor
|
|
|
93
93
|
<SpeechBubble
|
|
94
94
|
illustration="OLA"
|
|
95
95
|
position="left"
|
|
96
|
-
illustrationBgColor="var(--navds-color-lightblue-
|
|
97
|
-
backgroundColor="var(--navds-color-lightblue-
|
|
96
|
+
illustrationBgColor="var(--navds-global-color-lightblue-100)"
|
|
97
|
+
backgroundColor="var(--navds-global-color-lightblue-200)"
|
|
98
98
|
>
|
|
99
99
|
<SpeechBubble.Bubble>
|
|
100
100
|
Aute minim nisi sunt mollit duis sunt nulla minim non proident.
|
|
@@ -14,7 +14,7 @@ export const All = () => {
|
|
|
14
14
|
<SpeechBubble
|
|
15
15
|
illustration={<Illustration />}
|
|
16
16
|
topText="Ola Normann 01.01.21 14:00"
|
|
17
|
-
backgroundColor="var(--navds-color-lightblue-
|
|
17
|
+
backgroundColor="var(--navds-global-color-lightblue-200)"
|
|
18
18
|
>
|
|
19
19
|
<SpeechBubble.Bubble>
|
|
20
20
|
Aute minim nisi sunt mollit duis sunt nulla minim non proident.
|
|
@@ -42,7 +42,7 @@ export const All = () => {
|
|
|
42
42
|
</div>
|
|
43
43
|
}
|
|
44
44
|
position="right"
|
|
45
|
-
backgroundColor="var(--navds-color-gray-
|
|
45
|
+
backgroundColor="var(--navds-global-color-gray-100)"
|
|
46
46
|
>
|
|
47
47
|
<SpeechBubble.Bubble>
|
|
48
48
|
Aute minim nisi sunt mollit duis sunt nulla minim non proident.
|
package/src/table/DataCell.tsx
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import React, { forwardRef } from "react";
|
|
1
|
+
import React, { forwardRef, useContext } from "react";
|
|
2
2
|
import cl from "classnames";
|
|
3
|
+
import { BodyShort } from "..";
|
|
4
|
+
import { TableContext } from ".";
|
|
3
5
|
|
|
4
6
|
interface DataCellProps extends React.HTMLAttributes<HTMLTableCellElement> {}
|
|
5
7
|
|
|
@@ -8,8 +10,22 @@ export interface DataCellType
|
|
|
8
10
|
DataCellProps & React.RefAttributes<HTMLTableCellElement>
|
|
9
11
|
> {}
|
|
10
12
|
|
|
11
|
-
const DataCell: DataCellType = forwardRef(
|
|
12
|
-
|
|
13
|
-
)
|
|
13
|
+
const DataCell: DataCellType = forwardRef(
|
|
14
|
+
({ className, children = "", ...rest }, ref) => {
|
|
15
|
+
const context = useContext(TableContext);
|
|
16
|
+
|
|
17
|
+
return (
|
|
18
|
+
<BodyShort
|
|
19
|
+
as="td"
|
|
20
|
+
ref={ref}
|
|
21
|
+
className={cl("navds-table__data-cell", className)}
|
|
22
|
+
size={context?.size}
|
|
23
|
+
{...rest}
|
|
24
|
+
>
|
|
25
|
+
{children}
|
|
26
|
+
</BodyShort>
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
);
|
|
14
30
|
|
|
15
31
|
export default DataCell;
|
package/src/table/HeaderCell.tsx
CHANGED
|
@@ -1,15 +1,32 @@
|
|
|
1
|
-
import React, { forwardRef } from "react";
|
|
1
|
+
import React, { forwardRef, useContext } from "react";
|
|
2
2
|
import cl from "classnames";
|
|
3
|
+
import { Label, TableContext } from "..";
|
|
3
4
|
|
|
4
|
-
interface HeaderCellProps extends React.HTMLAttributes<HTMLTableCellElement> {
|
|
5
|
+
interface HeaderCellProps extends React.HTMLAttributes<HTMLTableCellElement> {
|
|
6
|
+
scope?: string;
|
|
7
|
+
}
|
|
5
8
|
|
|
6
9
|
export interface HeaderCellType
|
|
7
10
|
extends React.ForwardRefExoticComponent<
|
|
8
11
|
HeaderCellProps & React.RefAttributes<HTMLTableCellElement>
|
|
9
12
|
> {}
|
|
10
13
|
|
|
11
|
-
const HeaderCell: HeaderCellType = forwardRef(
|
|
12
|
-
|
|
13
|
-
)
|
|
14
|
+
const HeaderCell: HeaderCellType = forwardRef(
|
|
15
|
+
({ className, children, ...rest }, ref) => {
|
|
16
|
+
const context = useContext(TableContext);
|
|
17
|
+
|
|
18
|
+
return (
|
|
19
|
+
<Label
|
|
20
|
+
as="th"
|
|
21
|
+
ref={ref}
|
|
22
|
+
className={cl("navds-table__header-cell", className)}
|
|
23
|
+
size={context?.size}
|
|
24
|
+
{...rest}
|
|
25
|
+
>
|
|
26
|
+
{children}
|
|
27
|
+
</Label>
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
);
|
|
14
31
|
|
|
15
32
|
export default HeaderCell;
|
package/src/table/Row.tsx
CHANGED
|
@@ -1,15 +1,29 @@
|
|
|
1
1
|
import React, { forwardRef } from "react";
|
|
2
2
|
import cl from "classnames";
|
|
3
3
|
|
|
4
|
-
interface RowProps extends React.HTMLAttributes<HTMLTableRowElement> {
|
|
4
|
+
interface RowProps extends React.HTMLAttributes<HTMLTableRowElement> {
|
|
5
|
+
/**
|
|
6
|
+
* Row is selected
|
|
7
|
+
* @default false
|
|
8
|
+
*/
|
|
9
|
+
selected?: boolean;
|
|
10
|
+
}
|
|
5
11
|
|
|
6
12
|
export interface RowType
|
|
7
13
|
extends React.ForwardRefExoticComponent<
|
|
8
14
|
RowProps & React.RefAttributes<HTMLTableRowElement>
|
|
9
15
|
> {}
|
|
10
16
|
|
|
11
|
-
const Row: RowType = forwardRef(
|
|
12
|
-
|
|
13
|
-
|
|
17
|
+
const Row: RowType = forwardRef(
|
|
18
|
+
({ className, selected = false, ...rest }, ref) => (
|
|
19
|
+
<tr
|
|
20
|
+
{...rest}
|
|
21
|
+
ref={ref}
|
|
22
|
+
className={cl("navds-table__row", className, {
|
|
23
|
+
"navds-table__row--selected": selected,
|
|
24
|
+
})}
|
|
25
|
+
/>
|
|
26
|
+
)
|
|
27
|
+
);
|
|
14
28
|
|
|
15
29
|
export default Row;
|
package/src/table/Table.tsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { forwardRef } from "react";
|
|
1
|
+
import React, { createContext, forwardRef } from "react";
|
|
2
2
|
import cl from "classnames";
|
|
3
3
|
import Header, { HeaderType } from "./Header";
|
|
4
4
|
import Body, { BodyType } from "./Body";
|
|
@@ -12,6 +12,11 @@ export interface TableProps extends React.HTMLAttributes<HTMLTableElement> {
|
|
|
12
12
|
* @default "medium"
|
|
13
13
|
*/
|
|
14
14
|
size?: "medium" | "small";
|
|
15
|
+
/**
|
|
16
|
+
* Zebra striped table
|
|
17
|
+
* @default false
|
|
18
|
+
*/
|
|
19
|
+
zebraStripes?: boolean;
|
|
15
20
|
}
|
|
16
21
|
|
|
17
22
|
export interface TableType
|
|
@@ -25,13 +30,25 @@ export interface TableType
|
|
|
25
30
|
HeaderCell: HeaderCellType;
|
|
26
31
|
}
|
|
27
32
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
export interface TableContextProps {
|
|
34
|
+
size: "medium" | "small";
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export const TableContext = createContext<TableContextProps | null>(null);
|
|
38
|
+
|
|
39
|
+
const Table = forwardRef(
|
|
40
|
+
({ className, zebraStripes = false, size = "medium", ...rest }, ref) => (
|
|
41
|
+
<TableContext.Provider value={{ size }}>
|
|
42
|
+
<table
|
|
43
|
+
{...rest}
|
|
44
|
+
ref={ref}
|
|
45
|
+
className={cl("navds-table", `navds-table--${size}`, className, {
|
|
46
|
+
"navds-table--zebra-stripes": zebraStripes,
|
|
47
|
+
})}
|
|
48
|
+
/>
|
|
49
|
+
</TableContext.Provider>
|
|
50
|
+
)
|
|
51
|
+
) as TableType;
|
|
35
52
|
|
|
36
53
|
Table.Header = Header;
|
|
37
54
|
Table.Body = Body;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import React from "react";
|
|
1
|
+
import React, { useState } from "react";
|
|
2
2
|
import { Table } from "../index";
|
|
3
|
-
import { Alert, Link } from "@navikt/ds-react";
|
|
3
|
+
import { Alert, Checkbox, Link } from "@navikt/ds-react";
|
|
4
4
|
|
|
5
5
|
export default {
|
|
6
6
|
title: "ds-react/table",
|
|
@@ -8,70 +8,46 @@ export default {
|
|
|
8
8
|
};
|
|
9
9
|
|
|
10
10
|
export const All = () => {
|
|
11
|
+
const TableComponent = (props) => (
|
|
12
|
+
<Table {...props}>
|
|
13
|
+
<Table.Header>
|
|
14
|
+
<Table.Row>
|
|
15
|
+
<Table.HeaderCell>ID</Table.HeaderCell>
|
|
16
|
+
<Table.HeaderCell>Fornavn</Table.HeaderCell>
|
|
17
|
+
<Table.HeaderCell>Etternavn</Table.HeaderCell>
|
|
18
|
+
<Table.HeaderCell>Rolle</Table.HeaderCell>
|
|
19
|
+
</Table.Row>
|
|
20
|
+
</Table.Header>
|
|
21
|
+
<Table.Body>
|
|
22
|
+
<Table.Row>
|
|
23
|
+
<Table.HeaderCell>1</Table.HeaderCell>
|
|
24
|
+
<Table.DataCell>Jean-Luc</Table.DataCell>
|
|
25
|
+
<Table.DataCell>Picard</Table.DataCell>
|
|
26
|
+
<Table.DataCell>Kaptein</Table.DataCell>
|
|
27
|
+
</Table.Row>
|
|
28
|
+
<Table.Row>
|
|
29
|
+
<Table.HeaderCell>2</Table.HeaderCell>
|
|
30
|
+
<Table.DataCell>William</Table.DataCell>
|
|
31
|
+
<Table.DataCell>Riker</Table.DataCell>
|
|
32
|
+
<Table.DataCell>Kommandør</Table.DataCell>
|
|
33
|
+
</Table.Row>
|
|
34
|
+
<Table.Row>
|
|
35
|
+
<Table.HeaderCell>3</Table.HeaderCell>
|
|
36
|
+
<Table.DataCell>Geordi</Table.DataCell>
|
|
37
|
+
<Table.DataCell>La Forge</Table.DataCell>
|
|
38
|
+
<Table.DataCell>Sjefsingeniør</Table.DataCell>
|
|
39
|
+
</Table.Row>
|
|
40
|
+
</Table.Body>
|
|
41
|
+
</Table>
|
|
42
|
+
);
|
|
11
43
|
return (
|
|
12
44
|
<>
|
|
13
45
|
<h1>Table</h1>
|
|
14
|
-
<
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
<Table.HeaderCell>ID</Table.HeaderCell>
|
|
18
|
-
<Table.HeaderCell>Fornavn</Table.HeaderCell>
|
|
19
|
-
<Table.HeaderCell>Etternavn</Table.HeaderCell>
|
|
20
|
-
<Table.HeaderCell>Rolle</Table.HeaderCell>
|
|
21
|
-
</Table.Row>
|
|
22
|
-
</Table.Header>
|
|
23
|
-
<Table.Body>
|
|
24
|
-
<Table.Row>
|
|
25
|
-
<Table.HeaderCell>1</Table.HeaderCell>
|
|
26
|
-
<Table.DataCell>Jean-Luc</Table.DataCell>
|
|
27
|
-
<Table.DataCell>Picard</Table.DataCell>
|
|
28
|
-
<Table.DataCell>Kaptein</Table.DataCell>
|
|
29
|
-
</Table.Row>
|
|
30
|
-
<Table.Row>
|
|
31
|
-
<Table.HeaderCell>2</Table.HeaderCell>
|
|
32
|
-
<Table.DataCell>William</Table.DataCell>
|
|
33
|
-
<Table.DataCell>Riker</Table.DataCell>
|
|
34
|
-
<Table.DataCell>Kommandør</Table.DataCell>
|
|
35
|
-
</Table.Row>
|
|
36
|
-
<Table.Row>
|
|
37
|
-
<Table.HeaderCell>3</Table.HeaderCell>
|
|
38
|
-
<Table.DataCell>Geordi</Table.DataCell>
|
|
39
|
-
<Table.DataCell>La Forge</Table.DataCell>
|
|
40
|
-
<Table.DataCell>Sjefsingeniør</Table.DataCell>
|
|
41
|
-
</Table.Row>
|
|
42
|
-
</Table.Body>
|
|
43
|
-
</Table>
|
|
46
|
+
<TableComponent />
|
|
47
|
+
<h2>Zebra</h2>
|
|
48
|
+
<TableComponent zebraStripes />
|
|
44
49
|
<h2>Small Table</h2>
|
|
45
|
-
<
|
|
46
|
-
<Table.Header>
|
|
47
|
-
<Table.Row>
|
|
48
|
-
<Table.HeaderCell>ID</Table.HeaderCell>
|
|
49
|
-
<Table.HeaderCell>Fornavn</Table.HeaderCell>
|
|
50
|
-
<Table.HeaderCell>Etternavn</Table.HeaderCell>
|
|
51
|
-
<Table.HeaderCell>Rolle</Table.HeaderCell>
|
|
52
|
-
</Table.Row>
|
|
53
|
-
</Table.Header>
|
|
54
|
-
<Table.Body>
|
|
55
|
-
<Table.Row>
|
|
56
|
-
<Table.HeaderCell>1</Table.HeaderCell>
|
|
57
|
-
<Table.DataCell>Jean-Luc</Table.DataCell>
|
|
58
|
-
<Table.DataCell>Picard</Table.DataCell>
|
|
59
|
-
<Table.DataCell>Kaptein</Table.DataCell>
|
|
60
|
-
</Table.Row>
|
|
61
|
-
<Table.Row>
|
|
62
|
-
<Table.HeaderCell>2</Table.HeaderCell>
|
|
63
|
-
<Table.DataCell>William</Table.DataCell>
|
|
64
|
-
<Table.DataCell>Riker</Table.DataCell>
|
|
65
|
-
<Table.DataCell>Kommandør</Table.DataCell>
|
|
66
|
-
</Table.Row>
|
|
67
|
-
<Table.Row>
|
|
68
|
-
<Table.HeaderCell>3</Table.HeaderCell>
|
|
69
|
-
<Table.DataCell>Geordi</Table.DataCell>
|
|
70
|
-
<Table.DataCell>La Forge</Table.DataCell>
|
|
71
|
-
<Table.DataCell>Sjefsingeniør</Table.DataCell>
|
|
72
|
-
</Table.Row>
|
|
73
|
-
</Table.Body>
|
|
74
|
-
</Table>
|
|
50
|
+
<TableComponent size="small" />
|
|
75
51
|
<h2>Table with divs</h2>
|
|
76
52
|
<Alert variant="warning">
|
|
77
53
|
Obs! Hvis man skal bygge tabeller uten å bruke vanlig {"<tabell> "}
|
|
@@ -87,48 +63,48 @@ export const All = () => {
|
|
|
87
63
|
<div className="navds-table" role="table">
|
|
88
64
|
<div className="navds-table__header" role="rowgroup">
|
|
89
65
|
<div className="navds-table__row" role="row">
|
|
90
|
-
<div className="navds-
|
|
66
|
+
<div className="navds-table__header-cell" role="columnheader">
|
|
91
67
|
Fornavn
|
|
92
68
|
</div>
|
|
93
|
-
<div className="navds-
|
|
69
|
+
<div className="navds-table__header-cell" role="columnheader">
|
|
94
70
|
Etternavn
|
|
95
71
|
</div>
|
|
96
|
-
<div className="navds-
|
|
72
|
+
<div className="navds-table__header-cell" role="columnheader">
|
|
97
73
|
Rolle
|
|
98
74
|
</div>
|
|
99
75
|
</div>
|
|
100
76
|
</div>
|
|
101
77
|
<div className="navds-table__body" role="rowgroup">
|
|
102
78
|
<div className="navds-table__row" role="row">
|
|
103
|
-
<div className="navds-
|
|
79
|
+
<div className="navds-table__data-cell" role="cell">
|
|
104
80
|
Jean-Luc
|
|
105
81
|
</div>
|
|
106
|
-
<div className="navds-
|
|
82
|
+
<div className="navds-table__data-cell" role="cell">
|
|
107
83
|
Picard
|
|
108
84
|
</div>
|
|
109
|
-
<div className="navds-
|
|
85
|
+
<div className="navds-table__data-cell" role="cell">
|
|
110
86
|
Kaptein
|
|
111
87
|
</div>
|
|
112
88
|
</div>
|
|
113
89
|
<div className="navds-table__row" role="row">
|
|
114
|
-
<div className="navds-
|
|
90
|
+
<div className="navds-table__data-cell" role="cell">
|
|
115
91
|
William
|
|
116
92
|
</div>
|
|
117
|
-
<div className="navds-
|
|
93
|
+
<div className="navds-table__data-cell" role="cell">
|
|
118
94
|
Riker
|
|
119
95
|
</div>
|
|
120
|
-
<div className="navds-
|
|
96
|
+
<div className="navds-table__data-cell" role="cell">
|
|
121
97
|
Kommandør
|
|
122
98
|
</div>
|
|
123
99
|
</div>
|
|
124
100
|
<div className="navds-table__row" role="row">
|
|
125
|
-
<div className="navds-
|
|
101
|
+
<div className="navds-table__data-cell" role="cell">
|
|
126
102
|
Geordi
|
|
127
103
|
</div>
|
|
128
|
-
<div className="navds-
|
|
104
|
+
<div className="navds-table__data-cell" role="cell">
|
|
129
105
|
La Forge
|
|
130
106
|
</div>
|
|
131
|
-
<div className="navds-
|
|
107
|
+
<div className="navds-table__data-cell" role="cell">
|
|
132
108
|
Sjefsingeniør
|
|
133
109
|
</div>
|
|
134
110
|
</div>
|
|
@@ -137,3 +113,110 @@ export const All = () => {
|
|
|
137
113
|
</>
|
|
138
114
|
);
|
|
139
115
|
};
|
|
116
|
+
|
|
117
|
+
export const Selection = () => (
|
|
118
|
+
<>
|
|
119
|
+
<h1>Selection</h1>
|
|
120
|
+
<h2>Medium</h2>
|
|
121
|
+
<SelectionTable />
|
|
122
|
+
<h2>Small</h2>
|
|
123
|
+
<SelectionTable size="small" />
|
|
124
|
+
</>
|
|
125
|
+
);
|
|
126
|
+
|
|
127
|
+
const SelectionTable = ({ size = "medium" }: { size?: "small" | "medium" }) => {
|
|
128
|
+
const useToggleList = (initialState) => {
|
|
129
|
+
const [list, setList] = useState(initialState);
|
|
130
|
+
|
|
131
|
+
return [
|
|
132
|
+
list,
|
|
133
|
+
(value) =>
|
|
134
|
+
setList((list) =>
|
|
135
|
+
list.includes(value)
|
|
136
|
+
? list.filter((id) => id !== value)
|
|
137
|
+
: [...list, value]
|
|
138
|
+
),
|
|
139
|
+
];
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
const [selectedRows, toggleSelectedRow] = useToggleList([]);
|
|
143
|
+
|
|
144
|
+
return (
|
|
145
|
+
<Table size={size}>
|
|
146
|
+
<Table.Body>
|
|
147
|
+
<Table.Row>
|
|
148
|
+
<Table.DataCell>
|
|
149
|
+
<Checkbox
|
|
150
|
+
size={size}
|
|
151
|
+
checked={selectedRows.includes("all")}
|
|
152
|
+
onChange={() => toggleSelectedRow("all")}
|
|
153
|
+
>
|
|
154
|
+
Select all
|
|
155
|
+
</Checkbox>
|
|
156
|
+
</Table.DataCell>
|
|
157
|
+
<Table.HeaderCell scope="col">Name</Table.HeaderCell>
|
|
158
|
+
<Table.HeaderCell scope="col">Age</Table.HeaderCell>
|
|
159
|
+
<Table.HeaderCell scope="col">Country</Table.HeaderCell>
|
|
160
|
+
<Table.HeaderCell scope="col">Points</Table.HeaderCell>
|
|
161
|
+
</Table.Row>
|
|
162
|
+
<Table.Row selected={selectedRows.includes("1")}>
|
|
163
|
+
<Table.DataCell>
|
|
164
|
+
<Checkbox
|
|
165
|
+
size={size}
|
|
166
|
+
hideLabel
|
|
167
|
+
checked={selectedRows.includes("1")}
|
|
168
|
+
onChange={() => toggleSelectedRow("1")}
|
|
169
|
+
aria-labelledby={`x_r1-${size}`}
|
|
170
|
+
>
|
|
171
|
+
{" "}
|
|
172
|
+
</Checkbox>
|
|
173
|
+
</Table.DataCell>
|
|
174
|
+
<Table.HeaderCell scope="row">
|
|
175
|
+
<span id={`x_r1-${size}`}>Donald Smith</span>
|
|
176
|
+
</Table.HeaderCell>
|
|
177
|
+
<Table.DataCell>32</Table.DataCell>
|
|
178
|
+
<Table.DataCell>USA</Table.DataCell>
|
|
179
|
+
<Table.DataCell>38</Table.DataCell>
|
|
180
|
+
</Table.Row>
|
|
181
|
+
<Table.Row selected={selectedRows.includes("2")}>
|
|
182
|
+
<Table.DataCell>
|
|
183
|
+
<Checkbox
|
|
184
|
+
size={size}
|
|
185
|
+
hideLabel
|
|
186
|
+
checked={selectedRows.includes("2")}
|
|
187
|
+
onChange={() => toggleSelectedRow("2")}
|
|
188
|
+
aria-labelledby={`x_r2-${size}`}
|
|
189
|
+
>
|
|
190
|
+
{" "}
|
|
191
|
+
</Checkbox>
|
|
192
|
+
</Table.DataCell>
|
|
193
|
+
<Table.HeaderCell scope="row">
|
|
194
|
+
<span id={`x_r2-${size}`}>Preben Aalborg</span>
|
|
195
|
+
</Table.HeaderCell>
|
|
196
|
+
<Table.DataCell>44</Table.DataCell>
|
|
197
|
+
<Table.DataCell>Denmark</Table.DataCell>
|
|
198
|
+
<Table.DataCell>11</Table.DataCell>
|
|
199
|
+
</Table.Row>
|
|
200
|
+
<Table.Row selected={selectedRows.includes("3")}>
|
|
201
|
+
<Table.DataCell>
|
|
202
|
+
<Checkbox
|
|
203
|
+
size={size}
|
|
204
|
+
hideLabel
|
|
205
|
+
checked={selectedRows.includes("3")}
|
|
206
|
+
onChange={() => toggleSelectedRow("3")}
|
|
207
|
+
aria-labelledby={`x_r3-${size}`}
|
|
208
|
+
>
|
|
209
|
+
{" "}
|
|
210
|
+
</Checkbox>
|
|
211
|
+
</Table.DataCell>
|
|
212
|
+
<Table.HeaderCell scope="row">
|
|
213
|
+
<span id={`x_r3-${size}`}>Rudolph Bachenmeier</span>
|
|
214
|
+
</Table.HeaderCell>
|
|
215
|
+
<Table.DataCell>32</Table.DataCell>
|
|
216
|
+
<Table.DataCell>Germany</Table.DataCell>
|
|
217
|
+
<Table.DataCell>70</Table.DataCell>
|
|
218
|
+
</Table.Row>
|
|
219
|
+
</Table.Body>
|
|
220
|
+
</Table>
|
|
221
|
+
);
|
|
222
|
+
};
|