playbook_ui 14.22.0.pre.alpha.PLAY22578709 → 14.22.0.pre.alpha.PLAY22958842

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.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_badge/_badge.scss +5 -6
  3. data/app/pb_kits/playbook/pb_bar_graph/barGraphTheme.ts +106 -0
  4. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_colors.jsx +33 -15
  5. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_default.jsx +33 -15
  6. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_height.jsx +52 -22
  7. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_height.md +3 -0
  8. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_horizontal.jsx +12 -16
  9. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend.jsx +31 -15
  10. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_non_clickable.jsx +39 -16
  11. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_position.jsx +86 -38
  12. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_negative_numbers.jsx +32 -15
  13. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_secondary_y_axis.jsx +72 -22
  14. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_secondary_y_axis.md +1 -1
  15. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_spline.jsx +31 -15
  16. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_stacked.jsx +37 -16
  17. data/app/pb_kits/playbook/pb_bar_graph/docs/_description.md +1 -3
  18. data/app/pb_kits/playbook/pb_bar_graph/docs/example.yml +1 -3
  19. data/app/pb_kits/playbook/pb_bar_graph/docs/index.js +0 -2
  20. data/app/pb_kits/playbook/pb_circle_chart/circleChartTheme.ts +36 -1
  21. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_block.jsx +71 -26
  22. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors.jsx +29 -16
  23. data/app/pb_kits/playbook/pb_circle_chart/docs/{_circle_chart_colors.md → _circle_chart_colors_rails.md} +1 -1
  24. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors_react.md +2 -0
  25. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_custom_tooltip.jsx +28 -16
  26. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_custom_tooltip.md +4 -2
  27. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_default.jsx +23 -15
  28. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_inner_sizes.jsx +81 -51
  29. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.jsx +103 -75
  30. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.md +3 -6
  31. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_live_data.jsx +19 -13
  32. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_rounded.jsx +30 -17
  33. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_labels.jsx +34 -20
  34. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_legend_kit.jsx +29 -20
  35. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_title.jsx +28 -20
  36. data/app/pb_kits/playbook/pb_circle_chart/docs/_description.md +1 -0
  37. data/app/pb_kits/playbook/pb_circle_chart/docs/example.yml +0 -1
  38. data/app/pb_kits/playbook/pb_circle_chart/docs/index.js +0 -1
  39. data/app/pb_kits/playbook/pb_draggable/context/index.tsx +4 -12
  40. data/app/pb_kits/playbook/pb_draggable/context/types.ts +2 -5
  41. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_click_open.html.erb +14 -0
  42. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_click_open_rails.md +1 -0
  43. data/app/pb_kits/playbook/pb_tooltip/docs/example.yml +1 -0
  44. data/app/pb_kits/playbook/pb_tooltip/index.js +59 -36
  45. data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +9 -2
  46. data/dist/chunks/_circle_chart-BjcInQNv.js +1 -0
  47. data/dist/chunks/{_typeahead-BZsshVoi.js → _typeahead-CuwY9iVi.js} +3 -3
  48. data/dist/chunks/{_weekday_stacked-DO4S-plL.js → _weekday_stacked-C3EeTZ8D.js} +1 -1
  49. data/dist/chunks/{lib-Carqm8Ip.js → lib-DYpq0k8j.js} +1 -1
  50. data/dist/chunks/{pb_form_validation-DqRmTS8m.js → pb_form_validation-BUOKwfvW.js} +1 -1
  51. data/dist/chunks/vendor.js +1 -1
  52. data/dist/menu.yml +68 -8
  53. data/dist/playbook-doc.js +1 -1
  54. data/dist/playbook-rails-react-bindings.js +1 -1
  55. data/dist/playbook-rails.js +1 -1
  56. data/dist/playbook.css +1 -1
  57. data/lib/playbook/version.rb +1 -1
  58. metadata +15 -14
  59. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_custom.jsx +0 -72
  60. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_custom.md +0 -6
  61. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.jsx +0 -64
  62. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.md +0 -1
  63. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_pb_styles.jsx +0 -38
  64. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_pb_styles.md +0 -1
  65. /data/app/pb_kits/playbook/pb_tooltip/docs/{_tooltip_click_open.md → _tooltip_click_open_react.md} +0 -0
