playbook_ui 14.22.0 → 14.23.0.pre.alpha.PLAY2121enableexpandedfield9199
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 +0 -1
- data/app/pb_kits/playbook/pb_advanced_table/Components/SubRowHeaderRow.tsx +32 -11
- data/app/pb_kits/playbook/pb_advanced_table/Components/TableActionBar.tsx +10 -10
- data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +0 -1
- data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableState.ts +3 -3
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +58 -1
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +15 -6
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.html.erb +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.rb +14 -2
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table_action_bar.js +16 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_custom_sort.jsx +65 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_custom_sort.md +5 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling.html.erb +46 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling_rails.md +7 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_with_custom_header.jsx +69 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_with_custom_header.md +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_with_custom_header_multi_header.jsx +107 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_with_custom_header_multi_header.md +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_with_custom_header_rails.html.erb +51 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_with_custom_header_rails.md +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +14 -8
- data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +3 -0
- data/app/pb_kits/playbook/pb_advanced_table/scss_partials/advanced_table_sticky_mixin.scss +7 -1
- data/app/pb_kits/playbook/pb_advanced_table/table_body.rb +3 -1
- data/app/pb_kits/playbook/pb_advanced_table/table_header.html.erb +5 -1
- data/app/pb_kits/playbook/pb_advanced_table/table_header.rb +36 -0
- data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +11 -2
- data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +2 -0
- data/app/pb_kits/playbook/pb_badge/_badge.scss +5 -6
- data/app/pb_kits/playbook/pb_bar_graph/barGraphTheme.ts +106 -0
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_colors.jsx +33 -15
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_default.jsx +33 -15
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_height.jsx +52 -22
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_height.md +3 -0
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_horizontal.jsx +12 -16
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend.jsx +31 -15
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_non_clickable.jsx +39 -16
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_position.jsx +86 -38
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_position.md +1 -1
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_negative_numbers.jsx +32 -15
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_secondary_y_axis.jsx +72 -22
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_secondary_y_axis.md +1 -1
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_spline.jsx +31 -15
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_stacked.jsx +37 -16
- data/app/pb_kits/playbook/pb_bar_graph/docs/_description.md +1 -3
- data/app/pb_kits/playbook/pb_bar_graph/docs/example.yml +1 -3
- data/app/pb_kits/playbook/pb_bar_graph/docs/index.js +0 -2
- data/app/pb_kits/playbook/pb_body/docs/_body_truncate.jsx +3 -3
- data/app/pb_kits/playbook/pb_body/docs/_body_truncate_react.md +4 -0
- data/app/pb_kits/playbook/pb_checkbox/checkbox.rb +12 -1
- data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_indeterminate.html.erb +1 -1
- data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_indeterminate_rails.md +2 -1
- data/app/pb_kits/playbook/pb_checkbox/index.js +3 -1
- data/app/pb_kits/playbook/pb_circle_chart/circleChartTheme.ts +36 -1
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_block.jsx +71 -26
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors.jsx +29 -16
- data/app/pb_kits/playbook/pb_circle_chart/docs/{_circle_chart_colors.md → _circle_chart_colors_rails.md} +1 -1
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors_react.md +2 -0
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_custom_tooltip.jsx +28 -16
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_custom_tooltip.md +4 -2
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_default.jsx +23 -15
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_inner_sizes.jsx +81 -51
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.jsx +103 -75
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.md +4 -7
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_live_data.jsx +19 -13
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_rounded.jsx +30 -17
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_labels.jsx +34 -20
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_legend_kit.jsx +29 -20
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_title.jsx +28 -20
- data/app/pb_kits/playbook/pb_circle_chart/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_circle_chart/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_circle_chart/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_draggable/context/index.tsx +12 -4
- data/app/pb_kits/playbook/pb_draggable/context/types.ts +5 -2
- data/app/pb_kits/playbook/pb_dropdown/_dropdown.scss +17 -1
- data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +6 -0
- data/app/pb_kits/playbook/pb_dropdown/_dropdown_mixin.scss +36 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_active_style_options.jsx +90 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_active_style_options_react.md +4 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_radio_options.jsx +1 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_radio_options_react.md +1 -1
- data/app/pb_kits/playbook/pb_dropdown/docs/example.yml +3 -2
- data/app/pb_kits/playbook/pb_dropdown/docs/index.js +2 -1
- data/app/pb_kits/playbook/pb_dropdown/dropdown.test.jsx +24 -0
- data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownOption.tsx +11 -1
- data/app/pb_kits/playbook/pb_gauge/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_colors.jsx +32 -15
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_colors_react.md +2 -0
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_complex.jsx +35 -9
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_complex_react.md +1 -0
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_default.jsx +26 -14
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_disable_animation.jsx +32 -15
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_full_circle.jsx +45 -17
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_height.jsx +59 -22
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_live_data.jsx +40 -9
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_min_max.jsx +50 -18
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_sizing.jsx +31 -18
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_title.jsx +34 -17
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_units.jsx +64 -23
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_units_react.md +1 -0
- data/app/pb_kits/playbook/pb_gauge/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_gauge/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_gauge/gaugeTheme.ts +7 -1
- data/app/pb_kits/playbook/pb_line_graph/docs/_description.md +1 -3
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_colors.jsx +36 -17
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_colors_react.md +3 -0
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_default.jsx +31 -16
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_height.jsx +63 -31
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_height.md +3 -0
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend.jsx +35 -16
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_nonclickable.jsx +41 -16
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_position.jsx +107 -62
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_position.md +4 -7
- data/app/pb_kits/playbook/pb_line_graph/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_line_graph/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_line_graph/lineGraphTheme.ts +16 -1
- data/app/pb_kits/playbook/pb_multi_level_select/_helper_functions.tsx +18 -9
- data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +3 -1
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_show_checked_children.html.erb +75 -0
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_show_checked_children.jsx +94 -0
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_show_checked_children.md +3 -0
- data/app/pb_kits/playbook/pb_multi_level_select/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_multi_level_select/docs/index.js +2 -1
- data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select.rb +3 -0
- data/app/pb_kits/playbook/pb_pagination/_pagination.tsx +4 -0
- data/app/pb_kits/playbook/pb_pagination/docs/_pagination_default_rails.md +3 -1
- data/app/pb_kits/playbook/pb_pagination/docs/_pagination_default_react.md +3 -1
- data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +30 -17
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_strict_mode.html.erb +10 -0
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_strict_mode.jsx +26 -0
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_strict_mode.md +3 -0
- data/app/pb_kits/playbook/pb_phone_number_input/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_phone_number_input/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.rb +3 -0
- data/app/pb_kits/playbook/pb_select/select.rb +4 -2
- data/app/pb_kits/playbook/pb_table/_table.tsx +4 -4
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_columns.jsx +8 -8
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_columns_react.md +1 -1
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_left_columns.jsx +12 -12
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_left_columns_react.md +3 -3
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_right_columns.jsx +12 -12
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_right_columns_react.md +3 -3
- data/app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.html.erb +1 -0
- data/app/pb_kits/playbook/pb_title/docs/_title_truncate.jsx +3 -3
- data/app/pb_kits/playbook/pb_title/docs/_title_truncate_react.md +4 -0
- data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_click_open.html.erb +14 -0
- data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_click_open_rails.md +1 -0
- data/app/pb_kits/playbook/pb_tooltip/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_tooltip/index.js +59 -36
- data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +9 -2
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_preserve_input.html.erb +18 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_preserve_input_rails.md +1 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +3 -0
- data/dist/chunks/_line_graph-Bz5CsVqz.js +1 -0
- data/dist/chunks/_typeahead-DuoHs8Ye.js +6 -0
- data/dist/chunks/_weekday_stacked-0GMpKTN_.js +37 -0
- data/dist/chunks/lib-DnQyMxO1.js +29 -0
- data/dist/chunks/{pb_form_validation-Dx1C9XCK.js → pb_form_validation-kl-4Jv4t.js} +1 -1
- data/dist/chunks/vendor.js +1 -1
- data/dist/menu.yml +68 -15
- 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/version.rb +2 -2
- metadata +51 -36
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_custom.jsx +0 -72
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_custom.md +0 -6
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.jsx +0 -64
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.md +0 -1
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_pb_styles.jsx +0 -38
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_pb_styles.md +0 -1
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_pb_styles.jsx +0 -30
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_pb_styles.md +0 -1
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_pb_styles.jsx +0 -52
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_pb_styles.md +0 -1
- data/app/pb_kits/playbook/pb_walkthrough/_walkthrough.scss +0 -0
- data/app/pb_kits/playbook/pb_walkthrough/_walkthrough.tsx +0 -202
- data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_continuous.jsx +0 -69
- data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_default.jsx +0 -71
- data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_multi_beacon.jsx +0 -110
- data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_no_beacon.jsx +0 -76
- data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_no_overlay.jsx +0 -76
- data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_styled.jsx +0 -76
- data/app/pb_kits/playbook/pb_walkthrough/docs/example.yml +0 -10
- data/app/pb_kits/playbook/pb_walkthrough/docs/index.js +0 -6
- data/app/pb_kits/playbook/pb_walkthrough/walkthrough.test.jsx +0 -34
- data/dist/chunks/_typeahead-dOC1gq2X.js +0 -22
- data/dist/chunks/_weekday_stacked-Bh8iY5uA.js +0 -45
- data/dist/chunks/lib-DtCftrUN.js +0 -29
- /data/app/pb_kits/playbook/pb_advanced_table/docs/{_advanced_table_row_styling.md → _advanced_table_row_styling_react.md} +0 -0
- /data/app/pb_kits/playbook/pb_body/docs/{_body_truncate.md → _body_truncate_rails.md} +0 -0
- /data/app/pb_kits/playbook/pb_gauge/docs/{_gauge_colors.md → _gauge_colors_rails.md} +0 -0
- /data/app/pb_kits/playbook/pb_gauge/docs/{_gauge_complex.md → _gauge_complex_rails.md} +0 -0
- /data/app/pb_kits/playbook/pb_line_graph/docs/{_line_graph_colors.md → _line_graph_colors_rails.md} +0 -0
- /data/app/pb_kits/playbook/pb_title/docs/{_title_truncate.md → _title_truncate_rails.md} +0 -0
- /data/app/pb_kits/playbook/pb_tooltip/docs/{_tooltip_click_open.md → _tooltip_click_open_react.md} +0 -0
- /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
|
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
|
-
|
8
|
-
|
8
|
+
y: 8,
|
9
9
|
},
|
10
10
|
{
|
11
11
|
name: 'Chores',
|
12
|
-
|
13
|
-
|
12
|
+
y: 1,
|
14
13
|
},
|
15
14
|
{
|
16
15
|
name: 'Stories',
|
17
|
-
|
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
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
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
|
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
|
-
|
9
|
+
y: 2498,
|
9
10
|
},
|
10
11
|
{
|
11
12
|
name: 'YouTube',
|
12
|
-
|
13
|
+
y: 2000,
|
13
14
|
},
|
14
15
|
{
|
15
16
|
name: 'WhatsApp',
|
16
|
-
|
17
|
+
y: 2000,
|
17
18
|
},
|
18
19
|
{
|
19
20
|
name: 'Facebook Messenger',
|
20
|
-
|
21
|
+
y: 1300,
|
21
22
|
},
|
22
23
|
{
|
23
24
|
name: 'WeChat',
|
24
|
-
|
25
|
+
y: 1165,
|
25
26
|
},
|
26
27
|
{
|
27
28
|
name: 'Instagram',
|
28
|
-
|
29
|
+
y: 1000,
|
29
30
|
},
|
30
31
|
{
|
31
32
|
name: 'Tik Tok',
|
32
|
-
|
33
|
+
y: 800,
|
33
34
|
},
|
34
35
|
]
|
35
36
|
|
36
|
-
const
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
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
|
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.
|
@@ -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: {
|
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
|
}
|
@@ -8,6 +8,7 @@
|
|
8
8
|
@import "../pb_textarea/textarea_mixin";
|
9
9
|
|
10
10
|
@import "./scss_partials/dropdown_animation";
|
11
|
+
@import "dropdown_mixin";
|
11
12
|
|
12
13
|
[class*="pb_dropdown"] {
|
13
14
|
.dropdown_wrapper {
|
@@ -98,9 +99,23 @@
|
|
98
99
|
[class^="pb_title_kit"], a {
|
99
100
|
color: $white !important;
|
100
101
|
}
|
102
|
+
border-bottom: 1px solid $border_light;
|
101
103
|
&:hover {
|
102
|
-
background-color: $product_1_background
|
104
|
+
background-color: $product_1_background;
|
105
|
+
}
|
106
|
+
|
107
|
+
// activeStyle font color map
|
108
|
+
@each $name, $color in $font-colors {
|
109
|
+
&.font-#{$name} {
|
110
|
+
@include apply-font-color($color);
|
111
|
+
}
|
103
112
|
}
|
113
|
+
// activeStyle background color map (no difference between selected and selected+hover custom colors)
|
114
|
+
@each $name, $bg in $background-colors {
|
115
|
+
&.bg-#{$name} {
|
116
|
+
background-color: $bg;
|
117
|
+
}
|
118
|
+
}
|
104
119
|
}
|
105
120
|
}
|
106
121
|
|
@@ -267,6 +282,7 @@
|
|
267
282
|
}
|
268
283
|
&[class*="selected"] {
|
269
284
|
background-color: $primary;
|
285
|
+
border-bottom: rgba($white, 0.15);
|
270
286
|
}
|
271
287
|
}
|
272
288
|
}
|
@@ -39,6 +39,10 @@ type DropdownProps = {
|
|
39
39
|
options: GenericObject;
|
40
40
|
separators?: boolean;
|
41
41
|
variant?: "default" | "subtle";
|
42
|
+
activeStyle?: {
|
43
|
+
backgroundColor?: string;
|
44
|
+
fontColor?: string;
|
45
|
+
};
|
42
46
|
};
|
43
47
|
|
44
48
|
interface DropdownComponent
|
@@ -69,6 +73,7 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
|
|
69
73
|
options,
|
70
74
|
separators = true,
|
71
75
|
variant = "default",
|
76
|
+
activeStyle,
|
72
77
|
} = props;
|
73
78
|
|
74
79
|
const ariaProps = buildAriaProps(aria);
|
@@ -251,6 +256,7 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
|
|
251
256
|
>
|
252
257
|
<DropdownContext.Provider
|
253
258
|
value={{
|
259
|
+
activeStyle,
|
254
260
|
autocomplete,
|
255
261
|
dropdownContainerRef,
|
256
262
|
filteredOptions,
|
@@ -0,0 +1,36 @@
|
|
1
|
+
@import "../tokens/colors";
|
2
|
+
|
3
|
+
// activeStyle fontColor sass map to go through text colors + set of custom colors
|
4
|
+
$custom-font-colors: (
|
5
|
+
primary: $primary
|
6
|
+
);
|
7
|
+
|
8
|
+
$merged-font-colors: map-merge($text_colors, $custom-font-colors);
|
9
|
+
|
10
|
+
$font-colors: ();
|
11
|
+
|
12
|
+
@each $key, $val in $merged-font-colors {
|
13
|
+
$font-colors: map-merge($font-colors, ($key: $val));
|
14
|
+
}
|
15
|
+
|
16
|
+
@mixin apply-font-color($color) {
|
17
|
+
color: $color;
|
18
|
+
|
19
|
+
[class^="pb_body"],
|
20
|
+
[class^="pb_title_kit"],
|
21
|
+
a {
|
22
|
+
color: $color !important;
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
// activeStyle backgroundColor map (set of custom colors)
|
27
|
+
$custom-background-colors: (
|
28
|
+
"bg_light": $bg_light,
|
29
|
+
"white": $white,
|
30
|
+
);
|
31
|
+
|
32
|
+
$background-colors: ();
|
33
|
+
|
34
|
+
@each $key, $val in $custom-background-colors {
|
35
|
+
$background-colors: map-merge($background-colors, ($key: $val));
|
36
|
+
}
|
@@ -0,0 +1,90 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import Dropdown from '../_dropdown'
|
3
|
+
|
4
|
+
const DropdownCustomActiveStyleOptions = (props) => {
|
5
|
+
|
6
|
+
|
7
|
+
const options = [
|
8
|
+
{
|
9
|
+
label: "United States",
|
10
|
+
value: "unitedStates",
|
11
|
+
id: "us"
|
12
|
+
},
|
13
|
+
{
|
14
|
+
label: "Canada",
|
15
|
+
value: "canada",
|
16
|
+
id: "ca"
|
17
|
+
},
|
18
|
+
{
|
19
|
+
label: "Pakistan",
|
20
|
+
value: "pakistan",
|
21
|
+
id: "pk"
|
22
|
+
}
|
23
|
+
];
|
24
|
+
|
25
|
+
|
26
|
+
return (
|
27
|
+
<div>
|
28
|
+
<Dropdown
|
29
|
+
activeStyle={{
|
30
|
+
backgroundColor: "bg_light",
|
31
|
+
fontColor: "primary",
|
32
|
+
}}
|
33
|
+
label="Background Color: bg_light; Font Color: primary"
|
34
|
+
marginBottom="sm"
|
35
|
+
options={options}
|
36
|
+
{...props}
|
37
|
+
>
|
38
|
+
<Dropdown.Trigger/>
|
39
|
+
<Dropdown.Container>
|
40
|
+
{options.map((option) => (
|
41
|
+
<Dropdown.Option key={option.id}
|
42
|
+
option={option}
|
43
|
+
/>
|
44
|
+
))}
|
45
|
+
</Dropdown.Container>
|
46
|
+
</Dropdown>
|
47
|
+
<Dropdown
|
48
|
+
activeStyle={{
|
49
|
+
backgroundColor: "white",
|
50
|
+
fontColor: "primary",
|
51
|
+
}}
|
52
|
+
label="Background Color: white; Font Color: primary"
|
53
|
+
marginBottom="sm"
|
54
|
+
options={options}
|
55
|
+
{...props}
|
56
|
+
/>
|
57
|
+
<Dropdown
|
58
|
+
activeStyle={{
|
59
|
+
backgroundColor: "bg_light",
|
60
|
+
fontColor: "text_lt_default",
|
61
|
+
}}
|
62
|
+
autocomplete
|
63
|
+
label="Background Color: bg_light; Font Color: text_lt_default"
|
64
|
+
marginBottom="sm"
|
65
|
+
options={options}
|
66
|
+
{...props}
|
67
|
+
/>
|
68
|
+
<Dropdown
|
69
|
+
activeStyle={{
|
70
|
+
fontColor: "text_lt_lighter",
|
71
|
+
}}
|
72
|
+
label="Font Color: text_lt_lighter"
|
73
|
+
marginBottom="sm"
|
74
|
+
options={options}
|
75
|
+
{...props}
|
76
|
+
>
|
77
|
+
<Dropdown.Trigger/>
|
78
|
+
<Dropdown.Container>
|
79
|
+
{options.map((option) => (
|
80
|
+
<Dropdown.Option key={option.id}
|
81
|
+
option={option}
|
82
|
+
/>
|
83
|
+
))}
|
84
|
+
</Dropdown.Container>
|
85
|
+
</Dropdown>
|
86
|
+
</div>
|
87
|
+
)
|
88
|
+
}
|
89
|
+
|
90
|
+
export default DropdownCustomActiveStyleOptions
|
data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_active_style_options_react.md
ADDED
@@ -0,0 +1,4 @@
|
|
1
|
+
The `activeStyle` prop can be used to customize the appearance of the dropdown selection indicator. It accepts an object with the following keys: `backgroundColor` sets the background color of the selected item (and its hover state); `fontColor` sets the font color of the selected item.
|
2
|
+
|
3
|
+
`backgroundColor` **Type**: String | **Values**: bg_light | white | **Default**: (no selection) is primary
|
4
|
+
`fontColor` **Type**: String | **Values**: primary | all [Playbook Text Colors](https://playbook.powerapp.cloud/visual_guidelines/colors) | **Default**: (no selection) is white
|
@@ -18,6 +18,7 @@ const DropdownCustomRadioOptions = (props) => {
|
|
18
18
|
return (
|
19
19
|
<div>
|
20
20
|
<Dropdown
|
21
|
+
activeStyle={{ backgroundColor: "bg_light", fontColor: "text_lt_default" }}
|
21
22
|
label="Select Item"
|
22
23
|
onSelect={(selectedItem) => setSelectedValue(selectedItem?.value)}
|
23
24
|
options={options}
|
@@ -1 +1 @@
|
|
1
|
-
Radio inputs can be used inside `Dropdown.Option` for a custom layout that mimics form-like selection within a dropdown.
|
1
|
+
Radio inputs can be used inside `Dropdown.Option` for a custom layout that mimics form-like selection within a dropdown. Use the [activeStyle](https://playbook.powerapp.cloud/kits/dropdown/react#custom-active-style-options) `backgroundColor` and `fontColor` props to create contrast between the Radio selection indicator and the Dropdown selection background indicator.
|
@@ -16,7 +16,7 @@ examples:
|
|
16
16
|
- dropdown_with_search_rails: Custom Trigger Dropdown with Search
|
17
17
|
- dropdown_with_custom_padding: Custom Option Padding
|
18
18
|
- dropdown_with_custom_icon_options: Custom Icon Options
|
19
|
-
# - dropdown_with_custom_radio_options: Custom Radio Options # TODO: Update and publish doc ex in [PLAY-2146](https://runway.powerhrg.com/backlog_items/PLAY-2146) (remove this comment afterwards)
|
19
|
+
# - dropdown_with_custom_radio_options: Custom Radio Options # TODO: Update and publish doc ex in the Rails follow up to [PLAY-2146](https://runway.powerhrg.com/backlog_items/PLAY-2146) (remove this comment afterwards)
|
20
20
|
- dropdown_error: Dropdown with Error
|
21
21
|
- dropdown_default_value: Default Value
|
22
22
|
- dropdown_multi_select_with_default: Multi Select Default Value
|
@@ -39,8 +39,9 @@ examples:
|
|
39
39
|
- dropdown_with_custom_trigger: Custom Trigger
|
40
40
|
- dropdown_with_search: Custom Trigger Dropdown with Search
|
41
41
|
- dropdown_with_custom_padding: Custom Option Padding
|
42
|
+
- dropdown_with_custom_active_style_options: Custom Active Style Options
|
42
43
|
- dropdown_with_custom_icon_options: Custom Icon Options
|
43
|
-
|
44
|
+
- dropdown_with_custom_radio_options: Custom Radio Options
|
44
45
|
- dropdown_error: Dropdown with Error
|
45
46
|
- dropdown_default_value: Default Value
|
46
47
|
- dropdown_multi_select_with_default: Multi Select Default Value
|
@@ -21,4 +21,5 @@ export { default as DropdownMultiSelectWithAutocomplete } from './_dropdown_mult
|
|
21
21
|
export { default as DropdownMultiSelectWithDefault } from './_dropdown_multi_select_with_default.jsx'
|
22
22
|
export { default as DropdownMultiSelectWithCustomOptions } from './_dropdown_multi_select_with_custom_options.jsx'
|
23
23
|
export {default as DropdownWithCustomIconOptions} from './_dropdown_with_custom_icon_options.jsx'
|
24
|
-
export {default as DropdownWithCustomRadioOptions} from './_dropdown_with_custom_radio_options.jsx'
|
24
|
+
export {default as DropdownWithCustomRadioOptions} from './_dropdown_with_custom_radio_options.jsx'
|
25
|
+
export {default as DropdownWithCustomActiveStyleOptions} from './_dropdown_with_custom_active_style_options.jsx'
|
@@ -369,4 +369,28 @@ test("defaultValue works with multiSelect", () => {
|
|
369
369
|
const option2 = Array.from(kit.querySelectorAll(".pb_dropdown_option_list"));
|
370
370
|
const firstOpt = options[0].label
|
371
371
|
expect(option2[0]).not.toHaveTextContent(firstOpt)
|
372
|
+
})
|
373
|
+
|
374
|
+
test("applies activeStyle backgroundColor and fontColor when selected", () => {
|
375
|
+
render(
|
376
|
+
<Dropdown
|
377
|
+
activeStyle={{
|
378
|
+
backgroundColor: "bg_light",
|
379
|
+
fontColor: "primary",
|
380
|
+
}}
|
381
|
+
data={{ testid: testId }}
|
382
|
+
options={options}
|
383
|
+
/>
|
384
|
+
)
|
385
|
+
|
386
|
+
const kit = screen.getByTestId(testId)
|
387
|
+
const option = kit.querySelectorAll(".pb_dropdown_option_list")[1]
|
388
|
+
|
389
|
+
fireEvent.click(option)
|
390
|
+
|
391
|
+
const selected = kit.querySelector(".pb_dropdown_option_selected")
|
392
|
+
|
393
|
+
expect(selected).toBeInTheDocument()
|
394
|
+
expect(selected).toHaveClass("bg-bg_light")
|
395
|
+
expect(selected).toHaveClass("font-primary")
|
372
396
|
})
|
@@ -41,6 +41,7 @@ const DropdownOption = (props: DropdownOptionProps) => {
|
|
41
41
|
} = props;
|
42
42
|
|
43
43
|
const {
|
44
|
+
activeStyle,
|
44
45
|
filteredOptions,
|
45
46
|
filterItem,
|
46
47
|
focusedOptionIndex,
|
@@ -59,7 +60,6 @@ const DropdownOption = (props: DropdownOptionProps) => {
|
|
59
60
|
? selected.some((item) => item.label === option?.label)
|
60
61
|
: (selected as GenericObject)?.label === option?.label;
|
61
62
|
|
62
|
-
|
63
63
|
if (!isItemMatchingFilter(option) || (multiSelect && isSelected)) {
|
64
64
|
return null;
|
65
65
|
}
|
@@ -70,6 +70,14 @@ const DropdownOption = (props: DropdownOptionProps) => {
|
|
70
70
|
|
71
71
|
const selectedClass = isSelected ? "selected" : "list";
|
72
72
|
|
73
|
+
|
74
|
+
const bgTokenClass = activeStyle?.backgroundColor
|
75
|
+
? `bg-${activeStyle.backgroundColor}`
|
76
|
+
: "";
|
77
|
+
const fontTokenClass = activeStyle?.fontColor
|
78
|
+
? `font-${activeStyle.fontColor}`
|
79
|
+
: "";
|
80
|
+
|
73
81
|
const ariaProps = buildAriaProps(aria);
|
74
82
|
const dataProps = buildDataProps(data);
|
75
83
|
const htmlProps = buildHtmlProps(htmlOptions);
|
@@ -79,6 +87,8 @@ const DropdownOption = (props: DropdownOptionProps) => {
|
|
79
87
|
selectedClass,
|
80
88
|
focusedClass,
|
81
89
|
),
|
90
|
+
bgTokenClass,
|
91
|
+
fontTokenClass,
|
82
92
|
globalProps(props),
|
83
93
|
className
|
84
94
|
);
|
@@ -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
|
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
|
-
|
5
|
-
|
6
|
-
]
|
9
|
+
HighchartsMore(Highcharts);
|
10
|
+
SolidGauge(Highcharts);
|
7
11
|
|
8
|
-
const
|
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
|
-
|
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`
|