@indico-data/design-system 2.47.3 → 2.49.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.
Files changed (54) hide show
  1. package/lib/components/index.d.ts +1 -0
  2. package/lib/components/pagination/Pagination.d.ts +2 -0
  3. package/lib/components/pagination/Pagination.stories.d.ts +6 -0
  4. package/lib/components/pagination/__tests__/Pagination.test.d.ts +1 -0
  5. package/lib/components/pagination/index.d.ts +1 -0
  6. package/lib/components/pagination/types.d.ts +6 -0
  7. package/lib/components/table/Table.stories.d.ts +1 -0
  8. package/lib/components/table/__tests__/Table.test.d.ts +1 -0
  9. package/lib/components/table/components/HorizontalStickyHeader.d.ts +10 -0
  10. package/lib/components/table/components/TablePagination.d.ts +9 -0
  11. package/lib/components/table/components/__tests__/HorizontalStickyHeader.test.d.ts +1 -0
  12. package/lib/components/table/components/__tests__/TablePagination.test.d.ts +1 -0
  13. package/lib/components/table/components/helpers.d.ts +6 -0
  14. package/lib/components/table/hooks/usePinnedColumnsManager.d.ts +8 -0
  15. package/lib/components/table/sampleData.d.ts +6 -0
  16. package/lib/components/table/types.d.ts +16 -5
  17. package/lib/components/table/utils/processColumns.d.ts +2 -0
  18. package/lib/index.css +78 -17
  19. package/lib/index.d.ts +16 -5
  20. package/lib/index.esm.css +78 -17
  21. package/lib/index.esm.js +305 -14
  22. package/lib/index.esm.js.map +1 -1
  23. package/lib/index.js +304 -13
  24. package/lib/index.js.map +1 -1
  25. package/lib/utils/getPreviousHeadersWidth.d.ts +1 -0
  26. package/package.json +1 -1
  27. package/src/components/index.ts +1 -0
  28. package/src/components/pagination/Pagination.mdx +31 -0
  29. package/src/components/pagination/Pagination.stories.tsx +80 -0
  30. package/src/components/pagination/Pagination.tsx +117 -0
  31. package/src/components/pagination/__tests__/Pagination.test.tsx +91 -0
  32. package/src/components/pagination/index.ts +1 -0
  33. package/src/components/pagination/styles/Pagination.scss +22 -0
  34. package/src/components/pagination/types.ts +6 -0
  35. package/src/components/table/Table.mdx +136 -0
  36. package/src/components/table/Table.stories.tsx +91 -30
  37. package/src/components/table/Table.tsx +25 -2
  38. package/src/components/table/__tests__/Table.test.tsx +10 -0
  39. package/src/components/table/components/HorizontalStickyHeader.tsx +57 -0
  40. package/src/components/table/components/TablePagination.tsx +44 -0
  41. package/src/components/table/components/__tests__/HorizontalStickyHeader.test.tsx +104 -0
  42. package/src/components/table/components/__tests__/TablePagination.test.tsx +17 -0
  43. package/src/components/table/components/helpers.ts +90 -0
  44. package/src/components/table/hooks/usePinnedColumnsManager.ts +146 -0
  45. package/src/components/table/sampleData.tsx +436 -0
  46. package/src/components/table/styles/Table.scss +72 -24
  47. package/src/components/table/styles/_variables.scss +3 -0
  48. package/src/components/table/types.ts +19 -7
  49. package/src/components/table/utils/processColumns.tsx +35 -0
  50. package/src/setup/setupIcons.ts +4 -0
  51. package/src/setup/setupTests.ts +8 -0
  52. package/src/styles/index.scss +1 -0
  53. package/src/utils/getPreviousHeadersWidth.ts +12 -0
  54. package/src/components/table/sampleData.ts +0 -171
@@ -20,3 +20,4 @@ export { SingleInputDatePicker } from './forms/date/inputDatePicker';
20
20
  export { InputDateRangePicker } from './forms/date/inputDateRangePicker';
21
21
  export { Modal } from './modal';
22
22
  export { Badge } from './badge';