@@ -1,31 +1,44 @@
1
1
  import React from 'react'
2
-
3
- import CircleChart from '../_circle_chart'
2
+ import circleChartTheme from '../circleChartTheme'
3
+ import Highcharts from "highcharts"
4
+ import HighchartsReact from "highcharts-react-official"
5
+ import colors from '../../tokens/exports/_colors.module.scss'
4
6
 
5
7
  const dataWithColors = [
6
8
  {
7
9
  name: 'Waiting for Calls',
8
- value: 41,
10
+ y: 41,
9
11
  },
10
12
  {
11
13
  name: 'On Call',
12
- value: 49,
14
+ y: 49,
13
15
  },
14
16
  {
15
17
  name: 'After Call',
16
- value: 10,
18
+ y: 10,
17
19
  },
18
20
  ]
19
21
 
20
- const CircleChartColors = (props) => (
21
- <div>
22
- <CircleChart
23
- chartData={dataWithColors}
24
- colors={['data-6', 'data-4', 'data-2']}
25
- id="colors-example"
26
- {...props}
27
- />
28
- </div>
29
- )
22
+ const CircleChartColors = () => {
23
+ const chartOptions = {
24
+ series: [{ data: dataWithColors }],
25
+ plotOptions: {
26
+ pie: {
27
+ colors: ["#144075", colors.data_4, colors.data_2]
28
+ }
29
+ }
30
+ }
31
+
32
+ const options = Highcharts.merge({}, circleChartTheme, chartOptions)
33
+
34
+ return (
35
+ <div>
36
+ <HighchartsReact
37
+ highcharts={Highcharts}
38
+ options={options}
39
+ />
40
+ </div>
41
+ )
42
+ }
30
43
 
31
- export default CircleChartColors
44
+ export default CircleChartColors
@@ -1,2 +1,2 @@
1
1
  Custom data colors allow for color customization to match the needs of business requirements.
2
- Pass the prop `colors` and use desired values `data-1 | data-2 | data-3 | data-4 | data-5 | data-6 | data-7 | data-8` in an array. Hex colors are also available `eg: #CA0095`
2
+ Pass the prop `colors` and use desired values `data-1 | data-2 | data-3 | data-4 | data-5 | data-6 | data-7 | data-8` in an array. Hex colors are also available `eg: #CA0095`.
@@ -0,0 +1,2 @@
1
+ Custom data colors allow for color customization to match the needs of business requirements.
2
+ Import the colors from Playbook's tokens, then set custom colors in the plotOptions.pie.colors array using the desired color variables. Hex colors are also available `eg: #CA0095`.
@@ -1,31 +1,43 @@
1
1
  import React from 'react'
2
-
3
- import CircleChart from '../_circle_chart'
2
+ import circleChartTheme from '../circleChartTheme'
3
+ import Highcharts from "highcharts"
4
+ import HighchartsReact from "highcharts-react-official"
4
5
 
5
6
  const data = [
6
7
  {
7
8
  name: 'Waiting for Calls',
8
- value: 41,
9
+ y: 41,
9
10
  },
10
11
  {
11
12
  name: 'On Call',
12
- value: 49,
13
+ y: 49,
13
14
  },
14
15
  {
15
16
  name: 'After Call',
16
- value: 10,
17
+ y: 10,
17
18
  },
18
19
  ]
19
20
 
