playbook_ui 15.4.0 → 15.5.0.pre.alpha.PLAY2554homeaddressstreetaccessibility12695
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/pb_advanced_table/_advanced_table.scss +96 -6
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling.jsx +2 -1
- 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_fullscreen.jsx +3 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_infinite_scroll.jsx +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_inline_editing.jsx +3 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling.jsx +2 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.html.erb +1 -1
- data/app/pb_kits/playbook/pb_copy_button/_copy_button.tsx +21 -8
- data/app/pb_kits/playbook/pb_copy_button/copy_button.html.erb +6 -2
- data/app/pb_kits/playbook/pb_copy_button/copy_button.rb +3 -0
- data/app/pb_kits/playbook/pb_copy_button/copy_button.test.jsx +24 -0
- data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_button_variant.html.erb +9 -0
- data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_button_variant.jsx +24 -0
- data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_button_variant_rails.md +1 -0
- data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_button_variant_react.md +1 -0
- data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_default.html.erb +2 -2
- data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_default.jsx +1 -2
- data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_from.html.erb +2 -2
- data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_from.jsx +2 -0
- data/app/pb_kits/playbook/pb_copy_button/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_copy_button/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_currency/docs/_currency_abbreviated.md +1 -0
- data/app/pb_kits/playbook/pb_currency/docs/_currency_matching_decimals_rails.md +1 -0
- data/app/pb_kits/playbook/pb_currency/docs/_currency_matching_decimals_react.md +1 -0
- data/app/pb_kits/playbook/pb_currency/docs/_currency_negative.html.erb +10 -0
- data/app/pb_kits/playbook/pb_currency/docs/_currency_negative.jsx +10 -0
- data/app/pb_kits/playbook/pb_currency/docs/_currency_negative.md +1 -0
- data/app/pb_kits/playbook/pb_currency/docs/_currency_no_symbol_rails.md +1 -0
- data/app/pb_kits/playbook/pb_currency/docs/_currency_no_symbol_react.md +1 -0
- data/app/pb_kits/playbook/pb_currency/docs/_currency_variants.html.erb +7 -0
- data/app/pb_kits/playbook/pb_currency/docs/_currency_variants.jsx +7 -0
- data/app/pb_kits/playbook/pb_currency/docs/_description.md +2 -2
- data/app/pb_kits/playbook/pb_date_picker/date_picker.html.erb +25 -11
- data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.ts +44 -3
- data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.tsx +20 -13
- data/app/pb_kits/playbook/pb_date_range_inline/date_range_inline.rb +6 -4
- data/app/pb_kits/playbook/pb_date_range_inline/date_range_inline.test.js +17 -0
- data/app/pb_kits/playbook/pb_date_range_inline/docs/_date_range_inline_show_current_year.html.erb +4 -0
- data/app/pb_kits/playbook/pb_date_range_inline/docs/_date_range_inline_show_current_year.jsx +43 -0
- data/app/pb_kits/playbook/pb_date_range_inline/docs/_date_range_inline_show_current_year.md +1 -0
- data/app/pb_kits/playbook/pb_date_range_inline/docs/_description.md +1 -1
- data/app/pb_kits/playbook/pb_date_range_inline/docs/example.yml +3 -2
- data/app/pb_kits/playbook/pb_date_range_inline/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.tsx +6 -4
- data/app/pb_kits/playbook/pb_date_stacked/date_stacked.html.erb +2 -3
- data/app/pb_kits/playbook/pb_date_stacked/date_stacked.rb +11 -5
- data/app/pb_kits/playbook/pb_date_stacked/date_stacked.test.js +26 -9
- data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_current_year.html.erb +12 -0
- data/app/pb_kits/playbook/pb_date_stacked/docs/{_date_stacked_not_current_year.jsx → _date_stacked_current_year.jsx} +6 -5
- data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_current_year.md +1 -0
- data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_default.html.erb +1 -1
- data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_default.jsx +1 -1
- data/app/pb_kits/playbook/pb_date_stacked/docs/_description.md +1 -1
- data/app/pb_kits/playbook/pb_date_stacked/docs/example.yml +2 -2
- data/app/pb_kits/playbook/pb_date_stacked/docs/index.js +1 -1
- data/app/pb_kits/playbook/pb_date_time/_date_time.tsx +3 -0
- data/app/pb_kits/playbook/pb_date_time/date_time.html.erb +1 -0
- data/app/pb_kits/playbook/pb_date_time/date_time.rb +1 -0
- data/app/pb_kits/playbook/pb_date_time/docs/_date_time_show_current_year.html.erb +4 -0
- data/app/pb_kits/playbook/pb_date_time/docs/_date_time_show_current_year.jsx +14 -0
- data/app/pb_kits/playbook/pb_date_time/docs/_date_time_show_current_year_rails.md +1 -0
- data/app/pb_kits/playbook/pb_date_time/docs/_date_time_show_current_year_react.md +1 -0
- data/app/pb_kits/playbook/pb_date_time/docs/example.yml +3 -1
- data/app/pb_kits/playbook/pb_date_time/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.tsx +3 -0
- data/app/pb_kits/playbook/pb_date_time_stacked/date_time_stacked.html.erb +2 -2
- data/app/pb_kits/playbook/pb_date_time_stacked/date_time_stacked.rb +2 -0
- data/app/pb_kits/playbook/pb_date_time_stacked/date_time_stacked.test.js +33 -0
- data/app/pb_kits/playbook/pb_date_time_stacked/docs/_date_time_stacked_show_current_year.html.erb +4 -0
- data/app/pb_kits/playbook/pb_date_time_stacked/docs/_date_time_stacked_show_current_year.jsx +22 -0
- data/app/pb_kits/playbook/pb_date_time_stacked/docs/_date_time_stacked_show_current_year.md +1 -0
- data/app/pb_kits/playbook/pb_date_time_stacked/docs/example.yml +3 -1
- data/app/pb_kits/playbook/pb_date_time_stacked/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_dialog/docs/_dialog_compound_components.html.erb +33 -2
- data/app/pb_kits/playbook/pb_dialog/index.js +15 -10
- data/app/pb_kits/playbook/pb_draggable/context/index.tsx +156 -6
- data/app/pb_kits/playbook/pb_draggable/context/types.ts +8 -3
- data/app/pb_kits/playbook/pb_draggable/docs/_draggable_multiple_containers_dropzone.jsx +180 -0
- data/app/pb_kits/playbook/pb_draggable/docs/_draggable_multiple_containers_dropzone.md +22 -0
- data/app/pb_kits/playbook/pb_draggable/docs/example.yml +3 -2
- data/app/pb_kits/playbook/pb_draggable/docs/index.js +2 -1
- data/app/pb_kits/playbook/pb_draggable/draggable.test.jsx +77 -1
- data/app/pb_kits/playbook/pb_dropdown/index.js +32 -14
- data/app/pb_kits/playbook/pb_empty_state/docs/_empty_state_alignment.jsx +2 -1
- data/app/pb_kits/playbook/pb_empty_state/docs/_empty_state_default.jsx +2 -1
- data/app/pb_kits/playbook/pb_empty_state/docs/_empty_state_orientation.jsx +2 -1
- data/app/pb_kits/playbook/pb_empty_state/docs/_empty_state_size.jsx +2 -1
- data/app/pb_kits/playbook/pb_file_upload/_file_upload.scss +4 -4
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.tsx +31 -9
- data/app/pb_kits/playbook/pb_flex/_flex_item.tsx +12 -5
- data/app/pb_kits/playbook/pb_flex/docs/_flex_item_example.jsx +1 -0
- data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_wrapped.jsx +4 -1
- data/app/pb_kits/playbook/pb_home_address_street/_home_address_street.tsx +34 -22
- data/app/pb_kits/playbook/pb_home_address_street/city_emphasis.html.erb +16 -12
- data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_default.html.erb +124 -0
- data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_default.jsx +147 -12
- data/app/pb_kits/playbook/pb_home_address_street/none_emphasis.html.erb +16 -12
- data/app/pb_kits/playbook/pb_home_address_street/street_emphasis.html.erb +16 -12
- data/app/pb_kits/playbook/pb_loading_inline/docs/_loading_inline_variant.jsx +1 -1
- data/app/pb_kits/playbook/pb_nav/_item.tsx +18 -4
- data/app/pb_kits/playbook/pb_nav/_nav.scss +30 -5
- data/app/pb_kits/playbook/pb_nav/_nav_item.test.js +192 -0
- data/app/pb_kits/playbook/pb_nav/_vertical_nav.scss +1 -1
- data/app/pb_kits/playbook/pb_nav/docs/_horizontal_nav_disabled.html.erb +21 -0
- data/app/pb_kits/playbook/pb_nav/docs/_horizontal_nav_disabled.jsx +113 -0
- data/app/pb_kits/playbook/pb_nav/docs/_horizontal_nav_disabled.md +1 -0
- data/app/pb_kits/playbook/pb_nav/docs/_vertical_nav_disabled.html.erb +30 -0
- data/app/pb_kits/playbook/pb_nav/docs/_vertical_nav_disabled.jsx +117 -0
- data/app/pb_kits/playbook/pb_nav/docs/_vertical_nav_disabled.md +1 -0
- data/app/pb_kits/playbook/pb_nav/docs/example.yml +4 -0
- data/app/pb_kits/playbook/pb_nav/docs/index.js +3 -1
- data/app/pb_kits/playbook/pb_nav/item.html.erb +6 -4
- data/app/pb_kits/playbook/pb_nav/item.rb +11 -2
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_description.md +3 -1
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_colors.jsx +1 -1
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_default.jsx +1 -1
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_default.md +1 -0
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_height.jsx +1 -1
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_horizontal.jsx +1 -1
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_legend.jsx +1 -1
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_legend_non_clickable.jsx +1 -2
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_legend_position.html.erb +1 -1
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_legend_position.jsx +1 -1
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_legend_position.md +11 -0
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_negative_numbers.jsx +1 -1
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_secondary_y_axis.jsx +1 -1
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_spline.jsx +1 -2
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_stacked.jsx +1 -2
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_description.md +3 -1
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_block_content.jsx +2 -1
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_color_overrides.jsx +2 -1
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_custom_tooltip.jsx +1 -1
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_custom_tooltip.md +2 -1
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_legend_position.jsx +2 -1
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_with_labels.jsx +1 -1
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_with_legend.jsx +1 -1
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_default.jsx +1 -1
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_default.md +1 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_inner_sizes.jsx +1 -1
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_live_data.jsx +2 -1
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_rounded.jsx +1 -1
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_with_title.jsx +1 -1
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_description.md +3 -1
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_color.jsx +1 -1
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_color.md +2 -2
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_complex.jsx +2 -1
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_default.md +1 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_full_circle.jsx +2 -1
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_height.jsx +2 -1
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_min_max.jsx +2 -1
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_units.jsx +2 -1
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_description.md +3 -1
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_colors.jsx +1 -1
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_default.md +1 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_position.html.erb +1 -1
- data/app/pb_kits/playbook/pb_popover/docs/_popover_append_to.jsx +4 -1
- data/app/pb_kits/playbook/pb_progress_step/_progress_step.scss +384 -262
- data/app/pb_kits/playbook/pb_progress_step/docs/_description.md +1 -5
- data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_color.html.erb +14 -0
- data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_color.jsx +29 -0
- data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_color.md +3 -0
- data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_custom_icon.jsx +31 -0
- data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_custom_icon.md +1 -0
- data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_default.html.erb +4 -1
- data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_default.jsx +14 -3
- data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_default.md +3 -0
- data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_tracker.md +3 -0
- data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_vertical.html.erb +1 -7
- data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_vertical.md +1 -0
- data/app/pb_kits/playbook/pb_progress_step/docs/example.yml +3 -0
- data/app/pb_kits/playbook/pb_progress_step/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_progress_step/progress_step.test.js +41 -0
- data/app/pb_kits/playbook/pb_radio/docs/_radio_react_hook.jsx +3 -1
- data/app/pb_kits/playbook/pb_select/docs/_select_react_hook.jsx +3 -1
- data/app/pb_kits/playbook/pb_table/_table.tsx +28 -26
- data/app/pb_kits/playbook/pb_table/styles/_vertical_border.scss +49 -0
- data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_sizing.jsx +4 -1
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +4 -0
- data/app/pb_kits/playbook/pb_typeahead/components/ClearIndicator.tsx +13 -2
- data/app/pb_kits/playbook/pb_typeahead/components/MultiValue.tsx +1 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_react_hook.jsx +2 -1
- data/app/pb_kits/playbook/pb_user/docs/_user_font_options.jsx +1 -1
- data/app/pb_kits/playbook/utilities/_truncate.scss +2 -0
- data/app/pb_kits/playbook/utilities/globalProps.ts +26 -8
- data/app/pb_kits/playbook/utilities/test/globalProps/alignContent.test.js +18 -0
- data/app/pb_kits/playbook/utilities/test/globalProps/alignItems.test.js +18 -0
- data/app/pb_kits/playbook/utilities/test/globalProps/alignSelf.test.js +18 -0
- data/app/pb_kits/playbook/utilities/test/globalProps/display.test.js +18 -0
- data/app/pb_kits/playbook/utilities/test/globalProps/flex.test.js +18 -0
- data/app/pb_kits/playbook/utilities/test/globalProps/flexDirection.test.js +18 -0
- data/app/pb_kits/playbook/utilities/test/globalProps/flexGrow.test.js +18 -0
- data/app/pb_kits/playbook/utilities/test/globalProps/flexShrink.test.js +18 -0
- data/app/pb_kits/playbook/utilities/test/globalProps/flexWrap.test.js +18 -0
- data/app/pb_kits/playbook/utilities/test/globalProps/justifyContent.test.js +18 -0
- data/app/pb_kits/playbook/utilities/test/globalProps/justifySelf.test.js +18 -0
- data/app/pb_kits/playbook/utilities/test/globalProps/order.test.js +18 -0
- data/dist/chunks/_typeahead-CkkCTRLh.js +6 -0
- data/dist/chunks/lib-CgpqUb6l.js +29 -0
- data/dist/chunks/vendor.js +37 -1
- 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/version.rb +2 -2
- metadata +48 -12
- data/app/pb_kits/playbook/pb_bar_graph/BarGraphStyles.scss +0 -58
- data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_not_current_year.html.erb +0 -5
- data/dist/chunks/_line_graph-r__oOO2H.js +0 -1
- data/dist/chunks/_typeahead-B7c52zVj.js +0 -6
- data/dist/chunks/_weekday_stacked-DgiIj2w3.js +0 -37
- data/dist/chunks/componentRegistry-DzmmLR2x.js +0 -1
- data/dist/chunks/lib-CRUXizZe.js +0 -29
- data/dist/chunks/pb_form_validation-CywJN0ej.js +0 -1
- data/dist/playbook-doc.js +0 -19
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
The multiple container functionality also supports customized dropzone styling as shown here.
|
|
2
|
+
|
|
3
|
+
In addition to this, the `enableCrossContainerPreview` prop can be used on the `DraggableProvider` as shown here to enable dropzone preview for cross-container dragging.
|
|
4
|
+
|
|
5
|
+
With `enableCrossContainerPreview`, the `onDrop` and `onDragEnd` event listeners will also provide several arguments to allow developers more context from the drag event.
|
|
6
|
+
|
|
7
|
+
The `onDrop` callback is triggered when an item is successfully dropped into a container. It provides the following arguments:
|
|
8
|
+
|
|
9
|
+
- `draggedItemId` - The ID of the item that was dragged
|
|
10
|
+
- `droppedContainer` - The container where the item was dropped
|
|
11
|
+
- `originalContainer` - The container where the drag started
|
|
12
|
+
- `item` - The complete item object with all properties (including the updated container)
|
|
13
|
+
- `itemAbove` - The item directly above the dropped item in the final position (null if at the top)
|
|
14
|
+
- `itemBelow` - The item directly below the dropped item in the final position (null if at the bottom)
|
|
15
|
+
|
|
16
|
+
The `onDragEnd` callback is triggered when a drag operation ends, whether it was dropped or cancelled. It provides the following arguments:
|
|
17
|
+
|
|
18
|
+
- `draggedItemId` - The ID of the item that was dragged
|
|
19
|
+
- `finalContainer` - The container where the item ended up (could be same as original if drag was cancelled)
|
|
20
|
+
- `originalContainer` - The container where the drag started
|
|
21
|
+
- `itemAbove` - The item directly above the dragged item in the final position (null if at the top)
|
|
22
|
+
- `itemBelow` - The item directly below the dragged item in the final position (null if at the bottom)
|
|
@@ -5,11 +5,12 @@ examples:
|
|
|
5
5
|
- draggable_with_selectable_list: Draggable with SelectableList Kit
|
|
6
6
|
- draggable_with_cards: Draggable with Cards
|
|
7
7
|
- draggable_with_table: Draggable with Table
|
|
8
|
-
- draggable_multiple_containers: Dragging Across Multiple Containers
|
|
9
8
|
- draggable_drop_zones: Draggable Drop Zones
|
|
10
9
|
- draggable_drop_zones_colors: Draggable Drop Zones Colors
|
|
11
10
|
- draggable_drop_zones_line: Draggable Drop Zones Line
|
|
12
11
|
- draggable_event_listeners: Draggable Event Listeners
|
|
12
|
+
- draggable_multiple_containers: Dragging Across Multiple Containers
|
|
13
|
+
- draggable_multiple_containers_dropzone: Dragging Across Multiple Containers with Dropzones
|
|
13
14
|
|
|
14
15
|
rails:
|
|
15
16
|
- draggable_default: Default
|
|
@@ -17,8 +18,8 @@ examples:
|
|
|
17
18
|
- draggable_with_selectable_list: Draggable with SelectableList Kit
|
|
18
19
|
- draggable_with_cards: Draggable with Cards
|
|
19
20
|
- draggable_with_table: Draggable with Table
|
|
20
|
-
- draggable_multiple_containers: Dragging Across Multiple Containers
|
|
21
21
|
- draggable_drop_zones: Draggable Drop Zones
|
|
22
22
|
- draggable_drop_zones_colors: Draggable Drop Zones Colors
|
|
23
23
|
- draggable_drop_zones_line: Draggable Drop Zones Line
|
|
24
24
|
- draggable_event_listeners: Draggable Event Listeners
|
|
25
|
+
- draggable_multiple_containers: Dragging Across Multiple Containers
|
|
@@ -7,4 +7,5 @@ export { default as DraggableWithTable } from './_draggable_with_table.jsx'
|
|
|
7
7
|
export { default as DraggableDropZones } from './_draggable_drop_zones.jsx'
|
|
8
8
|
export { default as DraggableDropZonesColors } from './_draggable_drop_zones_colors.jsx'
|
|
9
9
|
export { default as DraggableDropZonesLine } from './_draggable_drop_zones_line.jsx'
|
|
10
|
-
export { default as DraggableEventListeners } from './_draggable_event_listeners.jsx'
|
|
10
|
+
export { default as DraggableEventListeners } from './_draggable_event_listeners.jsx'
|
|
11
|
+
export { default as DraggableMultipleContainersDropzone } from './_draggable_multiple_containers_dropzone.jsx'
|
|
@@ -255,4 +255,80 @@ test("line dropZone with horizontal direction applies 'line_horizontal' class to
|
|
|
255
255
|
const container = kit.querySelector(".pb_draggable_container");
|
|
256
256
|
|
|
257
257
|
expect(container).toHaveClass("line_horizontal");
|
|
258
|
-
});
|
|
258
|
+
});
|
|
259
|
+
|
|
260
|
+
// Cross-container drag tests
|
|
261
|
+
const multiContainerData = [
|
|
262
|
+
{ id: "1", container: "To Do", text: "Task 1" },
|
|
263
|
+
{ id: "2", container: "To Do", text: "Task 2" },
|
|
264
|
+
{ id: "3", container: "In Progress", text: "Task 3" },
|
|
265
|
+
{ id: "4", container: "Done", text: "Task 4" },
|
|
266
|
+
];
|
|
267
|
+
|
|
268
|
+
const containers = ["To Do", "In Progress", "Done"];
|
|
269
|
+
|
|
270
|
+
const DraggableMultipleContainers = () => {
|
|
271
|
+
const [initialState, setInitialState] = useState(multiContainerData);
|
|
272
|
+
|
|
273
|
+
return (
|
|
274
|
+
<div data-testid={testId}>
|
|
275
|
+
<DraggableProvider
|
|
276
|
+
dropZone={{ type: "outline" }}
|
|
277
|
+
initialItems={multiContainerData}
|
|
278
|
+
onReorder={(items) => setInitialState(items)}
|
|
279
|
+
>
|
|
280
|
+
{containers.map((container) => (
|
|
281
|
+
<Draggable.Container
|
|
282
|
+
container={container}
|
|
283
|
+
data={{testid:`container-${container}`}}
|
|
284
|
+
key={container}
|
|
285
|
+
>
|
|
286
|
+
{initialState
|
|
287
|
+
.filter((item) => item.container === container)
|
|
288
|
+
.map(({ id, text }) => (
|
|
289
|
+
<Draggable.Item
|
|
290
|
+
container={container}
|
|
291
|
+
data-testid={`item-${id}`}
|
|
292
|
+
dragId={id}
|
|
293
|
+
key={id}
|
|
294
|
+
>
|
|
295
|
+
{text}
|
|
296
|
+
</Draggable.Item>
|
|
297
|
+
))}
|
|
298
|
+
</Draggable.Container>
|
|
299
|
+
))}
|
|
300
|
+
</DraggableProvider>
|
|
301
|
+
</div>
|
|
302
|
+
);
|
|
303
|
+
};
|
|
304
|
+
|
|
305
|
+
test("renders multiple containers with correct items", () => {
|
|
306
|
+
render(<DraggableMultipleContainers />);
|
|
307
|
+
|
|
308
|
+
const kit = screen.getByTestId(testId);
|
|
309
|
+
expect(kit).toBeInTheDocument();
|
|
310
|
+
|
|
311
|
+
containers.forEach((container) => {
|
|
312
|
+
const containerEl = kit.querySelector(`[data-testid="container-${container}"]`);
|
|
313
|
+
expect(containerEl).toBeInTheDocument();
|
|
314
|
+
});
|
|
315
|
+
|
|
316
|
+
// Check items are in correct containers
|
|
317
|
+
expect(screen.getByText("Task 1")).toBeInTheDocument();
|
|
318
|
+
expect(screen.getByText("Task 2")).toBeInTheDocument();
|
|
319
|
+
expect(screen.getByText("Task 3")).toBeInTheDocument();
|
|
320
|
+
expect(screen.getByText("Task 4")).toBeInTheDocument();
|
|
321
|
+
});
|
|
322
|
+
|
|
323
|
+
test("items have correct container association", () => {
|
|
324
|
+
const { container } = render(<DraggableMultipleContainers />);
|
|
325
|
+
|
|
326
|
+
// items rendered within their respective containers
|
|
327
|
+
const todoContainer = container.querySelector('[data-testid="container-To Do"]');
|
|
328
|
+
const inProgressContainer = container.querySelector('[data-testid="container-In Progress"]');
|
|
329
|
+
const doneContainer = container.querySelector('[data-testid="container-Done"]');
|
|
330
|
+
|
|
331
|
+
expect(todoContainer.querySelectorAll('.pb_draggable_item')).toHaveLength(2);
|
|
332
|
+
expect(inProgressContainer.querySelectorAll('.pb_draggable_item')).toHaveLength(1);
|
|
333
|
+
expect(doneContainer.querySelectorAll('.pb_draggable_item')).toHaveLength(1);
|
|
334
|
+
})
|
|
@@ -33,6 +33,8 @@ export default class PbDropdown extends PbEnhancedElement {
|
|
|
33
33
|
this.formPillProps = this.element.dataset.formPillProps
|
|
34
34
|
? JSON.parse(this.element.dataset.formPillProps)
|
|
35
35
|
: {};
|
|
36
|
+
const baseInput = this.element.querySelector(DROPDOWN_INPUT);
|
|
37
|
+
this.wasOriginallyRequired = baseInput && baseInput.hasAttribute("required");
|
|
36
38
|
this.setDefaultValue();
|
|
37
39
|
this.bindEventListeners();
|
|
38
40
|
this.bindSearchInput();
|
|
@@ -126,7 +128,7 @@ export default class PbDropdown extends PbEnhancedElement {
|
|
|
126
128
|
.label.toString()
|
|
127
129
|
.toLowerCase();
|
|
128
130
|
|
|
129
|
-
|
|
131
|
+
// hide or show option
|
|
130
132
|
const match = label.includes(lcTerm);
|
|
131
133
|
opt.style.display = match ? "" : "none";
|
|
132
134
|
if (match) hasMatch = true
|
|
@@ -356,17 +358,6 @@ export default class PbDropdown extends PbEnhancedElement {
|
|
|
356
358
|
}
|
|
357
359
|
|
|
358
360
|
clearFormValidation(input) {
|
|
359
|
-
if (input.checkValidity()) {
|
|
360
|
-
const dropdownWrapperElement = input.closest(".dropdown_wrapper");
|
|
361
|
-
dropdownWrapperElement.classList.remove("error");
|
|
362
|
-
|
|
363
|
-
const errorLabelElement = dropdownWrapperElement.querySelector(
|
|
364
|
-
".pb_body_kit_negative"
|
|
365
|
-
);
|
|
366
|
-
if (errorLabelElement) {
|
|
367
|
-
errorLabelElement.remove();
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
361
|
if (this.isMultiSelect) {
|
|
371
362
|
if (this.selectedOptions.size > 0) {
|
|
372
363
|
const dropdownWrapperElement = input.closest(".dropdown_wrapper");
|
|
@@ -377,6 +368,19 @@ export default class PbDropdown extends PbEnhancedElement {
|
|
|
377
368
|
if (errorLabelElement) {
|
|
378
369
|
errorLabelElement.remove();
|
|
379
370
|
}
|
|
371
|
+
return;
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
if (input.checkValidity()) {
|
|
376
|
+
const dropdownWrapperElement = input.closest(".dropdown_wrapper");
|
|
377
|
+
dropdownWrapperElement.classList.remove("error");
|
|
378
|
+
|
|
379
|
+
const errorLabelElement = dropdownWrapperElement.querySelector(
|
|
380
|
+
".pb_body_kit_negative"
|
|
381
|
+
);
|
|
382
|
+
if (errorLabelElement) {
|
|
383
|
+
errorLabelElement.remove();
|
|
380
384
|
}
|
|
381
385
|
}
|
|
382
386
|
}
|
|
@@ -585,7 +589,9 @@ export default class PbDropdown extends PbEnhancedElement {
|
|
|
585
589
|
// for multi_select, for each selectedOption, create a hidden input
|
|
586
590
|
const name = baseInput.getAttribute("name");
|
|
587
591
|
this.selectedOptions.forEach((raw) => {
|
|
588
|
-
const
|
|
592
|
+
const optionData = JSON.parse(raw);
|
|
593
|
+
// Use id if available, otherwise fall back to value
|
|
594
|
+
const id = optionData.id || optionData.value;
|
|
589
595
|
const inp = document.createElement("input");
|
|
590
596
|
inp.type = "hidden";
|
|
591
597
|
inp.name = name;
|
|
@@ -593,7 +599,19 @@ export default class PbDropdown extends PbEnhancedElement {
|
|
|
593
599
|
inp.dataset.generated = "true";
|
|
594
600
|
baseInput.insertAdjacentElement("afterend", inp);
|
|
595
601
|
});
|
|
596
|
-
|
|
602
|
+
|
|
603
|
+
// For multi-select, remove required from base input when there are selections
|
|
604
|
+
// The generated inputs handle the form submission with actual values
|
|
605
|
+
// Restore required attribute when there are no selections (if it was originally required)
|
|
606
|
+
if (this.selectedOptions.size > 0) {
|
|
607
|
+
baseInput.value = "";
|
|
608
|
+
baseInput.removeAttribute("required");
|
|
609
|
+
} else {
|
|
610
|
+
baseInput.value = "";
|
|
611
|
+
if (this.wasOriginallyRequired) {
|
|
612
|
+
baseInput.setAttribute("required", "");
|
|
613
|
+
}
|
|
614
|
+
}
|
|
597
615
|
}
|
|
598
616
|
|
|
599
617
|
handleBackspaceClear() {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
.pb_file_upload_kit {
|
|
2
|
-
.
|
|
2
|
+
.pb_card_kit {
|
|
3
3
|
border: 1px #ccc dashed;
|
|
4
4
|
text-align: center;
|
|
5
5
|
}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
}
|
|
12
12
|
&.error,
|
|
13
13
|
&.pb_file_upload_kit_error {
|
|
14
|
-
.
|
|
14
|
+
.pb_card_kit {
|
|
15
15
|
border-color: $error;
|
|
16
16
|
}
|
|
17
17
|
.pb_body_kit_negative {
|
|
@@ -30,12 +30,12 @@
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
.dark .pb_file_upload_kit {
|
|
33
|
-
.
|
|
33
|
+
.pb_card_kit {
|
|
34
34
|
border: 1px $text_dk_lighter dashed;
|
|
35
35
|
}
|
|
36
36
|
&.error,
|
|
37
37
|
&.pb_file_upload_kit_error {
|
|
38
|
-
.
|
|
38
|
+
.pb_card_kit {
|
|
39
39
|
border-color: $error_dark;
|
|
40
40
|
}
|
|
41
41
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useEffect, useState } from "react";
|
|
1
|
+
import React, { useEffect, useState, useRef } from "react";
|
|
2
2
|
import classnames from "classnames";
|
|
3
3
|
|
|
4
4
|
import { globalProps, GlobalProps } from "../utilities/globalProps";
|
|
@@ -36,6 +36,7 @@ type FixedConfirmationToastProps = {
|
|
|
36
36
|
|
|
37
37
|
const FixedConfirmationToast = (props: FixedConfirmationToastProps): React.ReactElement => {
|
|
38
38
|
const [showToast, toggleToast] = useState(true);
|
|
39
|
+
const timeoutRef = useRef<NodeJS.Timeout | null>(null);
|
|
39
40
|
|
|
40
41
|
const {
|
|
41
42
|
autoClose = 0,
|
|
@@ -67,21 +68,42 @@ const FixedConfirmationToast = (props: FixedConfirmationToastProps): React.React
|
|
|
67
68
|
|
|
68
69
|
const htmlProps = buildHtmlProps(htmlOptions);
|
|
69
70
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
useEffect(() => {
|
|
72
|
+
toggleToast(open);
|
|
73
|
+
}, [open]);
|
|
74
|
+
|
|
75
|
+
// Manage auto-close timeout separately
|
|
76
|
+
useEffect(() => {
|
|
77
|
+
// Clear any existing timeout
|
|
78
|
+
if (timeoutRef.current) {
|
|
79
|
+
clearTimeout(timeoutRef.current);
|
|
80
|
+
timeoutRef.current = null;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Set new timeout if autoClose is enabled and toast is open
|
|
84
|
+
if (autoClose && open && showToast) {
|
|
85
|
+
timeoutRef.current = setTimeout(() => {
|
|
73
86
|
toggleToast(false);
|
|
74
87
|
onClose();
|
|
88
|
+
timeoutRef.current = null;
|
|
75
89
|
}, autoClose);
|
|
76
90
|
}
|
|
77
|
-
};
|
|
78
91
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
92
|
+
// Cleanup function to clear timeout on unmount or when dependencies change
|
|
93
|
+
return () => {
|
|
94
|
+
if (timeoutRef.current) {
|
|
95
|
+
clearTimeout(timeoutRef.current);
|
|
96
|
+
timeoutRef.current = null;
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
}, [autoClose, open, showToast, onClose]);
|
|
83
100
|
|
|
84
101
|
const handleClick = () => {
|
|
102
|
+
// Clear autoClose timeout when manually closing
|
|
103
|
+
if (timeoutRef.current) {
|
|
104
|
+
clearTimeout(timeoutRef.current);
|
|
105
|
+
timeoutRef.current = null;
|
|
106
|
+
}
|
|
85
107
|
toggleToast(!closeable);
|
|
86
108
|
onClose();
|
|
87
109
|
};
|
|
@@ -2,6 +2,7 @@ import React from 'react'
|
|
|
2
2
|
import classnames from 'classnames'
|
|
3
3
|
import { buildCss, buildHtmlProps } from '../utilities/props'
|
|
4
4
|
import { globalProps, GlobalProps, globalInlineProps} from '../utilities/globalProps'
|
|
5
|
+
|
|
5
6
|
type FlexItemPropTypes = {
|
|
6
7
|
children: React.ReactNode[] | React.ReactNode,
|
|
7
8
|
fixedSize?: string,
|
|
@@ -28,22 +29,28 @@ const FlexItem = (props: FlexItemPropTypes): React.ReactElement => {
|
|
|
28
29
|
alignSelf,
|
|
29
30
|
displayFlex
|
|
30
31
|
} = props
|
|
32
|
+
|
|
31
33
|
const growClass = grow === true ? 'pb_flex_item_kit_grow' : ''
|
|
32
34
|
const displayFlexClass = displayFlex === true ? 'pb_flex_item_kit_display_flex' : ''
|
|
33
35
|
const flexClass = flex !== 'none' ? `pb_flex_item_kit_flex_${flex}` : ''
|
|
34
36
|
const shrinkClass = shrink === true ? 'pb_flex_item_kit_shrink' : ''
|
|
35
37
|
const alignSelfClass = alignSelf ? `pb_flex_item_kit_align_self_${alignSelf}` : ''
|
|
36
|
-
const fixedStyle =
|
|
37
|
-
fixedSize !== undefined ? { flexBasis: `${fixedSize}` } : null
|
|
38
|
+
const fixedStyle = fixedSize !== undefined ? { flexBasis: `${fixedSize}` } : null
|
|
38
39
|
const orderClass = order !== 'none' ? `pb_flex_item_kit_order_${order}` : ''
|
|
39
40
|
const dynamicInlineProps = globalInlineProps(props)
|
|
41
|
+
|
|
42
|
+
// Extract style from htmlOptions and remove it
|
|
43
|
+
const { style: htmlStyle, ...htmlOptionsWithoutStyle } = htmlOptions
|
|
44
|
+
const htmlStyleObj = htmlStyle && typeof htmlStyle === 'object' ? htmlStyle : {}
|
|
45
|
+
|
|
46
|
+
// Merge all styles
|
|
40
47
|
const combinedStyles = {
|
|
48
|
+
...htmlStyleObj,
|
|
41
49
|
...fixedStyle,
|
|
42
50
|
...dynamicInlineProps
|
|
43
51
|
}
|
|
44
52
|
|
|
45
|
-
const htmlProps = buildHtmlProps(
|
|
46
|
-
|
|
53
|
+
const htmlProps = buildHtmlProps(htmlOptionsWithoutStyle)
|
|
47
54
|
|
|
48
55
|
return (
|
|
49
56
|
<div
|
|
@@ -66,4 +73,4 @@ const FlexItem = (props: FlexItemPropTypes): React.ReactElement => {
|
|
|
66
73
|
)
|
|
67
74
|
}
|
|
68
75
|
|
|
69
|
-
export default FlexItem
|
|
76
|
+
export default FlexItem
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
|
-
import
|
|
2
|
+
import Card from '../../pb_card/_card'
|
|
3
|
+
import Caption from '../../pb_caption/_caption'
|
|
4
|
+
import FormPill from '../_form_pill'
|
|
5
|
+
import Typeahead from '../../pb_typeahead/_typeahead'
|
|
3
6
|
|
|
4
7
|
const names = [
|
|
5
8
|
{ label: 'Alexander Nathaniel Montgomery', value: 'Alexander Nathaniel Montgomery' },
|
|
@@ -96,20 +96,24 @@ const HomeAddressStreet = (props: HomeAddressStreetProps): React.ReactElement =>
|
|
|
96
96
|
{hasAllEmptyProps && '—'}
|
|
97
97
|
{emphasis == 'street' && !hasAllEmptyProps &&
|
|
98
98
|
<div>
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
99
|
+
{(address || houseStyle) && (
|
|
100
|
+
<Title
|
|
101
|
+
className="pb_home_address_street_address"
|
|
102
|
+
dark={dark}
|
|
103
|
+
size={4}
|
|
104
|
+
>
|
|
105
|
+
{joinPresent([formatStreetAdr(address), houseStyle], ' · ')}
|
|
106
|
+
</Title>
|
|
107
|
+
)}
|
|
108
|
+
{addressCont && (
|
|
109
|
+
<Title
|
|
110
|
+
className="pb_home_address_street_address"
|
|
111
|
+
dark={dark}
|
|
112
|
+
size={4}
|
|
113
|
+
>
|
|
114
|
+
{titleize(addressCont)}
|
|
115
|
+
</Title>
|
|
116
|
+
)}
|
|
113
117
|
<Body color="light">
|
|
114
118
|
{`${city ? `${titleize(city)}, ` : ''}${uppercaseState}${zipcode ? ` ${zipcode}` : ''}`}
|
|
115
119
|
</Body>
|
|
@@ -117,10 +121,14 @@ const HomeAddressStreet = (props: HomeAddressStreetProps): React.ReactElement =>
|
|
|
117
121
|
}
|
|
118
122
|
{emphasis == 'city' && !hasAllEmptyProps &&
|
|
119
123
|
<div>
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
+
{(address || houseStyle) && (
|
|
125
|
+
<Body color="light">
|
|
126
|
+
{joinPresent([formatStreetAdr(address), houseStyle], ' · ')}
|
|
127
|
+
</Body>
|
|
128
|
+
)}
|
|
129
|
+
{addressCont && (
|
|
130
|
+
<Body color="light">{titleize(addressCont)}</Body>
|
|
131
|
+
)}
|
|
124
132
|
<div>
|
|
125
133
|
<Title
|
|
126
134
|
className="pb_home_address_street_address"
|
|
@@ -141,10 +149,14 @@ const HomeAddressStreet = (props: HomeAddressStreetProps): React.ReactElement =>
|
|
|
141
149
|
}
|
|
142
150
|
{emphasis == 'none' && !hasAllEmptyProps &&
|
|
143
151
|
<div>
|
|
144
|
-
|
|
145
|
-
{
|
|
146
|
-
|
|
147
|
-
|
|
152
|
+
{(address || houseStyle) && (
|
|
153
|
+
<Body dark={dark}>
|
|
154
|
+
{joinPresent([formatStreetAdr(address), houseStyle], ' · ')}
|
|
155
|
+
</Body>
|
|
156
|
+
)}
|
|
157
|
+
{addressCont && (
|
|
158
|
+
<Body dark={dark}>{formatStreetAdr(addressCont)}</Body>
|
|
159
|
+
)}
|
|
148
160
|
<div>
|
|
149
161
|
<Body
|
|
150
162
|
color="light"
|
|
@@ -1,15 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
<% if object.address_house_style.present? %>
|
|
2
|
+
<%= pb_rails "body", props: {
|
|
3
|
+
classname: "pb_home_address_street_address",
|
|
4
|
+
color: "light",
|
|
5
|
+
text: object.address_house_style,
|
|
6
|
+
dark: object.dark
|
|
7
|
+
} %>
|
|
8
|
+
<% end %>
|
|
9
|
+
<% if object.address_house_style2.present? %>
|
|
10
|
+
<%= pb_rails "body", props: {
|
|
11
|
+
classname: "pb_home_address_street_address",
|
|
12
|
+
color: "light",
|
|
13
|
+
text: object.address_house_style2,
|
|
14
|
+
dark: object.dark
|
|
15
|
+
} %>
|
|
16
|
+
<% end %>
|
|
13
17
|
<div>
|
|
14
18
|
<%= pb_rails "title", props: {
|
|
15
19
|
tag: "span",
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
<%= pb_rails("caption", props: { text: "with all" }) %>
|
|
1
2
|
<%= pb_rails("home_address_street", props: {
|
|
2
3
|
address: "70 Prospect Ave",
|
|
3
4
|
address_cont: "Apt M18",
|
|
@@ -9,3 +10,126 @@
|
|
|
9
10
|
zipcode: "19382",
|
|
10
11
|
territory: "PHL",
|
|
11
12
|
}) %>
|
|
13
|
+
|
|
14
|
+
<%= pb_rails("caption", props: { margin_top: "sm", text: "First two lines blank: without address and address cont and housestyle" }) %>
|
|
15
|
+
<%= pb_rails("home_address_street", props: {
|
|
16
|
+
city: "West Chester",
|
|
17
|
+
home_id: 8250263,
|
|
18
|
+
home_url: "https://powerhrg.com/",
|
|
19
|
+
state: "PA",
|
|
20
|
+
zipcode: "19382",
|
|
21
|
+
territory: "PHL",
|
|
22
|
+
}) %>
|
|
23
|
+
|
|
24
|
+
<%= pb_rails("caption", props: { margin_top: "sm", text: "First line half blank Second line full: with housestyle and without address and address cont" }) %>
|
|
25
|
+
<%= pb_rails("home_address_street", props: {
|
|
26
|
+
city: "West Chester",
|
|
27
|
+
home_id: 8250263,
|
|
28
|
+
home_url: "https://powerhrg.com/",
|
|
29
|
+
house_style: "Colonial",
|
|
30
|
+
state: "PA",
|
|
31
|
+
zipcode: "19382",
|
|
32
|
+
territory: "PHL",
|
|
33
|
+
}) %>
|
|
34
|
+
|
|
35
|
+
<%= pb_rails("caption", props: { margin_top: "sm", text: "First line full Second line blank: with address and housestyle and without address cont" }) %>
|
|
36
|
+
<%= pb_rails("home_address_street", props: {
|
|
37
|
+
address: "70 Prospect Ave",
|
|
38
|
+
city: "West Chester",
|
|
39
|
+
home_id: 8250263,
|
|
40
|
+
home_url: "https://powerhrg.com/",
|
|
41
|
+
house_style: "Colonial",
|
|
42
|
+
state: "PA",
|
|
43
|
+
zipcode: "19382",
|
|
44
|
+
territory: "PHL",
|
|
45
|
+
}) %>
|
|
46
|
+
|
|
47
|
+
<%= pb_rails("caption", props: { margin_top: "sm", text: "First line half blank Second line full: without address and with housestyle and address cont" }) %>
|
|
48
|
+
<%= pb_rails("home_address_street", props: {
|
|
49
|
+
address_cont: "Apt M18",
|
|
50
|
+
city: "West Chester",
|
|
51
|
+
home_id: 8250263,
|
|
52
|
+
home_url: "https://powerhrg.com/",
|
|
53
|
+
house_style: "Colonial",
|
|
54
|
+
state: "PA",
|
|
55
|
+
zipcode: "19382",
|
|
56
|
+
territory: "PHL",
|
|
57
|
+
}) %>
|
|
58
|
+
|
|
59
|
+
<%= pb_rails("caption", props: { margin_top: "sm", text: "First line blank Second line full: with address cont and without address and housestyle" }) %>
|
|
60
|
+
<%= pb_rails("home_address_street", props: {
|
|
61
|
+
address_cont: "Apt M18",
|
|
62
|
+
city: "West Chester",
|
|
63
|
+
home_id: 8250263,
|
|
64
|
+
home_url: "https://powerhrg.com/",
|
|
65
|
+
state: "PA",
|
|
66
|
+
zipcode: "19382",
|
|
67
|
+
territory: "PHL",
|
|
68
|
+
}) %>
|
|
69
|
+
|
|
70
|
+
<%= pb_rails("caption", props: { margin_top: "sm", text: "Emphasis, Modified, Target and Formatted doc examples below" }) %>
|
|
71
|
+
<%= pb_rails("home_address_street", props: {
|
|
72
|
+
address: "70 Prospect Ave",
|
|
73
|
+
city: "West Chester",
|
|
74
|
+
emphasis: "none",
|
|
75
|
+
home_id: 8250263,
|
|
76
|
+
home_url: "https://powerhrg.com/",
|
|
77
|
+
house_style: "Colonial",
|
|
78
|
+
margin_bottom: "sm",
|
|
79
|
+
state: "PA",
|
|
80
|
+
zipcode: "19382",
|
|
81
|
+
territory: "PHL",
|
|
82
|
+
}) %>
|
|
83
|
+
|
|
84
|
+
<%= pb_rails("home_address_street", props: {
|
|
85
|
+
city: "West Chester",
|
|
86
|
+
emphasis: "city",
|
|
87
|
+
home_id: 8250263,
|
|
88
|
+
home_url: "https://powerhrg.com/",
|
|
89
|
+
margin_bottom: "sm",
|
|
90
|
+
state: "PA",
|
|
91
|
+
zipcode: "19382",
|
|
92
|
+
territory: "PHL",
|
|
93
|
+
}) %>
|
|
94
|
+
|
|
95
|
+
<%= pb_rails("home_address_street", props: {
|
|
96
|
+
city: "West Chester",
|
|
97
|
+
emphasis: "none",
|
|
98
|
+
home_id: 8250263,
|
|
99
|
+
home_url: "https://powerhrg.com/",
|
|
100
|
+
margin_bottom: "sm",
|
|
101
|
+
state: "PA",
|
|
102
|
+
zipcode: "19382",
|
|
103
|
+
territory: "PHL",
|
|
104
|
+
}) %>
|
|
105
|
+
|
|
106
|
+
<%= pb_rails("home_address_street", props: {
|
|
107
|
+
address: "70 Prospect Ave",
|
|
108
|
+
city: "West Chester",
|
|
109
|
+
margin_bottom: "sm",
|
|
110
|
+
state: "PA",
|
|
111
|
+
zipcode: "19382",
|
|
112
|
+
territory: "PHL",
|
|
113
|
+
}) %>
|
|
114
|
+
|
|
115
|
+
<%= pb_rails("home_address_street", props: {
|
|
116
|
+
city: "West Chester",
|
|
117
|
+
home_id: 8250263,
|
|
118
|
+
home_url: "https://powerhrg.com/",
|
|
119
|
+
margin_bottom: "sm",
|
|
120
|
+
state: "PA",
|
|
121
|
+
target: "_blank",
|
|
122
|
+
zipcode: "19382",
|
|
123
|
+
territory: "PHL",
|
|
124
|
+
}) %>
|
|
125
|
+
|
|
126
|
+
<%= pb_rails("home_address_street", props: {
|
|
127
|
+
address: "70 pRoSpEcT ave",
|
|
128
|
+
city: "West Chester",
|
|
129
|
+
home_id: 8250263,
|
|
130
|
+
home_url: "https://powerhrg.com/",
|
|
131
|
+
preserve_case: true,
|
|
132
|
+
state: "pa",
|
|
133
|
+
zipcode: "19382",
|
|
134
|
+
territory: "PHL",
|
|
135
|
+
}) %>
|