playbook_ui 16.10.0 → 16.11.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 +2 -0
- data/app/pb_kits/playbook/pb_checkbox/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_circle_icon_button/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_date_time/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_date_time_stacked/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_dropdown/_dropdown.scss +114 -0
- data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +13 -4
- 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/example.yml +6 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/index.js +3 -0
- data/app/pb_kits/playbook/pb_dropdown/dropdown.html.erb +5 -4
- data/app/pb_kits/playbook/pb_dropdown/dropdown.rb +6 -1
- data/app/pb_kits/playbook/pb_dropdown/dropdown.test.jsx +96 -0
- data/app/pb_kits/playbook/pb_dropdown/dropdown_container.html.erb +1 -0
- data/app/pb_kits/playbook/pb_dropdown/dropdown_container.rb +2 -0
- data/app/pb_kits/playbook/pb_dropdown/dropdown_option.html.erb +2 -2
- data/app/pb_kits/playbook/pb_dropdown/dropdown_option.rb +27 -2
- data/app/pb_kits/playbook/pb_dropdown/dropdown_trigger.html.erb +4 -2
- data/app/pb_kits/playbook/pb_dropdown/dropdown_trigger.rb +2 -0
- data/app/pb_kits/playbook/pb_dropdown/hooks/useHandleOnKeydown.tsx +25 -5
- data/app/pb_kits/playbook/pb_dropdown/index.js +50 -0
- data/app/pb_kits/playbook/pb_dropdown/keyboard_accessibility.js +11 -1
- data/app/pb_kits/playbook/pb_dropdown/kit.schema.json +8 -0
- data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownOption.tsx +15 -4
- data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownTrigger.tsx +22 -13
- data/app/pb_kits/playbook/pb_file_upload/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_form_group/docs/_playground.json +100 -1
- data/app/pb_kits/playbook/pb_form_group/docs/_playground.overrides.json +91 -0
- data/app/pb_kits/playbook/pb_full_screen/_full_screen.scss +77 -0
- data/app/pb_kits/playbook/pb_full_screen/_full_screen.tsx +183 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_content_padding.jsx +68 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_content_padding.md +1 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_custom_trigger.jsx +71 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_custom_trigger.md +1 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_default.html.erb +3 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_default.jsx +63 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_default.md +1 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_header_text_styling.jsx +68 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_header_text_styling.md +1 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_sticky_header.jsx +68 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_sticky_header.md +1 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_table_and_filter.jsx +149 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_full_screen_table_and_filter.md +1 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_playground.json +155 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/_playground.overrides.json +137 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/example.yml +14 -0
- data/app/pb_kits/playbook/pb_full_screen/docs/index.js +6 -0
- data/app/pb_kits/playbook/pb_full_screen/full_screen.html.erb +12 -0
- data/app/pb_kits/playbook/pb_full_screen/full_screen.rb +11 -0
- data/app/pb_kits/playbook/pb_full_screen/full_screen.test.jsx +237 -0
- data/app/pb_kits/playbook/pb_full_screen/kit.schema.json +89 -0
- data/app/pb_kits/playbook/pb_full_screen/useFullScreen.ts +15 -0
- data/app/pb_kits/playbook/pb_icon/_icon.tsx +22 -11
- data/app/pb_kits/playbook/pb_icon/icon.rb +5 -2
- data/app/pb_kits/playbook/pb_icon/kit.schema.json +3 -5
- data/app/pb_kits/playbook/pb_layout/docs/_playground.json +246 -1
- data/app/pb_kits/playbook/pb_layout/docs/_playground.overrides.json +188 -0
- 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 +218 -1
- data/app/pb_kits/playbook/pb_progress_step/docs/_playground.overrides.json +189 -0
- data/app/pb_kits/playbook/pb_radio/docs/_playground.json +80 -6
- data/app/pb_kits/playbook/pb_radio/docs/_playground.overrides.json +82 -3
- data/app/pb_kits/playbook/pb_radio/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_playground.json +171 -1
- 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_select/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_selectable_card/docs/_playground.json +75 -82
- data/app/pb_kits/playbook/pb_selectable_card/docs/_playground.overrides.json +76 -76
- data/app/pb_kits/playbook/pb_selectable_card/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_playground.json +128 -1
- data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_playground.overrides.json +106 -0
- data/app/pb_kits/playbook/pb_selectable_card_icon/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_selectable_icon/docs/_playground.json +37 -21
- data/app/pb_kits/playbook/pb_selectable_icon/docs/_playground.overrides.json +35 -18
- data/app/pb_kits/playbook/pb_selectable_icon/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_selectable_list/docs/_playground.json +174 -12
- data/app/pb_kits/playbook/pb_selectable_list/docs/_playground.overrides.json +162 -10
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_playground.json +92 -1
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_playground.overrides.json +80 -0
- data/app/pb_kits/playbook/pb_source/docs/_playground.json +88 -1
- data/app/pb_kits/playbook/pb_source/docs/_playground.overrides.json +80 -0
- data/app/pb_kits/playbook/pb_star_rating/docs/_playground.json +28 -53
- data/app/pb_kits/playbook/pb_star_rating/docs/_playground.overrides.json +33 -32
- data/app/pb_kits/playbook/pb_star_rating/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_stat_change/docs/_playground.json +15 -9
- data/app/pb_kits/playbook/pb_stat_change/docs/_playground.overrides.json +15 -5
- data/app/pb_kits/playbook/pb_stat_value/docs/_playground.json +19 -9
- data/app/pb_kits/playbook/pb_stat_value/docs/_playground.overrides.json +18 -7
- data/app/pb_kits/playbook/pb_stat_value/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_table/docs/_playground.json +259 -1
- data/app/pb_kits/playbook/pb_table/docs/_playground.overrides.json +176 -0
- data/app/pb_kits/playbook/pb_text_input/docs/_playground.json +44 -5
- data/app/pb_kits/playbook/pb_text_input/docs/_playground.overrides.json +39 -3
- data/app/pb_kits/playbook/pb_text_input/kit.schema.json +2 -2
- 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 +86 -1
- 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 +199 -1
- data/app/pb_kits/playbook/pb_timeline/docs/_playground.overrides.json +165 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/_playground.json +36 -21
- data/app/pb_kits/playbook/pb_timestamp/docs/_playground.overrides.json +35 -20
- data/app/pb_kits/playbook/pb_toggle/docs/_playground.json +24 -13
- data/app/pb_kits/playbook/pb_toggle/docs/_playground.overrides.json +20 -12
- data/app/pb_kits/playbook/pb_toggle/kit.schema.json +1 -1
- 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_typeahead/kit.schema.json +1 -1
- data/app/pb_kits/playbook/pb_user/docs/_playground.json +33 -15
- data/app/pb_kits/playbook/pb_user/docs/_playground.overrides.json +32 -15
- data/app/pb_kits/playbook/pb_user_badge/docs/_playground.json +26 -12
- data/app/pb_kits/playbook/pb_user_badge/docs/_playground.overrides.json +26 -9
- data/app/pb_kits/playbook/pb_weekday_stacked/docs/_playground.json +32 -5
- data/app/pb_kits/playbook/pb_weekday_stacked/docs/_playground.overrides.json +30 -4
- data/app/pb_kits/playbook/utilities/_border.scss +262 -0
- data/app/pb_kits/playbook/utilities/global-props.schema.json +98 -0
- data/app/pb_kits/playbook/utilities/globalProps.ts +83 -1
- data/app/pb_kits/playbook/utilities/test/globalProps/border.test.js +66 -0
- data/dist/chunks/{_pb_line_graph-plVkeUnU.js → _pb_line_graph-BQrN-uXU.js} +1 -1
- data/dist/chunks/_typeahead-CMBaw31o.js +5 -0
- data/dist/chunks/globalProps-C04xFof_.js +6 -0
- data/dist/chunks/{lib-D9avZHpB.js → lib-BhWFApsB.js} +2 -2
- data/dist/chunks/vendor.js +3 -3
- data/dist/menu.yml +7 -0
- data/dist/playbook-rails-react-bindings.js +1 -1
- data/dist/playbook-rails.js +1 -1
- data/dist/playbook.css +1 -1
- data/lib/playbook/border.rb +87 -0
- data/lib/playbook/classnames.rb +1 -0
- data/lib/playbook/kit_base.rb +2 -0
- data/lib/playbook/pb_forms_global_props_helper.rb +15 -0
- data/lib/playbook/version.rb +2 -2
- metadata +52 -6
- data/dist/chunks/_typeahead-hKgL47y6.js +0 -5
- data/dist/chunks/globalProps-D2QbetXQ.js +0 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ace743a234de15aaf9ee6ffb24611f554ee330384f789a8bb480dc88625219de
|
|
4
|
+
data.tar.gz: 0e5e6b5351a5320b6752873019fea60337fbc90241a646036790c80b8d2469a8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6fcda84f3ea5e911d96bfa65d56a049004b3b439104873f578609efadbae701904ccac15acdfd87d76e24962a4f4e9cd0ff2f2371eda67d92ace3ce764cc6226
|
|
7
|
+
data.tar.gz: 846e209e5edfed5a2c8e909248b32596ed0c612c35785a90a49642fc11b2d08d4f5ea6dcb3fd8b3dea16ed12b30ca8ea615d622022dbce44f1326812c91b1ba3
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
@import 'pb_form/form';
|
|
37
37
|
@import 'pb_form_group/form_group';
|
|
38
38
|
@import 'pb_form_pill/form_pill';
|
|
39
|
+
@import 'pb_full_screen/full_screen';
|
|
39
40
|
@import 'pb_hashtag/hashtag';
|
|
40
41
|
@import 'pb_highlight/highlight';
|
|
41
42
|
@import 'pb_home_address_street/home_address_street';
|
|
@@ -128,3 +129,4 @@
|
|
|
128
129
|
@import 'utilities/vertical_align';
|
|
129
130
|
@import 'utilities/height';
|
|
130
131
|
@import 'utilities/gap';
|
|
132
|
+
@import 'utilities/border';
|
|
@@ -10,6 +10,61 @@
|
|
|
10
10
|
@import "./scss_partials/dropdown_animation";
|
|
11
11
|
@import "dropdown_mixin";
|
|
12
12
|
|
|
13
|
+
@mixin dropdown-disabled-typography($color) {
|
|
14
|
+
.pb_body_kit,
|
|
15
|
+
.pb_body_kit_default,
|
|
16
|
+
.pb_body_kit_light,
|
|
17
|
+
.pb_body_kit_lighter,
|
|
18
|
+
.pb_body_kit_link,
|
|
19
|
+
.pb_body_kit_success,
|
|
20
|
+
.pb_body_kit_error,
|
|
21
|
+
.pb_body_kit_neutral,
|
|
22
|
+
.pb_body_kit_positive,
|
|
23
|
+
.pb_body_kit_negative,
|
|
24
|
+
.pb_caption_kit,
|
|
25
|
+
.pb_caption_kit_xs,
|
|
26
|
+
.pb_caption_kit_sm,
|
|
27
|
+
.pb_caption_kit_md,
|
|
28
|
+
.pb_caption_kit_base,
|
|
29
|
+
.pb_caption_kit_lg,
|
|
30
|
+
.pb_caption_kit_xl,
|
|
31
|
+
.pb_title_kit,
|
|
32
|
+
.pb_detail_kit,
|
|
33
|
+
.pb_detail_kit_color_light,
|
|
34
|
+
.pb_detail_kit_color_default,
|
|
35
|
+
.pb_detail_kit_color_lighter,
|
|
36
|
+
.pb_detail_kit_color_link,
|
|
37
|
+
.pb_detail_kit_color_error,
|
|
38
|
+
.pb_detail_kit_color_success,
|
|
39
|
+
.pb_link_kit,
|
|
40
|
+
.pb_link_kit_underline,
|
|
41
|
+
a {
|
|
42
|
+
color: $color !important;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
@each $caption-color, $caption-value in $pb_caption_colors {
|
|
47
|
+
.pb_caption_kit_xs_#{$caption-color},
|
|
48
|
+
.pb_caption_kit_sm_#{$caption-color},
|
|
49
|
+
.pb_caption_kit_md_#{$caption-color},
|
|
50
|
+
.pb_caption_kit_base_#{$caption-color},
|
|
51
|
+
.pb_caption_kit_lg_#{$caption-color},
|
|
52
|
+
.pb_caption_kit_xl_#{$caption-color} {
|
|
53
|
+
color: $color !important;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
@each $link-color, $link-value in $pb_link_colors {
|
|
59
|
+
.pb_link_kit_#{$link-color},
|
|
60
|
+
.pb_link_kit_#{$link-color}_underline,
|
|
61
|
+
.pb_link_kit_#{$link-color}_disabled,
|
|
62
|
+
.pb_link_kit_#{$link-color}_underline_disabled {
|
|
63
|
+
color: $color !important;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
13
68
|
.pb_dropdown_default,
|
|
14
69
|
.pb_dropdown_subtle,
|
|
15
70
|
.pb_dropdown_quickpick,
|
|
@@ -50,6 +105,17 @@
|
|
|
50
105
|
color: $input_text_default;
|
|
51
106
|
}
|
|
52
107
|
}
|
|
108
|
+
|
|
109
|
+
.dropdown_input:disabled {
|
|
110
|
+
background-color: $input_background_disabled;
|
|
111
|
+
color: $input_text_disabled;
|
|
112
|
+
cursor: default;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.dropdown_input:disabled::placeholder {
|
|
116
|
+
color: $input_text_disabled;
|
|
117
|
+
}
|
|
118
|
+
|
|
53
119
|
&:focus {
|
|
54
120
|
box-shadow: 0px 0px 0 1px $status_border_primary !important;
|
|
55
121
|
outline: unset;
|
|
@@ -145,6 +211,20 @@
|
|
|
145
211
|
}
|
|
146
212
|
}
|
|
147
213
|
}
|
|
214
|
+
|
|
215
|
+
// Disabled state
|
|
216
|
+
&.disabled {
|
|
217
|
+
cursor: not-allowed;
|
|
218
|
+
// background-color: $input_background_disabled;
|
|
219
|
+
color: $input_text_disabled;
|
|
220
|
+
border-color: $input_border_disabled;
|
|
221
|
+
pointer-events: none;
|
|
222
|
+
@include dropdown-disabled-typography($input_text_disabled);
|
|
223
|
+
&:hover,
|
|
224
|
+
&:focus {
|
|
225
|
+
background-color: $input_background_disabled;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
148
228
|
}
|
|
149
229
|
|
|
150
230
|
.dropdown_option_wrapper {
|
|
@@ -376,6 +456,40 @@
|
|
|
376
456
|
background-color: $primary;
|
|
377
457
|
border-bottom: rgba($white, 0.15);
|
|
378
458
|
}
|
|
459
|
+
|
|
460
|
+
&.disabled {
|
|
461
|
+
cursor: not-allowed;
|
|
462
|
+
background-color: $input_background_disabled_dark;
|
|
463
|
+
color: $input_text_disabled_dark;
|
|
464
|
+
border-color: $input_border_disabled_dark;
|
|
465
|
+
pointer-events: none;
|
|
466
|
+
@include dropdown-disabled-typography($input_text_disabled_dark);
|
|
467
|
+
&:hover,
|
|
468
|
+
&:focus {
|
|
469
|
+
background-color: $input_background_disabled_dark;
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
&.disabled {
|
|
477
|
+
.dropdown_wrapper {
|
|
478
|
+
.dropdown_trigger_wrapper,
|
|
479
|
+
.dropdown_trigger_wrapper_focus,
|
|
480
|
+
.dropdown_trigger_wrapper_focus_select_only,
|
|
481
|
+
.dropdown_trigger_wrapper_select_only {
|
|
482
|
+
background-color: $input_background_disabled;
|
|
483
|
+
box-shadow: none !important;
|
|
484
|
+
cursor: default !important;
|
|
485
|
+
opacity: 0.5;
|
|
486
|
+
pointer-events: none;
|
|
487
|
+
|
|
488
|
+
input {
|
|
489
|
+
background-color: $input_background_disabled;
|
|
490
|
+
color: $input_text_disabled;
|
|
491
|
+
cursor: default !important;
|
|
492
|
+
}
|
|
379
493
|
}
|
|
380
494
|
}
|
|
381
495
|
}
|
|
@@ -93,6 +93,7 @@ type DropdownProps = {
|
|
|
93
93
|
closeOnClick?: "outside" | "inside" | "any";
|
|
94
94
|
constrainHeight?: boolean;
|
|
95
95
|
customQuickPickDates?: CustomQuickPickDates;
|
|
96
|
+
disabled?: boolean;
|
|
96
97
|
formPillProps?: GenericObject;
|
|
97
98
|
dark?: boolean;
|
|
98
99
|
data?: { [key: string]: string };
|
|
@@ -139,6 +140,7 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
|
|
|
139
140
|
dark = false,
|
|
140
141
|
data = {},
|
|
141
142
|
defaultValue = {},
|
|
143
|
+
disabled = false,
|
|
142
144
|
error,
|
|
143
145
|
htmlOptions = {},
|
|
144
146
|
id,
|
|
@@ -164,6 +166,7 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
|
|
|
164
166
|
const separatorsClass = separators ? '' : 'separators_hidden'
|
|
165
167
|
const classes = classnames(
|
|
166
168
|
buildCss("pb_dropdown", variant, separatorsClass),
|
|
169
|
+
disabled && "disabled",
|
|
167
170
|
globalProps(props),
|
|
168
171
|
className
|
|
169
172
|
);
|
|
@@ -174,7 +177,7 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
|
|
|
174
177
|
: (options || []);
|
|
175
178
|
// ----------------------------------------------------------
|
|
176
179
|
|
|
177
|
-
const [isDropDownClosed, setIsDropDownClosed, toggleDropdown] = useDropdown(isClosed);
|
|
180
|
+
const [isDropDownClosed, setIsDropDownClosed, toggleDropdown] = useDropdown(disabled ? true : isClosed);
|
|
178
181
|
|
|
179
182
|
// Use a suffix for the trigger ID to avoid conflict with the outer div's id
|
|
180
183
|
const sanitizeForId = (str: string) =>
|
|
@@ -228,6 +231,7 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
|
|
|
228
231
|
|
|
229
232
|
const handleLabelClick = (e: React.MouseEvent) => {
|
|
230
233
|
e.stopPropagation();
|
|
234
|
+
if (disabled) return;
|
|
231
235
|
if (selectId) {
|
|
232
236
|
const trigger = document.getElementById(selectId);
|
|
233
237
|
if (trigger) trigger.focus();
|
|
@@ -269,8 +273,8 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
|
|
|
269
273
|
|
|
270
274
|
// dropdown to toggle with external control
|
|
271
275
|
useEffect(() => {
|
|
272
|
-
setIsDropDownClosed(isClosed)
|
|
273
|
-
}, [isClosed])
|
|
276
|
+
setIsDropDownClosed(disabled ? true : isClosed)
|
|
277
|
+
}, [disabled, isClosed])
|
|
274
278
|
|
|
275
279
|
const blankSelectionOption: GenericObject = blankSelection ? [{ label: blankSelection, value: "" }] : [];
|
|
276
280
|
const optionsWithBlankSelection = blankSelectionOption.concat(dropdownOptions);
|
|
@@ -330,12 +334,14 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
|
|
|
330
334
|
|
|
331
335
|
|
|
332
336
|
const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
|
|
337
|
+
if (disabled) return;
|
|
333
338
|
setFilterItem(e.target.value);
|
|
334
339
|
setIsDropDownClosed(false);
|
|
335
340
|
};
|
|
336
341
|
|
|
337
342
|
|
|
338
343
|
const handleOptionClick = (clickedItem: GenericObject) => {
|
|
344
|
+
if (disabled) return;
|
|
339
345
|
const shouldCloseOnClick = closeOnClick === "any" || closeOnClick === "inside";
|
|
340
346
|
|
|
341
347
|
if (multiSelect) {
|
|
@@ -378,11 +384,13 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
|
|
|
378
384
|
};
|
|
379
385
|
|
|
380
386
|
const handleWrapperClick = () => {
|
|
387
|
+
if (disabled) return;
|
|
381
388
|
autocomplete && inputRef?.current?.focus();
|
|
382
389
|
toggleDropdown();
|
|
383
390
|
};
|
|
384
391
|
|
|
385
392
|
const handleBackspace = () => {
|
|
393
|
+
if (disabled) return;
|
|
386
394
|
if (multiSelect) {
|
|
387
395
|
setSelected([]);
|
|
388
396
|
onSelect && onSelect([]);
|
|
@@ -502,6 +510,7 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
|
|
|
502
510
|
blankSelection,
|
|
503
511
|
clearable,
|
|
504
512
|
dropdownContainerRef,
|
|
513
|
+
disabled,
|
|
505
514
|
error,
|
|
506
515
|
errorId,
|
|
507
516
|
filterItem,
|
|
@@ -564,7 +573,7 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
|
|
|
564
573
|
}
|
|
565
574
|
}, 0);
|
|
566
575
|
}}
|
|
567
|
-
onFocus={() => setIsInputFocused(true)}
|
|
576
|
+
onFocus={() => !disabled && setIsInputFocused(true)}
|
|
568
577
|
ref={dropdownRef}
|
|
569
578
|
>
|
|
570
579
|
{children ? (
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
<%
|
|
2
|
+
options = [
|
|
3
|
+
{
|
|
4
|
+
label: "Jasper Furniss",
|
|
5
|
+
value: "jasperFurniss",
|
|
6
|
+
territory: "PHL",
|
|
7
|
+
title: "Lead UX Engineer",
|
|
8
|
+
id: "jasper-furniss",
|
|
9
|
+
status: "Offline"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
label: "Ramon Ruiz",
|
|
13
|
+
value: "ramonRuiz",
|
|
14
|
+
territory: "PHL",
|
|
15
|
+
title: "Senior UX Designer",
|
|
16
|
+
id: "ramon-ruiz",
|
|
17
|
+
status: "Unavailable",
|
|
18
|
+
disabled: true
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
label: "Carlos Lima",
|
|
22
|
+
value: "carlosLima",
|
|
23
|
+
territory: "PHL",
|
|
24
|
+
title: "Nitro Developer",
|
|
25
|
+
id: "carlos-lima",
|
|
26
|
+
status: "Online"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
label: "Courtney Long",
|
|
30
|
+
value: "courtneyLong",
|
|
31
|
+
territory: "PHL",
|
|
32
|
+
title: "Lead UX Designer",
|
|
33
|
+
id: "courtney-long",
|
|
34
|
+
status: "Online"
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
%>
|
|
38
|
+
|
|
39
|
+
<%
|
|
40
|
+
custom_display = capture do
|
|
41
|
+
pb_rails("flex", props: { align: "center" }) do
|
|
42
|
+
concat(pb_rails("avatar", props: { name: "", size: "xs", id: "dropdown-avatar" }))
|
|
43
|
+
concat(pb_rails("body", props: { text: "", size: "xs", margin_x: "xs", id: "dropdown-avatar-name" }))
|
|
44
|
+
concat(pb_rails("badge", props: { text: "", id: "dropdown-avatar-status" }))
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
%>
|
|
48
|
+
|
|
49
|
+
<%= pb_rails("dropdown", props: { id: "user-dropdown-disabled-options", options: options }) do %>
|
|
50
|
+
<%= pb_rails("dropdown/dropdown_trigger", props: { placeholder: "Select a User", custom_display: custom_display }) %>
|
|
51
|
+
<%= pb_rails("dropdown/dropdown_container") do %>
|
|
52
|
+
<% options.each do |option| %>
|
|
53
|
+
<%= pb_rails("dropdown/dropdown_option", props: { option: option }) do %>
|
|
54
|
+
<%= pb_rails("flex", props: { align: "center", justify: "between" }) do %>
|
|
55
|
+
<%= pb_rails("flex/flex_item") do %>
|
|
56
|
+
<%= pb_rails("user", props: { name: option[:label], align: "left", avatar: true, orientation: "horizontal", territory: option[:territory], title: option[:title] }) %>
|
|
57
|
+
<% end %>
|
|
58
|
+
<%= pb_rails("flex/flex_item") do %>
|
|
59
|
+
<%= pb_rails("badge", props: { rounded: true, dark: true, text: option[:status], variant: option[:status] == "Offline" ? "neutral" : option[:status] == "Online" ? "success" : "warning" }) %>
|
|
60
|
+
<% end %>
|
|
61
|
+
<% end %>
|
|
62
|
+
<% end %>
|
|
63
|
+
<% end %>
|
|
64
|
+
<% end %>
|
|
65
|
+
<% end %>
|
|
66
|
+
|
|
67
|
+
<script>
|
|
68
|
+
document.addEventListener("pb:dropdown:selected", (e) => {
|
|
69
|
+
if (e.target.id !== "user-dropdown-disabled-options") return;
|
|
70
|
+
|
|
71
|
+
const option = e.detail;
|
|
72
|
+
const dropdown = e.target;
|
|
73
|
+
const display = dropdown.querySelector("[data-dropdown-trigger-custom-display]");
|
|
74
|
+
if (!display) return;
|
|
75
|
+
|
|
76
|
+
const nameEl = display.querySelector("#dropdown-avatar-name");
|
|
77
|
+
if (nameEl) nameEl.textContent = option.label;
|
|
78
|
+
|
|
79
|
+
const avatarWrapper = display.querySelector("#dropdown-avatar .avatar_wrapper");
|
|
80
|
+
if (avatarWrapper) {
|
|
81
|
+
const initials = (option.label[0] + option.label.split(" ").pop()[0]).toUpperCase();
|
|
82
|
+
avatarWrapper.dataset.name = option.label;
|
|
83
|
+
avatarWrapper.setAttribute("data-initials", initials);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
const badgeEl = display.querySelector("#dropdown-avatar-status");
|
|
87
|
+
const variant = option.status === "Online" ? "success" : option.status === "Offline" ? "neutral" : "warning";
|
|
88
|
+
if (badgeEl) {
|
|
89
|
+
badgeEl.querySelector("span").textContent = option.status;
|
|
90
|
+
badgeEl.className = `pb_badge_kit_${variant}`;
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
</script>
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import React, { useState } from 'react'
|
|
2
|
+
|
|
3
|
+
import Dropdown from '../../pb_dropdown/_dropdown'
|
|
4
|
+
import Badge from '../../pb_badge/_badge'
|
|
5
|
+
import Flex from '../../pb_flex/_flex'
|
|
6
|
+
import FlexItem from '../../pb_flex/_flex_item'
|
|
7
|
+
import Avatar from '../../pb_avatar/_avatar'
|
|
8
|
+
import User from '../../pb_user/_user'
|
|
9
|
+
import Body from '../../pb_body/_body'
|
|
10
|
+
|
|
11
|
+
const DropdownCustomDisplayDisabledOption = (props) => {
|
|
12
|
+
const [selectedOption, setSelectedOption] = useState();
|
|
13
|
+
|
|
14
|
+
const options = [
|
|
15
|
+
{
|
|
16
|
+
label: "Jasper Furniss",
|
|
17
|
+
value: "jasperFurniss",
|
|
18
|
+
territory: "PHL",
|
|
19
|
+
title: "Lead UX Engineer",
|
|
20
|
+
id: "jasper-furniss",
|
|
21
|
+
status: "Offline"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
label: "Ramon Ruiz",
|
|
25
|
+
value: "ramonRuiz",
|
|
26
|
+
territory: "PHL",
|
|
27
|
+
title: "Senior UX Designer",
|
|
28
|
+
id: "ramon-ruiz",
|
|
29
|
+
status: "Unavailable",
|
|
30
|
+
disabled: true
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
label: "Carlos Lima",
|
|
34
|
+
value: "carlosLima",
|
|
35
|
+
territory: "PHL",
|
|
36
|
+
title: "Nitro Developer",
|
|
37
|
+
id: "carlos-lima",
|
|
38
|
+
status: "Online"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
label: "Courtney Long",
|
|
42
|
+
value: "courtneyLong",
|
|
43
|
+
territory: "PHL",
|
|
44
|
+
title: "Lead UX Designer",
|
|
45
|
+
id: "courtney-long",
|
|
46
|
+
status: "Online"
|
|
47
|
+
}
|
|
48
|
+
];
|
|
49
|
+
|
|
50
|
+
const CustomDisplay = () => {
|
|
51
|
+
return (
|
|
52
|
+
<>
|
|
53
|
+
{
|
|
54
|
+
selectedOption && (
|
|
55
|
+
<Flex align="center">
|
|
56
|
+
<Avatar
|
|
57
|
+
name={selectedOption.label}
|
|
58
|
+
size="xs"
|
|
59
|
+
/>
|
|
60
|
+
<Body
|
|
61
|
+
marginX="xs"
|
|
62
|
+
text={selectedOption.label}
|
|
63
|
+
/>
|
|
64
|
+
<Badge
|
|
65
|
+
text={selectedOption.status}
|
|
66
|
+
variant={selectedOption.status == "Offline" ? "neutral" : selectedOption.status == "Online" ? "success" : "warning"}
|
|
67
|
+
/>
|
|
68
|
+
</Flex>
|
|
69
|
+
)
|
|
70
|
+
}
|
|
71
|
+
</>
|
|
72
|
+
)
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
return (
|
|
77
|
+
<div>
|
|
78
|
+
<Dropdown
|
|
79
|
+
onSelect={(selectedItem) => setSelectedOption(selectedItem)}
|
|
80
|
+
options={options}
|
|
81
|
+
{...props}
|
|
82
|
+
>
|
|
83
|
+
<Dropdown.Trigger customDisplay={<CustomDisplay/>}
|
|
84
|
+
placeholder="Select a User"
|
|
85
|
+
/>
|
|
86
|
+
{options.map((option) => (
|
|
87
|
+
<Dropdown.Option key={option.id}
|
|
88
|
+
option={option}
|
|
89
|
+
>
|
|
90
|
+
<Flex
|
|
91
|
+
align="center"
|
|
92
|
+
justify="between"
|
|
93
|
+
>
|
|
94
|
+
<FlexItem>
|
|
95
|
+
<User
|
|
96
|
+
align="left"
|
|
97
|
+
avatar
|
|
98
|
+
name={option.label}
|
|
99
|
+
orientation="horizontal"
|
|
100
|
+
territory={option.territory}
|
|
101
|
+
title={option.title}
|
|
102
|
+
/>
|
|
103
|
+
</FlexItem>
|
|
104
|
+
<FlexItem>
|
|
105
|
+
<Badge dark
|
|
106
|
+
rounded
|
|
107
|
+
text={option.status}
|
|
108
|
+
variant={`${
|
|
109
|
+
option.status === "Offline"
|
|
110
|
+
? "neutral"
|
|
111
|
+
: option.status === "Unavailable"
|
|
112
|
+
? "warning"
|
|
113
|
+
: option.status === "Online"
|
|
114
|
+
? "success"
|
|
115
|
+
: "warning"
|
|
116
|
+
}`}
|
|
117
|
+
/>
|
|
118
|
+
</FlexItem>
|
|
119
|
+
</Flex>
|
|
120
|
+
</Dropdown.Option>
|
|
121
|
+
))}
|
|
122
|
+
</Dropdown>
|
|
123
|
+
</div>
|
|
124
|
+
)
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export default DropdownCustomDisplayDisabledOption
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
To disable individual items in the `options`, include `disabled: true` within the object on the option that you want disabled. See the code snippet below for an example of how to do this.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<%
|
|
2
|
+
options = [
|
|
3
|
+
{ label: 'United States', value: 'unitedStates', id: 'us' },
|
|
4
|
+
{ label: 'Canada', value: 'canada', id: 'ca' },
|
|
5
|
+
{ label: 'Pakistan', value: 'pakistan', id: 'pk' },
|
|
6
|
+
]
|
|
7
|
+
|
|
8
|
+
%>
|
|
9
|
+
|
|
10
|
+
<%= pb_rails("dropdown", props: {id: "dropdown-disabled", disabled: true,label: "Default Dropdown", options: options}) %>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import Dropdown from '../_dropdown'
|
|
3
|
+
|
|
4
|
+
const DropdownDisabled = (props) => {
|
|
5
|
+
|
|
6
|
+
const options = [
|
|
7
|
+
{
|
|
8
|
+
label: "United States",
|
|
9
|
+
value: "unitedStates",
|
|
10
|
+
id: "us"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
label: "Canada",
|
|
14
|
+
value: "canada",
|
|
15
|
+
id: "ca"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
label: "Pakistan",
|
|
19
|
+
value: "pakistan",
|
|
20
|
+
id: "pk"
|
|
21
|
+
}
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
return (
|
|
26
|
+
<div>
|
|
27
|
+
<Dropdown
|
|
28
|
+
disabled
|
|
29
|
+
label="Default Dropdown"
|
|
30
|
+
options={options}
|
|
31
|
+
{...props}
|
|
32
|
+
/>
|
|
33
|
+
</div>
|
|
34
|
+
)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export default DropdownDisabled
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<%
|
|
2
|
+
options = [
|
|
3
|
+
{ label: "Available Option", value: "available", id: "available-option" },
|
|
4
|
+
{ label: "Coming Soon", value: "coming-soon", id: "coming-soon", disabled: true },
|
|
5
|
+
{ label: "Another Available", value: "another-available", id: "another-available" },
|
|
6
|
+
{ label: "Locked Feature", value: "locked-feature", id: "locked-feature", disabled: true },
|
|
7
|
+
]
|
|
8
|
+
%>
|
|
9
|
+
|
|
10
|
+
<%= pb_rails("dropdown", props: { label: "Disabled Options", options: options }) %>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React, { useState } from 'react'
|
|
2
|
+
|
|
3
|
+
import Dropdown from '../../pb_dropdown/_dropdown'
|
|
4
|
+
import Caption from '../../pb_caption/_caption'
|
|
5
|
+
|
|
6
|
+
const DropdownDisabledOption = (props) => {
|
|
7
|
+
const [selectedOption, setSelectedOption] = useState()
|
|
8
|
+
|
|
9
|
+
const options = [
|
|
10
|
+
{ label: 'Available Option', value: 'available', id: 'available-option' },
|
|
11
|
+
{ label: 'Coming Soon', value: 'coming-soon', id: 'coming-soon', disabled: true },
|
|
12
|
+
{ label: 'Another Available', value: 'another-available', id: 'another-available' },
|
|
13
|
+
{ label: 'Locked Feature', value: 'locked-feature', id: 'locked-feature', disabled: true },
|
|
14
|
+
]
|
|
15
|
+
|
|
16
|
+
return (
|
|
17
|
+
<div>
|
|
18
|
+
<Caption
|
|
19
|
+
text="Select an option. Disabled options remain visible but cannot be selected."
|
|
20
|
+
/>
|
|
21
|
+
<Dropdown
|
|
22
|
+
onSelect={(selectedItem) => setSelectedOption(selectedItem)}
|
|
23
|
+
options={options}
|
|
24
|
+
placeholder="Choose an option"
|
|
25
|
+
{...props}
|
|
26
|
+
/>
|
|
27
|
+
{selectedOption && (
|
|
28
|
+
<Caption
|
|
29
|
+
marginTop="xs"
|
|
30
|
+
text={`Selected: ${selectedOption.label}`}
|
|
31
|
+
/>
|
|
32
|
+
)}
|
|
33
|
+
</div>
|
|
34
|
+
)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export default DropdownDisabledOption
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
To disable individual items in the `options`, include `disabled: true` within the object on the option that you want disabled. See the code snippet below for an example of how to do this.
|
|
@@ -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";
|