playbook_ui 14.22.0 → 14.23.0.pre.alpha.PLAY2243customindeterminatemaincheckboxlabels9046

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 (126) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/Components/CustomCell.tsx +6 -7
  3. data/app/pb_kits/playbook/pb_advanced_table/Components/SubRowHeaderRow.tsx +32 -11
  4. data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableState.ts +2 -2
  5. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +5 -0
  6. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +6 -0
  7. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_custom_sort.jsx +65 -0
  8. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_custom_sort.md +5 -0
  9. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_with_custom_header.jsx +69 -0
  10. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_with_custom_header.md +1 -0
  11. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +11 -8
  12. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +2 -0
  13. data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +2 -2
  14. data/app/pb_kits/playbook/pb_badge/_badge.scss +5 -6
  15. data/app/pb_kits/playbook/pb_bar_graph/barGraphTheme.ts +106 -0
  16. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_colors.jsx +33 -15
  17. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_default.jsx +33 -15
  18. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_height.jsx +52 -22
  19. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_height.md +3 -0
  20. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_horizontal.jsx +12 -16
  21. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend.jsx +31 -15
  22. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_non_clickable.jsx +39 -16
  23. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_position.jsx +86 -38
  24. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_negative_numbers.jsx +32 -15
  25. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_secondary_y_axis.jsx +72 -22
  26. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_secondary_y_axis.md +1 -1
  27. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_spline.jsx +31 -15
  28. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_stacked.jsx +37 -16
  29. data/app/pb_kits/playbook/pb_bar_graph/docs/_description.md +1 -3
  30. data/app/pb_kits/playbook/pb_bar_graph/docs/example.yml +1 -3
  31. data/app/pb_kits/playbook/pb_bar_graph/docs/index.js +0 -2
  32. data/app/pb_kits/playbook/pb_body/docs/_body_truncate.jsx +3 -3
  33. data/app/pb_kits/playbook/pb_body/docs/_body_truncate_react.md +4 -0
  34. data/app/pb_kits/playbook/pb_checkbox/checkbox.rb +12 -1
  35. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_indeterminate.html.erb +1 -1
  36. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_indeterminate_rails.md +2 -1
  37. data/app/pb_kits/playbook/pb_checkbox/index.js +3 -1
  38. data/app/pb_kits/playbook/pb_circle_chart/circleChartTheme.ts +36 -1
  39. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_block.jsx +71 -26
  40. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors.jsx +29 -16
  41. data/app/pb_kits/playbook/pb_circle_chart/docs/{_circle_chart_colors.md → _circle_chart_colors_rails.md} +1 -1
  42. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors_react.md +2 -0
  43. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_custom_tooltip.jsx +28 -16
  44. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_custom_tooltip.md +4 -2
  45. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_default.jsx +23 -15
  46. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_inner_sizes.jsx +81 -51
  47. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.jsx +103 -75
  48. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.md +3 -6
  49. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_live_data.jsx +19 -13
  50. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_rounded.jsx +30 -17
  51. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_labels.jsx +34 -20
  52. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_legend_kit.jsx +29 -20
  53. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_title.jsx +28 -20
  54. data/app/pb_kits/playbook/pb_circle_chart/docs/_description.md +1 -0
  55. data/app/pb_kits/playbook/pb_circle_chart/docs/example.yml +0 -1
  56. data/app/pb_kits/playbook/pb_circle_chart/docs/index.js +0 -1
  57. data/app/pb_kits/playbook/pb_draggable/context/index.tsx +12 -4
  58. data/app/pb_kits/playbook/pb_draggable/context/types.ts +5 -2
  59. data/app/pb_kits/playbook/pb_gauge/docs/_description.md +1 -0
  60. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_colors.jsx +32 -15
  61. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_colors_react.md +2 -0
  62. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_complex.jsx +35 -9
  63. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_complex_react.md +1 -0
  64. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_default.jsx +26 -14
  65. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_disable_animation.jsx +32 -15
  66. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_full_circle.jsx +45 -17
  67. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_height.jsx +59 -22
  68. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_live_data.jsx +40 -9
  69. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_min_max.jsx +50 -18
  70. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_sizing.jsx +31 -18
  71. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_title.jsx +34 -17
  72. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_units.jsx +64 -23
  73. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_units_react.md +1 -0
  74. data/app/pb_kits/playbook/pb_gauge/docs/example.yml +0 -1
  75. data/app/pb_kits/playbook/pb_gauge/docs/index.js +0 -1
  76. data/app/pb_kits/playbook/pb_gauge/gaugeTheme.ts +7 -1
  77. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +27 -17
  78. data/app/pb_kits/playbook/pb_table/_table.tsx +4 -4
  79. data/app/pb_kits/playbook/pb_table/docs/_table_sticky_columns.jsx +8 -8
  80. data/app/pb_kits/playbook/pb_table/docs/_table_sticky_columns_react.md +1 -1
  81. data/app/pb_kits/playbook/pb_table/docs/_table_sticky_left_columns.jsx +12 -12
  82. data/app/pb_kits/playbook/pb_table/docs/_table_sticky_left_columns_react.md +3 -3
  83. data/app/pb_kits/playbook/pb_table/docs/_table_sticky_right_columns.jsx +12 -12
  84. data/app/pb_kits/playbook/pb_table/docs/_table_sticky_right_columns_react.md +3 -3
  85. data/app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.html.erb +1 -0
  86. data/app/pb_kits/playbook/pb_title/docs/_title_truncate.jsx +3 -3
  87. data/app/pb_kits/playbook/pb_title/docs/_title_truncate_react.md +4 -0
  88. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_click_open.html.erb +14 -0
  89. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_click_open_rails.md +1 -0
  90. data/app/pb_kits/playbook/pb_tooltip/docs/example.yml +1 -0
  91. data/app/pb_kits/playbook/pb_tooltip/index.js +59 -36
  92. data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +9 -2
  93. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_preserve_input.html.erb +18 -0
  94. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_preserve_input_rails.md +1 -0
  95. data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +1 -0
  96. data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +3 -0
  97. data/dist/chunks/_gauge-BUpiCaK5.js +1 -0
  98. data/dist/chunks/_typeahead-ITbXBlyi.js +6 -0
  99. data/dist/chunks/_weekday_stacked-BIEMUAn8.js +61 -0
  100. data/dist/chunks/lib-AStGp3dD.js +29 -0
  101. data/dist/chunks/{pb_form_validation-Dx1C9XCK.js → pb_form_validation-DF742j1h.js} +1 -1
  102. data/dist/chunks/vendor.js +1 -1
  103. data/dist/menu.yml +68 -8
  104. data/dist/playbook-doc.js +2 -2
  105. data/dist/playbook-rails-react-bindings.js +1 -1
  106. data/dist/playbook-rails.js +1 -1
  107. data/dist/playbook.css +1 -1
  108. data/lib/playbook/version.rb +2 -2
  109. metadata +32 -21
  110. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_custom.jsx +0 -72
  111. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_custom.md +0 -6
  112. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.jsx +0 -64
  113. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.md +0 -1
  114. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_pb_styles.jsx +0 -38
  115. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_pb_styles.md +0 -1
  116. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_pb_styles.jsx +0 -30
  117. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_pb_styles.md +0 -1
  118. data/dist/chunks/_typeahead-dOC1gq2X.js +0 -22
  119. data/dist/chunks/_weekday_stacked-Bh8iY5uA.js +0 -45
  120. data/dist/chunks/lib-DtCftrUN.js +0 -29
  121. /data/app/pb_kits/playbook/pb_body/docs/{_body_truncate.md → _body_truncate_rails.md} +0 -0
  122. /data/app/pb_kits/playbook/pb_gauge/docs/{_gauge_colors.md → _gauge_colors_rails.md} +0 -0
  123. /data/app/pb_kits/playbook/pb_gauge/docs/{_gauge_complex.md → _gauge_complex_rails.md} +0 -0
  124. /data/app/pb_kits/playbook/pb_title/docs/{_title_truncate.md → _title_truncate_rails.md} +0 -0
  125. /data/app/pb_kits/playbook/pb_tooltip/docs/{_tooltip_click_open.md → _tooltip_click_open_react.md} +0 -0
  126. /data/app/pb_kits/playbook/pb_typeahead/docs/{_typeahead_preserve_input.md → _typeahead_preserve_input_react.md} +0 -0
