playbook_ui 15.2.0.pre.alpha.play2318draggablelistnoborder11263 → 15.2.0.pre.alpha.play257911600

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 (145) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +5 -5
  3. data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableActions.ts +18 -3
  4. data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableState.ts +56 -14
  5. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +9 -3
  6. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.html.erb +2 -2
  7. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_background_control_rails.html.erb +39 -0
  8. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_background_control_rails.md +1 -0
  9. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta.md +3 -1
  10. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_sort.html.erb +3 -3
  11. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_subrow_headers.html.erb +3 -3
  12. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_collapsible_trail_rails.html.erb +2 -2
  13. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling.md +1 -1
  14. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_column_headers_rails.html.erb +2 -2
  15. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_rails.html.erb +2 -2
  16. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_rails.md +1 -1
  17. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_per_row_rails.html.erb +51 -0
  18. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_per_row_rails.md +1 -0
  19. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_rails.html.erb +40 -0
  20. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_rails.md +1 -0
  21. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling_rails.md +1 -1
  22. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling_react.md +1 -1
  23. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_rails.html.erb +2 -2
  24. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +3 -0
  25. data/app/pb_kits/playbook/pb_advanced_table/index.js +5 -1
  26. data/app/pb_kits/playbook/pb_advanced_table/table_body.rb +6 -6
  27. data/app/pb_kits/playbook/pb_advanced_table/table_header.rb +6 -6
  28. data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +3 -2
  29. data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +49 -5
  30. data/app/pb_kits/playbook/pb_button/_button.scss +6 -0
  31. data/app/pb_kits/playbook/pb_button/docs/_button_loading.html.erb +7 -3
  32. data/app/pb_kits/playbook/pb_button/docs/_button_loading.jsx +29 -0
  33. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range_pattern.jsx +1 -1
  34. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.scss +0 -1
  35. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.tsx +5 -3
  36. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_description.md +2 -0
  37. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.rb +4 -1
  38. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.test.js +10 -0
  39. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -1
  40. data/app/pb_kits/playbook/pb_pb_bar_graph/_pb_bar_graph.tsx +8 -6
  41. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_description.md +3 -0
  42. data/app/pb_kits/playbook/pb_pb_bar_graph/pb_bar_graph.rb +7 -10
  43. data/app/pb_kits/playbook/pb_pb_bar_graph/pbbargraph.test.jsx +73 -1
  44. data/app/pb_kits/playbook/pb_pb_circle_chart/_pb_circle_chart.tsx +1 -1
  45. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_description.md +3 -0
  46. data/app/pb_kits/playbook/pb_pb_circle_chart/pb_circle_chart.rb +7 -10
  47. data/app/pb_kits/playbook/pb_pb_circle_chart/pb_circle_chart.test.jsx +47 -0
  48. data/app/pb_kits/playbook/pb_pb_gauge_chart/_pb_gauge_chart.scss +3 -0
  49. data/app/pb_kits/playbook/pb_pb_gauge_chart/_pb_gauge_chart.tsx +69 -0
  50. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_description.md +3 -0
  51. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_color.html.erb +12 -0
  52. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_color.jsx +24 -0
  53. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_color.md +5 -0
  54. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_complex.html.erb +45 -0
  55. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_complex.jsx +119 -0
  56. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_complex.md +1 -0
  57. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_default.html.erb +5 -0
  58. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_default.jsx +17 -0
  59. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_disable_animation.html.erb +12 -0
  60. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_disable_animation.jsx +24 -0
  61. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_full_circle.html.erb +23 -0
  62. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_full_circle.jsx +37 -0
  63. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_height.html.erb +40 -0
  64. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_height.jsx +56 -0
  65. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_live_data.jsx +64 -0
  66. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_min_max.html.erb +27 -0
  67. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_min_max.jsx +40 -0
  68. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_min_max.md +1 -0
  69. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_sizing.html.erb +19 -0
  70. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_sizing.jsx +65 -0
  71. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_sizing.md +3 -0
  72. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_title.html.erb +14 -0
  73. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_title.jsx +27 -0
  74. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_units.html.erb +39 -0
  75. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_units.jsx +58 -0
  76. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_units.md +1 -0
  77. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/example.yml +29 -0
  78. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/index.js +11 -0
  79. data/app/pb_kits/playbook/pb_pb_gauge_chart/pbGaugeGraphTheme.ts +91 -0
  80. data/app/pb_kits/playbook/pb_pb_gauge_chart/pb_gauge_chart.html.erb +1 -0
  81. data/app/pb_kits/playbook/pb_pb_gauge_chart/pb_gauge_chart.rb +25 -0
  82. data/app/pb_kits/playbook/pb_pb_gauge_chart/pb_gauge_chart.test.jsx +80 -0
  83. data/app/pb_kits/playbook/pb_pb_line_graph/_pb_line_graph.scss +3 -0
  84. data/app/pb_kits/playbook/pb_pb_line_graph/_pb_line_graph.tsx +61 -0
  85. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_description.md +3 -0
  86. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_colors.html.erb +34 -0
  87. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_colors.jsx +52 -0
  88. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_colors.md +5 -0
  89. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_default.html.erb +34 -0
  90. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_default.jsx +45 -0
  91. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_height.html.erb +47 -0
  92. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_height.jsx +64 -0
  93. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_height.md +3 -0
  94. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend.html.erb +24 -0
  95. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend.jsx +37 -0
  96. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_nonclickable.html.erb +39 -0
  97. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_nonclickable.jsx +45 -0
  98. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_position.html.erb +86 -0
  99. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_position.jsx +116 -0
  100. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_position.md +11 -0
  101. data/app/pb_kits/playbook/pb_pb_line_graph/docs/example.yml +20 -0
  102. data/app/pb_kits/playbook/pb_pb_line_graph/docs/index.js +6 -0
  103. data/app/pb_kits/playbook/pb_pb_line_graph/pbLineGraphTheme.ts +125 -0
  104. data/app/pb_kits/playbook/pb_pb_line_graph/pb_line_graph.html.erb +1 -0
  105. data/app/pb_kits/playbook/pb_pb_line_graph/pb_line_graph.rb +25 -0
  106. data/app/pb_kits/playbook/pb_pb_line_graph/pb_line_graph.test.jsx +110 -0
  107. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +105 -22
  108. data/app/pb_kits/playbook/pb_rich_text_editor/TipTap/Toolbar.tsx +41 -2
  109. data/app/pb_kits/playbook/pb_rich_text_editor/TipTap/ToolbarDropdown.tsx +1 -0
  110. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.tsx +60 -20
  111. data/app/pb_kits/playbook/pb_rich_text_editor/_tiptap_styles.scss +36 -0
  112. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_attributes.jsx +38 -0
  113. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_attributes.md +1 -0
  114. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_focus.jsx +34 -0
  115. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_focus.md +1 -0
  116. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_inline.jsx +37 -0
  117. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_inline.md +1 -0
  118. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_simple.jsx +37 -0
  119. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_sticky.jsx +38 -0
  120. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_sticky.md +1 -0
  121. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_templates.jsx +69 -0
  122. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_templates.md +1 -0
  123. data/app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml +8 -2
  124. data/app/pb_kits/playbook/pb_rich_text_editor/docs/index.js +6 -0
  125. data/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor.test.js +127 -1
  126. data/app/pb_kits/playbook/pb_timeline/_timeline.scss +250 -233
  127. data/app/pb_kits/playbook/pb_timeline/_timeline.tsx +1 -1
  128. data/app/pb_kits/playbook/pb_timeline/timeline.test.js +2 -2
  129. data/app/pb_kits/playbook/tokens/_positioning.scss +1 -0
  130. data/app/pb_kits/playbook/utilities/_positioning.scss +6 -1
  131. data/app/pb_kits/playbook/utilities/globalProps.ts +3 -1
  132. data/dist/chunks/{_line_graph-BxcVBQsJ.js → _line_graph-BnVgr42C.js} +1 -1
  133. data/dist/chunks/_typeahead-BH_dkgOy.js +6 -0
  134. data/dist/chunks/{_weekday_stacked-BhPyFGlS.js → _weekday_stacked-B3YOt9GF.js} +3 -3
  135. data/dist/chunks/vendor.js +1 -1
  136. data/dist/menu.yml +12 -0
  137. data/dist/playbook-doc.js +2 -2
  138. data/dist/playbook-rails-react-bindings.js +1 -1
  139. data/dist/playbook-rails.js +1 -1
  140. data/dist/playbook.css +1 -1
  141. data/lib/playbook/pb_forms_helper.rb +7 -6
  142. data/lib/playbook/version.rb +1 -1
  143. data/lib/playbook/z_index.rb +1 -1
  144. metadata +83 -5
  145. data/dist/chunks/_typeahead-eZENQ_Y_.js +0 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0564ca2a7aee4679fe5adc368490a297e80b6460e473694b27ffe0ca6d764f9e
