playbook_ui 14.16.0.pre.alpha.PLAY1929bracketlayout6957 → 14.16.0.pre.alpha.PLAY1938completetooltipfloatinguitransition6830

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 (74) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +2 -34
  3. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +84 -86
  4. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.html.erb +2 -2
  5. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.rb +0 -10
  6. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pagination.jsx +1 -0
  7. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +0 -2
  8. data/app/pb_kits/playbook/pb_advanced_table/index.js +1 -1
  9. data/app/pb_kits/playbook/pb_advanced_table/table_body.rb +2 -4
  10. data/app/pb_kits/playbook/pb_advanced_table/table_header.html.erb +9 -19
  11. data/app/pb_kits/playbook/pb_advanced_table/table_header.rb +1 -38
  12. data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +37 -49
  13. data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +0 -39
  14. data/app/pb_kits/playbook/pb_button/_button.scss +5 -5
  15. data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +34 -34
  16. data/app/pb_kits/playbook/pb_date_picker/date_picker.html.erb +2 -2
  17. data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.ts +0 -16
  18. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_inline.html.erb +11 -0
  19. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_inline.jsx +7 -0
  20. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_inline_styles.scss +24 -28
  21. data/app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.tsx +4 -3
  22. data/app/pb_kits/playbook/pb_filter/Filter/SortMenu.tsx +3 -2
  23. data/app/pb_kits/playbook/pb_form/pb_form_validation.js +1 -1
  24. data/app/pb_kits/playbook/pb_layout/_layout.scss +0 -58
  25. data/app/pb_kits/playbook/pb_layout/_layout.tsx +7 -20
  26. data/app/pb_kits/playbook/pb_layout/docs/example.yml +0 -1
  27. data/app/pb_kits/playbook/pb_layout/docs/index.js +0 -1
  28. data/app/pb_kits/playbook/pb_layout/layout.test.js +0 -4
  29. data/app/pb_kits/playbook/pb_lightbox/hooks/useVisibility.js +1 -1
  30. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +1 -2
  31. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.tsx +11 -29
  32. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_default.html.erb +1 -1
  33. data/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor.html.erb +4 -4
  34. data/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor.rb +0 -2
  35. data/app/pb_kits/playbook/pb_table/_table.tsx +0 -4
  36. data/app/pb_kits/playbook/pb_table/docs/example.yml +0 -2
  37. data/app/pb_kits/playbook/pb_table/docs/index.js +0 -2
  38. data/app/pb_kits/playbook/pb_table/styles/_headers.scss +0 -76
  39. data/app/pb_kits/playbook/pb_table/subcomponents/_table_head.tsx +1 -11
  40. data/app/pb_kits/playbook/pb_table/subcomponents/_table_header.tsx +1 -11
  41. data/app/pb_kits/playbook/pb_table/subcomponents/_table_row.tsx +0 -5
  42. data/app/pb_kits/playbook/pb_table/table.test.js +0 -17
  43. data/app/pb_kits/playbook/pb_tooltip/index.js +1 -1
  44. data/app/pb_kits/playbook/pb_typeahead/index.ts +2 -2
  45. data/app/pb_kits/playbook/utilities/globalProps.ts +1 -1
  46. data/app/pb_kits/playbook/utilities/object.test.js +1 -149
  47. data/app/pb_kits/playbook/utilities/object.ts +42 -124
  48. data/dist/chunks/_typeahead-BEyzuDQy.js +22 -0
  49. data/dist/chunks/_weekday_stacked-BWYgED9z.js +45 -0
  50. data/dist/chunks/{lib-BGzBzFZX.js → lib-BgzBJfYr.js} +3 -3
  51. data/dist/chunks/{pb_form_validation-BvNy9Bd6.js → pb_form_validation-CJD-PyIw.js} +1 -1
  52. data/dist/chunks/vendor.js +1 -1
  53. data/dist/playbook-doc.js +1 -1
  54. data/dist/playbook-rails-react-bindings.js +1 -1
  55. data/dist/playbook-rails.js +1 -1
  56. data/dist/playbook.css +1 -1
  57. data/lib/playbook/version.rb +1 -1
  58. metadata +8 -20
  59. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows.html.erb +0 -39
  60. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_no_subrows.html.erb +0 -33
  61. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_no_subrows_rails.md +0 -1
  62. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_rails.md +0 -6
  63. data/app/pb_kits/playbook/pb_layout/docs/_layout_bracket.jsx +0 -190
  64. data/app/pb_kits/playbook/pb_layout/docs/_layout_bracket.md +0 -5
  65. data/app/pb_kits/playbook/pb_layout/subcomponents/_game.tsx +0 -90
  66. data/app/pb_kits/playbook/pb_layout/subcomponents/_round.tsx +0 -57
  67. data/app/pb_kits/playbook/pb_table/docs/_table_with_header_style_borderless.jsx +0 -50
  68. data/app/pb_kits/playbook/pb_table/docs/_table_with_header_style_borderless_react.md +0 -1
  69. data/app/pb_kits/playbook/pb_table/docs/_table_with_header_style_floating.jsx +0 -59
  70. data/app/pb_kits/playbook/pb_table/docs/_table_with_header_style_floating_react.md +0 -1
  71. data/dist/chunks/_typeahead-Djo6qCne.js +0 -22
  72. data/dist/chunks/_weekday_stacked-C9nJ2j2C.js +0 -45
  73. /data/app/pb_kits/playbook/pb_advanced_table/docs/{_advanced_table_selectable_rows_react.md → _advanced_table_selectable_rows.md} +0 -0
  74. /data/app/pb_kits/playbook/pb_advanced_table/docs/{_advanced_table_selectable_rows_no_subrows_react.md → _advanced_table_selectable_rows_no_subrows.md} +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7b2af193a12246de5703b901c49abeac27c44fa9d2c8f76f5bafc6fccc4f8858
