playbook_ui_docs 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/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_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_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_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_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_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_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_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_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_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/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_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_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/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_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/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_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_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_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_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_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_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/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_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_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/docs/_playground.json +65 -19
- data/app/pb_kits/playbook/pb_select/docs/_playground.overrides.json +54 -14
- 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_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_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_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_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_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_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_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/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_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_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/docs/_playground.json +124 -44
- data/app/pb_kits/playbook/pb_typeahead/docs/_playground.overrides.json +98 -31
- 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
- metadata +73 -4
- 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
|
@@ -4,23 +4,39 @@
|
|
|
4
4
|
"modes": {
|
|
5
5
|
"simple": {
|
|
6
6
|
"label": "Simple",
|
|
7
|
-
"template": "<Dropdown{{props}} />",
|
|
7
|
+
"template": "<Dropdown options={options}{{props}} />",
|
|
8
8
|
"children": ""
|
|
9
9
|
},
|
|
10
10
|
"subcomponents": {
|
|
11
11
|
"label": "With Subcomponents",
|
|
12
|
-
"template": "<Dropdown{{props}}>\n <Dropdown.Trigger />\n <Dropdown.Container>\n
|
|
13
|
-
"children": ""
|
|
14
|
-
"props": {
|
|
15
|
-
"options": [
|
|
16
|
-
{ "label": "United States", "value": "unitedStates", "id": "us" },
|
|
17
|
-
{ "label": "Canada", "value": "canada", "id": "ca" },
|
|
18
|
-
{ "label": "Pakistan", "value": "pakistan", "id": "pk" }
|
|
19
|
-
]
|
|
20
|
-
}
|
|
12
|
+
"template": "<Dropdown options={options}{{props}}>\n <Dropdown.Trigger />\n <Dropdown.Container>\n {options.map((option) => (\n <Dropdown.Option key={option.id} option={option} />\n ))}\n </Dropdown.Container>\n</Dropdown>",
|
|
13
|
+
"children": ""
|
|
21
14
|
}
|
|
22
15
|
}
|
|
23
16
|
},
|
|
17
|
+
"customProps": {
|
|
18
|
+
"options": {
|
|
19
|
+
"type": "array",
|
|
20
|
+
"platforms": ["react", "rails"],
|
|
21
|
+
"description": "Dropdown option data with label, value, id, and optional disabled state."
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"requiredProps": {
|
|
25
|
+
"options": [
|
|
26
|
+
{ "label": "United States", "value": "unitedStates", "id": "us" },
|
|
27
|
+
{ "label": "Canada", "value": "canada", "id": "ca", "disabled": true },
|
|
28
|
+
{ "label": "Pakistan", "value": "pakistan", "id": "pk" },
|
|
29
|
+
{ "label": "Mexico", "value": "mexico", "id": "mx", "disabled": true },
|
|
30
|
+
{ "label": "United Kingdom", "value": "unitedKingdom", "id": "gb" },
|
|
31
|
+
{ "label": "India", "value": "india", "id": "in" },
|
|
32
|
+
{ "label": "Australia", "value": "australia", "id": "au" },
|
|
33
|
+
{ "label": "New Zealand", "value": "newZealand", "id": "nz" },
|
|
34
|
+
{ "label": "Italy", "value": "italy", "id": "it" },
|
|
35
|
+
{ "label": "Germany", "value": "germany", "id": "de" },
|
|
36
|
+
{ "label": "Brazil", "value": "brazil", "id": "br" },
|
|
37
|
+
{ "label": "Philippines", "value": "philippines", "id": "ph" }
|
|
38
|
+
]
|
|
39
|
+
},
|
|
24
40
|
"defaults": {
|
|
25
41
|
"autocomplete": false,
|
|
26
42
|
"blankSelection": "",
|
|
@@ -32,8 +48,17 @@
|
|
|
32
48
|
"multiSelect": false,
|
|
33
49
|
"options": [
|
|
34
50
|
{ "label": "United States", "value": "unitedStates", "id": "us" },
|
|
35
|
-
{ "label": "Canada", "value": "canada", "id": "ca" },
|
|
36
|
-
{ "label": "Pakistan", "value": "pakistan", "id": "pk" }
|
|
51
|
+
{ "label": "Canada", "value": "canada", "id": "ca", "disabled": true },
|
|
52
|
+
{ "label": "Pakistan", "value": "pakistan", "id": "pk" },
|
|
53
|
+
{ "label": "Mexico", "value": "mexico", "id": "mx", "disabled": true },
|
|
54
|
+
{ "label": "United Kingdom", "value": "unitedKingdom", "id": "gb" },
|
|
55
|
+
{ "label": "India", "value": "india", "id": "in" },
|
|
56
|
+
{ "label": "Australia", "value": "australia", "id": "au" },
|
|
57
|
+
{ "label": "New Zealand", "value": "newZealand", "id": "nz" },
|
|
58
|
+
{ "label": "Italy", "value": "italy", "id": "it" },
|
|
59
|
+
{ "label": "Germany", "value": "germany", "id": "de" },
|
|
60
|
+
{ "label": "Brazil", "value": "brazil", "id": "br" },
|
|
61
|
+
{ "label": "Philippines", "value": "philippines", "id": "ph" }
|
|
37
62
|
],
|
|
38
63
|
"placeholder": "Select a country",
|
|
39
64
|
"requiredIndicator": false,
|
|
@@ -80,7 +105,8 @@
|
|
|
80
105
|
"separators",
|
|
81
106
|
"formPillProps",
|
|
82
107
|
"activeStyle",
|
|
83
|
-
"dark"
|
|
108
|
+
"dark",
|
|
109
|
+
"disabled"
|
|
84
110
|
]
|
|
85
111
|
},
|
|
86
112
|
{
|
|
@@ -93,36 +119,28 @@
|
|
|
93
119
|
"name": "Default trigger",
|
|
94
120
|
"props": {
|
|
95
121
|
"variant": "default",
|
|
96
|
-
"placeholder": "Select a country"
|
|
97
|
-
"options": [
|
|
98
|
-
{ "label": "United States", "value": "unitedStates", "id": "us" },
|
|
99
|
-
{ "label": "Canada", "value": "canada", "id": "ca" },
|
|
100
|
-
{ "label": "Mexico", "value": "mexico", "id": "mx" }
|
|
101
|
-
]
|
|
122
|
+
"placeholder": "Select a country"
|
|
102
123
|
}
|
|
103
124
|
},
|
|
104
125
|
{
|
|
105
126
|
"name": "With label",
|
|
106
127
|
"props": {
|
|
107
128
|
"label": "Select a Country",
|
|
108
|
-
"placeholder": "Choose a country"
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
129
|
+
"placeholder": "Choose a country"
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"name": "Disabled options",
|
|
134
|
+
"props": {
|
|
135
|
+
"label": "Select a Country",
|
|
136
|
+
"placeholder": "Choose a country"
|
|
114
137
|
}
|
|
115
138
|
},
|
|
116
139
|
{
|
|
117
140
|
"name": "Subtle Variant",
|
|
118
141
|
"props": {
|
|
119
142
|
"variant": "subtle",
|
|
120
|
-
"separators": false
|
|
121
|
-
"options": [
|
|
122
|
-
{ "label": "Alpha", "value": "alpha", "id": "a" },
|
|
123
|
-
{ "label": "Beta", "value": "beta", "id": "b" },
|
|
124
|
-
{ "label": "Gamma", "value": "gamma", "id": "g" }
|
|
125
|
-
]
|
|
143
|
+
"separators": false
|
|
126
144
|
}
|
|
127
145
|
},
|
|
128
146
|
{
|
|
@@ -183,13 +201,7 @@
|
|
|
183
201
|
"props": {
|
|
184
202
|
"variant": "default",
|
|
185
203
|
"multiSelect": true,
|
|
186
|
-
"placeholder": "Select
|
|
187
|
-
"options": [
|
|
188
|
-
{ "label": "North", "value": "north", "id": "n" },
|
|
189
|
-
{ "label": "South", "value": "south", "id": "s" },
|
|
190
|
-
{ "label": "East", "value": "east", "id": "e" },
|
|
191
|
-
{ "label": "West", "value": "west", "id": "w" }
|
|
192
|
-
]
|
|
204
|
+
"placeholder": "Select countries"
|
|
193
205
|
}
|
|
194
206
|
},
|
|
195
207
|
{
|
|
@@ -202,16 +214,6 @@
|
|
|
202
214
|
"defaultValue": [
|
|
203
215
|
{ "label": "United States", "value": "unitedStates" },
|
|
204
216
|
{ "label": "Italy", "value": "italy" }
|
|
205
|
-
],
|
|
206
|
-
"options": [
|
|
207
|
-
{ "label": "United States", "value": "unitedStates", "id": "us" },
|
|
208
|
-
{ "label": "United Kingdom", "value": "unitedKingdom", "id": "gb" },
|
|
209
|
-
{ "label": "Canada", "value": "canada", "id": "ca" },
|
|
210
|
-
{ "label": "Pakistan", "value": "pakistan", "id": "pk" },
|
|
211
|
-
{ "label": "India", "value": "india", "id": "in" },
|
|
212
|
-
{ "label": "Australia", "value": "australia", "id": "au" },
|
|
213
|
-
{ "label": "New Zealand", "value": "newZealand", "id": "nz" },
|
|
214
|
-
{ "label": "Italy", "value": "italy", "id": "it" }
|
|
215
217
|
]
|
|
216
218
|
}
|
|
217
219
|
},
|
|
@@ -221,11 +223,7 @@
|
|
|
221
223
|
"variant": "default",
|
|
222
224
|
"label": "Required field",
|
|
223
225
|
"placeholder": "Required field",
|
|
224
|
-
"error": "Please make a selection."
|
|
225
|
-
"options": [
|
|
226
|
-
{ "label": "Option A", "value": "a", "id": "a" },
|
|
227
|
-
{ "label": "Option B", "value": "b", "id": "b" }
|
|
228
|
-
]
|
|
226
|
+
"error": "Please make a selection."
|
|
229
227
|
}
|
|
230
228
|
},
|
|
231
229
|
{
|
|
@@ -233,33 +231,14 @@
|
|
|
233
231
|
"props": {
|
|
234
232
|
"variant": "default",
|
|
235
233
|
"autocomplete": true,
|
|
236
|
-
"placeholder": "Search
|
|
237
|
-
"options": [
|
|
238
|
-
{ "label": "Apple", "value": "apple", "id": "1" },
|
|
239
|
-
{ "label": "Apricot", "value": "apricot", "id": "2" },
|
|
240
|
-
{ "label": "Banana", "value": "banana", "id": "3" }
|
|
241
|
-
]
|
|
234
|
+
"placeholder": "Search..."
|
|
242
235
|
}
|
|
243
236
|
},
|
|
244
237
|
{
|
|
245
238
|
"name": "Constrained height",
|
|
246
239
|
"props": {
|
|
247
240
|
"label": "Choose an Option",
|
|
248
|
-
"constrainHeight": true
|
|
249
|
-
"options": [
|
|
250
|
-
{ "label": "Option 1", "value": "option_1", "id": "opt_1" },
|
|
251
|
-
{ "label": "Option 2", "value": "option_2", "id": "opt_2" },
|
|
252
|
-
{ "label": "Option 3", "value": "option_3", "id": "opt_3" },
|
|
253
|
-
{ "label": "Option 4", "value": "option_4", "id": "opt_4" },
|
|
254
|
-
{ "label": "Option 5", "value": "option_5", "id": "opt_5" },
|
|
255
|
-
{ "label": "Option 6", "value": "option_6", "id": "opt_6" },
|
|
256
|
-
{ "label": "Option 7", "value": "option_7", "id": "opt_7" },
|
|
257
|
-
{ "label": "Option 8", "value": "option_8", "id": "opt_8" },
|
|
258
|
-
{ "label": "Option 9", "value": "option_9", "id": "opt_9" },
|
|
259
|
-
{ "label": "Option 10", "value": "option_10", "id": "opt_10" },
|
|
260
|
-
{ "label": "Option 11", "value": "option_11", "id": "opt_11" },
|
|
261
|
-
{ "label": "Option 12", "value": "option_12", "id": "opt_12" }
|
|
262
|
-
]
|
|
241
|
+
"constrainHeight": true
|
|
263
242
|
}
|
|
264
243
|
}
|
|
265
244
|
],
|
|
@@ -302,6 +281,11 @@
|
|
|
302
281
|
"message": "constrainHeight restricts the height of the dropdown menu and enables vertical scrolling when the content exceeds this height. This prevents long dropdown lists from rendering off-screen.",
|
|
303
282
|
"type": "info"
|
|
304
283
|
},
|
|
284
|
+
"disabled_options_info": {
|
|
285
|
+
"presetName": "Disabled options",
|
|
286
|
+
"message": "Set disabled: true on individual option objects to keep them visible while preventing selection.",
|
|
287
|
+
"type": "info"
|
|
288
|
+
},
|
|
305
289
|
"subcomponent_structure_info": {
|
|
306
290
|
"message": "Switch Structure to “With Subcomponents” to see the explicit Dropdown.Trigger, Dropdown.Container, and Dropdown.Option composition API.",
|
|
307
291
|
"type": "info"
|
|
@@ -6,12 +6,14 @@ examples:
|
|
|
6
6
|
- dropdown_multi_select_with_autocomplete: Multi Select with Autocomplete
|
|
7
7
|
- dropdown_multi_select_display_rails: Multi Select with Form Pill Props
|
|
8
8
|
- dropdown_subtle_variant: Subtle Variant
|
|
9
|
+
- dropdown_disabled_option: Disabled Option
|
|
9
10
|
- dropdown_subcomponent_structure_rails: Subcomponent Structure
|
|
10
11
|
- dropdown_with_autocomplete_with_subcomponents: Autocomplete with Subcomponent Structure
|
|
11
12
|
- dropdown_with_label: With Label
|
|
12
13
|
- dropdown_with_custom_options_rails: Custom Options
|
|
13
14
|
- dropdown_multi_select_with_custom_options: Multi Select with Custom Options
|
|
14
15
|
- dropdown_with_custom_display_rails: Custom Display
|
|
16
|
+
- dropdown_custom_display_disabled_option: Custom Display Disabled Option
|
|
15
17
|
- dropdown_with_custom_trigger_rails: Custom Trigger
|
|
16
18
|
- dropdown_with_search_rails: Custom Trigger Dropdown with Search
|
|
17
19
|
- dropdown_with_custom_padding: Custom Option Padding
|
|
@@ -33,6 +35,7 @@ examples:
|
|
|
33
35
|
- dropdown_quickpick_with_date_pickers_rails: Quick Pick with Date Pickers
|
|
34
36
|
- dropdown_quickpick_with_date_pickers_default_rails: Quick Pick with Date Pickers (Default Value)
|
|
35
37
|
- dropdown_required_indicator: Required Indicator
|
|
38
|
+
- dropdown_disabled: Disabled Input
|
|
36
39
|
- dropdown_custom_event_type: Custom Event Type
|
|
37
40
|
|
|
38
41
|
react:
|
|
@@ -42,10 +45,12 @@ examples:
|
|
|
42
45
|
- dropdown_multi_select_with_autocomplete: Multi Select with Autocomplete
|
|
43
46
|
- dropdown_multi_select_display: Multi Select with Form Pill Props
|
|
44
47
|
- dropdown_subtle_variant: Subtle Variant
|
|
48
|
+
- dropdown_disabled_option: Disabled Option
|
|
45
49
|
- dropdown_subcomponent_structure: Subcomponent Structure
|
|
46
50
|
- dropdown_with_autocomplete_with_subcomponents: Autocomplete with Subcomponent Structure
|
|
47
51
|
- dropdown_with_label: With Label
|
|
48
52
|
- dropdown_with_custom_options: Custom Options
|
|
53
|
+
- dropdown_custom_display_disabled_option: Custom Display Disabled Option
|
|
49
54
|
- dropdown_multi_select_with_custom_options: Multi Select with Custom Options
|
|
50
55
|
- dropdown_with_custom_display: Custom Display
|
|
51
56
|
- dropdown_with_custom_trigger: Custom Trigger
|
|
@@ -71,3 +76,4 @@ examples:
|
|
|
71
76
|
- dropdown_quickpick_custom: Quick Pick Variant (Custom Quick Pick Dates)
|
|
72
77
|
- dropdown_quickpick_with_date_pickers: Quick Pick Variant with Date Pickers
|
|
73
78
|
- dropdown_required_indicator: Required Indicator
|
|
79
|
+
- dropdown_disabled: Disabled Input
|
|
@@ -33,3 +33,6 @@ export { default as DropdownWithClearable } from './_dropdown_with_clearable.jsx
|
|
|
33
33
|
export { default as DropdownWithConstrainHeight } from './_dropdown_with_constrain_height.jsx'
|
|
34
34
|
export { default as DropdownClosingOptions } from './_dropdown_closing_options.jsx'
|
|
35
35
|
export { default as DropdownRequiredIndicator } from "./_dropdown_required_indicator.jsx";
|
|
36
|
+
export { default as DropdownDisabledOption } from "./_dropdown_disabled_option.jsx";
|
|
37
|
+
export { default as DropdownCustomDisplayDisabledOption } from "./_dropdown_custom_display_disabled_option.jsx";
|
|
38
|
+
export { default as DropdownDisabled } from "./_dropdown_disabled.jsx";
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
<div id="file-upload-remove-replace">
|
|
2
|
+
<%= pb_rails("list", props: { id: "selected-files-list", margin_bottom: "sm" }) %>
|
|
3
|
+
|
|
4
|
+
<%= pb_rails("file_upload", props: {
|
|
5
|
+
id: "remove_replace",
|
|
6
|
+
input_options: { multiple: true },
|
|
7
|
+
}) %>
|
|
8
|
+
</div>
|
|
9
|
+
|
|
10
|
+
<template id="file-list-item-template">
|
|
11
|
+
<%= pb_rails("list/item") do %>
|
|
12
|
+
<%= pb_rails("flex", props: { align: "center", justify: "between", width: "100%" }) do %>
|
|
13
|
+
<%= pb_rails("body", props: { data: { file_name: true } }) %>
|
|
14
|
+
<%= pb_rails("circle_icon_button", props: {
|
|
15
|
+
icon: "times",
|
|
16
|
+
variant: "secondary",
|
|
17
|
+
input_options: { classname: "remove-file-button" },
|
|
18
|
+
}) %>
|
|
19
|
+
<% end %>
|
|
20
|
+
<% end %>
|
|
21
|
+
</template>
|
|
22
|
+
|
|
23
|
+
<%= javascript_tag defer: "defer" do %>
|
|
24
|
+
document.addEventListener("DOMContentLoaded", function () {
|
|
25
|
+
const fileInput = document.getElementById("upload-remove_replace")
|
|
26
|
+
const list = document.getElementById("selected-files-list")
|
|
27
|
+
const template = document.getElementById("file-list-item-template")
|
|
28
|
+
let files = []
|
|
29
|
+
|
|
30
|
+
if (!fileInput || !list || !template) return
|
|
31
|
+
|
|
32
|
+
function syncInput() {
|
|
33
|
+
const dataTransfer = new DataTransfer()
|
|
34
|
+
files.forEach((file) => dataTransfer.items.add(file))
|
|
35
|
+
fileInput.files = dataTransfer.files
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function render() {
|
|
39
|
+
list.innerHTML = ""
|
|
40
|
+
|
|
41
|
+
files.forEach((file, index) => {
|
|
42
|
+
const clone = template.content.cloneNode(true)
|
|
43
|
+
const nameElement = clone.querySelector("[data-file-name]")
|
|
44
|
+
const removeButton = clone.querySelector(".remove-file-button")
|
|
45
|
+
|
|
46
|
+
nameElement.textContent = file.name
|
|
47
|
+
removeButton.addEventListener("click", function (event) {
|
|
48
|
+
event.preventDefault()
|
|
49
|
+
event.stopPropagation()
|
|
50
|
+
files = files.filter((_, fileIndex) => fileIndex !== index)
|
|
51
|
+
syncInput()
|
|
52
|
+
render()
|
|
53
|
+
})
|
|
54
|
+
|
|
55
|
+
list.appendChild(clone)
|
|
56
|
+
})
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
fileInput.addEventListener("change", function () {
|
|
60
|
+
const newFiles = Array.from(fileInput.files)
|
|
61
|
+
files = [...files, ...newFiles]
|
|
62
|
+
syncInput()
|
|
63
|
+
render()
|
|
64
|
+
})
|
|
65
|
+
})
|
|
66
|
+
<% end %>
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
|
|
2
|
+
import React, { useState } from 'react'
|
|
3
|
+
|
|
4
|
+
import Body from '../../pb_body/_body'
|
|
5
|
+
import CircleIconButton from '../../pb_circle_icon_button/_circle_icon_button'
|
|
6
|
+
import FileUpload from '../../pb_file_upload/_file_upload'
|
|
7
|
+
import Flex from '../../pb_flex/_flex'
|
|
8
|
+
import List from '../../pb_list/_list'
|
|
9
|
+
import ListItem from '../../pb_list/_list_item'
|
|
10
|
+
|
|
11
|
+
const FileUploadRemoveReplace = (props) => {
|
|
12
|
+
const [filesToUpload, setFilesToUpload] = useState([])
|
|
13
|
+
|
|
14
|
+
const handleOnFilesAccepted = (files) => {
|
|
15
|
+
setFilesToUpload([...filesToUpload, ...files])
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const handleRemoveFile = (index) => {
|
|
19
|
+
setFilesToUpload(filesToUpload.filter((_, fileIndex) => fileIndex !== index))
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return (
|
|
23
|
+
<div>
|
|
24
|
+
{filesToUpload.length > 0 && (
|
|
25
|
+
<List marginBottom="sm">
|
|
26
|
+
{filesToUpload.map((file, index) => (
|
|
27
|
+
<ListItem key={`${file.name}-${index}`}>
|
|
28
|
+
<Flex
|
|
29
|
+
align="center"
|
|
30
|
+
justify="between"
|
|
31
|
+
width="100%"
|
|
32
|
+
>
|
|
33
|
+
<Body text={file.name} />
|
|
34
|
+
<CircleIconButton
|
|
35
|
+
aria={{ label: `Remove ${file.name}` }}
|
|
36
|
+
icon="times"
|
|
37
|
+
onClick={() => handleRemoveFile(index)}
|
|
38
|
+
variant="secondary"
|
|
39
|
+
/>
|
|
40
|
+
</Flex>
|
|
41
|
+
</ListItem>
|
|
42
|
+
))}
|
|
43
|
+
</List>
|
|
44
|
+
)}
|
|
45
|
+
<FileUpload
|
|
46
|
+
onFilesAccepted={handleOnFilesAccepted}
|
|
47
|
+
{...props}
|
|
48
|
+
/>
|
|
49
|
+
</div>
|
|
50
|
+
)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export default FileUploadRemoveReplace
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
The File Upload kit does not include built-in remove or replace behavior. Manage selected files in application state and compose the kit with other Playbook components.
|
|
2
|
+
|
|
3
|
+
**Remove** — Track accepted files in state and filter out the file to remove. In React, pair `List` with `CircleIconButton`. In Rails, listen for `change` on the file input, keep files in a JavaScript array, and use `DataTransfer` to sync the input when a file is removed.
|
|
4
|
+
|
|
5
|
+
**Replace** — Selecting a new file on the native Rails input replaces the current selection. For single-file React workflows, set state to the newly accepted files instead of appending: `setFilesToUpload(files)`.
|
|
@@ -4,6 +4,7 @@ examples:
|
|
|
4
4
|
- file_upload_default: File Upload
|
|
5
5
|
- file_upload_custom: Custom
|
|
6
6
|
- file_upload_error: Error
|
|
7
|
+
- file_upload_remove_replace: Remove and Replace
|
|
7
8
|
|
|
8
9
|
react:
|
|
9
10
|
- file_upload_default: Default List of files to upload
|
|
@@ -11,4 +12,5 @@ examples:
|
|
|
11
12
|
- file_upload_custom_message: Add a custom message
|
|
12
13
|
- file_upload_custom_description: Add your one accepted files description
|
|
13
14
|
- file_upload_max_size: Set a file size limit
|
|
14
|
-
- file_upload_error: Error
|
|
15
|
+
- file_upload_error: Error
|
|
16
|
+
- file_upload_remove_replace: Remove and Replace
|
|
@@ -4,3 +4,4 @@ export { default as FileUploadCustomMessage } from './_file_upload_custom_messag
|
|
|
4
4
|
export { default as FileUploadCustomDescription } from './_file_upload_custom_description.jsx'
|
|
5
5
|
export { default as FileUploadMaxSize } from './_file_upload_max_size.jsx'
|
|
6
6
|
export { default as FileUploadError } from './_file_upload_error.jsx'
|
|
7
|
+
export { default as FileUploadRemoveReplace } from './_file_upload_remove_replace.jsx'
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
<%
|
|
2
|
+
territory_options = [
|
|
3
|
+
{ value: "USA", label: "USA" },
|
|
4
|
+
{ value: "Canada", label: "Canada" },
|
|
5
|
+
{ value: "Brazil", label: "Brazil" },
|
|
6
|
+
{ value: "Philippines", label: "Philippines" },
|
|
7
|
+
]
|
|
8
|
+
|
|
9
|
+
status_options = [
|
|
10
|
+
{ value: "open", label: "Open", id: "open" },
|
|
11
|
+
{ value: "in_progress", label: "In progress", id: "in_progress" },
|
|
12
|
+
{ value: "resolved", label: "Resolved", id: "resolved" },
|
|
13
|
+
{ value: "closed", label: "Closed", id: "closed" },
|
|
14
|
+
]
|
|
15
|
+
|
|
16
|
+
raw_example = params[:example]
|
|
17
|
+
example_params =
|
|
18
|
+
if raw_example.respond_to?(:permit)
|
|
19
|
+
raw_example.permit(:territory, :status, :date_range, :start_date)
|
|
20
|
+
else
|
|
21
|
+
raw_example || {}
|
|
22
|
+
end
|
|
23
|
+
current_territory = example_params[:territory].presence || "USA"
|
|
24
|
+
current_status = example_params[:status].presence || "open"
|
|
25
|
+
current_date_range = example_params[:date_range].presence || "quickpick-this-week"
|
|
26
|
+
current_start = example_params[:start_date].presence || "05/01/2026"
|
|
27
|
+
status_default = status_options.find { |o| o[:value] == current_status }
|
|
28
|
+
%>
|
|
29
|
+
|
|
30
|
+
<%=
|
|
31
|
+
pb_rails("filter", props: {
|
|
32
|
+
id: "filter-interactive-demo",
|
|
33
|
+
min_width: "360px",
|
|
34
|
+
margin_bottom: "xl",
|
|
35
|
+
template: "default",
|
|
36
|
+
results: 546,
|
|
37
|
+
filters: [
|
|
38
|
+
{ name: "Territory", value: current_territory },
|
|
39
|
+
{ name: "Status", value: current_status },
|
|
40
|
+
{ name: "Date range", value: current_date_range },
|
|
41
|
+
{ name: "Start date", value: current_start },
|
|
42
|
+
],
|
|
43
|
+
interactive_filters: [
|
|
44
|
+
{
|
|
45
|
+
name: "Territory",
|
|
46
|
+
type: "select",
|
|
47
|
+
options: territory_options,
|
|
48
|
+
target_input: "filter-interactive-territory",
|
|
49
|
+
auto_submit: true,
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: "Status",
|
|
53
|
+
type: "dropdown",
|
|
54
|
+
options: status_options,
|
|
55
|
+
target_input: "filter-interactive-status",
|
|
56
|
+
auto_submit: true,
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
name: "Date range",
|
|
60
|
+
type: "dropdown",
|
|
61
|
+
variant: "quickpick",
|
|
62
|
+
target_input: "filter-interactive-date-range",
|
|
63
|
+
auto_submit: true,
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: "Start date",
|
|
67
|
+
type: "date-picker",
|
|
68
|
+
target_input: "filter-interactive-start",
|
|
69
|
+
format: "m/d/Y",
|
|
70
|
+
auto_submit: true,
|
|
71
|
+
},
|
|
72
|
+
],
|
|
73
|
+
sort_menu: [
|
|
74
|
+
{ item: "Popularity", link: "?q[sorts]=managers_popularity+asc", active: true, direction: "desc" },
|
|
75
|
+
],
|
|
76
|
+
}) do
|
|
77
|
+
%>
|
|
78
|
+
<%= pb_rails("form", props: { form_system_options: { scope: :example, method: :get } }) do |form| %>
|
|
79
|
+
<%= pb_rails("select", props: {
|
|
80
|
+
label: "Territory",
|
|
81
|
+
name: "territory",
|
|
82
|
+
options: territory_options.map { |o| { value: o[:value], text: o[:label] } },
|
|
83
|
+
value: current_territory,
|
|
84
|
+
input_options: { id: "filter-interactive-territory" }
|
|
85
|
+
}) %>
|
|
86
|
+
|
|
87
|
+
<%= pb_rails("dropdown", props: {
|
|
88
|
+
id: "filter-interactive-status",
|
|
89
|
+
label: "Status",
|
|
90
|
+
name: "status",
|
|
91
|
+
options: status_options,
|
|
92
|
+
default_value: status_default,
|
|
93
|
+
margin_bottom: "sm",
|
|
94
|
+
}) %>
|
|
95
|
+
|
|
96
|
+
<%= pb_rails("dropdown", props: {
|
|
97
|
+
id: "filter-interactive-date-range",
|
|
98
|
+
label: "Date range",
|
|
99
|
+
name: "date_range",
|
|
100
|
+
variant: "quickpick",
|
|
101
|
+
margin_bottom: "sm",
|
|
102
|
+
}) %>
|
|
103
|
+
|
|
104
|
+
<%= pb_rails("date_picker", props: {
|
|
105
|
+
label: "Start date",
|
|
106
|
+
name: "start_date",
|
|
107
|
+
picker_id: "filter-interactive-start",
|
|
108
|
+
default_date: current_start,
|
|
109
|
+
}) %>
|
|
110
|
+
|
|
111
|
+
<%= form.actions do |action| %>
|
|
112
|
+
<%= action.submit props: { text: "Apply" } %>
|
|
113
|
+
<%= action.button props: { type: "reset", text: "Clear", variant: "secondary" } %>
|
|
114
|
+
<% end %>
|
|
115
|
+
<% end %>
|
|
116
|
+
<% end %>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Click an applied filter chip to edit it inline. `interactive_filters` supports:
|
|
2
|
+
|
|
3
|
+
- `type: 'select'` / `'dropdown'`: pick from a list of options.
|
|
4
|
+
- `type: 'date-picker'`: inline calendar. Supports `format`, `min_date`, `max_date`, and `mode`.
|
|
5
|
+
|
|
6
|
+
Each entry needs a `target_input` that points to the form control it updates. For `select` and `date-picker`, use the input's `id`. For `dropdown`, use the Dropdown kit's `id`.
|
|
7
|
+
|
|
8
|
+
For date ranges, use `type: 'dropdown'` with `variant: 'quickpick'`. The Filter kit generates the same quickpick options as Dropdown, so no `options` are needed. Values are quickpick ids, such as `quickpick-this-week`.
|
|
9
|
+
|
|
10
|
+
Chip edits update the linked control inside the filter popover. Click **Apply** to submit, then pass the submitted values back into `filters` so chips re-render with the latest labels.
|
|
11
|
+
|
|
12
|
+
Optional `auto_submit: true` on a chip entry submits the form immediately when a chip value is picked.
|