23
+ export { Pagination } from './pagination';
@@ -0,0 +1,2 @@
1
+ import { PaginationProps } from './types';
2
+ export declare const Pagination: ({ totalPages, currentPage, onChange, className, ...rest }: PaginationProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { Pagination } from './Pagination';
3
+ declare const meta: Meta;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Pagination>;
6
+ export declare const Default: Story;
@@ -0,0 +1 @@
1
+ export { Pagination } from './Pagination';
@@ -0,0 +1,6 @@
1
+ export interface PaginationProps {
2
+ totalPages: number;
3
+ currentPage?: number;
4
+ className?: string;
5
+ onChange?: (value: number) => void;
6
+ }
@@ -5,3 +5,4 @@ declare const meta: Meta;
5
5
  export default meta;
6
6
  type Story = StoryObj<typeof Table<SampleDataRow>>;
7
7
  export declare const Default: Story;
8
+ export declare const PinnedColumns: Story;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ interface HorizontalStickyHeaderProps {
2
+ children: React.ReactNode;
3
+ position: number;
4
+ onPinColumn?: (columnId: string) => void;
5
+ isPinned?: boolean;
6
+ forceUpdate?: number;
7
+ pinnedColumnIds: string[];
8
+ }
9
+ declare const HorizontalStickyHeader: ({ children, position, onPinColumn, isPinned, pinnedColumnIds, }: HorizontalStickyHeaderProps) => import("react/jsx-runtime").JSX.Element;
10
+ export default HorizontalStickyHeader;
@@ -0,0 +1,9 @@
1
+ interface TablePaginationProps {
2
+ rowsPerPage: number;
3
+ rowCount: number;
4
+ onChangePage: (page: number, perPage: number) => void;
5
+ currentPage: number;
6
+ totalEntriesText?: string;
7
+ }
8
+ export declare const TablePagination: ({ rowsPerPage, rowCount, onChangePage, currentPage, totalEntriesText, }: TablePaginationProps) => import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,6 @@
1
+ import { CSSObject } from 'styled-components';
2
+ export declare const getPreviousHeadersWidth: (position: number, pinnedColumnIds: string[]) => number;
3
+ export declare const applyStickyStylesToTableHeader: (position: number, left: number) => Promise<void>;
4
+ export declare const sortPinnedColumns: <T>(columns: T[], pinnedColumnIds: string[]) => T[];
5
+ export declare const getPinnedColumnStyles: (isPinned: boolean, index: number, pinnedColumnIds: string[]) => CSSObject;
6
+ export declare const clearStickyStyles: (header: HTMLElement) => void;
@@ -0,0 +1,8 @@
1
+ import { TableColumn } from '../types';
2
+ /**
3
+ * Hook to manage pinned columns in a table
4
+ * Handles initialization, toggling, positioning and resizing of pinned columns
5
+ */
6
+ export declare const usePinnedColumnsManager: <T>(columns: TableColumn<T>[], canPinColumns: boolean, onPinnedColumnsChange?: (pinnedColumnIds: string[]) => void) => {
7
+ columnsWithPinning: TableColumn<T>[];
8
+ };
@@ -1,3 +1,4 @@
1
+ import { TableColumn } from './types';
1
2
  export interface SampleDataRow {
2
3
  name: string;
3
4
  class: string;
@@ -5,5 +6,10 @@ export interface SampleDataRow {
5
6
  weapon: string;
6
7
  backstory: string;
7
8
  favoriteMeal: string;
9
+ homeland: string;
10
+ alignment: string;
11
+ specialAbility: string;
12
+ test: string;
8
13
  }
9
14
  export declare const sampleData: SampleDataRow[];
15
+ export declare const columns: TableColumn<SampleDataRow>[];
@@ -1,11 +1,22 @@
1
- import { TableProps as RDTTableProps, Direction as RDTDirection, Alignment as RDTAlignment, TableColumn as RDTTableColumn } from 'react-data-table-component';
1
+ import { Direction as RDTDirection, Alignment as RDTAlignment, TableColumn as RDTTableColumn, IDataTableProps } from 'react-data-table-component';
2
+ import { CSSObject } from 'styled-components';
2
3
  export type Direction = `${RDTDirection}`;
3
4
  export type Alignment = `${RDTAlignment}`;
4
- export type TableColumn<T> = RDTTableColumn<T>;
5
- export type TableProps<T> = Omit<RDTTableProps<T>, 'disabled' | 'progressPending' | 'direction' | 'subHeaderAlign'> & {
5
+ export interface PinnableColumn<T> extends RDTTableColumn<T> {
6
+ id: string;
7
+ isPinned?: boolean;
8
+ style?: CSSObject;
9
+ position?: number;
10
+ }
11
+ export type TableColumn<T> = PinnableColumn<T>;
12
+ export interface TableProps<T> extends Omit<IDataTableProps<T>, 'paginationComponent' | 'direction' | 'subHeaderAlign'> {
13
+ columns: TableColumn<T>[];
6
14
  isDisabled?: boolean;
7
15
  isLoading?: boolean;
8
16
  direction?: Direction;
9
- subHeaderAlign?: Alignment;
17
+ subHeaderAlign?: 'left' | 'right' | 'center';
10
18
  isFullHeight?: boolean;
11
- };
19
+ totalEntriesText?: string;
20
+ canPinColumns?: boolean;
21
+ onPinnedColumnsChange?: (pinnedColumnIds: any[]) => void;
22
+ }
@@ -0,0 +1,2 @@
1
+ import { TableColumn } from '../types';
2
+ export declare const processColumns: <T>(columns: TableColumn<T>[], pinnedColumnIds: string[], togglePinnedColumn: (id: string) => void) => TableColumn<T>[];
package/lib/index.css CHANGED
@@ -803,6 +803,9 @@ a:hover,
803
803
  --pf-table-highlighted-color: var(--pf-primary-color);
804
804
  --pf-table-highlighted-box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4), 0 8px 16px rgba(0, 0, 0, 0.3);
805
805
  --pf-table-font-size: var(--pf-font-size-body2);
806
+ --pf-table-pagination-background-color: var(--pf-primary-color-700);
807
+ --pf-table-pinned-column-border-color: var(--pf-primary-color-100);
808
+ --pf-table-pinned-column-background-color: var(--pf-table-background-color);
806
809
  }