@@ -1,32 +1,41 @@
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 dataWithLegend = [{
6
7
  name: 'Bugs',
7
- value: 8,
8
-
8
+ y: 8,
9
9
  },
10
10
  {
11
11
  name: 'Chores',
12
- value: 1,
13
-
12
+ y: 1,
14
13
  },
15
14
  {
16
15
  name: 'Stories',
17
- value: 12,
18
- },
19
- ]
16
+ y: 12,
17
+ }]
18
+
19
+ const CircleChartWithLegendKit = () => {
20
+ const chartOptions = {
21
+ series: [{ data: dataWithLegend }],
22
+ plotOptions: {
23
+ pie: {
24
+ showInLegend: true
25
+ }
26
+ }
27
+ }
28
+
29
+ const options = Highcharts.merge({}, circleChartTheme, chartOptions)
20
30
 
21
- const CircleChartWithLegendKit = (props) => (
22
- <div>
23
- <CircleChart
24
- chartData={dataWithLegend}
25
- id="with-legend-example"
26
- legend
27
- {...props}
28
- />
29
- </div>
30
- )
31
+ return (
32
+ <div>
33
+ <HighchartsReact
34
+ highcharts={Highcharts}
35
+ options={options}
36
+ />
37
+ </div>
38
+ )
39
+ }
31
40
 
