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
data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header.jsx
CHANGED
|
@@ -1,21 +1,13 @@
|
|
|
1
1
|
import React from "react"
|
|
2
2
|
import AdvancedTable from '../../pb_advanced_table/_advanced_table'
|
|
3
|
-
|
|
4
|
-
const tableData = Array.from({ length: 15 }, (_, index) => ({
|
|
5
|
-
year: String(2020 + index),
|
|
6
|
-
newEnrollments: String(20 + index),
|
|
7
|
-
scheduledMeetings: String(10 + index),
|
|
8
|
-
attendanceRate: `${50 + index}%`,
|
|
9
|
-
completedClasses: String(3 + index),
|
|
10
|
-
classCompletionRate: `${30 + index}%`,
|
|
11
|
-
graduatedStudents: String(19 + index),
|
|
12
|
-
}))
|
|
3
|
+
import MOCK_DATA from "./advanced_table_mock_data.json"
|
|
13
4
|
|
|
14
5
|
const AdvancedTableTablePropsStickyHeader = (props) => {
|
|
15
6
|
const columnDefinitions = [
|
|
16
7
|
{
|
|
17
8
|
accessor: "year",
|
|
18
9
|
label: "Year",
|
|
10
|
+
cellAccessors: ["quarter", "month", "day"],
|
|
19
11
|
},
|
|
20
12
|
{
|
|
21
13
|
accessor: "newEnrollments",
|
|
@@ -44,18 +36,17 @@ const AdvancedTableTablePropsStickyHeader = (props) => {
|
|
|
44
36
|
]
|
|
45
37
|
|
|
46
38
|
const tableProps = {
|
|
47
|
-
sticky: true
|
|
39
|
+
sticky: true,
|
|
48
40
|
}
|
|
49
41
|
|
|
50
42
|
return (
|
|
51
|
-
<
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
</div>
|
|
43
|
+
<AdvancedTable
|
|
44
|
+
columnDefinitions={columnDefinitions}
|
|
45
|
+
maxHeight="xs"
|
|
46
|
+
tableData={MOCK_DATA}
|
|
47
|
+
tableProps={tableProps}
|
|
48
|
+
{...props}
|
|
49
|
+
/>
|
|
59
50
|
)
|
|
60
51
|
}
|
|
61
52
|
|
data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_rails.md
CHANGED
|
@@ -2,10 +2,6 @@ Create a sticky header that works for responsive Advanced Tables by setting `sti
|
|
|
2
2
|
|
|
3
3
|
**NOTE**: This behavior requires a `max_height` to work. The header is sticky within the table container, allowing for it to work along with the first column stickiness of a responsive table on smaller screen sizes.
|
|
4
4
|
|
|
5
|
-
Scroll inside the table preview to see the header stick.
|
|
6
|
-
|
|
7
|
-
This example builds flat table data inline for the docs preview. For typical `table_data` setup, see [Default (Required Props)](/kits/advanced_table/default/rails#advanced_table_beta).
|
|
8
|
-
|
|
9
5
|
Expand the table above to see this in action.
|
|
10
6
|
|
|
11
7
|
A sticky header on a nonresponsive table is demonstrated in the ["Sticky Header"](https://playbook.powerapp.cloud/kits/advanced_table#sticky-header) doc example above.
|
data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_react.md
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
Create a sticky header that works for responsive Advanced Tables by setting `sticky: true` via `tableProps` and
|
|
1
|
+
Create a sticky header that works for responsive Advanced Tables by setting `sticky: true` via `tableProps` and giving the AdvancedTable a `maxHeight` using our [Max Height](https://playbook.powerapp.cloud/global_props/max_height) global prop.
|
|
2
2
|
|
|
3
|
-
**NOTE**: The header is sticky within the table
|
|
3
|
+
**NOTE**: This behavior requires a `maxHeight` to work. The header is sticky within the table container, allowing for it to work along with the first column stickiness of a responsive table on smaller screen sizes.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
Expand the table above to see responsive behavior in action.
|
|
5
|
+
Expand the table above to see this in action.
|
|
8
6
|
|
|
9
7
|
A sticky header on a nonresponsive table is demonstrated in the ["Sticky Header"](https://playbook.powerapp.cloud/kits/advanced_table/react#sticky-header) doc example above.
|
|
@@ -28,7 +28,8 @@
|
|
|
28
28
|
"rowId": "1",
|
|
29
29
|
"backgroundColor": "#0056CF",
|
|
30
30
|
"fontColor": "#FFFFFF",
|
|
31
|
-
"expandButtonColor": "#FFFFFF"
|
|
31
|
+
"expandButtonColor": "#FFFFFF",
|
|
32
|
+
"fontWeight": "bold"
|
|
32
33
|
}
|
|
33
34
|
],
|
|
34
35
|
"expandByDepth": [
|
|
@@ -233,11 +234,6 @@
|
|
|
233
234
|
"customSort": true
|
|
234
235
|
}
|
|
235
236
|
},
|
|
236
|
-
"fullScreenControl": {
|
|
237
|
-
"requires": {
|
|
238
|
-
"allowFullScreen": true
|
|
239
|
-
}
|
|
240
|
-
},
|
|
241
237
|
"enableSortingRemoval": {
|
|
242
238
|
"requires": {
|
|
243
239
|
"enableSorting": true
|
|
@@ -2954,9 +2950,7 @@
|
|
|
2954
2950
|
},
|
|
2955
2951
|
"hiddenProps": [
|
|
2956
2952
|
"sortControl",
|
|
2957
|
-
"fullScreenControl",
|
|
2958
2953
|
"expandedControl",
|
|
2959
|
-
"allowFullScreen",
|
|
2960
2954
|
"pagination",
|
|
2961
2955
|
"paginationProps"
|
|
2962
2956
|
],
|
|
@@ -73,9 +73,7 @@
|
|
|
73
73
|
},
|
|
74
74
|
"hiddenProps": [
|
|
75
75
|
"sortControl",
|
|
76
|
-
"fullScreenControl",
|
|
77
76
|
"expandedControl",
|
|
78
|
-
"allowFullScreen",
|
|
79
77
|
"pagination",
|
|
80
78
|
"paginationProps"
|
|
81
79
|
],
|
|
@@ -106,7 +104,7 @@
|
|
|
106
104
|
"tableProps": {
|
|
107
105
|
"container": false
|
|
108
106
|
},
|
|
109
|
-
"rowStyling": [{ "rowId": "1", "backgroundColor": "#0056CF", "fontColor": "#FFFFFF", "expandButtonColor": "#FFFFFF" }],
|
|
107
|
+
"rowStyling": [{ "rowId": "1", "backgroundColor": "#0056CF", "fontColor": "#FFFFFF", "expandButtonColor": "#FFFFFF", "fontWeight": "bold" }],
|
|
110
108
|
"expandByDepth": [
|
|
111
109
|
{
|
|
112
110
|
"depth": 0,
|
|
@@ -291,11 +289,6 @@
|
|
|
291
289
|
"customSort": true
|
|
292
290
|
}
|
|
293
291
|
},
|
|
294
|
-
"fullScreenControl": {
|
|
295
|
-
"requires": {
|
|
296
|
-
"allowFullScreen": true
|
|
297
|
-
}
|
|
298
|
-
},
|
|
299
292
|
"enableSortingRemoval": {
|
|
300
293
|
"requires": {
|
|
301
294
|
"enableSorting": true
|
|
@@ -89,5 +89,4 @@ examples:
|
|
|
89
89
|
- advanced_table_column_styling_background_multi: Column Styling Background Color with Multiple Headers
|
|
90
90
|
- advanced_table_padding_control: Padding Control using Column Styling
|
|
91
91
|
- advanced_table_column_border_color: Column Group Border Color
|
|
92
|
-
- advanced_table_fullscreen: Fullscreen
|
|
93
92
|
- advanced_table_infinite_scroll: Infinite Scroll
|
|
@@ -23,7 +23,6 @@ export { default as AdvancedTableTablePropsStickyHeader } from './_advanced_tabl
|
|
|
23
23
|
export { default as AdvancedTableColumnHeadersCustomCell } from './_advanced_table_column_headers_custom_cell.jsx'
|
|
24
24
|
export { default as AdvancedTableColumnHeadersVerticalBorder } from './_advanced_table_column_headers_vertical_border.jsx'
|
|
25
25
|
export { default as AdvancedTableInlineEditing } from './_advanced_table_inline_editing.jsx'
|
|
26
|
-
export { default as AdvancedTableFullscreen } from './_advanced_table_fullscreen.jsx'
|
|
27
26
|
export { default as AdvancedTableStickyColumns } from './_advanced_table_sticky_columns.jsx'
|
|
28
27
|
export { default as AdvancedTableStickyHeader } from './_advanced_table_sticky_header.jsx'
|
|
29
28
|
export { default as AdvancedTableStickyColumnsAndHeader } from './_advanced_table_sticky_columns_and_header.jsx'
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import PbEnhancedElement from "../pb_enhanced_element";
|
|
2
2
|
import { updateSelectionActionBar } from "./advanced_table_action_bar";
|
|
3
3
|
import { setArrowVisibility, toggleVisibility } from "../utilities/domHelpers";
|
|
4
|
+
import {
|
|
5
|
+
updateStickyActionBarHeight as measureStickyActionBarHeight,
|
|
6
|
+
updateStickyHeaderRowHeights as measureStickyHeaderRowHeights,
|
|
7
|
+
updateStickyLayoutHeights,
|
|
8
|
+
} from "./Utilities/StickyLayoutHelper";
|
|
4
9
|
|
|
5
10
|
const ADVANCED_TABLE_SELECTOR = "[data-advanced-table]";
|
|
6
11
|
const DOWN_ARROW_SELECTOR = "#advanced-table_open_icon";
|
|
@@ -196,7 +201,7 @@ export default class PbAdvancedTable extends PbEnhancedElement {
|
|
|
196
201
|
if (table.dataset.pbAdvancedTableInitialized) return;
|
|
197
202
|
table.dataset.pbAdvancedTableInitialized = "true";
|
|
198
203
|
|
|
199
|
-
// Measure header height so
|
|
204
|
+
// Measure header/action bar height so sticky offsets stay accurate.
|
|
200
205
|
if (mainTable) {
|
|
201
206
|
PbAdvancedTable.updateStickyHeaderRowHeights(mainTable);
|
|
202
207
|
const resizeObserver = new ResizeObserver(() => {
|
|
@@ -204,6 +209,12 @@ export default class PbAdvancedTable extends PbEnhancedElement {
|
|
|
204
209
|
PbAdvancedTable.updatePinnedRowsStickyTops(mainTable);
|
|
205
210
|
});
|
|
206
211
|
resizeObserver.observe(table);
|
|
212
|
+
|
|
213
|
+
const actionBar = mainTable.querySelector(".row-selection-actions-card");
|
|
214
|
+
if (actionBar) {
|
|
215
|
+
resizeObserver.observe(actionBar);
|
|
216
|
+
}
|
|
217
|
+
|
|
207
218
|
mainTable._advancedTableHeaderResizeObserver = resizeObserver;
|
|
208
219
|
}
|
|
209
220
|
|
|
@@ -337,32 +348,11 @@ export default class PbAdvancedTable extends PbEnhancedElement {
|
|
|
337
348
|
* multi-row sticky headers use the correct offset. Re-run when header wraps (e.g. mobile).
|
|
338
349
|
*/
|
|
339
350
|
static updateStickyHeaderRowHeights(advancedTableWrapper) {
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
const rows = Array.from(thead.querySelectorAll("tr"));
|
|
346
|
-
let totalHeight = 0;
|
|
347
|
-
rows.forEach((tr, index) => {
|
|
348
|
-
const h = tr.offsetHeight;
|
|
349
|
-
if (index === 0) {
|
|
350
|
-
advancedTableWrapper.style.setProperty(
|
|
351
|
-
"--advanced-table-header-row-0-height",
|
|
352
|
-
`${h}px`
|
|
353
|
-
);
|
|
354
|
-
} else if (index === 1) {
|
|
355
|
-
advancedTableWrapper.style.setProperty(
|
|
356
|
-
"--advanced-table-header-row-1-height",
|
|
357
|
-
`${h}px`
|
|
358
|
-
);
|
|
359
|
-
}
|
|
360
|
-
totalHeight += h;
|
|
361
|
-
});
|
|
362
|
-
advancedTableWrapper.style.setProperty(
|
|
363
|
-
"--advanced-table-header-height",
|
|
364
|
-
`${totalHeight}px`
|
|
365
|
-
);
|
|
351
|
+
measureStickyHeaderRowHeights(advancedTableWrapper);
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
static updateStickyActionBarHeight(advancedTableWrapper) {
|
|
355
|
+
return measureStickyActionBarHeight(advancedTableWrapper);
|
|
366
356
|
}
|
|
367
357
|
|
|
368
358
|
/**
|
|
@@ -378,7 +368,8 @@ export default class PbAdvancedTable extends PbEnhancedElement {
|
|
|
378
368
|
(tr) => tr.style.display !== "none" && tr.offsetParent !== null
|
|
379
369
|
);
|
|
380
370
|
|
|
381
|
-
const headerOffset =
|
|
371
|
+
const headerOffset =
|
|
372
|
+
"calc(var(--advanced-table-header-height, 44px) + var(--advanced-table-action-bar-height, 0px))";
|
|
382
373
|
visibleRows.forEach((tr, index) => {
|
|
383
374
|
tr.style.top = `calc(${headerOffset} + 2.5em * ${index})`;
|
|
384
375
|
});
|
|
@@ -589,7 +580,7 @@ window.expandAllSubRows = (element, rowDepth) => {
|
|
|
589
580
|
// Fix header height and pinned row sticky tops on load (header wrap + collapsed rows)
|
|
590
581
|
function updateAllAdvancedTableStickyHeights() {
|
|
591
582
|
document.querySelectorAll(".pb_advanced_table").forEach((wrapper) => {
|
|
592
|
-
|
|
583
|
+
updateStickyLayoutHeights(wrapper);
|
|
593
584
|
PbAdvancedTable.updatePinnedRowsStickyTops(wrapper);
|
|
594
585
|
});
|
|
595
586
|
}
|
|
@@ -274,18 +274,6 @@
|
|
|
274
274
|
"react"
|
|
275
275
|
]
|
|
276
276
|
},
|
|
277
|
-
"allowFullScreen": {
|
|
278
|
-
"type": "boolean",
|
|
279
|
-
"platforms": [
|
|
280
|
-
"react"
|
|
281
|
-
]
|
|
282
|
-
},
|
|
283
|
-
"fullScreenControl": {
|
|
284
|
-
"type": "function",
|
|
285
|
-
"platforms": [
|
|
286
|
-
"react"
|
|
287
|
-
]
|
|
288
|
-
},
|
|
289
277
|
"enableSorting": {
|
|
290
278
|
"type": "boolean",
|
|
291
279
|
"platforms": [
|
|
@@ -230,7 +230,7 @@ module Playbook
|
|
|
230
230
|
|
|
231
231
|
# Build inline style for sticky pinned row (matches React). Pass via html_options so the tr gets the attribute.
|
|
232
232
|
def build_pinned_row_style(pinned_index, background: "white")
|
|
233
|
-
header_offset = "var(--advanced-table-header-height, 44px)"
|
|
233
|
+
header_offset = "calc(var(--advanced-table-header-height, 44px) + var(--advanced-table-action-bar-height, 0px))"
|
|
234
234
|
row_offset = "calc(2.5em * #{pinned_index})"
|
|
235
235
|
"position: sticky; top: calc(#{header_offset} + #{row_offset}); z-index: 3; background: #{background};"
|
|
236
236
|
end
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
button_color = row_style&.[](:expand_button_color)
|
|
4
4
|
bg_color = row_style&.[](:background_color)
|
|
5
5
|
font_color = row_style&.[](:font_color)
|
|
6
|
+
font_weight = row_style&.[](:font_weight)
|
|
6
7
|
tr_options = (object.html_options || {}).stringify_keys
|
|
7
8
|
tr_options["class"] = [tr_options["class"], object.classname].reject(&:blank?).join(" ")
|
|
8
9
|
%>
|
|
@@ -14,7 +15,7 @@
|
|
|
14
15
|
<% end %>
|
|
15
16
|
<% object.column_definitions.each_with_index do |column, index| %>
|
|
16
17
|
<% next unless column[:accessor].present? %>
|
|
17
|
-
<% component_info = object.cell_component_info(column, index, bg_color, font_color) %>
|
|
18
|
+
<% component_info = object.cell_component_info(column, index, bg_color, font_color, font_weight) %>
|
|
18
19
|
<%= pb_rails(component_info[:name], props: component_info[:props]) do %>
|
|
19
20
|
<%= pb_rails("flex", props:{ align: "center", justify: object.justify_for(column, index), classname: object.loading ? "loading-cell" : "" }) do %>
|
|
20
21
|
<% if collapsible_trail && index.zero? %>
|
|
@@ -107,9 +107,10 @@ module Playbook
|
|
|
107
107
|
end
|
|
108
108
|
|
|
109
109
|
# Uses a regular table/table_cell component if there is no custom background color; if there is a cell_background_color uses a background component with tag "td"
|
|
110
|
-
def cell_component_info(column, index, bg_color, font_color)
|
|
110
|
+
def cell_component_info(column, index, bg_color, font_color, font_weight = nil)
|
|
111
111
|
column_font_color = cell_font_color(column)
|
|
112
112
|
effective_font_color = column_font_color || font_color
|
|
113
|
+
effective_font_weight = font_weight_value(font_weight)
|
|
113
114
|
|
|
114
115
|
if has_custom_background_color?(column)
|
|
115
116
|
custom_bg_color = cell_background_color(column)
|
|
@@ -119,11 +120,15 @@ module Playbook
|
|
|
119
120
|
tag: "td",
|
|
120
121
|
classname: td_classname(column, index),
|
|
121
122
|
}
|
|
122
|
-
|
|
123
|
+
style_hash = {}
|
|
124
|
+
style_hash[:color] = effective_font_color if effective_font_color.present?
|
|
125
|
+
style_hash[:"font-weight"] = effective_font_weight if effective_font_weight.present?
|
|
126
|
+
component_props[:html_options] = { style: style_hash } if style_hash.present?
|
|
123
127
|
else
|
|
124
128
|
component_name = "table/table_cell"
|
|
125
129
|
style_hash = { "background-color": bg_color }
|
|
126
130
|
style_hash[:color] = effective_font_color if effective_font_color.present?
|
|
131
|
+
style_hash[:"font-weight"] = effective_font_weight if effective_font_weight.present?
|
|
127
132
|
component_props = {
|
|
128
133
|
html_options: {
|
|
129
134
|
style: style_hash,
|
|
@@ -216,6 +221,15 @@ module Playbook
|
|
|
216
221
|
end
|
|
217
222
|
end
|
|
218
223
|
|
|
224
|
+
def font_weight_value(font_weight)
|
|
225
|
+
case font_weight.to_s
|
|
226
|
+
when "bold"
|
|
227
|
+
"700"
|
|
228
|
+
when "regular"
|
|
229
|
+
"400"
|
|
230
|
+
end
|
|
231
|
+
end
|
|
232
|
+
|
|
219
233
|
private
|
|
220
234
|
|
|
221
235
|
def custom_renderer_value(column, index)
|
|
@@ -15,7 +15,7 @@ module Playbook
|
|
|
15
15
|
values: %w[xs sm md lg xl none rounded],
|
|
16
16
|
default: "md"
|
|
17
17
|
prop :background, type: Playbook::Props::Enum,
|
|
18
|
-
values: %w[white light dark product_1_background product_1_highlight product_2_background product_2_highlight product_3_background product_3_highlight product_4_background product_4_highlight product_5_background product_5_highlight product_6_background product_6_highlight product_7_background product_7_highlight product_8_background product_8_highlight product_9_background product_9_highlight product_10_background product_10_highlight windows siding doors solar roofing gutters insulation none success_subtle warning_subtle error_subtle info_subtle neutral_subtle],
|
|
18
|
+
values: %w[white light dark product_1_background product_1_highlight product_2_background product_2_highlight product_3_background product_3_highlight product_4_background product_4_highlight product_5_background product_5_highlight product_6_background product_6_highlight product_7_background product_7_highlight product_8_background product_8_highlight product_9_background product_9_highlight product_10_background product_10_highlight product_11_background product_11_highlight windows siding doors solar roofing gutters insulation none success_subtle warning_subtle error_subtle info_subtle neutral_subtle],
|
|
19
19
|
default: "none"
|
|
20
20
|
prop :drag_id, type: Playbook::Props::String
|
|
21
21
|
prop :draggable_item, type: Playbook::Props::Boolean,
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
]
|
|
52
52
|
},
|
|
53
53
|
"onChange": {
|
|
54
|
-
"type": "
|
|
54
|
+
"type": "function",
|
|
55
55
|
"platforms": [
|
|
56
56
|
"react"
|
|
57
57
|
]
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
"platforms": [
|
|
107
107
|
"rails"
|
|
108
108
|
],
|
|
109
|
-
"type": "
|
|
109
|
+
"type": "GenericObject"
|
|
110
110
|
},
|
|
111
111
|
"required": {
|
|
112
112
|
"platforms": [
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"default": false
|
|
45
45
|
},
|
|
46
46
|
"onClick": {
|
|
47
|
-
"type": "
|
|
47
|
+
"type": "function",
|
|
48
48
|
"platforms": [
|
|
49
49
|
"react"
|
|
50
50
|
]
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
"platforms": [
|
|
107
107
|
"rails"
|
|
108
108
|
],
|
|
109
|
-
"type": "
|
|
109
|
+
"type": "GenericObject"
|
|
110
110
|
}
|
|
111
111
|
},
|
|
112
112
|
"globalProps": true,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useEffect } from 'react'
|
|
1
|
+
import React, { useContext, useEffect } from 'react'
|
|
2
2
|
import classnames from 'classnames'
|
|
3
3
|
|
|
4
4
|
import { buildAriaProps, buildCss, buildDataProps, buildHtmlProps } from '../utilities/props'
|
|
@@ -6,6 +6,7 @@ import { deprecatedProps, globalProps, GlobalProps } from '../utilities/globalPr
|
|
|
6
6
|
import { getAllIcons } from "../utilities/icons/allicons"
|
|
7
7
|
import { camelToSnakeCase } from '../utilities/text'
|
|
8
8
|
|
|
9
|
+
import { DialogContext } from '../pb_dialog/_dialog_context'
|
|
9
10
|
import datePickerHelper from './date_picker_helper'
|
|
10
11
|
import Icon from '../pb_icon/_icon'
|
|
11
12
|
import Caption from '../pb_caption/_caption'
|
|
@@ -87,6 +88,7 @@ type DatePickerProps = {
|
|
|
87
88
|
thisRangesEndToday?: boolean,
|
|
88
89
|
timeFormat?: string,
|
|
89
90
|
type?: string,
|
|
91
|
+
yearAscending?: boolean,
|
|
90
92
|
yearRange?: number[],
|
|
91
93
|
controlsStartId?: string,
|
|
92
94
|
controlsEndId?: string,
|
|
@@ -140,6 +142,7 @@ const DatePicker = (props: DatePickerProps): React.ReactElement => {
|
|
|
140
142
|
showTimezone = false,
|
|
141
143
|
staticPosition = true,
|
|
142
144
|
thisRangesEndToday = false,
|
|
145
|
+
yearAscending = false,
|
|
143
146
|
yearRange = [1900, 2100],
|
|
144
147
|
controlsStartId,
|
|
145
148
|
controlsEndId,
|
|
@@ -147,6 +150,8 @@ const DatePicker = (props: DatePickerProps): React.ReactElement => {
|
|
|
147
150
|
syncEndWith,
|
|
148
151
|
} = props
|
|
149
152
|
|
|
153
|
+
const dialogCtx = useContext(DialogContext)
|
|
154
|
+
|
|
150
155
|
const ariaProps = buildAriaProps(aria)
|
|
151
156
|
const normalizedDefaultDate = normalizeDefaultDate(defaultDate)
|
|
152
157
|
const filterResetDefaultSerialized = serializeDefaultDateForFilterReset(normalizedDefaultDate)
|
|
@@ -184,6 +189,7 @@ const DatePicker = (props: DatePickerProps): React.ReactElement => {
|
|
|
184
189
|
format,
|
|
185
190
|
hideIcon,
|
|
186
191
|
inLine,
|
|
192
|
+
inline: inLine,
|
|
187
193
|
maxDate,
|
|
188
194
|
minDate,
|
|
189
195
|
mode,
|
|
@@ -199,14 +205,25 @@ const DatePicker = (props: DatePickerProps): React.ReactElement => {
|
|
|
199
205
|
showTimezone,
|
|
200
206
|
staticPosition,
|
|
201
207
|
thisRangesEndToday,
|
|
208
|
+
yearAscending,
|
|
202
209
|
yearRange,
|
|
203
210
|
controlsStartId,
|
|
204
211
|
controlsEndId,
|
|
205
212
|
syncStartWith,
|
|
206
213
|
syncEndWith,
|
|
207
214
|
required: false,
|
|
215
|
+
dialogPortalTarget: dialogCtx?.selectMenuPortalTarget ?? null,
|
|
208
216
|
}, scrollContainer)
|
|
209
|
-
|
|
217
|
+
|
|
218
|
+
return () => {
|
|
219
|
+
const input = document.getElementById(String(pickerId)) as
|
|
220
|
+
| (HTMLElement & { _flatpickr?: { destroy: () => void }; _pbDatePickerOpenUnsub?: () => void })
|
|
221
|
+
| null
|
|
222
|
+
input?._pbDatePickerOpenUnsub?.()
|
|
223
|
+
delete input?._pbDatePickerOpenUnsub
|
|
224
|
+
input?._flatpickr?.destroy()
|
|
225
|
+
}
|
|
226
|
+
}, initializeOnce ? [initializeOnce, dialogCtx?.selectMenuPortalTarget, pickerId] : undefined)
|
|
210
227
|
|
|
211
228
|
const filteredProps = {...props}
|
|
212
229
|
if (filteredProps.marginBottom === undefined) {
|
|
@@ -96,22 +96,73 @@
|
|
|
96
96
|
})
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
+
const disconnectPopoverWatch = (input) => {
|
|
100
|
+
if (!input) return
|
|
101
|
+
|
|
102
|
+
if (input._pbDatePickerPopoverObserver) {
|
|
103
|
+
input._pbDatePickerPopoverObserver.disconnect()
|
|
104
|
+
delete input._pbDatePickerPopoverObserver
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
delete input.dataset.pbDatePickerPopoverWatch
|
|
108
|
+
}
|
|
109
|
+
|
|
99
110
|
const loadDatePicker = () => {
|
|
100
111
|
const input = document.getElementById("<%= object.picker_id %>")
|
|
101
112
|
|
|
102
|
-
if (!input || input._flatpickr)
|
|
113
|
+
if (!input || input._flatpickr) {
|
|
114
|
+
disconnectPopoverWatch(input)
|
|
115
|
+
return true
|
|
116
|
+
}
|
|
103
117
|
if (typeof window.datePickerHelper !== "function") return false
|
|
104
118
|
|
|
119
|
+
const popoverTooltip = input.closest(".pb_popover_tooltip")
|
|
120
|
+
if (popoverTooltip && !popoverTooltip.classList.contains("show")) {
|
|
121
|
+
return false
|
|
122
|
+
}
|
|
123
|
+
|
|
105
124
|
window.datePickerHelper(<%= object.date_picker_config %>, "<%= object.scroll_container %>")
|
|
106
125
|
initQuickPickChangeListener(input)
|
|
126
|
+
disconnectPopoverWatch(input)
|
|
107
127
|
|
|
108
128
|
return true
|
|
109
129
|
}
|
|
110
130
|
|
|
131
|
+
const watchPopoverVisibility = () => {
|
|
132
|
+
const input = document.getElementById("<%= object.picker_id %>")
|
|
133
|
+
if (!input || input.dataset.pbDatePickerPopoverWatch) return
|
|
134
|
+
|
|
135
|
+
const popoverTooltip = input.closest(".pb_popover_tooltip")
|
|
136
|
+
if (!popoverTooltip) return
|
|
137
|
+
|
|
138
|
+
input.dataset.pbDatePickerPopoverWatch = "true"
|
|
139
|
+
const tryInitWhenVisible = () => {
|
|
140
|
+
if (!input.isConnected || !popoverTooltip.isConnected) {
|
|
141
|
+
disconnectPopoverWatch(input)
|
|
142
|
+
return
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
if (popoverTooltip.classList.contains("show")) {
|
|
146
|
+
loadDatePicker()
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
const observer = new MutationObserver(tryInitWhenVisible)
|
|
151
|
+
input._pbDatePickerPopoverObserver = observer
|
|
152
|
+
observer.observe(popoverTooltip, { attributes: true, attributeFilter: ["class"] })
|
|
153
|
+
tryInitWhenVisible()
|
|
154
|
+
}
|
|
155
|
+
|
|
111
156
|
let attempts = 0
|
|
112
157
|
const retryLoad = () => {
|
|
113
158
|
if (loadDatePicker()) return
|
|
114
159
|
|
|
160
|
+
const input = document.getElementById("<%= object.picker_id %>")
|
|
161
|
+
if (input?.closest(".pb_popover_tooltip")) {
|
|
162
|
+
watchPopoverVisibility()
|
|
163
|
+
return
|
|
164
|
+
}
|
|
165
|
+
|
|
115
166
|
if (attempts++ < 20) {
|
|
116
167
|
setTimeout(retryLoad, 100)
|
|
117
168
|
}
|
|
@@ -134,6 +185,12 @@
|
|
|
134
185
|
if (<%= !object.custom_event_type.empty? %>) {
|
|
135
186
|
window.addEventListener("<%= object.custom_event_type %>", retryLoad)
|
|
136
187
|
}
|
|
188
|
+
|
|
189
|
+
document.addEventListener("turbo:before-cache", () => {
|
|
190
|
+
const input = document.getElementById("<%= object.picker_id %>")
|
|
191
|
+
disconnectPopoverWatch(input)
|
|
192
|
+
input?._flatpickr?.destroy()
|
|
193
|
+
})
|
|
137
194
|
})()
|
|
138
195
|
<% end %>
|
|
139
196
|
<% end %>
|
|
@@ -89,6 +89,8 @@ module Playbook
|
|
|
89
89
|
default: ""
|
|
90
90
|
prop :cursor, type: Playbook::Props::String,
|
|
91
91
|
default: "pointer"
|
|
92
|
+
prop :year_ascending, type: Playbook::Props::Boolean,
|
|
93
|
+
default: false
|
|
92
94
|
|
|
93
95
|
def classname
|
|
94
96
|
default_margin_bottom = margin_bottom.present? ? "" : " mb_sm"
|
|
@@ -122,6 +124,7 @@ module Playbook
|
|
|
122
124
|
staticPosition: static_position,
|
|
123
125
|
thisRangesEndToday: this_ranges_end_today,
|
|
124
126
|
yearRange: year_range,
|
|
127
|
+
yearAscending: year_ascending,
|
|
125
128
|
controlsStartId: controls_start_id,
|
|
126
129
|
controlsEndId: controls_end_id,
|
|
127
130
|
syncStartWith: sync_start_with,
|