4
- data.tar.gz: 70197650a76743928f2f013e6e523bb62d409fdfae9c6b8e54981e27d92e4481
3
+ metadata.gz: 82b794ea7cbc28ff4082856e2145c9ecda9ef63a2c87a8c5921528878df240b6
4
+ data.tar.gz: 862326ab3cbeff4b250f5c9d0c1161c17f035c22ef8063c9108a716af5cd8b4e
5
5
  SHA512:
6
- metadata.gz: 65c3a0a9a1a969bd0c99be6b225c28ba833e3c85b1ad9984e55f02c17d7c14972a04ded656e05832a501fc63d70ab16e6a6981901635a5c0a0b0e227e0cdb2b6
7
- data.tar.gz: 1108f7297064ec9af16261b51c7f4a458d9963d149903f3449054d5e7e172c193c2d966aebdd83b67551e26a48782506a2cb56d14eaa48e5d1b469e2477723d2
6
+ metadata.gz: 23986a83c19969cb62ffc2db0b40357c724b4c3881ac557c462497622ccfbb10c1e578188ed074f79f534205db5200435d4e8e5bf8d7bed16d0a0af3585e7cfd
7
+ data.tar.gz: 455fa08d0de344832426667183e8d808e5dcc8ba3e8353362eb7769bff96c3bebcdd7c0191faeef01944fef2404ee43daf69f546a6949f71ac28fa15b1ec99b6
@@ -1,6 +1,4 @@
1
1
 