32
- export default CircleChartWithLegendKit
41
+ export default CircleChartWithLegendKit
@@ -1,47 +1,55 @@
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 dataWithTitle = [
6
7
  {
7
8
  name: 'Facebook',
8
- value: 2498,
9
+ y: 2498,
9
10
  },
10
11
  {
11
12
  name: 'YouTube',
12
- value: 2000,
13
+ y: 2000,
13
14
  },
14
15
  {
15
16
  name: 'WhatsApp',
16
- value: 2000,
17
+ y: 2000,
17
18
  },
18
19
  {
19
20
  name: 'Facebook Messenger',
20
- value: 1300,
21
+ y: 1300,
21
22
  },
22
23
  {
23
24
  name: 'WeChat',
24
- value: 1165,
25
+ y: 1165,
25
26
  },
26
27
  {
27
28
  name: 'Instagram',
28
- value: 1000,
29
+ y: 1000,
29
30
  },
30
31
  {
31
32
  name: 'Tik Tok',
32
- value: 800,
33
+ y: 800,
33
34
  },
34
35
  ]
35
36
 
36
- const CircleChartWithLegendKit = (props) => (
37
- <div>
38
- <CircleChart
39
- chartData={dataWithTitle}
40
- id="with-title-example"
41
- title="Active Users on Social Media"
42
- {...props}
43
- />
44
- </div>
45
- )
37
+ const CircleChartWithTitle = () => {
38
+ const chartOptions = {
39
+ title: { text: "Active Users on Social Media" },
40
+ series: [{ data: dataWithTitle }],
41
+ }
42
+
43
+ const options = Highcharts.merge({}, circleChartTheme, chartOptions)
44
+
45
+ return (
46
+ <div>
47
+ <HighchartsReact
48
+ highcharts={Highcharts}
49
+ options={options}
50
+ />
51
+ </div>
52
+ )
53
+ }
46
54
 
47
- export default CircleChartWithLegendKit
55
+ export default CircleChartWithTitle
@@ -0,0 +1 @@
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 circleChartTheme.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.
@@ -14,7 +14,6 @@ examples:
14
14
 
15
15
  react:
16
16
  - circle_chart_default: Default Style
17
- - circle_chart_pb_styles: Playbook Styles
18
17
  - circle_chart_live_data: Live Data
19
18
  - circle_chart_rounded: Rounded Corners
20
19
  - circle_chart_block: Accepts Any Block
@@ -9,4 +9,3 @@ export { default as CircleChartLegendPosition } from './_circle_chart_legend_pos
9
9
  export { default as CircleChartWithTitle } from './_circle_chart_with_title.jsx'
10
10
  export { default as CircleChartInnerSizes } from './_circle_chart_inner_sizes.jsx'
11
11
  export { default as CircleChartCustomTooltip } from "./_circle_chart_custom_tooltip.jsx"
12
- export { default as CircleChartPbStyles } from "./_circle_chart_pb_styles.jsx"
@@ -3,7 +3,7 @@ import { InitialStateType, ActionType, DraggableProviderType } from "./types";
3
3
 
4
4
  const initialState: InitialStateType = {
5
5
  items: [],
6
- dragData: { id: "", initialGroup: "" },
6
+ dragData: { id: "", initialGroup: "", originId: "" },
7
7
  isDragging: "",
8
8
  activeContainer: ""
9
9
  };
