playbook_ui 15.0.0.pre.alpha.PLAY2426textfieldaccessibility10330 → 15.0.0.pre.alpha.PLAY236510413
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 +3 -1
- data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.tsx +2 -0
- data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.html.erb +1 -0
- data/app/pb_kits/playbook/pb_collapsible/__snapshots__/collapsible.test.js.snap +1 -0
- data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.ts +48 -4
- data/app/pb_kits/playbook/pb_dialog/_close_icon.tsx +5 -1
- data/app/pb_kits/playbook/pb_dialog/_dialog.tsx +6 -8
- data/app/pb_kits/playbook/pb_dialog/dialog.html.erb +1 -1
- data/app/pb_kits/playbook/pb_dialog/dialog_header.html.erb +2 -2
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +0 -1
- data/app/pb_kits/playbook/pb_icon/_icon.tsx +13 -2
- data/app/pb_kits/playbook/pb_icon/icon.rb +9 -1
- data/app/pb_kits/playbook/pb_icon_circle/icon_circle.html.erb +1 -1
- data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.tsx +3 -1
- data/app/pb_kits/playbook/pb_loading_inline/docs/_loading_inline_variant.html.erb +5 -0
- data/app/pb_kits/playbook/pb_loading_inline/docs/_loading_inline_variant.jsx +24 -0
- data/app/pb_kits/playbook/pb_loading_inline/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_loading_inline/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_loading_inline/loading_inline.html.erb +1 -1
- data/app/pb_kits/playbook/pb_loading_inline/loading_inline.rb +11 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/_pb_circle_chart.scss +3 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/_pb_circle_chart.tsx +62 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_block_content.html.erb +31 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_block_content.jsx +81 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_color_overrides.html.erb +25 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_color_overrides.jsx +40 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_color_overrides.md +5 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_custom_tooltip.html.erb +27 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_custom_tooltip.jsx +39 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_custom_tooltip.md +5 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_legend_position.html.erb +93 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_legend_position.jsx +131 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_legend_position.md +14 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_with_labels.html.erb +42 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_with_labels.jsx +58 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_with_legend.html.erb +24 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_with_legend.jsx +38 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_default.html.erb +22 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_default.jsx +33 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_inner_sizes.html.erb +118 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_inner_sizes.jsx +144 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_live_data.jsx +60 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_rounded.html.erb +24 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_rounded.jsx +42 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_with_title.html.erb +38 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_with_title.jsx +52 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/example.yml +29 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/index.js +11 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/pbCircleChartTheme.ts +88 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/pb_circle_chart.html.erb +1 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/pb_circle_chart.rb +28 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/pb_circle_chart.test.jsx +51 -0
- data/app/pb_kits/playbook/pb_text_input/_text_input.tsx +3 -0
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_autocomplete.html.erb +41 -0
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_autocomplete.jsx +80 -0
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_autocomplete.md +1 -0
- data/app/pb_kits/playbook/pb_text_input/docs/example.yml +3 -0
- data/app/pb_kits/playbook/pb_text_input/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_text_input/text_input.rb +2 -3
- data/app/pb_kits/playbook/pb_text_input/text_input.test.js +38 -0
- data/dist/chunks/{_line_graph-CApw7aQD.js → _line_graph-B5Dr0Huy.js} +1 -1
- data/dist/chunks/_typeahead-GbjDoSSQ.js +6 -0
- data/dist/chunks/_weekday_stacked-DjQv3Sok.js +37 -0
- data/dist/chunks/{lib-CY5ZPzic.js → lib-BTs5acfO.js} +1 -1
- data/dist/chunks/{pb_form_validation-D3b0JKHH.js → pb_form_validation-CKkaQFX3.js} +1 -1
- data/dist/chunks/vendor.js +1 -1
- data/dist/menu.yml +6 -0
- data/dist/playbook-doc.js +2 -2
- 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/forms/builder/form_field_builder.rb +1 -9
- data/lib/playbook/version.rb +1 -1
- metadata +44 -8
- data/app/pb_kits/playbook/pb_dialog/dialogHelper.js +0 -65
- data/dist/chunks/_typeahead-J1_avqdO.js +0 -6
- data/dist/chunks/_weekday_stacked-C3QAjEFv.js +0 -37
@@ -0,0 +1,144 @@
|
|
1
|
+
import React from "react";
|
2
|
+
import { PbCircleChart } from "playbook-ui";
|
3
|
+
|
4
|
+
const dataFirst = [
|
5
|
+
{
|
6
|
+
name: 'Bugs',
|
7
|
+
y: 8,
|
8
|
+
},
|
9
|
+
{
|
10
|
+
name: 'Chores',
|
11
|
+
y: 1,
|
12
|
+
},
|
13
|
+
{
|
14
|
+
name: 'Stories',
|
15
|
+
y: 12,
|
16
|
+
},
|
17
|
+
]
|
18
|
+
|
19
|
+
const dataSecond = [
|
20
|
+
{
|
21
|
+
name: 'Queued',
|
22
|
+
y: 7,
|
23
|
+
},
|
24
|
+
{
|
25
|
+
name: 'In Progress',
|
26
|
+
y: 6,
|
27
|
+
},
|
28
|
+
{
|
29
|
+
name: 'Validation',
|
30
|
+
y: 3,
|
31
|
+
},
|
32
|
+
{
|
33
|
+
name: 'Done',
|
34
|
+
y: 6,
|
35
|
+
},
|
36
|
+
]
|
37
|
+
|
38
|
+
const dataThird = [
|
39
|
+
{
|
40
|
+
name: '1 Point Tickets',
|
41
|
+
y: 2,
|
42
|
+
},
|
43
|
+
{
|
44
|
+
name: '3 Point Tickets',
|
45
|
+
y: 5,
|
46
|
+
},
|
47
|
+
{
|
48
|
+
name: '5 Point Tickets',
|
49
|
+
y: 6,
|
50
|
+
},
|
51
|
+
{
|
52
|
+
name: '8 Point Tickets',
|
53
|
+
y: 3,
|
54
|
+
},
|
55
|
+
{
|
56
|
+
name: '13 Point Tickets',
|
57
|
+
y: 1,
|
58
|
+
},
|
59
|
+
]
|
60
|
+
|
61
|
+
const dataFourth = [
|
62
|
+
{
|
63
|
+
name: 'Facebook',
|
64
|
+
y: 2498,
|
65
|
+
},
|
66
|
+
{
|
67
|
+
name: 'YouTube',
|
68
|
+
y: 2000,
|
69
|
+
},
|
70
|
+
{
|
71
|
+
name: 'WhatsApp',
|
72
|
+
y: 2000,
|
73
|
+
},
|
74
|
+
{
|
75
|
+
name: 'Facebook Messenger',
|
76
|
+
y: 1300,
|
77
|
+
},
|
78
|
+
{
|
79
|
+
name: 'WeChat',
|
80
|
+
y: 1165,
|
81
|
+
},
|
82
|
+
{
|
83
|
+
name: 'Instagram',
|
84
|
+
y: 1000,
|
85
|
+
},
|
86
|
+
{
|
87
|
+
name: 'Tik Tok',
|
88
|
+
y: 800,
|
89
|
+
},
|
90
|
+
]
|
91
|
+
|
92
|
+
const PbCircleChartInnerSizes= (props) => {
|
93
|
+
const chartOptionsSmall = {
|
94
|
+
series: [{
|
95
|
+
data: dataFirst,
|
96
|
+
innerSize: '35%'
|
97
|
+
}],
|
98
|
+
}
|
99
|
+
|
100
|
+
const chartOptionsMedium = {
|
101
|
+
series: [{
|
102
|
+
data: dataSecond,
|
103
|
+
innerSize: '50%'
|
104
|
+
}],
|
105
|
+
}
|
106
|
+
|
107
|
+
const chartOptionsLarge = {
|
108
|
+
series: [{
|
109
|
+
data: dataThird,
|
110
|
+
innerSize: '85%'
|
111
|
+
}],
|
112
|
+
}
|
113
|
+
|
114
|
+
const chartOptionsNone = {
|
115
|
+
series: [{
|
116
|
+
data: dataFourth,
|
117
|
+
innerSize: '0%'
|
118
|
+
}],
|
119
|
+
}
|
120
|
+
|
121
|
+
return (
|
122
|
+
<div>
|
123
|
+
<PbCircleChart
|
124
|
+
options={chartOptionsSmall}
|
125
|
+
{...props}
|
126
|
+
/>
|
127
|
+
<PbCircleChart
|
128
|
+
options={chartOptionsMedium}
|
129
|
+
{...props}
|
130
|
+
/>
|
131
|
+
<PbCircleChart
|
132
|
+
options={chartOptionsLarge}
|
133
|
+
{...props}
|
134
|
+
/>
|
135
|
+
<PbCircleChart
|
136
|
+
options={chartOptionsNone}
|
137
|
+
{...props}
|
138
|
+
/>
|
139
|
+
</div>
|
140
|
+
);
|
141
|
+
};
|
142
|
+
|
143
|
+
|
144
|
+
export default PbCircleChartInnerSizes;
|
@@ -0,0 +1,60 @@
|
|
1
|
+
import React, { useState } from "react";
|
2
|
+
import { PbCircleChart, Button } from "playbook-ui";
|
3
|
+
|
4
|
+
const chartData = [
|
5
|
+
{
|
6
|
+
name: "Waiting for Calls",
|
7
|
+
y: 41,
|
8
|
+
},
|
9
|
+
{
|
10
|
+
name: "On Call",
|
11
|
+
y: 49,
|
12
|
+
},
|
13
|
+
{
|
14
|
+
name: "After Call",
|
15
|
+
y: 10,
|
16
|
+
},
|
17
|
+
];
|
18
|
+
|
19
|
+
const chartData2 = [
|
20
|
+
{
|
21
|
+
name: "Waiting for Calls",
|
22
|
+
y: 48,
|
23
|
+
},
|
24
|
+
{
|
25
|
+
name: "On Call",
|
26
|
+
y: 12,
|
27
|
+
},
|
28
|
+
{
|
29
|
+
name: "After Call",
|
30
|
+
y: 140,
|
31
|
+
},
|
32
|
+
];
|
33
|
+
|
34
|
+
|
35
|
+
const PbCircleChartLiveData = (props) => {
|
36
|
+
|
37
|
+
const [data, setData] = useState(chartData);
|
38
|
+
|
39
|
+
const updateValue = () => {
|
40
|
+
setData(chartData2)
|
41
|
+
}
|
42
|
+
const chartOptions = {
|
43
|
+
series: [{ data: data }],
|
44
|
+
}
|
45
|
+
|
46
|
+
return (
|
47
|
+
<div>
|
48
|
+
<Button
|
49
|
+
onClick={updateValue}
|
50
|
+
text="Update Value"
|
51
|
+
/>
|
52
|
+
<PbCircleChart
|
53
|
+
options={chartOptions}
|
54
|
+
{...props}
|
55
|
+
/>
|
56
|
+
</div>
|
57
|
+
);
|
58
|
+
};
|
59
|
+
|
60
|
+
export default PbCircleChartLiveData;
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<% data = [
|
2
|
+
{
|
3
|
+
name: "Waiting for Calls",
|
4
|
+
y: 41,
|
5
|
+
},
|
6
|
+
{
|
7
|
+
name: "On Call",
|
8
|
+
y: 49,
|
9
|
+
},
|
10
|
+
{
|
11
|
+
name: "After Call",
|
12
|
+
y: 10,
|
13
|
+
},
|
14
|
+
] %>
|
15
|
+
|
16
|
+
<% chart_options = {
|
17
|
+
series: [{
|
18
|
+
data: data,
|
19
|
+
innerSize: '100%',
|
20
|
+
borderWidth: '20',
|
21
|
+
}],
|
22
|
+
} %>
|
23
|
+
|
24
|
+
<%= pb_rails("pb_circle_chart", props: { options: chart_options }) %>
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import React from "react";
|
2
|
+
import { PbCircleChart } from "playbook-ui";
|
3
|
+
|
4
|
+
const data= [
|
5
|
+
{
|
6
|
+
name: "Waiting for Calls",
|
7
|
+
y: 41,
|
8
|
+
},
|
9
|
+
{
|
10
|
+
name: "On Call",
|
11
|
+
y: 49,
|
12
|
+
},
|
13
|
+
{
|
14
|
+
name: "After Call",
|
15
|
+
y: 10,
|
16
|
+
},
|
17
|
+
]
|
18
|
+
|
19
|
+
|
20
|
+
const PbCircleChartRounded = (props) => {
|
21
|
+
const chartOptions = {
|
22
|
+
series: [{ data: data }],
|
23
|
+
plotOptions: {
|
24
|
+
pie: {
|
25
|
+
borderColor: null,
|
26
|
+
borderWidth: 20,
|
27
|
+
innerSize: '100%',
|
28
|
+
},
|
29
|
+
},
|
30
|
+
};
|
31
|
+
|
32
|
+
return (
|
33
|
+
<div>
|
34
|
+
<PbCircleChart
|
35
|
+
options={chartOptions}
|
36
|
+
{...props}
|
37
|
+
/>
|
38
|
+
</div>
|
39
|
+
);
|
40
|
+
};
|
41
|
+
|
42
|
+
export default PbCircleChartRounded;
|
@@ -0,0 +1,38 @@
|
|
1
|
+
<% data = [
|
2
|
+
{
|
3
|
+
name: 'Facebook',
|
4
|
+
y: 2498,
|
5
|
+
},
|
6
|
+
{
|
7
|
+
name: 'YouTube',
|
8
|
+
y: 2000,
|
9
|
+
},
|
10
|
+
{
|
11
|
+
name: 'WhatsApp',
|
12
|
+
y: 2000,
|
13
|
+
},
|
14
|
+
{
|
15
|
+
name: 'Facebook Messenger',
|
16
|
+
y: 1300,
|
17
|
+
},
|
18
|
+
{
|
19
|
+
name: 'WeChat',
|
20
|
+
y: 1165,
|
21
|
+
},
|
22
|
+
{
|
23
|
+
name: 'Instagram',
|
24
|
+
y: 1000,
|
25
|
+
},
|
26
|
+
{
|
27
|
+
name: 'Tik Tok',
|
28
|
+
y: 800,
|
29
|
+
},
|
30
|
+
] %>
|
31
|
+
|
32
|
+
<% chart_options = {
|
33
|
+
series: [{ data: data }],
|
34
|
+
title: { text: "Active Users on Social Media" },
|
35
|
+
} %>
|
36
|
+
|
37
|
+
|
38
|
+
<%= pb_rails("pb_circle_chart", props: { options: chart_options }) %>
|
@@ -0,0 +1,52 @@
|
|
1
|
+
import React from "react";
|
2
|
+
import { PbCircleChart } from "playbook-ui";
|
3
|
+
|
4
|
+
const data= [
|
5
|
+
{
|
6
|
+
name: 'Facebook',
|
7
|
+
y: 2498,
|
8
|
+
},
|
9
|
+
{
|
10
|
+
name: 'YouTube',
|
11
|
+
y: 2000,
|
12
|
+
},
|
13
|
+
{
|
14
|
+
name: 'WhatsApp',
|
15
|
+
y: 2000,
|
16
|
+
},
|
17
|
+
{
|
18
|
+
name: 'Facebook Messenger',
|
19
|
+
y: 1300,
|
20
|
+
},
|
21
|
+
{
|
22
|
+
name: 'WeChat',
|
23
|
+
y: 1165,
|
24
|
+
},
|
25
|
+
{
|
26
|
+
name: 'Instagram',
|
27
|
+
y: 1000,
|
28
|
+
},
|
29
|
+
{
|
30
|
+
name: 'Tik Tok',
|
31
|
+
y: 800,
|
32
|
+
},
|
33
|
+
]
|
34
|
+
|
35
|
+
|
36
|
+
const PbCircleChartWithTitle = (props) => {
|
37
|
+
const chartOptions = {
|
38
|
+
title: { text: "Active Users on Social Media" },
|
39
|
+
series: [{ data: data }],
|
40
|
+
};
|
41
|
+
|
42
|
+
return (
|
43
|
+
<div>
|
44
|
+
<PbCircleChart
|
45
|
+
options={chartOptions}
|
46
|
+
{...props}
|
47
|
+
/>
|
48
|
+
</div>
|
49
|
+
);
|
50
|
+
};
|
51
|
+
|
52
|
+
export default PbCircleChartWithTitle;
|
@@ -0,0 +1,29 @@
|
|
1
|
+
examples:
|
2
|
+
|
3
|
+
rails:
|
4
|
+
- pb_circle_chart_default: Default
|
5
|
+
- pb_circle_chart_rounded: Rounded Corners
|
6
|
+
- pb_circle_chart_block_content: Accepts Any Block
|
7
|
+
- pb_circle_chart_color_overrides: Color Overrides
|
8
|
+
- pb_circle_chart_data_with_labels: Data with Labels
|
9
|
+
- pb_circle_chart_data_with_legend: Data with Legend
|
10
|
+
- pb_circle_chart_data_legend_position: Legend Position
|
11
|
+
- pb_circle_chart_with_title: With Title
|
12
|
+
- pb_circle_chart_inner_sizes: Inner Circle Size Options
|
13
|
+
- pb_circle_chart_custom_tooltip: Tooltip Customization
|
14
|
+
|
15
|
+
|
16
|
+
react:
|
17
|
+
- pb_circle_chart_default: Default
|
18
|
+
- pb_circle_chart_live_data: Live Data
|
19
|
+
- pb_circle_chart_rounded: Rounded Corners
|
20
|
+
- pb_circle_chart_block_content: Accepts Any Block
|
21
|
+
- pb_circle_chart_color_overrides: Color Overrides
|
22
|
+
- pb_circle_chart_data_with_labels: Data with Labels
|
23
|
+
- pb_circle_chart_data_with_legend: Data with Legend
|
24
|
+
- pb_circle_chart_data_legend_position: Legend Position
|
25
|
+
- pb_circle_chart_with_title: With Title
|
26
|
+
- pb_circle_chart_inner_sizes: Inner Circle Size Options
|
27
|
+
- pb_circle_chart_custom_tooltip: Tooltip Customization
|
28
|
+
|
29
|
+
|
@@ -0,0 +1,11 @@
|
|
1
|
+
export { default as PbCircleChartDefault } from './_pb_circle_chart_default.jsx'
|
2
|
+
export { default as PbCircleChartLiveData } from './_pb_circle_chart_live_data.jsx'
|
3
|
+
export { default as PbCircleChartRounded } from './_pb_circle_chart_rounded.jsx'
|
4
|
+
export { default as PbCircleChartBlockContent } from './_pb_circle_chart_block_content.jsx'
|
5
|
+
export { default as PbCircleChartColorOverrides } from './_pb_circle_chart_color_overrides.jsx'
|
6
|
+
export { default as PbCircleChartDataWithLabels } from './_pb_circle_chart_data_with_labels.jsx'
|
7
|
+
export { default as PbCircleChartDataWithLegend } from './_pb_circle_chart_data_with_legend.jsx'
|
8
|
+
export { default as PbCircleChartDataLegendPosition } from './_pb_circle_chart_data_legend_position.jsx'
|
9
|
+
export { default as PbCircleChartWithTitle } from './_pb_circle_chart_with_title.jsx'
|
10
|
+
export { default as PbCircleChartInnerSizes } from './_pb_circle_chart_inner_sizes.jsx'
|
11
|
+
export { default as PbCircleChartCustomTooltip } from './_pb_circle_chart_custom_tooltip.jsx'
|
@@ -0,0 +1,88 @@
|
|
1
|
+
import colors from '../tokens/exports/_colors.module.scss'
|
2
|
+
import typography from '../tokens/exports/_typography.module.scss'
|
3
|
+
|
4
|
+
const pbCircleChartTheme = {
|
5
|
+
title: {
|
6
|
+
text: "",
|
7
|
+
style: {
|
8
|
+
color: colors.text_lt_default,
|
9
|
+
fontFamily: typography.font_family_base,
|
10
|
+
fontWeight: typography.bold,
|
11
|
+
fontSize: typography.heading_3,
|
12
|
+
},
|
13
|
+
},
|
14
|
+
chart: {
|
15
|
+
type: "pie",
|
16
|
+
},
|
17
|
+
tooltip: {
|
18
|
+
backgroundColor: {
|
19
|
+
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
|
20
|
+
stops: [
|
21
|
+
[0, colors.bg_dark],
|
22
|
+
[1, colors.bg_dark],
|
23
|
+
],
|
24
|
+
},
|
25
|
+
pointFormat:
|
26
|
+
'<span style="font-weight: bold; color:{point.color};">●</span>{point.name}: ' +
|
27
|
+
"<b>{point.y}</b>",
|
28
|
+
followPointer: true,
|
29
|
+
shadow: false,
|
30
|
+
borderWidth: 0,
|
31
|
+
borderRadius: 10,
|
32
|
+
style: {
|
33
|
+
fontFamily: typography.font_family_base,
|
34
|
+
color: colors.text_dk_default,
|
35
|
+
fontWeight: typography.regular,
|
36
|
+
fontSize: typography.text_smaller,
|
37
|
+
},
|
38
|
+
},
|
39
|
+
plotOptions: {
|
40
|
+
pie: {
|
41
|
+
dataLabels: {
|
42
|
+
enabled: false,
|
43
|
+
connectorShape: "straight",
|
44
|
+
connectorWidth: 3,
|
45
|
+
format: "<div>{point.name}</div>",
|
46
|
+
style: {
|
47
|
+
fontFamily: typography.font_family_base,
|
48
|
+
fontSize: typography.text_smaller,
|
49
|
+
color: colors.text_lt_light,
|
50
|
+
fontWeight: typography.regular,
|
51
|
+
textOutline: '2px $white',
|
52
|
+
},
|
53
|
+
},
|
54
|
+
innerSize: '50%',
|
55
|
+
borderColor: "",
|
56
|
+
borderWidth: null as number | null,
|
57
|
+
colors: [
|
58
|
+
colors.data_1,
|
59
|
+
colors.data_2,
|
60
|
+
colors.data_3,
|
61
|
+
colors.data_4,
|
62
|
+
colors.data_5,
|
63
|
+
colors.data_6,
|
64
|
+
colors.data_7,
|
65
|
+
],
|
66
|
+
},
|
67
|
+
},
|
68
|
+
legend: {
|
69
|
+
layout: 'horizontal',
|
70
|
+
align: 'center',
|
71
|
+
verticalAlign: 'bottom',
|
72
|
+
itemStyle: {
|
73
|
+
fontFamily: typography.font_family_base,
|
74
|
+
color: colors.text_lt_light,
|
75
|
+
fontWeight: typography.regular,
|
76
|
+
fontSize: typography.text_smaller,
|
77
|
+
},
|
78
|
+
itemHoverStyle: {
|
79
|
+
color: colors.text_lt_default,
|
80
|
+
},
|
81
|
+
itemHiddenStyle: {
|
82
|
+
color: colors.text_lt_lighter,
|
83
|
+
},
|
84
|
+
},
|
85
|
+
credits: { enabled: false }
|
86
|
+
}
|
87
|
+
|
88
|
+
export default pbCircleChartTheme;
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= react_component('PbCircleChart', object.react_props) %>
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Playbook
|
4
|
+
module PbPbCircleChart
|
5
|
+
class PbCircleChart < ::Playbook::KitBase
|
6
|
+
prop :options, default: {}
|
7
|
+
prop :container_props, default: {}
|
8
|
+
|
9
|
+
def react_props
|
10
|
+
{
|
11
|
+
options: options,
|
12
|
+
containerProps: container_props_hash,
|
13
|
+
}
|
14
|
+
end
|
15
|
+
|
16
|
+
def container_props_hash
|
17
|
+
container_props.merge({
|
18
|
+
id: id,
|
19
|
+
className: classname,
|
20
|
+
}).compact
|
21
|
+
end
|
22
|
+
|
23
|
+
def classname
|
24
|
+
generate_classname("pb_pb_circle_chart")
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { render, screen } from '../utilities/test-utils'
|
3
|
+
|
4
|
+
import { PbCircleChart } from 'playbook-ui'
|
5
|
+
|
6
|
+
beforeEach(() => {
|
7
|
+
// Silences error logs within the test suite.
|
8
|
+
jest.spyOn(console, 'error');
|
9
|
+
jest.spyOn(console, 'warn');
|
10
|
+
console.error.mockImplementation(() => {});
|
11
|
+
console.warn.mockImplementation(() => {});
|
12
|
+
});
|
13
|
+
|
14
|
+
afterEach(() => {
|
15
|
+
console.error.mockRestore();
|
16
|
+
console.warn.mockRestore();
|
17
|
+
});
|
18
|
+
|
19
|
+
const chartOptions = {
|
20
|
+
series: [
|
21
|
+
{
|
22
|
+
data: [
|
23
|
+
{
|
24
|
+
name: "Waiting for Calls",
|
25
|
+
y: 41,
|
26
|
+
},
|
27
|
+
{
|
28
|
+
name: "On Call",
|
29
|
+
y: 49,
|
30
|
+
},
|
31
|
+
{
|
32
|
+
name: "After Call",
|
33
|
+
y: 10,
|
34
|
+
},
|
35
|
+
],
|
36
|
+
},
|
37
|
+
],
|
38
|
+
};
|
39
|
+
|
40
|
+
const testId = 'pbcirclechart1';
|
41
|
+
|
42
|
+
test('Kit to exist', () => {
|
43
|
+
render(
|
44
|
+
<PbCircleChart
|
45
|
+
data={{testid: testId}}
|
46
|
+
options={chartOptions}
|
47
|
+
/>
|
48
|
+
)
|
49
|
+
expect(screen.getByTestId(testId)).toBeInTheDocument()
|
50
|
+
})
|
51
|
+
|
@@ -36,6 +36,7 @@ type TextInputProps = {
|
|
36
36
|
alignment?: "right" | "left",
|
37
37
|
border?: boolean,
|
38
38
|
},
|
39
|
+
autoComplete?: boolean | string,
|
39
40
|
} & GlobalProps
|
40
41
|
|
41
42
|
const TextInput = (props: TextInputProps, ref: React.LegacyRef<HTMLInputElement>) => {
|
@@ -59,6 +60,7 @@ const TextInput = (props: TextInputProps, ref: React.LegacyRef<HTMLInputElement>
|
|
59
60
|
type = 'text',
|
60
61
|
value = '',
|
61
62
|
children = null,
|
63
|
+
autoComplete = true,
|
62
64
|
} = props
|
63
65
|
|
64
66
|
const ariaProps = buildAriaProps(aria)
|
@@ -142,6 +144,7 @@ const TextInput = (props: TextInputProps, ref: React.LegacyRef<HTMLInputElement>
|
|
142
144
|
childInput ? React.cloneElement(children, { className: "text_input" }) :
|
143
145
|
(<input
|
144
146
|
{...domSafeProps(props)}
|
147
|
+
autoComplete={typeof autoComplete === "string" ? autoComplete : ( autoComplete ? undefined : "off" )}
|
145
148
|
className="text_input"
|
146
149
|
disabled={disabled}
|
147
150
|
id={id}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
<%= pb_rails("text_input", props: {
|
2
|
+
autocomplete: false,
|
3
|
+
label: "autocomplete='off'",
|
4
|
+
name: "firstName",
|
5
|
+
placeholder: "Enter first name",
|
6
|
+
}) %>
|
7
|
+
|
8
|
+
<%= pb_rails("text_input", props: {
|
9
|
+
label: "no autocomplete attribute (let browser decide- basically 'on')",
|
10
|
+
name: "lastName",
|
11
|
+
placeholder: "Enter last name"
|
12
|
+
}) %>
|
13
|
+
|
14
|
+
<%= pb_rails("text_input", props: {
|
15
|
+
autocomplete: true,
|
16
|
+
label: "autocomplete='on'",
|
17
|
+
name: "phone",
|
18
|
+
type: "phone",
|
19
|
+
placeholder: "Enter phone number"
|
20
|
+
}) %>
|
21
|
+
|
22
|
+
<%= pb_rails("body", props: { margin_bottom: "sm" }) do %>
|
23
|
+
The following have the same autocomplete attributes (email), but have
|
24
|
+
different name attributes (email and emailAlt). Many browsers will
|
25
|
+
open autocomplete based on name attributes instead of autocomplete:
|
26
|
+
<% end %>
|
27
|
+
|
28
|
+
<%= pb_rails("text_input", props: {
|
29
|
+
autocomplete: "email",
|
30
|
+
label: "autocomplete='email' name='email'",
|
31
|
+
name: "email",
|
32
|
+
placeholder: "Enter email address"
|
33
|
+
}) %>
|
34
|
+
|
35
|
+
<%= pb_rails("text_input", props: {
|
36
|
+
autocomplete: "email",
|
37
|
+
label: "autocomplete='email' name='emailAlt'",
|
38
|
+
name: "emailAlt",
|
39
|
+
type: "email",
|
40
|
+
placeholder: "Enter email address"
|
41
|
+
}) %>
|