2
-
3
-
4
2
  @import 'pb_advanced_table/advanced_table';
5
3
  @import 'pb_avatar/avatar';
6
4
  @import 'pb_background/background';
@@ -33,6 +31,7 @@
33
31
  @import 'pb_distribution_bar/distribution_bar';
34
32
  @import 'pb_draggable/draggable';
35
33
  @import 'pb_dropdown/dropdown';
34
+ @import 'pb_empty_state/empty_state';
36
35
  @import 'pb_file_upload/file_upload';
37
36
  @import 'pb_filter/filter';
38
37
  @import 'pb_fixed_confirmation_toast/fixed_confirmation_toast';
@@ -70,6 +69,10 @@
70
69
  @import 'pb_overlay/overlay';
71
70
  @import 'pb_pagination/pagination';
72
71
  @import 'pb_passphrase/passphrase';
72
+ @import 'pb_pb_bar_graph/pb_bar_graph';
73
+ @import 'pb_pb_circle_chart/pb_circle_chart';
74
+ @import 'pb_pb_gauge_chart/pb_gauge_chart';
75
+ @import 'pb_pb_line_graph/pb_line_graph';
73
76
  @import 'pb_person/person';
74
77
  @import 'pb_person_contact/person_contact';
75
78
  @import 'pb_phone_number_input/phone_number_input';
@@ -108,9 +111,6 @@
108
111
  @import 'pb_user/user';
109
112
  @import 'pb_user_badge/user_badge';
110
113
  @import 'pb_weekday_stacked/weekday_stacked';
111
- @import 'pb_empty_state/empty_state';
112
- @import 'pb_pb_bar_graph/pb_bar_graph';
113
- @import 'pb_pb_circle_chart/pb_circle_chart';
114
114
  @import 'utilities/mixins';
115
115
  @import 'utilities/spacing';
116
116
  @import 'utilities/cursor';
@@ -9,6 +9,9 @@ interface UseTableActionsProps {
9
9
  setExpanded: (expanded: GenericObject) => void;
10
10
  onToggleExpansionClick?: (arg: Row<GenericObject>) => void;
11
11
  onRowSelectionChange?: (rowSelection: any) => void;
12
+ inlineRowLoading?: boolean;
13
+ localPagination?: { pageIndex: number; pageSize: number };
14
+ setLocalPagination?: (pagination: { pageIndex: number; pageSize: number }) => void;
12
15
  }
13
16
 