20
- const CircleChartCustomTooltip = (props) => (
21
- <div>
22
- <CircleChart
23
- chartData={data}
24
- id="circle-chart-default"
25
- tooltipHtml= '<p>Custom tooltip for {point.name} <br/>with value: {point.y}</p>'
26
- {...props}
27
- />
28
- </div>
29
- )
21
+ const CircleChartCustomTooltip = () => {
22
+ const chartOptions = {
23
+ series: [{ data: data }],
24
+ tooltip: {
25
+ headerFormat: null,
26
+ pointFormat: '<p>Custom tooltip for {point.name} <br/>with value: {point.y}</p>',
27
+ useHTML: true,
28
+ },
29
+ }
30
+
31
+ const options = Highcharts.merge({}, circleChartTheme, chartOptions)
32
+
33
+ return (
34
+ <div>
35
+ <HighchartsReact
36
+ highcharts={Highcharts}
37
+ options={options}
38
+ />
39
+ </div>
40
+ )
41
+ }
30
42
 
31
- export default CircleChartCustomTooltip
43
+ export default CircleChartCustomTooltip
@@ -1,3 +1,5 @@
1
- A custom tooltip format can be specified. The desired format can be passed as a `string` of custom HTML to the `tooltipHtml` prop.
2
-
1
+ Custom tooltip formatting is configured through the tooltip object in the chart options:
2
+ `headerFormat` **Type**: String | when set to null will disable the header.
3
+ `pointFormat` **Type**: String | defines the HTML template for each data point and supports custom HTML when `useHTML` is enabled.
4
+ `useHTML` **Type**: boolean (default false) | enables HTML rendering in tooltips.
3
5
  `{point.name}` and `{point.y}` are useful values that can be referenced for each point in the graph.
@@ -1,30 +1,38 @@
1
1
  import React from 'react'
2
-
3
- import CircleChart from '../_circle_chart'
2
+ import circleChartTheme from '../circleChartTheme'
3
+ import Highcharts from "highcharts"
4
+ import HighchartsReact from "highcharts-react-official"
4
5
 
5
6
  const data = [
6
7
  {
7
8
  name: 'Waiting for Calls',
8
- value: 41,
9
+ y: 41,
9
10
  },
10
11
  {
11
12
  name: 'On Call',
12
- value: 49,
13
+ y: 49,
13
14
  },
14
15
  {
15
16
  name: 'After Call',
16
- value: 10,
17
+ y: 10,
17
18
  },
18
19
  ]
19
20
 
20
- const CircleChartDefault = (props) => (
21
- <div>
22
- <CircleChart
23
- chartData={data}
24
- id="circle-chart-default"
25
- {...props}
26
- />
27
- </div>
28
- )
21
+ const chartOptions = {
22
+ series: [{ data: data }],
23
+ }
24
+
25
+ const CircleChartDefault = () => {
26
+ const options = Highcharts.merge({}, circleChartTheme, chartOptions)
27
+
28
+ return (
29
+ <div>
30
+ <HighchartsReact
31
+ highcharts={Highcharts}
32
+ options={options}
33
+ />
34
+ </div>
35
+ );
36
+ };
29
37
 
30
- export default CircleChartDefault
38
+ export default CircleChartDefault;
@@ -1,122 +1,152 @@
1
1
  import React from 'react'
2
-
3
- import CircleChart from '../_circle_chart'
2
+ import circleChartTheme from '../circleChartTheme'
3
+ import Highcharts from "highcharts"
4
+ import HighchartsReact from "highcharts-react-official"
4
5
 
5
6
  const dataFirst = [
6
7
  {
7
8
  name: 'Bugs',
8
- value: 8,
9
+ y: 8,
9
10
  },
10
11
  {
11
12
  name: 'Chores',
12
- value: 1,
13
+ y: 1,
13
14
  },
14
15
  {
15
16
  name: 'Stories',
16
- value: 12,
17
+ y: 12,
17
18
  },
18
19
  ]
19
20
 
