playbook_ui 16.3.0.pre.alpha.railspinnedrows14953 → 16.3.0.pre.rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (205) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/Components/CustomCell.tsx +4 -17
  3. data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +1 -3
  4. data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableActions.ts +9 -21
  5. data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableState.ts +2 -5
  6. data/app/pb_kits/playbook/pb_advanced_table/Utilities/ExpansionControlHelpers.tsx +1 -25
  7. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +1 -46
  8. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +2 -9
  9. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.html.erb +2 -2
  10. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.rb +0 -2
  11. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +2 -109
  12. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +0 -3
  13. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +1 -3
  14. data/app/pb_kits/playbook/pb_advanced_table/index.js +29 -130
  15. data/app/pb_kits/playbook/pb_advanced_table/table_body.html.erb +4 -21
  16. data/app/pb_kits/playbook/pb_advanced_table/table_body.rb +9 -115
  17. data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +1 -3
  18. data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +1 -12
  19. data/app/pb_kits/playbook/pb_advanced_table/table_subrow_header.html.erb +1 -4
  20. data/app/pb_kits/playbook/pb_advanced_table/table_subrow_header.rb +1 -9
  21. data/app/pb_kits/playbook/pb_body/_body.scss +4 -4
  22. data/app/pb_kits/playbook/pb_body/_body_mixins.scss +28 -28
  23. data/app/pb_kits/playbook/pb_button/_button.scss +2 -3
  24. data/app/pb_kits/playbook/pb_button/_button_mixins.scss +1 -6
  25. data/app/pb_kits/playbook/pb_caption/_caption.scss +1 -1
  26. data/app/pb_kits/playbook/pb_caption/_caption_mixin.scss +15 -15
  27. data/app/pb_kits/playbook/pb_caption/docs/_caption_colors.html.erb +4 -6
  28. data/app/pb_kits/playbook/pb_caption/docs/_caption_colors.jsx +4 -14
  29. data/app/pb_kits/playbook/pb_checkbox/_checkbox.scss +18 -18
  30. data/app/pb_kits/playbook/pb_collapsible/index.js +30 -31
  31. data/app/pb_kits/playbook/pb_date_picker/_date_picker.scss +7 -7
  32. data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +1 -7
  33. data/app/pb_kits/playbook/pb_date_picker/date_picker.html.erb +2 -2
  34. data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +0 -1
  35. data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.ts +1 -3
  36. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_positions.md +0 -1
  37. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_calendar_input_icon.scss +6 -14
  38. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_input_styles.scss +5 -80
  39. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_time_selection_styles.scss +1 -8
  40. data/app/pb_kits/playbook/pb_detail/_detail.scss +14 -14
  41. data/app/pb_kits/playbook/pb_detail/_detail_mixins.scss +13 -13
  42. data/app/pb_kits/playbook/pb_detail/docs/_detail_colors.html.erb +24 -6
  43. data/app/pb_kits/playbook/pb_detail/docs/_detail_colors.jsx +33 -35
  44. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_compound_components.html.erb +1 -1
  45. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_compound_components.jsx +3 -6
  46. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_compound_components.md +1 -3
  47. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_default.html.erb +9 -18
  48. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_default.jsx +5 -24
  49. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height.html.erb +3 -3
  50. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height.jsx +3 -6
  51. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height_placement.html.erb +3 -3
  52. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_full_height_placement.jsx +3 -6
  53. data/app/pb_kits/playbook/pb_dialog/index.js +5 -45
  54. data/app/pb_kits/playbook/pb_dropdown/_dropdown.scss +25 -34
  55. data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +3 -15
  56. data/app/pb_kits/playbook/pb_dropdown/docs/example.yml +0 -3
  57. data/app/pb_kits/playbook/pb_dropdown/docs/index.js +0 -1
  58. data/app/pb_kits/playbook/pb_dropdown/dropdown.html.erb +2 -2
  59. data/app/pb_kits/playbook/pb_dropdown/dropdown.rb +1 -8
  60. data/app/pb_kits/playbook/pb_dropdown/dropdown.test.jsx +1 -1
  61. data/app/pb_kits/playbook/pb_dropdown/index.js +56 -320
  62. data/app/pb_kits/playbook/pb_dropdown/keyboard_accessibility.js +3 -19
  63. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownTrigger.tsx +14 -19
  64. data/app/pb_kits/playbook/pb_dropdown/utilities/clickOutsideHelper.tsx +1 -7
  65. data/app/pb_kits/playbook/pb_enhanced_element/element_observer.ts +1 -1
  66. data/app/pb_kits/playbook/pb_enhanced_element/index.ts +1 -2
  67. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.scss +0 -4
  68. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.tsx +0 -3
  69. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/example.yml +0 -2
  70. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/index.js +1 -2
  71. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.rb +1 -7
  72. data/app/pb_kits/playbook/pb_icon/_icon.scss +1 -5
  73. data/app/pb_kits/playbook/pb_icon/icon.rb +19 -168
  74. data/app/pb_kits/playbook/pb_list/_list_mixin.scss +4 -4
  75. data/app/pb_kits/playbook/pb_multi_level_select/_helper_functions.tsx +1 -1
  76. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.scss +10 -28
  77. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +17 -27
  78. data/app/pb_kits/playbook/pb_multi_level_select/docs/example.yml +0 -1
  79. data/app/pb_kits/playbook/pb_multi_level_select/docs/index.js +0 -1
  80. data/app/pb_kits/playbook/pb_pagination/_pagination.scss +1 -101
  81. data/app/pb_kits/playbook/pb_pagination/_pagination.test.jsx +1 -172
  82. data/app/pb_kits/playbook/pb_pagination/_pagination.tsx +15 -178
  83. data/app/pb_kits/playbook/pb_pagination/docs/_pagination_default.jsx +1 -1
  84. data/app/pb_kits/playbook/pb_passphrase/_passphrase.scss +1 -14
  85. data/app/pb_kits/playbook/pb_passphrase/_passphrase.tsx +2 -5
  86. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.scss +11 -11
  87. data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.rb +0 -2
  88. data/app/pb_kits/playbook/pb_radio/_radio.scss +17 -17
  89. data/app/pb_kits/playbook/pb_rich_text_editor/_previewer_mixin.scss +6 -6
  90. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.scss +32 -31
  91. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.tsx +134 -37
  92. data/app/pb_kits/playbook/pb_rich_text_editor/_tiptap_styles.scss +5 -5
  93. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_attributes.html.erb +5 -0
  94. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_attributes.jsx +15 -0
  95. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_default.html.erb +1 -0
  96. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_default.jsx +0 -56
  97. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_focus.html.erb +3 -0
  98. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_focus.jsx +17 -0
  99. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_inline.html.erb +6 -0
  100. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_inline.jsx +16 -0
  101. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_label.jsx +28 -0
  102. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_label.md +1 -0
  103. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_preview.html.erb +35 -0
  104. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_preview.jsx +45 -0
  105. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_required_indicator.html.erb +10 -0
  106. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_required_indicator.jsx +22 -0
  107. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_required_indicator.md +3 -0
  108. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_simple.html.erb +1 -0
  109. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_simple.jsx +13 -0
  110. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_sticky.html.erb +1 -0
  111. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_sticky.jsx +15 -0
  112. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_templates.html.erb +115 -0
  113. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_templates.jsx +42 -0
  114. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_toolbar_bottom.html.erb +4 -0
  115. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_toolbar_bottom.jsx +14 -0
  116. data/app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml +21 -13
  117. data/app/pb_kits/playbook/pb_rich_text_editor/docs/index.js +10 -0
  118. data/app/pb_kits/playbook/pb_rich_text_editor/inlineFocus.ts +4 -5
  119. data/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor.html.erb +5 -0
  120. data/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor.rb +63 -0
  121. data/app/pb_kits/playbook/pb_select/_select.scss +51 -61
  122. data/app/pb_kits/playbook/pb_select/_select.tsx +0 -2
  123. data/app/pb_kits/playbook/pb_select/select.html.erb +2 -2
  124. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +20 -69
  125. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.scss +5 -6
  126. data/app/pb_kits/playbook/pb_star_rating/star_rating.html.erb +1 -1
  127. data/app/pb_kits/playbook/pb_star_rating/subcomponents/_star_rating_interactive.tsx +0 -1
  128. data/app/pb_kits/playbook/pb_table/_table.tsx +21 -24
  129. data/app/pb_kits/playbook/pb_table/docs/example.yml +0 -2
  130. data/app/pb_kits/playbook/pb_table/docs/index.js +0 -1
  131. data/app/pb_kits/playbook/pb_table/table.html.erb +11 -12
  132. data/app/pb_kits/playbook/pb_table/table.rb +0 -4
  133. data/app/pb_kits/playbook/pb_table/table.test.js +0 -33
  134. data/app/pb_kits/playbook/pb_text_input/_text_input.scss +20 -51
  135. data/app/pb_kits/playbook/pb_text_input/_text_input.tsx +4 -11
  136. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_disabled.jsx +13 -11
  137. data/app/pb_kits/playbook/pb_text_input/text_input.html.erb +2 -2
  138. data/app/pb_kits/playbook/pb_textarea/_textarea.scss +13 -59
  139. data/app/pb_kits/playbook/pb_textarea/_textarea.tsx +21 -43
  140. data/app/pb_kits/playbook/pb_textarea/_textarea_mixin.scss +10 -31
  141. data/app/pb_kits/playbook/pb_textarea/docs/example.yml +0 -1
  142. data/app/pb_kits/playbook/pb_textarea/docs/index.js +8 -9
  143. data/app/pb_kits/playbook/pb_textarea/textarea.html.erb +4 -4
  144. data/app/pb_kits/playbook/pb_textarea/textarea.rb +2 -6
  145. data/app/pb_kits/playbook/pb_textarea/textarea.test.js +1 -134
  146. data/app/pb_kits/playbook/pb_time_picker/_time_picker.scss +25 -186
  147. data/app/pb_kits/playbook/pb_time_picker/_time_picker.tsx +1 -22
  148. data/app/pb_kits/playbook/pb_time_picker/time_picker.rb +1 -8
  149. data/app/pb_kits/playbook/pb_time_picker/time_picker.test.jsx +2 -2
  150. data/app/pb_kits/playbook/pb_title/_title_mixin.scss +13 -13
  151. data/app/pb_kits/playbook/pb_title/docs/_title_colors.html.erb +0 -2
  152. data/app/pb_kits/playbook/pb_title/docs/_title_colors.jsx +0 -14
  153. data/app/pb_kits/playbook/pb_tooltip/index.js +15 -60
  154. data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +23 -66
  155. data/app/pb_kits/playbook/pb_typeahead/_typeahead.test.jsx +1 -1
  156. data/app/pb_kits/playbook/pb_typeahead/_typeahead.tsx +3 -105
  157. data/app/pb_kits/playbook/tokens/_colors_accessible.scss +1 -5
  158. data/app/pb_kits/playbook/tokens/_titles.scss +1 -1
  159. data/dist/chunks/{_pb_line_graph-D6s5rymw.js → _pb_line_graph-CC2Ywwix.js} +1 -1
  160. data/dist/chunks/_typeahead-DtzfGPUT.js +1 -0
  161. data/dist/chunks/componentRegistry-DzmmLR2x.js +1 -0
  162. data/dist/chunks/{globalProps-Ds_6HBhX.js → globalProps-DYr2qrIf.js} +1 -1
  163. data/dist/chunks/lib-DgqmX9CF.js +29 -0
  164. data/dist/chunks/vendor.js +5 -5
  165. data/dist/menu.yml +2 -3
  166. data/dist/playbook-rails-react-bindings.js +1 -1
  167. data/dist/playbook-rails.js +1 -1
  168. data/dist/playbook.css +1 -1
  169. data/lib/playbook/forms/builder/checkbox_field.rb +1 -1
  170. data/lib/playbook/pb_forms_helper.rb +0 -3
  171. data/lib/playbook/tokens/colors.json +0 -2
  172. data/lib/playbook/version.rb +2 -2
  173. metadata +31 -36
  174. data/app/pb_kits/playbook/pb_advanced_table/Utilities/RowModelUtils.ts +0 -100
  175. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_cascade_collapse.jsx +0 -50
  176. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_cascade_collapse.md +0 -1
  177. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pinned_rows_rails.html.erb +0 -57
  178. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pinned_rows_rails.md +0 -7
  179. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_parent_only.jsx +0 -175
  180. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_parent_only.md +0 -5
  181. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_closing_options.jsx +0 -63
  182. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_closing_options.md +0 -1
  183. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_closing_options_rails.html.erb +0 -16
  184. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_closing_options_rails.md +0 -1
  185. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_custom_event_type.html.erb +0 -224
  186. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_custom_event_type.md +0 -7
  187. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_nav_margin.html.erb +0 -46
  188. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_nav_margin.jsx +0 -42
  189. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_nav_margin_rails.md +0 -1
  190. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_nav_margin_react.md +0 -1
  191. data/app/pb_kits/playbook/pb_kit_registry/index.ts +0 -180
  192. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_react_reset_key.jsx +0 -100
  193. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_react_reset_key.md +0 -1
  194. data/app/pb_kits/playbook/pb_rich_text_editor/_tiptap_editor.tsx +0 -51
  195. data/app/pb_kits/playbook/pb_rich_text_editor/_trix_editor.tsx +0 -206
  196. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_default.md +0 -1
  197. data/app/pb_kits/playbook/pb_table/docs/_table_with_filter_with_card_title_props.jsx +0 -152
  198. data/app/pb_kits/playbook/pb_table/docs/_table_with_filter_with_card_title_props.md +0 -17
  199. data/app/pb_kits/playbook/pb_table/docs/_table_with_filter_with_card_title_props_rails.html.erb +0 -121
  200. data/app/pb_kits/playbook/pb_table/docs/_table_with_filter_with_card_title_props_rails.md +0 -17
  201. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_input_options.jsx +0 -68
  202. data/app/pb_kits/playbook/utilities/domHelpers.ts +0 -50
  203. data/dist/chunks/_typeahead-Bh0RF1X-.js +0 -1
  204. data/dist/chunks/componentRegistry-DRSp5D_e.js +0 -1
  205. data/dist/chunks/lib-BaO72ugL.js +0 -29
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 17a3a4c0cfdf09caa3680a6992006a766adc927bae6894cd6b20d1508e85a34f
4
- data.tar.gz: 7ed26531db9e127dd0660bc2870049b4dc29e5160dfb668b666506dc9736af5f
3
+ metadata.gz: c263f61be4ea85a8bf2e3d4f6a590f49ec43352c54affc9d4f5d95e44247b22f
4
+ data.tar.gz: 0ba673160c6a8d82633238b13e852d76cc9c2ab770e16af71fb54a584dc5686b
5
5
  SHA512:
6
- metadata.gz: 8d38cc16a1c636775b8ff366a1667c4708ba52d9bf29661cc4f691bc524b99e9b60a053fab8b92caf375f9bca8e875a54c1b31a5ba496e149ff670882036d765
7
- data.tar.gz: 0d3ea30b0eedd892fee116b5b1c14a4d958098fe3b81283efc7142cc7335f2273a5d8de765a8ab7706b201f4f21ec48f503ef160736359808388401a230dbfcb
6
+ metadata.gz: f4aa538155e4273e01007a6f8316d215424f3c59efdd1839a3717f88a6eeb9af9bb6545f7837cb8128cf2809ca4142b0e78f853117f9180a3b689a7266133231
7
+ data.tar.gz: 64fcefa854d31c4bea45c2a5d12576d0ba2e4418b27ad2a7cb8dee12adae3dd2d60dba698919daef16cf9563a103015a6cc7a991a9f6e465e4ebd443ab83b329
@@ -11,7 +11,6 @@ import Icon from "../../pb_icon/_icon"
11
11
  import Checkbox from "../../pb_checkbox/_checkbox"
12
12
 
13
13
  import AdvancedTableContext from "../Context/AdvancedTableContext"
14
- import { getDescendantRowIds } from "../Utilities/ExpansionControlHelpers"
15
14
 