14
17
  export function useTableActions({
@@ -16,7 +19,10 @@ export function useTableActions({
16
19
  expanded,
17
20
  setExpanded,
18
21
  onToggleExpansionClick,
19
- onRowSelectionChange
22
+ onRowSelectionChange,
23
+ inlineRowLoading = false,
24
+ localPagination,
25
+ setLocalPagination
20
26
  }: UseTableActionsProps) {
21
27
 
22
28
  // State to achieve 1 second delay before fetching more rows
@@ -38,8 +44,17 @@ export function useTableActions({
38
44
 
39
45
  // Handle pagination
40
46
  const onPageChange = useCallback((page: number) => {
41
- table.setPageIndex(page - 1);
42
- }, [table]);
47
+ if (inlineRowLoading && setLocalPagination && localPagination) {
48
+ // Use manual pagination state for inlineRowLoading
49
+ setLocalPagination({
50
+ ...localPagination,
51
+ pageIndex: page - 1
52
+ });
53
+ } else {
54
+ // Use tanstack's built-in pagination
55
+ table.setPageIndex(page - 1);
56
+ }
57
+ }, [table, inlineRowLoading, setLocalPagination, localPagination]);
43
58
 
44
59
  // Handle scroll detection for infinite scroll/virtualization
45
60
  const fetchMoreOnBottomReached = useCallback((
@@ -35,6 +35,7 @@ interface UseTableStateProps {
35
35
  onRowSelectionChange?: (arg: RowSelectionState) => void;
36
36
  columnVisibilityControl?: GenericObject;
37
37
  rowStyling?: GenericObject;
38
+ inlineRowLoading?: boolean;
38
39
  }
39
40
 
40
41
  export function useTableState({
@@ -53,7 +54,8 @@ export function useTableState({
53
54
  tableOptions,
54
55
  columnVisibilityControl,
55
56
  pinnedRows,
56
- rowStyling
57
+ rowStyling,
58
+ inlineRowLoading = false
57
59
  }: UseTableStateProps) {
58
60
 
59
61
  // Create a local state for expanded and setExpanded if expandedControl not used
@@ -64,6 +66,12 @@ export function useTableState({
64
66
  const [localRowPinning, setLocalRowPinning] = useState<RowPinningState>({
65
67
  top: [],
66
68
  });
69
+ // Manage local state to preserve current page index when inlineRowLoading is enabled so it does not boot table to page 1
70
+ // We can extend this for more usecases, but for now scoping it only for inlineRowLoading
71
+ const [localPagination, setLocalPagination] = useState({
72
+ pageIndex: paginationProps?.pageIndex ?? 0,
73
+ pageSize: paginationProps?.pageSize ?? 20,
74
+ });
67
75
  // Determine whether to use the prop or the local state
68
76
  const expanded = expandedControl ? expandedControl.value : localExpanded;
69
77
  const setExpanded = expandedControl ? expandedControl.onChange : setLocalExpanded;
@@ -133,6 +141,7 @@ export function useTableState({
133
141
  ...(selectableRows && { rowSelection }),
134
142
  ...(columnVisibility && { columnVisibility }),
135
143
  ...(pinnedRows && { rowPinning }),
144
+ ...(inlineRowLoading && { pagination: localPagination }),
136
145
  },
137
146
  }), [
138
147
  expanded,
@@ -142,23 +151,36 @@ export function useTableState({
142
151
  rowSelection,
143
152
  columnVisibility,
144
153
  rowPinning,
154
+ inlineRowLoading,
155
+ localPagination
145
156
  ]);
146
157
 
147
158
  // Pagination configuration
148
159
  const paginationInitializer = useMemo(() => {
149
160
  if (!pagination) return {};
150
161
 
151
- return {
152
- getPaginationRowModel: getPaginationRowModel(),
153
- paginateExpandedRows: false,
154
- initialState: {
155
- pagination: {
156
- pageIndex: paginationProps?.pageIndex ?? 0,
157
- pageSize: paginationProps?.pageSize ?? 20,
162
+ if (inlineRowLoading) {
163
+ // Use manual pagination state when inlineRowLoading is enabled (see https://tanstack.com/table/latest/docs/guide/pagination#client-side-pagination)
164
+ return {
165
+ getPaginationRowModel: getPaginationRowModel(),
166
+ paginateExpandedRows: false,
167
+ onPaginationChange: setLocalPagination,
168
+ autoResetPageIndex: false, // This is what prevent auto-reset of page index
169
+ };
170
+ } else {
171
+ // Use normal pagination initialization for non- inlineRowLoading usecases
172
+ return {
173
+ getPaginationRowModel: getPaginationRowModel(),
174
+ paginateExpandedRows: false,
175
+ initialState: {
176
+ pagination: {
177
+ pageIndex: paginationProps?.pageIndex ?? 0,
178
+ pageSize: paginationProps?.pageSize ?? 20,
179
+ },
158
180
  },
159
- },
160
- };
161
- }, [pagination, paginationProps]);
181
+ };
182
+ }
183
+ }, [pagination, paginationProps, inlineRowLoading]);
162
184
 
163
185
  // Initialize the table
164
186
  const table = useReactTable({
@@ -206,9 +228,27 @@ export function useTableState({
206
228
  // Set pagination state when pagination is enabled
207
229
  useEffect(() => {
208
230
  if (pagination && paginationProps?.pageSize) {
209
- table.setPageSize(paginationProps.pageSize);
231
+ if (inlineRowLoading) {
232
+ // Update local pagination state for inlineRowLoading
233
+ setLocalPagination(prev => ({
234
+ ...prev,
235
+ pageSize: paginationProps.pageSize
236
+ }));
237
+ } else {
238
+ table.setPageSize(paginationProps.pageSize);
239
+ }
240
+ }
241
+ }, [pagination, paginationProps?.pageSize, table, inlineRowLoading]);
242
+
243
+ // Update local pagination when paginationProps change and inlineRowLoading is enabled
244
+ useEffect(() => {
245
+ if (pagination && inlineRowLoading && paginationProps) {
246
+ setLocalPagination({
247
+ pageIndex: paginationProps.pageIndex ?? localPagination.pageIndex,
248
+ pageSize: paginationProps.pageSize ?? localPagination.pageSize,
249
+ });
210
250
  }
211
- }, [pagination, paginationProps?.pageSize, table]);
251
+ }, [pagination, inlineRowLoading, paginationProps?.pageIndex, paginationProps?.pageSize]);
212
252
 
213
253
  // Check if table has any sub-rows
214
254
  const hasAnySubRows = table.getRowModel().rows.some(row => row.subRows && row.subRows.length > 0);
@@ -247,6 +287,8 @@ export function useTableState({
247
287
  rowSelection,
248
288
  fullData,
249
289
  totalFetched,
250
- isFetching
290
+ isFetching,
291
+ localPagination,
292
+ setLocalPagination
251
293
  };
252
294
  }
@@ -134,7 +134,9 @@ const AdvancedTable = (props: AdvancedTableProps) => {
134
134
  updateLoadingStateRowCount,
135
135
  fullData,
136
136
  totalFetched,
137
- isFetching
137
+ isFetching,
138
+ localPagination,
139
+ setLocalPagination
138
140
  } = useTableState({
139
141
  tableData,
140
142
  columnDefinitions,
@@ -152,7 +154,8 @@ const AdvancedTable = (props: AdvancedTableProps) => {
152
154
  onRowSelectionChange,
153
155
  columnVisibilityControl,
154
156
  pinnedRows,
155
- rowStyling
157
+ rowStyling,
158
+ inlineRowLoading
156
159
  });
157
160
 
158
161
  // Initialize table actions
@@ -165,7 +168,10 @@ const AdvancedTable = (props: AdvancedTableProps) => {
165
168
  expanded,
166
169
  setExpanded,
167
170
  onToggleExpansionClick,
168
- onRowSelectionChange
171
+ onRowSelectionChange,
172
+ inlineRowLoading,
173
+ localPagination,
174
+ setLocalPagination
169
175
  });
170
176
 
171
177
  // Set table row count for loading state
@@ -11,8 +11,8 @@
11
11
  <% if content.present? %>
12
12
  <% content.presence %>
13
13
  <% else %>
14
- <%= pb_rails("advanced_table/table_header", props: { id: object.id, column_definitions: object.column_definitions, enable_toggle_expansion: object.enable_toggle_expansion, responsive: object.responsive, loading: object.loading, selectable_rows: object.selectable_rows, show_actions_bar: object.show_actions_bar }) %>
15
- <%= 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, row_styling: object.row_styling }) %>
14
+ <%= pb_rails("advanced_table/table_header", props: { table_id: object.id, column_definitions: object.column_definitions, enable_toggle_expansion: object.enable_toggle_expansion, responsive: object.responsive, loading: object.loading, selectable_rows: object.selectable_rows, show_actions_bar: object.show_actions_bar }) %>
15
+ <%= pb_rails("advanced_table/table_body", props: { table_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, row_styling: object.row_styling }) %>
16
16
  <% end %>
17
17
  <% end %>
18
18
  <% end %>
@@ -0,0 +1,39 @@
1
+ <% column_definitions = [
2
+ {
3
+ accessor: "year",
4
+ label: "Year",
5
+ cellAccessors: ["quarter", "month", "day"],
6
+ },
7
+ {
8
+ accessor: "newEnrollments",
9
+ label: "New Enrollments",
10
+ column_styling: {
11
+ cell_background_color: ->(row) { row[:newEnrollments].to_i > 20 ? "success_secondary" : "warning_secondary" }
12
+ }
13
+ },
14
+ {
15
+ accessor: "scheduledMeetings",
16
+ label: "Scheduled Meetings",
17
+ },
18
+ {
19
+ accessor: "attendanceRate",
20
+ label: "Attendance Rate",
21
+ },
22
+ {
23
+ accessor: "completedClasses",
24
+ label: "Completed Classes",
25
+ },
26
+ {
27
+ accessor: "classCompletionRate",
28
+ label: "Class Completion Rate",
29
+ },
30
+ {
31
+ accessor: "graduatedStudents",
32
+ label: "Graduated Students",
33
+ }
34
+ ] %>
35
+
36
+ <%= pb_rails("advanced_table", props: { id: "background-control", table_data: @table_data, column_definitions: column_definitions }) do %>
37
+ <%= pb_rails("advanced_table/table_header", props: { table_id: "background-control", column_definitions: column_definitions }) %>
38
+ <%= pb_rails("advanced_table/table_body", props: { table_id: "background-control", table_data: @table_data, column_definitions: column_definitions }) %>
39
+ <% end %>
@@ -0,0 +1 @@
1
+ `column_styling` can also be used to control the background color on all cells in a given column via the use of the `cell_background_color` key/value pair. Use `cell_background_color` to achieve custom background colors for individual cells as seen here.
@@ -2,7 +2,9 @@ The AdvancedTable kit accepts tree data and automatically renders expansion cont
2
2
 
3
3
  ### id
4
4
 
5
- A unique `id` is required to allow the table functionality to work properly. Without it, certain functions like the action bar will not be able to properly reference the correct table.
5
+ A unique `id` is required to allow the table functionality to work properly. Without it, certain functions like the action bar, expand/collapse caching, or selectable rows will not be able to properly reference the correct table.
6
+
7
+ You must also set `table_id` when using subcomponents like `table_header` or `table_body`.
6
8
 
7
9
  ### table_data
8
10
 
@@ -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 %>
55
- <%= pb_rails("advanced_table/table_header", props: { column_definitions: column_definitions }) %>
56
- <%= pb_rails("advanced_table/table_body", props: { id: "beta_sort", table_data: @table_data, column_definitions: column_definitions, enable_toggle_expansion: "all" }) %>
54
+ <%= pb_rails("advanced_table", props: { id: "sort", table_data: @table_data, column_definitions: column_definitions, id: "beta_sort" }) do %>
55
+ <%= pb_rails("advanced_table/table_header", props: { table_id: "sort", column_definitions: column_definitions }) %>
56
+ <%= pb_rails("advanced_table/table_body", props: { table_id: "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 %>
38
- <%= pb_rails("advanced_table/table_header", props: { column_definitions: column_definitions }) %>
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" }) %>
37
+ <%= pb_rails("advanced_table", props: { id: "subrow-headers", table_data: @table_data, column_definitions: column_definitions, id: "test_table" }) do %>
38
+ <%= pb_rails("advanced_table/table_header", props: { table_id: "subrow-headers", column_definitions: column_definitions }) %>
39
+ <%= pb_rails("advanced_table/table_body", props: { table_id: "subrow-headers", table_data: @table_data, column_definitions: column_definitions, subrow_headers: subrow_headers, enable_toggle_expansion: "all" }) %>
40
40
  <% end %>
@@ -31,6 +31,6 @@
31
31
  ] %>
32
32
 
33
33
  <%= pb_rails("advanced_table", props: { id: "collapsible_trail", table_data: @table_data, column_definitions: column_definitions }) do %>
34
- <%= pb_rails("advanced_table/table_header", props: { column_definitions: column_definitions }) %>
35
- <%= pb_rails("advanced_table/table_body", props: { table_data: @table_data, column_definitions: column_definitions, collapsible_trail: false }) %>
34
+ <%= pb_rails("advanced_table/table_header", props: { table_id: "collapsible_trail", column_definitions: column_definitions }) %>
35
+ <%= pb_rails("advanced_table/table_body", props: { table_id: "collapsible_trail", table_data: @table_data, column_definitions: column_definitions, collapsible_trail: false }) %>
36
36
  <% end %>
@@ -1,4 +1,4 @@
1
- The `columnStyling` prop is an optional item that can be used within `columnDefinitions` as shown in the code snippet below. It is an object that has 2 optional key/value pairs:
1
+ The `columnStyling` prop is an optional item that can be used within `columnDefinitions` as shown in the code snippet below. It is an object that has several optional key/value pairs, this doc example highlights the following:
2
2
 
3
3
  1) `headerAlignment`: This will allow you to control alignment of header content which is set to right aligned by default. you can set this to `left`, `right` or `center`.
4
4
 
@@ -58,6 +58,6 @@
58
58
  ] %>
59
59
 
60
60
  <%= pb_rails("advanced_table", props: { id: "column-styling-multi", table_data: @table_data, column_definitions: column_definitions }) do %>
61
- <%= pb_rails("advanced_table/table_header", props: { column_definitions: column_definitions }) %>
62
- <%= pb_rails("advanced_table/table_body", props: { table_data: @table_data, column_definitions: column_definitions }) %>
61
+ <%= pb_rails("advanced_table/table_header", props: { table_id: "column-styling-multi", column_definitions: column_definitions }) %>
62
+ <%= pb_rails("advanced_table/table_body", props: { table_id: "column-styling-multi", table_data: @table_data, column_definitions: column_definitions }) %>
63
63
  <% end %>
@@ -33,6 +33,6 @@
33
33
  ] %>
34
34
 
35
35
  <%= pb_rails("advanced_table", props: { id: "column-styling", table_data: @table_data, column_definitions: column_definitions }) do %>
36
- <%= pb_rails("advanced_table/table_header", props: { column_definitions: column_definitions }) %>
37
- <%= pb_rails("advanced_table/table_body", props: { table_data: @table_data, column_definitions: column_definitions }) %>
36
+ <%= pb_rails("advanced_table/table_header", props: { table_id: "column-styling", column_definitions: column_definitions }) %>
37
+ <%= pb_rails("advanced_table/table_body", props: { table_id: "column-styling", table_data: @table_data, column_definitions: column_definitions }) %>
38
38
  <% end %>
@@ -1,4 +1,4 @@
1
- The `column_styling` prop is an optional item that can be used within `column_definitions` as shown in the code snippet below. It is an object that has 2 optional key/value pairs:
1
+ The `column_styling` prop is an optional item that can be used within `column_definitions` as shown in the code snippet below. It is an object that has several optional key/value pairs, this doc example highlights the following:
2
2
 
3
3
  1) `header_alignment`: This will allow you to control alignment of header content which is set to right aligned by default. you can set this to `left`, `right` or `center`.
4
4
 
@@ -0,0 +1,51 @@
1
+ <% column_definitions = [
2
+ {
3
+ accessor: "year",
4
+ label: "Year",
5
+ cellAccessors: ["quarter", "month", "day"],
6
+ },
7
+ {
8
+ accessor: "newEnrollments",
9
+ label: "New Enrollments",
10
+ },
11
+ {
12
+ accessor: "scheduledMeetings",
13
+ label: "Scheduled Meetings",
14
+ },
15
+ {
16
+ accessor: "attendanceRate",
17
+ label: "Attendance Rate",
18
+ },
19
+ {
20
+ accessor: "completedClasses",
21
+ label: "Completed Classes",
22
+ },
23
+ {
24
+ accessor: "classCompletionRate",
25
+ label: "Class Completion Rate",
26
+ },
27
+ {
28
+ accessor: "graduatedStudents",
29
+ label: "Graduated Students",
30
+ }
31
+ ] %>
32
+
33
+ <% row_styling = [
34
+ {
35
+ row_id: "1",
36
+ cell_padding: "md"
37
+ },
38
+ {
39
+ row_id: "3",
40
+ cell_padding: "lg"
41
+ },
42
+ {
43
+ row_id: "5",
44
+ cell_padding: "none"
45
+ },
46
+ ] %>
47
+
48
+ <%= pb_rails("advanced_table", props: { id: "padding-control-per-row", table_data: @table_data_with_id, column_definitions: column_definitions, row_styling: row_styling }) do %>
49
+ <%= pb_rails("advanced_table/table_header", props: { table_id: "padding-control-per-row", column_definitions: column_definitions }) %>
50
+ <%= pb_rails("advanced_table/table_body", props: { table_id: "padding-control-per-row", table_data: @table_data_with_id, column_definitions: column_definitions, row_styling: row_styling }) %>
51
+ <% end %>
@@ -0,0 +1 @@
1
+ `row_styling` can also be used to control padding on all cells in a given row via the use of the `cell_padding` key/value pair as shown here. `cell_padding` lets you use 'xxs', 'xs', 'sm', 'md', 'lg', 'xl' and 'none'.
@@ -0,0 +1,40 @@
1
+ <% column_definitions = [
2
+ {
3
+ accessor: "year",
4
+ label: "Year",
5
+ cellAccessors: ["quarter", "month", "day"],
6
+ },
7
+ {
8
+ accessor: "newEnrollments",
9
+ label: "New Enrollments",
10
+ column_styling: {
11
+ cell_padding: "none",
12
+ }
13
+ },
14
+ {
15
+ accessor: "scheduledMeetings",
16
+ label: "Scheduled Meetings",
17
+ },
18
+ {
19
+ accessor: "attendanceRate",
20
+ label: "Attendance Rate",
21
+ column_styling: { cell_padding: "md" },
22
+ },
23
+ {
24
+ accessor: "completedClasses",
25
+ label: "Completed Classes",
26
+ },
27
+ {
28
+ accessor: "classCompletionRate",
29
+ label: "Class Completion Rate",
30
+ },
31
+ {
32
+ accessor: "graduatedStudents",
33
+ label: "Graduated Students",
34
+ }
35
+ ] %>
36
+
37
+ <%= pb_rails("advanced_table", props: { id: "padding-control", table_data: @table_data, column_definitions: column_definitions }) do %>
38
+ <%= pb_rails("advanced_table/table_header", props: { table_id: "padding-control", column_definitions: column_definitions }) %>
39
+ <%= pb_rails("advanced_table/table_body", props: { table_id: "padding-control", table_data: @table_data, column_definitions: column_definitions }) %>
40
+ <% end %>
@@ -0,0 +1 @@
1
+ `column_styling` can also be used to control padding on all cells in a given column via the use of the `cell_padding` key/value pair. `cell_padding` lets you use 'xxs', 'xs', 'sm', 'md', 'lg', 'xl' and 'none'.
@@ -1,4 +1,4 @@
1
- The `row_styling` prop can be used in conjunction with row ids to control certain styling options on individual rows. Currently, `row_styling` gives you 3 optional controls:
1
+ The `row_styling` prop can be used in conjunction with row ids to control certain styling options on individual rows. It is an object that has several optional key/value pairs, this doc example highlights the following:
2
2
 
3
3
  - `background_color` : use this to control the background color of the row
4
4
  - `font_color`: use this to control font color for each row if needed, for example if using a darker background color.
@@ -1,4 +1,4 @@
1
- The `rowStyling` prop can be used in conjunction with row ids to control certain styling options on individual rows. Currently, `rowStyling` gives you 3 optional controls:
1
+ The `rowStyling` prop can be used in conjunction with row ids to control certain styling options on individual rows. It is an object that has several optional key/value pairs, this doc example highlights the following:
2
2
 
3
3
  - `backgroundColor` : use this to control the background color of the row
4
4
  - `fontColor`: use this to control font color for each row if needed, for example if using a darker background color.
@@ -34,6 +34,6 @@
34
34
  %>
35
35
 
36
36
  <%= pb_rails("advanced_table", props: { id: "selectable_rows", table_data: @table_data_with_id, column_definitions: column_definitions, selectable_rows: true }) do %>
37
- <%= pb_rails("advanced_table/table_header", props: { id: "selectable_rows", column_definitions: column_definitions, selectable_rows: true }) %>
38
- <%= pb_rails("advanced_table/table_body", props: { id: "selectable_rows", table_data: @table_data_with_id, column_definitions: column_definitions, subrow_headers: subrow_headers, enable_toggle_expansion: "all", selectable_rows: true }) %>
37
+ <%= pb_rails("advanced_table/table_header", props: { table_id: "selectable_rows", column_definitions: column_definitions, selectable_rows: true }) %>
38
+ <%= pb_rails("advanced_table/table_body", props: { table_id: "selectable_rows", table_data: @table_data_with_id, column_definitions: column_definitions, subrow_headers: subrow_headers, enable_toggle_expansion: "all", selectable_rows: true }) %>
39
39
  <% end %>
@@ -21,8 +21,11 @@ examples:
21
21
  - advanced_table_selectable_rows_header_rails: Selectable Rows (No Actions Bar)
22
22
  - advanced_table_scrollbar_none: Advanced Table Scrollbar None
23
23
  - advanced_table_row_styling: Row Styling
24
+ - advanced_table_padding_control_per_row_rails: Padding Control using Row Styling
24
25
  - advanced_table_column_styling_rails: Column Styling
25
26
  - advanced_table_column_styling_column_headers_rails: Column Styling with Multiple Headers
27
+ - advanced_table_padding_control_rails: Padding Control using Column Styling
28
+ - advanced_table_background_control_rails: Background Control using Column Styling
26
29
  - advanced_table_column_border_color_rails: Column Group Border Color
27
30
 
28
31
 
@@ -331,8 +331,12 @@ export default class PbAdvancedTable extends PbEnhancedElement {
331
331
  // Split the dataContent to get all ancestor IDs, check against ExpandedRows
332
332
  const ancestorIds = dataContent.split("-").slice(0, -1);
333
333
 
334
+ // Get the table_id from the child row's parent to construct proper prefixed IDs
335
+ const parentRowId = childRow.dataset.rowParent;
336
+ const tableId = parentRowId ? parentRowId.split('_').slice(0, -1).join('_') : '';
337
+
334
338
  const prefixedAncestorIds = ancestorIds.map(
335
- (id) => `${childRow.id}_${id}`
339
+ (id) => `${tableId}_${id}`
336
340
  );
337
341
  const allAncestorsExpanded = prefixedAncestorIds.every((id) =>
338
342
  PbAdvancedTable.expandedRows.has(id)
@@ -3,8 +3,8 @@
3
3
  module Playbook
4
4
  module PbAdvancedTable
5
5
  class TableBody < Playbook::KitBase
6
- prop :id, type: Playbook::Props::String,
7
- default: ""
6
+ prop :table_id, type: Playbook::Props::String,
7
+ default: ""
8
8
  prop :table_data, type: Playbook::Props::Array,
9
9
  default: []
10
10
  prop :column_definitions, type: Playbook::Props::Array,
@@ -53,7 +53,7 @@ module Playbook
53
53
  subrow_data_attributes = {
54
54
  advanced_table_content: subrow_ancestor_ids.join("-"),
55
55
  row_depth: current_depth,
56
- row_parent: "#{id}_#{ancestor_ids.last}",
56
+ row_parent: "#{table_id}_#{ancestor_ids.last}",
57
57
  }
58
58
  # Subrow header if applicable
59
59
  output << pb_rails("advanced_table/table_subrow_header", props: { row: row, column_definitions: leaf_columns, depth: current_depth, subrow_header: subrow_headers[current_depth - 1], collapsible_trail: collapsible_trail, classname: "toggle-content", responsive: responsive, subrow_data_attributes: subrow_data_attributes, last_row: last_row, immediate_parent_row_id: immediate_parent_row_id }) if is_first_child_of_subrow && enable_toggle_expansion == "all"
@@ -69,7 +69,7 @@ module Playbook
69
69
  end
70
70
 
71
71
  # Additional class and data attributes needed for toggle logic
72
- 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, row_styling: row_styling, last_row: last_row, immediate_parent_row_id: immediate_parent_row_id })
72
+ output << pb_rails("advanced_table/table_row", props: { table_id: table_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, row_styling: row_styling, last_row: last_row, immediate_parent_row_id: immediate_parent_row_id })
73
73
 
74
74
  if row[:children].present?
75
75
  row[:children].each do |child_row|
@@ -78,9 +78,9 @@ module Playbook
78
78
  data_content = new_ancestor_ids.join("-") + "-#{child_row.object_id}"
79
79
 
80
80
  child_data_attributes = {
81
- top_parent: "#{id}_#{top_parent_id}",
81
+ top_parent: "#{table_id}_#{top_parent_id}",
82
82
  row_depth: current_depth + 1,
83
- row_parent: "#{id}_#{immediate_parent_id}",
83
+ row_parent: "#{table_id}_#{immediate_parent_id}",
84
84
  advanced_table_content: data_content,
85
85
  }
86
86
 
@@ -3,8 +3,8 @@
3
3
  module Playbook
4
4
  module PbAdvancedTable
5
5
  class TableHeader < Playbook::KitBase
6
- prop :id, type: Playbook::Props::String,
7
- default: ""
6
+ prop :table_id, type: Playbook::Props::String,
7
+ default: ""
8
8
  prop :column_definitions, type: Playbook::Props::Array,
9
9
  default: []
10
10
  prop :enable_toggle_expansion, type: Playbook::Props::Enum,
@@ -58,10 +58,10 @@ module Playbook
58
58
  classname: additional_classes.join(" "),
59
59
  }) do
60
60
  pb_rails("checkbox", props: {
61
- id: "#{id ? "#{id}-" : ''}select-all-rows",
61
+ id: "#{table_id ? "#{table_id}-" : ''}select-all-rows",
62
62
  indeterminate_main: true,
63
63
  indeterminate_main_labels: ["", ""],
64
- name: "#{id ? "#{id}-" : ''}select-all-rows",
64
+ name: "#{table_id ? "#{table_id}-" : ''}select-all-rows",
65
65
  })
66
66
  end
67
67
  end
@@ -71,10 +71,10 @@ module Playbook
71
71
  def render_select_all_checkbox
72
72
  if selectable_rows
73
73
  pb_rails("checkbox", props: {
74
- id: "#{id ? "#{id}-" : ''}select-all-rows",
74
+ id: "#{table_id ? "#{table_id}-" : ''}select-all-rows",
75
75
  indeterminate_main: true,
76
76
  indeterminate_main_labels: ["", ""],
77
- name: "#{id ? "#{id}-" : ''}select-all-rows",
77
+ name: "#{table_id ? "#{table_id}-" : ''}select-all-rows",
78
78
  data: {
79
79
  action: "click->pb-advanced-table#toggleAllRowSelection",
80
80
  },