20
21
  const dataSecond = [
21
22
  {
22
23
  name: 'Queued',
23
- value: 7,
24
+ y: 7,
24
25
  },
25
26
  {
26
27
  name: 'In Progress',
27
- value: 6,
28
+ y: 6,
28
29
  },
29
30
  {
30
31
  name: 'Validation',
31
- value: 3,
32
+ y: 3,
32
33
  },
33
34
  {
34
35
  name: 'Done',
35
- value: 6,
36
+ y: 6,
36
37
  },
37
38
  ]
38
39
 
39
40
  const dataThird = [
40
41
  {
41
42
  name: '1 Point Tickets',
42
- value: 2,
43
+ y: 2,
43
44
  },
44
45
  {
45
46
  name: '3 Point Tickets',
46
- value: 5,
47
+ y: 5,
47
48
  },
48
49
  {
49
50
  name: '5 Point Tickets',
50
- value: 6,
51
+ y: 6,
51
52
  },
52
53
  {
53
54
  name: '8 Point Tickets',
54
- value: 3,
55
+ y: 3,
55
56
  },
56
57
  {
57
58
  name: '13 Point Tickets',
58
- value: 1,
59
+ y: 1,
59
60
  },
60
61
  ]
62
+
61
63
  const dataFourth = [
62
64
  {
63
65
  name: 'Facebook',
64
- value: 2498,
66
+ y: 2498,
65
67
  },
66
68
  {
67
69
  name: 'YouTube',
68
- value: 2000,
70
+ y: 2000,
69
71
  },
70
72
  {
71
73
  name: 'WhatsApp',
72
- value: 2000,
74
+ y: 2000,
73
75
  },
74
76
  {
75
77
  name: 'Facebook Messenger',
76
- value: 1300,
78
+ y: 1300,
77
79
  },
78
80
  {
79
81
  name: 'WeChat',
80
- value: 1165,
82
+ y: 1165,
81
83
  },
82
84
  {
83
85
  name: 'Instagram',
84
- value: 1000,
86
+ y: 1000,
85
87
  },
86
88
  {
87
89
  name: 'Tik Tok',
88
- value: 800,
90
+ y: 800,
89
91
  },
90
92
  ]
91
93
 
92
- const CircleChartInnerSizes = (props) => (
93
- <div>
94
- <CircleChart
95
- chartData={dataFirst}
96
- id="with-innersize-sm"
97
- innerSize="sm"
98
- {...props}
99
- />
100
- <CircleChart
101
- chartData={dataSecond}
102
- id="with-innersize-md"
103
- innerSize="md"
104
- {...props}
105
- />
106
- <CircleChart
107
- chartData={dataThird}
108
- id="with-innersize-lg"
109
- innerSize="lg"
110
- {...props}
111
- />
112
- <CircleChart
113
- chartData={dataFourth}
114
- className="poop"
115
- id="with-innersize-none "
116
- innerSize="none"
117
- {...props}
118
- />
119
- </div>
120
- )
94
+ const CircleChartInnerSizes = () => {
95
+ const chartOptionsSmall = {
96
+ series: [{
97
+ data: dataFirst,
98
+ innerSize: '35%'
99
+ }],
100
+ }
101
+
102
+ const chartOptionsMedium = {
103
+ series: [{
104
+ data: dataSecond,
105
+ innerSize: '50%'
106
+ }],
107
+ }
108
+
109
+ const chartOptionsLarge = {
110
+ series: [{
111
+ data: dataThird,
112
+ innerSize: '85%'
113
+ }],
114
+ }
115
+
116
+ const chartOptionsNone = {
117
+ series: [{
118
+ data: dataFourth,
119
+ innerSize: '0%'
120
+ }],
121
+ }
122
+
123
+ const optionsSmall = Highcharts.merge({}, circleChartTheme, chartOptionsSmall)
124
+ const optionsMedium = Highcharts.merge({}, circleChartTheme, chartOptionsMedium)
125
+ const optionsLarge = Highcharts.merge({}, circleChartTheme, chartOptionsLarge)
126
+ const optionsNone = Highcharts.merge({}, circleChartTheme, chartOptionsNone)
127
+
128
+ return (
129
+ <div>
130
+ <HighchartsReact
131
+ highcharts={Highcharts}
132
+ options={optionsSmall}
133
+ />
134
+ <HighchartsReact
135
+ highcharts={Highcharts}
136
+ options={optionsMedium}
137
+ />
138
+ <HighchartsReact
139
+ highcharts={Highcharts}
140
+ options={optionsLarge}
141
+ />
142
+ <div className="poop">
143
+ <HighchartsReact
144
+ highcharts={Highcharts}
145
+ options={optionsNone}
146
+ />
147
+ </div>
148
+ </div>
149
+ )
150
+ }
121
151
 
