playbook_ui 14.21.2.pre.alpha.PLAY22558410 → 14.21.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 (129) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/Components/CustomCell.tsx +2 -5
  3. data/app/pb_kits/playbook/pb_advanced_table/Components/RegularTableView.tsx +4 -20
  4. data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +5 -25
  5. data/app/pb_kits/playbook/pb_advanced_table/Components/VirtualizedTableView.tsx +16 -36
  6. data/app/pb_kits/playbook/pb_advanced_table/Context/AdvancedTableContext.tsx +5 -18
  7. data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableActions.ts +17 -37
  8. data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableState.ts +5 -30
  9. data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableBody.tsx +0 -3
  10. data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableHeader.tsx +40 -91
  11. data/app/pb_kits/playbook/pb_advanced_table/Utilities/CellRendererUtils.tsx +1 -4
  12. data/app/pb_kits/playbook/pb_advanced_table/Utilities/TableContainerStyles.ts +2 -3
  13. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +4 -49
  14. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +18 -36
  15. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +2 -105
  16. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_sort.html.erb +1 -1
  17. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_subrow_headers.html.erb +1 -1
  18. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_border_color_rails.html.erb +1 -1
  19. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_loading.html.erb +1 -1
  20. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pinned_rows.jsx +1 -1
  21. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pinned_rows_react.md +3 -5
  22. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_actions.jsx +2 -2
  23. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_actions_rails.html.erb +2 -3
  24. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header.html.erb +1 -1
  25. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +0 -6
  26. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +0 -4
  27. data/app/pb_kits/playbook/pb_advanced_table/flat_advanced_table.js +84 -60
  28. data/app/pb_kits/playbook/pb_advanced_table/index.js +213 -125
  29. data/app/pb_kits/playbook/pb_advanced_table/table_action_bar.html.erb +1 -1
  30. data/app/pb_kits/playbook/pb_advanced_table/table_header.html.erb +1 -1
  31. data/app/pb_kits/playbook/pb_advanced_table/table_header.rb +0 -5
  32. data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +2 -2
  33. data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +0 -33
  34. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_blank_selection.html.erb +3 -3
  35. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_blank_selection.jsx +4 -7
  36. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_clear_selection.jsx +3 -6
  37. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default.jsx +3 -6
  38. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_rails.html.erb +3 -3
  39. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_value.html.erb +3 -3
  40. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_value.jsx +4 -7
  41. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_error.html.erb +3 -3
  42. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_error.jsx +4 -7
  43. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select.jsx +10 -19
  44. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_display.jsx +10 -19
  45. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_display_rails.html.erb +10 -10
  46. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_rails.html.erb +10 -10
  47. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_autocomplete.html.erb +10 -10
  48. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_autocomplete.jsx +11 -20
  49. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_custom_options.html.erb +3 -3
  50. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_custom_options.jsx +8 -8
  51. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_default.html.erb +10 -10
  52. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_default.jsx +14 -23
  53. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_separators_hidden.html.erb +3 -3
  54. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_separators_hidden.jsx +3 -6
  55. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_subcomponent_structure.jsx +3 -6
  56. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_subcomponent_structure_rails.html.erb +3 -3
  57. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_subtle_variant.html.erb +3 -3
  58. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_subtle_variant.jsx +3 -6
  59. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_autocomplete.html.erb +3 -3
  60. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_autocomplete.jsx +3 -3
  61. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_autocomplete_with_subcomponents.html.erb +4 -4
  62. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_autocomplete_with_subcomponents.jsx +4 -4
  63. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_display.jsx +4 -4
  64. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_display_rails.html.erb +4 -4
  65. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_options.jsx +3 -3
  66. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_options_rails.html.erb +3 -3
  67. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_padding.html.erb +3 -3
  68. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_padding.jsx +3 -3
  69. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_trigger.jsx +3 -3
  70. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_trigger_rails.html.erb +3 -3
  71. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_external_control.jsx +3 -3
  72. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_label.html.erb +3 -3
  73. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_label.jsx +3 -6
  74. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_search.jsx +3 -3
  75. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_search_rails.html.erb +3 -3
  76. data/app/pb_kits/playbook/pb_dropdown/docs/example.yml +0 -4
  77. data/app/pb_kits/playbook/pb_dropdown/docs/index.js +1 -3
  78. data/app/pb_kits/playbook/pb_filter/Filter/index.tsx +0 -13
  79. data/app/pb_kits/playbook/pb_filter/_filter.scss +0 -4
  80. data/app/pb_kits/playbook/pb_filter/docs/example.yml +0 -1
  81. data/app/pb_kits/playbook/pb_filter/docs/index.js +0 -1
  82. data/app/pb_kits/playbook/pb_table/docs/_table_sticky_columns.html.erb +8 -8
  83. data/app/pb_kits/playbook/pb_table/docs/_table_sticky_columns_rails.md +1 -1
  84. data/app/pb_kits/playbook/pb_table/docs/_table_sticky_left_columns.html.erb +12 -12
  85. data/app/pb_kits/playbook/pb_table/docs/_table_sticky_left_columns_rails.md +2 -2
  86. data/app/pb_kits/playbook/pb_table/docs/_table_sticky_right_columns.html.erb +12 -12
  87. data/app/pb_kits/playbook/pb_table/docs/_table_sticky_right_columns_rails.md +2 -2
  88. data/app/pb_kits/playbook/pb_table/index.ts +4 -4
  89. data/app/pb_kits/playbook/pb_table/styles/_vertical_border.scss +0 -4
  90. data/dist/chunks/_typeahead-BlPRej0F.js +22 -0
  91. data/dist/chunks/_weekday_stacked-CzxoxxCR.js +45 -0
  92. data/dist/chunks/lazysizes-DHz07jlL.js +1 -0
  93. data/dist/chunks/lib-D4vXIZF5.js +29 -0
  94. data/dist/chunks/{pb_form_validation-BVF3TmcL.js → pb_form_validation-DyvJ8iPe.js} +1 -1
  95. data/dist/chunks/vendor.js +1 -1
  96. data/dist/playbook-doc.js +3 -3
  97. data/dist/playbook-rails-react-bindings.js +1 -1
  98. data/dist/playbook-rails.js +1 -1
  99. data/dist/playbook.css +1 -1
  100. data/lib/playbook/version.rb +2 -2
  101. metadata +7 -31
  102. data/app/pb_kits/playbook/pb_advanced_table/Utilities/ColumnStylingHelper.ts +0 -15
  103. data/app/pb_kits/playbook/pb_advanced_table/advanced_table_action_bar.js +0 -36
  104. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling.jsx +0 -51
  105. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling.md +0 -7
  106. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_column_headers.jsx +0 -77
  107. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_column_headers.md +0 -1
  108. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_column_headers_rails.html.erb +0 -63
  109. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_column_headers_rails.md +0 -1
  110. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_rails.html.erb +0 -38
  111. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_rails.md +0 -7
  112. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_infinite_scroll.md +0 -3
  113. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling.jsx +0 -64
  114. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling.md +0 -7
  115. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_icon_options.html.erb +0 -52
  116. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_icon_options.jsx +0 -99
  117. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_icon_options_rails.md +0 -1
  118. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_icon_options_react.md +0 -1
  119. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_radio_options.html.erb +0 -28
  120. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_radio_options.jsx +0 -47
  121. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_radio_options_rails.md +0 -1
  122. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_radio_options_react.md +0 -1
  123. data/app/pb_kits/playbook/pb_filter/Filter/FilterSection.tsx +0 -49
  124. data/app/pb_kits/playbook/pb_filter/Filter/FilterSidebar.tsx +0 -69
  125. data/app/pb_kits/playbook/pb_filter/docs/_filter_sidebar.jsx +0 -224
  126. data/dist/chunks/_typeahead-B80UsDrG.js +0 -22
  127. data/dist/chunks/_weekday_stacked-D1bqIne1.js +0 -45
  128. data/dist/chunks/lazysizes-B7xYodB-.js +0 -1
  129. data/dist/chunks/lib-CTkMyvfQ.js +0 -29
