playbook_ui 14.23.0.pre.alpha.highchartstest9121 → 14.23.0.pre.rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/Components/SubRowHeaderRow.tsx +11 -32
  3. data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableState.ts +2 -2
  4. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +0 -5
  5. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +0 -6
  6. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.html.erb +1 -1
  7. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.rb +0 -2
  8. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +6 -11
  9. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +0 -2
  10. data/app/pb_kits/playbook/pb_advanced_table/table_body.rb +1 -3
  11. data/app/pb_kits/playbook/pb_advanced_table/table_header.html.erb +1 -5
  12. data/app/pb_kits/playbook/pb_advanced_table/table_header.rb +0 -36
  13. data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +2 -11
  14. data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +0 -2
  15. data/app/pb_kits/playbook/pb_badge/_badge.scss +6 -5
  16. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_colors.jsx +15 -33
  17. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_custom.jsx +72 -0
  18. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_custom.md +6 -0
  19. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_default.jsx +15 -33
  20. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_height.jsx +22 -52
  21. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_horizontal.jsx +16 -12
  22. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend.jsx +15 -31
  23. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_non_clickable.jsx +16 -39
  24. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_position.jsx +38 -86
  25. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_position.md +1 -1
  26. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_negative_numbers.jsx +15 -32
  27. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.jsx +64 -0
  28. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.md +1 -0
  29. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_secondary_y_axis.jsx +22 -72
  30. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_secondary_y_axis.md +1 -1
  31. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_spline.jsx +15 -31
  32. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_stacked.jsx +16 -37
  33. data/app/pb_kits/playbook/pb_bar_graph/docs/_description.md +3 -1
  34. data/app/pb_kits/playbook/pb_bar_graph/docs/example.yml +3 -1
  35. data/app/pb_kits/playbook/pb_bar_graph/docs/index.js +2 -0
  36. data/app/pb_kits/playbook/pb_body/docs/_body_truncate.jsx +3 -3
  37. data/app/pb_kits/playbook/pb_circle_chart/circleChartTheme.ts +1 -36
  38. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_block.jsx +26 -71
  39. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors.jsx +16 -29
  40. data/app/pb_kits/playbook/pb_circle_chart/docs/{_circle_chart_colors_rails.md → _circle_chart_colors.md} +1 -1
  41. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_custom_tooltip.jsx +16 -28
  42. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_custom_tooltip.md +2 -4
  43. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_default.jsx +15 -23
  44. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_inner_sizes.jsx +51 -81
  45. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.jsx +75 -103
  46. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.md +7 -4
  47. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_live_data.jsx +13 -19
  48. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_pb_styles.jsx +38 -0
  49. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_pb_styles.md +1 -0
  50. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_rounded.jsx +17 -30
  51. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_labels.jsx +20 -34
  52. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_legend_kit.jsx +20 -29
  53. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_title.jsx +20 -28
  54. data/app/pb_kits/playbook/pb_circle_chart/docs/example.yml +1 -0
  55. data/app/pb_kits/playbook/pb_circle_chart/docs/index.js +1 -0
  56. data/app/pb_kits/playbook/pb_draggable/context/index.tsx +4 -12
  57. data/app/pb_kits/playbook/pb_draggable/context/types.ts +2 -5
  58. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_colors.jsx +15 -32
  59. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_complex.jsx +9 -35
  60. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_default.jsx +14 -26
  61. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_disable_animation.jsx +15 -32
  62. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_full_circle.jsx +17 -45
  63. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_height.jsx +22 -59
  64. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_live_data.jsx +9 -40
  65. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_min_max.jsx +18 -50
  66. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_pb_styles.jsx +30 -0
  67. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_pb_styles.md +1 -0
  68. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_sizing.jsx +18 -31
  69. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_title.jsx +17 -34
  70. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_units.jsx +23 -64
  71. data/app/pb_kits/playbook/pb_gauge/docs/example.yml +1 -0
  72. data/app/pb_kits/playbook/pb_gauge/docs/index.js +1 -0
  73. data/app/pb_kits/playbook/pb_gauge/gaugeTheme.ts +1 -7
  74. data/app/pb_kits/playbook/pb_line_graph/docs/_description.md +3 -1
  75. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_colors.jsx +17 -36
  76. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_default.jsx +16 -31
  77. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_height.jsx +31 -63
  78. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend.jsx +16 -35
  79. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_nonclickable.jsx +16 -41
  80. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_position.jsx +62 -107
  81. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_position.md +7 -4
  82. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_pb_styles.jsx +52 -0
  83. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_pb_styles.md +1 -0
  84. data/app/pb_kits/playbook/pb_line_graph/docs/example.yml +1 -0
  85. data/app/pb_kits/playbook/pb_line_graph/docs/index.js +1 -0
  86. data/app/pb_kits/playbook/pb_line_graph/lineGraphTheme.ts +1 -16
  87. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +17 -30
  88. data/app/pb_kits/playbook/pb_phone_number_input/docs/example.yml +0 -2
  89. data/app/pb_kits/playbook/pb_phone_number_input/docs/index.js +0 -1
  90. data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.rb +0 -3
  91. data/app/pb_kits/playbook/pb_title/docs/_title_truncate.jsx +3 -3
  92. data/app/pb_kits/playbook/pb_tooltip/docs/example.yml +0 -1
  93. data/app/pb_kits/playbook/pb_tooltip/index.js +36 -59
  94. data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +2 -9
  95. data/dist/chunks/_typeahead-B7FRYVtS.js +22 -0
  96. data/dist/chunks/_weekday_stacked-BNSy7Mo2.js +45 -0
  97. data/dist/chunks/lib-Carqm8Ip.js +29 -0
  98. data/dist/chunks/{pb_form_validation-kl-4Jv4t.js → pb_form_validation-DqRmTS8m.js} +1 -1
  99. data/dist/chunks/vendor.js +1 -1
  100. data/dist/menu.yml +8 -68
  101. data/dist/playbook-doc.js +2 -2
  102. data/dist/playbook-rails-react-bindings.js +1 -1
  103. data/dist/playbook-rails.js +1 -1
  104. data/dist/playbook.css +1 -1
  105. data/lib/playbook/version.rb +2 -2
  106. metadata +24 -40
  107. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_custom_sort.jsx +0 -65
  108. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_custom_sort.md +0 -5
  109. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling.html.erb +0 -46
  110. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling_rails.md +0 -7
  111. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_with_custom_header.jsx +0 -69
  112. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_with_custom_header.md +0 -1
  113. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_with_custom_header_rails.html.erb +0 -51
  114. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_with_custom_header_rails.md +0 -1
  115. data/app/pb_kits/playbook/pb_bar_graph/barGraphTheme.ts +0 -106
  116. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_height.md +0 -3
  117. data/app/pb_kits/playbook/pb_body/docs/_body_truncate_react.md +0 -4
  118. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors_react.md +0 -2
  119. data/app/pb_kits/playbook/pb_circle_chart/docs/_description.md +0 -1
  120. data/app/pb_kits/playbook/pb_gauge/docs/_description.md +0 -1
  121. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_colors_react.md +0 -2
  122. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_complex_react.md +0 -1
  123. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_units_react.md +0 -1
  124. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_colors_react.md +0 -3
  125. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_height.md +0 -3
  126. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_strict_mode.html.erb +0 -10
  127. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_strict_mode.jsx +0 -26
  128. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_strict_mode.md +0 -3
  129. data/app/pb_kits/playbook/pb_title/docs/_title_truncate_react.md +0 -4
  130. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_click_open.html.erb +0 -14
  131. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_click_open_rails.md +0 -1
  132. data/dist/chunks/_line_graph-BfCo79KE.js +0 -1
  133. data/dist/chunks/_typeahead-Db4YQA5c.js +0 -6
  134. data/dist/chunks/_weekday_stacked-DhFTG-Jt.js +0 -61
  135. data/dist/chunks/lib-DnQyMxO1.js +0 -29
  136. /data/app/pb_kits/playbook/pb_advanced_table/docs/{_advanced_table_row_styling_react.md → _advanced_table_row_styling.md} +0 -0
  137. /data/app/pb_kits/playbook/pb_body/docs/{_body_truncate_rails.md → _body_truncate.md} +0 -0
  138. /data/app/pb_kits/playbook/pb_gauge/docs/{_gauge_colors_rails.md → _gauge_colors.md} +0 -0
  139. /data/app/pb_kits/playbook/pb_gauge/docs/{_gauge_complex_rails.md → _gauge_complex.md} +0 -0
  140. /data/app/pb_kits/playbook/pb_line_graph/docs/{_line_graph_colors_rails.md → _line_graph_colors.md} +0 -0
  141. /data/app/pb_kits/playbook/pb_title/docs/{_title_truncate_rails.md → _title_truncate.md} +0 -0
  142. /data/app/pb_kits/playbook/pb_tooltip/docs/{_tooltip_click_open_react.md → _tooltip_click_open.md} +0 -0
