playbook_ui_docs 15.5.0.pre.alpha.PLAY2503datepickerdefaultdateoutsideminmaxrange12814 → 15.5.0.pre.alpha.PLAY2554homeaddressstreetaccessibility12695
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_background/docs/_background_light.html.erb +1 -1
- data/app/pb_kits/playbook/pb_background/docs/_background_light.jsx +1 -0
- data/app/pb_kits/playbook/pb_background/docs/example.yml +2 -2
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_min_max.html.erb +0 -18
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +1 -8
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -11
- data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_default.html.erb +124 -0
- data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_default.jsx +147 -12
- data/app/pb_kits/playbook/pb_multiple_users/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_multiple_users/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_validation.html.erb +4 -34
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_validation.jsx +7 -16
- data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_typeahead/docs/index.js +1 -2
- metadata +2 -8
- data/app/pb_kits/playbook/pb_background/docs/_background_light.md +0 -1
- data/app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_with_tooltip.jsx +0 -42
- data/app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_with_tooltip.md +0 -1
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_input_display.html.erb +0 -30
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_input_display.jsx +0 -37
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_input_display.md +0 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2acf31fe2e729157f0eec6992f236189c8b0100c3360834207d0d9dfa0839fd1
|
|
4
|
+
data.tar.gz: 0b86b0feaf79677ca88a94141f6e749fc1aa49a3d1fa7e6b31fbe4be36f5234a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 890ec601979f2702d7b2653ad199a4b56446ce06b79a2263a068ab595eb77302b43a26dd86ab895a202faef5d031ed99020726d6c1bfde178f768ce51ee3e8b9
|
|
7
|
+
data.tar.gz: 6d4166fa041999839fa84faeaaa9755a2841e9dfac0eceba5ab4407751b43d3db7f32f334e271dd236004215f57e9fbef5e5cc803e28519173f86f5695870c5a
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
examples:
|
|
2
2
|
|
|
3
3
|
rails:
|
|
4
|
-
- background_light:
|
|
4
|
+
- background_light: Light
|
|
5
5
|
- background_white: White
|
|
6
6
|
- background_gradient: Gradient
|
|
7
7
|
- background_image: Image
|
|
@@ -11,7 +11,7 @@ examples:
|
|
|
11
11
|
- background_size: Size
|
|
12
12
|
|
|
13
13
|
react:
|
|
14
|
-
- background_light:
|
|
14
|
+
- background_light: Light
|
|
15
15
|
- background_white: White
|
|
16
16
|
- background_gradient: Gradient
|
|
17
17
|
- background_image: Image
|
|
@@ -11,22 +11,4 @@
|
|
|
11
11
|
max_date: "10/20/2020",
|
|
12
12
|
min_date: "10/10/2020",
|
|
13
13
|
picker_id: "date-picker-min-max2"
|
|
14
|
-
}) %>
|
|
15
|
-
|
|
16
|
-
<%= pb_rails("date_picker", props: {
|
|
17
|
-
format: "m/d/Y",
|
|
18
|
-
label: "Default date earlier than min_date (preserved)",
|
|
19
|
-
default_date: (DateTime.current - 3.days).utc.iso8601,
|
|
20
|
-
min_date: (DateTime.current - 1.day).utc.iso8601,
|
|
21
|
-
max_date: (DateTime.current + 7.days).utc.iso8601,
|
|
22
|
-
picker_id: "date-picker-min-max-default-before"
|
|
23
|
-
}) %>
|
|
24
|
-
|
|
25
|
-
<%= pb_rails("date_picker", props: {
|
|
26
|
-
format: "m/d/Y",
|
|
27
|
-
label: "Default date later than max_date (preserved)",
|
|
28
|
-
default_date: (DateTime.current + 10.days).utc.iso8601,
|
|
29
|
-
min_date: (DateTime.current - 1.day).utc.iso8601,
|
|
30
|
-
max_date: (DateTime.current + 7.days).utc.iso8601,
|
|
31
|
-
picker_id: "date-picker-min-max-default-after"
|
|
32
14
|
}) %>
|
|
@@ -112,14 +112,7 @@
|
|
|
112
112
|
name: "checkbox-name",
|
|
113
113
|
class: "checkbox-class"
|
|
114
114
|
%>
|
|
115
|
-
<%= form.date_picker :example_date_picker_1, props: {
|
|
116
|
-
label: true,
|
|
117
|
-
# Testing out-of-range default date feature: default_date is earlier than min_date
|
|
118
|
-
# This should still display the default date even though it's outside the valid range
|
|
119
|
-
default_date: (DateTime.current - 3.days).utc.iso8601,
|
|
120
|
-
min_date: (DateTime.current - 1.day).utc.iso8601,
|
|
121
|
-
max_date: (DateTime.current + 7.days).utc.iso8601
|
|
122
|
-
} %>
|
|
115
|
+
<%= form.date_picker :example_date_picker_1, props: { label: true } %>
|
|
123
116
|
<%= form.star_rating_field :example_star_rating, props: { variant: "interactive", label: true } %>
|
|
124
117
|
<%= form.time_zone_select_field :example_time_zone_select, ActiveSupport::TimeZone.us_zones, { default: "Eastern Time (US & Canada)" }, props: { label: true } %>
|
|
125
118
|
<%= form.multi_level_select :example_multi_level_select, props: { id: "multi-level-select-form-default", tree_data: treeData, margin_bottom: "sm", label: "Example Multi Level Select field" } %>
|
|
@@ -113,17 +113,7 @@
|
|
|
113
113
|
<%= form.select :example_select_validation, [ ["Yes", 1], ["No", 2] ], props: { label: true, blank_selection: "Select One...", required: true, validation_message: "Please, select an option." } %>
|
|
114
114
|
<%= form.collection_select :example_collection_select_validation, example_collection, :value, :name, props: { label: true, blank_selection: "Select One...", required: true } %>
|
|
115
115
|
<%= form.check_box :example_checkbox_validation, props: { text: "Example Checkbox Validation", label: true, required: true }, checked_value: "1", unchecked_value: "0" %>
|
|
116
|
-
<%= form.date_picker :example_date_picker_2, props: {
|
|
117
|
-
label: true,
|
|
118
|
-
required: true,
|
|
119
|
-
validation_message: "Please, select a date.",
|
|
120
|
-
allow_input: true,
|
|
121
|
-
# Testing out-of-range default date feature: default_date is earlier than min_date
|
|
122
|
-
# This should still display the default date even though it's outside the valid range
|
|
123
|
-
default_date: (DateTime.current - 3.days).utc.iso8601,
|
|
124
|
-
min_date: (DateTime.current - 1.day).utc.iso8601,
|
|
125
|
-
max_date: (DateTime.current + 7.days).utc.iso8601
|
|
126
|
-
} %>
|
|
116
|
+
<%= form.date_picker :example_date_picker_2, props: { label: true, required: true, validation_message: "Please, select a date.", allow_input: true } %>
|
|
127
117
|
<%= form.star_rating_field :example_star_rating_validation, props: { variant: "interactive", label: true, required: true } %>
|
|
128
118
|
<%= form.time_zone_select_field :example_time_zone_select, ActiveSupport::TimeZone.us_zones, { default: "Eastern Time (US & Canada)" }, props: { label: true, blank_selection: "Select a Time Zone...", required: true } %>
|
|
129
119
|
<%= form.multi_level_select :example_multi_level_select, props: { id: "multi-level-select-form", tree_data: treeData, margin_bottom: "sm", required: true, label: "Example Multi Level Select field" } %>
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
<%= pb_rails("caption", props: { text: "with all" }) %>
|
|
1
2
|
<%= pb_rails("home_address_street", props: {
|
|
2
3
|
address: "70 Prospect Ave",
|
|
3
4
|
address_cont: "Apt M18",
|
|
@@ -8,4 +9,127 @@
|
|
|
8
9
|
state: "PA",
|
|
9
10
|
zipcode: "19382",
|
|
10
11
|
territory: "PHL",
|
|
12
|
+
}) %>
|
|
13
|
+
|
|
14
|
+
<%= pb_rails("caption", props: { margin_top: "sm", text: "First two lines blank: without address and address cont and housestyle" }) %>
|
|
15
|
+
<%= pb_rails("home_address_street", props: {
|
|
16
|
+
city: "West Chester",
|
|
17
|
+
home_id: 8250263,
|
|
18
|
+
home_url: "https://powerhrg.com/",
|
|
19
|
+
state: "PA",
|
|
20
|
+
zipcode: "19382",
|
|
21
|
+
territory: "PHL",
|
|
22
|
+
}) %>
|
|
23
|
+
|
|
24
|
+
<%= pb_rails("caption", props: { margin_top: "sm", text: "First line half blank Second line full: with housestyle and without address and address cont" }) %>
|
|
25
|
+
<%= pb_rails("home_address_street", props: {
|
|
26
|
+
city: "West Chester",
|
|
27
|
+
home_id: 8250263,
|
|
28
|
+
home_url: "https://powerhrg.com/",
|
|
29
|
+
house_style: "Colonial",
|
|
30
|
+
state: "PA",
|
|
31
|
+
zipcode: "19382",
|
|
32
|
+
territory: "PHL",
|
|
33
|
+
}) %>
|
|
34
|
+
|
|
35
|
+
<%= pb_rails("caption", props: { margin_top: "sm", text: "First line full Second line blank: with address and housestyle and without address cont" }) %>
|
|
36
|
+
<%= pb_rails("home_address_street", props: {
|
|
37
|
+
address: "70 Prospect Ave",
|
|
38
|
+
city: "West Chester",
|
|
39
|
+
home_id: 8250263,
|
|
40
|
+
home_url: "https://powerhrg.com/",
|
|
41
|
+
house_style: "Colonial",
|
|
42
|
+
state: "PA",
|
|
43
|
+
zipcode: "19382",
|
|
44
|
+
territory: "PHL",
|
|
45
|
+
}) %>
|
|
46
|
+
|
|
47
|
+
<%= pb_rails("caption", props: { margin_top: "sm", text: "First line half blank Second line full: without address and with housestyle and address cont" }) %>
|
|
48
|
+
<%= pb_rails("home_address_street", props: {
|
|
49
|
+
address_cont: "Apt M18",
|
|
50
|
+
city: "West Chester",
|
|
51
|
+
home_id: 8250263,
|
|
52
|
+
home_url: "https://powerhrg.com/",
|
|
53
|
+
house_style: "Colonial",
|
|
54
|
+
state: "PA",
|
|
55
|
+
zipcode: "19382",
|
|
56
|
+
territory: "PHL",
|
|
57
|
+
}) %>
|
|
58
|
+
|
|
59
|
+
<%= pb_rails("caption", props: { margin_top: "sm", text: "First line blank Second line full: with address cont and without address and housestyle" }) %>
|
|
60
|
+
<%= pb_rails("home_address_street", props: {
|
|
61
|
+
address_cont: "Apt M18",
|
|
62
|
+
city: "West Chester",
|
|
63
|
+
home_id: 8250263,
|
|
64
|
+
home_url: "https://powerhrg.com/",
|
|
65
|
+
state: "PA",
|
|
66
|
+
zipcode: "19382",
|
|
67
|
+
territory: "PHL",
|
|
68
|
+
}) %>
|
|
69
|
+
|
|
70
|
+
<%= pb_rails("caption", props: { margin_top: "sm", text: "Emphasis, Modified, Target and Formatted doc examples below" }) %>
|
|
71
|
+
<%= pb_rails("home_address_street", props: {
|
|
72
|
+
address: "70 Prospect Ave",
|
|
73
|
+
city: "West Chester",
|
|
74
|
+
emphasis: "none",
|
|
75
|
+
home_id: 8250263,
|
|
76
|
+
home_url: "https://powerhrg.com/",
|
|
77
|
+
house_style: "Colonial",
|
|
78
|
+
margin_bottom: "sm",
|
|
79
|
+
state: "PA",
|
|
80
|
+
zipcode: "19382",
|
|
81
|
+
territory: "PHL",
|
|
82
|
+
}) %>
|
|
83
|
+
|
|
84
|
+
<%= pb_rails("home_address_street", props: {
|
|
85
|
+
city: "West Chester",
|
|
86
|
+
emphasis: "city",
|
|
87
|
+
home_id: 8250263,
|
|
88
|
+
home_url: "https://powerhrg.com/",
|
|
89
|
+
margin_bottom: "sm",
|
|
90
|
+
state: "PA",
|
|
91
|
+
zipcode: "19382",
|
|
92
|
+
territory: "PHL",
|
|
93
|
+
}) %>
|
|
94
|
+
|
|
95
|
+
<%= pb_rails("home_address_street", props: {
|
|
96
|
+
city: "West Chester",
|
|
97
|
+
emphasis: "none",
|
|
98
|
+
home_id: 8250263,
|
|
99
|
+
home_url: "https://powerhrg.com/",
|
|
100
|
+
margin_bottom: "sm",
|
|
101
|
+
state: "PA",
|
|
102
|
+
zipcode: "19382",
|
|
103
|
+
territory: "PHL",
|
|
104
|
+
}) %>
|
|
105
|
+
|
|
106
|
+
<%= pb_rails("home_address_street", props: {
|
|
107
|
+
address: "70 Prospect Ave",
|
|
108
|
+
city: "West Chester",
|
|
109
|
+
margin_bottom: "sm",
|
|
110
|
+
state: "PA",
|
|
111
|
+
zipcode: "19382",
|
|
112
|
+
territory: "PHL",
|
|
113
|
+
}) %>
|
|
114
|
+
|
|
115
|
+
<%= pb_rails("home_address_street", props: {
|
|
116
|
+
city: "West Chester",
|
|
117
|
+
home_id: 8250263,
|
|
118
|
+
home_url: "https://powerhrg.com/",
|
|
119
|
+
margin_bottom: "sm",
|
|
120
|
+
state: "PA",
|
|
121
|
+
target: "_blank",
|
|
122
|
+
zipcode: "19382",
|
|
123
|
+
territory: "PHL",
|
|
124
|
+
}) %>
|
|
125
|
+
|
|
126
|
+
<%= pb_rails("home_address_street", props: {
|
|
127
|
+
address: "70 pRoSpEcT ave",
|
|
128
|
+
city: "West Chester",
|
|
129
|
+
home_id: 8250263,
|
|
130
|
+
home_url: "https://powerhrg.com/",
|
|
131
|
+
preserve_case: true,
|
|
132
|
+
state: "pa",
|
|
133
|
+
zipcode: "19382",
|
|
134
|
+
territory: "PHL",
|
|
11
135
|
}) %>
|
|
@@ -1,21 +1,156 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
|
|
3
3
|
import HomeAddressStreet from '../_home_address_street'
|
|
4
|
+
import Caption from '../../pb_caption/_caption'
|
|
4
5
|
|
|
5
6
|
const HomeAddressStreetDefault = (props) => {
|
|
6
7
|
return (
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
8
|
+
<>
|
|
9
|
+
<Caption text="with all" />
|
|
10
|
+
<HomeAddressStreet
|
|
11
|
+
address="70 Prospect Ave"
|
|
12
|
+
addressCont="Apt M18"
|
|
13
|
+
city="West Chester"
|
|
14
|
+
homeId="8250263"
|
|
15
|
+
homeUrl="https://powerhrg.com/"
|
|
16
|
+
houseStyle="Colonial"
|
|
17
|
+
state="PA"
|
|
18
|
+
territory="PHL"
|
|
19
|
+
zipcode="19382"
|
|
20
|
+
{...props}
|
|
21
|
+
/>
|
|
22
|
+
<Caption marginTop="sm"
|
|
23
|
+
text="First two lines blank: without address and address cont and housestyle"
|
|
24
|
+
/>
|
|
25
|
+
<HomeAddressStreet
|
|
26
|
+
city="West Chester"
|
|
27
|
+
homeId="8250263"
|
|
28
|
+
homeUrl="https://powerhrg.com/"
|
|
29
|
+
state="PA"
|
|
30
|
+
territory="PHL"
|
|
31
|
+
zipcode="19382"
|
|
32
|
+
{...props}
|
|
33
|
+
/>
|
|
34
|
+
<Caption marginTop="sm"
|
|
35
|
+
text="First line half blank Second line full: with housestyle and without address and address cont"
|
|
36
|
+
/>
|
|
37
|
+
<HomeAddressStreet
|
|
38
|
+
city="West Chester"
|
|
39
|
+
homeId="8250263"
|
|
40
|
+
homeUrl="https://powerhrg.com/"
|
|
41
|
+
houseStyle="Colonial"
|
|
42
|
+
state="PA"
|
|
43
|
+
territory="PHL"
|
|
44
|
+
zipcode="19382"
|
|
45
|
+
{...props}
|
|
46
|
+
/>
|
|
47
|
+
<Caption marginTop="sm"
|
|
48
|
+
text="First line full Second line blank: with address and housestyle and without address cont and address cont"
|
|
49
|
+
/>
|
|
50
|
+
<HomeAddressStreet
|
|
51
|
+
address="70 Prospect Ave"
|
|
52
|
+
city="West Chester"
|
|
53
|
+
homeId="8250263"
|
|
54
|
+
homeUrl="https://powerhrg.com/"
|
|
55
|
+
houseStyle="Colonial"
|
|
56
|
+
state="PA"
|
|
57
|
+
territory="PHL"
|
|
58
|
+
zipcode="19382"
|
|
59
|
+
{...props}
|
|
60
|
+
/>
|
|
61
|
+
<Caption marginTop="sm"
|
|
62
|
+
text="First line half blank Second line full: without address and with housestyle and address cont and address cont"
|
|
63
|
+
/>
|
|
64
|
+
<HomeAddressStreet
|
|
65
|
+
city="West Chester"
|
|
66
|
+
homeId="8250263"
|
|
67
|
+
homeUrl="https://powerhrg.com/"
|
|
68
|
+
houseStyle="Colonial"
|
|
69
|
+
state="PA"
|
|
70
|
+
territory="PHL"
|
|
71
|
+
zipcode="19382"
|
|
72
|
+
{...props}
|
|
73
|
+
/>
|
|
74
|
+
<Caption marginTop="sm"
|
|
75
|
+
text="First line blank Second line full: with address cont and without address and housestyle and address cont"
|
|
76
|
+
/>
|
|
77
|
+
<HomeAddressStreet
|
|
78
|
+
addressCont="Apt M18"
|
|
79
|
+
city="West Chester"
|
|
80
|
+
homeId="8250263"
|
|
81
|
+
homeUrl="https://powerhrg.com/"
|
|
82
|
+
state="PA"
|
|
83
|
+
territory="PHL"
|
|
84
|
+
zipcode="19382"
|
|
85
|
+
{...props}
|
|
86
|
+
/>
|
|
87
|
+
<Caption marginTop="sm"
|
|
88
|
+
text="Emphasis, Modified, Target and Formatted doc examples below and address cont"
|
|
89
|
+
/>
|
|
90
|
+
<HomeAddressStreet
|
|
91
|
+
address="70 Prospect Ave"
|
|
92
|
+
city="West Chester"
|
|
93
|
+
emphasis="none"
|
|
94
|
+
homeId="8250263"
|
|
95
|
+
homeUrl="https://powerhrg.com/"
|
|
96
|
+
houseStyle="Colonial"
|
|
97
|
+
marginBottom="sm"
|
|
98
|
+
state="PA"
|
|
99
|
+
territory="PHL"
|
|
100
|
+
zipcode="19382"
|
|
101
|
+
{...props}
|
|
102
|
+
/>
|
|
103
|
+
<HomeAddressStreet
|
|
104
|
+
city="West Chester"
|
|
105
|
+
emphasis="city"
|
|
106
|
+
homeId="8250263"
|
|
107
|
+
homeUrl="https://powerhrg.com/"
|
|
108
|
+
marginBottom="sm"
|
|
109
|
+
state="PA"
|
|
110
|
+
territory="PHL"
|
|
111
|
+
zipcode="19382"
|
|
112
|
+
{...props}
|
|
113
|
+
/>
|
|
114
|
+
<HomeAddressStreet
|
|
115
|
+
city="West Chester"
|
|
116
|
+
emphasis="none"
|
|
117
|
+
homeId="8250263"
|
|
118
|
+
homeUrl="https://powerhrg.com/"
|
|
119
|
+
marginBottom="sm"
|
|
120
|
+
state="PA"
|
|
121
|
+
territory="PHL"
|
|
122
|
+
zipcode="19382"
|
|
123
|
+
{...props}
|
|
124
|
+
/>
|
|
125
|
+
<HomeAddressStreet
|
|
126
|
+
address="70 Prospect Ave"
|
|
127
|
+
city="West Chester"
|
|
128
|
+
marginBottom="sm"
|
|
129
|
+
state="PA"
|
|
130
|
+
territory="PHL"
|
|
131
|
+
zipcode="19382"
|
|
132
|
+
/>
|
|
133
|
+
<HomeAddressStreet
|
|
134
|
+
city="West Chester"
|
|
135
|
+
homeId={8250263}
|
|
136
|
+
homeUrl="https://powerhrg.com/"
|
|
137
|
+
marginBottom="sm"
|
|
138
|
+
state="PA"
|
|
139
|
+
target="_blank"
|
|
140
|
+
territory="PHL"
|
|
141
|
+
zipcode="19382"
|
|
142
|
+
/>
|
|
143
|
+
<HomeAddressStreet
|
|
144
|
+
address="70 pRoSpEcT ave"
|
|
145
|
+
city="West Chester"
|
|
146
|
+
homeId="8250263"
|
|
147
|
+
homeUrl="https://powerhrg.com/"
|
|
148
|
+
preserveCase
|
|
149
|
+
state="pa"
|
|
150
|
+
territory="PHL"
|
|
151
|
+
zipcode="19382"
|
|
152
|
+
/>
|
|
153
|
+
</>
|
|
19
154
|
)
|
|
20
155
|
}
|
|
21
156
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
export { default as MultipleUsersDefault } from './_multiple_users_default.jsx'
|
|
2
2
|
export { default as MultipleUsersReverse } from './_multiple_users_reverse.jsx'
|
|
3
3
|
export { default as MultipleUsersSize } from './_multiple_users_size.jsx'
|
|
4
|
-
export { default as MultipleUsersWithTooltip } from './_multiple_users_with_tooltip.jsx'
|
data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_validation.html.erb
CHANGED
|
@@ -1,42 +1,12 @@
|
|
|
1
1
|
<form id="example-form-validation" action="" method="get">
|
|
2
|
-
<%= pb_rails("phone_number_input", props: {
|
|
3
|
-
id: "validation",
|
|
4
|
-
initial_country: "af",
|
|
5
|
-
value: "",
|
|
6
|
-
required: true
|
|
7
|
-
}) %>
|
|
2
|
+
<%= pb_rails("phone_number_input", props: { error: "Missing phone number", id: "validation", initial_country: "af", value: "", required: true }) %>
|
|
8
3
|
<%= pb_rails("button", props: {html_type: "submit", text: "Save Phone Number"}) %>
|
|
9
4
|
</form>
|
|
10
5
|
|
|
11
6
|
<%= javascript_tag do %>
|
|
12
7
|
document.addEventListener('DOMContentLoaded', function () {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
function waitForComponent() {
|
|
17
|
-
const phoneInput = form.querySelector('#validation');
|
|
18
|
-
|
|
19
|
-
if (!phoneInput) {
|
|
20
|
-
setTimeout(waitForComponent, 100);
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
// Wait for intl-tel-input to initialize, then focus and blur to trigger validation
|
|
25
|
-
setTimeout(function() {
|
|
26
|
-
phoneInput.focus({ preventScroll: true });
|
|
27
|
-
setTimeout(function() {
|
|
28
|
-
phoneInput.blur();
|
|
29
|
-
}, 100);
|
|
30
|
-
}, 500);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
waitForComponent();
|
|
34
|
-
|
|
35
|
-
// Prevent form submission if there are validation errors
|
|
36
|
-
form.addEventListener('submit', function (e) {
|
|
37
|
-
if (e.target.querySelectorAll('[error]:not([error=""])').length > 0) {
|
|
38
|
-
e.preventDefault();
|
|
39
|
-
}
|
|
40
|
-
});
|
|
8
|
+
document.querySelector('#example-form-validation').addEventListener('submit', function (e) {
|
|
9
|
+
if (e.target.querySelectorAll('[error]:not([error=""])').length > 0) e.preventDefault();
|
|
10
|
+
})
|
|
41
11
|
})
|
|
42
12
|
<% end %>
|
|
@@ -10,19 +10,8 @@ const PhoneNumberInputValidation = (props) => {
|
|
|
10
10
|
const [showFormErrors, setShowFormErrors] = useState(false);
|
|
11
11
|
const [phoneNumber, setPhoneNumber] = useState("");
|
|
12
12
|
const [countryCode, setCountryCode] = useState("af");
|
|
13
|
-
const [isValid, setIsValid] = useState(false);
|
|
14
|
-
const [hasInteracted, setHasInteracted] = useState(false);
|
|
15
|
-
|
|
16
|
-
// Start with initial error - will be cleared on blur if valid
|
|
17
|
-
const initialError = (
|
|
18
|
-
<>
|
|
19
|
-
<Icon icon="warning" /> Missing phone number.
|
|
20
|
-
</>
|
|
21
|
-
);
|
|
22
13
|
|
|
23
14
|
const handleOnValidate = (valid) => {
|
|
24
|
-
setIsValid(valid);
|
|
25
|
-
setHasInteracted(true);
|
|
26
15
|
setFormErrors(
|
|
27
16
|
valid ? "" : "Please correct the fields below and try again."
|
|
28
17
|
);
|
|
@@ -34,16 +23,18 @@ const PhoneNumberInputValidation = (props) => {
|
|
|
34
23
|
};
|
|
35
24
|
|
|
36
25
|
const handleOnSubmit = (e) => {
|
|
37
|
-
if (
|
|
26
|
+
if (showFormErrors) e.preventDefault()
|
|
38
27
|
}
|
|
39
28
|
|
|
40
29
|
useEffect(() => {
|
|
41
30
|
setShowFormErrors(formErrors.length > 0);
|
|
42
31
|
}, [formErrors]);
|
|
43
32
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
33
|
+
const error = (
|
|
34
|
+
<>
|
|
35
|
+
<Icon icon="warning" /> Missing phone number.
|
|
36
|
+
</>
|
|
37
|
+
)
|
|
47
38
|
|
|
48
39
|
return (
|
|
49
40
|
<form
|
|
@@ -59,7 +50,7 @@ const PhoneNumberInputValidation = (props) => {
|
|
|
59
50
|
/>
|
|
60
51
|
)}
|
|
61
52
|
<PhoneNumberInput
|
|
62
|
-
error={
|
|
53
|
+
error={error}
|
|
63
54
|
id="validation"
|
|
64
55
|
initialCountry={countryCode}
|
|
65
56
|
onChange={handleOnChange}
|
|
@@ -5,7 +5,6 @@ examples:
|
|
|
5
5
|
- typeahead_default_options: With Default Options
|
|
6
6
|
- typeahead_with_context: With Context
|
|
7
7
|
- typeahead_with_pills: With Pills
|
|
8
|
-
- typeahead_input_display: Input Display
|
|
9
8
|
- typeahead_without_pills: Without Pills (Single Select)
|
|
10
9
|
- typeahead_with_pills_async: With Pills (Async Data)
|
|
11
10
|
- typeahead_with_pills_async_users: With Pills (Async Data w/ Users)
|
|
@@ -27,7 +26,6 @@ examples:
|
|
|
27
26
|
- typeahead_react_hook: React Hook
|
|
28
27
|
- typeahead_with_highlight: With Highlight
|
|
29
28
|
- typeahead_with_pills: With Pills
|
|
30
|
-
- typeahead_input_display: Input Display
|
|
31
29
|
- typeahead_with_pills_async: With Pills (Async Data)
|
|
32
30
|
- typeahead_with_pills_async_users: With Pills (Async Data w/ Users)
|
|
33
31
|
- typeahead_with_pills_async_custom_options: With Pills (Async Data w/ Custom Options)
|
|
@@ -17,5 +17,4 @@ export { default as TypeaheadReactHook } from './_typeahead_react_hook.jsx'
|
|
|
17
17
|
export { default as TypeaheadDisabled } from './_typeahead_disabled.jsx'
|
|
18
18
|
export { default as TypeaheadPreserveInput } from './_typeahead_preserve_input.jsx'
|
|
19
19
|
export { default as TypeaheadDefaultValue } from './_typeahead_default_value.jsx'
|
|
20
|
-
export { default as TypeaheadCustomOptions } from './_typeahead_custom_options.jsx'
|
|
21
|
-
export { default as TypeaheadInputDisplay } from './_typeahead_input_display.jsx'
|
|
20
|
+
export { default as TypeaheadCustomOptions } from './_typeahead_custom_options.jsx'
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: playbook_ui_docs
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 15.5.0.pre.alpha.
|
|
4
|
+
version: 15.5.0.pre.alpha.PLAY2554homeaddressstreetaccessibility12695
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Power UX
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2025-12-
|
|
12
|
+
date: 2025-12-01 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: playbook_ui
|
|
@@ -220,7 +220,6 @@ files:
|
|
|
220
220
|
- app/pb_kits/playbook/pb_background/docs/_background_image.md
|
|
221
221
|
- app/pb_kits/playbook/pb_background/docs/_background_light.html.erb
|
|
222
222
|
- app/pb_kits/playbook/pb_background/docs/_background_light.jsx
|
|
223
|
-
- app/pb_kits/playbook/pb_background/docs/_background_light.md
|
|
224
223
|
- app/pb_kits/playbook/pb_background/docs/_background_overlay.jsx
|
|
225
224
|
- app/pb_kits/playbook/pb_background/docs/_background_overlay.md
|
|
226
225
|
- app/pb_kits/playbook/pb_background/docs/_background_size.html.erb
|
|
@@ -1527,8 +1526,6 @@ files:
|
|
|
1527
1526
|
- app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_size.jsx
|
|
1528
1527
|
- app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_size.md
|
|
1529
1528
|
- app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_size_swift.md
|
|
1530
|
-
- app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_with_tooltip.jsx
|
|
1531
|
-
- app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_with_tooltip.md
|
|
1532
1529
|
- app/pb_kits/playbook/pb_multiple_users/docs/example.yml
|
|
1533
1530
|
- app/pb_kits/playbook/pb_multiple_users/docs/index.js
|
|
1534
1531
|
- app/pb_kits/playbook/pb_multiple_users_stacked/docs/_description.md
|
|
@@ -2579,9 +2576,6 @@ files:
|
|
|
2579
2576
|
- app/pb_kits/playbook/pb_typeahead/docs/_typeahead_error_state.md
|
|
2580
2577
|
- app/pb_kits/playbook/pb_typeahead/docs/_typeahead_inline.html.erb
|
|
2581
2578
|
- app/pb_kits/playbook/pb_typeahead/docs/_typeahead_inline.jsx
|
|
2582
|
-
- app/pb_kits/playbook/pb_typeahead/docs/_typeahead_input_display.html.erb
|
|
2583
|
-
- app/pb_kits/playbook/pb_typeahead/docs/_typeahead_input_display.jsx
|
|
2584
|
-
- app/pb_kits/playbook/pb_typeahead/docs/_typeahead_input_display.md
|
|
2585
2579
|
- app/pb_kits/playbook/pb_typeahead/docs/_typeahead_margin_bottom.html.erb
|
|
2586
2580
|
- app/pb_kits/playbook/pb_typeahead/docs/_typeahead_margin_bottom.jsx
|
|
2587
2581
|
- app/pb_kits/playbook/pb_typeahead/docs/_typeahead_multi_kit.html.erb
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
By default, the Background kit sets background color to 'light' as seen here.
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import MultipleUsers from '../../pb_multiple_users/_multiple_users'
|
|
3
|
-
|
|
4
|
-
const MultipleUsersWithTooltip = (props) => {
|
|
5
|
-
return (
|
|
6
|
-
<div>
|
|
7
|
-
<MultipleUsers
|
|
8
|
-
users={[
|
|
9
|
-
{
|
|
10
|
-
name: 'Patrick Welch',
|
|
11
|
-
imageUrl: 'https://randomuser.me/api/portraits/men/9.jpg',
|
|
12
|
-
tooltip: "Patrick Welch - Online"
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
name: 'Lucille Sanchez',
|
|
16
|
-
imageUrl: 'https://randomuser.me/api/portraits/women/6.jpg',
|
|
17
|
-
tooltip: "Lucille Sanchez - Offline"
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
name: 'Beverly Reyes',
|
|
21
|
-
imageUrl: 'https://randomuser.me/api/portraits/women/74.jpg',
|
|
22
|
-
tooltip: "Beverly Reyes - Online"
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
name: 'Keith Craig',
|
|
26
|
-
imageUrl: 'https://randomuser.me/api/portraits/men/40.jpg',
|
|
27
|
-
tooltip: "Keith Craig - Away"
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
name: 'Alicia Cooper',
|
|
31
|
-
imageUrl: 'https://randomuser.me/api/portraits/women/46.jpg',
|
|
32
|
-
tooltip: "Alicia Cooper - Busy"
|
|
33
|
-
},
|
|
34
|
-
]}
|
|
35
|
-
withTooltip
|
|
36
|
-
{...props}
|
|
37
|
-
/>
|
|
38
|
-
</div>
|
|
39
|
-
)
|
|
40
|
-
}
|
|
41
|
-
``
|
|
42
|
-
export default MultipleUsersWithTooltip
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Use the `withTooltip` boolean prop to enable setting user-specific tooltip content via the `tooltip` property in the users array.
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
<%
|
|
2
|
-
options = [
|
|
3
|
-
{ label: 'Orange', value: '#FFA500' },
|
|
4
|
-
{ label: 'Red', value: '#FF0000' },
|
|
5
|
-
{ label: 'Green', value: '#00FF00' },
|
|
6
|
-
{ label: 'Blue', value: '#0000FF' },
|
|
7
|
-
{ label: 'Yellow', value: '#FFFF00' },
|
|
8
|
-
{ label: 'Purple', value: '#800080' },
|
|
9
|
-
{ label: 'Cyan', value: '#00FFFF' },
|
|
10
|
-
{ label: 'Magenta', value: '#FF00FF' }
|
|
11
|
-
]
|
|
12
|
-
%>
|
|
13
|
-
|
|
14
|
-
<%= pb_rails("typeahead", props: {
|
|
15
|
-
id: "typeahead-input-display-none",
|
|
16
|
-
label: "With Input Display None",
|
|
17
|
-
options: options,
|
|
18
|
-
name: :foo,
|
|
19
|
-
input_display: "none",
|
|
20
|
-
})
|
|
21
|
-
%>
|
|
22
|
-
<br/>
|
|
23
|
-
<%= pb_rails("typeahead", props: {
|
|
24
|
-
id: "typeahead-input-display-pills",
|
|
25
|
-
label: "With Input Display Pills (Default)",
|
|
26
|
-
options: options,
|
|
27
|
-
name: :foo,
|
|
28
|
-
pills: true,
|
|
29
|
-
})
|
|
30
|
-
%>
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
|
|
3
|
-
import Typeahead from '../_typeahead'
|
|
4
|
-
|
|
5
|
-
const options = [
|
|
6
|
-
{ label: 'Orange', value: '#FFA500' },
|
|
7
|
-
{ label: 'Red', value: '#FF0000' },
|
|
8
|
-
{ label: 'Green', value: '#00FF00' },
|
|
9
|
-
{ label: 'Blue', value: '#0000FF' },
|
|
10
|
-
{ label: 'Yellow', value: '#FFFF00' },
|
|
11
|
-
{ label: 'Purple', value: '#800080' },
|
|
12
|
-
{ label: 'Cyan', value: '#00FFFF' },
|
|
13
|
-
{ label: 'Magenta', value: '#FF00FF' }
|
|
14
|
-
]
|
|
15
|
-
|
|
16
|
-
const TypeaheadInputDisplay = (props) => {
|
|
17
|
-
return (
|
|
18
|
-
<>
|
|
19
|
-
<Typeahead
|
|
20
|
-
inputDisplay="none"
|
|
21
|
-
isMulti
|
|
22
|
-
label="With Input Display None"
|
|
23
|
-
options={options}
|
|
24
|
-
{...props}
|
|
25
|
-
/>
|
|
26
|
-
<br/>
|
|
27
|
-
<Typeahead
|
|
28
|
-
isMulti
|
|
29
|
-
label="With Input Display Pills (Default)"
|
|
30
|
-
options={options}
|
|
31
|
-
{...props}
|
|
32
|
-
/>
|
|
33
|
-
</>
|
|
34
|
-
)
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export default TypeaheadInputDisplay
|