@indico-data/design-system 2.30.1 → 2.31.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/lib/index.css
CHANGED
|
@@ -907,6 +907,7 @@ a:hover, .link:hover {
|
|
|
907
907
|
margin: 1em 0;
|
|
908
908
|
}
|
|
909
909
|
|
|
910
|
+
:root,
|
|
910
911
|
:root [data-theme=light] {
|
|
911
912
|
--pf-table-background-color: var(--pf-white-color);
|
|
912
913
|
--pf-table-font-color: var(--pf-gray-color);
|
|
@@ -914,6 +915,10 @@ a:hover, .link:hover {
|
|
|
914
915
|
--pf-table-stripe-color: var(--pf-gray-color-100);
|
|
915
916
|
--pf-table-hover-color: var(--pf-gray-color-200);
|
|
916
917
|
--pf-table-disabled-color: var(--pf-gray-color-300);
|
|
918
|
+
--pf-table-checked-color: var(--pf-secondary-color-100);
|
|
919
|
+
--pf-table-highlighted-color: var(--pf-gray-color-200);
|
|
920
|
+
--pf-table-highlighted-box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2), 0 8px 16px rgba(0, 0, 0, 0.2);
|
|
921
|
+
--pf-table-font-size: var(--pf-font-size-body2);
|
|
917
922
|
}
|
|
918
923
|
|
|
919
924
|
:root [data-theme=dark] {
|
|
@@ -923,6 +928,9 @@ a:hover, .link:hover {
|
|
|
923
928
|
--pf-table-stripe-color: var(--pf-primary-color-600);
|
|
924
929
|
--pf-table-hover-color: var(--pf-primary-color-400);
|
|
925
930
|
--pf-table-disabled-color: var(--pf-gray-color-900);
|
|
931
|
+
--pf-table-checked-color: var(--pf-secondary-color-900);
|
|
932
|
+
--pf-table-highlighted-color: var(--pf-primary-color-400);
|
|
933
|
+
--pf-table-highlighted-box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4), 0 8px 16px rgba(0, 0, 0, 0.3);
|
|
926
934
|
}
|
|
927
935
|
|
|
928
936
|
.table-loading {
|
|
@@ -934,6 +942,9 @@ a:hover, .link:hover {
|
|
|
934
942
|
color: var(--pf-table-font-color);
|
|
935
943
|
border-radius: var(--pf-rounded);
|
|
936
944
|
border: 1px solid var(--pf-table-border-color);
|
|
945
|
+
/* Striped: alternating background */
|
|
946
|
+
/* Checked: Precedence over striped */
|
|
947
|
+
/* Highlighted: Precedence over checked */
|
|
937
948
|
}
|
|
938
949
|
.table .rdt_Table,
|
|
939
950
|
.table .rdt_TableRow,
|
|
@@ -979,12 +990,9 @@ a:hover, .link:hover {
|
|
|
979
990
|
.table .rdt_TableRow:first-child .rdt_TableCell {
|
|
980
991
|
border-top: var(--pf-border-sm) solid var(--pf-table-border-color);
|
|
981
992
|
}
|
|
982
|
-
.table .rdt_TableRow:last-child .rdt_TableCell {
|
|
983
|
-
border-bottom: var(--pf-border-sm) solid var(--pf-table-border-color);
|
|
984
|
-
}
|
|
985
993
|
.table .rdt_TableCell,
|
|
986
994
|
.table .rdt_TableCol {
|
|
987
|
-
font-size: var(--pf-font-size
|
|
995
|
+
font-size: var(--pf-table-font-size);
|
|
988
996
|
}
|
|
989
997
|
.table .rdt_TableCell:not(:first-child),
|
|
990
998
|
.table .rdt_TableCol:not(:first-child) {
|
|
@@ -993,6 +1001,19 @@ a:hover, .link:hover {
|
|
|
993
1001
|
.table .table--striped .rdt_TableRow:nth-child(odd) .rdt_TableCell {
|
|
994
1002
|
background-color: var(--pf-table-stripe-color);
|
|
995
1003
|
}
|
|
1004
|
+
.table .checked .rdt_TableCell {
|
|
1005
|
+
background-color: var(--pf-table-checked-color) !important;
|
|
1006
|
+
}
|
|
1007
|
+
.table .highlighted {
|
|
1008
|
+
box-shadow: var(--pf-table-highlighted-box-shadow);
|
|
1009
|
+
transform: translateY(-2px);
|
|
1010
|
+
z-index: 1;
|
|
1011
|
+
border-bottom: var(--pf-border-md) solid var(--pf-table-highlighted-color);
|
|
1012
|
+
}
|
|
1013
|
+
.table .highlighted .rdt_TableCell {
|
|
1014
|
+
border-top: var(--pf-border-md) solid var(--pf-table-highlighted-color);
|
|
1015
|
+
background-color: var(--pf-table-highlighted-color) !important;
|
|
1016
|
+
}
|
|
996
1017
|
.table .rdt_Pagination {
|
|
997
1018
|
border-top: var(--pf-border-sm) solid var(--pf-table-border-color);
|
|
998
1019
|
border-radius: 0 0 var(--pf-rounded) var(--pf-rounded);
|
package/lib/index.esm.css
CHANGED
|
@@ -907,6 +907,7 @@ a:hover, .link:hover {
|
|
|
907
907
|
margin: 1em 0;
|
|
908
908
|
}
|
|
909
909
|
|
|
910
|
+
:root,
|
|
910
911
|
:root [data-theme=light] {
|
|
911
912
|
--pf-table-background-color: var(--pf-white-color);
|
|
912
913
|
--pf-table-font-color: var(--pf-gray-color);
|
|
@@ -914,6 +915,10 @@ a:hover, .link:hover {
|
|
|
914
915
|
--pf-table-stripe-color: var(--pf-gray-color-100);
|
|
915
916
|
--pf-table-hover-color: var(--pf-gray-color-200);
|
|
916
917
|
--pf-table-disabled-color: var(--pf-gray-color-300);
|
|
918
|
+
--pf-table-checked-color: var(--pf-secondary-color-100);
|
|
919
|
+
--pf-table-highlighted-color: var(--pf-gray-color-200);
|
|
920
|
+
--pf-table-highlighted-box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2), 0 8px 16px rgba(0, 0, 0, 0.2);
|
|
921
|
+
--pf-table-font-size: var(--pf-font-size-body2);
|
|
917
922
|
}
|
|
918
923
|
|
|
919
924
|
:root [data-theme=dark] {
|
|
@@ -923,6 +928,9 @@ a:hover, .link:hover {
|
|
|
923
928
|
--pf-table-stripe-color: var(--pf-primary-color-600);
|
|
924
929
|
--pf-table-hover-color: var(--pf-primary-color-400);
|
|
925
930
|
--pf-table-disabled-color: var(--pf-gray-color-900);
|
|
931
|
+
--pf-table-checked-color: var(--pf-secondary-color-900);
|
|
932
|
+
--pf-table-highlighted-color: var(--pf-primary-color-400);
|
|
933
|
+
--pf-table-highlighted-box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4), 0 8px 16px rgba(0, 0, 0, 0.3);
|
|
926
934
|
}
|
|
927
935
|
|
|
928
936
|
.table-loading {
|
|
@@ -934,6 +942,9 @@ a:hover, .link:hover {
|
|
|
934
942
|
color: var(--pf-table-font-color);
|
|
935
943
|
border-radius: var(--pf-rounded);
|
|
936
944
|
border: 1px solid var(--pf-table-border-color);
|
|
945
|
+
/* Striped: alternating background */
|
|
946
|
+
/* Checked: Precedence over striped */
|
|
947
|
+
/* Highlighted: Precedence over checked */
|
|
937
948
|
}
|
|
938
949
|
.table .rdt_Table,
|
|
939
950
|
.table .rdt_TableRow,
|
|
@@ -979,12 +990,9 @@ a:hover, .link:hover {
|
|
|
979
990
|
.table .rdt_TableRow:first-child .rdt_TableCell {
|
|
980
991
|
border-top: var(--pf-border-sm) solid var(--pf-table-border-color);
|
|
981
992
|
}
|
|
982
|
-
.table .rdt_TableRow:last-child .rdt_TableCell {
|
|
983
|
-
border-bottom: var(--pf-border-sm) solid var(--pf-table-border-color);
|
|
984
|
-
}
|
|
985
993
|
.table .rdt_TableCell,
|
|
986
994
|
.table .rdt_TableCol {
|
|
987
|
-
font-size: var(--pf-font-size
|
|
995
|
+
font-size: var(--pf-table-font-size);
|
|
988
996
|
}
|
|
989
997
|
.table .rdt_TableCell:not(:first-child),
|
|
990
998
|
.table .rdt_TableCol:not(:first-child) {
|
|
@@ -993,6 +1001,19 @@ a:hover, .link:hover {
|
|
|
993
1001
|
.table .table--striped .rdt_TableRow:nth-child(odd) .rdt_TableCell {
|
|
994
1002
|
background-color: var(--pf-table-stripe-color);
|
|
995
1003
|
}
|
|
1004
|
+
.table .checked .rdt_TableCell {
|
|
1005
|
+
background-color: var(--pf-table-checked-color) !important;
|
|
1006
|
+
}
|
|
1007
|
+
.table .highlighted {
|
|
1008
|
+
box-shadow: var(--pf-table-highlighted-box-shadow);
|
|
1009
|
+
transform: translateY(-2px);
|
|
1010
|
+
z-index: 1;
|
|
1011
|
+
border-bottom: var(--pf-border-md) solid var(--pf-table-highlighted-color);
|
|
1012
|
+
}
|
|
1013
|
+
.table .highlighted .rdt_TableCell {
|
|
1014
|
+
border-top: var(--pf-border-md) solid var(--pf-table-highlighted-color);
|
|
1015
|
+
background-color: var(--pf-table-highlighted-color) !important;
|
|
1016
|
+
}
|
|
996
1017
|
.table .rdt_Pagination {
|
|
997
1018
|
border-top: var(--pf-border-sm) solid var(--pf-table-border-color);
|
|
998
1019
|
border-radius: 0 0 var(--pf-rounded) var(--pf-rounded);
|
package/package.json
CHANGED
|
@@ -7,9 +7,38 @@ import * as TableStories from './Table.stories';
|
|
|
7
7
|
|
|
8
8
|
This component facilitates the rapid creation of responsive and paginated tables. This component was created using the React [Data Table Component](https://react-data-table-component.netlify.app/?path=/docs/api-props--docs) library as a base. You can read more on additional props not listed in this documentation at [this link](https://react-data-table-component.netlify.app/?path=/docs/api-props--docs).
|
|
9
9
|
|
|
10
|
-
<Canvas
|
|
11
|
-
of={TableStories.Default}
|
|
12
|
-
/>
|
|
13
|
-
|
|
10
|
+
<Canvas of={TableStories.Default} />
|
|
14
11
|
|
|
15
12
|
<Controls of={TableStories.Default} />
|
|
13
|
+
|
|
14
|
+
## Conditional Row Styles
|
|
15
|
+
|
|
16
|
+
The `conditionalRowStyles` prop allows you to apply custom styles to specific rows based on a condition. In the Permafrost design system, if you apply the `checked` or `highlighted` classes to a row via the `conditionalRowStyles` prop, the table will automatically pick up predefined styles for those rows.
|
|
17
|
+
|
|
18
|
+
- **`checked`**: This class is used to indicate rows that have been selected. When applied, the row will inherit the styles defined in the Permafrost design system.
|
|
19
|
+
|
|
20
|
+
- **`highlighted`**: This class is used to visually emphasize specific rows. When applied, the row will inherit styles defined in the design system, making the row stand out with distinct border and background colors.
|
|
21
|
+
|
|
22
|
+
### Example Usage
|
|
23
|
+
|
|
24
|
+
Here's an example of how to use the `conditionalRowStyles` prop to apply the `checked` and `highlighted` classes:
|
|
25
|
+
|
|
26
|
+
```jsx
|
|
27
|
+
const conditionalRowStyles = [
|
|
28
|
+
{
|
|
29
|
+
when: (row) => row.isSelected,
|
|
30
|
+
classNames: ['checked'],
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
when: (row) => row.isImportant,
|
|
34
|
+
classNames: ['highlighted'],
|
|
35
|
+
},
|
|
36
|
+
];
|
|
37
|
+
|
|
38
|
+
<DataTable
|
|
39
|
+
title="Sample Table"
|
|
40
|
+
columns={columns}
|
|
41
|
+
data={data}
|
|
42
|
+
conditionalRowStyles={conditionalRowStyles}
|
|
43
|
+
/>;
|
|
44
|
+
```
|
|
@@ -67,27 +67,40 @@
|
|
|
67
67
|
border-top: var(--pf-border-sm) solid var(--pf-table-border-color);
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
|
-
|
|
71
|
-
&:last-child {
|
|
72
|
-
.rdt_TableCell {
|
|
73
|
-
border-bottom: var(--pf-border-sm) solid var(--pf-table-border-color);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
70
|
}
|
|
77
71
|
|
|
78
72
|
.rdt_TableCell,
|
|
79
73
|
.rdt_TableCol {
|
|
80
|
-
font-size: var(--pf-font-size
|
|
74
|
+
font-size: var(--pf-table-font-size);
|
|
81
75
|
|
|
82
76
|
&:not(:first-child) {
|
|
83
77
|
border-left: var(--pf-border-sm) solid var(--pf-table-border-color);
|
|
84
78
|
}
|
|
85
79
|
}
|
|
86
80
|
|
|
81
|
+
/* Striped: alternating background */
|
|
87
82
|
.table--striped .rdt_TableRow:nth-child(odd) .rdt_TableCell {
|
|
88
83
|
background-color: var(--pf-table-stripe-color);
|
|
89
84
|
}
|
|
90
85
|
|
|
86
|
+
/* Checked: Precedence over striped */
|
|
87
|
+
.checked .rdt_TableCell {
|
|
88
|
+
background-color: var(--pf-table-checked-color) !important;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/* Highlighted: Precedence over checked */
|
|
92
|
+
.highlighted {
|
|
93
|
+
box-shadow: var(--pf-table-highlighted-box-shadow);
|
|
94
|
+
transform: translateY(-2px);
|
|
95
|
+
z-index: 1;
|
|
96
|
+
border-bottom: var(--pf-border-md) solid var(--pf-table-highlighted-color);
|
|
97
|
+
|
|
98
|
+
.rdt_TableCell {
|
|
99
|
+
border-top: var(--pf-border-md) solid var(--pf-table-highlighted-color);
|
|
100
|
+
background-color: var(--pf-table-highlighted-color) !important;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
91
104
|
.rdt_Pagination {
|
|
92
105
|
border-top: var(--pf-border-sm) solid var(--pf-table-border-color);
|
|
93
106
|
border-radius: 0 0 var(--pf-rounded) var(--pf-rounded);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// Light Theme Specific Variables
|
|
2
|
+
:root,
|
|
2
3
|
:root [data-theme='light'] {
|
|
3
4
|
--pf-table-background-color: var(--pf-white-color);
|
|
4
5
|
--pf-table-font-color: var(--pf-gray-color);
|
|
@@ -6,6 +7,10 @@
|
|
|
6
7
|
--pf-table-stripe-color: var(--pf-gray-color-100);
|
|
7
8
|
--pf-table-hover-color: var(--pf-gray-color-200);
|
|
8
9
|
--pf-table-disabled-color: var(--pf-gray-color-300);
|
|
10
|
+
--pf-table-checked-color: var(--pf-secondary-color-100);
|
|
11
|
+
--pf-table-highlighted-color: var(--pf-gray-color-200);
|
|
12
|
+
--pf-table-highlighted-box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2), 0 8px 16px rgba(0, 0, 0, 0.2);
|
|
13
|
+
--pf-table-font-size: var(--pf-font-size-body2);
|
|
9
14
|
}
|
|
10
15
|
|
|
11
16
|
// Dark Theme Specific Variables
|
|
@@ -16,4 +21,7 @@
|
|
|
16
21
|
--pf-table-stripe-color: var(--pf-primary-color-600);
|
|
17
22
|
--pf-table-hover-color: var(--pf-primary-color-400);
|
|
18
23
|
--pf-table-disabled-color: var(--pf-gray-color-900);
|
|
24
|
+
--pf-table-checked-color: var(--pf-secondary-color-900);
|
|
25
|
+
--pf-table-highlighted-color: var(--pf-primary-color-400);
|
|
26
|
+
--pf-table-highlighted-box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4), 0 8px 16px rgba(0, 0, 0, 0.3);
|
|
19
27
|
}
|