@@ -1,62 +1,25 @@
1
1
  import React from 'react'
2
- import gaugeTheme from '../gaugeTheme'
3
- import Highcharts from "highcharts"
4
- import HighchartsReact from "highcharts-react-official"
5
- import HighchartsMore from "highcharts/highcharts-more"
6
- import SolidGauge from "highcharts/modules/solid-gauge"
7
- import colors from '../../tokens/exports/_colors.module.scss'
8
- import typography from '../../tokens/exports/_typography.module.scss'
2
+ import Gauge from '../../pb_gauge/_gauge'
9
3
 
10
- HighchartsMore(Highcharts);
11
- SolidGauge(Highcharts);
4
+ const GaugeHeight = (props) => (
5
+ <div>
6
+ <Gauge
7
+ chartData={[ { name: 'Pixels', value: 400 } ]}
8
+ height="400"
9
+ id="gauge-height-px"
10
+ suffix="px"
11
+ title="Fixed Height in Pixels"
12
+ {...props}
13
+ />
14
+ <Gauge
15
+ chartData={[ { name: 'Percentage', value: 45 } ]}
16
+ height="45%"
17
+ id="gauge-height-percent"
18
+ suffix="%"
19
+ title="Height as Percentage of Width"
20
+ {...props}
21
+ />
22
+ </div>
23
+ )
12
24
 