16
15
  interface CustomCellProps {
17
16
  getValue?: Getter<string>
@@ -32,25 +31,13 @@ export const CustomCell = ({
32
31
  selectableRows,
33
32
  customStyle = {},
34
33
  }: CustomCellProps & GlobalProps) => {
35
- const { setExpanded, expanded, expandedControl, inlineRowLoading, hasAnySubRows, cascadeCollapse } = useContext(AdvancedTableContext);
34
+ const { setExpanded, expanded, expandedControl, inlineRowLoading, hasAnySubRows } = useContext(AdvancedTableContext);
36
35
 
37
36
  const handleOnExpand = (row: Row<GenericObject>) => {
38
37
  onRowToggleClick && onRowToggleClick(row);
39
-
40
- const willBeExpanded = !row.getIsExpanded();
41
- if (willBeExpanded) {
42
- if (!expandedControl) {
43
- setExpanded({ ...expanded, [row.id]: true });
44
- }
45
- } else {
46
- if (cascadeCollapse) {
47
- const idsToRemove = new Set([row.id, ...getDescendantRowIds(row)]);
48
- const nextExpanded = { ...expanded };
49
- idsToRemove.forEach((id) => delete nextExpanded[id]);
50
- setExpanded(nextExpanded);
51
- } else if (!expandedControl) {
52
- setExpanded({ ...expanded, [row.id]: false });
53
- }
38
+
39
+ if (!expandedControl) {
40
+ setExpanded({ ...expanded, [row.id]: !row.getIsExpanded() });
54
41
  }
55
42
  };
56
43
 
@@ -63,7 +63,6 @@ export const TableHeaderCell = ({
63
63
  stickyLeftColumn,
64
64
  inlineRowLoading,
65
65
  isActionBarVisible,
66
- cascadeCollapse,
67
66
  } = useContext(AdvancedTableContext);
68
67
 
69
68
  type justifyTypes = "none" | "center" | "start" | "end" | "between" | "around" | "evenly"
@@ -183,8 +182,7 @@ const isToggleExpansionEnabled =
183
182
  table.getRowModel(),
184
183
  expanded,
185
184
  undefined,
186
- depth,
187
- cascadeCollapse
185
+ depth
188
186
  )
189
187
  setExpanded(updated)
190
188
  }
@@ -12,7 +12,6 @@ interface UseTableActionsProps {
12
12
  inlineRowLoading?: boolean;
13
13
  localPagination?: { pageIndex: number; pageSize: number };
14
14
  setLocalPagination?: (pagination: { pageIndex: number; pageSize: number }) => void;
15
- cascadeCollapse?: boolean;
16
15
  }
17
16
 
18
17
  export function useTableActions({
@@ -23,8 +22,7 @@ export function useTableActions({
23
22
  onRowSelectionChange,
24
23
  inlineRowLoading = false,
25
24
  localPagination,
26
- setLocalPagination,
27
- cascadeCollapse = false
25
+ setLocalPagination
28
26
  }: UseTableActionsProps) {
29
27
 
30
28
  // State to achieve 1 second delay before fetching more rows
@@ -34,25 +32,15 @@ export function useTableActions({
34
32
  // Handle expand/collapse
35
33
  const handleExpandOrCollapse = useCallback(async (row: Row<GenericObject>) => {
36
34
  if (onToggleExpansionClick) onToggleExpansionClick(row)
35
+ const updatedExpandedState = await updateExpandAndCollapseState(
36
+ table.getRowModel(),
37
+ expanded,
38
+ row?.parentId,
39
+ undefined
40
+ )
37
41
 
38
- const anyTopLevelExpanded = table.getRowModel().rows.some((r: Row<GenericObject>) => r.getIsExpanded())
39
- const isHeaderCollapseAll = row == null && anyTopLevelExpanded
40
-
41
- if (cascadeCollapse && isHeaderCollapseAll) {
42
- setExpanded({})
43
- return
44
- }
45
-
46
- const updatedExpandedState = await updateExpandAndCollapseState(
47
- table.getRowModel(),
48
- expanded,
49
- row?.parentId,
50
- undefined,
51
- cascadeCollapse
52
- )
53
-
54
- setExpanded(updatedExpandedState)
55
- }, [expanded, setExpanded, onToggleExpansionClick, table, cascadeCollapse]);
42
+ setExpanded(updatedExpandedState)
43
+ }, [expanded, setExpanded, onToggleExpansionClick, table]);
56
44
 
57
45
  // Handle pagination
58
46
  const onPageChange = useCallback((page: number) => {
@@ -12,7 +12,6 @@ import {
12
12
  import { GenericObject } from "../../types";
13
13
  import { createColumnHelper } from "@tanstack/react-table";
14
14
  import { createCellFunction } from "../Utilities/CellRendererUtils";
15
- import { getParentOnlySortedRowModel } from "../Utilities/RowModelUtils";
16
15
 
17
16
  interface UseTableStateProps {
18
17
  tableData: GenericObject[];
@@ -37,7 +36,6 @@ interface UseTableStateProps {
37
36
  columnVisibilityControl?: GenericObject;
38
37
  rowStyling?: GenericObject;
39
38
  inlineRowLoading?: boolean;
40
- sortParentOnly?: boolean;
41
39
  }
42
40
 
43
41
  export function useTableState({
@@ -57,8 +55,7 @@ export function useTableState({
57
55
  columnVisibilityControl,
58
56
  pinnedRows,
59
57
  rowStyling,
60
- inlineRowLoading = false,
61
- sortParentOnly = false
58
+ inlineRowLoading = false
62
59
  }: UseTableStateProps) {
63
60
 
64
61
  // Create a local state for expanded and setExpanded if expandedControl not used
@@ -193,7 +190,7 @@ export function useTableState({
193
190
  getSubRows: (row: GenericObject) => row.children,
194
191
  getCoreRowModel: getCoreRowModel(),
195
192
  getExpandedRowModel: getExpandedRowModel(),
196
- getSortedRowModel: sortParentOnly ? getParentOnlySortedRowModel() : getSortedRowModel(),
193
+ getSortedRowModel: getSortedRowModel(),
197
194
  enableSortingRemoval: enableSortingRemoval,
198
195
  sortDescFirst: true,
199
196
  onRowSelectionChange: setRowSelection,
@@ -11,21 +11,11 @@ const filterExpandableRows = (expandedState: Record<string, boolean>) => {
11
11
  return expandedState
12
12
  }
13
13
 
14
- export const getDescendantRowIds = (row: Row<GenericObject>): string[] => {
15
- const ids: string[] = []
16
- for (const sub of row.subRows || []) {
17
- ids.push(sub.id)
18
- ids.push(...getDescendantRowIds(sub))
19
- }
20
- return ids
21
- }
22
-
23
14
  export const updateExpandAndCollapseState = (
24
15
  tableRows: RowModel<GenericObject>,
25
16
  expanded: Record<string, boolean>,
26
17
  targetParent?: string,
27
18
  targetDepth?: number,
28
- cascadeCollapse?: boolean,
29
19
  ) => {
30
20
  const updateExpandedRows: Record<string, boolean> = {};
31
21
  const rows = targetDepth !== undefined ? tableRows.flatRows : tableRows.rows;
@@ -61,22 +51,8 @@ export const updateExpandAndCollapseState = (
61
51
  }
62
52
  }
63
53
 
64
- const updatedExpandedState = filterExpandableRows({
54
+ return filterExpandableRows({
65
55
  ...(expanded as ExpandedStateObject),
66
56
  ...updateExpandedRows,
67
57
  });
68
-
69
- if (cascadeCollapse && !isExpandAction) {
70
- const idsToRemove = new Set<string>();
71
- for (const row of rowsToToggle) {
72
- const shouldUpdate =
73
- targetDepth === undefined ? true : row.depth === targetDepth;
74
- if (shouldUpdate) {
75
- getDescendantRowIds(row).forEach((id) => idsToRemove.add(id));
76
- }
77
- }
78
- idsToRemove.forEach((id) => delete updatedExpandedState[id]);
79
- }
80
-
81
- return updatedExpandedState;
82
58
  };
@@ -63,51 +63,6 @@
63
63
  width: 100%;
64
64
  }
65
65
 
66
- // Override pb_table endcap: first and last column use same padding as rest of row
67
- // First column
68
- .pb_table.table-sm tbody tr td:first-child,
69
- .pb_table.table-sm tbody tr .pb_table_td:first-child,
70
- .pb_table.table-sm tbody .pb_table_tr td:first-child,
71
- .pb_table.table-sm tbody .pb_table_tr .pb_table_td:first-child,
72
- .pb_table.table-sm .pb_table_tbody tr td:first-child,
73
- .pb_table.table-sm .pb_table_tbody tr .pb_table_td:first-child,
74
- .pb_table.table-sm .pb_table_tbody .pb_table_tr td:first-child,
75
- .pb_table.table-sm .pb_table_tbody .pb_table_tr .pb_table_td:first-child {
76
- padding-left: $space-xs;
77
- }
78
- .pb_table.table-md tbody tr td:first-child,
79
- .pb_table.table-md tbody tr .pb_table_td:first-child,
80
- .pb_table.table-md tbody .pb_table_tr td:first-child,
81
- .pb_table.table-md tbody .pb_table_tr .pb_table_td:first-child,
82
- .pb_table.table-md .pb_table_tbody tr td:first-child,
83
- .pb_table.table-md .pb_table_tbody tr .pb_table_td:first-child,
84
- .pb_table.table-md .pb_table_tbody .pb_table_tr td:first-child,
85
- .pb_table.table-md .pb_table_tbody .pb_table_tr .pb_table_td:first-child {
86
- padding-left: $space-sm;
87
- }
88
-
89
- // Last column
90
- .pb_table.table-sm tbody tr td:last-child,
91
- .pb_table.table-sm tbody tr .pb_table_td:last-child,
92
- .pb_table.table-sm tbody .pb_table_tr td:last-child,
93
- .pb_table.table-sm tbody .pb_table_tr .pb_table_td:last-child,
94
- .pb_table.table-sm .pb_table_tbody tr td:last-child,
95
- .pb_table.table-sm .pb_table_tbody tr .pb_table_td:last-child,
96
- .pb_table.table-sm .pb_table_tbody .pb_table_tr td:last-child,
97
- .pb_table.table-sm .pb_table_tbody .pb_table_tr .pb_table_td:last-child {
98
- padding-right: $space-xs;
99
- }
100
- .pb_table.table-md tbody tr td:last-child,
101
- .pb_table.table-md tbody tr .pb_table_td:last-child,
102
- .pb_table.table-md tbody .pb_table_tr td:last-child,
103
- .pb_table.table-md tbody .pb_table_tr .pb_table_td:last-child,
104
- .pb_table.table-md .pb_table_tbody tr td:last-child,
105
- .pb_table.table-md .pb_table_tbody tr .pb_table_td:last-child,
106
- .pb_table.table-md .pb_table_tbody .pb_table_tr td:last-child,
107
- .pb_table.table-md .pb_table_tbody .pb_table_tr .pb_table_td:last-child {
108
- padding-right: $space-sm;
109
- }
110
-
111
66
  // Virtualized Table and Rows for Infinite Scroll
112
67
  scrollbar-gutter: stable right-edges;
113
68
  .virtualized-header-row-header {
@@ -765,7 +720,7 @@
765
720
  }
766
721
  }
767
722
 
768
- // Row Pinning - React uses inline style; Rails passes same style via html_options from table_body
723
+ // Row Pinning - additional inline styles in RegularTableView.tsx
769
724
  .pinned-row {
770
725
  box-shadow: 0 4px 10px 0 rgba($shadow, 0.16) !important;
771
726
  }
@@ -31,7 +31,6 @@ type FullscreenControls = {
31
31
  type AdvancedTableProps = {
32
32
  aria?: { [key: string]: string }
33
33
  actions?: React.ReactNode[] | React.ReactNode
34
- cascadeCollapse?: boolean
35
34
  children?: React.ReactNode | React.ReactNode[]
36
35
  className?: string
37
36
  columnDefinitions: GenericObject[]
@@ -66,7 +65,6 @@ type AdvancedTableProps = {
66
65
  showActionsBar?: boolean,
67
66
  persistToggleExpansionButton?: boolean,
68
67
  sortControl?: GenericObject
69
- sortParentOnly?: boolean
70
68
  tableData: GenericObject[]
71
69
  tableOptions?: GenericObject
72
70
  tableProps?: GenericObject
@@ -82,7 +80,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
82
80
  const {
83
81
  aria = {},
84
82
  actions,
85
- cascadeCollapse = false,
86
83
  children,
87
84
  className,
88
85
  columnDefinitions,
@@ -115,7 +112,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
115
112
  selectableRows,
116
113
  persistToggleExpansionButton = false,
117
114
  sortControl,
118
- sortParentOnly = false,
119
115
  stickyLeftColumn,
120
116
  tableData,
121
117
  tableOptions,
@@ -161,8 +157,7 @@ const AdvancedTable = (props: AdvancedTableProps) => {
161
157
  columnVisibilityControl,
162
158
  pinnedRows,
163
159
  rowStyling,
164
- inlineRowLoading,
165
- sortParentOnly
160
+ inlineRowLoading
166
161
  });
167
162
 
168
163
  // Initialize table actions
@@ -178,8 +173,7 @@ const AdvancedTable = (props: AdvancedTableProps) => {
178
173
  onRowSelectionChange,
179
174
  inlineRowLoading,
180
175
  localPagination,
181
- setLocalPagination,
182
- cascadeCollapse
176
+ setLocalPagination
183
177
  });
184
178
 
185
179
  // Set table row count for loading state
@@ -345,7 +339,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
345
339
  >
346
340
  {renderFullscreenHeader()}
347
341
  <AdvancedTableProvider
348
- cascadeCollapse={cascadeCollapse}
349
342
  columnDefinitions={columnDefinitions}
350
343
  columnGroupBorderColor={columnGroupBorderColor}
351
344
  columnVisibilityControl={columnVisibilityControl}
@@ -7,12 +7,12 @@
7
7
  }) %>
8
8
  <% end %>
9
9
 
10
- <%= pb_rails("table", props: { size: "sm", data_table: true, number_spacing:"tabular", responsive:"none", dark: dark, classname: object.loading ? "content-loading" : "" }.merge(object.table_props || {})) do %>
10
+ <%= pb_rails("table", props: { size: "sm", data_table: true, number_spacing:"tabular", responsive:"none", dark: dark, classname: object.loading ? "content-loading" : "" }.merge(object.table_props)) do %>
11
11
  <% if content.present? %>
12
12
  <% content.presence %>
13
13
  <% else %>
14
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, inline_row_loading: object.inline_row_loading, persist_toggle_expansion_button: object.persist_toggle_expansion_button, table_data: object.table_data }) %>
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, inline_row_loading: object.inline_row_loading, pinned_rows: object.pinned_rows }) %>
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, inline_row_loading: object.inline_row_loading }) %>
16
16
  <% end %>
17
17
  <% end %>
18
18
  <% end %>
@@ -37,8 +37,6 @@ module Playbook
37
37
  default: false
38
38
  prop :persist_toggle_expansion_button, type: Playbook::Props::Boolean,
39
39
  default: false
40
- prop :pinned_rows, type: Playbook::Props::HashProp,
41
- default: {}
42
40
 
43
41
  def classname
44
42
  additional_classes = [
@@ -495,41 +495,7 @@ test("sort button exists and sorts column data", () => {
495
495
 
496
496
  const row2 = kit.getElementsByTagName('tr')[2]
497
497
  expect(row2.id).toBe("0-0-0-row")
498
- })
499
-
500
- test("sortParentOnly sorts only parent rows and keeps children grouped under parent", () => {
501
- render(
502
- <AdvancedTable
503
- columnDefinitions={columnDefinitions}
504
- data={{ testid: testId }}
505
- sortParentOnly
506
- tableData={MOCK_DATA}
507
- >
508
- <AdvancedTable.Header enableSorting />
509
- <AdvancedTable.Body />
510
- </AdvancedTable>
511
- )
512
-
513
- const kit = screen.getByTestId(testId)
514
- const sortButton = kit.querySelector(".header-sort-button.pb_th_link")
515
- expect(sortButton).toBeInTheDocument()
516
-
517
- const tbody = kit.querySelector('tbody')
518
- const rowsBefore = tbody.getElementsByTagName('tr')
519
- expect(rowsBefore[0]).toHaveTextContent('2021')
520
-
521
- sortButton.click()
522
-
523
- const rowsAfter = tbody.getElementsByTagName('tr')
524
- expect(rowsAfter[0]).toHaveTextContent('2022')
525
-
526
- const expandButton = kit.querySelector(".gray-icon.expand-toggle-icon")
527
- expandButton.click()
528
-
529
- const rowsExpanded = tbody.getElementsByTagName('tr')
530
- expect(rowsExpanded.length).toBeGreaterThan(1)
531
- expect(rowsExpanded[1]).toHaveTextContent('Q1')
532
- })
498
+ })
533
499
 
534
500
  test("Generates Table.Header default + custom classname", () => {
535
501
  render(
@@ -1049,77 +1015,4 @@ test("columnStyling.headerFontColor works as excpected", () => {
1049
1015
 
1050
1016
  const firstEnrollmentHeader = screen.getAllByText("New Enrollments")[0].closest("th");
1051
1017
  expect(firstEnrollmentHeader).toHaveStyle({ color: colors.white });
1052
- });
1053
-
1054
- test("cascadeCollapse=false (default) preserves existing behavior when parent is re-expanded", () => {
1055
- render(
1056
- <AdvancedTable
1057
- columnDefinitions={columnDefinitions}
1058
- data={{ testid: testId }}
1059
- tableData={MOCK_DATA}
1060
- />
1061
- )
1062
-
1063
- const kit = screen.getByTestId(testId)
1064
- const getParentExpandButton = () => kit.querySelector("tbody tr .gray-icon.expand-toggle-icon")
1065
- const parentButton = getParentExpandButton()
1066
- expect(parentButton).toBeInTheDocument()
1067
- parentButton.click()
1068
- let subRow = kit.querySelector(".pb-bg-row-white.depth-sub-row-1")
1069
- expect(subRow).toBeInTheDocument()
1070
- getParentExpandButton().click()
1071
- subRow = kit.querySelector(".pb-bg-row-white.depth-sub-row-1")
1072
- expect(subRow).not.toBeInTheDocument()
1073
- getParentExpandButton().click()
1074
- subRow = kit.querySelector(".pb-bg-row-white.depth-sub-row-1")
1075
- expect(subRow).toBeInTheDocument()
1076
- })
1077
-
1078
- test("cascadeCollapse=true collapses all descendants when parent is collapsed", () => {
1079
- render(
1080
- <AdvancedTable
1081
- cascadeCollapse
1082
- columnDefinitions={columnDefinitions}
1083
- data={{ testid: testId }}
1084
- tableData={MOCK_DATA}
1085
- />
1086
- )
1087
-
1088
- const kit = screen.getByTestId(testId)
1089
- const getParentExpandButton = () => kit.querySelector("tbody tr .gray-icon.expand-toggle-icon")
1090
- const parentButton = getParentExpandButton()
1091
- expect(parentButton).toBeInTheDocument()
1092
- parentButton.click()
1093
- expect(kit.querySelector(".depth-sub-row-1")).toBeInTheDocument()
1094
- getParentExpandButton().click()
1095
- expect(kit.querySelector(".depth-sub-row-1")).not.toBeInTheDocument()
1096
- getParentExpandButton().click()
1097
- expect(kit.querySelector(".depth-sub-row-1")).toBeInTheDocument()
1098
- })
1099
-
1100
- test("cascadeCollapse=true with header toggle all: collapse all then expand all shows only direct children", async () => {
1101
- render(
1102
- <AdvancedTable
1103
- cascadeCollapse
1104
- columnDefinitions={columnDefinitions}
1105
- data={{ testid: testId }}
1106
- tableData={MOCK_DATA}
1107
- />
1108
- )
1109
-
1110
- const kit = screen.getByTestId(testId)
1111
- const toggleAllButton = kit.querySelector(".gray-icon.toggle-all-icon")
1112
- expect(toggleAllButton).toBeInTheDocument()
1113
- toggleAllButton.click()
1114
- await waitFor(() => {
1115
- expect(kit.querySelector(".depth-sub-row-1")).toBeInTheDocument()
1116
- })
1117
- toggleAllButton.click()
1118
- await waitFor(() => {
1119
- expect(kit.querySelector(".depth-sub-row-1")).not.toBeInTheDocument()
1120
- })
1121
- toggleAllButton.click()
1122
- await waitFor(() => {
1123
- expect(kit.querySelector(".depth-sub-row-1")).toBeInTheDocument()
1124
- })
1125
- })
1018
+ });
@@ -7,7 +7,6 @@ examples:
7
7
  - advanced_table_table_props: Table Props
8
8
  - advanced_table_sticky_header_rails: Sticky Header
9
9
  - advanced_table_table_props_sticky_header: Sticky Header for Responsive Table
10
- - advanced_table_pinned_rows_rails: Pinned Rows
11
10
  - advanced_table_beta_sort: Enable Sorting
12
11
  - advanced_table_responsive: Responsive Tables
13
12
  - advanced_table_custom_cell_rails: Custom Components for Cells
@@ -40,11 +39,9 @@ examples:
40
39
  - advanced_table_sort_per_column: Enable Sort By Column
41
40
  - advanced_table_sort_per_column_for_multi_column: Enable Sort By Column (Multi-Column)
42
41
  - advanced_table_custom_sort: Custom Sort
43
- - advanced_table_sort_parent_only: Sort Parent Only
44
42
  - advanced_table_expanded_control: Expanded Control
45
43
  - advanced_table_expand_by_depth: Expand by Depth
46
44
  - advanced_table_subrow_headers: SubRow Headers
47
- - advanced_table_cascade_collapse: Cascade Collapse
48
45
  - advanced_table_collapsible_trail: Collapsible Trail
49
46
  - advanced_table_table_options: Table Options
50
47
  - advanced_table_table_props: Table Props
@@ -48,6 +48,4 @@ export { default as AdvancedTablePaddingControl } from './_advanced_table_paddin
48
48
  export { default as AdvancedTablePaddingControlPerRow } from './_advanced_table_padding_control_per_row.jsx'
49
49
  export { default as AdvancedTableColumnStylingBackground } from './_advanced_table_column_styling_background.jsx'
50
50
  export { default as AdvancedTableColumnStylingBackgroundMulti } from './_advanced_table_column_styling_background_multi.jsx'
51
- export { default as AdvancedTableColumnStylingBackgroundCustom } from './_advanced_table_column_styling_background_custom.jsx'
52
- export { default as AdvancedTableCascadeCollapse } from './_advanced_table_cascade_collapse.jsx'
53
- export { default as AdvancedTableSortParentOnly } from './_advanced_table_sort_parent_only.jsx'
51
+ export { default as AdvancedTableColumnStylingBackgroundCustom } from './_advanced_table_column_styling_background_custom.jsx'