807
810
 
808
811
  .table-loading {
@@ -817,7 +820,7 @@ a:hover,
817
820
 
818
821
  .table {
819
822
  border-radius: var(--pf-rounded);
820
- border: var(--pf-border-sm) solid var(--pf-table-border-color);
823
+ background-color: var(--pf-table-background-color);
821
824
  /* Striped: alternating background */
822
825
  /* Checked: Precedence over striped */
823
826
  /* Highlighted: Precedence over checked */
@@ -833,16 +836,47 @@ a:hover,
833
836
  color: var(--pf-table-font-color);
834
837
  border-radius: var(--pf-rounded) !important;
835
838
  border: var(--pf-border-sm) solid var(--pf-table-border-color);
839
+ height: 100%;
840
+ scrollbar-width: thin;
841
+ scrollbar-color: var(--pf-table-border-color) var(--pf-table-background-color);
842
+ }
843
+ .table-body::-webkit-scrollbar {
844
+ width: var(--pf-size-2);
845
+ height: var(--pf-size-2);
846
+ cursor: pointer;
847
+ }
848
+ .table-body::-webkit-scrollbar-track {
849
+ background: var(--pf-table-background-color);
850
+ border-radius: var(--pf-rounded);
851
+ cursor: pointer;
852
+ }
853
+ .table-body::-webkit-scrollbar-thumb {
854
+ background: var(--pf-table-border-color);
855
+ border-radius: var(--pf-rounded);
856
+ cursor: pointer;
857
+ }
858
+ .table-body::-webkit-scrollbar-thumb:hover {
859
+ background: var(--pf-primary-color);
860
+ }
861
+ .table .table__column__pin-action {
862
+ padding: 0;
863
+ padding-right: var(--pf-padding-1);
864
+ }
865
+ .table .table__column--is-pinned {
866
+ opacity: 1;
867
+ }
868
+ .table .table__column--is-not-pinned {
869
+ opacity: 0.3;
870
+ }
871
+ .table .table__header-cell {
872
+ display: flex;
873
+ align-items: center;
836
874
  }
837
875
  .table > *:nth-child(3) {
838
876
  margin-top: auto;
839
877
  background-color: transparent;
840
878
  border: none;
841
879
  }
842
- .table > *:nth-child(3) .rdt_Pagination {
843
- background-color: transparent;
844
- border: none;
845
- }
846
880
  .table .rdt_Table,
847
881
  .table .rdt_TableRow,
848
882
  .table .rdt_TableCol,
@@ -853,8 +887,7 @@ a:hover,
853
887
  .table .rdt_TableHead,
854
888
  .table .rdt_TableHeadRow,
855
889
  .table .rdt_TableBody,
856
- .table .rdt_ExpanderRow,
857
- .table .rdt_Pagination {
890
+ .table .rdt_ExpanderRow {
858
891
  background-color: var(--pf-table-background-color);
859
892
  color: var(--pf-table-font-color);
860
893
  }
@@ -864,26 +897,26 @@ a:hover,
864
897
  .table button:disabled svg {
865
898
  fill: var(--pf-table-disabled-button-color);
866
899
  }
900
+ .table .rdt_TableHead {
901
+ z-index: 3;
902
+ }
867
903
  .table .rdt_TableHeader {
868
904
  border-radius: var(--pf-rounded) 0;
869
- border-bottom: var(--pf-border-sm) solid var(--pf-table-border-color);
870
- }
871
- .table .rdt_TableHeadRow > :first-child,
872
- .table .rdt_TableRow > :first-child {
873
- padding-left: var(--pf-padding-4);
874
- min-width: 60px;
875
- justify-content: left;
905
+ border: var(--pf-border-sm) solid var(--pf-table-border-color);
906
+ border-bottom: none;
876
907
  }
877
908
  .table .rdt_TableRow {
878
909
  border-top: var(--pf-border-sm) solid var(--pf-table-border-color);
879
910
  border-bottom: var(--pf-border-sm) solid var(--pf-table-border-color);
880
911
  }
912
+ .table .rdt_TableRow:hover {
913
+ border-top: var(--pf-border-sm) solid var(--pf-table-border-color);
914
+ border-bottom: var(--pf-border-sm) solid var(--pf-table-border-color);
915
+ outline-color: var(--pf-table-border-color);
916
+ }
881
917
  .table .rdt_TableRow:hover .rdt_TableCell {
882
918
  background-color: var(--pf-table-hover-color) !important;
883
919
  }
884
- .table .rdt_TableRow:first-child .rdt_TableCell {
885
- border-top: var(--pf-border-sm) solid var(--pf-table-border-color);
886
- }
887
920
  .table .rdt_TableCell,
888
921
  .table .rdt_TableCol {
889
922
  font-size: var(--pf-table-font-size);
@@ -892,6 +925,10 @@ a:hover,
892
925
  .table .rdt_TableCol:not(:first-child) {
893
926
  border-left: var(--pf-border-sm) solid var(--pf-table-border-color);
894
927
  }
928
+ .table .rdt_TableCell:not(:last-of-type),
929
+ .table .rdt_TableCol:not(:last-of-type) {
930
+ border-bottom-width: 0;
931
+ }
895
932
  .table .table--striped .rdt_TableRow:nth-child(odd) .rdt_TableCell {
896
933
  background-color: var(--pf-table-stripe-color);
897
934
  }
@@ -908,6 +945,13 @@ a:hover,
908
945
  background-color: var(--pf-table-highlighted-color) !important;
909
946
  }
910
947
 
948
+ .table__pagination {
949
+ padding-bottom: var(--pf-padding-4);
950
+ padding-top: var(--pf-padding-4);
951
+ background-color: var(--pf-table-pagination-background-color);
952
+ padding-left: var(--pf-padding-4);
953
+ }
954
+
911
955
  .input {
912
956
  padding: 10px;
913
957
  }
@@ -1901,6 +1945,23 @@ form {
1901
1945
  text-align: right;
1902
1946
  }
1903
1947
 
1948
+ .pagination .form-control {
1949
+ margin-bottom: 0;
1950
+ }
1951
+
1952
+ .pagination__current-page {
1953
+ max-width: 50px;
1954
+ }
1955
+
1956
+ .pagination__current-page-input {
1957
+ text-align: center;
1958
+ font-weight: var(--pf-font-weight-heavy);
1959
+ }
1960
+
1961
+ .pagination .pagination__current-page-input.has-error {
1962
+ border-color: var(--pf-error-color);
1963
+ }
1964
+
1904
1965
  :root [data-theme=light] {
1905
1966
  --pf-pill-primary-background-color: var(--pf-primary-color);
1906
1967
  --pf-pill-primary-font-color: var(--pf-white-color);
package/lib/index.d.ts CHANGED
@@ -4,7 +4,8 @@ export * from '@floating-ui/react-dom';
4
4
  import React$1, { CSSProperties, MouseEventHandler, ReactElement } from 'react';
5
5
  import * as react_jsx_runtime from 'react/jsx-runtime';
6
6
  import { ContainerProps, RowProps, ColProps } from 'react-grid-system';
7
- import { TableProps as TableProps$1, Direction as Direction$1, Alignment as Alignment$1 } from 'react-data-table-component';
7
+ import { IDataTableProps, Direction as Direction$1, TableColumn as TableColumn$1 } from 'react-data-table-component';
8
+ import { CSSObject } from 'styled-components';
8
9
  import { Props as Props$7 } from 'react-select';
9
10
  import { DateRange, OnSelectHandler, Mode, CustomComponents, Matcher, Formatters, MonthChangeEventHandler, DayEventHandler } from 'react-day-picker';
10
11
 
@@ -184,14 +185,24 @@ type SelectOption = {
184
185
  };
185
186
 
186
187
  type Direction = `${Direction$1}`;
187
- type Alignment = `${Alignment$1}`;
188
- type TableProps<T> = Omit<TableProps$1<T>, 'disabled' | 'progressPending' | 'direction' | 'subHeaderAlign'> & {
188
+ interface PinnableColumn<T> extends TableColumn$1<T> {
189
+ id: string;
190
+ isPinned?: boolean;
191
+ style?: CSSObject;
192
+ position?: number;
193
+ }
194
+ type TableColumn<T> = PinnableColumn<T>;
195
+ interface TableProps<T> extends Omit<IDataTableProps<T>, 'paginationComponent' | 'direction' | 'subHeaderAlign'> {
196
+ columns: TableColumn<T>[];
189
197
  isDisabled?: boolean;
190
198
  isLoading?: boolean;
191
199
  direction?: Direction;
192
- subHeaderAlign?: Alignment;
200
+ subHeaderAlign?: 'left' | 'right' | 'center';
193
201
  isFullHeight?: boolean;
194
- };
202
+ totalEntriesText?: string;
203
+ canPinColumns?: boolean;
204
+ onPinnedColumnsChange?: (pinnedColumnIds: any[]) => void;
205
+ }
195
206
 
196
207
  type PillSize = 'sm' | 'md' | 'lg';
197
208
  type PillColor = SemanticColor | 'neutral';
package/lib/index.esm.css CHANGED
@@ -803,6 +803,9 @@ a:hover,
803
803
  --pf-table-highlighted-color: var(--pf-primary-color);
804
804
  --pf-table-highlighted-box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4), 0 8px 16px rgba(0, 0, 0, 0.3);
805
805
  --pf-table-font-size: var(--pf-font-size-body2);
806
+ --pf-table-pagination-background-color: var(--pf-primary-color-700);
807
+ --pf-table-pinned-column-border-color: var(--pf-primary-color-100);
808
+ --pf-table-pinned-column-background-color: var(--pf-table-background-color);
806
809
  }
807
810
 
808
811
  .table-loading {
@@ -817,7 +820,7 @@ a:hover,
817
820
 
818
821
  .table {
819
822
  border-radius: var(--pf-rounded);
820
- border: var(--pf-border-sm) solid var(--pf-table-border-color);
823
+ background-color: var(--pf-table-background-color);
821
824
  /* Striped: alternating background */
822
825
  /* Checked: Precedence over striped */
823
826
  /* Highlighted: Precedence over checked */
@@ -833,16 +836,47 @@ a:hover,
833
836
  color: var(--pf-table-font-color);
834
837
  border-radius: var(--pf-rounded) !important;
835
838
  border: var(--pf-border-sm) solid var(--pf-table-border-color);
839
+ height: 100%;
840
+ scrollbar-width: thin;
841
+ scrollbar-color: var(--pf-table-border-color) var(--pf-table-background-color);
842
+ }
843
+ .table-body::-webkit-scrollbar {
844
+ width: var(--pf-size-2);
845
+ height: var(--pf-size-2);
846
+ cursor: pointer;
847
+ }
848
+ .table-body::-webkit-scrollbar-track {
849
+ background: var(--pf-table-background-color);
850
+ border-radius: var(--pf-rounded);
851
+ cursor: pointer;
852
+ }
853
+ .table-body::-webkit-scrollbar-thumb {
854
+ background: var(--pf-table-border-color);
855
+ border-radius: var(--pf-rounded);
856
+ cursor: pointer;
857
+ }
858
+ .table-body::-webkit-scrollbar-thumb:hover {
859
+ background: var(--pf-primary-color);
860
+ }
861
+ .table .table__column__pin-action {
862
+ padding: 0;
863
+ padding-right: var(--pf-padding-1);
864
+ }
865
+ .table .table__column--is-pinned {
866
+ opacity: 1;
867
+ }
868
+ .table .table__column--is-not-pinned {
869
+ opacity: 0.3;
870
+ }
871
+ .table .table__header-cell {
872
+ display: flex;
873
+ align-items: center;
836
874
  }
837
875
  .table > *:nth-child(3) {
838
876
  margin-top: auto;
839
877
  background-color: transparent;
840
878
  border: none;
841
879
  }
842
- .table > *:nth-child(3) .rdt_Pagination {
843
- background-color: transparent;
844
- border: none;
845
- }
846
880
  .table .rdt_Table,
847
881
  .table .rdt_TableRow,
848
882
  .table .rdt_TableCol,
@@ -853,8 +887,7 @@ a:hover,
853
887
  .table .rdt_TableHead,
854
888
  .table .rdt_TableHeadRow,
855
889
  .table .rdt_TableBody,
856
- .table .rdt_ExpanderRow,
857
- .table .rdt_Pagination {
890
+ .table .rdt_ExpanderRow {
858
891
  background-color: var(--pf-table-background-color);
859
892
  color: var(--pf-table-font-color);
860
893
  }
@@ -864,26 +897,26 @@ a:hover,
864
897
  .table button:disabled svg {
865
898
  fill: var(--pf-table-disabled-button-color);
866
899
  }
900
+ .table .rdt_TableHead {
901
+ z-index: 3;
902
+ }
867
903
  .table .rdt_TableHeader {
868
904
  border-radius: var(--pf-rounded) 0;
869
- border-bottom: var(--pf-border-sm) solid var(--pf-table-border-color);
870
- }
871
- .table .rdt_TableHeadRow > :first-child,
872
- .table .rdt_TableRow > :first-child {
873
- padding-left: var(--pf-padding-4);
874
- min-width: 60px;
875
- justify-content: left;
905
+ border: var(--pf-border-sm) solid var(--pf-table-border-color);
906
+ border-bottom: none;
876
907
  }
877
908
  .table .rdt_TableRow {
878
909
  border-top: var(--pf-border-sm) solid var(--pf-table-border-color);
879
910
  border-bottom: var(--pf-border-sm) solid var(--pf-table-border-color);
880
911
  }
912
+ .table .rdt_TableRow:hover {
913
+ border-top: var(--pf-border-sm) solid var(--pf-table-border-color);
914
+ border-bottom: var(--pf-border-sm) solid var(--pf-table-border-color);
915
+ outline-color: var(--pf-table-border-color);
916
+ }
881
917
  .table .rdt_TableRow:hover .rdt_TableCell {
882
918
  background-color: var(--pf-table-hover-color) !important;
883
919
  }
884
- .table .rdt_TableRow:first-child .rdt_TableCell {
885
- border-top: var(--pf-border-sm) solid var(--pf-table-border-color);
886
- }
887
920
  .table .rdt_TableCell,
888
921
  .table .rdt_TableCol {
889
922
  font-size: var(--pf-table-font-size);
@@ -892,6 +925,10 @@ a:hover,
892
925
  .table .rdt_TableCol:not(:first-child) {
893
926
  border-left: var(--pf-border-sm) solid var(--pf-table-border-color);
894
927
  }
928
+ .table .rdt_TableCell:not(:last-of-type),
929
+ .table .rdt_TableCol:not(:last-of-type) {
930
+ border-bottom-width: 0;
931
+ }
895
932
  .table .table--striped .rdt_TableRow:nth-child(odd) .rdt_TableCell {
896
933
  background-color: var(--pf-table-stripe-color);
897
934
  }
@@ -908,6 +945,13 @@ a:hover,
908
945
  background-color: var(--pf-table-highlighted-color) !important;
909
946
  }
910
947
 
948
+ .table__pagination {
949
+ padding-bottom: var(--pf-padding-4);
950
+ padding-top: var(--pf-padding-4);
951
+ background-color: var(--pf-table-pagination-background-color);
952
+ padding-left: var(--pf-padding-4);
953
+ }
954
+
911
955
  .input {
912
956
  padding: 10px;
913
957
  }
@@ -1901,6 +1945,23 @@ form {
1901
1945
  text-align: right;
1902
1946
  }
1903
1947
 
1948
+ .pagination .form-control {
1949
+ margin-bottom: 0;
1950
+ }
1951
+
1952
+ .pagination__current-page {
1953
+ max-width: 50px;
1954
+ }
1955
+
1956
+ .pagination__current-page-input {
1957
+ text-align: center;
1958
+ font-weight: var(--pf-font-weight-heavy);
1959
+ }
1960
+
1961
+ .pagination .pagination__current-page-input.has-error {
1962
+ border-color: var(--pf-error-color);
1963
+ }
1964
+
1904
1965
  :root [data-theme=light] {
1905
1966
  --pf-pill-primary-background-color: var(--pf-primary-color);
1906
1967
  --pf-pill-primary-font-color: var(--pf-white-color);