13
- const GaugeHeight = () => {
14
- return (
15
- <div>
16
- <HighchartsReact
17
- highcharts={Highcharts}
18
- options={Highcharts.merge({}, gaugeTheme, {
19
- title: {
20
- text: "Fixed Height in Pixels",
21
- },
22
- chart: {
23
- height: "400",
24
- },
25
- series: [{ data: [{ name: "Pixels", y: 400 }] }],
26
- plotOptions: {
27
- solidgauge: {
28
- dataLabels: {
29
- format:
30
- `<span class="fix">{y:,f}</span>` +
31
- `<span style="fill: ${colors.text_lt_light}; font-size: ${typography.text_larger};">px</span>`,
32
- },
33
- },
34
- },
35
- })}
36
- />
37
- <HighchartsReact
38
- highcharts={Highcharts}
39
- options={Highcharts.merge({}, gaugeTheme, {
40
- title: {
41
- text: "Height as Percentage of Width",
42
- },
43
- chart: {
44
- height: "45%",
45
- },
46
- series: [{ data: [{ name: "Percentage", y: 45 }] }],
47
- plotOptions: {
48
- solidgauge: {
49
- dataLabels: {
50
- format:
51
- `<span class="fix">{y:,f}</span>` +
52
- `<span style="fill: ${colors.text_lt_light}; font-size: ${typography.text_larger};">%</span>`,
53
- },
54
- },
55
- },
56
- })}
57
- />
58
- </div>
59
- );
60
- };
61
-
62
- export default GaugeHeight;
25
+ export default GaugeHeight
@@ -1,31 +1,15 @@
1
- import React, { useState, useRef } from 'react'
2
- import Button from '../../pb_button/_button'
3
- import gaugeTheme from '../gaugeTheme'
4
- import Highcharts from "highcharts"
5
- import HighchartsReact from "highcharts-react-official"
6
- import HighchartsMore from "highcharts/highcharts-more"
7
- import SolidGauge from "highcharts/modules/solid-gauge"
1
+ import React, { useState } from 'react'
8
2
 
