playbook_ui 14.23.0 → 14.24.0.pre.alpha.PLAY1984responsivegapprops9652
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/CustomCell.tsx +7 -6
- data/app/pb_kits/playbook/pb_advanced_table/Components/RegularTableView.tsx +8 -2
- data/app/pb_kits/playbook/pb_advanced_table/Components/SortIconButton.tsx +24 -25
- data/app/pb_kits/playbook/pb_advanced_table/Components/TableActionBar.tsx +10 -10
- data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +11 -13
- data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableState.ts +7 -4
- data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableHeader.tsx +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +112 -2
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +13 -7
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.html.erb +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.rb +14 -2
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +90 -0
- 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_column_headers_vertical_border.html.erb +43 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers_vertical_border.jsx +64 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control.jsx +60 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control.md +3 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_per_row.jsx +57 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_per_row.md +1 -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_selectable_rows_header_rails.html.erb +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_rails.html.erb +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_per_column.jsx +55 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_per_column.md +6 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_per_column_for_multi_column.jsx +80 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_per_column_for_multi_column.md +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_with_custom_header.md +1 -1
- 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 +9 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +6 -0
- data/app/pb_kits/playbook/pb_advanced_table/flat_advanced_table.js +4 -11
- data/app/pb_kits/playbook/pb_advanced_table/index.js +108 -125
- 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 +7 -4
- 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 +46 -4
- data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +13 -4
- data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +24 -5
- data/app/pb_kits/playbook/pb_advanced_table/table_subrow_header.rb +1 -1
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_position.md +1 -1
- 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 +218 -26
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.md +1 -1
- data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.html.erb +10 -1
- data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.rb +2 -0
- data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_input_options.html.erb +24 -0
- data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_input_options.md +3 -0
- data/app/pb_kits/playbook/pb_circle_icon_button/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_date/_date.tsx +5 -3
- data/app/pb_kits/playbook/pb_date/date.html.erb +6 -6
- data/app/pb_kits/playbook/pb_date/date.rb +2 -0
- data/app/pb_kits/playbook/pb_date/docs/_date_with_show_current_year.html.erb +4 -0
- data/app/pb_kits/playbook/pb_date/docs/_date_with_show_current_year.jsx +17 -0
- data/app/pb_kits/playbook/pb_date/docs/_date_with_show_current_year.md +1 -0
- data/app/pb_kits/playbook/pb_date/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_date/docs/index.js +1 -0
- 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/index.js +3 -0
- data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownOption.tsx +11 -1
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.tsx +2 -2
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_no_icon.html.erb +22 -0
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_no_icon.jsx +43 -0
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_no_icon.md +1 -0
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.html.erb +2 -1
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.rb +1 -1
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.test.js +6 -0
- data/app/pb_kits/playbook/pb_flex/_flex.tsx +9 -6
- data/app/pb_kits/playbook/pb_flex/docs/_flex_gap.html.erb +12 -1
- data/app/pb_kits/playbook/pb_flex/docs/_flex_gap.jsx +26 -1
- data/app/pb_kits/playbook/pb_flex/docs/_flex_gap_rails.md +11 -0
- data/app/pb_kits/playbook/pb_flex/docs/_flex_gap_react.md +11 -0
- data/app/pb_kits/playbook/pb_flex/flex.rb +6 -12
- 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/index.js +1 -1
- data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select.rb +3 -0
- data/app/pb_kits/playbook/pb_pagination/_pagination.test.jsx +212 -0
- data/app/pb_kits/playbook/pb_pagination/_pagination.tsx +12 -1
- 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_pagination/docs/_pagination_external_control.jsx +112 -0
- data/app/pb_kits/playbook/pb_pagination/docs/_pagination_external_control_react.md +3 -0
- data/app/pb_kits/playbook/pb_pagination/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_pagination/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +14 -1
- 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/docs/_table_with_selectable_rows.html.erb +1 -0
- data/app/pb_kits/playbook/pb_table/styles/_vertical_border.scss +49 -1
- data/app/pb_kits/playbook/utilities/_gap.scss +12 -24
- data/app/pb_kits/playbook/utilities/globalPropNames.mjs +2 -0
- data/app/pb_kits/playbook/utilities/globalProps.ts +28 -4
- data/dist/chunks/_line_graph-B9yItXkt.js +1 -0
- data/dist/chunks/_typeahead-Mbp0CWgZ.js +6 -0
- data/dist/chunks/_weekday_stacked-C-5U1QRT.js +37 -0
- data/dist/chunks/lib-CY5ZPzic.js +29 -0
- data/dist/chunks/{pb_form_validation-B7kuYG-_.js → pb_form_validation-D3b0JKHH.js} +1 -1
- data/dist/chunks/vendor.js +1 -1
- data/dist/menu.yml +4 -11
- 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/classnames.rb +2 -0
- data/lib/playbook/spacing.rb +53 -1
- data/lib/playbook/version.rb +2 -2
- metadata +55 -27
- data/app/pb_kits/playbook/pb_flex/docs/_flex_gap.md +0 -9
- 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/_circle_chart-D01WLw-z.js +0 -1
- data/dist/chunks/_typeahead-mrBE9f17.js +0 -22
- data/dist/chunks/_weekday_stacked-_LSSbN1y.js +0 -45
- data/dist/chunks/lib-CHh_1-Oj.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_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
@@ -1,6 +1,7 @@
|
|
1
1
|
import React from 'react'
|
2
2
|
import Flex from '../../pb_flex/_flex'
|
3
3
|
import FlexItem from '../../pb_flex/_flex_item'
|
4
|
+
import Title from '../../pb_title/_title'
|
4
5
|
|
5
6
|
const FlexGap = (props) => {
|
6
7
|
const count = () => {
|
@@ -13,6 +14,8 @@ const FlexGap = (props) => {
|
|
13
14
|
|
14
15
|
return (
|
15
16
|
<>
|
17
|
+
<Title size={4}>Gap</Title>
|
18
|
+
<br />
|
16
19
|
<div className="flex-doc-example">
|
17
20
|
<Flex
|
18
21
|
gap="xxs"
|
@@ -27,8 +30,10 @@ const FlexGap = (props) => {
|
|
27
30
|
</Flex>
|
28
31
|
</div>
|
29
32
|
|
30
|
-
<br />
|
33
|
+
<br /><br />
|
31
34
|
|
35
|
+
<Title size={4}>Column Gap</Title>
|
36
|
+
<br />
|
32
37
|
<div className="flex-doc-example">
|
33
38
|
<Flex
|
34
39
|
columnGap="lg"
|
@@ -48,6 +53,9 @@ const FlexGap = (props) => {
|
|
48
53
|
</FlexItem>
|
49
54
|
</Flex>
|
50
55
|
</div>
|
56
|
+
<br /><br />
|
57
|
+
|
58
|
+
<Title size={4}>Row Gap</Title>
|
51
59
|
<br />
|
52
60
|
<div className="flex-doc-example">
|
53
61
|
<Flex
|
@@ -69,6 +77,23 @@ const FlexGap = (props) => {
|
|
69
77
|
</FlexItem>
|
70
78
|
</Flex>
|
71
79
|
</div>
|
80
|
+
|
81
|
+
<br /><br />
|
82
|
+
<Title size={4}>Responsive</Title>
|
83
|
+
<br />
|
84
|
+
<div className="flex-doc-example">
|
85
|
+
<Flex
|
86
|
+
gap={{ xs: "none", sm: "sm", md: "md", lg: "lg", xl: "xl" }}
|
87
|
+
wrap
|
88
|
+
{...props}
|
89
|
+
>
|
90
|
+
{count().map((v, key) => (
|
91
|
+
<FlexItem key={key}>
|
92
|
+
{v}
|
93
|
+
</FlexItem>
|
94
|
+
))}
|
95
|
+
</Flex>
|
96
|
+
</div>
|
72
97
|
</>
|
73
98
|
)
|
74
99
|
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
##### Prop
|
2
|
+
|
3
|
+
`gap` | `row_gap` | `column_gap` | **Type**: String | Hash | **Values**: xxs | xs | sm | md | lg | xl | none
|
4
|
+
|
5
|
+
Setting the gap prop sets the `row_gap` and the `column_gap` props to the same size and creates equal space within a flex container.
|
6
|
+
|
7
|
+
Setting the `row_gap` prop creates space between rows in a flex container.
|
8
|
+
|
9
|
+
Setting the `column_gap` prop creates space between columns in a flex container.
|
10
|
+
|
11
|
+
You can also set responsive values by passing a hash with device sizes and values.
|
@@ -0,0 +1,11 @@
|
|
1
|
+
##### Prop
|
2
|
+
|
3
|
+
`gap` | `rowGap` | `columnGap` | **Type**: String | Object | **Values**: xxs | xs | sm | md | lg | xl | none
|
4
|
+
|
5
|
+
Setting the gap prop sets the `rowGap` and the `columnGap` props to the same size and creates equal space within a flex container.
|
6
|
+
|
7
|
+
Setting the `rowGap` prop creates space between rows in a flex container.
|
8
|
+
|
9
|
+
Setting the `columnGap` prop creates space between columns in a flex container.
|
10
|
+
|
11
|
+
You can also set responsive values by passing an object with device sizes and values.
|
@@ -24,17 +24,11 @@ module Playbook
|
|
24
24
|
default: "none",
|
25
25
|
deprecated: true
|
26
26
|
|
27
|
-
prop :gap
|
28
|
-
values: %w[xxs xs sm md lg xl none],
|
29
|
-
default: "none"
|
27
|
+
prop :gap
|
30
28
|
|
31
|
-
prop :row_gap
|
32
|
-
values: %w[xxs xs sm md lg xl none],
|
33
|
-
default: "none"
|
29
|
+
prop :row_gap
|
34
30
|
|
35
|
-
prop :column_gap
|
36
|
-
values: %w[xxs xs sm md lg xl none],
|
37
|
-
default: "none"
|
31
|
+
prop :column_gap
|
38
32
|
|
39
33
|
prop :reverse, type: Playbook::Props::Boolean,
|
40
34
|
default: false
|
@@ -133,7 +127,7 @@ module Playbook
|
|
133
127
|
end
|
134
128
|
|
135
129
|
def gap_class
|
136
|
-
if gap == "none"
|
130
|
+
if gap == "none" || gap.nil? || gap.is_a?(Hash)
|
137
131
|
nil
|
138
132
|
else
|
139
133
|
"gap_#{gap}"
|
@@ -141,7 +135,7 @@ module Playbook
|
|
141
135
|
end
|
142
136
|
|
143
137
|
def row_gap_class
|
144
|
-
if row_gap == "none"
|
138
|
+
if row_gap == "none" || row_gap.nil? || row_gap.is_a?(Hash)
|
145
139
|
nil
|
146
140
|
else
|
147
141
|
"rowGap_#{row_gap}"
|
@@ -149,7 +143,7 @@ module Playbook
|
|
149
143
|
end
|
150
144
|
|
151
145
|
def column_gap_class
|
152
|
-
if column_gap == "none"
|
146
|
+
if column_gap == "none" || column_gap.nil? || column_gap.is_a?(Hash)
|
153
147
|
nil
|
154
148
|
else
|
155
149
|
"columnGap_#{column_gap}"
|
@@ -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`
|
@@ -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
|
-
|
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
|
-
<
|
104
|
-
|
105
|
-
|
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
|
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
|
-
|
5
|
-
|
6
|
-
]
|
8
|
+
HighchartsMore(Highcharts);
|
9
|
+
SolidGauge(Highcharts);
|
7
10
|
|
8
|
-
const
|
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
|
-
|
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
|
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
|
-
|
5
|
-
|
6
|
-
]
|
8
|
+
HighchartsMore(Highcharts);
|
9
|
+
SolidGauge(Highcharts);
|
7
10
|
|
8
|
-
const
|
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
|
-
|
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
|
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
|
-
|
5
|
-
|
6
|
-
]
|
10
|
+
HighchartsMore(Highcharts);
|
11
|
+
SolidGauge(Highcharts);
|
7
12
|
|
8
|
-
const
|
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
|
-
|
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
|
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
|
-
|
5
|
-
|
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
|
-
|
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;
|
@@ -1,15 +1,31 @@
|
|
1
|
-
import React, { useState } from 'react'
|
2
|
-
|
1
|
+
import React, { useState, useRef } from 'react'
|
3
2
|
import Button from '../../pb_button/_button'
|
4
|
-
import
|
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"
|
8
|
+
|
9
|
+
HighchartsMore(Highcharts);
|
10
|
+
SolidGauge(Highcharts);
|
5
11
|
|
6
12
|
const GaugeLiveData = (props) => {
|
7
13
|
const [value, setValue] = useState(50)
|
8
14
|
const [name, setName] = useState('Name')
|
15
|
+
const chartRef = useRef(null)
|
16
|
+
|
17
|
+
const namesArray = ['Name', 'Windows', 'Doors', 'Roofing', 'Siding', 'Gutters']
|
9
18
|
|
10
19
|
const updateValue = () => {
|
11
|
-
|
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
|
+
}
|
12
27
|
}
|
28
|
+
|
13
29
|
const updateName = () => {
|
14
30
|
let index = namesArray.indexOf(name)
|
15
31
|
if (namesArray.indexOf(name) == 5) {
|
@@ -18,8 +34,23 @@ const GaugeLiveData = (props) => {
|
|
18
34
|
index += 1
|
19
35
|
}
|
20
36
|
setName(namesArray[index])
|
37
|
+
|
38
|
+
const chart = chartRef.current?.chart
|
39
|
+
if (chart) {
|
40
|
+
chart.series[0].points[0].update({ name: namesArray[index] })
|
41
|
+
}
|
21
42
|
}
|
22
|
-
|
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
|
+
)
|
23
54
|
|
24
55
|
return (
|
25
56
|
<div>
|
@@ -33,10 +64,10 @@ const GaugeLiveData = (props) => {
|
|
33
64
|
text="Update Name"
|
34
65
|
{...props}
|
35
66
|
/>
|
36
|
-
<
|
37
|
-
|
38
|
-
|
39
|
-
{
|
67
|
+
<HighchartsReact
|
68
|
+
highcharts={Highcharts}
|
69
|
+
options={options}
|
70
|
+
ref={chartRef}
|
40
71
|
/>
|
41
72
|
</div>
|
42
73
|
)
|
@@ -1,22 +1,54 @@
|
|
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'
|
8
|
+
import typography from '../../tokens/exports/_typography.module.scss'
|
3
9
|
|
4
|
-
|
5
|
-
|
6
|
-
}]
|
10
|
+
HighchartsMore(Highcharts);
|
11
|
+
SolidGauge(Highcharts);
|
7
12
|
|
8
|
-
const
|
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
|
-
)
|
13
|
+
const data = [{ name: "Rating", y: 4.5 }]
|
21
14
|
|
22
|
-
|
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;
|