playbook_ui 15.3.0.pre.alpha.play262912095 → 15.3.0.pre.rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/_playbook.scss +5 -5
- data/app/pb_kits/playbook/pb_advanced_table/Components/RegularTableView.tsx +1 -2
- data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +1 -3
- data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableActions.ts +3 -18
- data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableState.ts +14 -71
- data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableHeader.tsx +0 -3
- data/app/pb_kits/playbook/pb_advanced_table/Utilities/RowUtils.ts +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +4 -4
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +3 -12
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.html.erb +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +5 -127
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta.md +1 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_sort.html.erb +3 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_subrow_headers.html.erb +3 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_collapsible_trail_rails.html.erb +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_border_color.md +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_border_color_rails.md +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling.jsx +1 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling.md +1 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_column_headers.jsx +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_column_headers_rails.html.erb +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_rails.html.erb +2 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_rails.md +1 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_inline_row_loading.jsx +0 -28
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_inline_row_loading.md +2 -11
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control.jsx +1 -9
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control.md +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pagination_with_props.jsx +1 -4
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pagination_with_props.md +2 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling_rails.md +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling_react.md +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_rails.html.erb +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_columns_and_header.md +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_rails.md +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_react.md +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +0 -3
- data/app/pb_kits/playbook/pb_advanced_table/flat_advanced_table.js +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/index.js +8 -12
- data/app/pb_kits/playbook/pb_advanced_table/scss_partials/advanced_table_sticky_mixin.scss +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/table_body.rb +6 -6
- data/app/pb_kits/playbook/pb_advanced_table/table_header.rb +6 -6
- data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +2 -3
- data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +6 -79
- data/app/pb_kits/playbook/pb_background/background.html.erb +2 -10
- data/app/pb_kits/playbook/pb_background/docs/_background_category.md +1 -1
- data/app/pb_kits/playbook/pb_bread_crumbs/docs/_bread_crumbs_default.html.erb +4 -4
- data/app/pb_kits/playbook/pb_bread_crumbs/docs/_bread_crumbs_default.jsx +0 -4
- data/app/pb_kits/playbook/pb_card/docs/_card_background.md +1 -1
- data/app/pb_kits/playbook/pb_card/docs/_card_header.md +1 -1
- data/app/pb_kits/playbook/pb_card/docs/_card_highlight.md +1 -1
- data/app/pb_kits/playbook/pb_card/docs/_card_light.md +1 -1
- data/app/pb_kits/playbook/pb_currency/_currency.tsx +7 -20
- data/app/pb_kits/playbook/pb_currency/currency.rb +8 -35
- data/app/pb_kits/playbook/pb_currency/currency.test.js +0 -47
- data/app/pb_kits/playbook/pb_currency/docs/_currency_variants.html.erb +1 -1
- data/app/pb_kits/playbook/pb_currency/docs/_currency_variants.jsx +1 -1
- data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +0 -2
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range_pattern.jsx +1 -1
- data/app/pb_kits/playbook/pb_date_picker/sass_partials/_quick_pick_styles.scss +30 -11
- data/app/pb_kits/playbook/pb_distribution_bar/docs/_distribution_bar_custom_colors.md +1 -1
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_active_style_options_react.md +1 -1
- data/app/pb_kits/playbook/pb_filter/docs/_filter_max_width.md +1 -1
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.scss +1 -0
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.tsx +3 -5
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_description.md +0 -2
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.rb +1 -4
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.test.js +0 -10
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with_loading.html.erb +1 -1
- data/app/pb_kits/playbook/pb_form/formHelper.js +1 -1
- data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_truncated_text_rails.md +1 -1
- data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_truncated_text_react.md +1 -1
- data/app/pb_kits/playbook/pb_icon/docs/_icon_color.md +1 -1
- data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_color.md +1 -1
- data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_color.html.erb +14 -7
- data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_color.jsx +15 -6
- data/app/pb_kits/playbook/pb_layout/docs/_layout_collection.md +1 -1
- data/app/pb_kits/playbook/pb_nav/docs/_collapsible_nav_item_spacing.md +1 -1
- data/app/pb_kits/playbook/pb_nav/docs/_nav_with_spacing_control.md +1 -1
- data/app/pb_kits/playbook/pb_overlay/docs/_overlay_layout.md +1 -1
- data/app/pb_kits/playbook/pb_pb_bar_graph/_pb_bar_graph.tsx +6 -8
- data/app/pb_kits/playbook/pb_pb_bar_graph/pb_bar_graph.rb +10 -7
- data/app/pb_kits/playbook/pb_pb_bar_graph/pbbargraph.test.jsx +1 -73
- data/app/pb_kits/playbook/pb_pb_circle_chart/_pb_circle_chart.tsx +1 -1
- data/app/pb_kits/playbook/pb_pb_circle_chart/pb_circle_chart.rb +10 -7
- data/app/pb_kits/playbook/pb_pb_circle_chart/pb_circle_chart.test.jsx +0 -47
- data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +6 -25
- data/app/pb_kits/playbook/pb_pill/docs/_description.md +1 -1
- data/app/pb_kits/playbook/pb_popover/_popover.tsx +34 -69
- data/app/pb_kits/playbook/pb_popover/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_popover/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_popover/popover.test.js +0 -80
- data/app/pb_kits/playbook/pb_rich_text_editor/TipTap/Toolbar.tsx +2 -41
- data/app/pb_kits/playbook/pb_rich_text_editor/TipTap/ToolbarDropdown.tsx +0 -1
- data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.tsx +20 -60
- data/app/pb_kits/playbook/pb_rich_text_editor/_tiptap_styles.scss +0 -36
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_description.md +1 -1
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml +2 -8
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/index.js +0 -6
- data/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor.test.js +1 -127
- data/app/pb_kits/playbook/pb_section_separator/docs/_description.md +1 -1
- data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +0 -29
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_border_radius_rails.md +1 -1
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_border_radius_react.md +1 -1
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_layout.md +1 -1
- data/app/pb_kits/playbook/pb_table/docs/_table_side_highlight.md +1 -1
- data/app/pb_kits/playbook/pb_table/docs/_table_sm.md +1 -1
- data/app/pb_kits/playbook/pb_table/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_table/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_text_input/text_input.rb +2 -2
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.test.jsx +1 -76
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.tsx +2 -85
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_truncated_text.md +1 -1
- data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +0 -4
- data/app/pb_kits/playbook/pb_typeahead/docs/index.js +0 -2
- data/app/pb_kits/playbook/tokens/_positioning.scss +0 -1
- data/app/pb_kits/playbook/utilities/_positioning.scss +1 -6
- data/app/pb_kits/playbook/utilities/globalProps.ts +1 -3
- data/dist/chunks/{_line_graph-CqE0-dq5.js → _line_graph-DY4PK6AH.js} +1 -1
- data/dist/chunks/_typeahead-fQDb_yVO.js +6 -0
- data/dist/chunks/{_weekday_stacked-W1kKx2Gl.js → _weekday_stacked-D_bGbWtk.js} +3 -3
- data/dist/chunks/{lib-CGxXTQ75.js → lib-QZuu1ltS.js} +1 -1
- data/dist/chunks/{pb_form_validation-DebqlUKZ.js → pb_form_validation-CleM960_.js} +1 -1
- data/dist/chunks/vendor.js +1 -1
- data/dist/menu.yml +0 -12
- data/dist/playbook-doc.js +2 -2
- 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/pb_forms_helper.rb +6 -7
- data/lib/playbook/version.rb +2 -2
- data/lib/playbook/z_index.rb +1 -1
- metadata +8 -101
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_background_control_rails.html.erb +0 -43
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_background_control_rails.md +0 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_per_row_rails.html.erb +0 -51
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_per_row_rails.md +0 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_rails.html.erb +0 -40
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_rails.md +0 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_mock_data_inline_loading_empty_children.js +0 -42
- data/app/pb_kits/playbook/pb_currency/docs/_currency_variants.md +0 -1
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_description.md +0 -3
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_description.md +0 -3
- data/app/pb_kits/playbook/pb_pb_gauge_chart/_pb_gauge_chart.scss +0 -3
- data/app/pb_kits/playbook/pb_pb_gauge_chart/_pb_gauge_chart.tsx +0 -69
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_description.md +0 -3
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_color.html.erb +0 -12
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_color.jsx +0 -24
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_color.md +0 -5
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_complex.html.erb +0 -45
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_complex.jsx +0 -119
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_complex.md +0 -1
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_default.html.erb +0 -5
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_default.jsx +0 -17
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_disable_animation.html.erb +0 -12
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_disable_animation.jsx +0 -24
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_full_circle.html.erb +0 -23
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_full_circle.jsx +0 -37
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_height.html.erb +0 -40
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_height.jsx +0 -56
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_live_data.jsx +0 -64
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_min_max.html.erb +0 -27
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_min_max.jsx +0 -40
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_min_max.md +0 -1
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_sizing.html.erb +0 -19
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_sizing.jsx +0 -65
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_sizing.md +0 -3
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_title.html.erb +0 -14
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_title.jsx +0 -27
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_units.html.erb +0 -39
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_units.jsx +0 -58
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_units.md +0 -1
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/example.yml +0 -29
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/index.js +0 -11
- data/app/pb_kits/playbook/pb_pb_gauge_chart/pbGaugeGraphTheme.ts +0 -91
- data/app/pb_kits/playbook/pb_pb_gauge_chart/pb_gauge_chart.html.erb +0 -1
- data/app/pb_kits/playbook/pb_pb_gauge_chart/pb_gauge_chart.rb +0 -25
- data/app/pb_kits/playbook/pb_pb_gauge_chart/pb_gauge_chart.test.jsx +0 -80
- data/app/pb_kits/playbook/pb_pb_line_graph/_pb_line_graph.scss +0 -3
- data/app/pb_kits/playbook/pb_pb_line_graph/_pb_line_graph.tsx +0 -61
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_description.md +0 -3
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_colors.html.erb +0 -34
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_colors.jsx +0 -52
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_colors.md +0 -5
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_default.html.erb +0 -34
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_default.jsx +0 -45
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_height.html.erb +0 -47
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_height.jsx +0 -64
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_height.md +0 -3
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend.html.erb +0 -24
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend.jsx +0 -37
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_nonclickable.html.erb +0 -39
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_nonclickable.jsx +0 -45
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_position.html.erb +0 -86
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_position.jsx +0 -116
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_position.md +0 -11
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/example.yml +0 -20
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/index.js +0 -6
- data/app/pb_kits/playbook/pb_pb_line_graph/pbLineGraphTheme.ts +0 -125
- data/app/pb_kits/playbook/pb_pb_line_graph/pb_line_graph.html.erb +0 -1
- data/app/pb_kits/playbook/pb_pb_line_graph/pb_line_graph.rb +0 -25
- data/app/pb_kits/playbook/pb_pb_line_graph/pb_line_graph.test.jsx +0 -110
- data/app/pb_kits/playbook/pb_popover/docs/_popover_append_to.jsx +0 -68
- data/app/pb_kits/playbook/pb_popover/docs/_popover_append_to_react.md +0 -1
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_attributes.jsx +0 -38
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_attributes.md +0 -1
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_focus.jsx +0 -34
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_focus.md +0 -1
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_inline.jsx +0 -37
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_inline.md +0 -1
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_simple.jsx +0 -37
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_sticky.jsx +0 -38
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_sticky.md +0 -1
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_templates.jsx +0 -69
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_templates.md +0 -1
- data/app/pb_kits/playbook/pb_table/docs/_table_with_dynamic_collapsible.html.erb +0 -63
- data/app/pb_kits/playbook/pb_table/docs/_table_with_dynamic_collapsible.jsx +0 -89
- data/app/pb_kits/playbook/pb_table/docs/_table_with_dynamic_collapsible_rails.md +0 -4
- data/app/pb_kits/playbook/pb_table/docs/_table_with_dynamic_collapsible_react.md +0 -3
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_options.html.erb +0 -64
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_options.jsx +0 -70
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_options.md +0 -1
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default_options.html.erb +0 -102
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default_options.md +0 -1
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default_value.jsx +0 -103
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default_value.md +0 -1
- data/dist/chunks/_typeahead-3ZAbZUqU.js +0 -6
- /data/app/pb_kits/playbook/pb_popover/docs/{_popover_append_to_rails.md → _popover_append_to.md} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
The `itemSpacing` prop can optionally be applied to the `Nav` parent element and accepts an object through which any of our Spacing
|
|
1
|
+
The `itemSpacing` prop can optionally be applied to the `Nav` parent element and accepts an object through which any of our [Spacing](https://playbook.powerapp.cloud/visual_guidelines/spacing) (padding, margin) global prop values can be passed as an object. All spacing values passed to `itemSpacing` will be applied to all navItems within the nav. Spacing (padding, margin) global props can still be used on nested navItems in conjunction with `itenSpacing` on the Nav for customized control. Any Spacing (padding,margin) global props applied directly to a navItem will override any competing `itemSpacing` value.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
All Nav variants' navItems accept our global Spacing
|
|
1
|
+
All Nav variants' navItems accept our [global Spacing](https://playbook.powerapp.cloud/visual_guidelines/spacing) (padding, margin) props for custom spacing requirements. This example uses paddingY="xxs" and margin="none" on the bold variant to show this in action!
|
|
@@ -2,4 +2,4 @@ The optional `layout` prop accepts the `position` and `size` of the overlay as a
|
|
|
2
2
|
|
|
3
3
|
The `position` key accepts `bottom` (default), `top`, `y` (for both top and bottom) `right`, `left`, or `x` (for both left and right), which sets the side(s) where the `color` overlay starts. The direction of the overlay is always toward the opposite side of the position. For example, the default position of `bottom` starts the overlay on the bottom edge of your container and extends it toward the opposite side: the top.
|
|
4
4
|
|
|
5
|
-
The `size` value is `full` (100%) by default, but accepts our spacing tokens
|
|
5
|
+
The `size` value is `full` (100%) by default, but accepts our [spacing tokens](https://playbook.powerapp.cloud/visual_guidelines/spacing) or a percentage value as a string, and literally translates to how much of the container is covered by the overlay(s).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { useMemo } from "react"
|
|
2
2
|
import { globalProps } from "../utilities/globalProps";
|
|
3
|
-
import { buildAriaProps, buildDataProps,
|
|
3
|
+
import { buildAriaProps, buildDataProps, buildHtmlProps } from "../utilities/props";
|
|
4
4
|
import Highcharts from "highcharts"
|
|
5
5
|
import HighchartsReact from "highcharts-react-official"
|
|
6
6
|
|
|
@@ -18,25 +18,23 @@ type PbBarGraphProps = {
|
|
|
18
18
|
htmlOptions?: {[key: string]: string | number | boolean | (() => void)};
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
const PbBarGraph = (
|
|
22
|
-
const {
|
|
21
|
+
const PbBarGraph = ({
|
|
23
22
|
aria = {},
|
|
24
23
|
data = {},
|
|
25
24
|
id,
|
|
26
25
|
htmlOptions = {},
|
|
27
26
|
options,
|
|
28
|
-
className,
|
|
29
|
-
}
|
|
27
|
+
className = "pb_pb_bar_graph",
|
|
28
|
+
}: PbBarGraphProps): React.ReactElement => {
|
|
30
29
|
|
|
31
30
|
const ariaProps = buildAriaProps(aria);
|
|
32
31
|
const dataProps = buildDataProps(data)
|
|
33
32
|
const htmlProps = buildHtmlProps(htmlOptions);
|
|
34
|
-
const classes = classnames(buildCss('pb_pb_bar_graph'), globalProps(props), className)
|
|
35
33
|
|
|
36
34
|
const mergedOptions = useMemo(() => {
|
|
37
35
|
if (!options || typeof options !== "object") {
|
|
38
36
|
// eslint-disable-next-line no-console
|
|
39
|
-
console.error("❌ Invalid options passed to <
|
|
37
|
+
console.error("❌ Invalid options passed to <BarGraph />", options)
|
|
40
38
|
return {}
|
|
41
39
|
}
|
|
42
40
|
|
|
@@ -48,7 +46,7 @@ const {
|
|
|
48
46
|
<div>
|
|
49
47
|
<HighchartsReact
|
|
50
48
|
containerProps={{
|
|
51
|
-
className: classnames(
|
|
49
|
+
className: classnames(globalProps, className),
|
|
52
50
|
id: id,
|
|
53
51
|
...ariaProps,
|
|
54
52
|
...dataProps,
|
|
@@ -4,21 +4,24 @@ module Playbook
|
|
|
4
4
|
module PbPbBarGraph
|
|
5
5
|
class PbBarGraph < ::Playbook::KitBase
|
|
6
6
|
prop :options, default: {}
|
|
7
|
+
prop :container_props, default: {}
|
|
7
8
|
|
|
8
9
|
def react_props
|
|
9
10
|
{
|
|
10
|
-
className: classname,
|
|
11
|
-
data: data,
|
|
12
11
|
options: options,
|
|
13
|
-
|
|
12
|
+
containerProps: container_props_hash,
|
|
14
13
|
}
|
|
15
14
|
end
|
|
16
15
|
|
|
16
|
+
def container_props_hash
|
|
17
|
+
container_props.merge({
|
|
18
|
+
id: id,
|
|
19
|
+
className: classname,
|
|
20
|
+
}).compact
|
|
21
|
+
end
|
|
22
|
+
|
|
17
23
|
def classname
|
|
18
|
-
|
|
19
|
-
# we pass an empty string here to avoid conflicts, classname is built in the TSX
|
|
20
|
-
# We still need generate_classnames to retain ability to pass in custom classnames or global props
|
|
21
|
-
generate_classname("")
|
|
24
|
+
generate_classname("pb_pb_bar_graph")
|
|
22
25
|
end
|
|
23
26
|
end
|
|
24
27
|
end
|
|
@@ -15,41 +15,6 @@ afterEach(() => {
|
|
|
15
15
|
console.warn.mockRestore();
|
|
16
16
|
});
|
|
17
17
|
|
|
18
|
-
const chartData = [{
|
|
19
|
-
name: 'Installation',
|
|
20
|
-
data: [1475, 200, 3000, 654, 656],
|
|
21
|
-
}, {
|
|
22
|
-
name: 'Manufacturing',
|
|
23
|
-
data: [4434, 524, 2320, 440, 500],
|
|
24
|
-
}, {
|
|
25
|
-
name: 'Sales & Distribution',
|
|
26
|
-
data: [3387, 743, 1344, 434, 440],
|
|
27
|
-
}, {
|
|
28
|
-
name: 'Project Development',
|
|
29
|
-
data: [3227, 878, 999, 780, 1000],
|
|
30
|
-
}, {
|
|
31
|
-
name: 'Other',
|
|
32
|
-
data: [1111, 677, 3245, 500, 200],
|
|
33
|
-
}]
|
|
34
|
-
|
|
35
|
-
const chartOptions = {
|
|
36
|
-
series: chartData,
|
|
37
|
-
title: {
|
|
38
|
-
text: 'Solar Employment Growth by Sector, 2010-2016',
|
|
39
|
-
},
|
|
40
|
-
subtitle: {
|
|
41
|
-
text: 'Source: thesolarfoundation.com',
|
|
42
|
-
},
|
|
43
|
-
xAxis: {
|
|
44
|
-
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May'],
|
|
45
|
-
},
|
|
46
|
-
yAxis: {
|
|
47
|
-
title: {
|
|
48
|
-
text: 'Number of Employees',
|
|
49
|
-
},
|
|
50
|
-
},
|
|
51
|
-
}
|
|
52
|
-
|
|
53
18
|
const testId = 'bargraph1';
|
|
54
19
|
|
|
55
20
|
test('bargraph uses exact classname', () => {
|
|
@@ -58,46 +23,9 @@ test('bargraph uses exact classname', () => {
|
|
|
58
23
|
className='super_important_class'
|
|
59
24
|
data={{ testid: testId }}
|
|
60
25
|
id='bar-default'
|
|
61
|
-
options={chartOptions}
|
|
62
26
|
/>
|
|
63
27
|
);
|
|
64
28
|
|
|
65
29
|
const kit = screen.getByTestId(testId);
|
|
66
30
|
expect(kit).toHaveClass('super_important_class');
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
test('Kit to apply base classname', () => {
|
|
70
|
-
render(
|
|
71
|
-
<PbBarGraph
|
|
72
|
-
data={{testid: testId}}
|
|
73
|
-
options={chartOptions}
|
|
74
|
-
/>
|
|
75
|
-
)
|
|
76
|
-
|
|
77
|
-
expect(screen.getByTestId(testId)).toHaveClass('pb_pb_bar_graph')
|
|
78
|
-
})
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
test('Kit to apply global props', () => {
|
|
82
|
-
render(
|
|
83
|
-
<PbBarGraph
|
|
84
|
-
data={{testid: testId}}
|
|
85
|
-
margin="lg"
|
|
86
|
-
options={chartOptions}
|
|
87
|
-
/>
|
|
88
|
-
)
|
|
89
|
-
|
|
90
|
-
expect(screen.getByTestId(testId)).toHaveClass('m_lg')
|
|
91
|
-
})
|
|
92
|
-
|
|
93
|
-
test('kit to apply id', () => {
|
|
94
|
-
render(
|
|
95
|
-
<PbBarGraph
|
|
96
|
-
data={{testid: testId}}
|
|
97
|
-
id='bar-graph-id'
|
|
98
|
-
options={chartOptions}
|
|
99
|
-
/>
|
|
100
|
-
)
|
|
101
|
-
|
|
102
|
-
expect(screen.getByTestId(testId)).toHaveAttribute('id', 'bar-graph-id')
|
|
103
|
-
})
|
|
31
|
+
});
|
|
@@ -4,21 +4,24 @@ module Playbook
|
|
|
4
4
|
module PbPbCircleChart
|
|
5
5
|
class PbCircleChart < ::Playbook::KitBase
|
|
6
6
|
prop :options, default: {}
|
|
7
|
+
prop :container_props, default: {}
|
|
7
8
|
|
|
8
9
|
def react_props
|
|
9
10
|
{
|
|
10
|
-
className: classname,
|
|
11
|
-
data: data,
|
|
12
11
|
options: options,
|
|
13
|
-
|
|
12
|
+
containerProps: container_props_hash,
|
|
14
13
|
}
|
|
15
14
|
end
|
|
16
15
|
|
|
16
|
+
def container_props_hash
|
|
17
|
+
container_props.merge({
|
|
18
|
+
id: id,
|
|
19
|
+
className: classname,
|
|
20
|
+
}).compact
|
|
21
|
+
end
|
|
22
|
+
|
|
17
23
|
def classname
|
|
18
|
-
|
|
19
|
-
# we pass an empty string here to avoid conflicts, classname is built in the TSX
|
|
20
|
-
# We still need generate_classnames to retain ability to pass in custom classnames or global props
|
|
21
|
-
generate_classname("")
|
|
24
|
+
generate_classname("pb_pb_circle_chart")
|
|
22
25
|
end
|
|
23
26
|
end
|
|
24
27
|
end
|
|
@@ -49,50 +49,3 @@ test('Kit to exist', () => {
|
|
|
49
49
|
expect(screen.getByTestId(testId)).toBeInTheDocument()
|
|
50
50
|
})
|
|
51
51
|
|
|
52
|
-
test('Kit to apply base classname', () => {
|
|
53
|
-
render(
|
|
54
|
-
<PbCircleChart
|
|
55
|
-
data={{testid: testId}}
|
|
56
|
-
options={chartOptions}
|
|
57
|
-
/>
|
|
58
|
-
)
|
|
59
|
-
|
|
60
|
-
expect(screen.getByTestId(testId)).toHaveClass('pb_pb_circle_chart')
|
|
61
|
-
})
|
|
62
|
-
|
|
63
|
-
test('Kit to have custom class', () => {
|
|
64
|
-
render(
|
|
65
|
-
<PbCircleChart
|
|
66
|
-
className='custom-class'
|
|
67
|
-
data={{testid: testId}}
|
|
68
|
-
options={chartOptions}
|
|
69
|
-
/>
|
|
70
|
-
)
|
|
71
|
-
|
|
72
|
-
expect(screen.getByTestId(testId)).toHaveClass('custom-class')
|
|
73
|
-
})
|
|
74
|
-
|
|
75
|
-
test('Kit to apply global props', () => {
|
|
76
|
-
render(
|
|
77
|
-
<PbCircleChart
|
|
78
|
-
data={{testid: testId}}
|
|
79
|
-
margin="lg"
|
|
80
|
-
options={chartOptions}
|
|
81
|
-
/>
|
|
82
|
-
)
|
|
83
|
-
|
|
84
|
-
expect(screen.getByTestId(testId)).toHaveClass('m_lg')
|
|
85
|
-
})
|
|
86
|
-
|
|
87
|
-
test('kit to apply id', () => {
|
|
88
|
-
render(
|
|
89
|
-
<PbCircleChart
|
|
90
|
-
data={{testid: testId}}
|
|
91
|
-
id='circle-chart-id'
|
|
92
|
-
options={chartOptions}
|
|
93
|
-
/>
|
|
94
|
-
)
|
|
95
|
-
|
|
96
|
-
expect(screen.getByTestId(testId)).toHaveAttribute('id', 'circle-chart-id')
|
|
97
|
-
})
|
|
98
|
-
|
|
@@ -314,18 +314,14 @@ const PhoneNumberInput = (props: PhoneNumberInputProps, ref?: React.Ref<unknown>
|
|
|
314
314
|
|
|
315
315
|
const handleOnChange = (evt: React.ChangeEvent<HTMLInputElement>) => {
|
|
316
316
|
if (!hasTyped) setHasTyped(true)
|
|
317
|
-
|
|
318
317
|
setInputValue(evt.target.value)
|
|
319
|
-
|
|
320
318
|
let phoneNumberData
|
|
321
|
-
|
|
322
319
|
if (formatAsYouType) {
|
|
323
320
|
const formattedPhoneNumberData = getCurrentSelectedData(itiRef.current, evt.target.value)
|
|
324
321
|
phoneNumberData = {...formattedPhoneNumberData, number: unformatNumber(formattedPhoneNumberData.number)}
|
|
325
322
|
} else {
|
|
326
323
|
phoneNumberData = getCurrentSelectedData(itiRef.current, evt.target.value)
|
|
327
324
|
}
|
|
328
|
-
|
|
329
325
|
setSelectedData(phoneNumberData)
|
|
330
326
|
onChange(phoneNumberData)
|
|
331
327
|
isValid(itiRef.current.isValidNumber())
|
|
@@ -374,26 +370,11 @@ const PhoneNumberInput = (props: PhoneNumberInputProps, ref?: React.Ref<unknown>
|
|
|
374
370
|
|
|
375
371
|
inputRef.current.addEventListener("open:countrydropdown", () => setDropDownIsOpen(true))
|
|
376
372
|
inputRef.current.addEventListener("close:countrydropdown", () => setDropDownIsOpen(false))
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
const formattedValue = target.value
|
|
383
|
-
|
|
384
|
-
// Update internal state
|
|
385
|
-
setInputValue(formattedValue)
|
|
386
|
-
setHasTyped(true)
|
|
387
|
-
|
|
388
|
-
// Get phone number data with unformatted number
|
|
389
|
-
const formattedPhoneNumberData = getCurrentSelectedData(telInputInit, formattedValue)
|
|
390
|
-
const phoneNumberData = {...formattedPhoneNumberData, number: unformatNumber(formattedPhoneNumberData.number)}
|
|
391
|
-
|
|
392
|
-
setSelectedData(phoneNumberData)
|
|
393
|
-
onChange(phoneNumberData)
|
|
394
|
-
isValid(telInputInit.isValidNumber())
|
|
395
|
-
})
|
|
396
|
-
}
|
|
373
|
+
}
|
|
374
|
+
if (formatAsYouType) {
|
|
375
|
+
inputRef.current?.addEventListener("input", (evt) => {
|
|
376
|
+
handleOnChange(evt as unknown as React.ChangeEvent<HTMLInputElement>);
|
|
377
|
+
});
|
|
397
378
|
}
|
|
398
379
|
}, [])
|
|
399
380
|
|
|
@@ -408,7 +389,7 @@ const PhoneNumberInput = (props: PhoneNumberInputProps, ref?: React.Ref<unknown>
|
|
|
408
389
|
label,
|
|
409
390
|
name,
|
|
410
391
|
onBlur: validateErrors,
|
|
411
|
-
onChange:
|
|
392
|
+
onChange: handleOnChange,
|
|
412
393
|
value: inputValue
|
|
413
394
|
}
|
|
414
395
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
A pill uses both a keyword and a specific color to categorize an item. Each pill directly corresponds to a data color <a href="https://playbook.powerapp.cloud/
|
|
1
|
+
A pill uses both a keyword and a specific color to categorize an item. Each pill directly corresponds to a data color <a href="https://playbook.powerapp.cloud/visual_guidelines/colors" target="_blank">here</a>.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable react/no-multi-comp */
|
|
2
|
-
import React, { useEffect,
|
|
2
|
+
import React, { useEffect, useState } from "react";
|
|
3
3
|
import ReactDOM from "react-dom";
|
|
4
4
|
import {
|
|
5
5
|
Popper,
|
|
@@ -24,7 +24,6 @@ import { uniqueId } from '../utilities/object';
|
|
|
24
24
|
type ModifiedGlobalProps = Omit<GlobalProps, 'minWidth' | 'maxHeight' | 'minHeight'>
|
|
25
25
|
|
|
26
26
|
type PbPopoverProps = {
|
|
27
|
-
appendTo?: string;
|
|
28
27
|
aria?: { [key: string]: string };
|
|
29
28
|
className?: string;
|
|
30
29
|
closeOnClick?: "outside" | "inside" | "any";
|
|
@@ -63,25 +62,6 @@ const popoverModifiers = ({
|
|
|
63
62
|
return offset ? modifiers.concat([POPOVER_MODIFIERS.offset]) : modifiers;
|
|
64
63
|
};
|
|
65
64
|
|
|
66
|
-
const getAppendTarget = (
|
|
67
|
-
appendTo: string | undefined,
|
|
68
|
-
targetId: string
|
|
69
|
-
): HTMLElement => {
|
|
70
|
-
if (!appendTo || appendTo === "body") return document.body;
|
|
71
|
-
|
|
72
|
-
if (appendTo === "parent") {
|
|
73
|
-
const referenceWrapper = document.querySelector(`#reference-${targetId}`);
|
|
74
|
-
if (referenceWrapper?.parentElement) {
|
|
75
|
-
return referenceWrapper.parentElement;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
const selectorMatch = document.querySelector(appendTo);
|
|
80
|
-
if (selectorMatch instanceof HTMLElement) return selectorMatch;
|
|
81
|
-
|
|
82
|
-
return document.body;
|
|
83
|
-
};
|
|
84
|
-
|
|
85
65
|
const Popover = (props: PbPopoverProps) => {
|
|
86
66
|
const {
|
|
87
67
|
aria = {},
|
|
@@ -109,7 +89,7 @@ const Popover = (props: PbPopoverProps) => {
|
|
|
109
89
|
const popoverSpacing =
|
|
110
90
|
filteredGlobalProps.includes("dark") || !filteredGlobalProps
|
|
111
91
|
? "p_sm"
|
|
112
|
-
: filteredGlobalProps
|
|
92
|
+
: filteredGlobalProps
|
|
113
93
|
const overflowHandling = maxHeight || maxWidth ? "overflow_handling" : "";
|
|
114
94
|
const zIndexStyle = zIndex ? { zIndex: zIndex } : {};
|
|
115
95
|
const widthHeightStyles = () => {
|
|
@@ -133,7 +113,7 @@ const Popover = (props: PbPopoverProps) => {
|
|
|
133
113
|
|
|
134
114
|
return (
|
|
135
115
|
<Popper
|
|
136
|
-
modifiers={popoverModifiers({ modifiers, offset
|
|
116
|
+
modifiers={popoverModifiers({ modifiers, offset })}
|
|
137
117
|
placement={placement}
|
|
138
118
|
referenceElement={referenceElement}
|
|
139
119
|
>
|
|
@@ -174,7 +154,6 @@ const Popover = (props: PbPopoverProps) => {
|
|
|
174
154
|
const PbReactPopover = (props: PbPopoverProps): React.ReactElement => {
|
|
175
155
|
const [targetId] = useState(uniqueId('id-'))
|
|
176
156
|
const {
|
|
177
|
-
appendTo,
|
|
178
157
|
className,
|
|
179
158
|
children,
|
|
180
159
|
modifiers = [],
|
|
@@ -191,56 +170,42 @@ const PbReactPopover = (props: PbPopoverProps): React.ReactElement => {
|
|
|
191
170
|
minHeight,
|
|
192
171
|
minWidth,
|
|
193
172
|
width,
|
|
194
|
-
closeOnClick,
|
|
195
|
-
shouldClosePopover = noop,
|
|
196
173
|
} = props;
|
|
197
174
|
|
|
198
|
-
// Store latest callback in a ref to avoid re-runs
|
|
199
|
-
const shouldClosePopoverRef = useRef(shouldClosePopover);
|
|
200
|
-
|
|
201
|
-
// Update ref on change
|
|
202
175
|
useEffect(() => {
|
|
203
|
-
|
|
204
|
-
}, [shouldClosePopover]);
|
|
176
|
+
const { closeOnClick, shouldClosePopover = noop } = props;
|
|
205
177
|
|
|
206
|
-
useEffect(() => {
|
|
207
178
|
if (!closeOnClick) return;
|
|
208
179
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
const handleClick = (e: MouseEvent) => {
|
|
214
|
-
const target = e.target as HTMLElement
|
|
215
|
-
|
|
216
|
-
const targetIsPopover =
|
|
217
|
-
target.closest("#" + targetId) !== null;
|
|
218
|
-
const targetIsReference =
|
|
219
|
-
target.closest("#reference-" + targetId) !== null;
|
|
180
|
+
document.body.addEventListener(
|
|
181
|
+
"click",
|
|
182
|
+
(e: MouseEvent) => {
|
|
183
|
+
const target = e.target as HTMLElement
|
|
220
184
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
185
|
+
const targetIsPopover =
|
|
186
|
+
target.closest("#" + targetId) !== null;
|
|
187
|
+
const targetIsReference =
|
|
188
|
+
target.closest("#reference-" + targetId) !== null;
|
|
224
189
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
break;
|
|
229
|
-
case "inside":
|
|
230
|
-
if (targetIsPopover) shouldClose();
|
|
231
|
-
break;
|
|
232
|
-
case "any":
|
|
233
|
-
if (targetIsPopover || !targetIsPopover && !targetIsReference) shouldClose();
|
|
234
|
-
break;
|
|
235
|
-
}
|
|
236
|
-
};
|
|
190
|
+
const shouldClose = () => {
|
|
191
|
+
setTimeout(() => shouldClosePopover(true), 0);
|
|
192
|
+
}
|
|
237
193
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
194
|
+
switch (closeOnClick) {
|
|
195
|
+
case "outside":
|
|
196
|
+
if (!targetIsPopover && !targetIsReference) shouldClose();
|
|
197
|
+
break;
|
|
198
|
+
case "inside":
|
|
199
|
+
if (targetIsPopover) shouldClose();
|
|
200
|
+
break;
|
|
201
|
+
case "any":
|
|
202
|
+
if (targetIsPopover || !targetIsPopover && !targetIsReference) shouldClose();
|
|
203
|
+
break;
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
{ capture: true }
|
|
207
|
+
);
|
|
208
|
+
}, []);
|
|
244
209
|
|
|
245
210
|
const popoverComponent = (
|
|
246
211
|
<Popover
|
|
@@ -281,10 +246,10 @@ const PbReactPopover = (props: PbPopoverProps): React.ReactElement => {
|
|
|
281
246
|
{show &&
|
|
282
247
|
(usePortal ? (
|
|
283
248
|
<>
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
249
|
+
{ReactDOM.createPortal(
|
|
250
|
+
popoverComponent,
|
|
251
|
+
document.querySelector(portal)
|
|
252
|
+
)}
|
|
288
253
|
</>
|
|
289
254
|
) : (
|
|
290
255
|
{ popoverComponent }
|
|
@@ -4,4 +4,3 @@ export { default as PopoverClose } from './_popover_close.jsx'
|
|
|
4
4
|
export { default as PopoverZIndex } from './_popover_z_index.jsx'
|
|
5
5
|
export { default as PopoverScrollHeight } from './_popover_scroll_height.jsx'
|
|
6
6
|
export { default as PopoverActionableContent } from './_popover_actionable_content.jsx'
|
|
7
|
-
export { default as PopoverAppendTo } from './_popover_append_to.jsx'
|
|
@@ -159,62 +159,6 @@ const PopoverTestClicktoClose3 = () => {
|
|
|
159
159
|
)
|
|
160
160
|
};
|
|
161
161
|
|
|
162
|
-
//Test Popover with appendTo="parent"
|
|
163
|
-
const PopoverTestAppendToParent = () => {
|
|
164
|
-
const [mockState, setMockState] = React.useState(false)
|
|
165
|
-
const togglePopover = () => {
|
|
166
|
-
setMockState(!mockState)
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
const popoverReference = (
|
|
170
|
-
<Button onClick={togglePopover}
|
|
171
|
-
text="Click Me"
|
|
172
|
-
/>
|
|
173
|
-
);
|
|
174
|
-
return (
|
|
175
|
-
<div data-testid="parent-container"
|
|
176
|
-
id="parent-container"
|
|
177
|
-
>
|
|
178
|
-
<PbReactPopover
|
|
179
|
-
appendTo="parent"
|
|
180
|
-
offset
|
|
181
|
-
reference={popoverReference}
|
|
182
|
-
show={mockState}
|
|
183
|
-
>
|
|
184
|
-
{"Appended to parent"}
|
|
185
|
-
</PbReactPopover>
|
|
186
|
-
</div>
|
|
187
|
-
)
|
|
188
|
-
};
|
|
189
|
-
|
|
190
|
-
//Test Popover with appendTo CSS selector
|
|
191
|
-
const PopoverTestAppendToSelector = () => {
|
|
192
|
-
const [mockState, setMockState] = React.useState(false)
|
|
193
|
-
const togglePopover = () => {
|
|
194
|
-
setMockState(!mockState)
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
const popoverReference = (
|
|
198
|
-
<Button onClick={togglePopover}
|
|
199
|
-
text="Click Me"
|
|
200
|
-
/>
|
|
201
|
-
);
|
|
202
|
-
return (
|
|
203
|
-
<div data-testid="custom-container"
|
|
204
|
-
id="custom-container"
|
|
205
|
-
>
|
|
206
|
-
<PbReactPopover
|
|
207
|
-
appendTo="#custom-container"
|
|
208
|
-
offset
|
|
209
|
-
reference={popoverReference}
|
|
210
|
-
show={mockState}
|
|
211
|
-
>
|
|
212
|
-
{"Appended to custom container"}
|
|
213
|
-
</PbReactPopover>
|
|
214
|
-
</div>
|
|
215
|
-
)
|
|
216
|
-
};
|
|
217
|
-
|
|
218
162
|
|
|
219
163
|
test("renders Popover", () => {
|
|
220
164
|
render(<PopoverTest data={{ testid: testId}}/>)
|
|
@@ -273,28 +217,4 @@ const PopoverTestAppendToSelector = () => {
|
|
|
273
217
|
fireEvent.click(btn);
|
|
274
218
|
|
|
275
219
|
expect(kit).not.toBeInTheDocument;
|
|
276
|
-
});
|
|
277
|
-
|
|
278
|
-
test("renders Popover with appendTo parent", () => {
|
|
279
|
-
render(<PopoverTestAppendToParent data={{ testid: testId}}/>)
|
|
280
|
-
const btn = screen.getByText(/click me/i)
|
|
281
|
-
fireEvent.click(btn);
|
|
282
|
-
const kit = screen.getByText("Appended to parent");
|
|
283
|
-
expect(kit).toBeInTheDocument();
|
|
284
|
-
|
|
285
|
-
// Check that the popover is rendered inside the parent container
|
|
286
|
-
const parentContainer = screen.getByTestId("parent-container");
|
|
287
|
-
expect(parentContainer).toContainElement(kit);
|
|
288
|
-
});
|
|
289
|
-
|
|
290
|
-
test("renders Popover with appendTo CSS selector", () => {
|
|
291
|
-
render(<PopoverTestAppendToSelector data={{ testid: testId}}/>)
|
|
292
|
-
const btn = screen.getByText(/click me/i)
|
|
293
|
-
fireEvent.click(btn);
|
|
294
|
-
const kit = screen.getByText("Appended to custom container");
|
|
295
|
-
expect(kit).toBeInTheDocument();
|
|
296
|
-
|
|
297
|
-
// Check that the popover is rendered inside the custom container
|
|
298
|
-
const customContainer = screen.getByTestId("custom-container");
|
|
299
|
-
expect(customContainer).toContainElement(kit);
|
|
300
220
|
});
|