4
- data.tar.gz: b8913aebce80550bed950ff30380139f02e336c19fc83cbab919ee146e06df42
3
+ metadata.gz: 794a2d3bca7088071c4fbd83fff2a367725c1919abc36cc77cd4b46aebd7d752
4
+ data.tar.gz: 78a0d55d2565ea0f8181c350c797dbd8cf68ab5be5de79fb8956b48183ce7fca
5
5
  SHA512:
6
- metadata.gz: 99dcf0a34d39614db573f5166bf05c64bc7036e9681aa84f81dd634cbb330fcbe6b78b1d68765a0d0bfca0f62af8b1607f8655e2e41da5ab4f798959ec0fec4b
7
- data.tar.gz: 298f4b8f42a9544aba7aafc308f0abb183a1e6297ee1ad6510ac0035dae60b44b0e6b05aaac676a15e7bd2313f5365b7566550e27f84d2418b2e3438893001eb
6
+ metadata.gz: c8c882af3d81f788032d5b534917b5494d149610824acc75cca8337fb13826f526ceec4c851784985b5e0e2a9af5f895980a9c4d8b904435353afe2ff851683a
7
+ data.tar.gz: 13ccd9cf6c192109eee944d6bd83fe8b8ba03d40d48e3481f04e96d63c49a7d455c9a812478920c575fdf5a89db751c29823ae99fa52bfe696be2a966a080f24
@@ -101,15 +101,6 @@
101
101
  border-top-left-radius: 0px !important;
102
102
  border-top-right-radius: 0px !important;
103
103
  }
104
- // Right align header content of first data column in selectable row no subrow setup
105
- &.selectable-rows-enabled {
106
- tr {
107
- th:nth-child(2),
108
- .pb_flex_kit_orientation_row_justify_content_start_align_items_center_spacing_none.gap_none {
109
- justify-content: flex-end;
110
- }
111
- }
112
- }
113
104
 
114
105
  // Set fixed width for header cells to match table body
115
106
  th {
@@ -121,8 +112,7 @@
121
112
  }
122
113
 
123
114
  // Set fixed width for checkbox column
124
- &.table-header-cells-custom,
125
- &.checkbox-cell.checkbox-cell-header {
115
+ &.table-header-cells-custom {
126
116
  width: 40px !important;
127
117
  min-width: 40px !important;
128
118
  box-sizing: border-box !important;
@@ -178,15 +168,6 @@
178
168
  text-align: right;
179
169
  }
180
170
  }
181
- // Right align row content of first data column in selectable row no subrow setup
182
- &.selectable-rows-enabled {
183
- tr {
184
- td:nth-child(2),
185
- .pb_flex_kit_orientation_row_justify_content_start_align_items_center_spacing_none {
186
- justify-content: end;
187
- }
188
- }
189
- }
190
171
  }
191
172
 
