@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.
Files changed (80) hide show
  1. package/dist/cjs/index.js +281 -260
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/lib/components/table/Table.d.ts +4 -14
  4. package/dist/cjs/lib/components/table/Table.stories.d.ts +14 -13
  5. package/dist/cjs/lib/components/table/components/TableCell/TableCell.d.ts +15 -9
  6. package/dist/cjs/lib/components/table/components/TableContents/TableContents.d.ts +13 -0
  7. package/dist/cjs/lib/components/table/components/TableSection/TableSection.d.ts +7 -17
  8. package/dist/cjs/lib/components/table/types.d.ts +17 -0
  9. package/dist/esm/{Collapsible-ac67187a.js → Collapsible-a355828b.js} +1 -1
  10. package/dist/esm/Collapsible-a355828b.js.map +1 -0
  11. package/dist/esm/components/table/Table.js +18 -15
  12. package/dist/esm/components/table/Table.js.map +1 -1
  13. package/dist/esm/components/table/Table.stories.js +59 -54
  14. package/dist/esm/components/table/Table.stories.js.map +1 -1
  15. package/dist/esm/components/table/Table.test.js +18 -14
  16. package/dist/esm/components/table/Table.test.js.map +1 -1
  17. package/dist/esm/components/table/components/TableCell/TableCell.js +23 -6
  18. package/dist/esm/components/table/components/TableCell/TableCell.js.map +1 -1
  19. package/dist/esm/components/table/components/TableCell/TableCell.test.js +4 -4
  20. package/dist/esm/components/table/components/TableCell/TableCell.test.js.map +1 -1
  21. package/dist/esm/components/table/components/{TableSection → TableContents}/Collapsible.js +1 -1
  22. package/dist/esm/components/table/components/TableContents/TableContents.js +56 -0
  23. package/dist/esm/components/table/components/TableContents/TableContents.js.map +1 -0
  24. package/dist/esm/components/table/components/TableContents/TableContents.test.js +82 -0
  25. package/dist/esm/components/table/components/TableContents/TableContents.test.js.map +1 -0
  26. package/dist/esm/components/table/components/TableControls/TableControls.js +1 -1
  27. package/dist/esm/components/table/components/TableSection/TableSection.js +41 -39
  28. package/dist/esm/components/table/components/TableSection/TableSection.js.map +1 -1
  29. package/dist/esm/components/table/components/TableSection/TableSection.test.js +34 -57
  30. package/dist/esm/components/table/components/TableSection/TableSection.test.js.map +1 -1
  31. package/dist/esm/index.js +2 -3
  32. package/dist/esm/index.js.map +1 -1
  33. package/dist/esm/lib/components/table/Table.d.ts +4 -14
  34. package/dist/esm/lib/components/table/Table.stories.d.ts +14 -13
  35. package/dist/esm/lib/components/table/components/TableCell/TableCell.d.ts +15 -9
  36. package/dist/esm/lib/components/table/components/TableContents/TableContents.d.ts +13 -0
  37. package/dist/esm/lib/components/table/components/TableSection/TableSection.d.ts +7 -17
  38. package/dist/esm/lib/components/table/types.d.ts +17 -0
  39. package/package.json +1 -1
  40. package/src/lib/components/table/Table.stories.tsx +64 -59
  41. package/src/lib/components/table/Table.test.tsx +17 -11
  42. package/src/lib/components/table/Table.tsx +28 -45
  43. package/src/lib/components/table/components/TableCell/TableCell.module.scss +64 -1
  44. package/src/lib/components/table/components/TableCell/TableCell.test.tsx +6 -4
  45. package/src/lib/components/table/components/TableCell/TableCell.tsx +122 -75
  46. package/src/lib/components/table/components/TableContents/TableContents.module.scss +10 -0
  47. package/src/lib/components/table/components/TableContents/TableContents.test.tsx +86 -0
  48. package/src/lib/components/table/components/TableContents/TableContents.tsx +106 -0
  49. package/src/lib/components/table/components/TableControls/TableControls.module.scss +2 -1
  50. package/src/lib/components/table/components/TableSection/TableSection.module.scss +13 -8
  51. package/src/lib/components/table/components/TableSection/TableSection.test.tsx +38 -64
  52. package/src/lib/components/table/components/TableSection/TableSection.tsx +98 -94
  53. package/src/lib/components/table/types.ts +23 -0
  54. package/dist/cjs/lib/components/table/components/TableColumn/TableColumn.d.ts +0 -10
  55. package/dist/cjs/lib/components/table/components/TableContent/TableContent.d.ts +0 -13
  56. package/dist/esm/Collapsible-ac67187a.js.map +0 -1
  57. package/dist/esm/components/table/components/TableColumn/TableColumn.js +0 -22
  58. package/dist/esm/components/table/components/TableColumn/TableColumn.js.map +0 -1
  59. package/dist/esm/components/table/components/TableColumn/TableColumn.test.js +0 -40
  60. package/dist/esm/components/table/components/TableColumn/TableColumn.test.js.map +0 -1
  61. package/dist/esm/components/table/components/TableContent/TableContent.js +0 -45
  62. package/dist/esm/components/table/components/TableContent/TableContent.js.map +0 -1
  63. package/dist/esm/components/table/components/TableContent/TableContent.test.js +0 -61
  64. package/dist/esm/components/table/components/TableContent/TableContent.test.js.map +0 -1
  65. package/dist/esm/lib/components/table/components/TableColumn/TableColumn.d.ts +0 -10
  66. package/dist/esm/lib/components/table/components/TableColumn/TableColumn.test.d.ts +0 -1
  67. package/dist/esm/lib/components/table/components/TableContent/TableContent.d.ts +0 -13
  68. package/dist/esm/lib/components/table/components/TableContent/TableContent.test.d.ts +0 -1
  69. package/src/lib/components/table/components/TableColumn/TableColumn.module.scss +0 -38
  70. package/src/lib/components/table/components/TableColumn/TableColumn.test.tsx +0 -49
  71. package/src/lib/components/table/components/TableColumn/TableColumn.tsx +0 -37
  72. package/src/lib/components/table/components/TableContent/TableContent.module.scss +0 -38
  73. package/src/lib/components/table/components/TableContent/TableContent.test.tsx +0 -56
  74. package/src/lib/components/table/components/TableContent/TableContent.tsx +0 -127
  75. /package/dist/cjs/lib/components/table/components/{TableSection → TableContents}/Collapsible.d.ts +0 -0
  76. /package/dist/cjs/lib/components/table/components/{TableColumn/TableColumn.test.d.ts → TableContents/TableContents.test.d.ts} +0 -0
  77. /package/dist/esm/components/table/components/{TableSection → TableContents}/Collapsible.js.map +0 -0
  78. /package/dist/esm/lib/components/table/components/{TableSection → TableContents}/Collapsible.d.ts +0 -0
  79. /package/dist/{cjs/lib/components/table/components/TableContent/TableContent.test.d.ts → esm/lib/components/table/components/TableContents/TableContents.test.d.ts} +0 -0
  80. /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 };