playbook_ui 14.21.2.pre.alpha.PLAY2241tablestickycolumnsdatanotids8357 → 14.21.2.pre.alpha.PLAY2256stickydataidreact8446
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/Components/CustomCell.tsx +4 -1
- data/app/pb_kits/playbook/pb_advanced_table/Components/RegularTableView.tsx +8 -0
- data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableState.ts +30 -5
- data/app/pb_kits/playbook/pb_advanced_table/Utilities/CellRendererUtils.tsx +4 -1
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +4 -0
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +25 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pinned_rows.jsx +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pinned_rows_react.md +5 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling.jsx +64 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling.md +7 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_contact/contact.test.js +2 -2
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_blank_selection.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_blank_selection.jsx +7 -4
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_clear_selection.jsx +6 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default.jsx +6 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_rails.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_value.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_value.jsx +7 -4
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_error.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_error.jsx +7 -4
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select.jsx +19 -10
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_display.jsx +19 -10
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_display_rails.html.erb +10 -10
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_rails.html.erb +10 -10
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_autocomplete.html.erb +10 -10
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_autocomplete.jsx +20 -11
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_custom_options.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_custom_options.jsx +8 -8
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_default.html.erb +10 -10
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_default.jsx +23 -14
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_separators_hidden.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_separators_hidden.jsx +6 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_subcomponent_structure.jsx +6 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_subcomponent_structure_rails.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_subtle_variant.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_subtle_variant.jsx +6 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_autocomplete.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_autocomplete.jsx +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_autocomplete_with_subcomponents.html.erb +4 -4
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_autocomplete_with_subcomponents.jsx +4 -4
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_display.jsx +4 -4
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_display_rails.html.erb +4 -4
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_icon_options.html.erb +52 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_icon_options.jsx +99 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_icon_options_rails.md +1 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_icon_options_react.md +1 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_options.jsx +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_options_rails.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_padding.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_padding.jsx +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_radio_options.html.erb +28 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_radio_options.jsx +47 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_radio_options_rails.md +1 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_radio_options_react.md +1 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_trigger.jsx +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_trigger_rails.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_external_control.jsx +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_label.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_label.jsx +6 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_search.jsx +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_search_rails.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/docs/example.yml +4 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/index.js +3 -1
- data/app/pb_kits/playbook/pb_filter/filter.test.js +2 -2
- data/app/pb_kits/playbook/pb_table/_table.tsx +4 -4
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_columns.jsx +8 -8
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_columns_react.md +1 -1
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_left_columns.jsx +12 -12
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_left_columns_react.md +3 -3
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_right_columns.jsx +12 -12
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_right_columns_react.md +3 -3
- data/app/pb_kits/playbook/pb_table/styles/_vertical_border.scss +4 -0
- data/app/pb_kits/playbook/pb_tooltip/_tooltip.tsx +34 -22
- data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_click_open.jsx +25 -0
- data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_click_open.md +1 -0
- data/app/pb_kits/playbook/pb_tooltip/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_tooltip/docs/index.js +1 -0
- data/dist/chunks/_typeahead-BaWcHxpx.js +22 -0
- data/dist/chunks/_weekday_stacked-DI-oMuSE.js +45 -0
- data/dist/chunks/lib-CTkMyvfQ.js +29 -0
- data/dist/chunks/{pb_form_validation-EyK6DbAT.js → pb_form_validation-BVF3TmcL.js} +1 -1
- data/dist/chunks/vendor.js +1 -1
- data/dist/playbook-doc.js +3 -3
- data/dist/playbook-rails-react-bindings.js +1 -1
- data/dist/playbook-rails.js +1 -1
- data/dist/playbook.css +1 -1
- data/lib/playbook/version.rb +1 -1
- metadata +18 -6
- data/dist/chunks/_typeahead-BmfmVMFP.js +0 -22
- data/dist/chunks/_weekday_stacked-DAC7yY_H.js +0 -45
- data/dist/chunks/lib-C2o6nu8G.js +0 -29
@@ -2,7 +2,7 @@
|
|
2
2
|
options = [
|
3
3
|
{
|
4
4
|
label: "Jasper Furniss",
|
5
|
-
value: "
|
5
|
+
value: "jasperFurniss",
|
6
6
|
territory: "PHL",
|
7
7
|
title: "Lead UX Engineer",
|
8
8
|
id: "jasper-furniss",
|
@@ -10,7 +10,7 @@
|
|
10
10
|
},
|
11
11
|
{
|
12
12
|
label: "Ramon Ruiz",
|
13
|
-
value: "
|
13
|
+
value: "ramonRuiz",
|
14
14
|
territory: "PHL",
|
15
15
|
title: "Senior UX Designer",
|
16
16
|
id: "ramon-ruiz",
|
@@ -18,7 +18,7 @@
|
|
18
18
|
},
|
19
19
|
{
|
20
20
|
label: "Carlos Lima",
|
21
|
-
value: "
|
21
|
+
value: "carlosLima",
|
22
22
|
territory: "PHL",
|
23
23
|
title: "Nitro Developer",
|
24
24
|
id: "carlos-lima",
|
@@ -26,7 +26,7 @@
|
|
26
26
|
},
|
27
27
|
{
|
28
28
|
label: "Courtney Long",
|
29
|
-
value: "
|
29
|
+
value: "courtneyLong",
|
30
30
|
territory: "PHL",
|
31
31
|
title: "Lead UX Designer",
|
32
32
|
id: "courtney-long",
|
@@ -0,0 +1,52 @@
|
|
1
|
+
<%
|
2
|
+
options = [
|
3
|
+
{ label: "Item 1", value: "item-1", id: "1" },
|
4
|
+
{ label: "Item 2", value: "item-2", id: "2" },
|
5
|
+
{ label: "Item 3", value: "item-3", id: "3" }
|
6
|
+
]
|
7
|
+
%>
|
8
|
+
|
9
|
+
<%= pb_rails("dropdown", props: { label: "Multiple Icons", options: options }) do %>
|
10
|
+
<%= pb_rails("dropdown/dropdown_trigger") %>
|
11
|
+
<%= pb_rails("dropdown/dropdown_container") do %>
|
12
|
+
<% options.each do |option| %>
|
13
|
+
<%= pb_rails("dropdown/dropdown_option", props: { option: option }) do %>
|
14
|
+
<%= pb_rails("flex", props: { align: "center", justify: "between" }) do %>
|
15
|
+
<%= pb_rails("flex") do %>
|
16
|
+
<%= pb_rails("icon", props: { icon: "calendar", padding_right: "xs" }) %>
|
17
|
+
<%= pb_rails("body", props: { color: "default", text: option[:label] }) %>
|
18
|
+
<% end %>
|
19
|
+
<%= pb_rails("icon", props: { icon: "check" }) %>
|
20
|
+
<% end %>
|
21
|
+
<% end %>
|
22
|
+
<% end %>
|
23
|
+
<% end %>
|
24
|
+
<% end %>
|
25
|
+
|
26
|
+
<%= pb_rails("dropdown", props: { label: "Icon on Left", options: options, padding_y: "md" }) do %>
|
27
|
+
<%= pb_rails("dropdown/dropdown_trigger") %>
|
28
|
+
<%= pb_rails("dropdown/dropdown_container") do %>
|
29
|
+
<% options.each do |option| %>
|
30
|
+
<%= pb_rails("dropdown/dropdown_option", props: { option: option }) do %>
|
31
|
+
<%= pb_rails("flex", props: { align: "center" }) do %>
|
32
|
+
<%= pb_rails("icon", props: { icon: "calendar", padding_right: "xs" }) %>
|
33
|
+
<%= pb_rails("body", props: { color: "default", text: option[:label] }) %>
|
34
|
+
<% end %>
|
35
|
+
<% end %>
|
36
|
+
<% end %>
|
37
|
+
<% end %>
|
38
|
+
<% end %>
|
39
|
+
|
40
|
+
<%= pb_rails("dropdown", props: { label: "Icon on Right", options: options }) do %>
|
41
|
+
<%= pb_rails("dropdown/dropdown_trigger") %>
|
42
|
+
<%= pb_rails("dropdown/dropdown_container") do %>
|
43
|
+
<% options.each do |option| %>
|
44
|
+
<%= pb_rails("dropdown/dropdown_option", props: { option: option }) do %>
|
45
|
+
<%= pb_rails("flex", props: { align: "center", justify: "between" }) do %>
|
46
|
+
<%= pb_rails("body", props: { color: "default", text: option[:label] }) %>
|
47
|
+
<%= pb_rails("icon", props: { icon: "check" }) %>
|
48
|
+
<% end %>
|
49
|
+
<% end %>
|
50
|
+
<% end %>
|
51
|
+
<% end %>
|
52
|
+
<% end %>
|
@@ -0,0 +1,99 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import Dropdown from '../_dropdown'
|
3
|
+
|
4
|
+
import Body from '../../pb_body/_body'
|
5
|
+
import Flex from '../../pb_flex/_flex'
|
6
|
+
import Icon from '../../pb_icon/_icon'
|
7
|
+
|
8
|
+
const DropdownCustomIconOptions = (props) => {
|
9
|
+
|
10
|
+
const options = [
|
11
|
+
{ label: "Item 1", value: "item-1", id: "1" },
|
12
|
+
{ label: "Item 2", value: "item-2", id: "2" },
|
13
|
+
{ label: "Item 3", value: "item-3", id: "3" },
|
14
|
+
]
|
15
|
+
|
16
|
+
|
17
|
+
return (
|
18
|
+
<div>
|
19
|
+
<Dropdown label="Multiple Icons"
|
20
|
+
options={options}
|
21
|
+
{...props}
|
22
|
+
>
|
23
|
+
{options.map((option) => (
|
24
|
+
<Dropdown.Option key={option.id}
|
25
|
+
option={option}
|
26
|
+
>
|
27
|
+
<Flex align="center"
|
28
|
+
justify="between"
|
29
|
+
>
|
30
|
+
<Flex align="center">
|
31
|
+
<Icon icon="calendar"
|
32
|
+
paddingRight="xs"
|
33
|
+
{...props}
|
34
|
+
/>
|
35
|
+
<Body color="default"
|
36
|
+
text={option.label}
|
37
|
+
{...props}
|
38
|
+
/>
|
39
|
+
</Flex>
|
40
|
+
<Icon icon="check"
|
41
|
+
{...props}
|
42
|
+
/>
|
43
|
+
</Flex>
|
44
|
+
</Dropdown.Option>
|
45
|
+
))}
|
46
|
+
</Dropdown>
|
47
|
+
|
48
|
+
<Dropdown label="Icon on Left"
|
49
|
+
options={options}
|
50
|
+
paddingY="md"
|
51
|
+
{...props}
|
52
|
+
>
|
53
|
+
{options.map((option) => (
|
54
|
+
<Dropdown.Option key={option.id}
|
55
|
+
option={option}
|
56
|
+
>
|
57
|
+
<Flex align="center">
|
58
|
+
<Icon icon="calendar"
|
59
|
+
paddingRight="xs"
|
60
|
+
{...props}
|
61
|
+
/>
|
62
|
+
<Body color="default"
|
63
|
+
text={option.label}
|
64
|
+
{...props}
|
65
|
+
/>
|
66
|
+
</Flex>
|
67
|
+
</Dropdown.Option>
|
68
|
+
))}
|
69
|
+
</Dropdown>
|
70
|
+
|
71
|
+
<Dropdown label="Icon on Right"
|
72
|
+
options={options}
|
73
|
+
{...props}
|
74
|
+
>
|
75
|
+
{options.map((option) => (
|
76
|
+
<Dropdown.Option key={option.id}
|
77
|
+
option={option}
|
78
|
+
>
|
79
|
+
<Flex align="center"
|
80
|
+
justify="between"
|
81
|
+
>
|
82
|
+
<Flex align="center">
|
83
|
+
<Body color="default"
|
84
|
+
text={option.label}
|
85
|
+
{...props}
|
86
|
+
/>
|
87
|
+
</Flex>
|
88
|
+
<Icon icon="check"
|
89
|
+
{...props}
|
90
|
+
/>
|
91
|
+
</Flex>
|
92
|
+
</Dropdown.Option>
|
93
|
+
))}
|
94
|
+
</Dropdown>
|
95
|
+
</div>
|
96
|
+
)
|
97
|
+
}
|
98
|
+
|
99
|
+
export default DropdownCustomIconOptions
|
@@ -0,0 +1 @@
|
|
1
|
+
Use the `dropdown/dropdown_option` subcomponent structure to include custom layouts inside dropdown menus. Icons can be placed alongside the Body label text.
|
@@ -0,0 +1 @@
|
|
1
|
+
Use the `Dropdown.Option` subcomponent structure to include custom layouts inside dropdown menus. Icons can be placed alongside the Body label text.
|
@@ -12,21 +12,21 @@ const DropdownWithCustomOptions = (props) => {
|
|
12
12
|
const options = [
|
13
13
|
{
|
14
14
|
label: "United States",
|
15
|
-
value: "
|
15
|
+
value: "unitedStates",
|
16
16
|
areaCode: "+1",
|
17
17
|
icon: "🇺🇸",
|
18
18
|
id: "United-states"
|
19
19
|
},
|
20
20
|
{
|
21
21
|
label: "Canada",
|
22
|
-
value: "
|
22
|
+
value: "canada",
|
23
23
|
areaCode: "+1",
|
24
24
|
icon: "🇨🇦",
|
25
25
|
id: "canada"
|
26
26
|
},
|
27
27
|
{
|
28
28
|
label: "Pakistan",
|
29
|
-
value: "
|
29
|
+
value: "pakistan",
|
30
30
|
areaCode: "+92",
|
31
31
|
icon: "🇵🇰",
|
32
32
|
id: "pakistan"
|
@@ -2,21 +2,21 @@
|
|
2
2
|
options = [
|
3
3
|
{
|
4
4
|
label: "United States",
|
5
|
-
value: "
|
5
|
+
value: "unitedStates",
|
6
6
|
areaCode: "+1",
|
7
7
|
icon: "🇺🇸",
|
8
8
|
id: "us"
|
9
9
|
},
|
10
10
|
{
|
11
11
|
label: "Canada",
|
12
|
-
value: "
|
12
|
+
value: "canada",
|
13
13
|
areaCode: "+1",
|
14
14
|
icon: "🇨🇦",
|
15
15
|
id: "ca"
|
16
16
|
},
|
17
17
|
{
|
18
18
|
label: "Pakistan",
|
19
|
-
value: "
|
19
|
+
value: "pakistan",
|
20
20
|
areaCode: "+92",
|
21
21
|
icon: "🇵🇰",
|
22
22
|
id: "pk"
|
@@ -1,8 +1,8 @@
|
|
1
1
|
<%
|
2
2
|
options = [
|
3
|
-
{ label: 'United States', value: '
|
4
|
-
{ label: 'Canada', value: '
|
5
|
-
{ label: 'Pakistan', value: '
|
3
|
+
{ label: 'United States', value: 'unitedStates', id: 'us' },
|
4
|
+
{ label: 'Canada', value: 'canada', id: 'ca' },
|
5
|
+
{ label: 'Pakistan', value: 'pakistan', id: 'pk' },
|
6
6
|
]
|
7
7
|
|
8
8
|
%>
|
@@ -6,21 +6,21 @@ const DropdownWithCustomPadding = (props) => {
|
|
6
6
|
const options = [
|
7
7
|
{
|
8
8
|
label: "United States",
|
9
|
-
value: "
|
9
|
+
value: "unitedStates",
|
10
10
|
areaCode: "+1",
|
11
11
|
icon: "🇺🇸",
|
12
12
|
id: "United-states"
|
13
13
|
},
|
14
14
|
{
|
15
15
|
label: "Canada",
|
16
|
-
value: "
|
16
|
+
value: "canada",
|
17
17
|
areaCode: "+1",
|
18
18
|
icon: "🇨🇦",
|
19
19
|
id: "canada"
|
20
20
|
},
|
21
21
|
{
|
22
22
|
label: "Pakistan",
|
23
|
-
value: "
|
23
|
+
value: "pakistan",
|
24
24
|
areaCode: "+92",
|
25
25
|
icon: "🇵🇰",
|
26
26
|
id: "pakistan"
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<%
|
2
|
+
options = [
|
3
|
+
{ label: "Item 1", value: "item-1", id: "1" },
|
4
|
+
{ label: "Item 2", value: "item-2", id: "2" },
|
5
|
+
{ label: "Item 3", value: "item-3", id: "3" }
|
6
|
+
]
|
7
|
+
|
8
|
+
selected_value = params[:selected_value]
|
9
|
+
%>
|
10
|
+
|
11
|
+
<%= pb_rails("dropdown", props: { label: "Choose Item", options: options }) do %>
|
12
|
+
<%= pb_rails("dropdown/dropdown_trigger") %>
|
13
|
+
<%= pb_rails("dropdown/dropdown_container") do %>
|
14
|
+
<% options.each do |option| %>
|
15
|
+
<% checked = (option[:value] == selected_value) %>
|
16
|
+
<%= pb_rails("dropdown/dropdown_option", props: { option: option }) do %>
|
17
|
+
<%= pb_rails("flex", props: { align: "center" }) do %>
|
18
|
+
<%= pb_rails("radio", props: {
|
19
|
+
text: option[:label],
|
20
|
+
name: "dropdown_radio",
|
21
|
+
value: option[:value],
|
22
|
+
checked: checked,
|
23
|
+
}) %>
|
24
|
+
<% end %>
|
25
|
+
<% end %>
|
26
|
+
<% end %>
|
27
|
+
<% end %>
|
28
|
+
<% end %>
|
@@ -0,0 +1,47 @@
|
|
1
|
+
import React, { useState } from 'react'
|
2
|
+
import Dropdown from '../_dropdown'
|
3
|
+
|
4
|
+
import Body from '../../pb_body/_body'
|
5
|
+
import Flex from '../../pb_flex/_flex'
|
6
|
+
import Radio from '../../pb_radio/_radio'
|
7
|
+
|
8
|
+
const DropdownCustomRadioOptions = (props) => {
|
9
|
+
const [selectedValue, setSelectedValue] = useState(null)
|
10
|
+
|
11
|
+
const options = [
|
12
|
+
{ label: "Item 1", value: "item-1", id: "1" },
|
13
|
+
{ label: "Item 2", value: "item-2", id: "2" },
|
14
|
+
{ label: "Item 3", value: "item-3", id: "3" },
|
15
|
+
]
|
16
|
+
|
17
|
+
|
18
|
+
return (
|
19
|
+
<div>
|
20
|
+
<Dropdown
|
21
|
+
label="Select Item"
|
22
|
+
onSelect={(selectedItem) => setSelectedValue(selectedItem?.value)}
|
23
|
+
options={options}
|
24
|
+
{...props}
|
25
|
+
>
|
26
|
+
{options.map((option) => {
|
27
|
+
return (
|
28
|
+
<Dropdown.Option key={option.id}
|
29
|
+
option={option}
|
30
|
+
>
|
31
|
+
<Flex align="center">
|
32
|
+
<Radio
|
33
|
+
checked={selectedValue === option.value}
|
34
|
+
name="dropdown_radio"
|
35
|
+
value={option.value}
|
36
|
+
/>
|
37
|
+
<Body text={option.label} />
|
38
|
+
</Flex>
|
39
|
+
</Dropdown.Option>
|
40
|
+
)
|
41
|
+
})}
|
42
|
+
</Dropdown>
|
43
|
+
</div>
|
44
|
+
)
|
45
|
+
}
|
46
|
+
|
47
|
+
export default DropdownCustomRadioOptions
|
@@ -0,0 +1 @@
|
|
1
|
+
Radio inputs can be used inside `dropdown/dropdown_option` for a custom layout that mimics form-like selection within a dropdown.
|
@@ -0,0 +1 @@
|
|
1
|
+
Radio inputs can be used inside `Dropdown.Option` for a custom layout that mimics form-like selection within a dropdown.
|
@@ -14,21 +14,21 @@ const [selectedOption, setSelectedOption] = useState();
|
|
14
14
|
const options = [
|
15
15
|
{
|
16
16
|
label: "United States",
|
17
|
-
value: "
|
17
|
+
value: "unitedStates",
|
18
18
|
areaCode: "+1",
|
19
19
|
icon: "🇺🇸",
|
20
20
|
id: "United-states"
|
21
21
|
},
|
22
22
|
{
|
23
23
|
label: "Canada",
|
24
|
-
value: "
|
24
|
+
value: "canada",
|
25
25
|
areaCode: "+1",
|
26
26
|
icon: "🇨🇦",
|
27
27
|
id: "canada"
|
28
28
|
},
|
29
29
|
{
|
30
30
|
label: "Pakistan",
|
31
|
-
value: "
|
31
|
+
value: "pakistan",
|
32
32
|
areaCode: "+92",
|
33
33
|
icon: "🇵🇰",
|
34
34
|
id: "pakistan"
|
@@ -2,21 +2,21 @@
|
|
2
2
|
options = [
|
3
3
|
{
|
4
4
|
label: "United States",
|
5
|
-
value: "
|
5
|
+
value: "unitedStates",
|
6
6
|
areaCode: "+1",
|
7
7
|
icon: "🇺🇸",
|
8
8
|
id: "us"
|
9
9
|
},
|
10
10
|
{
|
11
11
|
label: "Canada",
|
12
|
-
value: "
|
12
|
+
value: "canada",
|
13
13
|
areaCode: "+1",
|
14
14
|
icon: "🇨🇦",
|
15
15
|
id: "ca"
|
16
16
|
},
|
17
17
|
{
|
18
18
|
label: "Pakistan",
|
19
|
-
value: "
|
19
|
+
value: "pakistan",
|
20
20
|
areaCode: "+92",
|
21
21
|
icon: "🇵🇰",
|
22
22
|
id: "pk"
|
@@ -11,21 +11,21 @@ const [isDropDownClosed, setIsDropdownClosed] = useDropdown(true);
|
|
11
11
|
const options = [
|
12
12
|
{
|
13
13
|
label: "United States",
|
14
|
-
value: "
|
14
|
+
value: "unitedStates",
|
15
15
|
areaCode: "+1",
|
16
16
|
icon: "🇺🇸",
|
17
17
|
id: "United-states"
|
18
18
|
},
|
19
19
|
{
|
20
20
|
label: "Canada",
|
21
|
-
value: "
|
21
|
+
value: "canada",
|
22
22
|
areaCode: "+1",
|
23
23
|
icon: "🇨🇦",
|
24
24
|
id: "canada"
|
25
25
|
},
|
26
26
|
{
|
27
27
|
label: "Pakistan",
|
28
|
-
value: "
|
28
|
+
value: "pakistan",
|
29
29
|
areaCode: "+92",
|
30
30
|
icon: "🇵🇰",
|
31
31
|
id: "pakistan"
|
@@ -1,8 +1,8 @@
|
|
1
1
|
<%
|
2
2
|
options = [
|
3
|
-
{ label: 'United States', value: '
|
4
|
-
{ label: 'Canada', value: '
|
5
|
-
{ label: 'Pakistan', value: '
|
3
|
+
{ label: 'United States', value: 'unitedStates', id: 'us' },
|
4
|
+
{ label: 'Canada', value: 'canada', id: 'ca' },
|
5
|
+
{ label: 'Pakistan', value: 'pakistan', id: 'pk' },
|
6
6
|
]
|
7
7
|
|
8
8
|
%>
|
@@ -6,15 +6,18 @@ const DropdownDefault = (props) => {
|
|
6
6
|
const options = [
|
7
7
|
{
|
8
8
|
label: "United States",
|
9
|
-
value: "
|
9
|
+
value: "unitedStates",
|
10
|
+
id: "us"
|
10
11
|
},
|
11
12
|
{
|
12
13
|
label: "Canada",
|
13
|
-
value: "
|
14
|
+
value: "canada",
|
15
|
+
id: "ca"
|
14
16
|
},
|
15
17
|
{
|
16
18
|
label: "Pakistan",
|
17
|
-
value: "
|
19
|
+
value: "pakistan",
|
20
|
+
id: "pk"
|
18
21
|
}
|
19
22
|
];
|
20
23
|
|
@@ -8,20 +8,20 @@ const [selectedOption, setSelectedOption] = useState();
|
|
8
8
|
const options = [
|
9
9
|
{
|
10
10
|
label: "United States",
|
11
|
-
value: "
|
11
|
+
value: "unitedStates",
|
12
12
|
icon: "🇺🇸",
|
13
13
|
id: "United-states"
|
14
14
|
|
15
15
|
},
|
16
16
|
{
|
17
17
|
label: "United Kingdom",
|
18
|
-
value: "
|
18
|
+
value: "unitedKingdom",
|
19
19
|
icon: "🇬🇧",
|
20
20
|
id: "united-kingdom"
|
21
21
|
},
|
22
22
|
{
|
23
23
|
label: "Pakistan",
|
24
|
-
value: "
|
24
|
+
value: "pakistan",
|
25
25
|
icon: "🇵🇰",
|
26
26
|
id: "pakistan"
|
27
27
|
}
|
@@ -2,21 +2,21 @@
|
|
2
2
|
options = [
|
3
3
|
{
|
4
4
|
label: "United States",
|
5
|
-
value: "
|
5
|
+
value: "unitedStates",
|
6
6
|
areaCode: "+1",
|
7
7
|
icon: "🇺🇸",
|
8
8
|
id: "us"
|
9
9
|
},
|
10
10
|
{
|
11
11
|
label: "United Kingdom",
|
12
|
-
value: "
|
12
|
+
value: "unitedKingdom",
|
13
13
|
areaCode: "+44",
|
14
14
|
icon: "🇬🇧",
|
15
15
|
id: "gb"
|
16
16
|
},
|
17
17
|
{
|
18
18
|
label: "Pakistan",
|
19
|
-
value: "
|
19
|
+
value: "pakistan",
|
20
20
|
areaCode: "+92",
|
21
21
|
icon: "🇵🇰",
|
22
22
|
id: "pk"
|
@@ -15,6 +15,8 @@ examples:
|
|
15
15
|
- dropdown_with_custom_trigger_rails: Custom Trigger
|
16
16
|
- dropdown_with_search_rails: Custom Trigger Dropdown with Search
|
17
17
|
- dropdown_with_custom_padding: Custom Option Padding
|
18
|
+
- dropdown_with_custom_icon_options: Custom Icon Options
|
19
|
+
# - dropdown_with_custom_radio_options: Custom Radio Options # TODO: Update and publish doc ex in [PLAY-2146](https://runway.powerhrg.com/backlog_items/PLAY-2146) (remove this comment afterwards)
|
18
20
|
- dropdown_error: Dropdown with Error
|
19
21
|
- dropdown_default_value: Default Value
|
20
22
|
- dropdown_multi_select_with_default: Multi Select Default Value
|
@@ -37,6 +39,8 @@ examples:
|
|
37
39
|
- dropdown_with_custom_trigger: Custom Trigger
|
38
40
|
- dropdown_with_search: Custom Trigger Dropdown with Search
|
39
41
|
- dropdown_with_custom_padding: Custom Option Padding
|
42
|
+
- dropdown_with_custom_icon_options: Custom Icon Options
|
43
|
+
# - dropdown_with_custom_radio_options: Custom Radio Options # TODO: Update and publish doc ex in [PLAY-2146](https://runway.powerhrg.com/backlog_items/PLAY-2146) (remove this comment afterwards)
|
40
44
|
- dropdown_error: Dropdown with Error
|
41
45
|
- dropdown_default_value: Default Value
|
42
46
|
- dropdown_multi_select_with_default: Multi Select Default Value
|
@@ -19,4 +19,6 @@ export { default as DropdownMultiSelect } from './_dropdown_multi_select.jsx'
|
|
19
19
|
export { default as DropdownMultiSelectDisplay } from './_dropdown_multi_select_display.jsx'
|
20
20
|
export { default as DropdownMultiSelectWithAutocomplete } from './_dropdown_multi_select_with_autocomplete.jsx'
|
21
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'
|
22
|
+
export { default as DropdownMultiSelectWithCustomOptions } from './_dropdown_multi_select_with_custom_options.jsx'
|
23
|
+
export {default as DropdownWithCustomIconOptions} from './_dropdown_with_custom_icon_options.jsx'
|
24
|
+
export {default as DropdownWithCustomRadioOptions} from './_dropdown_with_custom_radio_options.jsx'
|
@@ -58,12 +58,12 @@ function FilterTest(props) {
|
|
58
58
|
}
|
59
59
|
|
60
60
|
test("triggers popover on filter button click", () => {
|
61
|
-
render(<FilterTest data={{ testid: "render-test" }}/>);
|
61
|
+
const { container } = render(<FilterTest data={{ testid: "render-test" }}/>);
|
62
62
|
|
63
63
|
const btn = screen.getAllByRole("button")[0];
|
64
64
|
|
65
65
|
// checks if the sort menu rendered
|
66
|
-
expect(
|
66
|
+
expect(container.querySelector('.pb_custom_icon')).toBeInTheDocument()
|
67
67
|
expect(screen.getByText('Popularity')).toBeInTheDocument() // check if filter/sort is rendered
|
68
68
|
|
69
69
|
// hits the filter button and triggers popover
|
@@ -104,8 +104,8 @@ const Table = (props: TableProps): React.ReactElement => {
|
|
104
104
|
|
105
105
|
stickyLeftColumn.forEach((colId, index) => {
|
106
106
|
const isLastColumn = index === stickyLeftColumn.length - 1;
|
107
|
-
const header = document.querySelector(`th[id="${colId}"]`);
|
108
|
-
const cells = document.querySelectorAll(`td[id="${colId}"]`);
|
107
|
+
const header = document.querySelector(`th[data-sticky-id="${colId}"]`);
|
108
|
+
const cells = document.querySelectorAll(`td[data-sticky-id="${colId}"]`);
|
109
109
|
|
110
110
|
if (header) {
|
111
111
|
header.classList.add('sticky');
|
@@ -155,8 +155,8 @@ const Table = (props: TableProps): React.ReactElement => {
|
|
155
155
|
|
156
156
|
stickyRightColumnReversed.forEach((colId, index) => {
|
157
157
|
const isLastColumn = index === stickyRightColumn.length - 1;
|
158
|
-
const header = document.querySelector(`th[id="${colId}"]`);
|
159
|
-
const cells = document.querySelectorAll(`td[id="${colId}"]`);
|
158
|
+
const header = document.querySelector(`th[data-sticky-id="${colId}"]`);
|
159
|
+
const cells = document.querySelectorAll(`td[data-sticky-id="${colId}"]`);
|
160
160
|
|
161
161
|
if (header) {
|
162
162
|
header.classList.add('sticky');
|
@@ -11,7 +11,7 @@ const TableStickyColumns = () => {
|
|
11
11
|
>
|
12
12
|
<thead>
|
13
13
|
<tr>
|
14
|
-
<th id="a">{'Column 1'}</th>
|
14
|
+
<th data-sticky-id="a">{'Column 1'}</th>
|
15
15
|
<th>{'Column 2'}</th>
|
16
16
|
<th>{'Column 3'}</th>
|
17
17
|
<th>{'Column 4'}</th>
|
@@ -25,12 +25,12 @@ const TableStickyColumns = () => {
|
|
25
25
|
<th>{'Column 12'}</th>
|
26
26
|
<th>{'Column 13'}</th>
|
27
27
|
<th>{'Column 14'}</th>
|
28
|
-
<th id="b">{'Column 15'}</th>
|
28
|
+
<th data-sticky-id="b">{'Column 15'}</th>
|
29
29
|
</tr>
|
30
30
|
</thead>
|
31
31
|
<tbody>
|
32
32
|
<tr>
|
33
|
-
<td id="a">{'Value 1'}</td>
|
33
|
+
<td data-sticky-id="a">{'Value 1'}</td>
|
34
34
|
<td>{'Value 2'}</td>
|
35
35
|
<td>{'Value 3'}</td>
|
36
36
|
<td>{'Value 4'}</td>
|
@@ -44,10 +44,10 @@ const TableStickyColumns = () => {
|
|
44
44
|
<td>{'Value 12'}</td>
|
45
45
|
<td>{'Value 13'}</td>
|
46
46
|
<td>{'Value 14'}</td>
|
47
|
-
<td id="b">{'Value 15'}</td>
|
47
|
+
<td data-sticky-id="b">{'Value 15'}</td>
|
48
48
|
</tr>
|
49
49
|
<tr>
|
50
|
-
<td id="a">{'Value 1'}</td>
|
50
|
+
<td data-sticky-id="a">{'Value 1'}</td>
|
51
51
|
<td>{'Value 2'}</td>
|
52
52
|
<td>{'Value 3'}</td>
|
53
53
|
<td>{'Value 4'}</td>
|
@@ -61,10 +61,10 @@ const TableStickyColumns = () => {
|
|
61
61
|
<td>{'Value 12'}</td>
|
62
62
|
<td>{'Value 13'}</td>
|
63
63
|
<td>{'Value 14'}</td>
|
64
|
-
<td id="b">{'Value 15'}</td>
|
64
|
+
<td data-sticky-id="b">{'Value 15'}</td>
|
65
65
|
</tr>
|
66
66
|
<tr>
|
67
|
-
<td id="a">{'Value 1'}</td>
|
67
|
+
<td data-sticky-id="a">{'Value 1'}</td>
|
68
68
|
<td>{'Value 2'}</td>
|
69
69
|
<td>{'Value 3'}</td>
|
70
70
|
<td>{'Value 4'}</td>
|
@@ -78,7 +78,7 @@ const TableStickyColumns = () => {
|
|
78
78
|
<td>{'Value 12'}</td>
|
79
79
|
<td>{'Value 13'}</td>
|
80
80
|
<td>{'Value 14'}</td>
|
81
|
-
<td id="b">{'Value 15'}</td>
|
81
|
+
<td data-sticky-id="b">{'Value 15'}</td>
|
82
82
|
</tr>
|
83
83
|
</tbody>
|
84
84
|
</Table>
|