playbook_ui_docs 14.20.0.pre.rc.1 → 14.20.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/pb_advanced_table/docs/_advanced_table_column_visibility_with_state.jsx +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility_with_state.md +3 -1
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_rails.html.erb +31 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_rails.md +5 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select.jsx +56 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select.md +3 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_display.jsx +58 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_display.md +3 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_display_rails.html.erb +20 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_display_rails.md +1 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_rails.html.erb +19 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_rails.md +3 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_autocomplete.html.erb +20 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_autocomplete.jsx +57 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_autocomplete.md +1 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_custom_options.html.erb +50 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_custom_options.jsx +105 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_default.html.erb +22 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_default.jsx +67 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/example.yml +11 -1
- data/app/pb_kits/playbook/pb_dropdown/docs/index.js +5 -0
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +1 -0
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -0
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_color.html.erb +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_color.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_default.html.erb +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_default.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled.html.erb +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options.html.erb +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options_default.html.erb +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options_default.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options_parent.html.erb +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options_parent.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options_parent_default.html.erb +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options_parent_default.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_error.html.erb +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_error.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_label.html.erb +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_label.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_react_hook.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_reset.html.erb +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_return_all_selected.html.erb +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_return_all_selected.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_selected_ids.html.erb +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_selected_ids.md +2 -0
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_selected_ids_react.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_selected_ids_react.md +3 -1
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_single.html.erb +22 -22
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_single.jsx +22 -22
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_single_children_only.html.erb +22 -22
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_single_children_only.jsx +22 -22
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_with_children.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_with_children_with_radios.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_with_form.html.erb +11 -11
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_preserve_input.jsx +23 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_preserve_input.md +1 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/index.js +1 -0
- data/dist/playbook-doc.js +2 -2
- metadata +21 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default.html.erb +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 368099700f434914add2572c8b6beff68d754c1945a3d28b67449a82e7a45f05
|
4
|
+
data.tar.gz: bb0447607b80dfb927bf10f9a86d7b5253b57f5aa30920cfbcbd537e6fe25866
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1d90fcb5a77f2ad30e4f134e224a35eee87291830cf9b34d031369f1bf2bd47b61af1667b019afa6523c8c44b5ef7531709afc58d5f3f7966c7b8f800f3bd493
|
7
|
+
data.tar.gz: 9c3d8b9f6ab2b4a02bada9ce7f384b1d3b956b630c1c2a7c99100431a1a278ebea4cd91c0af59956863319768371a3be5e46acdda00c97ec89ca26305c6eb070
|
data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility_with_state.md
CHANGED
@@ -1 +1,3 @@
|
|
1
|
-
The `columnVisibilityControl` prop also allows for greater control over the columnVisibility state. Devs can manage state themselves by passing in `value` and `onChange` as shown.
|
1
|
+
The `columnVisibilityControl` prop also allows for greater control over the columnVisibility state. Devs can manage state themselves by passing in `value` and `onChange` as shown.
|
2
|
+
|
3
|
+
The additional `onColumnVisibilityChange` provides a callback with the current state as the argument if needed.
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<%
|
2
|
+
options = [
|
3
|
+
{ label: 'United States', value: 'United States', id: 'us' },
|
4
|
+
{ label: 'Canada', value: 'Canada', id: 'ca' },
|
5
|
+
{ label: 'Pakistan', value: 'Pakistan', id: 'pk' },
|
6
|
+
]
|
7
|
+
|
8
|
+
%>
|
9
|
+
|
10
|
+
<%
|
11
|
+
options2 = [
|
12
|
+
{ label: 'India', value: 'India', id: 'in' },
|
13
|
+
{ label: 'Mexico', value: 'Mexico', id: 'mx' },
|
14
|
+
{ label: 'Brazil', value: 'Brazil', id: 'br' },
|
15
|
+
{ label: 'Argentina', value: 'Argentina', id: 'ar' },
|
16
|
+
{ label: 'Colombia', value: 'Colombia', id: 'co' },
|
17
|
+
{ label: 'Chile', value: 'Chile', id: 'cl' },
|
18
|
+
{ label: 'Peru', value: 'Peru', id: 'pe' },
|
19
|
+
]
|
20
|
+
|
21
|
+
%>
|
22
|
+
|
23
|
+
<%= pb_rails("dropdown", props: {options: options}) %>
|
24
|
+
|
25
|
+
<script>
|
26
|
+
document.addEventListener("pb:dropdown:selected", (e) => {
|
27
|
+
const option = e.detail;
|
28
|
+
const dropdown = e.target;
|
29
|
+
console.log("Selected option:", option);
|
30
|
+
})
|
31
|
+
</script>
|
@@ -0,0 +1,5 @@
|
|
1
|
+
This kit's `options` prop requires an array of objects, each of which will be used as the selectable options within the dropdown. Each option object can support any number of key-value pairs, but each MUST contain `label`, `value` and `id`.
|
2
|
+
|
3
|
+
The kit also comes with a custom event called "pb:dropdown:selected" which updates dynamically with the selection as it changes. See code snippet to see this in action.
|
4
|
+
|
5
|
+
In addition, a data attribute called `data-option-selected` with the selection is also rendered on the parent dropdown div.
|
@@ -0,0 +1,56 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import Dropdown from '../../pb_dropdown/_dropdown'
|
3
|
+
|
4
|
+
const DropdownMultiSelect = (props) => {
|
5
|
+
|
6
|
+
const options = [
|
7
|
+
{
|
8
|
+
label: "United States",
|
9
|
+
value: "United States",
|
10
|
+
},
|
11
|
+
{
|
12
|
+
label: "United Kingdom",
|
13
|
+
value: "United Kingdom",
|
14
|
+
},
|
15
|
+
{
|
16
|
+
label: "Canada",
|
17
|
+
value: "Canada",
|
18
|
+
},
|
19
|
+
{
|
20
|
+
label: "Pakistan",
|
21
|
+
value: "Pakistan",
|
22
|
+
},
|
23
|
+
{
|
24
|
+
label: "India",
|
25
|
+
value: "India",
|
26
|
+
},
|
27
|
+
{
|
28
|
+
label: "Australia",
|
29
|
+
value: "Australia",
|
30
|
+
},
|
31
|
+
{
|
32
|
+
label: "New Zealand",
|
33
|
+
value: "New Zealand",
|
34
|
+
},
|
35
|
+
{
|
36
|
+
label: "Italy",
|
37
|
+
value: "Italy",
|
38
|
+
},
|
39
|
+
{
|
40
|
+
label: "Spain",
|
41
|
+
value: "Spain",
|
42
|
+
}
|
43
|
+
];
|
44
|
+
|
45
|
+
return (
|
46
|
+
<div>
|
47
|
+
<Dropdown
|
48
|
+
multiSelect
|
49
|
+
options={options}
|
50
|
+
{...props}
|
51
|
+
/>
|
52
|
+
</div>
|
53
|
+
)
|
54
|
+
}
|
55
|
+
|
56
|
+
export default DropdownMultiSelect
|
@@ -0,0 +1,58 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import Dropdown from '../../pb_dropdown/_dropdown'
|
3
|
+
|
4
|
+
const DropdownMultiSelectDisplay = (props) => {
|
5
|
+
|
6
|
+
const options = [
|
7
|
+
{
|
8
|
+
label: "United States",
|
9
|
+
value: "United States",
|
10
|
+
},
|
11
|
+
{
|
12
|
+
label: "United Kingdom",
|
13
|
+
value: "United Kingdom",
|
14
|
+
},
|
15
|
+
{
|
16
|
+
label: "Canada",
|
17
|
+
value: "Canada",
|
18
|
+
},
|
19
|
+
{
|
20
|
+
label: "Pakistan",
|
21
|
+
value: "Pakistan",
|
22
|
+
},
|
23
|
+
{
|
24
|
+
label: "India",
|
25
|
+
value: "India",
|
26
|
+
},
|
27
|
+
{
|
28
|
+
label: "Australia",
|
29
|
+
value: "Australia",
|
30
|
+
},
|
31
|
+
{
|
32
|
+
label: "New Zealand",
|
33
|
+
value: "New Zealand",
|
34
|
+
},
|
35
|
+
{
|
36
|
+
label: "Italy",
|
37
|
+
value: "Italy",
|
38
|
+
},
|
39
|
+
{
|
40
|
+
label: "Spain",
|
41
|
+
value: "Spain",
|
42
|
+
}
|
43
|
+
];
|
44
|
+
|
45
|
+
|
46
|
+
return (
|
47
|
+
<div>
|
48
|
+
<Dropdown
|
49
|
+
formPillProps={{size:"small", color:"neutral"}}
|
50
|
+
multiSelect
|
51
|
+
options={options}
|
52
|
+
{...props}
|
53
|
+
/>
|
54
|
+
</div>
|
55
|
+
)
|
56
|
+
}
|
57
|
+
|
58
|
+
export default DropdownMultiSelectDisplay
|
@@ -0,0 +1,3 @@
|
|
1
|
+
By default, the `multiSelect` prop will render selected options as the default FormPill. `FormPillProps` however can be used to customize these Pills with any props that exist for the FormPill.
|
2
|
+
|
3
|
+
This prop must be an object that contains valid FormPill props. For a full list of FormPill props, see [here](https://playbook.powerapp.cloud/kits/form_pill/react).
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<%
|
2
|
+
options = [
|
3
|
+
{ label: 'United States', value: 'United States', id: 'us' },
|
4
|
+
{ label: 'Canada', value: 'Canada', id: 'ca' },
|
5
|
+
{ label: 'Pakistan', value: 'Pakistan', id: 'pk' },
|
6
|
+
{ label: 'India', value: 'India', id: 'in' },
|
7
|
+
{ label: 'United Kingdom', value: 'United Kingdom', id: 'uk' },
|
8
|
+
{ label: 'Australia', value: 'Australia', id: 'au' },
|
9
|
+
{ label: 'New Zealand', value: 'New Zealand', id: 'nz' },
|
10
|
+
{ label: 'Germany', value: 'Germany', id: 'de' },
|
11
|
+
{ label: 'France', value: 'France', id: 'fr' },
|
12
|
+
{ label: 'Italy', value: 'Italy', id: 'it' },
|
13
|
+
]
|
14
|
+
%>
|
15
|
+
|
16
|
+
<%= pb_rails("dropdown", props: {
|
17
|
+
options: options,
|
18
|
+
multi_select: true,
|
19
|
+
form_pill_props: { size:"small", color:"neutral" },
|
20
|
+
}) %>
|
@@ -0,0 +1 @@
|
|
1
|
+
By default, the `multi_select` prop will render selected options as the default form_pill. `form_pill_props` however can be used to customize these Pills with props that exist for the form_pill. Currently, only the '[color](https://playbook.powerapp.cloud/kits/form_pill/rails#form-pill-colors)' and '[size](https://playbook.powerapp.cloud/kits/form_pill/rails#form-pill-size)' props are supported as shown here.
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<%
|
2
|
+
options = [
|
3
|
+
{ label: 'United States', value: 'United States', id: 'us' },
|
4
|
+
{ label: 'Canada', value: 'Canada', id: 'ca' },
|
5
|
+
{ label: 'Pakistan', value: 'Pakistan', id: 'pk' },
|
6
|
+
{ label: 'India', value: 'India', id: 'in' },
|
7
|
+
{ label: 'United Kingdom', value: 'United Kingdom', id: 'uk' },
|
8
|
+
{ label: 'Australia', value: 'Australia', id: 'au' },
|
9
|
+
{ label: 'New Zealand', value: 'New Zealand', id: 'nz' },
|
10
|
+
{ label: 'Germany', value: 'Germany', id: 'de' },
|
11
|
+
{ label: 'France', value: 'France', id: 'fr' },
|
12
|
+
{ label: 'Italy', value: 'Italy', id: 'it' },
|
13
|
+
]
|
14
|
+
%>
|
15
|
+
|
16
|
+
<%= pb_rails("dropdown", props: {
|
17
|
+
options: options,
|
18
|
+
multi_select: true,
|
19
|
+
}) %>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<%
|
2
|
+
options = [
|
3
|
+
{ label: 'United States', value: 'United States', id: 'us' },
|
4
|
+
{ label: 'Canada', value: 'Canada', id: 'ca' },
|
5
|
+
{ label: 'Pakistan', value: 'Pakistan', id: 'pk' },
|
6
|
+
{ label: 'India', value: 'India', id: 'in' },
|
7
|
+
{ label: 'United Kingdom', value: 'United Kingdom', id: 'uk' },
|
8
|
+
{ label: 'Australia', value: 'Australia', id: 'au' },
|
9
|
+
{ label: 'New Zealand', value: 'New Zealand', id: 'nz' },
|
10
|
+
{ label: 'Germany', value: 'Germany', id: 'de' },
|
11
|
+
{ label: 'France', value: 'France', id: 'fr' },
|
12
|
+
{ label: 'Italy', value: 'Italy', id: 'it' },
|
13
|
+
]
|
14
|
+
%>
|
15
|
+
|
16
|
+
<%= pb_rails("dropdown", props: {
|
17
|
+
autocomplete: true,
|
18
|
+
options: options,
|
19
|
+
multi_select: true,
|
20
|
+
}) %>
|
@@ -0,0 +1,57 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import Dropdown from '../../pb_dropdown/_dropdown'
|
3
|
+
|
4
|
+
const DropdownMultiSelectWithAutocomplete = (props) => {
|
5
|
+
|
6
|
+
const options = [
|
7
|
+
{
|
8
|
+
label: "United States",
|
9
|
+
value: "United States",
|
10
|
+
},
|
11
|
+
{
|
12
|
+
label: "United Kingdom",
|
13
|
+
value: "United Kingdom",
|
14
|
+
},
|
15
|
+
{
|
16
|
+
label: "Canada",
|
17
|
+
value: "Canada",
|
18
|
+
},
|
19
|
+
{
|
20
|
+
label: "Pakistan",
|
21
|
+
value: "Pakistan",
|
22
|
+
},
|
23
|
+
{
|
24
|
+
label: "India",
|
25
|
+
value: "India",
|
26
|
+
},
|
27
|
+
{
|
28
|
+
label: "Australia",
|
29
|
+
value: "Australia",
|
30
|
+
},
|
31
|
+
{
|
32
|
+
label: "New Zealand",
|
33
|
+
value: "New Zealand",
|
34
|
+
},
|
35
|
+
{
|
36
|
+
label: "Italy",
|
37
|
+
value: "Italy",
|
38
|
+
},
|
39
|
+
{
|
40
|
+
label: "Spain",
|
41
|
+
value: "Spain",
|
42
|
+
}
|
43
|
+
];
|
44
|
+
|
45
|
+
return (
|
46
|
+
<div>
|
47
|
+
<Dropdown
|
48
|
+
autocomplete
|
49
|
+
multiSelect
|
50
|
+
options={options}
|
51
|
+
{...props}
|
52
|
+
/>
|
53
|
+
</div>
|
54
|
+
)
|
55
|
+
}
|
56
|
+
|
57
|
+
export default DropdownMultiSelectWithAutocomplete
|
@@ -0,0 +1 @@
|
|
1
|
+
`multiSelect` can also be used with the `autocomplete` functionality.
|
data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_custom_options.html.erb
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
<%
|
2
|
+
options = [
|
3
|
+
{
|
4
|
+
label: "United States",
|
5
|
+
value: "United States",
|
6
|
+
areaCode: "+1",
|
7
|
+
icon: "🇺🇸",
|
8
|
+
id: "us"
|
9
|
+
},
|
10
|
+
{
|
11
|
+
label: "Canada",
|
12
|
+
value: "Canada",
|
13
|
+
areaCode: "+1",
|
14
|
+
icon: "🇨🇦",
|
15
|
+
id: "ca"
|
16
|
+
},
|
17
|
+
{
|
18
|
+
label: "Pakistan",
|
19
|
+
value: "Pakistan",
|
20
|
+
areaCode: "+92",
|
21
|
+
icon: "🇵🇰",
|
22
|
+
id: "pk"
|
23
|
+
}
|
24
|
+
]
|
25
|
+
|
26
|
+
%>
|
27
|
+
|
28
|
+
<%= pb_rails("dropdown", props: { options: options, multi_select: true }) do %>
|
29
|
+
<%= pb_rails("dropdown/dropdown_trigger", props:{ multi_select: true }) %>
|
30
|
+
<%= pb_rails("dropdown/dropdown_container") do %>
|
31
|
+
<% options.each do |option| %>
|
32
|
+
<%= pb_rails("dropdown/dropdown_option", props: {option: option}) do %>
|
33
|
+
<%= pb_rails("flex", props: {
|
34
|
+
align: "center",
|
35
|
+
justify: "between",
|
36
|
+
}) do %>
|
37
|
+
<%= pb_rails("flex/flex_item") do %>
|
38
|
+
<%= pb_rails("flex") do %>
|
39
|
+
<%= pb_rails("icon", props: {icon: option[:icon]}) %>
|
40
|
+
<%= pb_rails("body", props: {text: option[:label], padding_left:"xs"}) %>
|
41
|
+
<% end %>
|
42
|
+
<% end %>
|
43
|
+
<%= pb_rails("flex/flex_item") do %>
|
44
|
+
<%= pb_rails("body", props: {color:"light", text: option[:areaCode]}) %>
|
45
|
+
<% end %>
|
46
|
+
<% end %>
|
47
|
+
<% end %>
|
48
|
+
<% end %>
|
49
|
+
<% end %>
|
50
|
+
<% end %>
|
@@ -0,0 +1,105 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import Dropdown from '../../pb_dropdown/_dropdown'
|
3
|
+
import Body from '../../pb_body/_body'
|
4
|
+
import Flex from '../../pb_flex/_flex'
|
5
|
+
import FlexItem from '../../pb_flex/_flex_item'
|
6
|
+
import Icon from '../../pb_icon/_icon'
|
7
|
+
|
8
|
+
const DropdownMultiSelectWithCustomOptions = (props) => {
|
9
|
+
|
10
|
+
const options = [
|
11
|
+
{
|
12
|
+
label: "United States",
|
13
|
+
value: "United States",
|
14
|
+
areaCode: "+1",
|
15
|
+
icon: "🇺🇸",
|
16
|
+
id: "United-states"
|
17
|
+
},
|
18
|
+
{
|
19
|
+
label: "Canada",
|
20
|
+
value: "Canada",
|
21
|
+
areaCode: "+1",
|
22
|
+
icon: "🇨🇦",
|
23
|
+
id: "canada"
|
24
|
+
},
|
25
|
+
{
|
26
|
+
label: "Pakistan",
|
27
|
+
value: "Pakistan",
|
28
|
+
areaCode: "+92",
|
29
|
+
icon: "🇵🇰",
|
30
|
+
id: "pakistan"
|
31
|
+
},
|
32
|
+
{
|
33
|
+
label: "India",
|
34
|
+
value: "India",
|
35
|
+
areaCode: "+91",
|
36
|
+
icon: "🇮🇳",
|
37
|
+
id: "india"
|
38
|
+
},
|
39
|
+
{
|
40
|
+
label: "Australia",
|
41
|
+
value: "Australia",
|
42
|
+
areaCode: "+61",
|
43
|
+
icon: "🇦🇺",
|
44
|
+
id: "australia"
|
45
|
+
},
|
46
|
+
{
|
47
|
+
label: "New Zealand",
|
48
|
+
value: "New Zealand",
|
49
|
+
areaCode: "+64",
|
50
|
+
icon: "🇳🇿",
|
51
|
+
id: "new-zealand"
|
52
|
+
},
|
53
|
+
{
|
54
|
+
label: "Italy",
|
55
|
+
value: "Italy",
|
56
|
+
areaCode: "+39",
|
57
|
+
icon: "🇮🇹",
|
58
|
+
id: "italy"
|
59
|
+
},
|
60
|
+
{
|
61
|
+
label: "Spain",
|
62
|
+
value: "Spain",
|
63
|
+
areaCode: "+34",
|
64
|
+
icon: "🇪🇸",
|
65
|
+
id: "spain"
|
66
|
+
}
|
67
|
+
];
|
68
|
+
|
69
|
+
return (
|
70
|
+
<div>
|
71
|
+
<Dropdown
|
72
|
+
multiSelect
|
73
|
+
options={options}
|
74
|
+
{...props}
|
75
|
+
>
|
76
|
+
{options.map((option) => (
|
77
|
+
<Dropdown.Option key={option.id}
|
78
|
+
option={option}
|
79
|
+
>
|
80
|
+
<Flex
|
81
|
+
align="center"
|
82
|
+
justify="between"
|
83
|
+
>
|
84
|
+
<FlexItem>
|
85
|
+
<Flex>
|
86
|
+
<Icon icon={option.icon}
|
87
|
+
paddingRight="xs"
|
88
|
+
/>
|
89
|
+
<Body text={option.label} />
|
90
|
+
</Flex>
|
91
|
+
</FlexItem>
|
92
|
+
<FlexItem>
|
93
|
+
<Body color="light"
|
94
|
+
text={option.areaCode}
|
95
|
+
/>
|
96
|
+
</FlexItem>
|
97
|
+
</Flex>
|
98
|
+
</Dropdown.Option>
|
99
|
+
))}
|
100
|
+
</Dropdown>
|
101
|
+
</div>
|
102
|
+
)
|
103
|
+
}
|
104
|
+
|
105
|
+
export default DropdownMultiSelectWithCustomOptions
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<%
|
2
|
+
options = [
|
3
|
+
{ label: 'United States', value: 'United States', id: 'us' },
|
4
|
+
{ label: 'Canada', value: 'Canada', id: 'ca' },
|
5
|
+
{ label: 'Pakistan', value: 'Pakistan', id: 'pk' },
|
6
|
+
{ label: 'India', value: 'India', id: 'in' },
|
7
|
+
{ label: 'United Kingdom', value: 'United Kingdom', id: 'uk' },
|
8
|
+
{ label: 'Australia', value: 'Australia', id: 'au' },
|
9
|
+
{ label: 'New Zealand', value: 'New Zealand', id: 'nz' },
|
10
|
+
{ label: 'Germany', value: 'Germany', id: 'de' },
|
11
|
+
{ label: 'France', value: 'France', id: 'fr' },
|
12
|
+
{ label: 'Italy', value: 'Italy', id: 'it' },
|
13
|
+
]
|
14
|
+
%>
|
15
|
+
|
16
|
+
<%
|
17
|
+
default_value = [
|
18
|
+
{ label: 'United States', value: 'United States', id: 'us' },
|
19
|
+
{ label: 'Canada', value: 'Canada', id: 'ca' },
|
20
|
+
]
|
21
|
+
%>
|
22
|
+
<%= pb_rails("dropdown", props: {options: options, multi_select: true, default_value: default_value}) %>
|
@@ -0,0 +1,67 @@
|
|
1
|
+
import React from "react";
|
2
|
+
import Dropdown from "../../pb_dropdown/_dropdown";
|
3
|
+
|
4
|
+
const DropdownMultiSelectWithDefault = (props) => {
|
5
|
+
const options = [
|
6
|
+
{
|
7
|
+
label: "United States",
|
8
|
+
value: "United States",
|
9
|
+
},
|
10
|
+
{
|
11
|
+
label: "United Kingdom",
|
12
|
+
value: "United Kingdom",
|
13
|
+
},
|
14
|
+
{
|
15
|
+
label: "Canada",
|
16
|
+
value: "Canada",
|
17
|
+
},
|
18
|
+
{
|
19
|
+
label: "Pakistan",
|
20
|
+
value: "Pakistan",
|
21
|
+
},
|
22
|
+
{
|
23
|
+
label: "India",
|
24
|
+
value: "India",
|
25
|
+
},
|
26
|
+
{
|
27
|
+
label: "Australia",
|
28
|
+
value: "Australia",
|
29
|
+
},
|
30
|
+
{
|
31
|
+
label: "New Zealand",
|
32
|
+
value: "New Zealand",
|
33
|
+
},
|
34
|
+
{
|
35
|
+
label: "Italy",
|
36
|
+
value: "Italy",
|
37
|
+
},
|
38
|
+
{
|
39
|
+
label: "Spain",
|
40
|
+
value: "Spain",
|
41
|
+
},
|
42
|
+
];
|
43
|
+
|
44
|
+
const defaultSelectedOptions = [
|
45
|
+
{
|
46
|
+
label: "United States",
|
47
|
+
value: "United States",
|
48
|
+
},
|
49
|
+
{
|
50
|
+
label: "Italy",
|
51
|
+
value: "Italy",
|
52
|
+
},
|
53
|
+
];
|
54
|
+
|
55
|
+
return (
|
56
|
+
<div>
|
57
|
+
<Dropdown
|
58
|
+
defaultValue={defaultSelectedOptions}
|
59
|
+
multiSelect
|
60
|
+
options={options}
|
61
|
+
{...props}
|
62
|
+
/>
|
63
|
+
</div>
|
64
|
+
);
|
65
|
+
};
|
66
|
+
|
67
|
+
export default DropdownMultiSelectWithDefault;
|
@@ -1,35 +1,45 @@
|
|
1
1
|
examples:
|
2
2
|
rails:
|
3
|
-
-
|
3
|
+
- dropdown_default_rails: Default
|
4
4
|
- dropdown_with_autocomplete: Autocomplete
|
5
|
+
- dropdown_multi_select_rails: Multi Select
|
6
|
+
- dropdown_multi_select_with_autocomplete: Multi Select with Autocomplete
|
7
|
+
- dropdown_multi_select_display_rails: Multi Select with Form Pill Props
|
5
8
|
- dropdown_subtle_variant: Subtle Variant
|
6
9
|
- dropdown_subcomponent_structure_rails: Subcomponent Structure
|
7
10
|
- dropdown_with_autocomplete_with_subcomponents: Autocomplete with Subcomponent Structure
|
8
11
|
- dropdown_with_label: With Label
|
9
12
|
- dropdown_with_custom_options_rails: Custom Options
|
13
|
+
- dropdown_multi_select_with_custom_options: Multi Select with Custom Options
|
10
14
|
- dropdown_with_custom_display_rails: Custom Display
|
11
15
|
- dropdown_with_custom_trigger_rails: Custom Trigger
|
12
16
|
- dropdown_with_search_rails: Custom Trigger Dropdown with Search
|
13
17
|
- dropdown_with_custom_padding: Custom Option Padding
|
14
18
|
- dropdown_error: Dropdown with Error
|
15
19
|
- dropdown_default_value: Default Value
|
20
|
+
- dropdown_multi_select_with_default: Multi Select Default Value
|
16
21
|
- dropdown_blank_selection: Blank Selection
|
17
22
|
- dropdown_separators_hidden: Separators Hidden
|
18
23
|
|
19
24
|
react:
|
20
25
|
- dropdown_default: Default
|
21
26
|
- dropdown_with_autocomplete: Autocomplete
|
27
|
+
- dropdown_multi_select: Multi Select
|
28
|
+
- dropdown_multi_select_with_autocomplete: Multi Select with Autocomplete
|
29
|
+
- dropdown_multi_select_display: Multi Select with Form Pill Props
|
22
30
|
- dropdown_subtle_variant: Subtle Variant
|
23
31
|
- dropdown_subcomponent_structure: Subcomponent Structure
|
24
32
|
- dropdown_with_autocomplete_with_subcomponents: Autocomplete with Subcomponent Structure
|
25
33
|
- dropdown_with_label: With Label
|
26
34
|
- dropdown_with_custom_options: Custom Options
|
35
|
+
- dropdown_multi_select_with_custom_options: Multi Select with Custom Options
|
27
36
|
- dropdown_with_custom_display: Custom Display
|
28
37
|
- dropdown_with_custom_trigger: Custom Trigger
|
29
38
|
- dropdown_with_search: Custom Trigger Dropdown with Search
|
30
39
|
- dropdown_with_custom_padding: Custom Option Padding
|
31
40
|
- dropdown_error: Dropdown with Error
|
32
41
|
- dropdown_default_value: Default Value
|
42
|
+
- dropdown_multi_select_with_default: Multi Select Default Value
|
33
43
|
- dropdown_blank_selection: Blank Selection
|
34
44
|
- dropdown_clear_selection: Clear Selection
|
35
45
|
- dropdown_separators_hidden: Separators Hidden
|
@@ -15,3 +15,8 @@ export { default as DropdownClearSelection } from './_dropdown_clear_selection.j
|
|
15
15
|
export { default as DropdownSubtleVariant } from './_dropdown_subtle_variant.jsx'
|
16
16
|
export { default as DropdownSeparatorsHidden } from './_dropdown_separators_hidden.jsx'
|
17
17
|
export {default as DropdownWithSearch} from './_dropdown_with_search.jsx'
|
18
|
+
export { default as DropdownMultiSelect } from './_dropdown_multi_select.jsx'
|
19
|
+
export { default as DropdownMultiSelectDisplay } from './_dropdown_multi_select_display.jsx'
|
20
|
+
export { default as DropdownMultiSelectWithAutocomplete } from './_dropdown_multi_select_with_autocomplete.jsx'
|
21
|
+
export { default as DropdownMultiSelectWithDefault } from './_dropdown_multi_select_with_default.jsx'
|
22
|
+
export { default as DropdownMultiSelectWithCustomOptions } from './_dropdown_multi_select_with_custom_options.jsx'
|
@@ -99,6 +99,7 @@
|
|
99
99
|
<%= form.url_field :example_url_field, props: { label: true } %>
|
100
100
|
<%= form.text_area :example_text_area, props: { label: true } %>
|
101
101
|
<%= form.dropdown_field :example_dropdown, props: { label: true, options: example_dropdown_options } %>
|
102
|
+
<%= form.dropdown_field :example_dropdown_multi, props: { label: true, options: example_dropdown_options, multi_select: true } %>
|
102
103
|
<%= form.select :example_select, [ ["Yes", 1], ["No", 2] ], props: { label: true } %>
|
103
104
|
<%= form.collection_select :example_collection_select, example_collection, :value, :name, props: { label: true } %>
|
104
105
|
<%= form.check_box :example_checkbox,
|
@@ -98,6 +98,7 @@
|
|
98
98
|
<%= form.url_field :example_url_field_validation, props: { label: true, required: true } %>
|
99
99
|
<%= form.text_area :example_text_area_validation, props: { label: true, required: true } %>
|
100
100
|
<%= form.dropdown_field :example_dropdown_validation, props: { label: true, options: example_dropdown_options, required: true } %>
|
101
|
+
<%= form.dropdown_field :example_dropdown_validation_multi, props: { label: true, options: example_dropdown_options, multi_select: true, required: true } %>
|
101
102
|
<%= form.select :example_select_validation, [ ["Yes", 1], ["No", 2] ], props: { label: true, blank_selection: "Select One...", required: true, validation_message: "Please, select an option." } %>
|
102
103
|
<%= form.collection_select :example_collection_select_validation, example_collection, :value, :name, props: { label: true, blank_selection: "Select One...", required: true } %>
|
103
104
|
<%= form.check_box :example_checkbox, props: { text: "Example Checkbox", label: true, required: true } %>
|