9
- HighchartsMore(Highcharts);
10
- SolidGauge(Highcharts);
3
+ import Button from '../../pb_button/_button'
4
+ import Gauge from '../../pb_gauge/_gauge'
11
5
 
12
6
  const GaugeLiveData = (props) => {
13
7
  const [value, setValue] = useState(50)
14
8
  const [name, setName] = useState('Name')
15
- const chartRef = useRef(null)
16
-
17
- const namesArray = ['Name', 'Windows', 'Doors', 'Roofing', 'Siding', 'Gutters']
18
9
 
19
10
  const updateValue = () => {
20
- const newValue = Math.floor(Math.random() * 100)
21
- setValue(newValue)
22
-
23
- const chart = chartRef.current?.chart
24
- if (chart) {
25
- chart.series[0].points[0].update(newValue)
26
- }
11
+ setValue(Math.floor(Math.random() * 100))
27
12
  }
28
-
29
13
  const updateName = () => {
30
14
  let index = namesArray.indexOf(name)
31
15
  if (namesArray.indexOf(name) == 5) {
@@ -34,23 +18,8 @@ const GaugeLiveData = (props) => {
34
18
  index += 1
35
19
  }
36
20
  setName(namesArray[index])
37
-
38
- const chart = chartRef.current?.chart
39
- if (chart) {
40
- chart.series[0].points[0].update({ name: namesArray[index] })
41
- }
42
21
  }
43
-
44
- const options = Highcharts.merge({}, gaugeTheme,
45
- {
46
- title: {
47
- text: name,
48
- },
49
- series: [{
50
- data: [{ name: name, y: value }]
51
- }]
52
- }
53
- )
22
+ const namesArray = ['Name', 'Windows', 'Doors', 'Roofing', 'Siding', 'Gutters']
54
23
 
55
24
  return (
56
25
  <div>
@@ -64,10 +33,10 @@ const GaugeLiveData = (props) => {
64
33
  text="Update Name"
65
34
  {...props}
66
35
  />
67
- <HighchartsReact
68
- highcharts={Highcharts}
69
- options={options}
70
- ref={chartRef}
36
+ <Gauge
37
+ chartData={[{ name: name, value: value }]}
38
+ id="gauge-live-data"
39
+ {...props}
71
40
  />
72
41
  </div>
73
42
  )
@@ -1,54 +1,22 @@
1
1
  import React from 'react'
2
- import gaugeTheme from '../gaugeTheme'
3
- import Highcharts from "highcharts"
4
- import HighchartsReact from "highcharts-react-official"
5
- import HighchartsMore from "highcharts/highcharts-more"
6
- import SolidGauge from "highcharts/modules/solid-gauge"
7
- import colors from '../../tokens/exports/_colors.module.scss'
8
- import typography from '../../tokens/exports/_typography.module.scss'
2
+ import Gauge from '../../pb_gauge/_gauge'
9
3
 
10
- HighchartsMore(Highcharts);
11
- SolidGauge(Highcharts);
4
+ const data = [{
5
+ name: 'Rating', value: 4.5,
6
+ }]
12
7
 
13
- const data = [{ name: "Rating", y: 4.5 }]
8
+ const GaugeMinMax = (props) => (
9
+ <div>
10
+ <Gauge
11
+ chartData={data}
12
+ id="gauge-min-max"
13
+ max={5}
14
+ min={0}
15
+ showLabels
16
+ title="Product Rating"
17
+ {...props}
18
+ />
19
+ </div>
20
+ )
14
21
 
15
- const baseOptions = {
16
- title: {
17
- text: "Product Rating",
18
- },
19
- yAxis: {
20
- min: 0,
21
- max: 5,
22
- lineWidth: 0,
23
- tickWidth: 0,
24
- minorTickInterval: null,
25
- tickAmount: 2,
26
- tickPositions: [0, 5],
27
- labels: {
28
- y: 26,
29
- enabled: true,
30
- style: {
31
- color: colors.neutral,
32
- fontFamily: typography.font_family_base,
33
- fontWeight: typography.bold,
34
- }
35
- },
36
- },
37
- series: [{ data: data }],
38
- };
39
-
40
- const GaugeMinMax = () => {
41
- const options = Highcharts.merge({}, gaugeTheme, baseOptions);
42
-
43
- return (
44
- <div>
45
- <HighchartsReact
46
- highcharts={Highcharts}
47
- id="gauge-min-max"
48
- options={options}
49
- />
50
- </div>
51
- );
52
- };
53
-
54
- export default GaugeMinMax;
22
+ export default GaugeMinMax
@@ -0,0 +1,30 @@
1
+ import React from 'react'
2
+ import gaugeTheme from '../gaugeTheme'
3
+ import Highcharts from "highcharts"
4
+ import HighchartsReact from "highcharts-react-official"
5
+ import HighchartsMore from "highcharts/highcharts-more"
6
+ import SolidGauge from "highcharts/modules/solid-gauge"
7
+
8
+ HighchartsMore(Highcharts);
9
+ SolidGauge(Highcharts);
10
+
11
+ const data = [{ name: "Name", y: 45 }]
12
+
13
+ const baseOptions = {
14
+ series: [{ data: data }],
15
+ };
16
+
17
+ const GaugePbStyles = () => {
18
+ const options = Highcharts.merge({}, gaugeTheme, baseOptions);
19
+
20
+ return (
21
+ <div>
22
+ <HighchartsReact
23
+ highcharts={Highcharts}
24
+ options={options}
25
+ />
26
+ </div>
27
+ );
28
+ };
29
+
30
+ export default GaugePbStyles;
@@ -0,0 +1 @@
1
+ You don't need to use the Gauge Kit to apply Playbook styles to your Highcharts gauge chart. Just import gaugeTheme.ts and merge it with your chart options—Playbook’s styling will apply automatically.
@@ -2,14 +2,7 @@ import React from 'react'
2
2
 
3
3
  import Flex from '../../pb_flex/_flex'
4
4
  import FlexItem from '../../pb_flex/_flex_item'
5
- import gaugeTheme from '../gaugeTheme'
6
- import Highcharts from "highcharts"
7
- import HighchartsReact from "highcharts-react-official"
8
- import HighchartsMore from "highcharts/highcharts-more"
9
- import SolidGauge from "highcharts/modules/solid-gauge"
10
-
11
- HighchartsMore(Highcharts);
12
- SolidGauge(Highcharts);
5
+ import Gauge from '../../pb_gauge/_gauge'
13
6
 
14
7
  const GaugeSizing = (props) => (
15
8
  <div>
@@ -24,11 +17,10 @@ const GaugeSizing = (props) => (
24
17
  shrink
25
18
  {...props}
26
19
  >
27
- <HighchartsReact
28
- highcharts={Highcharts}
29
- options={Highcharts.merge({}, gaugeTheme, {
30
- series: [{ data: [{ name: "Point 1", y: 100 }] }],
31
- })}
20
+ <Gauge
21
+ chartData={[ { name: 'Point 1', value: 100 } ]}
22
+ id="gauge-sizing4"
23
+ {...props}
32
24
  />
33
25
  </FlexItem>
34
26
  <FlexItem
@@ -37,11 +29,10 @@ const GaugeSizing = (props) => (
37
29
  shrink
38
30
  {...props}
39
31
  >
40
- <HighchartsReact
41
- highcharts={Highcharts}
42
- options={Highcharts.merge({}, gaugeTheme, {
43
- series: [{ data: [{ name: "Point 2", y: 75 }] }],
44
- })}
32
+ <Gauge
33
+ chartData={[ { name: 'Point 2', value: 75 } ]}
34
+ id="gauge-sizing3"
35
+ {...props}
45
36
  />
46
37
  </FlexItem>
47
38
  <FlexItem
@@ -50,11 +41,10 @@ const GaugeSizing = (props) => (
50
41
  shrink
51
42
  {...props}
52
43
  >
53
- <HighchartsReact
54
- highcharts={Highcharts}
55
- options={Highcharts.merge({}, gaugeTheme, {
56
- series: [{ data: [{ name: "Point 3", y: 50 }] }],
57
- })}
44
+ <Gauge
45
+ chartData={[ { name: 'Point 3', value: 50 } ]}
46
+ id="gauge-sizing2"
47
+ {...props}
58
48
  />
59
49
  </FlexItem>
60
50
  <FlexItem
@@ -63,14 +53,11 @@ const GaugeSizing = (props) => (
63
53
  shrink
64
54
  {...props}
65
55
  >
66
- <HighchartsReact
67
- highcharts={Highcharts}
68
- options={Highcharts.merge({}, gaugeTheme, {
69
- chart: {
70
- height: "100%",
71
- },
72
- series: [{ data: [{ name: "Point 4", y: 25 }] }],
73
- })}
56
+ <Gauge
57
+ chartData={[ { name: 'Point 4', value: 25 } ]}
58
+ height="100%"
59
+ id="gauge-sizing1"
60
+ {...props}
74
61
  />
75
62
  </FlexItem>
76
63
  </Flex>
@@ -1,38 +1,21 @@
1
1
  import React from 'react'
2
- import gaugeTheme from '../gaugeTheme'
3
- import Highcharts from "highcharts"
4
- import HighchartsReact from "highcharts-react-official"
5
- import HighchartsMore from "highcharts/highcharts-more"
6
- import SolidGauge from "highcharts/modules/solid-gauge"
2
+ import Gauge from '../../pb_gauge/_gauge'
7
3
 
8
- HighchartsMore(Highcharts);
9
- SolidGauge(Highcharts);
4
+ const data = [
5
+ { name: 'Score', value: 780 },
6
+ ]
10
7
 
11
- const data = [{ name: "Score", y: 780 }]
8
+ const GaugeTitle = (props) => (
9
+ <div>
10
+ <Gauge
11
+ chartData={data}
12
+ id="gauge-title"
13
+ max={850}
14
+ min={300}
15
+ title="Credit Score"
16
+ {...props}
17
+ />
18
+ </div>
19
+ )
12
20
 
13
- const baseOptions = {
14
- title: {
15
- text: "Credit Score",
16
- },
17
- yAxis: {
18
- min: 300,
19
- max: 850,
20
- },
21
- series: [{ data: data }],
22
- };
23
-
24
- const GaugeTitle = () => {
25
- const options = Highcharts.merge({}, gaugeTheme, baseOptions);
26
-
27
- return (
28
- <div>
29
- <HighchartsReact
30
- highcharts={Highcharts}
31
- id="gauge-title"
32
- options={options}
33
- />
34
- </div>
35
- );
36
- };
37
-
38
- export default GaugeTitle;
21
+ export default GaugeTitle
@@ -1,72 +1,31 @@
1
1
  import React from 'react'
2
- import gaugeTheme from '../gaugeTheme'
3
- import Highcharts from "highcharts"
4
- import HighchartsReact from "highcharts-react-official"
5
- import HighchartsMore from "highcharts/highcharts-more"
6
- import SolidGauge from "highcharts/modules/solid-gauge"
7
- import colors from '../../tokens/exports/_colors.module.scss'
8
- import typography from '../../tokens/exports/_typography.module.scss'
9
-
10
- HighchartsMore(Highcharts);
11
- SolidGauge(Highcharts);
2
+ import Gauge from '../../pb_gauge/_gauge'
12
3
 
13
4
  const data1 = [
14
- { name: 'Data Used', y: 32 },
5
+ { name: 'Data Used', value: 32 },
15
6
  ]
16
7
  const data2 = [
17
- { name: 'Sales to Date', y: 65 },
8
+ { name: 'Sales to Date', value: 65 },
18
9
  ]
19
10
 
20
- const baseOptions1 = {
21
- title: {
22
- text: "Data Usage",
23
- },
24
- series: [{ data: data1 }],
25
- plotOptions: {
26
- solidgauge: {
27
- dataLabels: {
28
- format:
29
- `<span class="fix">{y:,f}</span>` +
30
- `<span style="fill: ${colors.text_lt_light}; font-size: ${typography.text_larger};">GB</span>`,
31
- },
32
- },
33
- },
34
- };
35
- const baseOptions2 = {
36
- title: {
37
- text: "Sales Goal",
38
- },
39
- series: [{ data: data2 }],
40
- plotOptions: {
41
- solidgauge: {
42
- dataLabels: {
43
- format:
44
- `<span y="28" style="fill: ${colors.text_lt_light}; font-size: ${typography.text_base};">$</span>` +
45
- `<span class="fix" y="38">{y:,f}</span>` +
46
- `<span style="fill: ${colors.text_lt_light}; font-size: ${typography.text_larger};">k</span>`,
47
- },
48
- },
49
- },
50
- };
51
-
52
- const GaugeUnits = () => {
53
- const options1 = Highcharts.merge({}, gaugeTheme, baseOptions1);
54
- const options2 = Highcharts.merge({}, gaugeTheme, baseOptions2);
55
-
56
- return (
57
- <div>
58
- <HighchartsReact
59
- highcharts={Highcharts}
60
- id="gauge-units1"
61
- options={options1}
62
- />
63
- <HighchartsReact
64
- highcharts={Highcharts}
65
- id="gauge-units2"
66
- options={options2}
67
- />
68
- </div>
69
- );
70
- };
11
+ const GaugeUnits = (props) => (
12
+ <div>
13
+ <Gauge
14
+ chartData={data1}
15
+ id="gauge-units1"
16
+ suffix="GB"
17
+ title="Data Usage"
18
+ {...props}
19
+ />
20
+ <Gauge
21
+ chartData={data2}
22
+ id="gauge-units2"
23
+ prefix="$"
24
+ suffix="k"
25
+ title="Sales Goal"
26
+ {...props}
27
+ />
28
+ </div>
29
+ )
71
30
 
72
- export default GaugeUnits;
31
+ export default GaugeUnits
@@ -15,6 +15,7 @@ examples:
15
15
 
16
16
  react:
17
17
  - gauge_default: Default
18
+ - gauge_pb_styles: Playbook Styles
18
19
  - gauge_disable_animation: Disable Animation
19
20
  - gauge_title: Title
20
21
  - gauge_units: Units
@@ -1,4 +1,5 @@
1
1
  export { default as GaugeDefault } from './_gauge_default.jsx'
2
+ export { default as GaugePbStyles } from './_gauge_pb_styles.jsx'
2
3
  export { default as GaugeDisableAnimation } from './_gauge_disable_animation.jsx'
3
4
  export { default as GaugeFullCircle } from './_gauge_full_circle.jsx'
4
5
  export { default as GaugeHeight } from './_gauge_height.jsx'
@@ -2,13 +2,7 @@ import colors from '../tokens/exports/_colors.module.scss'
2
2
  import typography from '../tokens/exports/_typography.module.scss'
3
3
 
4
4
  const gaugeTheme = {
5
- title: {
6
- text: "",
7
- style: {
8
- fontFamily: typography.font_family_base,
9
- fontSize: typography.text_larger,
10
- },
11
- },
5
+ title: { text: "" },
12
6
  chart: {
13
7
  type: "solidgauge",
14
8
  events: {
@@ -1 +1,3 @@
1
- **Important Note for the React Kit**: In order to leverage this kit, you must install `highcharts` and `highcharts-react-official` into your project as shown below. To then apply Playbook styles to your Highchart, import lineGraphTheme.ts from playbook-ui and merge it with your Highchart options. Then, pass the merged value to the options prop. Playbook’s styling will be applied automatically. See the examples in the documentation below.
1
+ Line graphs are used to show changes in data over time. The default height of line graph is 400px and can be changed. The default height is in pixel units, but can also use percentage string (percentage would be that of the width. For example, `height:"50%"` would mean that the height is 50% of the width). This allows for preserving the aspect ratio across responsive sizes.
2
+
3
+ For more information, see: <a href="https://api.highcharts.com/highcharts/chart.height" target="_blank"> highcharts/chart.height</a>.
@@ -1,8 +1,6 @@
1
1
  import React from 'react'
2
- import lineGraphTheme from '../lineGraphTheme'
3
- import Highcharts from "highcharts"
4
- import HighchartsReact from "highcharts-react-official"
5
- import colors from '../../tokens/exports/_colors.module.scss'
2
+
3
+ import LineGraph from '../_line_graph'
6
4
 
7
5
  const data = [{
8
6
  name: 'Installation',
@@ -21,36 +19,19 @@ const data = [{
21
19
  data: [null, null, null, 3112, 4989, 5816, 15274, 18111],
22
20
  }]
23
21
 
24
- const categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
25
-
26
- const LineGraphColors = () => {
27
- const chartOptions = {
28
- title: {
29
- text: 'Line Graph with Custom Data Colors',
30
- },
31
- xAxis: {
32
- categories: categories,
33
- },
34
- yAxis: {
35
- min: 0,
36
- title: {
37
- text: 'Number of Employees',
38
- },
39
- },
40
- series: data,
41
- colors: [colors.data_4, colors.data_5, "#144075", colors.data_7, colors.data_8]
42
- }
43
-
44
- const options = Highcharts.merge({}, lineGraphTheme, chartOptions)
45
-
46
- return (
47
- <div>
48
- <HighchartsReact
49
- highcharts={Highcharts}
50
- options={options}
51
- />
52
- </div>
53
- )
54
- }
22
+ const LineGraphColors = (props) => (
23
+ <div>
24
+ <LineGraph
25
+ axisTitle="Number of Employees"
26
+ chartData={data}
27
+ colors={['data-4', 'data-5', 'data-6', 'data-7', 'data-8']}
28
+ id="line-colors"
29
+ title="Line Graph with Custom Data Colors"
30
+ xAxisCategories={['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']}
31
+ yAxisMin={0}
32
+ {...props}
33
+ />
34
+ </div>
35
+ )
55
36
 
56
- export default LineGraphColors
37
+ export default LineGraphColors
@@ -1,7 +1,6 @@
1
1
  import React from 'react'
2
- import lineGraphTheme from '../lineGraphTheme'
3
- import Highcharts from "highcharts"
4
- import HighchartsReact from "highcharts-react-official"
2
+
3
+ import LineGraph from '../_line_graph'
5
4
 
6
5
  const data = [{
7
6
  name: 'Installation',
@@ -20,33 +19,19 @@ const data = [{
20
19
  data: [12908, 5948, 8105, 11248, 8989, 11816, 18274, 18111],
21
20
  }]
22
21
 
23
- const categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
24
-
25
- const chartOptions = {
26
- series: data,
27
- title: { text: "Solar Employment Growth by Sector, 2010-2016" },
28
- subtitle: { text: "Source: thesolarfoundation.com" },
29
- xAxis: {
30
- categories: categories,
31
- },
32
- yAxis: {
33
- title: {
34
- text: "Number of Employees",
35
- },
36
- },
37
- }
38
-
39
- const LineGraphDefault = () => {
40
- const options = Highcharts.merge({}, lineGraphTheme, chartOptions)
41
-
42
- return(
43
- <div>
44
- <HighchartsReact
45
- highcharts={Highcharts}
46
- options={options}
47
- />
48
- </div>
49
- )
50
- }
22
+ const LineGraphDefault = (props) => (
23
+ <div>
24
+ <LineGraph
25
+ axisTitle="Number of Employees"
26
+ chartData={data}
27
+ id="line-default"
28
+ subTitle="Source: thesolarfoundation.com"
29
+ title="Solar Employment Growth by Sector, 2010-2016"
30
+ xAxisCategories={['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']}
31
+ yAxisMin={0}
32
+ {...props}
33
+ />
34
+ </div>
35
+ )
51
36
 
52
37
  export default LineGraphDefault