192
173
  .table-header-cells-active:first-child {
@@ -281,8 +262,7 @@
281
262
  .table-header-cells:first-child,
282
263
  .table-header-cells-custom:first-child,
283
264
  td:first-child,
284
- .pb_table_td:first-child,
285
- .checkbox-cell.checkbox-cell-header:first-child {
265
+ .pb_table_td:first-child {
286
266
  box-shadow: 1px 0px 0px 0px $border_light !important;
287
267
  }
288
268
 
@@ -338,7 +318,6 @@
338
318
  .table-header-cells:first-child,
339
319
  td:first-child,
340
320
  .pb_table_td:first-child,
341
- .checkbox-cell.checkbox-cell-header:first-child,
342
321
  [class*="pinned-left"] {
343
322
  background-color: $white;
344
323
  box-shadow: $shadow_deep !important;
@@ -456,16 +435,6 @@
456
435
  ) !important;
457
436
  }
458
437
  }
459
-
460
- // Vertical separator
461
- .table-header-cells:first-child,
462
- .table-header-cells-custom:first-child,
463
- td:first-child,
464
- .pb_table_td:first-child,
465
- .checkbox-cell.checkbox-cell-header:first-child {
466
- box-shadow: 1px 0px 0px 0px $border_dark !important;
467
- }
468
-
469
438
  // Dark Mode Responsive Styles
