@popsure/dirty-swan 0.54.0 → 0.54.2
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/dist/cjs/index.js +281 -260
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/components/table/Table.d.ts +4 -14
- package/dist/cjs/lib/components/table/Table.stories.d.ts +14 -13
- package/dist/cjs/lib/components/table/components/TableCell/TableCell.d.ts +15 -9
- package/dist/cjs/lib/components/table/components/TableContents/TableContents.d.ts +13 -0
- package/dist/cjs/lib/components/table/components/TableSection/TableSection.d.ts +7 -17
- package/dist/cjs/lib/components/table/types.d.ts +17 -0
- package/dist/esm/{Collapsible-ac67187a.js → Collapsible-a355828b.js} +1 -1
- package/dist/esm/Collapsible-a355828b.js.map +1 -0
- package/dist/esm/components/table/Table.js +18 -15
- package/dist/esm/components/table/Table.js.map +1 -1
- package/dist/esm/components/table/Table.stories.js +59 -54
- package/dist/esm/components/table/Table.stories.js.map +1 -1
- package/dist/esm/components/table/Table.test.js +18 -14
- package/dist/esm/components/table/Table.test.js.map +1 -1
- package/dist/esm/components/table/components/TableCell/TableCell.js +23 -6
- package/dist/esm/components/table/components/TableCell/TableCell.js.map +1 -1
- package/dist/esm/components/table/components/TableCell/TableCell.test.js +4 -4
- package/dist/esm/components/table/components/TableCell/TableCell.test.js.map +1 -1
- package/dist/esm/components/table/components/{TableSection → TableContents}/Collapsible.js +1 -1
- package/dist/esm/components/table/components/TableContents/TableContents.js +56 -0
- package/dist/esm/components/table/components/TableContents/TableContents.js.map +1 -0
- package/dist/esm/components/table/components/TableContents/TableContents.test.js +82 -0
- package/dist/esm/components/table/components/TableContents/TableContents.test.js.map +1 -0
- package/dist/esm/components/table/components/TableControls/TableControls.js +1 -1
- package/dist/esm/components/table/components/TableSection/TableSection.js +41 -39
- package/dist/esm/components/table/components/TableSection/TableSection.js.map +1 -1
- package/dist/esm/components/table/components/TableSection/TableSection.test.js +34 -57
- package/dist/esm/components/table/components/TableSection/TableSection.test.js.map +1 -1
- package/dist/esm/index.js +2 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/components/table/Table.d.ts +4 -14
- package/dist/esm/lib/components/table/Table.stories.d.ts +14 -13
- package/dist/esm/lib/components/table/components/TableCell/TableCell.d.ts +15 -9
- package/dist/esm/lib/components/table/components/TableContents/TableContents.d.ts +13 -0
- package/dist/esm/lib/components/table/components/TableSection/TableSection.d.ts +7 -17
- package/dist/esm/lib/components/table/types.d.ts +17 -0
- package/package.json +1 -1
- package/src/lib/components/table/Table.stories.tsx +64 -59
- package/src/lib/components/table/Table.test.tsx +17 -11
- package/src/lib/components/table/Table.tsx +28 -45
- package/src/lib/components/table/components/TableCell/TableCell.module.scss +64 -1
- package/src/lib/components/table/components/TableCell/TableCell.test.tsx +6 -4
- package/src/lib/components/table/components/TableCell/TableCell.tsx +122 -75
- package/src/lib/components/table/components/TableContents/TableContents.module.scss +10 -0
- package/src/lib/components/table/components/TableContents/TableContents.test.tsx +86 -0
- package/src/lib/components/table/components/TableContents/TableContents.tsx +106 -0
- package/src/lib/components/table/components/TableControls/TableControls.module.scss +2 -1
- package/src/lib/components/table/components/TableSection/TableSection.module.scss +13 -8
- package/src/lib/components/table/components/TableSection/TableSection.test.tsx +38 -64
- package/src/lib/components/table/components/TableSection/TableSection.tsx +98 -94
- package/src/lib/components/table/types.ts +23 -0
- package/dist/cjs/lib/components/table/components/TableColumn/TableColumn.d.ts +0 -10
- package/dist/cjs/lib/components/table/components/TableContent/TableContent.d.ts +0 -13
- package/dist/esm/Collapsible-ac67187a.js.map +0 -1
- package/dist/esm/components/table/components/TableColumn/TableColumn.js +0 -22
- package/dist/esm/components/table/components/TableColumn/TableColumn.js.map +0 -1
- package/dist/esm/components/table/components/TableColumn/TableColumn.test.js +0 -40
- package/dist/esm/components/table/components/TableColumn/TableColumn.test.js.map +0 -1
- package/dist/esm/components/table/components/TableContent/TableContent.js +0 -45
- package/dist/esm/components/table/components/TableContent/TableContent.js.map +0 -1
- package/dist/esm/components/table/components/TableContent/TableContent.test.js +0 -61
- package/dist/esm/components/table/components/TableContent/TableContent.test.js.map +0 -1
- package/dist/esm/lib/components/table/components/TableColumn/TableColumn.d.ts +0 -10
- package/dist/esm/lib/components/table/components/TableColumn/TableColumn.test.d.ts +0 -1
- package/dist/esm/lib/components/table/components/TableContent/TableContent.d.ts +0 -13
- package/dist/esm/lib/components/table/components/TableContent/TableContent.test.d.ts +0 -1
- package/src/lib/components/table/components/TableColumn/TableColumn.module.scss +0 -38
- package/src/lib/components/table/components/TableColumn/TableColumn.test.tsx +0 -49
- package/src/lib/components/table/components/TableColumn/TableColumn.tsx +0 -37
- package/src/lib/components/table/components/TableContent/TableContent.module.scss +0 -38
- package/src/lib/components/table/components/TableContent/TableContent.test.tsx +0 -56
- package/src/lib/components/table/components/TableContent/TableContent.tsx +0 -127
- /package/dist/cjs/lib/components/table/components/{TableSection → TableContents}/Collapsible.d.ts +0 -0
- /package/dist/cjs/lib/components/table/components/{TableColumn/TableColumn.test.d.ts → TableContents/TableContents.test.d.ts} +0 -0
- /package/dist/esm/components/table/components/{TableSection → TableContents}/Collapsible.js.map +0 -0
- /package/dist/esm/lib/components/table/components/{TableSection → TableContents}/Collapsible.d.ts +0 -0
- /package/dist/{cjs/lib/components/table/components/TableContent/TableContent.test.d.ts → esm/lib/components/table/components/TableContents/TableContents.test.d.ts} +0 -0
- /package/src/lib/components/table/components/{TableSection → TableContents}/Collapsible.tsx +0 -0
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import classNames from 'classnames';
|
|
2
|
-
|
|
3
|
-
import styles from './TableColumn.module.scss';
|
|
4
|
-
|
|
5
|
-
export interface TableColumnProps {
|
|
6
|
-
children?: React.ReactNode;
|
|
7
|
-
isColumn?: boolean;
|
|
8
|
-
isFixed?: boolean;
|
|
9
|
-
isHeader?: boolean;
|
|
10
|
-
cellProps?: React.HTMLProps<HTMLTableCellElement>;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
const TableColumn = ({
|
|
14
|
-
children,
|
|
15
|
-
isColumn,
|
|
16
|
-
isFixed,
|
|
17
|
-
isHeader,
|
|
18
|
-
cellProps = {},
|
|
19
|
-
}: TableColumnProps) => {
|
|
20
|
-
const Tag = isHeader ? 'th' : 'td';
|
|
21
|
-
|
|
22
|
-
return (
|
|
23
|
-
<Tag
|
|
24
|
-
scope={isColumn ? 'col' : 'row'}
|
|
25
|
-
className={classNames('bg-white py24 px8', styles.th, {
|
|
26
|
-
[styles.thCol]: isColumn,
|
|
27
|
-
[styles.fixedCell]: isFixed,
|
|
28
|
-
pl32: isFixed,
|
|
29
|
-
})}
|
|
30
|
-
{...cellProps}
|
|
31
|
-
>
|
|
32
|
-
{children}
|
|
33
|
-
</Tag>
|
|
34
|
-
);
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
export { TableColumn };
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
@use '../../../../scss/public/colors' as *;
|
|
2
|
-
@use '../../../../scss/public/grid' as *;
|
|
3
|
-
|
|
4
|
-
.table {
|
|
5
|
-
border-collapse: collapse;
|
|
6
|
-
table-layout: fixed;
|
|
7
|
-
|
|
8
|
-
@include p-size-tablet {
|
|
9
|
-
min-width: 845px;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
.tr {
|
|
14
|
-
min-height: 72px;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
.title {
|
|
18
|
-
position: relative;
|
|
19
|
-
display: none;
|
|
20
|
-
|
|
21
|
-
&:after {
|
|
22
|
-
content: '';
|
|
23
|
-
display: block;
|
|
24
|
-
position: absolute;
|
|
25
|
-
top: calc(
|
|
26
|
-
50% + 16px
|
|
27
|
-
); // Display bottom border at the same distance regardless of cell height
|
|
28
|
-
|
|
29
|
-
height: 4px;
|
|
30
|
-
width: 100%;
|
|
31
|
-
max-width: 140px;
|
|
32
|
-
background-color: $ds-primary-500;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
@include p-size-tablet {
|
|
36
|
-
display: flex;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { render, screen } from '../../../../util/testUtils';
|
|
2
|
-
import { TableContent, TableContentProps } from './TableContent';
|
|
3
|
-
|
|
4
|
-
const mockData: TableContentProps['data'] = [
|
|
5
|
-
[{ text: 'Cell 1.1' }, { text: 'Cell 1.2' }, { text: 'Cell 1.3' }],
|
|
6
|
-
[{ text: 'Cell 2.1' }, { text: 'Cell 2.2' }, { text: 'Cell 2.3' }],
|
|
7
|
-
];
|
|
8
|
-
|
|
9
|
-
const mockTitle = 'Test Table';
|
|
10
|
-
|
|
11
|
-
const mockOpenModal = jest.fn();
|
|
12
|
-
|
|
13
|
-
const defaultProps: TableContentProps = {
|
|
14
|
-
data: mockData,
|
|
15
|
-
title: mockTitle,
|
|
16
|
-
openModal: mockOpenModal,
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
describe('TableContent', () => {
|
|
20
|
-
it('renders the table caption', () => {
|
|
21
|
-
render(<TableContent {...defaultProps} />);
|
|
22
|
-
|
|
23
|
-
expect(screen.getByText(mockTitle)).toBeInTheDocument();
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
it('renders the table with correct data', () => {
|
|
27
|
-
render(<TableContent {...defaultProps} />);
|
|
28
|
-
|
|
29
|
-
expect(screen.getByText('Cell 1.1')).toBeInTheDocument();
|
|
30
|
-
expect(screen.getByText('Cell 1.2')).toBeInTheDocument();
|
|
31
|
-
expect(screen.getByText('Cell 1.3')).toBeInTheDocument();
|
|
32
|
-
|
|
33
|
-
expect(screen.getByText('Cell 2.1')).toBeInTheDocument();
|
|
34
|
-
expect(screen.getByText('Cell 2.2')).toBeInTheDocument();
|
|
35
|
-
expect(screen.getByText('Cell 2.3')).toBeInTheDocument();
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
it('should render table headers', () => {
|
|
39
|
-
const { container } = render(<TableContent {...defaultProps} />);
|
|
40
|
-
|
|
41
|
-
const thElements = container.querySelectorAll('th');
|
|
42
|
-
|
|
43
|
-
expect(thElements.length).toBe(4);
|
|
44
|
-
expect(thElements[0]).toHaveTextContent('Cell 1.1');
|
|
45
|
-
expect(thElements[3]).toHaveTextContent('Cell 2.1');
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
it('should render table data cells', () => {
|
|
49
|
-
const { container } = render(<TableContent {...defaultProps} />);
|
|
50
|
-
|
|
51
|
-
const tdElements = container.querySelectorAll('td');
|
|
52
|
-
expect(tdElements.length).toBe(2);
|
|
53
|
-
expect(tdElements[0]).toHaveTextContent('Cell 2.2');
|
|
54
|
-
expect(tdElements[1]).toHaveTextContent('Cell 2.3');
|
|
55
|
-
});
|
|
56
|
-
});
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import classNames from 'classnames';
|
|
2
|
-
|
|
3
|
-
import styles from './TableContent.module.scss';
|
|
4
|
-
import { TableCell, TableCellProps } from '../TableCell/TableCell';
|
|
5
|
-
import { ReactNode, useCallback } from 'react';
|
|
6
|
-
import { TableColumn } from '../TableColumn/TableColumn';
|
|
7
|
-
|
|
8
|
-
export interface TableContentProps {
|
|
9
|
-
className?: string;
|
|
10
|
-
data: TableCellProps[][];
|
|
11
|
-
hideHeader?: boolean;
|
|
12
|
-
openModal?: (title: ReactNode, body: ReactNode) => void;
|
|
13
|
-
title: string;
|
|
14
|
-
width?: number | string;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
const TableContent = ({
|
|
18
|
-
className,
|
|
19
|
-
data,
|
|
20
|
-
hideHeader,
|
|
21
|
-
openModal,
|
|
22
|
-
title,
|
|
23
|
-
width,
|
|
24
|
-
}: TableContentProps) => {
|
|
25
|
-
const headerRow = data?.[0];
|
|
26
|
-
|
|
27
|
-
const getColumnTextByKey = useCallback(
|
|
28
|
-
(key: number) => data?.[0]?.[key]?.text || '',
|
|
29
|
-
[data]
|
|
30
|
-
);
|
|
31
|
-
|
|
32
|
-
const handleOpenModal = (
|
|
33
|
-
cellIndex: number,
|
|
34
|
-
modalBody: ReactNode,
|
|
35
|
-
title?: ReactNode
|
|
36
|
-
) => openModal?.(title || getColumnTextByKey(cellIndex), modalBody);
|
|
37
|
-
|
|
38
|
-
return (
|
|
39
|
-
<table
|
|
40
|
-
className={classNames(className, 'w100', styles.table)}
|
|
41
|
-
width={width}
|
|
42
|
-
>
|
|
43
|
-
<caption className="sr-only">{title}</caption>
|
|
44
|
-
|
|
45
|
-
{headerRow && (
|
|
46
|
-
<thead className={hideHeader ? 'sr-only' : ''}>
|
|
47
|
-
<tr>
|
|
48
|
-
{headerRow.map(({ cellProps, ...cell }, cellIndex) => {
|
|
49
|
-
const isFirstColumn = cellIndex === 0;
|
|
50
|
-
|
|
51
|
-
return (
|
|
52
|
-
<TableColumn
|
|
53
|
-
key={cellIndex}
|
|
54
|
-
cellProps={cellProps}
|
|
55
|
-
isColumn
|
|
56
|
-
isFixed={isFirstColumn}
|
|
57
|
-
isHeader
|
|
58
|
-
>
|
|
59
|
-
{isFirstColumn ? (
|
|
60
|
-
<div
|
|
61
|
-
aria-hidden
|
|
62
|
-
className={classNames(
|
|
63
|
-
'tc-grey-800 p-h2 p--serif',
|
|
64
|
-
styles.title
|
|
65
|
-
)}
|
|
66
|
-
>
|
|
67
|
-
{cell?.text}
|
|
68
|
-
</div>
|
|
69
|
-
) : (
|
|
70
|
-
<TableCell
|
|
71
|
-
{...cell}
|
|
72
|
-
openModal={(info) => handleOpenModal(0, info, cell?.text)}
|
|
73
|
-
/>
|
|
74
|
-
)}
|
|
75
|
-
</TableColumn>
|
|
76
|
-
);
|
|
77
|
-
})}
|
|
78
|
-
</tr>
|
|
79
|
-
</thead>
|
|
80
|
-
)}
|
|
81
|
-
|
|
82
|
-
<tbody>
|
|
83
|
-
{data.map((row, rowIndex) => {
|
|
84
|
-
const isSingleCell = row.length === 1;
|
|
85
|
-
|
|
86
|
-
return (
|
|
87
|
-
rowIndex > 0 && (
|
|
88
|
-
<tr key={rowIndex} className={styles.tr}>
|
|
89
|
-
{row.map(({ cellProps, ...cell }, cellIndex) => {
|
|
90
|
-
const isFirstCol = cellIndex === 0;
|
|
91
|
-
const key = `${rowIndex}-${cellIndex}`;
|
|
92
|
-
const isHeader = isFirstCol && !isSingleCell;
|
|
93
|
-
|
|
94
|
-
const onCelInfoClick = (info: ReactNode) =>
|
|
95
|
-
handleOpenModal(
|
|
96
|
-
cellIndex,
|
|
97
|
-
info,
|
|
98
|
-
isFirstCol ? cell.text : undefined
|
|
99
|
-
);
|
|
100
|
-
|
|
101
|
-
return (
|
|
102
|
-
<TableColumn
|
|
103
|
-
key={key}
|
|
104
|
-
cellProps={cellProps}
|
|
105
|
-
isFixed={isHeader}
|
|
106
|
-
isHeader={isHeader}
|
|
107
|
-
>
|
|
108
|
-
<TableCell
|
|
109
|
-
align={isFirstCol && !isSingleCell ? 'left' : 'center'}
|
|
110
|
-
openModal={onCelInfoClick}
|
|
111
|
-
{...cell}
|
|
112
|
-
/>
|
|
113
|
-
</TableColumn>
|
|
114
|
-
);
|
|
115
|
-
})}
|
|
116
|
-
</tr>
|
|
117
|
-
)
|
|
118
|
-
);
|
|
119
|
-
})}
|
|
120
|
-
</tbody>
|
|
121
|
-
</table>
|
|
122
|
-
);
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
export type { TableCellProps };
|
|
126
|
-
|
|
127
|
-
export { TableContent };
|
/package/dist/cjs/lib/components/table/components/{TableSection → TableContents}/Collapsible.d.ts
RENAMED
|
File without changes
|
|
File without changes
|
/package/dist/esm/components/table/components/{TableSection → TableContents}/Collapsible.js.map
RENAMED
|
File without changes
|
/package/dist/esm/lib/components/table/components/{TableSection → TableContents}/Collapsible.d.ts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|