playbook_ui 16.9.0 → 16.10.0.pre.alpha.PLAY3053advancedtablebottompinnedrowsreact17469
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.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/_playbook.scss +2 -0
- data/app/pb_kits/playbook/pb_advanced_table/Components/RegularTableView.tsx +32 -11
- data/app/pb_kits/playbook/pb_advanced_table/Components/TableActionBar.tsx +5 -2
- data/app/pb_kits/playbook/pb_advanced_table/Context/AdvancedTableContext.tsx +27 -2
- data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableState.ts +19 -14
- data/app/pb_kits/playbook/pb_advanced_table/Utilities/CellRendererUtils.tsx +4 -2
- data/app/pb_kits/playbook/pb_advanced_table/Utilities/RowUtils.ts +17 -0
- data/app/pb_kits/playbook/pb_advanced_table/Utilities/StickyLayoutHelper.ts +100 -0
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +38 -71
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +27 -77
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.rb +7 -0
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +128 -12
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table_action_bar.js +31 -9
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pinned_rows.jsx +19 -2
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pinned_rows_react.md +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling.html.erb +4 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling.jsx +6 -2
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling_rails.md +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling_react.md +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header.html.erb +36 -44
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header.jsx +10 -19
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_rails.md +0 -4
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_react.md +3 -5
- data/app/pb_kits/playbook/pb_advanced_table/docs/_playground.json +2 -8
- data/app/pb_kits/playbook/pb_advanced_table/docs/_playground.overrides.json +1 -8
- data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_advanced_table/index.js +20 -29
- data/app/pb_kits/playbook/pb_advanced_table/kit.schema.json +0 -12
- data/app/pb_kits/playbook/pb_advanced_table/table_body.rb +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +2 -1
- data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +16 -2
- data/app/pb_kits/playbook/pb_badge/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_button_toolbar/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_card/card.rb +1 -1
- data/app/pb_kits/playbook/pb_card/kit.schema.json +2 -0
- data/app/pb_kits/playbook/pb_checkbox/kit.schema.json +2 -2
- data/app/pb_kits/playbook/pb_circle_icon_button/kit.schema.json +2 -2
- data/app/pb_kits/playbook/pb_date_picker/_date_picker.scss +6 -0
- data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +19 -2
- data/app/pb_kits/playbook/pb_date_picker/date_picker.html.erb +58 -1
- data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +3 -0
- data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.ts +319 -65
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_asc.html.erb +1 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_asc.jsx +15 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_asc.md +1 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_playground.json +1 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_date_picker/kit.schema.json +9 -1
- data/app/pb_kits/playbook/pb_date_time/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_date_time_stacked/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_dialog/_dialog.scss +54 -1
- data/app/pb_kits/playbook/pb_dialog/_dialog.tsx +21 -5
- data/app/pb_kits/playbook/pb_dialog/_dialog_context.tsx +8 -2
- data/app/pb_kits/playbook/pb_dialog/child_kits/_dialog_header.tsx +1 -1
- data/app/pb_kits/playbook/pb_dialog/dialog.html.erb +5 -1
- data/app/pb_kits/playbook/pb_dialog/dialog.test.jsx +125 -0
- data/app/pb_kits/playbook/pb_dialog/index.js +11 -1
- data/app/pb_kits/playbook/pb_draggable/context/index.tsx +1 -1
- data/app/pb_kits/playbook/pb_draggable/docs/_draggable_event_listeners_rails.md +1 -1
- data/app/pb_kits/playbook/pb_draggable/docs/_draggable_independent_containers.html.erb +35 -0
- data/app/pb_kits/playbook/pb_draggable/docs/_draggable_independent_containers_rails.md +8 -0
- data/app/pb_kits/playbook/pb_draggable/docs/_draggable_multiple_containers_rails.md +3 -1
- data/app/pb_kits/playbook/pb_draggable/docs/_draggable_multiple_containers_react.md +1 -1
- data/app/pb_kits/playbook/pb_draggable/docs/_playground.json +260 -19
- data/app/pb_kits/playbook/pb_draggable/docs/_playground.overrides.json +258 -13
- data/app/pb_kits/playbook/pb_draggable/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_draggable/index.js +10 -3
- data/app/pb_kits/playbook/pb_dropdown/_dropdown.scss +122 -0
- data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +114 -35
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_custom_display_disabled_option.html.erb +93 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_custom_display_disabled_option.jsx +127 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_custom_display_disabled_option.md +1 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_disabled.html.erb +10 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_disabled.jsx +37 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_disabled_option.html.erb +10 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_disabled_option.jsx +37 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_disabled_option.md +1 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_playground.json +150 -237
- data/app/pb_kits/playbook/pb_dropdown/docs/_playground.overrides.json +58 -74
- data/app/pb_kits/playbook/pb_dropdown/docs/example.yml +6 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/index.js +3 -0
- data/app/pb_kits/playbook/pb_dropdown/dropdown.html.erb +5 -4
- data/app/pb_kits/playbook/pb_dropdown/dropdown.rb +6 -1
- data/app/pb_kits/playbook/pb_dropdown/dropdown.test.jsx +96 -0
- data/app/pb_kits/playbook/pb_dropdown/dropdown_container.html.erb +1 -0
- data/app/pb_kits/playbook/pb_dropdown/dropdown_container.rb +2 -0
- data/app/pb_kits/playbook/pb_dropdown/dropdown_option.html.erb +2 -2
- data/app/pb_kits/playbook/pb_dropdown/dropdown_option.rb +27 -2
- data/app/pb_kits/playbook/pb_dropdown/dropdown_trigger.html.erb +4 -2
- data/app/pb_kits/playbook/pb_dropdown/dropdown_trigger.rb +2 -0
- data/app/pb_kits/playbook/pb_dropdown/hooks/useHandleOnKeydown.tsx +25 -5
- data/app/pb_kits/playbook/pb_dropdown/index.js +270 -25
- data/app/pb_kits/playbook/pb_dropdown/keyboard_accessibility.js +19 -10
- data/app/pb_kits/playbook/pb_dropdown/kit.schema.json +8 -0
- data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownContainer.tsx +39 -2
- data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownOption.tsx +15 -4
- data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownTrigger.tsx +22 -13
- data/app/pb_kits/playbook/pb_file_upload/docs/_file_upload_remove_replace.html.erb +66 -0
- data/app/pb_kits/playbook/pb_file_upload/docs/_file_upload_remove_replace.jsx +53 -0
- data/app/pb_kits/playbook/pb_file_upload/docs/_file_upload_remove_replace.md +5 -0
- data/app/pb_kits/playbook/pb_file_upload/docs/_playground.json +2 -1
- data/app/pb_kits/playbook/pb_file_upload/docs/example.yml +3 -1
- data/app/pb_kits/playbook/pb_file_upload/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_file_upload/kit.schema.json +3 -3
- data/app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.tsx +55 -28
- data/app/pb_kits/playbook/pb_filter/Filter/FilterDouble.tsx +4 -1
- data/app/pb_kits/playbook/pb_filter/Filter/FilterSingle.tsx +4 -1
- data/app/pb_kits/playbook/pb_filter/Filter/InteractiveFilter.tsx +277 -0
- data/app/pb_kits/playbook/pb_filter/_filter.scss +88 -1
- data/app/pb_kits/playbook/pb_filter/_filter.tsx +27 -0
- data/app/pb_kits/playbook/pb_filter/docs/_filter_interactive.html.erb +116 -0
- data/app/pb_kits/playbook/pb_filter/docs/_filter_interactive.md +12 -0
- data/app/pb_kits/playbook/pb_filter/docs/_filter_interactive_react.jsx +153 -0
- data/app/pb_kits/playbook/pb_filter/docs/_filter_interactive_react.md +10 -0
- data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.html.erb +1 -1
- data/app/pb_kits/playbook/pb_filter/docs/_playground.json +308 -5
- data/app/pb_kits/playbook/pb_filter/docs/_playground.overrides.json +312 -0
- data/app/pb_kits/playbook/pb_filter/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_filter/docs/index.js +2 -1
- data/app/pb_kits/playbook/pb_filter/filter.html.erb +80 -3
- data/app/pb_kits/playbook/pb_filter/filter.rb +71 -0
- data/app/pb_kits/playbook/pb_filter/filter.test.js +78 -0
- data/app/pb_kits/playbook/pb_filter/index.ts +349 -0
- data/app/pb_kits/playbook/pb_filter/kit.schema.json +94 -29
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_playground.json +210 -14
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_playground.overrides.json +231 -0
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_flex/docs/_playground.json +297 -38
- data/app/pb_kits/playbook/pb_flex/docs/_playground.overrides.json +300 -40
- data/app/pb_kits/playbook/pb_form/docs/_form_with_required_indicator.html.erb +20 -19
- data/app/pb_kits/playbook/pb_form/docs/_playground.json +1 -13
- data/app/pb_kits/playbook/pb_form_group/docs/_playground.json +82 -5
- data/app/pb_kits/playbook/pb_form_group/docs/_playground.overrides.json +91 -0
- data/app/pb_kits/playbook/pb_form_pill/docs/_playground.json +155 -14
- data/app/pb_kits/playbook/pb_form_pill/docs/_playground.overrides.json +147 -0
- data/app/pb_kits/playbook/pb_form_pill/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_full_screen/_full_screen.scss +77 -0
- data/app/pb_kits/playbook/pb_full_screen/_full_screen.tsx +183 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_content_padding.jsx +68 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_content_padding.md +1 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_custom_trigger.jsx +71 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_custom_trigger.md +1 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_default.html.erb +3 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_default.jsx +63 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_default.md +1 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_header_text_styling.jsx +68 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_header_text_styling.md +1 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_sticky_header.jsx +68 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_sticky_header.md +1 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_table_and_filter.jsx +149 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_table_and_filter.md +1 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_playground.json +155 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_playground.overrides.json +137 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/example.yml +14 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/index.js +6 -0
- data/app/pb_kits/playbook/pb_full_screen/full_screen.html.erb +12 -0
- data/app/pb_kits/playbook/pb_full_screen/full_screen.rb +11 -0
- data/app/pb_kits/playbook/pb_full_screen/full_screen.test.jsx +237 -0
- data/app/pb_kits/playbook/pb_full_screen/kit.schema.json +89 -0
- data/app/pb_kits/playbook/pb_full_screen/useFullScreen.ts +15 -0
- data/app/pb_kits/playbook/pb_hashtag/docs/_playground.json +72 -11
- data/app/pb_kits/playbook/pb_hashtag/docs/_playground.overrides.json +75 -0
- data/app/pb_kits/playbook/pb_highlight/docs/_playground.json +75 -4
- data/app/pb_kits/playbook/pb_highlight/docs/_playground.overrides.json +75 -0
- data/app/pb_kits/playbook/pb_home_address_street/docs/_playground.json +138 -12
- data/app/pb_kits/playbook/pb_home_address_street/docs/_playground.overrides.json +162 -0
- data/app/pb_kits/playbook/pb_icon/_icon.tsx +22 -11
- data/app/pb_kits/playbook/pb_icon/docs/_icon_default.jsx +1 -1
- data/app/pb_kits/playbook/pb_icon/docs/_playground.json +66 -41
- data/app/pb_kits/playbook/pb_icon/docs/_playground.overrides.json +85 -27
- data/app/pb_kits/playbook/pb_icon/icon.rb +5 -2
- data/app/pb_kits/playbook/pb_icon/kit.schema.json +3 -5
- data/app/pb_kits/playbook/pb_icon_button/docs/_playground.json +111 -9
- data/app/pb_kits/playbook/pb_icon_button/docs/_playground.overrides.json +131 -0
- data/app/pb_kits/playbook/pb_icon_button/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_icon_circle/docs/_playground.json +92 -7
- data/app/pb_kits/playbook/pb_icon_circle/docs/_playground.overrides.json +108 -0
- data/app/pb_kits/playbook/pb_icon_stat_value/docs/_playground.json +32 -17
- data/app/pb_kits/playbook/pb_icon_stat_value/docs/_playground.overrides.json +81 -8
- data/app/pb_kits/playbook/pb_icon_value/docs/_playground.json +28 -18
- data/app/pb_kits/playbook/pb_icon_value/docs/_playground.overrides.json +58 -9
- data/app/pb_kits/playbook/pb_image/docs/_playground.json +124 -47
- data/app/pb_kits/playbook/pb_image/docs/_playground.overrides.json +122 -47
- data/app/pb_kits/playbook/pb_label_pill/docs/_playground.json +68 -6
- data/app/pb_kits/playbook/pb_label_pill/docs/_playground.overrides.json +85 -0
- data/app/pb_kits/playbook/pb_label_value/docs/_playground.json +59 -36
- data/app/pb_kits/playbook/pb_label_value/docs/_playground.overrides.json +101 -30
- data/app/pb_kits/playbook/pb_layout/docs/_playground.json +216 -10
- data/app/pb_kits/playbook/pb_layout/docs/_playground.overrides.json +188 -0
- data/app/pb_kits/playbook/pb_legend/docs/_playground.json +60 -7
- data/app/pb_kits/playbook/pb_legend/docs/_playground.overrides.json +77 -0
- data/app/pb_kits/playbook/pb_list/docs/_playground.json +165 -17
- data/app/pb_kits/playbook/pb_list/docs/_playground.overrides.json +191 -0
- data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.tsx +3 -1
- data/app/pb_kits/playbook/pb_loading_inline/docs/_loading_inline_color.html.erb +21 -0
- data/app/pb_kits/playbook/pb_loading_inline/docs/_loading_inline_color.jsx +55 -0
- data/app/pb_kits/playbook/pb_loading_inline/docs/_loading_inline_color.md +1 -0
- data/app/pb_kits/playbook/pb_loading_inline/docs/_playground.json +28 -1
- data/app/pb_kits/playbook/pb_loading_inline/docs/_playground.overrides.json +27 -1
- data/app/pb_kits/playbook/pb_loading_inline/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_loading_inline/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_loading_inline/kit.schema.json +18 -2
- data/app/pb_kits/playbook/pb_loading_inline/loading_inline.html.erb +1 -1
- data/app/pb_kits/playbook/pb_loading_inline/loading_inline.rb +3 -0
- data/app/pb_kits/playbook/pb_map/docs/_playground.json +164 -7
- data/app/pb_kits/playbook/pb_map/docs/_playground.overrides.json +180 -0
- data/app/pb_kits/playbook/pb_message/docs/_playground.json +114 -8
- data/app/pb_kits/playbook/pb_message/docs/_playground.overrides.json +144 -0
- data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.scss +7 -7
- data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +127 -12
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_playground.json +310 -61
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_playground.overrides.json +327 -44
- data/app/pb_kits/playbook/pb_multiple_users/docs/_playground.json +35 -6
- data/app/pb_kits/playbook/pb_multiple_users/docs/_playground.overrides.json +35 -6
- data/app/pb_kits/playbook/pb_multiple_users_stacked/docs/_playground.json +32 -21
- data/app/pb_kits/playbook/pb_multiple_users_stacked/docs/_playground.overrides.json +32 -21
- data/app/pb_kits/playbook/pb_nav/docs/_playground.json +546 -18
- data/app/pb_kits/playbook/pb_nav/docs/_playground.overrides.json +561 -14
- data/app/pb_kits/playbook/pb_online_status/docs/_playground.json +18 -23
- data/app/pb_kits/playbook/pb_online_status/docs/_playground.overrides.json +18 -14
- data/app/pb_kits/playbook/pb_overlay/docs/_playground.json +133 -14
- data/app/pb_kits/playbook/pb_overlay/docs/_playground.overrides.json +154 -0
- data/app/pb_kits/playbook/pb_pagination/docs/_playground.json +35 -14
- data/app/pb_kits/playbook/pb_pagination/docs/_playground.overrides.json +35 -14
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_breached.html.erb +1 -1
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_common.html.erb +1 -1
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_meter_settings.html.erb +5 -5
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_strength_change.html.erb +1 -1
- data/app/pb_kits/playbook/pb_passphrase/docs/_playground.json +129 -14
- data/app/pb_kits/playbook/pb_passphrase/docs/_playground.overrides.json +148 -0
- data/app/pb_kits/playbook/pb_passphrase/index.ts +58 -0
- data/app/pb_kits/playbook/pb_passphrase/kit.schema.json +13 -0
- data/app/pb_kits/playbook/pb_passphrase/passphrase.html.erb +70 -1
- data/app/pb_kits/playbook/pb_passphrase/passphrase.rb +70 -0
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_playground.json +378 -4
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_playground.overrides.json +245 -0
- data/app/pb_kits/playbook/pb_pb_bar_graph/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_playground.json +215 -4
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_playground.overrides.json +224 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_playground.json +149 -4
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_playground.overrides.json +162 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_playground.json +392 -4
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_playground.overrides.json +212 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_person/docs/_playground.json +27 -11
- data/app/pb_kits/playbook/pb_person/docs/_playground.overrides.json +34 -9
- data/app/pb_kits/playbook/pb_person_contact/docs/_playground.json +72 -21
- data/app/pb_kits/playbook/pb_person_contact/docs/_playground.overrides.json +71 -21
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_playground.json +179 -21
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_playground.overrides.json +180 -0
- data/app/pb_kits/playbook/pb_phone_number_input/kit.schema.json +2 -2
- data/app/pb_kits/playbook/pb_pill/docs/_playground.json +16 -49
- data/app/pb_kits/playbook/pb_pill/docs/_playground.overrides.json +33 -30
- data/app/pb_kits/playbook/pb_popover/_popover.scss +27 -0
- data/app/pb_kits/playbook/pb_popover/_popover.tsx +49 -16
- data/app/pb_kits/playbook/pb_popover/docs/_playground.json +155 -46
- data/app/pb_kits/playbook/pb_popover/docs/_playground.overrides.json +162 -30
- data/app/pb_kits/playbook/pb_popover/docs/_popover_list.jsx +9 -11
- data/app/pb_kits/playbook/pb_popover/index.ts +35 -4
- data/app/pb_kits/playbook/pb_popover/popover.html.erb +5 -2
- data/app/pb_kits/playbook/pb_popover/popover.test.js +212 -5
- data/app/pb_kits/playbook/pb_progress_pills/docs/_playground.json +26 -13
- data/app/pb_kits/playbook/pb_progress_pills/docs/_playground.overrides.json +24 -6
- data/app/pb_kits/playbook/pb_progress_simple/docs/_playground.json +50 -17
- data/app/pb_kits/playbook/pb_progress_simple/docs/_playground.overrides.json +41 -7
- data/app/pb_kits/playbook/pb_progress_step/docs/_playground.json +197 -10
- data/app/pb_kits/playbook/pb_progress_step/docs/_playground.overrides.json +189 -0
- data/app/pb_kits/playbook/pb_radio/docs/_playground.json +80 -6
- data/app/pb_kits/playbook/pb_radio/docs/_playground.overrides.json +82 -3
- data/app/pb_kits/playbook/pb_radio/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_rich_text_editor/TipTap/ToolbarDropdown.tsx +12 -24
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_playground.json +152 -22
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_playground.overrides.json +153 -0
- data/app/pb_kits/playbook/pb_select/_select.tsx +1 -0
- data/app/pb_kits/playbook/pb_select/docs/_playground.json +65 -19
- data/app/pb_kits/playbook/pb_select/docs/_playground.overrides.json +54 -14
- data/app/pb_kits/playbook/pb_select/kit.schema.json +2 -2
- data/app/pb_kits/playbook/pb_select/select.html.erb +1 -1
- data/app/pb_kits/playbook/pb_selectable_card/docs/_playground.json +75 -82
- data/app/pb_kits/playbook/pb_selectable_card/docs/_playground.overrides.json +76 -76
- data/app/pb_kits/playbook/pb_selectable_card/kit.schema.json +2 -2
- data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_playground.json +105 -15
- data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_playground.overrides.json +106 -0
- data/app/pb_kits/playbook/pb_selectable_card_icon/kit.schema.json +2 -2
- data/app/pb_kits/playbook/pb_selectable_icon/docs/_playground.json +37 -21
- data/app/pb_kits/playbook/pb_selectable_icon/docs/_playground.overrides.json +35 -18
- data/app/pb_kits/playbook/pb_selectable_icon/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_selectable_list/docs/_playground.json +174 -12
- data/app/pb_kits/playbook/pb_selectable_list/docs/_playground.overrides.json +162 -10
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_playground.json +68 -6
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_playground.overrides.json +80 -0
- data/app/pb_kits/playbook/pb_source/docs/_playground.json +67 -6
- data/app/pb_kits/playbook/pb_source/docs/_playground.overrides.json +80 -0
- data/app/pb_kits/playbook/pb_star_rating/docs/_playground.json +28 -53
- data/app/pb_kits/playbook/pb_star_rating/docs/_playground.overrides.json +33 -32
- data/app/pb_kits/playbook/pb_star_rating/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_stat_change/docs/_playground.json +15 -9
- data/app/pb_kits/playbook/pb_stat_change/docs/_playground.overrides.json +15 -5
- data/app/pb_kits/playbook/pb_stat_value/docs/_playground.json +19 -9
- data/app/pb_kits/playbook/pb_stat_value/docs/_playground.overrides.json +18 -7
- data/app/pb_kits/playbook/pb_stat_value/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_table/docs/_playground.json +223 -21
- data/app/pb_kits/playbook/pb_table/docs/_playground.overrides.json +176 -0
- data/app/pb_kits/playbook/pb_text_input/docs/_playground.json +44 -5
- data/app/pb_kits/playbook/pb_text_input/docs/_playground.overrides.json +39 -3
- data/app/pb_kits/playbook/pb_text_input/kit.schema.json +3 -3
- data/app/pb_kits/playbook/pb_textarea/docs/_playground.json +35 -3
- data/app/pb_kits/playbook/pb_textarea/docs/_playground.overrides.json +28 -3
- data/app/pb_kits/playbook/pb_textarea/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_time/docs/_playground.json +28 -14
- data/app/pb_kits/playbook/pb_time/docs/_playground.overrides.json +26 -13
- data/app/pb_kits/playbook/pb_time_picker/_time_picker.scss +42 -0
- data/app/pb_kits/playbook/pb_time_picker/_time_picker.tsx +309 -167
- data/app/pb_kits/playbook/pb_time_picker/docs/_playground.json +36 -30
- data/app/pb_kits/playbook/pb_time_picker/docs/_playground.overrides.json +31 -26
- data/app/pb_kits/playbook/pb_time_picker/index.ts +263 -11
- data/app/pb_kits/playbook/pb_time_range_inline/docs/_playground.json +63 -9
- data/app/pb_kits/playbook/pb_time_range_inline/docs/_playground.overrides.json +69 -0
- data/app/pb_kits/playbook/pb_time_stacked/docs/_playground.json +30 -9
- data/app/pb_kits/playbook/pb_time_stacked/docs/_playground.overrides.json +30 -9
- data/app/pb_kits/playbook/pb_timeline/docs/_playground.json +178 -6
- data/app/pb_kits/playbook/pb_timeline/docs/_playground.overrides.json +165 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_playground.json +36 -21
- data/app/pb_kits/playbook/pb_timestamp/docs/_playground.overrides.json +35 -20
- data/app/pb_kits/playbook/pb_toggle/docs/_playground.json +24 -13
- data/app/pb_kits/playbook/pb_toggle/docs/_playground.overrides.json +20 -12
- data/app/pb_kits/playbook/pb_toggle/kit.schema.json +2 -2
- data/app/pb_kits/playbook/pb_tooltip/docs/_playground.json +42 -23
- data/app/pb_kits/playbook/pb_tooltip/docs/_playground.overrides.json +35 -15
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.tsx +109 -3
- data/app/pb_kits/playbook/pb_typeahead/docs/_playground.json +124 -44
- data/app/pb_kits/playbook/pb_typeahead/docs/_playground.overrides.json +98 -31
- data/app/pb_kits/playbook/pb_typeahead/kit.schema.json +8 -2
- data/app/pb_kits/playbook/pb_user/docs/_playground.json +33 -15
- data/app/pb_kits/playbook/pb_user/docs/_playground.overrides.json +32 -15
- data/app/pb_kits/playbook/pb_user_badge/docs/_playground.json +26 -12
- data/app/pb_kits/playbook/pb_user_badge/docs/_playground.overrides.json +26 -9
- data/app/pb_kits/playbook/pb_weekday_stacked/docs/_playground.json +32 -5
- data/app/pb_kits/playbook/pb_weekday_stacked/docs/_playground.overrides.json +30 -4
- data/app/pb_kits/playbook/tokens/_colors.scss +5 -1
- data/app/pb_kits/playbook/utilities/_border.scss +262 -0
- data/app/pb_kits/playbook/utilities/floatingPortalHosts.ts +565 -0
- data/app/pb_kits/playbook/utilities/global-props.schema.json +98 -0
- data/app/pb_kits/playbook/utilities/globalProps.ts +83 -1
- data/app/pb_kits/playbook/utilities/icons/allicons.tsx +38 -0
- data/app/pb_kits/playbook/utilities/test/globalProps/border.test.js +66 -0
- data/dist/chunks/{_pb_line_graph-B870s9g1.js → _pb_line_graph-C2H9vs_8.js} +1 -1
- data/dist/chunks/_typeahead-Du8dRYaM.js +5 -0
- data/dist/chunks/globalProps-DIAZ03-L.js +6 -0
- data/dist/chunks/lib-ZHDedNfP.js +29 -0
- data/dist/chunks/time_picker_helper-CVMV9ync.js +1 -0
- data/dist/chunks/vendor.js +5 -5
- data/dist/menu.yml +7 -0
- data/dist/playbook-rails-react-bindings.js +1 -1
- data/dist/playbook-rails.js +1 -1
- data/dist/playbook.css +1 -1
- data/lib/playbook/border.rb +87 -0
- data/lib/playbook/classnames.rb +1 -0
- data/lib/playbook/forms/builder/form_field_builder.rb +2 -0
- data/lib/playbook/kit_base.rb +2 -0
- data/lib/playbook/pb_forms_global_props_helper.rb +15 -0
- data/lib/playbook/version.rb +2 -2
- metadata +93 -9
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_fullscreen.jsx +0 -92
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_fullscreen.md +0 -3
- data/dist/chunks/_typeahead-jMN-A0_C.js +0 -5
- data/dist/chunks/globalProps-BInmh-C7.js +0 -6
- data/dist/chunks/lib-CVYIIiwI.js +0 -29
- data/dist/chunks/time_picker_helper-Bx8nzyM8.js +0 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 47abbd6021f5f2e78c6eec2c21e748448cbdc2a3b5699f97914e9dec865836ea
|
|
4
|
+
data.tar.gz: 1e3542fd598d4209193fc2f6f1357d06ab1fffcb17fef11b0d84aa322663fb7b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: '02951b7c75b1fc99bffa8893be7def930da61e5f98f1ecda05df882085a94ce56b07ba45131f0fe96f8e14b48db98d5ae414c68de8f05b439396d4735c743b00'
|
|
7
|
+
data.tar.gz: ab82942a91594a7e180f52942659480309c98210bce7cb630a7ca8308f3dad9ca977859088147cfc039716362af2af0dc18f4fe8c5fd2f064c55b3d15a9f3ca4
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
@import 'pb_form/form';
|
|
37
37
|
@import 'pb_form_group/form_group';
|
|
38
38
|
@import 'pb_form_pill/form_pill';
|
|
39
|
+
@import 'pb_full_screen/full_screen';
|
|
39
40
|
@import 'pb_hashtag/hashtag';
|
|
40
41
|
@import 'pb_highlight/highlight';
|
|
41
42
|
@import 'pb_home_address_street/home_address_street';
|
|
@@ -128,3 +129,4 @@
|
|
|
128
129
|
@import 'utilities/vertical_align';
|
|
129
130
|
@import 'utilities/height';
|
|
130
131
|
@import 'utilities/gap';
|
|
132
|
+
@import 'utilities/border';
|
|
@@ -6,7 +6,7 @@ import { GenericObject } from "../../types"
|
|
|
6
6
|
import { isChrome } from "../Utilities/BrowserCheck"
|
|
7
7
|
import { findColumnDefByAccessor } from "../Utilities/ColumnStylingHelper"
|
|
8
8
|
import { playbookColumnLayoutStylesFromMeta } from "../Utilities/ColumnLayoutHelper"
|
|
9
|
-
import { getRowColorClass, shouldShowLoadingIndicator } from "../Utilities/RowUtils"
|
|
9
|
+
import { getFontWeight, getRowColorClass, getRowStyle, shouldShowLoadingIndicator } from "../Utilities/RowUtils"
|
|
10
10
|
|
|
11
11
|
import LoadingInline from "../../pb_loading_inline/_loading_inline"
|
|
12
12
|
import Checkbox from "../../pb_checkbox/_checkbox"
|
|
@@ -81,6 +81,7 @@ const TableCellRenderer = ({
|
|
|
81
81
|
|
|
82
82
|
const paddingValue = colDef?.columnStyling?.cellPadding ?? customRowStyle?.cellPadding
|
|
83
83
|
const paddingClass = paddingValue ? `p_${paddingValue}` : undefined
|
|
84
|
+
const fontWeight = getFontWeight(customRowStyle)
|
|
84
85
|
|
|
85
86
|
return (
|
|
86
87
|
<td
|
|
@@ -103,6 +104,7 @@ const TableCellRenderer = ({
|
|
|
103
104
|
: undefined,
|
|
104
105
|
backgroundColor: cellBackgroundColor || (i === 0 && customRowStyle?.backgroundColor),
|
|
105
106
|
color: cellFontColor || customRowStyle?.fontColor,
|
|
107
|
+
fontWeight,
|
|
106
108
|
}}
|
|
107
109
|
>
|
|
108
110
|
{collapsibleTrail && i === 0 && row.depth > 0 && renderCollapsibleTrail(row.depth)}
|
|
@@ -136,6 +138,7 @@ export const RegularTableView = ({
|
|
|
136
138
|
pinnedRows,
|
|
137
139
|
headerHeight,
|
|
138
140
|
rowHeight,
|
|
141
|
+
actionBarHeight,
|
|
139
142
|
rowStyling = [],
|
|
140
143
|
sampleRowRef,
|
|
141
144
|
} = useContext(AdvancedTableContext)
|
|
@@ -159,22 +162,29 @@ export const RegularTableView = ({
|
|
|
159
162
|
);
|
|
160
163
|
|
|
161
164
|
// Row pinning
|
|
162
|
-
function PinnedRow({ row }: { row: Row<any
|
|
163
|
-
const customRowStyle = rowStyling
|
|
165
|
+
function PinnedRow({ row, position }: { row: Row<any>; position: 'top' | 'bottom' }) {
|
|
166
|
+
const customRowStyle = getRowStyle(rowStyling, row);
|
|
167
|
+
const bottomRowsCount = table.getBottomRows().length;
|
|
168
|
+
|
|
164
169
|
return (
|
|
165
170
|
<tr
|
|
166
|
-
className={classnames(
|
|
167
|
-
|
|
168
|
-
)}
|
|
171
|
+
className={classnames('pinned-row', {
|
|
172
|
+
'pinned-row-bottom': position === 'bottom',
|
|
173
|
+
})}
|
|
169
174
|
style={{
|
|
170
175
|
backgroundColor: customRowStyle?.backgroundColor ? customRowStyle?.backgroundColor : 'white',
|
|
171
176
|
color: customRowStyle?.fontColor,
|
|
172
177
|
position: 'sticky',
|
|
173
178
|
top:
|
|
174
|
-
|
|
175
|
-
|
|
179
|
+
position === 'top'
|
|
180
|
+
? `${row.getPinnedIndex() * rowHeight + headerHeight + actionBarHeight}px`
|
|
181
|
+
: undefined,
|
|
182
|
+
bottom:
|
|
183
|
+
position === 'bottom'
|
|
184
|
+
? `${(bottomRowsCount - 1 - row.getPinnedIndex()) * rowHeight}px`
|
|
176
185
|
: undefined,
|
|
177
|
-
zIndex: '3'
|
|
186
|
+
zIndex: '3',
|
|
187
|
+
fontWeight: getFontWeight(customRowStyle),
|
|
178
188
|
}}
|
|
179
189
|
>
|
|
180
190
|
<TableCellRenderer
|
|
@@ -197,6 +207,7 @@ export const RegularTableView = ({
|
|
|
197
207
|
<>
|
|
198
208
|
{pinnedRows && table.getTopRows().map((row: Row<GenericObject>) => (
|
|
199
209
|
<PinnedRow key={row.id}
|
|
210
|
+
position="top"
|
|
200
211
|
row={row}
|
|
201
212
|
/>
|
|
202
213
|
))}
|
|
@@ -204,7 +215,7 @@ export const RegularTableView = ({
|
|
|
204
215
|
const isFirstChildofSubrow = row.depth > 0 && row.index === 0;
|
|
205
216
|
const numberOfColumns = table.getAllFlatColumns().length;
|
|
206
217
|
const isFirstRegularRow = rowIndex === 0 && !row.getIsPinned();
|
|
207
|
-
const customRowStyle = rowStyling
|
|
218
|
+
const customRowStyle = getRowStyle(rowStyling, row);
|
|
208
219
|
|
|
209
220
|
// Use functions from RowUtils for consistent cell coloring
|
|
210
221
|
const rowColor = getRowColorClass(row, inlineRowLoading || false);
|
|
@@ -227,7 +238,11 @@ export const RegularTableView = ({
|
|
|
227
238
|
className={`${rowColor} ${row.depth > 0 ? `depth-sub-row-${row.depth}` : ""}`}
|
|
228
239
|
id={`${row.index}-${row.id}-${row.depth}-row`}
|
|
229
240
|
ref={isFirstRegularRow ? sampleRowRef : null}
|
|
230
|
-
style={{
|
|
241
|
+
style={{
|
|
242
|
+
backgroundColor: customRowStyle?.backgroundColor,
|
|
243
|
+
color: customRowStyle?.fontColor,
|
|
244
|
+
fontWeight: getFontWeight(customRowStyle),
|
|
245
|
+
}}
|
|
231
246
|
>
|
|
232
247
|
{/* Render custom checkbox column when we want selectableRows for non-expanding tables */}
|
|
233
248
|
{selectableRows && !hasAnySubRows && (
|
|
@@ -266,6 +281,12 @@ export const RegularTableView = ({
|
|
|
266
281
|
</React.Fragment>
|
|
267
282
|
);
|
|
268
283
|
})}
|
|
284
|
+
{pinnedRows && table.getBottomRows().map((row: Row<GenericObject>) => (
|
|
285
|
+
<PinnedRow key={row.id}
|
|
286
|
+
position="bottom"
|
|
287
|
+
row={row}
|
|
288
|
+
/>
|
|
289
|
+
))}
|
|
269
290
|
</>
|
|
270
291
|
);
|
|
271
292
|
}
|
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
showActionBar,
|
|
18
18
|
hideActionBar,
|
|
19
19
|
} from "../Utilities/ActionBarAnimationHelper";
|
|
20
|
+
import { scheduleStickyActionBarHeightUpdate } from "../Utilities/StickyLayoutHelper";
|
|
20
21
|
import { GenericObject } from "../../types";
|
|
21
22
|
|
|
22
23
|
interface TableActionBarProps {
|
|
@@ -39,7 +40,7 @@ const TableActionBar: React.FC<TableActionBarProps> = ({
|
|
|
39
40
|
type = "row-selection",
|
|
40
41
|
}) => {
|
|
41
42
|
const cardRef = useRef(null);
|
|
42
|
-
const { table, columnVisibilityControl, columnDefinitions } =
|
|
43
|
+
const { table, columnVisibilityControl, columnDefinitions, tableContainerRef } =
|
|
43
44
|
useContext(AdvancedTableContext);
|
|
44
45
|
|
|
45
46
|
// ----------- Column visibility logic -----------
|
|
@@ -131,8 +132,10 @@ const TableActionBar: React.FC<TableActionBarProps> = ({
|
|
|
131
132
|
} else {
|
|
132
133
|
hideActionBar(cardRef.current);
|
|
133
134
|
}
|
|
135
|
+
|
|
136
|
+
scheduleStickyActionBarHeightUpdate(tableContainerRef?.current ?? null);
|
|
134
137
|
}
|
|
135
|
-
}, [isVisible, type]);
|
|
138
|
+
}, [isVisible, type, tableContainerRef]);
|
|
136
139
|
|
|
137
140
|
const [showPopover, setShowPopover] = useState(false)
|
|
138
141
|
|
|
@@ -4,6 +4,7 @@ import { useVirtualizer } from '@tanstack/react-virtual';
|
|
|
4
4
|
import { Row } from "@tanstack/react-table";
|
|
5
5
|
import { GenericObject } from "../../types";
|
|
6
6
|
import { getRowHeightEstimate } from '../Utilities/TableContainerStyles';
|
|
7
|
+
import { measureElementHeight } from '../Utilities/StickyLayoutHelper';
|
|
7
8
|
|
|
8
9
|
const AdvancedTableContext = createContext<any>({});
|
|
9
10
|
|
|
@@ -30,8 +31,11 @@ export const AdvancedTableProvider = ({ children, ...props }: {
|
|
|
30
31
|
|
|
31
32
|
const [headerHeight, setHeaderHeight] = useState(44);
|
|
32
33
|
const [rowHeight, setRowHeight] = useState(38);
|
|
34
|
+
const [actionBarHeight, setActionBarHeight] = useState(0);
|
|
33
35
|
|
|
34
36
|
const measureHeights = useCallback(() => {
|
|
37
|
+
const wrapper = (props.tableContainerRef?.current || tableContainerRef.current) as HTMLElement | null;
|
|
38
|
+
|
|
35
39
|
if (headerRef.current) {
|
|
36
40
|
const headerElement = headerRef.current as HTMLElement;
|
|
37
41
|
const headerRect = headerElement.getBoundingClientRect();
|
|
@@ -45,7 +49,21 @@ export const AdvancedTableProvider = ({ children, ...props }: {
|
|
|
45
49
|
setRowHeight(rowRect.height);
|
|
46
50
|
}
|
|
47
51
|
}
|
|
48
|
-
|
|
52
|
+
|
|
53
|
+
if (wrapper) {
|
|
54
|
+
const actionBar = wrapper.querySelector(
|
|
55
|
+
".row-selection-actions-card.is-visible, .row-selection-actions-card.show-action-card"
|
|
56
|
+
) as HTMLElement | null;
|
|
57
|
+
const measuredActionBarHeight = actionBar
|
|
58
|
+
? measureElementHeight(actionBar)
|
|
59
|
+
: 0;
|
|
60
|
+
setActionBarHeight(measuredActionBarHeight);
|
|
61
|
+
wrapper.style.setProperty(
|
|
62
|
+
"--advanced-table-action-bar-height",
|
|
63
|
+
`${measuredActionBarHeight}px`
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
}, [props.tableContainerRef]);
|
|
49
67
|
|
|
50
68
|
useEffect(() => {
|
|
51
69
|
const resizeObserver = new ResizeObserver(() => {
|
|
@@ -56,6 +74,12 @@ export const AdvancedTableProvider = ({ children, ...props }: {
|
|
|
56
74
|
resizeObserver.observe(headerRef.current);
|
|
57
75
|
}
|
|
58
76
|
|
|
77
|
+
const wrapper = (props.tableContainerRef?.current || tableContainerRef.current) as HTMLElement | null;
|
|
78
|
+
const actionBar = wrapper?.querySelector(".row-selection-actions-card");
|
|
79
|
+
if (actionBar) {
|
|
80
|
+
resizeObserver.observe(actionBar);
|
|
81
|
+
}
|
|
82
|
+
|
|
59
83
|
if (sampleRowRef.current) {
|
|
60
84
|
resizeObserver.observe(sampleRowRef.current);
|
|
61
85
|
}
|
|
@@ -72,7 +96,7 @@ export const AdvancedTableProvider = ({ children, ...props }: {
|
|
|
72
96
|
|
|
73
97
|
useEffect(() => {
|
|
74
98
|
measureHeights();
|
|
75
|
-
}, [table?.getRowModel().rows.length, headerGroupCount, measureHeights]);
|
|
99
|
+
}, [table?.getRowModel().rows.length, headerGroupCount, props.isActionBarVisible, measureHeights]);
|
|
76
100
|
|
|
77
101
|
|
|
78
102
|
// Create a flattened data array that includes ALL components for virtualization
|
|
@@ -202,6 +226,7 @@ export const AdvancedTableProvider = ({ children, ...props }: {
|
|
|
202
226
|
keepPinnedRows: props.keepPinnedRows,
|
|
203
227
|
headerHeight,
|
|
204
228
|
rowHeight,
|
|
229
|
+
actionBarHeight,
|
|
205
230
|
headerRef,
|
|
206
231
|
sampleRowRef,
|
|
207
232
|
measureHeights,
|
|
@@ -39,7 +39,7 @@ interface UseTableStateProps {
|
|
|
39
39
|
tableOptions?: GenericObject;
|
|
40
40
|
onRowSelectionChange?: (arg: RowSelectionState) => void;
|
|
41
41
|
columnVisibilityControl?: GenericObject;
|
|
42
|
-
rowStyling?: GenericObject;
|
|
42
|
+
rowStyling?: GenericObject[];
|
|
43
43
|
inlineRowLoading?: boolean;
|
|
44
44
|
sortParentOnly?: boolean;
|
|
45
45
|
}
|
|
@@ -72,6 +72,7 @@ export function useTableState({
|
|
|
72
72
|
const [localColumnVisibility, setLocalColumnVisibility] = useState({});
|
|
73
73
|
const [localRowPinning, setLocalRowPinning] = useState<RowPinningState>({
|
|
74
74
|
top: [],
|
|
75
|
+
bottom: [],
|
|
75
76
|
});
|
|
76
77
|
// Manage local state to preserve current page index when inlineRowLoading is enabled so it does not boot table to page 1
|
|
77
78
|
// We can extend this for more usecases, but for now scoping it only for inlineRowLoading
|
|
@@ -150,7 +151,7 @@ export function useTableState({
|
|
|
150
151
|
|
|
151
152
|
return columnStructure;
|
|
152
153
|
}) || [];
|
|
153
|
-
}, [columnHelper, onRowToggleClick, selectableRows]);
|
|
154
|
+
}, [columnHelper, onRowToggleClick, rowStyling, selectableRows]);
|
|
154
155
|
|
|
155
156
|
const columns = useMemo(() => buildColumns(columnDefinitions), [buildColumns, columnDefinitions]);
|
|
156
157
|
|
|
@@ -235,22 +236,26 @@ export function useTableState({
|
|
|
235
236
|
// Handle row pinning changes
|
|
236
237
|
useEffect(() => {
|
|
237
238
|
const topPins = pinnedRows?.value?.top ?? [];
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
return;
|
|
241
|
-
}
|
|
239
|
+
const bottomPins = pinnedRows?.value?.bottom ?? [];
|
|
240
|
+
|
|
242
241
|
const rows = table.getRowModel().rows;
|
|
243
242
|
const collectAllDescendantIds = (subs: Row<GenericObject>[]): string[] =>
|
|
244
243
|
subs.flatMap(r => [r.id, ...collectAllDescendantIds(r.subRows)]);
|
|
245
|
-
const
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
244
|
+
const expandPins = (ids: string[]): string[] => {
|
|
245
|
+
const allPinned: string[] = [];
|
|
246
|
+
ids.forEach(id => {
|
|
247
|
+
const parent = rows.find(r => r.id === id && r.depth === 0);
|
|
248
|
+
if (parent) {
|
|
249
|
+
allPinned.push(parent.id, ...collectAllDescendantIds(parent.subRows));
|
|
250
|
+
}
|
|
251
|
+
});
|
|
252
|
+
return allPinned;
|
|
253
|
+
};
|
|
254
|
+
onRowPinningChange({
|
|
255
|
+
top: expandPins(topPins),
|
|
256
|
+
bottom: expandPins(bottomPins),
|
|
251
257
|
});
|
|
252
|
-
|
|
253
|
-
}, [table, pinnedRows?.value?.top?.join(',')]);
|
|
258
|
+
}, [table, pinnedRows?.value?.top?.join(','), pinnedRows?.value?.bottom?.join(',')]);
|
|
254
259
|
|
|
255
260
|
// Set pagination state when pagination is enabled
|
|
256
261
|
useEffect(() => {
|
|
@@ -2,6 +2,7 @@ import React from "react";
|
|
|
2
2
|
import { Row, Getter } from "@tanstack/react-table";
|
|
3
3
|
import { GenericObject } from "../../types";
|
|
4
4
|
import { CustomCell } from "../Components/CustomCell";
|
|
5
|
+
import { getRowStyle } from "./RowUtils";
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Creates a cell render function for table columns
|
|
@@ -18,7 +19,7 @@ export const createCellFunction = (
|
|
|
18
19
|
isFirstColumn?: boolean,
|
|
19
20
|
onRowToggleClick?: (row: Row<GenericObject>) => void,
|
|
20
21
|
selectableRows?: boolean,
|
|
21
|
-
rowStyling?: GenericObject
|
|
22
|
+
rowStyling?: GenericObject[]
|
|
22
23
|
) => {
|
|
23
24
|
// Add display name to the returned function
|
|
24
25
|
const cellRenderer = ({
|
|
@@ -29,7 +30,7 @@ export const createCellFunction = (
|
|
|
29
30
|
getValue: Getter<string>
|
|
30
31
|
}) => {
|
|
31
32
|
const rowData = row.original;
|
|
32
|
-
const customStyle = rowStyling
|
|
33
|
+
const customStyle = getRowStyle(rowStyling, row);
|
|
33
34
|
|
|
34
35
|
if (isFirstColumn) {
|
|
35
36
|
switch (row.depth) {
|
|
@@ -52,6 +53,7 @@ export const createCellFunction = (
|
|
|
52
53
|
return accessorValue ? (
|
|
53
54
|
<CustomCell
|
|
54
55
|
customRenderer={customRenderer}
|
|
56
|
+
customStyle={customStyle}
|
|
55
57
|
onRowToggleClick={onRowToggleClick}
|
|
56
58
|
row={row}
|
|
57
59
|
selectableRows={selectableRows}
|
|
@@ -36,6 +36,23 @@ export const shouldShowLoadingIndicator = (
|
|
|
36
36
|
(row.depth < cellAccessorsLength);
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
+
export const getRowStyle = (
|
|
40
|
+
rowStyling: GenericObject[] | undefined,
|
|
41
|
+
row: Row<GenericObject>
|
|
42
|
+
) => {
|
|
43
|
+
const rowId = row.original?.id ?? row.id
|
|
44
|
+
if (rowId == null) return
|
|
45
|
+
|
|
46
|
+
return rowStyling?.find((style: GenericObject) => (
|
|
47
|
+
String(style?.rowId) === String(rowId)
|
|
48
|
+
))
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export const getFontWeight = (rowStyle?: GenericObject) => {
|
|
52
|
+
if (rowStyle?.fontWeight === "bold") return 700
|
|
53
|
+
if (rowStyle?.fontWeight === "regular") return 400
|
|
54
|
+
}
|
|
55
|
+
|
|
39
56
|
/**
|
|
40
57
|
* Creates a virtual item style object for virtualized rows
|
|
41
58
|
*/
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
const VISIBLE_ACTION_BAR_SELECTOR =
|
|
2
|
+
".row-selection-actions-card.is-visible, .row-selection-actions-card.show-action-card";
|
|
3
|
+
|
|
4
|
+
const ACTION_BAR_HEIGHT_TRANSITION_MS = 350;
|
|
5
|
+
|
|
6
|
+
export const measureElementHeight = (element: HTMLElement): number => {
|
|
7
|
+
const { height: rectHeight } = element.getBoundingClientRect();
|
|
8
|
+
const scrollHeight = element.scrollHeight;
|
|
9
|
+
const offsetHeight = element.offsetHeight;
|
|
10
|
+
|
|
11
|
+
return Math.ceil(Math.max(rectHeight, scrollHeight, offsetHeight));
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export const updateStickyActionBarHeight = (
|
|
15
|
+
advancedTableWrapper: HTMLElement | null
|
|
16
|
+
): number => {
|
|
17
|
+
if (!advancedTableWrapper) return 0;
|
|
18
|
+
|
|
19
|
+
const actionBar = advancedTableWrapper.querySelector(
|
|
20
|
+
VISIBLE_ACTION_BAR_SELECTOR
|
|
21
|
+
) as HTMLElement | null;
|
|
22
|
+
|
|
23
|
+
if (!actionBar) {
|
|
24
|
+
advancedTableWrapper.style.setProperty(
|
|
25
|
+
"--advanced-table-action-bar-height",
|
|
26
|
+
"0px"
|
|
27
|
+
);
|
|
28
|
+
return 0;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const actionBarHeight = measureElementHeight(actionBar);
|
|
32
|
+
|
|
33
|
+
advancedTableWrapper.style.setProperty(
|
|
34
|
+
"--advanced-table-action-bar-height",
|
|
35
|
+
`${actionBarHeight}px`
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
return actionBarHeight;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export const scheduleStickyActionBarHeightUpdate = (
|
|
42
|
+
advancedTableWrapper: HTMLElement | null
|
|
43
|
+
): void => {
|
|
44
|
+
if (!advancedTableWrapper) return;
|
|
45
|
+
|
|
46
|
+
updateStickyActionBarHeight(advancedTableWrapper);
|
|
47
|
+
|
|
48
|
+
requestAnimationFrame(() => {
|
|
49
|
+
updateStickyActionBarHeight(advancedTableWrapper);
|
|
50
|
+
requestAnimationFrame(() => {
|
|
51
|
+
updateStickyActionBarHeight(advancedTableWrapper);
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
window.setTimeout(() => {
|
|
56
|
+
updateStickyActionBarHeight(advancedTableWrapper);
|
|
57
|
+
}, ACTION_BAR_HEIGHT_TRANSITION_MS);
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export const updateStickyHeaderRowHeights = (
|
|
61
|
+
advancedTableWrapper: HTMLElement | null
|
|
62
|
+
): void => {
|
|
63
|
+
if (!advancedTableWrapper) return;
|
|
64
|
+
|
|
65
|
+
const table = advancedTableWrapper.querySelector("table.pb_table");
|
|
66
|
+
const thead = table?.querySelector("thead");
|
|
67
|
+
if (!thead) return;
|
|
68
|
+
|
|
69
|
+
const rows = Array.from(thead.querySelectorAll("tr"));
|
|
70
|
+
let totalHeight = 0;
|
|
71
|
+
|
|
72
|
+
rows.forEach((tr, index) => {
|
|
73
|
+
const height = tr.offsetHeight;
|
|
74
|
+
if (index === 0) {
|
|
75
|
+
advancedTableWrapper.style.setProperty(
|
|
76
|
+
"--advanced-table-header-row-0-height",
|
|
77
|
+
`${height}px`
|
|
78
|
+
);
|
|
79
|
+
} else if (index === 1) {
|
|
80
|
+
advancedTableWrapper.style.setProperty(
|
|
81
|
+
"--advanced-table-header-row-1-height",
|
|
82
|
+
`${height}px`
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
totalHeight += height;
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
advancedTableWrapper.style.setProperty(
|
|
89
|
+
"--advanced-table-header-height",
|
|
90
|
+
`${totalHeight}px`
|
|
91
|
+
);
|
|
92
|
+
|
|
93
|
+
updateStickyActionBarHeight(advancedTableWrapper);
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
export const updateStickyLayoutHeights = (
|
|
97
|
+
advancedTableWrapper: HTMLElement | null
|
|
98
|
+
): void => {
|
|
99
|
+
updateStickyHeaderRowHeights(advancedTableWrapper);
|
|
100
|
+
};
|
|
@@ -364,6 +364,34 @@
|
|
|
364
364
|
}
|
|
365
365
|
}
|
|
366
366
|
|
|
367
|
+
&.advanced-table-sticky-header {
|
|
368
|
+
.row-selection-actions-card.show-action-card,
|
|
369
|
+
.row-selection-actions-card.is-visible {
|
|
370
|
+
background-color: $white;
|
|
371
|
+
left: 0;
|
|
372
|
+
position: sticky;
|
|
373
|
+
top: 0;
|
|
374
|
+
z-index: 5;
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
.pb_table.sticky-header {
|
|
378
|
+
thead,
|
|
379
|
+
.pb_advanced_table_header {
|
|
380
|
+
top: var(--advanced-table-action-bar-height, 0px);
|
|
381
|
+
z-index: 3;
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
&.hidden-action-bar {
|
|
386
|
+
.pb_table.sticky-header {
|
|
387
|
+
thead,
|
|
388
|
+
.pb_advanced_table_header {
|
|
389
|
+
top: 0;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
|
|
367
395
|
// Max height overflow - the below prevents expansion from overflowing container at full screen for responsive and nonresponsive tables
|
|
368
396
|
&.advanced-table-max-height-xs {
|
|
369
397
|
max-height: 320px;
|
|
@@ -401,55 +429,6 @@
|
|
|
401
429
|
@include scrollbar-styling;
|
|
402
430
|
}
|
|
403
431
|
|
|
404
|
-
// Fullscreen
|
|
405
|
-
&.advanced-table-allow-fullscreen {
|
|
406
|
-
transition: all 0.3s ease;
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
&.advanced-table-fullscreen {
|
|
410
|
-
background-color: $bg_light;
|
|
411
|
-
box-sizing: border-box;
|
|
412
|
-
height: 100vh;
|
|
413
|
-
left: 0;
|
|
414
|
-
overflow: auto;
|
|
415
|
-
position: fixed;
|
|
416
|
-
top: 0;
|
|
417
|
-
width: 100%;
|
|
418
|
-
z-index: $z_10;
|
|
419
|
-
|
|
420
|
-
.pb_table {
|
|
421
|
-
th,
|
|
422
|
-
td,
|
|
423
|
-
div,
|
|
424
|
-
button {
|
|
425
|
-
font-size: calc(100%);
|
|
426
|
-
}
|
|
427
|
-
box-sizing: border-box;
|
|
428
|
-
margin: $space_lg;
|
|
429
|
-
max-width: calc(100% - 64px);
|
|
430
|
-
width: calc(100% - 64px);
|
|
431
|
-
}
|
|
432
|
-
|
|
433
|
-
.pb_table.sticky-header {
|
|
434
|
-
thead,
|
|
435
|
-
.pb_advanced_table_header {
|
|
436
|
-
position: sticky !important;
|
|
437
|
-
top: 44px !important;
|
|
438
|
-
z-index: $z_10;
|
|
439
|
-
}
|
|
440
|
-
}
|
|
441
|
-
}
|
|
442
|
-
|
|
443
|
-
.advanced-table-fullscreen-header {
|
|
444
|
-
background-color: $white;
|
|
445
|
-
height: 44px;
|
|
446
|
-
padding: 13px 20px;
|
|
447
|
-
position: sticky;
|
|
448
|
-
top: 0;
|
|
449
|
-
width: 100%;
|
|
450
|
-
z-index: $z_10;
|
|
451
|
-
}
|
|
452
|
-
|
|
453
432
|
// Icons
|
|
454
433
|
.button-icon {
|
|
455
434
|
display: flex;
|
|
@@ -507,16 +486,6 @@
|
|
|
507
486
|
}
|
|
508
487
|
}
|
|
509
488
|
|
|
510
|
-
.fullscreen-icon {
|
|
511
|
-
@extend .button-icon;
|
|
512
|
-
@extend %primary-color-pseudo;
|
|
513
|
-
padding: 2px 0;
|
|
514
|
-
|
|
515
|
-
&:focus-visible {
|
|
516
|
-
border-radius: $border_rad_lighter;
|
|
517
|
-
}
|
|
518
|
-
}
|
|
519
|
-
|
|
520
489
|
// First column separator/border
|
|
521
490
|
.table-header-cells:first-child,
|
|
522
491
|
.table-header-cells-custom:first-child,
|
|
@@ -778,6 +747,9 @@
|
|
|
778
747
|
// Row Pinning - React uses inline style; Rails passes same style via html_options from table_body
|
|
779
748
|
.pinned-row {
|
|
780
749
|
box-shadow: 0 4px 10px 0 rgba($shadow, 0.16) !important;
|
|
750
|
+
&.pinned-row-bottom {
|
|
751
|
+
box-shadow: 0 -3px 8px 0 rgba($shadow, 0.1) !important;
|
|
752
|
+
}
|
|
781
753
|
}
|
|
782
754
|
|
|
783
755
|
// For Rails, we can't target the &:last-child since collapsed rows are display: none;
|
|
@@ -987,6 +959,13 @@
|
|
|
987
959
|
background-color: $bg_dark_card;
|
|
988
960
|
}
|
|
989
961
|
|
|
962
|
+
&.advanced-table-sticky-header {
|
|
963
|
+
.row-selection-actions-card.show-action-card,
|
|
964
|
+
.row-selection-actions-card.is-visible {
|
|
965
|
+
background-color: $bg_dark_card;
|
|
966
|
+
}
|
|
967
|
+
}
|
|
968
|
+
|
|
990
969
|
.loading-toggle-icon,
|
|
991
970
|
.loading-cell {
|
|
992
971
|
&::after {
|
|
@@ -1002,18 +981,6 @@
|
|
|
1002
981
|
}
|
|
1003
982
|
}
|
|
1004
983
|
|
|
1005
|
-
// Fullscreen
|
|
1006
|
-
&.advanced-table-fullscreen {
|
|
1007
|
-
background: $bg_dark;
|
|
1008
|
-
}
|
|
1009
|
-
|
|
1010
|
-
.advanced-table-fullscreen-header {
|
|
1011
|
-
background-color: $bg_dark_card;
|
|
1012
|
-
position: sticky;
|
|
1013
|
-
top: 0;
|
|
1014
|
-
z-index: $z_10;
|
|
1015
|
-
}
|
|
1016
|
-
|
|
1017
984
|
&[class*="advanced-table-sticky-left-columns"] {
|
|
1018
985
|
.sticky-left {
|
|
1019
986
|
background-color: $bg_dark;
|