470
439
  @media only screen and (max-width: $screen-xl-min) {
471
440
  &[class*="advanced-table-responsive-scroll"] {
@@ -490,7 +459,6 @@
490
459
  .table-header-cells:first-child,
491
460
  td:first-child,
492
461
  .pb_table_td:first-child,
493
- .checkbox-cell.checkbox-cell-header:first-child,
494
462
  [class*="pinned-left"] {
495
463
  background: $bg_dark_card;
496
464
  border-right: $border_dark;
@@ -167,95 +167,93 @@ const AdvancedTable = (props: AdvancedTableProps) => {
167
167
  const isActionBarVisible = selectableRows && showActionsBar && selectedRowsLength > 0;
168
168
 
169
169
  return (
170
- <>
171
- {/* Top Pagination */}
172
- {pagination && (
173
- <TablePagination
174
- onChange={onPageChange}
175
- position="top"
176
- range={paginationProps?.range}
177
- table={table}
178
- />
179
- )}
180
-
181
- <div
182
- {...ariaProps}
183
- {...dataProps}
184
- {...htmlProps}
185
- className={classes}
186
- id={id}
187
- onScroll={virtualizedRows ? e => fetchMoreOnBottomReached(
188
- e.currentTarget,
189
- fetchNextPage,
190
- isFetching,
191
- totalFetched,
192
- fullData.length
193
- ) : undefined}
194
- ref={tableWrapperRef}
195
- style={tableWrapperStyle as React.CSSProperties}
170
+ <div
171
+ {...ariaProps}
172
+ {...dataProps}
173
+ {...htmlProps}
174
+ className={classes}
175
+ id={id}
176
+ onScroll={virtualizedRows ? e => fetchMoreOnBottomReached(
177
+ e.currentTarget,
178
+ fetchNextPage,
179
+ isFetching,
180
+ totalFetched,
181
+ fullData.length
182
+ ) : undefined}
183
+ ref={tableWrapperRef}
184
+ style={tableWrapperStyle as React.CSSProperties}
185
+ >
186
+ <AdvancedTableProvider
187
+ columnDefinitions={columnDefinitions}
188
+ enableToggleExpansion={enableToggleExpansion}
189
+ enableVirtualization={virtualizedRows}
190
+ expanded={expanded}
191
+ expandedControl={expandedControl}
192
+ handleExpandOrCollapse={handleExpandOrCollapse}
193
+ hasAnySubRows={hasAnySubRows}
194
+ inlineRowLoading={inlineRowLoading}
195
+ isActionBarVisible={isActionBarVisible}
196
+ loading={loading}
197
+ responsive={responsive}
198
+ selectableRows={selectableRows}
199
+ setExpanded={setExpanded}
200
+ showActionsBar={showActionsBar}
201
+ sortControl={sortControl}
202
+ subRowHeaders={tableOptions?.subRowHeaders}
203
+ table={table}
204
+ tableContainerRef={tableWrapperRef}
205
+ toggleExpansionIcon={toggleExpansionIcon}
206
+ virtualizedRows={virtualizedRows}
196
207
  >
197
- <AdvancedTableProvider
198
- columnDefinitions={columnDefinitions}
199
- enableToggleExpansion={enableToggleExpansion}
200
- enableVirtualization={virtualizedRows}
201
- expanded={expanded}
202
- expandedControl={expandedControl}
203
- handleExpandOrCollapse={handleExpandOrCollapse}
204
- hasAnySubRows={hasAnySubRows}
205
- inlineRowLoading={inlineRowLoading}
206
- isActionBarVisible={isActionBarVisible}
207
- loading={loading}
208
- responsive={responsive}
209
- selectableRows={selectableRows}
210
- setExpanded={setExpanded}
211
- showActionsBar={showActionsBar}
212
- sortControl={sortControl}
213
- subRowHeaders={tableOptions?.subRowHeaders}
214
- table={table}
215
- tableContainerRef={tableWrapperRef}
216
- toggleExpansionIcon={toggleExpansionIcon}
217
- virtualizedRows={virtualizedRows}
218
- >
219
- <React.Fragment>
220
- {/* Selection Action Bar */}
221
- <TableActionBar
222
- actions={actions}
223
- isVisible={isActionBarVisible}
224
- selectedCount={selectedRowsLength}
208
+ <React.Fragment>
209
+ {/* Top Pagination */}
210
+ {pagination && (
211
+ <TablePagination
212
+ onChange={onPageChange}
213
+ position="top"
214
+ range={paginationProps?.range}
215
+ table={table}
225
216
  />
217
+ )}
218
+
219
+ {/* Selection Action Bar */}
220
+ <TableActionBar
221
+ actions={actions}
222
+ isVisible={isActionBarVisible}
223
+ selectedCount={selectedRowsLength}
224
+ />
226
225
 
227
- {/* Main Table */}
228
- <Table
229
- className={`${loading ? "content-loading" : ""}`}
230
- dark={dark}
231
- dataTable
232
- numberSpacing="tabular"
233
- responsive="none"
234
- {...tableProps}
235
- >
236
- {children ? (
237
- children
238
- ) : (
239
- <>
240
- <TableHeader />
241
- <TableBody />
242
- </>
243
- )}
244
- </Table>
245
- </React.Fragment>
246
- </AdvancedTableProvider>
247
-
248
- </div>
249
- {/* Bottom Pagination */}
250
- {pagination && (
251
- <TablePagination
252
- onChange={onPageChange}
253
- position="bottom"
254
- range={paginationProps?.range}
255
- table={table}
256
- />
257
- )}
258
- </>
226
+ {/* Main Table */}
227
+ <Table
228
+ className={`${loading ? "content-loading" : ""}`}
229
+ dark={dark}
230
+ dataTable
231
+ numberSpacing="tabular"
232
+ responsive="none"
233
+ {...tableProps}
234
+ >
235
+ {children ? (
236
+ children
237
+ ) : (
238
+ <>
239
+ <TableHeader />
240
+ <TableBody />
241
+ </>
242
+ )}
243
+ </Table>
244
+
245
+ {/* Bottom Pagination */}
246
+ {pagination && (
247
+ <TablePagination
248
+ onChange={onPageChange}
249
+ position="bottom"
250
+ range={paginationProps?.range}
251
+ table={table}
252
+ />
253
+ )}
254
+ </React.Fragment>
255
+ </AdvancedTableProvider>
256
+ </div>
259
257
  );
260
258
  };
261
259
 
@@ -3,8 +3,8 @@
3
3
  <% if content.present? %>
4
4
  <% content.presence %>
5
5
  <% else %>
6
- <%= pb_rails("advanced_table/table_header", props: { column_definitions: object.column_definitions, enable_toggle_expansion: object.enable_toggle_expansion, responsive: object.responsive, loading: object.loading, selectable_rows: object.selectable_rows }) %>
7
- <%= pb_rails("advanced_table/table_body", props: { id: object.id, table_data: object.table_data, column_definitions: object.column_definitions, responsive: object.responsive, loading: object.loading, selectable_rows: object.selectable_rows, enable_toggle_expansion: object.enable_toggle_expansion }) %>
6
+ <%= pb_rails("advanced_table/table_header", props: { column_definitions: object.column_definitions, enable_toggle_expansion: object.enable_toggle_expansion, responsive: object.responsive, loading: object.loading }) %>
7
+ <%= pb_rails("advanced_table/table_body", props: { id: object.id, table_data: object.table_data, column_definitions: object.column_definitions, responsive: object.responsive, loading: object.loading }) %>
8
8
  <% end %>
9
9
  <% end %>
10
10
  <% end %>
@@ -20,8 +20,6 @@ module Playbook
20
20
  prop :max_height, type: Playbook::Props::Enum,
21
21
  values: %w[auto xs sm md lg xl xxl xxxl],
22
22
  default: "auto"
23
- prop :selectable_rows, type: Playbook::Props::Boolean,
24
- default: false
25
23
 
26
24
  def classname
27
25
  generate_classname("pb_advanced_table", responsive_classname, max_height_classname, separator: " ")
@@ -34,14 +32,6 @@ module Playbook
34
32
  def max_height_classname
35
33
  max_height.present? ? "advanced-table-max-height-#{max_height}" : ""
36
34
  end
37
-
38
- def selected_rows
39
- @selected_rows ||= []
40
- end
41
-
42
- def selected_rows_length
43
- selected_rows.length
44
- end
45
35
  end
46
36
  end
47
37
  end
@@ -40,6 +40,7 @@ const AdvancedTablePagination = (props) => {
40
40
  <AdvancedTable
41
41
  columnDefinitions={columnDefinitions}
42
42
  pagination
43
+ responsive="none"
43
44
  tableData={PAGINATION_MOCK_DATA}
44
45
  {...props}
45
46
  />
@@ -11,8 +11,6 @@ examples:
11
11
  - advanced_table_custom_cell_rails: Custom Components for Cells
12
12
  - advanced_table_column_headers: Multi-Header Columns
13
13
  - advanced_table_column_headers_multiple: Multi-Header Columns (Multiple Levels)
14
- # - advanced_table_selectable_rows: Selectable Rows
15
- # - advanced_table_selectable_rows_no_subrows: Selectable Rows (No Subrows)
16
14
 
17
15
 
18
16
  react:
@@ -231,4 +231,4 @@ window.expandAllRows = (element) => {
231
231
 
232
232
  window.expandAllSubRows = (element, rowDepth) => {
233
233
  PbAdvancedTable.handleToggleAllSubRows(element, rowDepth);
234
- };
234
+ };
@@ -21,8 +21,6 @@ module Playbook
21
21
  prop :responsive, type: Playbook::Props::Enum,
22
22
  values: %w[none scroll],
23
23
  default: "scroll"
24
- prop :selectable_rows, type: Playbook::Props::Boolean,
25
- default: false
26
24
 
27
25
  def flatten_columns(columns)
28
26
  columns.flat_map do |col|
@@ -58,7 +56,7 @@ module Playbook
58
56
  current_data_attributes = current_depth.zero? ? { row_depth: 0 } : table_data_attributes
59
57
 
60
58
  # Additional class and data attributes needed for toggle logic
61
- output << pb_rails("advanced_table/table_row", props: { id: id, row: row, column_definitions: leaf_columns, depth: current_depth, collapsible_trail: collapsible_trail, classname: additional_classes, table_data_attributes: current_data_attributes, responsive: responsive, loading: loading, selectable_rows: selectable_rows, row_id: row[:id], enable_toggle_expansion: enable_toggle_expansion })
59
+ output << pb_rails("advanced_table/table_row", props: { id: id, row: row, column_definitions: leaf_columns, depth: current_depth, collapsible_trail: collapsible_trail, classname: additional_classes, table_data_attributes: current_data_attributes, responsive: responsive, loading: loading })
62
60
 
63
61
  if row[:children].present?
64
62
  row[:children].each do |child_row|
@@ -83,7 +81,7 @@ module Playbook
83
81
  def classname
84
82
  additional_classes = []
85
83
  additional_classes << "advanced-table-responsive-#{responsive} pinned-left" if responsive == "scroll"
86
- additional_classes << "selectable-rows-enabled" if selectable_rows && enable_toggle_expansion == "none"
84
+
87
85
  generate_classname("pb_advanced_table_body", *additional_classes, separator: " ")
88
86
  end
89
87
 
@@ -1,29 +1,19 @@
1
1
  <%= pb_content_tag(:thead) do %>
2
2
  <% object.header_rows.each_with_index do |header_row, row_index| %>
3
3
  <%= pb_rails("table/table_row") do %>
4
- <% if row_index == 0 && object.selectable_rows && object.enable_toggle_expansion == "none" %>
5
- <%= object.render_select_all_header %>
6
- <% end %>
7
4
  <% header_row.each_with_index do |cell, cell_index| %>
8
5
  <% header_id = cell[:accessor].present? ? cell[:accessor] : "header_#{row_index}_#{cell_index}" %>
9
6
  <%= pb_rails("table/table_header", props: { id: header_id, colspan: cell[:colspan], classname: [object.th_classname(is_first_column: cell_index.zero?), ('last-header-cell' if cell[:is_last_in_group] && cell_index != 0)].compact.join(' '), sort_menu: cell[:accessor] ? cell[:sort_menu] : nil }) do %>
10
7
  <%= pb_rails("flex", props: { align: "center", justify: cell_index.zero? ? "start" : row_index === header_rows.size - 1 ? "end" : "center", text_align: "end" }) do %>
11
- <% if cell_index.zero? && row_index === header_rows.size - 1 %>
12
- <% if object.selectable_rows && object.enable_toggle_expansion != "none" %>
13
- <%= pb_rails("flex/flex_item", props: { padding_right: "xs" }) do %>
14
- <%= object.render_select_all_checkbox %>
15
- <% end %>
16
- <% end %>
17
- <% if object.enable_toggle_expansion == "header" || object.enable_toggle_expansion == "all" %>
18
- <% if loading %>
19
- <div class="<%= object.loading ? 'loading-toggle-icon' : '' %>"></div>
20
- <% else %>
21
- <button
22
- class="gray-icon toggle-all-icon"
23
- onclick="expandAllRows(this); event.preventDefault();">
24
- <%= pb_rails("icon", props: { icon: "arrows-from-line", cursor: "pointer", fixed_width: true, padding_right: "xs" }) %>
25
- </button>
26
- <% end %>
8
+ <% if cell_index.zero? && (object.enable_toggle_expansion == "header" || object.enable_toggle_expansion == "all") && row_index === header_rows.size - 1 %>
9
+ <% if loading %>
10
+ <div class="<%= object.loading ? 'loading-toggle-icon' : '' %>"></div>
11
+ <% else %>
12
+ <button
13
+ class="gray-icon toggle-all-icon"
14
+ onclick="expandAllRows(this); event.preventDefault();">
15
+ <%= pb_rails("icon", props: { icon: "arrows-from-line", cursor: "pointer", fixed_width: true, padding_right: "xs" }) %>
16
+ </button>
27
17
  <% end %>
28
18
  <% end %>
29
19
  <%= cell[:label] %>
@@ -13,20 +13,17 @@ module Playbook
13
13
  prop :responsive, type: Playbook::Props::Enum,
14
14
  values: %w[none scroll],
15
15
  default: "scroll"
16
- prop :selectable_rows, type: Playbook::Props::Boolean,
17
- default: false
18
16
 
19
17
  def classname
20
18
  additional_classes = []
21
19
  additional_classes << "advanced-table-responsive-#{responsive} pinned-left" if responsive == "scroll"
22
- additional_classes << "selectable-rows-enabled" if selectable_rows && enable_toggle_expansion == "none"
23
20
 
24
21
  generate_classname("pb_advanced_table_header", "pb_table_thead", *additional_classes, separator: " ")
25
22
  end
26
23
 
27
24
  def th_classname(is_first_column: false)
28
25
  additional_classes = []
29
- additional_classes << "pinned-left" if is_first_column && responsive == "scroll" && !selectable_rows
26
+ additional_classes << "pinned-left" if is_first_column && responsive == "scroll"
30
27
 
31
28
  generate_classname("table-header-cells", *additional_classes, separator: " ")
32
29
  end
@@ -41,40 +38,6 @@ module Playbook
41
38
  rows
42
39
  end
43
40
 
44
- # Selectable Rows No Subrows - checkboxes in their own first cell
45
- def render_select_all_header
46
- if selectable_rows
47
- additional_classes = []
48
- additional_classes << "table-header-cells-custom"
49
- additional_classes << "checkbox-cell-header"
50
- additional_classes << "pinned-left" if responsive == "scroll"
51
- pb_rails("table/table_header", props: {
52
- classname: additional_classes.join(" "),
53
- }) do
54
- pb_rails("checkbox", props: {
55
- id: "select-all-rows",
56
- name: "select-all-rows",
57
- data: {
58
- action: "click->pb-advanced-table#toggleAllRowSelection",
59
- },
60
- })
61
- end
62
- end
63
- end
64
-
65
- # Selectable Rows w/ Subrows - checkboxes part of toggleable first cell
66
- def render_select_all_checkbox
67
- if selectable_rows
68
- pb_rails("checkbox", props: {
69
- id: "select-all-rows",
70
- name: "select-all-rows",
71
- data: {
72
- action: "click->pb-advanced-table#toggleAllRowSelection",
73
- },
74
- })
75
- end
76
- end
77
-
78
41
  private
79
42
 
80
43
  def compute_max_depth(columns)
@@ -1,60 +1,48 @@
1
1
  <%= pb_content_tag(:tr) do %>
2
- <% has_separate_checkbox = object.selectable_rows && object.enable_toggle_expansion == "none" %>
3
- <% if has_separate_checkbox %>
4
- <%= object.render_checkbox_cell %>
5
- <% end %>
6
- <% object.column_definitions.each_with_index do |column, index| %>
7
- <% next unless column[:accessor].present? %>
8
- <%= pb_rails("table/table_cell", props: { classname:object.td_classname(column, index)}) do %>
9
- <%= pb_rails("flex", props:{ align: "center", justify: index.zero? ? "start" : "end", classname: object.loading ? "loading-cell" : "" }) do %>
10
- <% if collapsible_trail && index.zero? %>
11
- <% (1..depth).each do |i| %>
12
- <% additional_offset = i > 1 ? (i - 1) * 0.25 : 0 %>
13
- <% left_offset = i * 1.0 + additional_offset %>
14
- <div class="collapsible-trail" style="left: <%= left_offset %>em"></div>
2
+ <% object.column_definitions.each_with_index do |column, index| %>
3
+ <% next unless column[:accessor].present? %>
4
+ <%= pb_rails("table/table_cell", props: { classname:object.td_classname(column, index)}) do %>
5
+ <%= pb_rails("flex", props:{ align: "center", justify: index.zero? ? "start" : "end", classname: object.loading ? "loading-cell" : "" }) do %>
6
+ <% if collapsible_trail && index.zero? %>
7
+ <% (1..depth).each do |i| %>
8
+ <% additional_offset = i > 1 ? (i - 1) * 0.25 : 0 %>
9
+ <% left_offset = i * 1.0 + additional_offset %>
10
+ <div class="collapsible-trail" style="left: <%= left_offset %>em"></div>
11
+ <% end %>
15
12
  <% end %>
16
- <% end %>
17
13
 
18
- <div style="padding-left: <%= depth * 1.25 %>em">
19
- <%= pb_rails("flex", props:{align: "center", column_gap: "xs"}) do %>
20
- <% if index.zero? %>
21
- <% has_integrated_checkbox = object.selectable_rows && object.enable_toggle_expansion != "none" %>
22
- <% if has_integrated_checkbox %>
23
- <%= pb_rails("flex/flex_item", props: { padding_right: "xs" }) do %>
24
- <%= object.render_row_checkbox %>
25
- <% end %>
14
+ <div style="padding-left: <%= depth * 1.25 %>em">
15
+ <%= pb_rails("flex", props:{align: "center", column_gap: "xs"}) do %>
16
+ <% if index.zero? && object.row[:children].present? %>
17
+ <button
18
+ id="<%= "#{object.id}_#{object.row.object_id}" %>"
19
+ class="gray-icon expand-toggle-icon"
20
+ data-advanced-table="true">
21
+ <%= pb_rails("icon", props: { id: "advanced-table_open_icon", icon: "circle-play", cursor: "pointer" }) %>
22
+ <%= pb_rails("icon", props: { id: "advanced-table_close_icon", display: "none", icon: "circle-play", cursor: "pointer", rotation: 90 }) %>
23
+ </button>
26
24
  <% end %>
27
- <% if object.row[:children].present? %>
28
- <button
29
- id="<%= "#{object.id}_#{object.row.object_id}" %>"
30
- class="gray-icon expand-toggle-icon"
31
- data-advanced-table="true">
32
- <%= pb_rails("icon", props: { id: "advanced-table_open_icon", icon: "circle-play", cursor: "pointer" }) %>
33
- <%= pb_rails("icon", props: { id: "advanced-table_close_icon", display: "none", icon: "circle-play", cursor: "pointer", rotation: 90 }) %>
34
- </button>
35
- <% end %>
36
- <% end %>
37
- <%= pb_rails("flex/flex_item", props:{padding_left: index.zero? && (object.row[:children].present? || has_integrated_checkbox) ? "none" : "xs"}) do %>
38
- <% if column[:custom_renderer].present? %>
39
- <%= raw(column[:custom_renderer].call(object.row, custom_renderer_value(column, index))) %>
40
- <% elsif index.zero? %>
41
- <% if object.depth.zero? %>
42
- <%= object.row[column[:accessor].to_sym] %>
43
- <% else %>
44
- <% object.depth_accessors.each_with_index do |item, accessor_index| %>
45
- <% if object.depth - 1 == accessor_index %>
46
- <% key = item.to_sym %>
47
- <%= object.row[key] %>
25
+ <%= pb_rails("flex/flex_item", props:{padding_left: index.zero? && object.row[:children].present? ? "none" : "xs"}) do %>
26
+ <% if column[:custom_renderer].present? %>
27
+ <%= raw(column[:custom_renderer].call(object.row, custom_renderer_value(column, index))) %>
28
+ <% elsif index.zero? %>
29
+ <% if object.depth.zero? %>
30
+ <%= object.row[column[:accessor].to_sym] %>
31
+ <% else %>
32
+ <% object.depth_accessors.each_with_index do |item, accessor_index| %>
33
+ <% if object.depth - 1 == accessor_index %>
34
+ <% key = item.to_sym %>
35
+ <%= object.row[key] %>
36
+ <% end %>
48
37
  <% end %>
49
38
  <% end %>
39
+ <% else %>
40
+ <%= object.row[column[:accessor].to_sym] %>
50
41
  <% end %>
51
- <% else %>
52
- <%= object.row[column[:accessor].to_sym] %>
53
42
  <% end %>
54
43
  <% end %>
55
- <% end %>
56
- </div>
44
+ </div>
45
+ <% end %>
57
46
  <% end %>
58
47
  <% end %>
59
- <% end %>
60
- <% end %>
48
+ <% end %>
@@ -20,13 +20,6 @@ module Playbook
20
20
  default: "scroll"
21
21
  prop :is_pinned_left, type: Playbook::Props::Boolean,
22
22
  default: false
23
- prop :selectable_rows, type: Playbook::Props::Boolean,
24
- default: false
25
- prop :row_id, type: Playbook::Props::String,
26
- default: ""
27
- prop :enable_toggle_expansion, type: Playbook::Props::Enum,
28
- values: %w[all header none],
29
- default: "header"
30
23
 
31
24
  def data
32
25
  Hash(prop(:data)).merge(table_data_attributes)
@@ -49,38 +42,6 @@ module Playbook
49
42
  end.compact
50
43
  end
51
44
 
52
- # Selectable Rows No Subrows - checkboxes in their own first cell
53
- def render_checkbox_cell
54
- if selectable_rows
55
- pb_rails("table/table_cell", props: {
56
- classname: "checkbox-cell",
57
- }) do
58
- pb_rails("checkbox", props: {
59
- id: "select-row-#{row_id || row.object_id}",
60
- name: "select-row-#{row_id || row.object_id}",
61
- data: {
62
- row_id: row_id || row.object_id.to_s,
63
- action: "click->pb-advanced-table#toggleRowSelection",
64
- },
65
- })
66
- end
67
- end
68
- end
69
-
70
- # Selectable Rows w/ Subrows - checkboxes part of toggleable first cell
71
- def render_row_checkbox
72
- if selectable_rows
73
- pb_rails("checkbox", props: {
74
- id: "select-row-#{row_id || row.object_id}",
75
- name: "select-row-#{row_id || row.object_id}",
76
- data: {
77
- row_id: row_id || row.object_id.to_s,
78
- action: "click->pb-advanced-table#toggleRowSelection",
79
- },
80
- })
81
- end
82
- end
83
-
84
45
  private
85
46
 
86
47
  def custom_renderer_value(column, index)
@@ -63,6 +63,11 @@ $pb_button_sizes: (
63
63
  color: $text_lt_lighter;
64
64
  }
65
65
 
66
+ // Disabled =================
67
+ &[class*=_disabled] {
68
+ @include pb_button_disabled;
69
+ }
70
+
66
71
  // Block ====================
67
72
  &[class*=_block] {
68
73
  @include pb_button_block;
@@ -78,11 +83,6 @@ $pb_button_sizes: (
78
83
  @include pb_button_danger;
79
84
  }
80
85
 
81
- // Disabled =================
82
- &[class*=_disabled] {
83
- @include pb_button_disabled;
84
- }
85
-
86
86
  // Dark Variants =============
87
87
  &.dark {
88
88
  &[class*=_primary] {