@@ -40,13 +40,9 @@ export const TableHeader = ({
40
40
  showActionsBar,
41
41
  selectableRows,
42
42
  responsive,
43
- headerRef,
44
- virtualizedRows,
45
- enableVirtualization,
43
+ headerRef
46
44
  } = useContext(AdvancedTableContext)
47
45
 
48
- const isVirtualized = virtualizedRows || enableVirtualization;
49
-
50
46
  const classes = classnames(
51
47
  buildCss("pb_advanced_table_header"),
52
48
  globalProps(props),
@@ -61,93 +57,46 @@ export const TableHeader = ({
61
57
  `${isChrome() ? "chrome-styles" : ""}`,
62
58
  `${responsive === "scroll" && "pinned-left"}`,
63
59
  );
64
-
65
- const renderRegularTableHeader = () => (
66
- <thead className={classes}
67
- id={id}
68
- >
69
- {table.getHeaderGroups().map((headerGroup: HeaderGroup<GenericObject>, index: number) => (
70
- <tr
71
- key={`${headerGroup.id}-headerGroup`}
72
- ref={index === 0 ? headerRef : null}
73
- >
74
- {!hasAnySubRows && selectableRows && (
75
- <th className={customCellClassnames}>
76
- <Checkbox
77
- checked={table?.getIsAllRowsSelected()}
78
- indeterminate={table?.getIsSomeRowsSelected()}
79
- onChange={table?.getToggleAllRowsSelectedHandler()}
80
- />
81
- </th>
82
- )}
83
- {headerGroup.headers.map(header => {
84
- const isPinnedLeft = columnPinning.left.includes(header.id)
85
- return (
86
- <TableHeaderCell
87
- enableSorting={enableSorting}
88
- enableToggleExpansion={enableToggleExpansion}
89
- handleExpandOrCollapse={handleExpandOrCollapse}
90
- header={header}
91
- headerChildren={children}
92
- isPinnedLeft={isPinnedLeft}
93
- key={`${header.id}-header`}
94
- loading={loading}
95
- sortIcon={sortIcon}
96
- table={table}
97
- />
98
- )
99
- })}
100
- </tr>
101
- ))}
102
- </thead>
103
- );
104
-
105
- const renderVirtualizedTableHeader = () => (
106
- <thead
107
- className={classes}
108
- data-virtualized="true"
109
- id={id}
110
- >
111
- {table.getHeaderGroups().map((headerGroup: HeaderGroup<GenericObject>, index: number) => (
112
- <tr
113
- className="virtualized-header-row-header"
114
- key={`${headerGroup.id}-headerGroup-virtualized`}
115
- ref={index === 0 ? headerRef : null}
116
- >
117
- {!hasAnySubRows && selectableRows && (
118
- <th className={classnames(customCellClassnames, "virtualized-header-cell")}>
119
- <Checkbox
120
- checked={table?.getIsAllRowsSelected()}
121
- indeterminate={table?.getIsSomeRowsSelected()}
122
- onChange={table?.getToggleAllRowsSelectedHandler()}
123
- />
124
- </th>
125
- )}
126
- {headerGroup.headers.map(header => {
127
- const isPinnedLeft = columnPinning.left.includes(header.id)
128
- return (
129
- <TableHeaderCell
130
- enableSorting={enableSorting}
131
- enableToggleExpansion={enableToggleExpansion}
132
- handleExpandOrCollapse={handleExpandOrCollapse}
133
- header={header}
134
- headerChildren={children}
135
- isPinnedLeft={isPinnedLeft}
136
- isVirtualized
137
- key={`${header.id}-header-virtualized`}
138
- loading={loading}
139
- sortIcon={sortIcon}
140
- table={table}
141
- />
142
- )
143
- })}
144
- </tr>
145
- ))}
146
- </thead>
147
- );
148
60
  return (
149
- <>
150
- {isVirtualized ? renderVirtualizedTableHeader() : renderRegularTableHeader()}
61
+ <>
62
+ <thead className={classes}
63
+ id={id}
64
+ >
65
+ {/* Get the header groups (only one in this example) */}
66
+ {table.getHeaderGroups().map((headerGroup: HeaderGroup<GenericObject>, index: number) => (
67
+ <tr
68
+ key={`${headerGroup.id}-headerGroup`}
69
+ ref={index === 0 ? headerRef : null}
70
+ >
71
+ {!hasAnySubRows && selectableRows && (
72
+ <th className={customCellClassnames}>
73
+ <Checkbox
74
+ checked={table?.getIsAllRowsSelected()}
75
+ indeterminate={table?.getIsSomeRowsSelected()}
76
+ onChange={table?.getToggleAllRowsSelectedHandler()}
77
+ />
78
+ </th>
79
+ )}
80
+ {headerGroup.headers.map(header => {
81
+ const isPinnedLeft = columnPinning.left.includes(header.id)
82
+ return (
83
+ <TableHeaderCell
84
+ enableSorting={enableSorting}
85
+ enableToggleExpansion={enableToggleExpansion}
86
+ handleExpandOrCollapse={handleExpandOrCollapse}
87
+ header={header}
88
+ headerChildren={children}
89
+ isPinnedLeft={isPinnedLeft}
90
+ key={`${header.id}-header`}
91
+ loading={loading}
92
+ sortIcon={sortIcon}
93
+ table={table}
94
+ />
95
+ )
96
+ })}
97
+ </tr>
98
+ ))}
99
+ </thead>
151
100
  </>
152
101
  )
153
102
  }
@@ -17,8 +17,7 @@ export const createCellFunction = (
17
17
  customRenderer?: (row: Row<GenericObject>, value: any) => JSX.Element,
18
18
  isFirstColumn?: boolean,
19
19
  onRowToggleClick?: (row: Row<GenericObject>) => void,
20
- selectableRows?: boolean,
21
- rowStyling?: GenericObject
20
+ selectableRows?: boolean
22
21
  ) => {
23
22
  // Add display name to the returned function
24
23
  const cellRenderer = ({
@@ -29,7 +28,6 @@ export const createCellFunction = (
29
28
  getValue: Getter<string>
30
29
  }) => {
31
30
  const rowData = row.original;
32
- const customStyle = rowStyling?.length > 0 && rowStyling?.find((s:GenericObject) => s?.rowId === row.id);
33
31
 
34
32
  if (isFirstColumn) {
35
33
  switch (row.depth) {
@@ -37,7 +35,6 @@ export const createCellFunction = (
37
35
  return (
38
36
  <CustomCell
39
37
  customRenderer={customRenderer}
40
- customStyle={customStyle}
41
38
  getValue={getValue}
42
39
  onRowToggleClick={onRowToggleClick}
43
40
  row={row}
@@ -57,6 +57,7 @@ export const getVirtualizedContainerStyles = (maxHeight?: string): React.CSSProp
57
57
  position: 'absolute',
58
58
  top: 0,
59
59
  left: 0,
60
+ width: '100%',
60
61
  height: '40px', // Match standard table row height
61
62
  transform: `translateY(${startPosition}px)`,
62
63
  tableLayout: 'fixed',
@@ -66,14 +67,12 @@ export const getVirtualizedContainerStyles = (maxHeight?: string): React.CSSProp
66
67
  /**
67
68
  * Get height estimates for different row types
68
69
  */
69
- export const getRowHeightEstimate = (rowType: 'header' | 'row' | 'loading' | 'footer') => {
70
+ export const getRowHeightEstimate = (rowType: 'header' | 'row' | 'loading') => {
70
71
  switch (rowType) {
71
72
  case 'header':
72
73
  return 40; // Header height
73
74
  case 'loading':
74
75
  return 30; // Loading indicator height
75
- case 'footer':
76
- return 40
77
76
  case 'row':
78
77
  default:
79
78
  return 40; // Standard row height - match this to your design system
@@ -63,30 +63,11 @@
63
63
  width: 100%;
64
64
  }
65
65
 
66
- // Virtualized Table and Rows for Infinite Scroll
67
- scrollbar-gutter: stable right-edges;
68
- .virtualized-header-row-header {
69
- width: 100% !important;
70
- .table-header-cells:first-child {
71
- min-width: 180px;
72
- }
73
- }
74
-
75
- .virtualized-footer {
76
- width: 100% !important;
77
- td {
78
- border-bottom-left-radius: 4px !important;
79
- border-bottom-right-radius: 4px !important;
80
- display: flex;
81
- justify-content: center;
82
- align-items: center;
83
- }
84
- }
85
-
66
+ // Virtualized table styles
86
67
  .virtualized-table-row {
87
68
  display: table !important;
88
69
  table-layout: fixed !important;
89
- box-sizing: border-box !important;
70
+ width: 100% !important;
90
71
 
91
72
  td {
92
73
  display: table-cell !important;
@@ -123,7 +104,7 @@
123
104
 
124
105
  -ms-overflow-style: none !important;
125
106
  scrollbar-width: none !important;
126
- }
107
+ }
127
108
 
128
109
 
129
110
  .row-selection-actions-card {
@@ -212,6 +193,7 @@
212
193
 
213
194
  // Fix virtualized row borders
214
195
  tr.virtualized-table-row {
196
+ border-bottom: 1px solid $border_light;
215
197
 
216
198
  &.bg-silver {
217
199
  td:first-child {
@@ -624,16 +606,6 @@
624
606
  td.sticky-left {
625
607
  border-right: 1px solid $border_light !important;
626
608
  }
627
- // Virtualized Table in Responsive Styles
628
- .virtualized-header,
629
- .virtualized-header-row-header,
630
- .virtualized-table-row,
631
- .virtualized-footer {
632
- border-right: 1px solid $border_light !important;
633
- .table-header-cells:first-child {
634
- box-shadow: 0 0 10px 0 rgba($shadow, 0.16) !important;
635
- }
636
- }
637
609
  }
638
610
  }
639
611
  }
@@ -649,23 +621,6 @@
649
621
  box-shadow: 0 4px 10px 0 rgba($shadow, 0.16) !important;
650
622
  }
651
623
 
652
- // For Rails, we can't target the &:last-child since collapsed rows are display: none;
653
- // With JS, we add a .last-visible-row class and add rounded corners to bottom row
654
- .last-visible-row {
655
- td, .pb_table_td {
656
- border-width: 0 0 1px 0;
657
-
658
- &:first-child {
659
- border-radius: 0 0 0 4px;
660
- border-width: 0 0 1px 1px;
661
- }
662
- &:last-child {
663
- border-radius: 0 0 4px 0;
664
- border-width: 0 1px 1px 0;
665
- }
666
- }
667
- }
668
-
669
624
  &.dark {
670
625
  // Override default border color for dark mode
671
626
  --column-border-color: #{$border_dark};
@@ -57,7 +57,6 @@ type AdvancedTableProps = {
57
57
  onChange?: (value: RowPinningState) => void;
58
58
  };
59
59
  responsive?: "scroll" | "none",
60
- rowStyling?: GenericObject[],
61
60
  scrollBarNone?: boolean,
62
61
  selectableRows?: boolean,
63
62
  showActionsBar?: boolean,
@@ -99,7 +98,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
99
98
  paginationProps,
100
99
  pinnedRows,
101
100
  responsive = "scroll",
102
- rowStyling,
103
101
  scrollBarNone= false,
104
102
  showActionsBar = true,
105
103
  selectableRows,
@@ -146,7 +144,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
146
144
  onRowSelectionChange,
147
145
  columnVisibilityControl,
148
146
  pinnedRows,
149
- rowStyling
150
147
  });
151
148
 
152
149
  // Initialize table actions
@@ -269,29 +266,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
269
266
  // Visibility flag for action bar
270
267
  const isActionBarVisible = (selectableRows && showActionsBar && selectedRowsLength > 0) || columnVisibilityControl;
271
268
 
272
- // The actual Main <Table /> element
273
- const tableElement = (
274
- <Table
275
- className={`${loading ? "content-loading" : ""}`}
276
- dark={dark}
277
- dataTable
278
- numberSpacing="tabular"
279
- responsive="none"
280
- {...tableProps}
281
- >
282
- {children ? (
283
- children
284
- ) : (
285
- <>
286
- <TableHeader />
287
- <TableBody
288
- isFetching={isFetching}
289
- />
290
- </>
291
- )}
292
- </Table>
293
- )
294
-
295
269
  return (
296
270
  <>
297
271
  {/* Top Pagination */}
@@ -339,7 +313,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
339
313
  onExpandByDepthClick={onExpandByDepthClick}
340
314
  pinnedRows={pinnedRows}
341
315
  responsive={responsive}
342
- rowStyling={rowStyling}
343
316
  selectableRows={selectableRows}
344
317
  setExpanded={setExpanded}
345
318
  showActionsBar={showActionsBar}
@@ -349,7 +322,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
349
322
  table={table}
350
323
  tableContainerRef={tableWrapperRef}
351
324
  toggleExpansionIcon={toggleExpansionIcon}
352
- totalAvailableCount={fullData.length}
353
325
  virtualizedRows={virtualizedRows}
354
326
  >
355
327
  <React.Fragment>
@@ -361,14 +333,24 @@ const AdvancedTable = (props: AdvancedTableProps) => {
361
333
  type={columnVisibilityControl ? "column-visibility" : "row-selection"}
362
334
  />
363
335
 
364
- {/* Virtualized wrapper div only if virtualizedRows is true */}
365
- {virtualizedRows ? (
366
- <div style={{ overflow: 'auto', width: '100%' }}>
367
- {tableElement}
368
- </div>
369
- ) : (
370
- tableElement
371
- )}
336
+ {/* Main Table */}
337
+ <Table
338
+ className={`${loading ? "content-loading" : ""}`}
339
+ dark={dark}
340
+ dataTable
341
+ numberSpacing="tabular"
342
+ responsive="none"
343
+ {...tableProps}
344
+ >
345
+ {children ? (
346
+ children
347
+ ) : (
348
+ <>
349
+ <TableHeader />
350
+ <TableBody />
351
+ </>
352
+ )}
353
+ </Table>
372
354
  </React.Fragment>
373
355
  </AdvancedTableProvider>
374
356
 
@@ -1,7 +1,7 @@
1
1
  import React, {useState} from "react"
2
2
  import { render, screen, waitFor } from "../utilities/test-utils"
3
3
 
4
- import { AdvancedTable, Pill, colors } from "playbook-ui"
4
+ import { AdvancedTable, Pill } from "playbook-ui"
5
5
 
6
6
  global.ResizeObserver = class {
7
7
  observe() {}
@@ -572,107 +572,4 @@ test("pinnedRows prop renders pinned rows at top", () => {
572
572
  const firstPinnedRow = pinnedRows[0]
573
573
  expect(firstPinnedRow).toHaveStyle("position: sticky")
574
574
  expect(firstPinnedRow).toHaveStyle("background-color: white")
575
- })
576
-
577
- test("columnStyling.headerAlignment aligns header as expected", () => {
578
- const styledColumnDefs = [
579
- {
580
- accessor: "year",
581
- label: "Year",
582
- cellAccessors: ["quarter", "month", "day"],
583
- },
584
- {
585
- accessor: "newEnrollments",
586
- label: "New Enrollments",
587
- columnStyling: { headerAlignment: "left" },
588
- },
589
- {
590
- accessor: "scheduledMeetings",
591
- label: "Scheduled Meetings",
592
- },
593
- ];
594
-
595
- render(
596
- <AdvancedTable
597
- columnDefinitions={styledColumnDefs}
598
- data={{ testid: testId }}
599
- tableData={MOCK_DATA}
600
- />
601
- );
602
-
603
- const headerCell = screen.getByText("New Enrollments").closest("th");
604
- expect(headerCell).toHaveAttribute("align", "left");
605
- });
606
-
607
- test("columnStyling.cellAlignment sets each <td> align attribute as expected", () => {
608
- const styledColumnDefs = [
609
- {
610
- accessor: "year",
611
- label: "Year",
612
- cellAccessors: ["quarter", "month", "day"],
613
- },
614
- {
615
- accessor: "newEnrollments",
616
- label: "New Enrollments",
617
- columnStyling: { cellAlignment: "left" },
618
- },
619
- {
620
- accessor: "scheduledMeetings",
621
- label: "Scheduled Meetings",
622
- },
623
- ];
624
-
625
- render(
626
- <AdvancedTable
627
- columnDefinitions={styledColumnDefs}
628
- data={{ testid: testId }}
629
- tableData={MOCK_DATA}
630
- />
631
- );
632
-
633
- const firstEnrollmentCell = screen.getAllByText("20")[0].closest("td");
634
- expect(firstEnrollmentCell).toHaveAttribute("align", "left");
635
- });
636
-
637
- test("renders virtualized table rows and header", () => {
638
- render(
639
- <AdvancedTable
640
- columnDefinitions={columnDefinitions}
641
- data={{ testid: testId }}
642
- tableData={MOCK_DATA_WITH_ID}
643
- virtualizedRows
644
- />
645
- )
646
-
647
- const kit = screen.getByTestId(testId)
648
-
649
- const virtualizedHeader = kit.querySelector('.virtualized-header-row-header')
650
- expect(virtualizedHeader).toBeInTheDocument()
651
-
652
- const virtualizedRows = kit.querySelectorAll('.virtualized-table-row')
653
- expect(virtualizedRows.length).toBeLessThan(MOCK_DATA_WITH_ID.length)
654
- })
655
-
656
- test("rowStyling prop works as expected", () => {
657
- const rowStyling = [
658
- {
659
- rowId: "1",
660
- backgroundColor: colors.white,
661
- fontColor: colors.black
662
- },
663
- ];
664
-
665
- render(
666
- <AdvancedTable
667
- columnDefinitions={columnDefinitions}
668
- data={{ testid: testId }}
669
- rowStyling={rowStyling}
670
- tableData={MOCK_DATA_WITH_ID}
671
- />
672
- )
673
-
674
- const kit = screen.getByTestId(testId)
675
- const tableBody = kit.querySelector('tbody')
676
- const row1 = tableBody.querySelector('tr:nth-child(1)')
677
- expect(row1).toHaveStyle({backgroundColor: colors.white, color: colors.black})
678
- })
575
+ })
@@ -51,7 +51,7 @@
51
51
  ]
52
52
  %>
53
53
 
54
- <%= pb_rails("advanced_table", props: { table_data: @table_data, column_definitions: column_definitions, id: "beta_sort" }) do %>
54
+ <%= pb_rails("advanced_table", props: { table_data: @table_data, column_definitions: column_definitions }) do %>
55
55
  <%= pb_rails("advanced_table/table_header", props: { column_definitions: column_definitions }) %>
56
56
  <%= pb_rails("advanced_table/table_body", props: { id: "beta_sort", table_data: @table_data, column_definitions: column_definitions, enable_toggle_expansion: "all" }) %>
57
57
  <% end %>
@@ -34,7 +34,7 @@
34
34
  subrow_headers = ["Quarter", "Month", "Day"]
35
35
  %>
36
36
 
37
- <%= pb_rails("advanced_table", props: { table_data: @table_data, column_definitions: column_definitions, id: "test_table" }) do %>
37
+ <%= pb_rails("advanced_table", props: { table_data: @table_data, column_definitions: column_definitions }) do %>
38
38
  <%= pb_rails("advanced_table/table_header", props: { column_definitions: column_definitions }) %>
39
39
  <%= pb_rails("advanced_table/table_body", props: { id: "test_table", table_data: @table_data, column_definitions: column_definitions, subrow_headers: subrow_headers, enable_toggle_expansion: "all" }) %>
40
40
  <% end %>
@@ -55,4 +55,4 @@
55
55
  },
56
56
  ] %>
57
57
 
58
- <%= pb_rails("advanced_table", props: { id: "beta_table_with_color_headers", table_data: @table_data, column_definitions: column_definitions, column_group_border_color: "text_lt_default", table_props: { vertical_border: true } }) %>
58
+ <%= pb_rails("advanced_table", props: { id: "beta_table_with_muilti_headers", table_data: @table_data, column_definitions: column_definitions, column_group_border_color: "text_lt_default", table_props: { vertical_border: true } }) %>
@@ -30,4 +30,4 @@
30
30
  }
31
31
  ] %>
32
32
 
33
- <%= pb_rails("advanced_table", props: { id: "loading_table", table_data: @table_data, column_definitions: column_definitions, loading: true }) %>
33
+ <%= pb_rails("advanced_table", props: { id: "beta_table", table_data: @table_data, column_definitions: column_definitions, loading: true }) %>
@@ -35,7 +35,7 @@ const AdvancedTableRowPinning = (props) => {
35
35
  },
36
36
  ]
37
37
 
38
- const [pinnedRows, setPinnedRows] = useState({top: ["8"]})
38
+ const [pinnedRows, setPinnedRows] = useState({top: ["8", "9", "10", "11", "12", "13", "14"]})
39
39
 
40
40
  return (
41
41
  <div>
@@ -1,7 +1,5 @@
1
- Use the `pinnedRows` prop to pin specific rows to the top of an Advanced Table. Pinned rows will remain at the top when scrolling through table data and will not change position if sorting is used.
1
+ Use the `pinnedRows` prop to pin specific rows to the top of an Advanced Table. Pinned rows will remain at the top when scrolling through table data and reorganizing via sorting.
2
2
 
3
- **NOTE:**
3
+ **NOTE:** This prop is in Beta. Current Requirements for V1:
4
4
  - Sticky header required: Pinned rows must be used with `sticky: true` via `tableProps` (works with both responsive and non-responsive tables)
5
- - Row ids required: Each object within the `tableData` Array must contain a unique id in order to attach an id to all Rows for this to function.
6
- - `pinnedRows` takes an array of row ids to the `top` property as shown in the code snippet below.
7
- - For expandable rows, use the parent id in `pinnedRows`, all its children will automatically be pinned with it. If id for a child is passed in without parent being pinned, nothing will be pinned.
5
+ - Row ids required: Pass an array of row ids to the `top` property. For expandable rows, both parent and all its child row ids must be included individually
@@ -47,14 +47,14 @@ const CustomActions = () => {
47
47
  <CircleIconButton
48
48
  icon="file-csv"
49
49
  onClick={() =>
50
- alert(rowIds.length === 0 ? "No Selection Made" : 'Row ids ' + rowIds.join(", ") + 'will be exported!')
50
+ alert(rowIds.length === 0 ? "No Selection Made" : `Row ids ${rowIds.join(", ")} will be exported!`)
51
51
  }
52
52
  variant="link"
53
53
  />
54
54
  <CircleIconButton
55
55
  icon="trash-alt"
56
56
  onClick={() =>
57
- alert(rowIds.length === 0 ? "No Selection Made" : 'Row ids ' + rowIds.join(", ") + 'will be deleted!')
57
+ alert(rowIds.length === 0 ? "No Selection Made" : `Row ids ${rowIds.join(", ")} will be deleted!`)
58
58
  }
59
59
  variant="link"
60
60
  />
@@ -88,11 +88,10 @@ actions = [
88
88
  if (!selectedRowIds || selectedRowIds.length === 0) {
89
89
  alert('No Selection Made');
90
90
  } else {
91
- const selectedRowsString = selectedRowIds.join(', ');
92
91
  if (actionType === 'export') {
93
- alert('Row ids ' + selectedRowsString + ' will be exported!');
92
+ alert(`Row ids ${selectedRowIds.join(', ')} will be exported!`);
94
93
  } else if (actionType === 'delete') {
95
- alert('Row ids ' + selectedRowsString + ' will be deleted!');
94
+ alert(`Row ids ${selectedRowIds.join(', ')} will be deleted!`);
96
95
  }
97
96
  }
98
97
  };
@@ -30,4 +30,4 @@
30
30
  }
31
31
  ] %>
32
32
 
33
- <%= pb_rails("advanced_table", props: { id: "table_props_sticky_table", table_data: @table_data, column_definitions: column_definitions, max_height: "xs", table_props: { sticky: true }}) %>
33
+ <%= pb_rails("advanced_table", props: { id: "table_props_table", table_data: @table_data, column_definitions: column_definitions, max_height: "xs", table_props: { sticky: true }}) %>
@@ -19,8 +19,6 @@ examples:
19
19
  - advanced_table_selectable_rows_actions_rails: Selectable Rows (With Actions)
20
20
  - advanced_table_selectable_rows_header_rails: Selectable Rows (No Actions Bar)
21
21
  - advanced_table_scrollbar_none: Advanced Table Scrollbar None
22
- # - advanced_table_column_styling_rails: Column Styling
23
- # - advanced_table_column_styling_column_headers_rails: Column Styling with Multiple Headers
24
22
 
25
23
  react:
26
24
  - advanced_table_default: Default (Required Props)
@@ -59,7 +57,3 @@ examples:
59
57
  - advanced_table_column_visibility_multi: Column Visibility Control with Multi-Header Columns
60
58
  - advanced_table_pinned_rows: Pinned Rows
61
59
  - advanced_table_scrollbar_none: Advanced Table Scrollbar None
62
- - advanced_table_row_styling: Row Styling
63
- - advanced_table_column_styling: Column Styling
64
- - advanced_table_column_styling_column_headers: Column Styling with Multiple Headers
65
- - advanced_table_infinite_scroll: Infinite Scroll
@@ -34,7 +34,3 @@ export { default as AdvancedTableColumnVisibilityMulti } from './_advanced_table
34
34
  export { default as AdvancedTableColumnVisibilityWithState } from './_advanced_table_column_visibility_with_state.jsx'
35
35
  export { default as AdvancedTablePinnedRows } from './_advanced_table_pinned_rows.jsx'
36
36
  export { default as AdvancedTableScrollbarNone} from './_advanced_table_scrollbar_none.jsx'
37
- export { default as AdvancedTableRowStyling } from './_advanced_table_row_styling.jsx'
38
- export { default as AdvancedTableColumnStyling } from './_advanced_table_column_styling.jsx'
39
- export { default as AdvancedTableColumnStylingColumnHeaders } from './_advanced_table_column_styling_column_headers.jsx'
40
- export { default as AdvancedTableInfiniteScroll} from './_advanced_table_infinite_scroll.jsx'