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
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
{
|
|
2
|
+
"template": "<FormGroup{{props}}>\n{{children}}\n</FormGroup>",
|
|
3
|
+
"wrapper": "const FormGroupPlayground = () => {\n const [formFields, setFormFields] = useState({\n firstName: \"Jane\",\n middleInitial: \"Q\",\n lastName: \"Doe\",\n search: \"\",\n eventName: \"Planning session\",\n animal: \"cat\"\n })\n\n const handleFieldChange = ({ target }) => {\n setFormFields({ ...formFields, [target.name]: target.value })\n }\n\n const handleAnimalChange = ({ target }) => {\n setFormFields({ ...formFields, animal: target.value })\n }\n\n return {{component}}\n}\n\n<FormGroupPlayground />",
|
|
4
|
+
"externalImports": ["import React, { useState } from 'react'"],
|
|
5
|
+
"children": {
|
|
6
|
+
"editable": true,
|
|
7
|
+
"default": "<TextInput\n id=\"first-name\"\n label=\"First Name\"\n name=\"firstName\"\n onChange={handleFieldChange}\n placeholder=\"Enter first name\"\n value={formFields.firstName}\n/>\n<TextInput\n id=\"middle-initial\"\n label=\"Middle Initial\"\n name=\"middleInitial\"\n onChange={handleFieldChange}\n placeholder=\"Enter middle initial\"\n value={formFields.middleInitial}\n/>\n<TextInput\n id=\"last-name\"\n label=\"Last Name\"\n name=\"lastName\"\n onChange={handleFieldChange}\n placeholder=\"Enter last name\"\n value={formFields.lastName}\n/>"
|
|
8
|
+
},
|
|
9
|
+
"groups": [
|
|
10
|
+
{
|
|
11
|
+
"name": "Layout",
|
|
12
|
+
"props": ["fullWidth"]
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"presets": [
|
|
16
|
+
{
|
|
17
|
+
"name": "Text Inputs",
|
|
18
|
+
"props": {},
|
|
19
|
+
"children": "<TextInput\n id=\"first-name\"\n label=\"First Name\"\n name=\"firstName\"\n onChange={handleFieldChange}\n placeholder=\"Enter first name\"\n value={formFields.firstName}\n/>\n<TextInput\n id=\"middle-initial\"\n label=\"Middle Initial\"\n name=\"middleInitial\"\n onChange={handleFieldChange}\n placeholder=\"Enter middle initial\"\n value={formFields.middleInitial}\n/>\n<TextInput\n id=\"last-name\"\n label=\"Last Name\"\n name=\"lastName\"\n onChange={handleFieldChange}\n placeholder=\"Enter last name\"\n value={formFields.lastName}\n/>"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"name": "Full Width",
|
|
23
|
+
"props": {
|
|
24
|
+
"fullWidth": true
|
|
25
|
+
},
|
|
26
|
+
"children": "<TextInput\n id=\"first-name-full-width\"\n label=\"First Name\"\n name=\"firstName\"\n onChange={handleFieldChange}\n placeholder=\"Enter first name\"\n value={formFields.firstName}\n/>\n<TextInput\n id=\"middle-initial-full-width\"\n label=\"Middle Initial\"\n name=\"middleInitial\"\n onChange={handleFieldChange}\n placeholder=\"Enter middle initial\"\n value={formFields.middleInitial}\n/>\n<TextInput\n id=\"last-name-full-width\"\n label=\"Last Name\"\n name=\"lastName\"\n onChange={handleFieldChange}\n placeholder=\"Enter last name\"\n value={formFields.lastName}\n/>"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"name": "Search Button",
|
|
30
|
+
"props": {},
|
|
31
|
+
"children": "<TextInput\n id=\"search-with-action\"\n label=\"Search\"\n name=\"search\"\n onChange={handleFieldChange}\n placeholder=\"Search\"\n value={formFields.search}\n/>\n<Button\n onClick={() => alert(\"Button clicked!\")}\n text=\"Submit\"\n variant=\"secondary\"\n/>"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "Select",
|
|
35
|
+
"props": {},
|
|
36
|
+
"children": "<TextInput\n id=\"artist-name\"\n name=\"artistName\"\n onChange={handleFieldChange}\n placeholder=\"Enter Artist Name\"\n value={formFields.artistName || \"\"}\n/>\n<Select\n blankSelection=\"Genre\"\n name=\"genre\"\n options={[\n { value: \"Country\" },\n { value: \"Pop\" },\n { value: \"Rock\" },\n { value: \"Hip-Hop/Rap\" }\n ]}\n/>"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "Date Picker",
|
|
40
|
+
"props": {},
|
|
41
|
+
"children": "<TextInput\n id=\"event-name\"\n label=\"Event\"\n name=\"eventName\"\n onChange={handleFieldChange}\n placeholder=\"Event Name\"\n value={formFields.eventName}\n/>\n<DatePicker\n label=\"Event Date\"\n pickerId=\"form-group-event-date\"\n/>"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"name": "Typeahead Action",
|
|
45
|
+
"props": {},
|
|
46
|
+
"children": "<Typeahead\n id=\"products\"\n label=\"Products\"\n options={[\n { label: \"Windows\", value: \"windows\" },\n { label: \"Roof\", value: \"roof\" },\n { label: \"Siding\", value: \"siding\" },\n { label: \"Doors\", value: \"doors\" }\n ]}\n/>\n<Button\n onClick={() => alert(\"Product added!\")}\n text=\"Add\"\n variant=\"secondary\"\n/>"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"name": "Selectable Cards",
|
|
50
|
+
"props": {},
|
|
51
|
+
"children": "<SelectableCard\n checked={formFields.animal === \"cat\"}\n inputId=\"cat-option\"\n multi={false}\n name=\"animal\"\n onChange={handleAnimalChange}\n value=\"cat\"\n>\n Cat\n</SelectableCard>\n<SelectableCard\n checked={formFields.animal === \"dog\"}\n inputId=\"dog-option\"\n multi={false}\n name=\"animal\"\n onChange={handleAnimalChange}\n value=\"dog\"\n>\n Dog\n</SelectableCard>"
|
|
52
|
+
}
|
|
53
|
+
],
|
|
54
|
+
"hints": {
|
|
55
|
+
"text_inputs": {
|
|
56
|
+
"presetName": "Text Inputs",
|
|
57
|
+
"message": "Text Inputs uses state-backed child inputs so the playground fields stay editable.",
|
|
58
|
+
"type": "info"
|
|
59
|
+
},
|
|
60
|
+
"full_width": {
|
|
61
|
+
"presetName": "Full Width",
|
|
62
|
+
"message": "Full Width applies fullWidth to the FormGroup while leaving each child input editable.",
|
|
63
|
+
"type": "info"
|
|
64
|
+
},
|
|
65
|
+
"search_button": {
|
|
66
|
+
"presetName": "Search Button",
|
|
67
|
+
"message": "Search Button pairs a controlled text field with an action button in the same group.",
|
|
68
|
+
"type": "info"
|
|
69
|
+
},
|
|
70
|
+
"select": {
|
|
71
|
+
"presetName": "Select",
|
|
72
|
+
"message": "Select shows mixed children inside the group, with the options array kept directly in editable children.",
|
|
73
|
+
"type": "info"
|
|
74
|
+
},
|
|
75
|
+
"date_picker": {
|
|
76
|
+
"presetName": "Date Picker",
|
|
77
|
+
"message": "Date Picker combines a text input with a picker child, including the pickerId required by the kit.",
|
|
78
|
+
"type": "info"
|
|
79
|
+
},
|
|
80
|
+
"typeahead_action": {
|
|
81
|
+
"presetName": "Typeahead Action",
|
|
82
|
+
"message": "Typeahead Action mirrors the docs pattern of a searchable Typeahead plus an adjacent button.",
|
|
83
|
+
"type": "info"
|
|
84
|
+
},
|
|
85
|
+
"selectable_cards": {
|
|
86
|
+
"presetName": "Selectable Cards",
|
|
87
|
+
"message": "Selectable Cards keeps both card options in children so each option can be edited together.",
|
|
88
|
+
"type": "info"
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
@@ -4,33 +4,174 @@
|
|
|
4
4
|
"defaults": {
|
|
5
5
|
"textTransform": "none",
|
|
6
6
|
"color": "primary",
|
|
7
|
-
"wrapped": false
|
|
7
|
+
"wrapped": false,
|
|
8
|
+
"text": "This is a tag",
|
|
9
|
+
"tabIndex": 0,
|
|
10
|
+
"onClick": "() => alert('Click!')"
|
|
8
11
|
},
|
|
9
12
|
"groups": [
|
|
10
13
|
{
|
|
11
|
-
"name": "
|
|
14
|
+
"name": "Content",
|
|
12
15
|
"props": [
|
|
13
16
|
"text",
|
|
14
17
|
"name",
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
|
|
18
|
+
"icon",
|
|
19
|
+
"avatarUrl"
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"name": "Appearance",
|
|
24
|
+
"props": [
|
|
25
|
+
"color",
|
|
18
26
|
"size",
|
|
19
27
|
"textTransform",
|
|
20
|
-
"
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
28
|
+
"wrapped"
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name": "Interaction",
|
|
33
|
+
"props": [
|
|
34
|
+
"tabIndex"
|
|
25
35
|
]
|
|
26
36
|
}
|
|
27
37
|
],
|
|
28
38
|
"presets": [
|
|
29
39
|
{
|
|
30
|
-
"name": "
|
|
31
|
-
"props": {
|
|
40
|
+
"name": "Tag",
|
|
41
|
+
"props": {
|
|
42
|
+
"text": "this is a tag",
|
|
43
|
+
"name": "",
|
|
44
|
+
"icon": ""
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "Lowercase",
|
|
49
|
+
"props": {
|
|
50
|
+
"text": "THIS IS A TAG",
|
|
51
|
+
"textTransform": "lowercase",
|
|
52
|
+
"name": "",
|
|
53
|
+
"icon": ""
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"name": "Icon and tag",
|
|
58
|
+
"props": {
|
|
59
|
+
"text": "icon and tag",
|
|
60
|
+
"icon": "badge-check",
|
|
61
|
+
"name": ""
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "User",
|
|
66
|
+
"props": {
|
|
67
|
+
"text": "",
|
|
68
|
+
"name": "Anna Black",
|
|
69
|
+
"icon": "",
|
|
70
|
+
"avatarUrl": ""
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"name": "User with avatar",
|
|
75
|
+
"props": {
|
|
76
|
+
"text": "",
|
|
77
|
+
"name": "Anna Black",
|
|
78
|
+
"icon": "",
|
|
79
|
+
"avatarUrl": "https://randomuser.me/api/portraits/women/44.jpg"
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"name": "Small user",
|
|
84
|
+
"props": {
|
|
85
|
+
"text": "",
|
|
86
|
+
"name": "Anna Black",
|
|
87
|
+
"icon": "",
|
|
88
|
+
"avatarUrl": "",
|
|
89
|
+
"size": "small"
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"name": "Wrapped tag",
|
|
94
|
+
"props": {
|
|
95
|
+
"text": "form pill with a very long tag to show wrapped text",
|
|
96
|
+
"name": "",
|
|
97
|
+
"icon": "",
|
|
98
|
+
"wrapped": true
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"name": "Wrapped user",
|
|
103
|
+
"props": {
|
|
104
|
+
"text": "",
|
|
105
|
+
"name": "Princess Amelia Mignonette Grimaldi Thermopolis Renaldo",
|
|
106
|
+
"icon": "",
|
|
107
|
+
"avatarUrl": "https://randomuser.me/api/portraits/women/44.jpg",
|
|
108
|
+
"wrapped": true
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"name": "Success",
|
|
113
|
+
"props": {
|
|
114
|
+
"text": "Success",
|
|
115
|
+
"color": "success",
|
|
116
|
+
"name": "",
|
|
117
|
+
"icon": ""
|
|
118
|
+
}
|
|
32
119
|
}
|
|
33
120
|
],
|
|
34
|
-
"conditionals": {
|
|
35
|
-
|
|
121
|
+
"conditionals": {
|
|
122
|
+
"avatarUrl": {
|
|
123
|
+
"requires": "name"
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
"hints": {
|
|
127
|
+
"close_button": {
|
|
128
|
+
"when": {},
|
|
129
|
+
"message": "The close icon calls onClick; wire it in app code to remove the pill from your form.",
|
|
130
|
+
"type": "info"
|
|
131
|
+
},
|
|
132
|
+
"wrapped_text": {
|
|
133
|
+
"when": {
|
|
134
|
+
"wrapped": true
|
|
135
|
+
},
|
|
136
|
+
"message": "Wrapped pills expand to multiple lines instead of truncating long labels.",
|
|
137
|
+
"type": "info"
|
|
138
|
+
},
|
|
139
|
+
"user_with_avatar": {
|
|
140
|
+
"when": {
|
|
141
|
+
"avatarUrl": "https://randomuser.me/api/portraits/women/44.jpg"
|
|
142
|
+
},
|
|
143
|
+
"message": "The avatar is displayed when the avatarUrl is set. Name is required for avatar display.",
|
|
144
|
+
"type": "info"
|
|
145
|
+
},
|
|
146
|
+
"user_without_avatar": {
|
|
147
|
+
"when": {
|
|
148
|
+
"avatarUrl": ""
|
|
149
|
+
},
|
|
150
|
+
"message": "The name is displayed when the avatarUrl is not set.",
|
|
151
|
+
"type": "info"
|
|
152
|
+
},
|
|
153
|
+
"lowercase": {
|
|
154
|
+
"when": {
|
|
155
|
+
"textTransform": "lowercase"
|
|
156
|
+
},
|
|
157
|
+
"message": "The text is displayed in lowercase when the textTransform is set to lowercase.",
|
|
158
|
+
"type": "info"
|
|
159
|
+
},
|
|
160
|
+
"success": {
|
|
161
|
+
"when": {
|
|
162
|
+
"color": "success"
|
|
163
|
+
},
|
|
164
|
+
"message": "The pill is displayed in success color when the color is set to success. See the color variants section for more information on colors available.",
|
|
165
|
+
"type": "info"
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
"children": {
|
|
169
|
+
"editable": false,
|
|
170
|
+
"default": ""
|
|
171
|
+
},
|
|
172
|
+
"hiddenProps": [
|
|
173
|
+
"onClick",
|
|
174
|
+
"closeProps",
|
|
175
|
+
"avatar"
|
|
176
|
+
]
|
|
36
177
|
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
{
|
|
2
|
+
"children": {
|
|
3
|
+
"editable": false,
|
|
4
|
+
"default": ""
|
|
5
|
+
},
|
|
6
|
+
"defaults": {
|
|
7
|
+
"text": "This is a tag",
|
|
8
|
+
"color": "primary",
|
|
9
|
+
"textTransform": "none",
|
|
10
|
+
"wrapped": false,
|
|
11
|
+
"tabIndex": 0,
|
|
12
|
+
"onClick": "() => alert('Click!')"
|
|
13
|
+
},
|
|
14
|
+
"hiddenProps": ["onClick", "closeProps", "avatar"],
|
|
15
|
+
"groups": [
|
|
16
|
+
{
|
|
17
|
+
"name": "Content",
|
|
18
|
+
"props": ["text", "name", "icon", "avatarUrl"]
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "Appearance",
|
|
22
|
+
"props": ["color", "size", "textTransform", "wrapped"]
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "Interaction",
|
|
26
|
+
"props": ["tabIndex"]
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"presets": [
|
|
30
|
+
{
|
|
31
|
+
"name": "Tag",
|
|
32
|
+
"props": {
|
|
33
|
+
"text": "this is a tag",
|
|
34
|
+
"name": "",
|
|
35
|
+
"icon": ""
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "Lowercase",
|
|
40
|
+
"props": {
|
|
41
|
+
"text": "THIS IS A TAG",
|
|
42
|
+
"textTransform": "lowercase",
|
|
43
|
+
"name": "",
|
|
44
|
+
"icon": ""
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "Icon and tag",
|
|
49
|
+
"props": {
|
|
50
|
+
"text": "icon and tag",
|
|
51
|
+
"icon": "badge-check",
|
|
52
|
+
"name": ""
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"name": "User",
|
|
57
|
+
"props": {
|
|
58
|
+
"text": "",
|
|
59
|
+
"name": "Anna Black",
|
|
60
|
+
"icon": "",
|
|
61
|
+
"avatarUrl": ""
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "User with avatar",
|
|
66
|
+
"props": {
|
|
67
|
+
"text": "",
|
|
68
|
+
"name": "Anna Black",
|
|
69
|
+
"icon": "",
|
|
70
|
+
"avatarUrl": "https://randomuser.me/api/portraits/women/44.jpg"
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"name": "Small user",
|
|
75
|
+
"props": {
|
|
76
|
+
"text": "",
|
|
77
|
+
"name": "Anna Black",
|
|
78
|
+
"icon": "",
|
|
79
|
+
"avatarUrl": "",
|
|
80
|
+
"size": "small"
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"name": "Wrapped tag",
|
|
85
|
+
"props": {
|
|
86
|
+
"text": "form pill with a very long tag to show wrapped text",
|
|
87
|
+
"name": "",
|
|
88
|
+
"icon": "",
|
|
89
|
+
"wrapped": true
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"name": "Wrapped user",
|
|
94
|
+
"props": {
|
|
95
|
+
"text": "",
|
|
96
|
+
"name": "Princess Amelia Mignonette Grimaldi Thermopolis Renaldo",
|
|
97
|
+
"icon": "",
|
|
98
|
+
"avatarUrl": "https://randomuser.me/api/portraits/women/44.jpg",
|
|
99
|
+
"wrapped": true
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"name": "Success",
|
|
104
|
+
"props": {
|
|
105
|
+
"text": "Success",
|
|
106
|
+
"color": "success",
|
|
107
|
+
"name": "",
|
|
108
|
+
"icon": ""
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
],
|
|
112
|
+
"conditionals": {
|
|
113
|
+
"avatarUrl": { "requires": "name" }
|
|
114
|
+
},
|
|
115
|
+
"hints": {
|
|
116
|
+
"close_button": {
|
|
117
|
+
"when": {},
|
|
118
|
+
"message": "The close icon calls onClick; wire it in app code to remove the pill from your form.",
|
|
119
|
+
"type": "info"
|
|
120
|
+
},
|
|
121
|
+
"wrapped_text": {
|
|
122
|
+
"when": { "wrapped": true },
|
|
123
|
+
"message": "Wrapped pills expand to multiple lines instead of truncating long labels.",
|
|
124
|
+
"type": "info"
|
|
125
|
+
},
|
|
126
|
+
"user_with_avatar": {
|
|
127
|
+
"when": { "avatarUrl": "https://randomuser.me/api/portraits/women/44.jpg" },
|
|
128
|
+
"message": "The avatar is displayed when the avatarUrl is set. Name is required for avatar display.",
|
|
129
|
+
"type": "info"
|
|
130
|
+
},
|
|
131
|
+
"user_without_avatar": {
|
|
132
|
+
"when": { "avatarUrl": "" },
|
|
133
|
+
"message": "The name is displayed when the avatarUrl is not set.",
|
|
134
|
+
"type": "info"
|
|
135
|
+
},
|
|
136
|
+
"lowercase": {
|
|
137
|
+
"when": { "textTransform": "lowercase" },
|
|
138
|
+
"message": "The text is displayed in lowercase when the textTransform is set to lowercase.",
|
|
139
|
+
"type": "info"
|
|
140
|
+
},
|
|
141
|
+
"success": {
|
|
142
|
+
"when": { "color": "success" },
|
|
143
|
+
"message": "The pill is displayed in success color when the color is set to success. See the color variants section for more information on colors available.",
|
|
144
|
+
"type": "info"
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
@import "../tokens/colors";
|
|
2
|
+
@import "../tokens/positioning";
|
|
3
|
+
|
|
4
|
+
.pb_full_screen_kit {
|
|
5
|
+
.fullscreen-close-button {
|
|
6
|
+
align-items: center;
|
|
7
|
+
background: none;
|
|
8
|
+
border: none;
|
|
9
|
+
color: $text_lt_light;
|
|
10
|
+
cursor: pointer;
|
|
11
|
+
display: flex;
|
|
12
|
+
padding: 2px 0;
|
|
13
|
+
|
|
14
|
+
&:hover {
|
|
15
|
+
color: $primary;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
&:focus-visible {
|
|
19
|
+
border-radius: 4px;
|
|
20
|
+
outline: 2px solid $primary;
|
|
21
|
+
outline-offset: 2px;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.fullscreen-overlay {
|
|
27
|
+
background-color: $bg_light;
|
|
28
|
+
box-sizing: border-box;
|
|
29
|
+
height: 100vh;
|
|
30
|
+
left: 0;
|
|
31
|
+
overflow: auto;
|
|
32
|
+
position: fixed;
|
|
33
|
+
top: 0;
|
|
34
|
+
width: 100%;
|
|
35
|
+
z-index: $z_max;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.fullscreen-header {
|
|
39
|
+
background-color: $white;
|
|
40
|
+
box-sizing: border-box;
|
|
41
|
+
width: 100%;
|
|
42
|
+
z-index: $z_10;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.fullscreen-header-sticky {
|
|
46
|
+
position: sticky;
|
|
47
|
+
top: 0;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.fullscreen-content {
|
|
51
|
+
box-sizing: border-box;
|
|
52
|
+
overflow: auto;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.fullscreen-content-sticky {
|
|
56
|
+
height: calc(100vh - 44px);
|
|
57
|
+
}
|
|
58
|
+
// Dark mode support
|
|
59
|
+
.dark {
|
|
60
|
+
.pb_full_screen_view {
|
|
61
|
+
.fullscreen-close-button {
|
|
62
|
+
color: $text_dk_light;
|
|
63
|
+
|
|
64
|
+
&:hover {
|
|
65
|
+
color: $primary;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.fullscreen-overlay {
|
|
71
|
+
background-color: $bg_dark;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.fullscreen-header {
|
|
75
|
+
background-color: $bg_dark_card;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import React, { useEffect } from 'react'
|
|
2
|
+
import classnames from 'classnames'
|
|
3
|
+
import { buildAriaProps, buildCss, buildDataProps, buildHtmlProps } from '../utilities/props'
|
|
4
|
+
import { globalProps } from '../utilities/globalProps'
|
|
5
|
+
|
|
6
|
+
import useFullscreen from './useFullScreen'
|
|
7
|
+
|
|
8
|
+
import Flex from '../pb_flex/_flex'
|
|
9
|
+
import Icon from '../pb_icon/_icon'
|
|
10
|
+
import Title from '../pb_title/_title'
|
|
11
|
+
import Body from '../pb_body/_body'
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
type FullScreenViewProps = {
|
|
15
|
+
aria?: { [key: string]: string },
|
|
16
|
+
children: React.ReactNode,
|
|
17
|
+
className?: string,
|
|
18
|
+
data?: { [key: string]: string },
|
|
19
|
+
htmlOptions?: { [key: string]: string | number | boolean | (() => void) | ((arg?: Event) => void) },
|
|
20
|
+
id?: string,
|
|
21
|
+
contentPadding?: "none" | "xxs" | "xs" | "sm" | "md" | "lg" | "xl"
|
|
22
|
+
headerText?: string
|
|
23
|
+
headerTextStyling?: "title_4" | "body"
|
|
24
|
+
isFullscreen?: boolean
|
|
25
|
+
onOpen?: () => void
|
|
26
|
+
onClose?: () => void
|
|
27
|
+
stickyHeader?: boolean
|
|
28
|
+
trigger?: (props: { onClick: () => void; isOpen: boolean }) => React.ReactNode
|
|
29
|
+
escToExit?: boolean
|
|
30
|
+
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const FullScreenView = (props: FullScreenViewProps) => {
|
|
34
|
+
const {
|
|
35
|
+
aria = {},
|
|
36
|
+
children,
|
|
37
|
+
className,
|
|
38
|
+
contentPadding = "lg",
|
|
39
|
+
data = {},
|
|
40
|
+
htmlOptions = {},
|
|
41
|
+
id,
|
|
42
|
+
headerText,
|
|
43
|
+
headerTextStyling = "title_4",
|
|
44
|
+
isFullscreen: controlledIsFullscreen,
|
|
45
|
+
onOpen,
|
|
46
|
+
onClose,
|
|
47
|
+
stickyHeader = true,
|
|
48
|
+
trigger,
|
|
49
|
+
escToExit = true,
|
|
50
|
+
} = props
|
|
51
|
+
|
|
52
|
+
const ariaProps = buildAriaProps(aria)
|
|
53
|
+
const dataProps = buildDataProps(data)
|
|
54
|
+
const htmlProps = buildHtmlProps(htmlOptions)
|
|
55
|
+
const classes = classnames(buildCss('pb_full_screen_kit'), globalProps(props), className)
|
|
56
|
+
const headerClasses = classnames("fullscreen-header", {
|
|
57
|
+
"fullscreen-header-sticky": stickyHeader,
|
|
58
|
+
})
|
|
59
|
+
const contentClasses = classnames("fullscreen-content", `p_${contentPadding}`, {
|
|
60
|
+
"fullscreen-content-sticky": stickyHeader,
|
|
61
|
+
})
|
|
62
|
+
const isControlled = typeof controlledIsFullscreen === "boolean"
|
|
63
|
+
|
|
64
|
+
const [internalIsFullscreen, setInternalIsFullscreen, toggleInternalFullscreen] = useFullscreen(false)
|
|
65
|
+
|
|
66
|
+
const isFullscreen = isControlled ? controlledIsFullscreen : internalIsFullscreen
|
|
67
|
+
const enter = () => {
|
|
68
|
+
if (!isControlled) {
|
|
69
|
+
setInternalIsFullscreen(true)
|
|
70
|
+
onOpen?.()
|
|
71
|
+
} else {
|
|
72
|
+
onOpen?.()
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
const exit = () => {
|
|
76
|
+
if (!isControlled) {
|
|
77
|
+
setInternalIsFullscreen(false)
|
|
78
|
+
onClose?.()
|
|
79
|
+
} else {
|
|
80
|
+
onClose?.()
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
const toggle = () => {
|
|
84
|
+
if (isControlled) {
|
|
85
|
+
if (isFullscreen) {
|
|
86
|
+
onClose?.()
|
|
87
|
+
} else {
|
|
88
|
+
onOpen?.()
|
|
89
|
+
}
|
|
90
|
+
} else {
|
|
91
|
+
toggleInternalFullscreen()
|
|
92
|
+
if (isFullscreen) {
|
|
93
|
+
onClose?.()
|
|
94
|
+
} else {
|
|
95
|
+
onOpen?.()
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
useEffect(() => {
|
|
101
|
+
if (!escToExit || !isFullscreen) return
|
|
102
|
+
|
|
103
|
+
const handleKeyDown = (event: KeyboardEvent) => {
|
|
104
|
+
if (event.key === 'Escape') {
|
|
105
|
+
event.preventDefault()
|
|
106
|
+
exit()
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
document.addEventListener('keydown', handleKeyDown)
|
|
111
|
+
return () => document.removeEventListener('keydown', handleKeyDown)
|
|
112
|
+
}, [escToExit, isFullscreen, isControlled, onClose])
|
|
113
|
+
|
|
114
|
+
const defaultHeader = (
|
|
115
|
+
<div className={headerClasses}>
|
|
116
|
+
<Flex
|
|
117
|
+
align="center"
|
|
118
|
+
justify="between"
|
|
119
|
+
paddingLeft="sm"
|
|
120
|
+
paddingRight="xxs"
|
|
121
|
+
paddingY="xs"
|
|
122
|
+
>
|
|
123
|
+
{headerText && (
|
|
124
|
+
headerTextStyling === "title_4" ? (
|
|
125
|
+
<Title
|
|
126
|
+
size={4}
|
|
127
|
+
text={headerText}
|
|
128
|
+
/>
|
|
129
|
+
) : (
|
|
130
|
+
<Body text={headerText} />
|
|
131
|
+
)
|
|
132
|
+
)}
|
|
133
|
+
<button
|
|
134
|
+
className="fullscreen-close-button"
|
|
135
|
+
onClick={toggle}
|
|
136
|
+
>
|
|
137
|
+
<Icon
|
|
138
|
+
color="link"
|
|
139
|
+
fixedWidth
|
|
140
|
+
icon="close"
|
|
141
|
+
paddingX="xs"
|
|
142
|
+
paddingY="xxs"
|
|
143
|
+
size="lg"
|
|
144
|
+
/>
|
|
145
|
+
</button>
|
|
146
|
+
</Flex>
|
|
147
|
+
</div>
|
|
148
|
+
)
|
|
149
|
+
|
|
150
|
+
const renderTrigger = () => {
|
|
151
|
+
if (!trigger) return null
|
|
152
|
+
return trigger({ onClick: toggle, isOpen: isFullscreen })
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
const renderContent = () => {
|
|
156
|
+
if (isFullscreen) {
|
|
157
|
+
return (
|
|
158
|
+
<div className="fullscreen-overlay">
|
|
159
|
+
{defaultHeader}
|
|
160
|
+
<div className={contentClasses}>
|
|
161
|
+
{children}
|
|
162
|
+
</div>
|
|
163
|
+
</div>
|
|
164
|
+
)
|
|
165
|
+
}
|
|
166
|
+
return children
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
return (
|
|
170
|
+
<div
|
|
171
|
+
{...ariaProps}
|
|
172
|
+
{...dataProps}
|
|
173
|
+
{...htmlProps}
|
|
174
|
+
className={classes}
|
|
175
|
+
id={id}
|
|
176
|
+
>
|
|
177
|
+
{renderTrigger()}
|
|
178
|
+
{renderContent()}
|
|
179
|
+
</div>
|
|
180
|
+
)
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
export default FullScreenView
|