122
- export default CircleChartInnerSizes
152
+ export default CircleChartInnerSizes
@@ -1,114 +1,142 @@
1
1
  import React from 'react'
2
-
3
- import CircleChart from '../_circle_chart'
4
-
2
+ import circleChartTheme from '../circleChartTheme'
3
+ import Highcharts from "highcharts"
4
+ import HighchartsReact from "highcharts-react-official"
5
5
  import Title from '../../pb_title/_title'
6
6
 
7
- const data = [
7
+ const dataFirst = [
8
8
  {
9
9
  name: 'Waiting for Calls',
10
- value: 41,
10
+ y: 41,
11
11
  },
12
12
  {
13
13
  name: 'On Call',
14
- value: 49,
14
+ y: 49,
15
15
  },
16
16
  {
17
17
  name: 'After Call',
18
- value: 10,
18
+ y: 10,
19
19
  },
20
20
  ]
21
21
 
22
- const dataFirst = [{
22
+ const dataSecond = [{
23
23
  name: 'Bugs',
24
- value: 8,
25
-
24
+ y: 8,
26
25
  },
27
26
  {
28
27
  name: 'Chores',
29
- value: 1,
30
-
28
+ y: 1,
31
29
  },
32
30
  {
33
31
  name: 'Stories',
34
- value: 12,
35
- },
36
- ]
32
+ y: 12,
33
+ }]
37
34
 
38
- const dataSecond = [
35
+ const dataThird = [
39
36
  {
40
37
  name: 'Queued',
41
- value: 7,
38
+ y: 7,
42
39
  },
43
40
  {
44
41
  name: 'In Progress',
45
- value: 6,
42
+ y: 6,
46
43
  },
47
44
  {
48
45
  name: 'Validation',
49
- value: 3,
46
+ y: 3,
50
47
  },
51
48
  {
52
49
  name: 'Done',
53
- value: 6,
50
+ y: 6,
54
51
  },
55
52
  ]
56
53
 
54
+ const CircleChartLegendPosition = (props) => {
55
+ const chartOptionsFirst = {
56
+ title: { text: "Alignment of Legend" },
57
+ series: [{ data: dataFirst }],
58
+ legend: {
59
+ align: 'right',
60
+ verticalAlign: 'top'
61
+ },
62
+ plotOptions: {
63
+ pie: {
64
+ showInLegend: true
65
+ }
66
+ }
67
+ }
68
+
69
+ const chartOptionsSecond = {
70
+ title: { text: "Layout of Legend" },
71
+ series: [{ data: dataSecond }],
72
+ legend: {
73
+ layout: 'vertical'
74
+ },
75
+ plotOptions: {
76
+ pie: {
77
+ showInLegend: true
78
+ }
79
+ }
80
+ }
81
+
82
+ const chartOptionsThird = {
83
+ title: { text: "Offset of Legend" },
84
+ series: [{ data: dataThird }],
85
+ legend: {
86
+ layout: 'vertical',
87
+ x: 100,
88
+ y: 10
89
+ },
90
+ plotOptions: {
91
+ pie: {
92
+ showInLegend: true
93
+ }
94
+ }
95
+ }
96
+
97
+ const optionsFirst = Highcharts.merge({}, circleChartTheme, chartOptionsFirst)
98
+ const optionsSecond = Highcharts.merge({}, circleChartTheme, chartOptionsSecond)
99
+ const optionsThird = Highcharts.merge({}, circleChartTheme, chartOptionsThird)
57
100
 
58
- const CircleChartLegendPosition = (props) => (
59
- <div>
60
- <Title
61
- paddingBottom="sm"
62
- paddingTop="sm"
63
- size={4}
64
- tag="h4"
65
- text="align | verticalAlign"
66
- />
67
- <CircleChart
68
- align='right'
69
- chartData={data}
70
- id="legend-position-circle"
71
- legend
72
- paddingBottom="sm"
73
- title="Alignment of Legend"
74
- verticalAlign="top"
75
- {...props}
76
- />
77
- <Title
78
- paddingBottom="sm"
79
- paddingTop="sm"
80
- size={4}
81
- tag="h4"
82
- text="layout"
83
- />
84
- <CircleChart
85
- chartData={dataFirst}
86
- id="legend-position-circle-1"
87
- layout="vertical"
88
- legend
89
- paddingBottom="sm"
90
- paddingTop="sm"
91
- title="Layout of Legend"
92
- {...props}
93
- />
94
- <Title
95
- paddingBottom="sm"
96
- paddingTop="sm"
97
- size={4}
98
- tag="h4"
99
- text="x | y"
100
- />
101
- <CircleChart
102
- chartData={dataSecond}
103
- id="legend-position-circle-2"
104
- layout="vertical"
105
- legend
106
- title="Offset of Legend"
107
- x={100}
108
- y={10}
109
- {...props}
110
- />
111
- </div>
112
- )
101
+ return (
102
+ <div>
103
+ <Title
104
+ paddingY="sm"
105
+ size={4}
106
+ tag="h4"
107
+ text="align | verticalAlign"
108
+ {...props}
109
+ />
110
+ <HighchartsReact
111
+ highcharts={Highcharts}
112
+ options={optionsFirst}
113
+ />
114
+
115
+ <Title
116
+ paddingY="sm"
117
+ size={4}
118
+ tag="h4"
119
+ text="layout"
120
+ {...props}
121
+ />
122
+ <HighchartsReact
123
+ highcharts={Highcharts}
124
+ options={optionsSecond}
125
+ />
126
+
127
+ <Title
128
+ paddingY="sm"
129
+ size={4}
130
+ tag="h4"
131
+ text="x | y"
132
+ {...props}
133
+ />
134
+ <HighchartsReact
135
+ highcharts={Highcharts}
136
+ options={optionsThird}
137
+ />
138
+ </div>
139
+ )
140
+ }
113
141
 
114
142
  export default CircleChartLegendPosition
@@ -6,12 +6,9 @@
6
6
  `x` **Type**: Number (defaults to 0)
7
7
  `y` **Type**: Number (defaults to 0)
8
8
 
9
- -
10
-
11
- - `layout` determines the position of the legend items
9
+ `layout` determines the position of the legend items
12
10
  `layout: proximate` will place the legend items as close as possible to the graphs they're representing. It will also determine whether to place the legend above/below or on the side of the plot area, if the legend is in a corner.
13
11
 
14
- - `x` offsets the legend relative to its horizontal alignmnet. Negative x moves it to the left, positive x moves it to the right
15
-
12
+ `x` offsets the legend relative to its horizontal alignment. Negative x moves it to the left, positive x moves it to the right
16
13
 
17
- - `y` offsets the legend relative to its vertical alignmnet. Negative y moves it up, positive y moves it down.
14
+ `y` offsets the legend relative to its vertical alignment. Negative y moves it up, positive y moves it down.