@@ -60,7 +60,8 @@ export const DraggableProvider = ({
60
60
  onDragEnd,
61
61
  onDrop,
62
62
  onDragOver,
63
- dropZone = { type: 'ghost', color: 'neutral', direction: 'vertical' }
63
+ dropZone = { type: 'ghost', color: 'neutral', direction: 'vertical' },
64
+ providerId = 'default', // fallback provided for backward compatibility, so this does not become a required prop
64
65
  }: DraggableProviderType) => {
65
66
  const [state, dispatch] = useReducer(reducer, initialState);
66
67
 
@@ -93,15 +94,17 @@ export const DraggableProvider = ({
93
94
  }, [state.items]);
94
95
 
95
96
  const handleDragStart = (id: string, container: string) => {
96
- dispatch({ type: 'SET_DRAG_DATA', payload: { id: id, initialGroup: container } });
97
+ dispatch({ type: 'SET_DRAG_DATA', payload: { id: id, initialGroup: container, originId: providerId } });
97
98
  dispatch({ type: 'SET_IS_DRAGGING', payload: id });
98
99
  if (onDragStart) onDragStart(id, container);
99
100
  };
100
101
 
101
102
  const handleDragEnter = (id: string, container: string) => {
103
+ if (state.dragData.originId !== providerId) return; // Ignore drag events from other providers
104
+
102
105
  if (state.dragData.id !== id) {
103
106
  dispatch({ type: 'REORDER_ITEMS', payload: { dragId: state.dragData.id, targetId: id } });
104
- dispatch({ type: 'SET_DRAG_DATA', payload: { id: state.dragData.id, initialGroup: container } });
107
+ dispatch({ type: 'SET_DRAG_DATA', payload: { id: state.dragData.id, initialGroup: container, originId: providerId } });
105
108
  }
106
109
  if (onDragEnter) onDragEnter(id, container);
107
110
  };
@@ -109,6 +112,7 @@ export const DraggableProvider = ({
109
112
  const handleDragEnd = () => {
110
113
  dispatch({ type: 'SET_IS_DRAGGING', payload: "" });
111
114
  dispatch({ type: 'SET_ACTIVE_CONTAINER', payload: "" });
115
+ dispatch({ type: 'SET_DRAG_DATA', payload: { id: "", initialGroup: "", originId: "" } });
112
116
  if (onDragEnd) onDragEnd();
113
117
  };
114
118
 
@@ -117,6 +121,8 @@ export const DraggableProvider = ({
117
121
  };
118
122
 
119
123
  const handleDrop = (container: string) => {
124
+ if (state.dragData.originId !== providerId) return; // Ignore drop events from other providers
125
+
120
126
  dispatch({ type: 'SET_IS_DRAGGING', payload: "" });
121
127
  dispatch({ type: 'SET_ACTIVE_CONTAINER', payload: "" });
122
128
  changeCategory(state.dragData.id, container);
@@ -124,6 +130,8 @@ export const DraggableProvider = ({
124
130
  };
125
131
 
126
132
  const handleDragOver = (e: Event, container: string) => {
133
+ if (state.dragData.originId !== providerId) return; // Ignore drag over events from other providers
134
+
127
135
  e.preventDefault();
128
136
  dispatch({ type: 'SET_ACTIVE_CONTAINER', payload: container });
129
137
  if (onDragOver) onDragOver(e, container);
@@ -6,14 +6,16 @@ export interface ItemType {
6
6
 
7
7
  export interface InitialStateType {
8
8
  items: ItemType[];
9
- dragData: { id: string; initialGroup: string };
9
+ dragData: { id: string; initialGroup: string, originId?: string };
10
10
  isDragging: string;
11
11
  activeContainer: string;
12
12
  }
13
13
 
14
14
  export type ActionType =
15
15
  | { type: 'SET_ITEMS'; payload: ItemType[] }
16
- | { type: 'SET_DRAG_DATA'; payload: { id: string; initialGroup: string } }
16
+ | { type: 'SET_DRAG_DATA'; payload: {
17
+ originId: string; id: string; initialGroup: string
18
+ } }
17
19
  | { type: 'SET_IS_DRAGGING'; payload: string }
18
20
  | { type: 'SET_ACTIVE_CONTAINER'; payload: string }
19
21
  | { type: 'CHANGE_CATEGORY'; payload: { itemId: string; container: string } }
@@ -35,4 +37,5 @@ export type ActionType =
35
37
  onDrop?: (container: string) => void;
36
38
  onDragOver?: (e: Event, container: string) => void;
37
39
  dropZone?: DropZoneConfig | string; // Can accept string for backward compatibility
40
+ providerId?: string;
38
41
  }
@@ -0,0 +1 @@
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 gaugeTheme.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,19 +1,36 @@
1
1
  import React from 'react'
2
- import Gauge from '../../pb_gauge/_gauge'
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'
3
8
 
4
- const data = [
5
- { name: 'Name', value: 67 },
6
- ]
9
+ HighchartsMore(Highcharts);
10
+ SolidGauge(Highcharts);
7
11
 
8
- const GaugeColors = (props) => (
9
- <div>
10
- <Gauge
11
- chartData={data}
12
- id="gauge-colors"
13
- {...props}
14
- colors={['data-7']}
15
- />
16
- </div>
17
- )
12
+ const data = [{ name: "Name", y: 67 }]
18
13
 
19
- export default GaugeColors
14
+ const baseOptions = {
15
+ series: [{ data: data }],
16
+ plotOptions: {
17
+ solidgauge: {
18
+ borderColor: colors.data_7,
19
+ }
20
+ },
21
+ };
22
+
23
+ const GaugeColors = () => {
24
+ const options = Highcharts.merge({}, gaugeTheme, baseOptions);
25
+
26
+ return (
27
+ <div>
28
+ <HighchartsReact
29
+ highcharts={Highcharts}
30
+ options={options}
31
+ />
32
+ </div>
33
+ );
34
+ };
35
+
36
+ export default GaugeColors;
@@ -0,0 +1,2 @@
1
+ Custom data colors allow for color customization to match the needs of business requirements.
2
+ Pass the prop `plotOptions.solidgauge.borderColor` with a Playbook token like `colors.` + `data_1 | data_2 | data_3 | data_4 | data_5 | data_6 | data_7 | data_8`. Hex colors are also available `eg: #CA0095`
@@ -2,14 +2,44 @@ 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 Gauge from '../../pb_gauge/_gauge'
6
5
  import Card from '../../pb_card/_card'
7
6
  import Caption from '../../pb_caption/_caption'
8
7
  import Body from '../../pb_body/_body'
9
8
  import SectionSeparator from '../../pb_section_separator/_section_separator'
10
9
  import Title from '../../pb_title/_title'
10
+ import gaugeTheme from '../gaugeTheme'
11
+ import Highcharts from "highcharts"
12
+ import HighchartsReact from "highcharts-react-official"
13
+ import HighchartsMore from "highcharts/highcharts-more"
14
+ import SolidGauge from "highcharts/modules/solid-gauge"
15
+ import colors from '../../tokens/exports/_colors.module.scss'
16
+ import typography from '../../tokens/exports/_typography.module.scss'
11
17
 
12
- const data = [{ name: "Name", value: 10 }];
18
+ HighchartsMore(Highcharts);
19
+ SolidGauge(Highcharts);
20
+
21
+ const data = [{ name: "Name", y: 10 }];
22
+
23
+ const baseOptions = {
24
+ series: [{ data: data }],
25
+ chart: {
26
+ height: "150",
27
+ },
28
+ plotOptions: {
29
+ series: {
30
+ animation: false,
31
+ },
32
+ solidgauge: {
33
+ dataLabels: {
34
+ format:
35
+ `<span class="fix">{y:,f}</span>` +
36
+ `<span style="fill: ${colors.text_lt_light}; font-size: ${typography.text_larger};">%</span>`,
37
+ },
38
+ },
39
+ },
40
+ };
41
+
42
+ const options = Highcharts.merge({}, gaugeTheme, baseOptions);
13
43
 
14
44
  const GaugeComplex = (props) => (
15
45
  <Flex
@@ -100,13 +130,9 @@ const GaugeComplex = (props) => (
100
130
  shrink
101
131
  {...props}
102
132
  >
103
- <Gauge
104
- chartData={data}
105
- disableAnimation
106
- height="150"
107
- id="gauge-complex"
108
- suffix="%"
109
- {...props}
133
+ <HighchartsReact
134
+ highcharts={Highcharts}
135
+ options={options}
110
136
  />
111
137
  </FlexItem>
112
138
  </Flex>
@@ -0,0 +1 @@
1
+ We are able to wrap the Highcharts Gauge kit within Playbook kits (such as Flex and Card components).
@@ -1,18 +1,30 @@
1
1
  import React from 'react'
2
- import Gauge from '../../pb_gauge/_gauge'
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"
3
7
 
4
- const data = [
5
- { name: 'Name', value: 45 },
6
- ]
8
+ HighchartsMore(Highcharts);
9
+ SolidGauge(Highcharts);
7
10
 
8
- const GaugeDefault = (props) => (
9
- <div>
10
- <Gauge
11
- chartData={data}
12
- id="gauge-default"
13
- {...props}
14
- />
15
- </div>
16
- )
11
+ const data = [{ name: "Name", y: 45 }]
17
12
 
18
- export default GaugeDefault
13
+ const baseOptions = {
14
+ series: [{ data: data }],
15
+ };
16
+
17
+ const GaugeDefault = () => {
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 GaugeDefault;
@@ -1,19 +1,36 @@
1
1
  import React from 'react'
2
- import Gauge from '../../pb_gauge/_gauge'
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"
3
7
 
4
- const data = [
5
- { name: 'Participants', value: 84 },
6
- ]
8
+ HighchartsMore(Highcharts);
9
+ SolidGauge(Highcharts);
7
10
 
8
- const GaugeDisableAnimation = (props) => (
9
- <div>
10
- <Gauge
11
- chartData={data}
12
- disableAnimation
13
- id="gauge-disable-animation"
14
- {...props}
15
- />
16
- </div>
17
- )
11
+ const data = [{ name: "Participants", y: 84 }]
18
12
 
19
- export default GaugeDisableAnimation
13
+ const baseOptions = {
14
+ series: [{ data: data }],
15
+ plotOptions: {
16
+ series: {
17
+ animation: false,
18
+ },
19
+ },
20
+ };
21
+
22
+ const GaugeDisableAnimation = () => {
23
+ const options = Highcharts.merge({}, gaugeTheme, baseOptions);
24
+
25
+ return (
26
+ <div>
27
+ <HighchartsReact
28
+ disableAnimation
29
+ highcharts={Highcharts}
30
+ options={options}
31
+ />
32
+ </div>
33
+ );
34
+ };
35
+
36
+ export default GaugeDisableAnimation;
@@ -1,21 +1,49 @@
1
1
  import React from 'react'
2
- import Gauge from '../../pb_gauge/_gauge'
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'
3
9
 
4
- const data = [
5
- { name: 'Capacity', value: 75 },
6
- ]
10
+ HighchartsMore(Highcharts);
11
+ SolidGauge(Highcharts);
7
12
 
8
- const GaugeFullCircle = (props) => (
9
- <div>
10
- <Gauge
11
- chartData={data}
12
- fullCircle
13
- id="gauge-full-circle"
14
- suffix="%"
15
- title="Seating Capacity"
16
- {...props}
17
- />
18
- </div>
19
- )
13
+ const data = [{ name: "Capacity", y: 75 }]
20
14
 
21
- export default GaugeFullCircle
15
+ const baseOptions = {
16
+ title: {
17
+ text: "Seating Capacity",
18
+ },
19
+ series: [{ data: data }],
20
+ pane: {
21
+ startAngle: 0,
22
+ endAngle: 360,
23
+ },
24
+ plotOptions: {
25
+ solidgauge: {
26
+ dataLabels: {
27
+ format:
28
+ `<span class="fix">{y:,f}</span>` +
29
+ `<span style="fill: ${colors.text_lt_light}; font-size: ${typography.text_larger};">%</span>`,
30
+ },
31
+ },
32
+ },
33
+ };
34
+
35
+ const GaugeFullCircle = () => {
36
+ const options = Highcharts.merge({}, gaugeTheme, baseOptions);
37
+
38
+ return (
39
+ <div>
40
+ <HighchartsReact
41
+ highcharts={Highcharts}
42
+ id="gauge-full-circle"
43
+ options={options}
44
+ />
45
+ </div>
46
+ );
47
+ };
48
+
49
+ export default GaugeFullCircle;
@@ -1,25 +1,62 @@
1
1
  import React from 'react'
2
- import Gauge from '../../pb_gauge/_gauge'
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'
3
9
 
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
- )
10
+ HighchartsMore(Highcharts);
11
+ SolidGauge(Highcharts);
24
12
 
25
- export default GaugeHeight
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;