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.
Files changed (189) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +0 -1
  3. data/app/pb_kits/playbook/pb_advanced_table/Components/CustomCell.tsx +7 -6
  4. data/app/pb_kits/playbook/pb_advanced_table/Components/RegularTableView.tsx +8 -2
  5. data/app/pb_kits/playbook/pb_advanced_table/Components/SortIconButton.tsx +24 -25
  6. data/app/pb_kits/playbook/pb_advanced_table/Components/TableActionBar.tsx +10 -10
  7. data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +11 -13
  8. data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableState.ts +7 -4
  9. data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableHeader.tsx +1 -1
  10. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +112 -2
  11. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +13 -7
  12. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.html.erb +2 -2
  13. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.rb +14 -2
  14. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +90 -0
  15. data/app/pb_kits/playbook/pb_advanced_table/advanced_table_action_bar.js +16 -0
  16. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers_vertical_border.html.erb +43 -0
  17. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers_vertical_border.jsx +64 -0
  18. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control.jsx +60 -0
  19. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control.md +3 -0
  20. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_per_row.jsx +57 -0
  21. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_per_row.md +1 -0
  22. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling.html.erb +46 -0
  23. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling_rails.md +7 -0
  24. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_header_rails.html.erb +1 -1
  25. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_rails.html.erb +1 -1
  26. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_per_column.jsx +55 -0
  27. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_per_column.md +6 -0
  28. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_per_column_for_multi_column.jsx +80 -0
  29. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_per_column_for_multi_column.md +1 -0
  30. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_with_custom_header.md +1 -1
  31. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_with_custom_header_multi_header.jsx +107 -0
  32. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_with_custom_header_multi_header.md +1 -0
  33. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_with_custom_header_rails.html.erb +51 -0
  34. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_with_custom_header_rails.md +1 -0
  35. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +9 -0
  36. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +6 -0
  37. data/app/pb_kits/playbook/pb_advanced_table/flat_advanced_table.js +4 -11
  38. data/app/pb_kits/playbook/pb_advanced_table/index.js +108 -125
  39. data/app/pb_kits/playbook/pb_advanced_table/scss_partials/advanced_table_sticky_mixin.scss +7 -1
  40. data/app/pb_kits/playbook/pb_advanced_table/table_body.rb +7 -4
  41. data/app/pb_kits/playbook/pb_advanced_table/table_header.html.erb +5 -1
  42. data/app/pb_kits/playbook/pb_advanced_table/table_header.rb +46 -4
  43. data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +13 -4
  44. data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +24 -5
  45. data/app/pb_kits/playbook/pb_advanced_table/table_subrow_header.rb +1 -1
  46. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_position.md +1 -1
  47. data/app/pb_kits/playbook/pb_checkbox/checkbox.rb +12 -1
  48. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_indeterminate.html.erb +1 -1
  49. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_indeterminate_rails.md +2 -1
  50. data/app/pb_kits/playbook/pb_checkbox/index.js +218 -26
  51. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.md +1 -1
  52. data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.html.erb +10 -1
  53. data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.rb +2 -0
  54. data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_input_options.html.erb +24 -0
  55. data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_input_options.md +3 -0
  56. data/app/pb_kits/playbook/pb_circle_icon_button/docs/example.yml +1 -0
  57. data/app/pb_kits/playbook/pb_date/_date.tsx +5 -3
  58. data/app/pb_kits/playbook/pb_date/date.html.erb +6 -6
  59. data/app/pb_kits/playbook/pb_date/date.rb +2 -0
  60. data/app/pb_kits/playbook/pb_date/docs/_date_with_show_current_year.html.erb +4 -0
  61. data/app/pb_kits/playbook/pb_date/docs/_date_with_show_current_year.jsx +17 -0
  62. data/app/pb_kits/playbook/pb_date/docs/_date_with_show_current_year.md +1 -0
  63. data/app/pb_kits/playbook/pb_date/docs/example.yml +2 -0
  64. data/app/pb_kits/playbook/pb_date/docs/index.js +1 -0
  65. data/app/pb_kits/playbook/pb_dropdown/_dropdown.scss +17 -1
  66. data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +6 -0
  67. data/app/pb_kits/playbook/pb_dropdown/_dropdown_mixin.scss +36 -0
  68. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_active_style_options.jsx +90 -0
  69. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_active_style_options_react.md +4 -0
  70. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_radio_options.jsx +1 -0
  71. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_radio_options_react.md +1 -1
  72. data/app/pb_kits/playbook/pb_dropdown/docs/example.yml +3 -2
  73. data/app/pb_kits/playbook/pb_dropdown/docs/index.js +2 -1
  74. data/app/pb_kits/playbook/pb_dropdown/dropdown.test.jsx +24 -0
  75. data/app/pb_kits/playbook/pb_dropdown/index.js +3 -0
  76. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownOption.tsx +11 -1
  77. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.tsx +2 -2
  78. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_no_icon.html.erb +22 -0
  79. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_no_icon.jsx +43 -0
  80. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_no_icon.md +1 -0
  81. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/example.yml +2 -0
  82. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/index.js +1 -0
  83. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.html.erb +2 -1
  84. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.rb +1 -1
  85. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.test.js +6 -0
  86. data/app/pb_kits/playbook/pb_flex/_flex.tsx +9 -6
  87. data/app/pb_kits/playbook/pb_flex/docs/_flex_gap.html.erb +12 -1
  88. data/app/pb_kits/playbook/pb_flex/docs/_flex_gap.jsx +26 -1
  89. data/app/pb_kits/playbook/pb_flex/docs/_flex_gap_rails.md +11 -0
  90. data/app/pb_kits/playbook/pb_flex/docs/_flex_gap_react.md +11 -0
  91. data/app/pb_kits/playbook/pb_flex/flex.rb +6 -12
  92. data/app/pb_kits/playbook/pb_gauge/docs/_description.md +1 -0
  93. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_colors.jsx +32 -15
  94. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_colors_react.md +2 -0
  95. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_complex.jsx +35 -9
  96. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_complex_react.md +1 -0
  97. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_default.jsx +26 -14
  98. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_disable_animation.jsx +32 -15
  99. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_full_circle.jsx +45 -17
  100. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_height.jsx +59 -22
  101. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_live_data.jsx +40 -9
  102. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_min_max.jsx +50 -18
  103. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_sizing.jsx +31 -18
  104. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_title.jsx +34 -17
  105. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_units.jsx +64 -23
  106. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_units_react.md +1 -0
  107. data/app/pb_kits/playbook/pb_gauge/docs/example.yml +0 -1
  108. data/app/pb_kits/playbook/pb_gauge/docs/index.js +0 -1
  109. data/app/pb_kits/playbook/pb_gauge/gaugeTheme.ts +7 -1
  110. data/app/pb_kits/playbook/pb_line_graph/docs/_description.md +1 -3
  111. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_colors.jsx +36 -17
  112. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_colors_react.md +3 -0
  113. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_default.jsx +31 -16
  114. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_height.jsx +63 -31
  115. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_height.md +3 -0
  116. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend.jsx +35 -16
  117. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_nonclickable.jsx +41 -16
  118. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_position.jsx +107 -62
  119. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_position.md +4 -7
  120. data/app/pb_kits/playbook/pb_line_graph/docs/example.yml +0 -1
  121. data/app/pb_kits/playbook/pb_line_graph/docs/index.js +0 -1
  122. data/app/pb_kits/playbook/pb_line_graph/lineGraphTheme.ts +16 -1
  123. data/app/pb_kits/playbook/pb_multi_level_select/_helper_functions.tsx +18 -9
  124. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +3 -1
  125. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_show_checked_children.html.erb +75 -0
  126. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_show_checked_children.jsx +94 -0
  127. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_show_checked_children.md +3 -0
  128. data/app/pb_kits/playbook/pb_multi_level_select/docs/index.js +1 -1
  129. data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select.rb +3 -0
  130. data/app/pb_kits/playbook/pb_pagination/_pagination.test.jsx +212 -0
  131. data/app/pb_kits/playbook/pb_pagination/_pagination.tsx +12 -1
  132. data/app/pb_kits/playbook/pb_pagination/docs/_pagination_default_rails.md +3 -1
  133. data/app/pb_kits/playbook/pb_pagination/docs/_pagination_default_react.md +3 -1
  134. data/app/pb_kits/playbook/pb_pagination/docs/_pagination_external_control.jsx +112 -0
  135. data/app/pb_kits/playbook/pb_pagination/docs/_pagination_external_control_react.md +3 -0
  136. data/app/pb_kits/playbook/pb_pagination/docs/example.yml +1 -0
  137. data/app/pb_kits/playbook/pb_pagination/docs/index.js +1 -0
  138. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +14 -1
  139. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_strict_mode.html.erb +10 -0
  140. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_strict_mode.jsx +26 -0
  141. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_strict_mode.md +3 -0
  142. data/app/pb_kits/playbook/pb_phone_number_input/docs/example.yml +2 -0
  143. data/app/pb_kits/playbook/pb_phone_number_input/docs/index.js +1 -0
  144. data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.rb +3 -0
  145. data/app/pb_kits/playbook/pb_select/select.rb +4 -2
  146. data/app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.html.erb +1 -0
  147. data/app/pb_kits/playbook/pb_table/styles/_vertical_border.scss +49 -1
  148. data/app/pb_kits/playbook/utilities/_gap.scss +12 -24
  149. data/app/pb_kits/playbook/utilities/globalPropNames.mjs +2 -0
  150. data/app/pb_kits/playbook/utilities/globalProps.ts +28 -4
  151. data/dist/chunks/_line_graph-B9yItXkt.js +1 -0
  152. data/dist/chunks/_typeahead-Mbp0CWgZ.js +6 -0
  153. data/dist/chunks/_weekday_stacked-C-5U1QRT.js +37 -0
  154. data/dist/chunks/lib-CY5ZPzic.js +29 -0
  155. data/dist/chunks/{pb_form_validation-B7kuYG-_.js → pb_form_validation-D3b0JKHH.js} +1 -1
  156. data/dist/chunks/vendor.js +1 -1
  157. data/dist/menu.yml +4 -11
  158. data/dist/playbook-doc.js +2 -2
  159. data/dist/playbook-rails-react-bindings.js +1 -1
  160. data/dist/playbook-rails.js +1 -1
  161. data/dist/playbook.css +1 -1
  162. data/lib/playbook/classnames.rb +2 -0
  163. data/lib/playbook/spacing.rb +53 -1
  164. data/lib/playbook/version.rb +2 -2
  165. metadata +55 -27
  166. data/app/pb_kits/playbook/pb_flex/docs/_flex_gap.md +0 -9
  167. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_pb_styles.jsx +0 -30
  168. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_pb_styles.md +0 -1
  169. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_pb_styles.jsx +0 -52
  170. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_pb_styles.md +0 -1
  171. data/app/pb_kits/playbook/pb_walkthrough/_walkthrough.scss +0 -0
  172. data/app/pb_kits/playbook/pb_walkthrough/_walkthrough.tsx +0 -202
  173. data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_continuous.jsx +0 -69
  174. data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_default.jsx +0 -71
  175. data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_multi_beacon.jsx +0 -110
  176. data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_no_beacon.jsx +0 -76
  177. data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_no_overlay.jsx +0 -76
  178. data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_styled.jsx +0 -76
  179. data/app/pb_kits/playbook/pb_walkthrough/docs/example.yml +0 -10
  180. data/app/pb_kits/playbook/pb_walkthrough/docs/index.js +0 -6
  181. data/app/pb_kits/playbook/pb_walkthrough/walkthrough.test.jsx +0 -34
  182. data/dist/chunks/_circle_chart-D01WLw-z.js +0 -1
  183. data/dist/chunks/_typeahead-mrBE9f17.js +0 -22
  184. data/dist/chunks/_weekday_stacked-_LSSbN1y.js +0 -45
  185. data/dist/chunks/lib-CHh_1-Oj.js +0 -29
  186. /data/app/pb_kits/playbook/pb_advanced_table/docs/{_advanced_table_row_styling.md → _advanced_table_row_styling_react.md} +0 -0
  187. /data/app/pb_kits/playbook/pb_gauge/docs/{_gauge_colors.md → _gauge_colors_rails.md} +0 -0
  188. /data/app/pb_kits/playbook/pb_gauge/docs/{_gauge_complex.md → _gauge_complex_rails.md} +0 -0
  189. /data/app/pb_kits/playbook/pb_line_graph/docs/{_line_graph_colors.md → _line_graph_colors_rails.md} +0 -0
@@ -1,5 +1,7 @@
1
1
  import React from 'react'
2
- import LineGraph from '../../pb_line_graph/_line_graph'
2
+ import lineGraphTheme from '../lineGraphTheme'
3
+ import Highcharts from "highcharts"
4
+ import HighchartsReact from "highcharts-react-official"
3
5
  import Title from '../../pb_title/_title'
4
6
 
5
7
  const data = [{
@@ -19,66 +21,109 @@ const data = [{
19
21
  data: [12908, 5948, 8105, 11248, 8989, 11816, 18274, 18111],
20
22
  }]
21
23
 
22
- const LineGraphLegendPosition = (props) => (
23
- <div>
24
- <Title
25
- paddingBottom="sm"
26
- paddingTop="sm"
27
- size={4}
28
- tag="h4"
29
- text="align | verticalAlign"
30
- />
31
- <LineGraph
32
- align='right'
33
- axisTitle="Number of Employees"
34
- chartData={data}
35
- id="legend-position-line"
36
- legend
37
- title="Alignment of Legend"
38
- verticalAlign="top"
39
- xAxisCategories={['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug']}
40
- yAxisMin={0}
41
- {...props}
42
- />
43
- <Title
44
- paddingBottom="sm"
45
- paddingTop="sm"
46
- size={4}
47
- tag="h4"
48
- text="layout"
49
- />
50
- <LineGraph
51
- axisTitle="Number of Employees"
52
- chartData={data}
53
- id="legend-position-line-1"
54
- layout="vertical"
55
- legend
56
- title="Layout of Legend"
57
- xAxisCategories={['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug']}
58
- yAxisMin={0}
59
- {...props}
60
- />
61
- <Title
62
- paddingBottom="sm"
63
- paddingTop="sm"
64
- size={4}
65
- tag="h4"
66
- text="x | y"
67
- />
68
- <LineGraph
69
- axisTitle="Number of Employees"
70
- chartData={data}
71
- id="legend-position-line-2"
72
- layout="vertical"
73
- legend
74
- title="Offset of Legend"
75
- x={100}
76
- xAxisCategories={['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug']}
77
- y={10}
78
- yAxisMin={0}
79
- {...props}
80
- />
81
- </div>
82
- )
24
+ const categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug']
25
+
26
+ const LineGraphLegendPosition = (props) => {
27
+ const chartOptionsFirst = {
28
+ title: { text: "Alignment of Legend" },
29
+ series: data,
30
+ xAxis: {
31
+ categories: categories,
32
+ },
33
+ yAxis: {
34
+ min: 0,
35
+ title: {
36
+ text: "Number of Employees",
37
+ },
38
+ },
39
+ legend: {
40
+ enabled: true,
41
+ align: 'right',
42
+ verticalAlign: 'top'
43
+ },
44
+ }
45
+
46
+ const chartOptionsSecond = {
47
+ title: { text: "Layout of Legend" },
48
+ series: data,
49
+ xAxis: {
50
+ categories: categories,
51
+ },
52
+ yAxis: {
53
+ min: 0,
54
+ title: {
55
+ text: "Number of Employees",
56
+ },
57
+ },
58
+ legend: {
59
+ enabled: true,
60
+ layout: 'vertical'
61
+ },
62
+ }
63
+
64
+ const chartOptionsThird = {
65
+ title: { text: "Offset of Legend" },
66
+ series: data,
67
+ xAxis: {
68
+ categories: categories,
69
+ },
70
+ yAxis: {
71
+ min: 0,
72
+ title: {
73
+ text: "Number of Employees",
74
+ },
75
+ },
76
+ legend: {
77
+ enabled: true,
78
+ layout: 'vertical',
79
+ x: 100,
80
+ y: 10
81
+ },
82
+ }
83
+
84
+ const optionsFirst = Highcharts.merge({}, lineGraphTheme, chartOptionsFirst)
85
+ const optionsSecond = Highcharts.merge({}, lineGraphTheme, chartOptionsSecond)
86
+ const optionsThird = Highcharts.merge({}, lineGraphTheme, chartOptionsThird)
87
+
88
+ return (
89
+ <div>
90
+ <Title
91
+ paddingY="sm"
92
+ size={4}
93
+ tag="h4"
94
+ text="align | verticalAlign"
95
+ {...props}
96
+ />
97
+ <HighchartsReact
98
+ highcharts={Highcharts}
99
+ options={optionsFirst}
100
+ />
101
+
102
+ <Title
103
+ paddingY="sm"
104
+ size={4}
105
+ tag="h4"
106
+ text="layout"
107
+ {...props}
108
+ />
109
+ <HighchartsReact
110
+ highcharts={Highcharts}
111
+ options={optionsSecond}
112
+ />
113
+
114
+ <Title
115
+ paddingY="sm"
116
+ size={4}
117
+ tag="h4"
118
+ text="x | y"
119
+ {...props}
120
+ />
121
+ <HighchartsReact
122
+ highcharts={Highcharts}
123
+ options={optionsThird}
124
+ />
125
+ </div>
126
+ )
127
+ }
83
128
 
84
129
  export default LineGraphLegendPosition
@@ -1,17 +1,14 @@
1
1
  ##### Prop
2
2
 
3
3
  `align` **Type**: String | **Values**: left | center | right (defaults to center)
4
- `verticalAlign` **Type**: String | **Values**: top | middle | bottom (defaults middle)
4
+ `verticalAlign` **Type**: String | **Values**: top | middle | bottom (defaults to bottom)
5
5
  `layout` **Type**: String | **Values**: horizontal | vertical | proximate (defaults to horizontal)
6
6
  `x` **Type**: Number (defaults to 0)
7
7
  `y` **Type**: Number (defaults to 0)
8
8
 
9
- -
10
-
11
- - `layout` determines the position of the legend items
9
+ `layout` determines the position of the legend items
12
10
  `layout: proximate` will place the legend items as close as possible to the graphs they're representing. It will also determine whether to place the legend above/below or on the side of the plot area, if the legend is in a corner.
13
11
 
14
- - `x` offsets the legend relative to its horizontal alignmnet. Negative x moves it to the left, positive x moves it to the right
15
-
12
+ `x` offsets the legend relative to its horizontal alignment. Negative x moves it to the left, positive x moves it to the right
16
13
 
17
- - `y` offsets the legend relative to its vertical alignmnet. Negative y moves it up, positive y moves it down.
14
+ `y` offsets the legend relative to its vertical alignment. Negative y moves it up, positive y moves it down.
@@ -11,7 +11,6 @@ examples:
11
11
 
12
12
  react:
13
13
  - line_graph_default: Default
14
- - line_graph_pb_styles: Playbook Styles
15
14
  - line_graph_legend: Legend
16
15
  - line_graph_legend_position: Legend Position
17
16
  - line_graph_legend_nonclickable: Legend Nonclickable
@@ -4,4 +4,3 @@ export { default as LineGraphLegendPosition } from './_line_graph_legend_positio
4
4
  export { default as LineGraphLegendNonclickable } from './_line_graph_legend_nonclickable.jsx'
5
5
  export { default as LineGraphHeight } from './_line_graph_height.jsx'
6
6
  export { default as LineGraphColors } from './_line_graph_colors.jsx'
7
- export { default as LineGraphPbStyles } from './_line_graph_pb_styles.jsx'
@@ -50,7 +50,21 @@ const lineGraphTheme = {
50
50
  },
51
51
  },
52
52
  credits: { enabled: false },
53
- legend: { enabled: false },
53
+ legend: {
54
+ enabled: false,
55
+ itemStyle: {
56
+ fontFamily: typography.font_family_base,
57
+ color: colors.text_lt_light,
58
+ fontWeight: typography.regular,
59
+ fontSize: typography.text_smaller,
60
+ },
61
+ itemHoverStyle: {
62
+ color: colors.text_lt_default,
63
+ },
64
+ itemHiddenStyle: {
65
+ color: colors.text_lt_lighter,
66
+ },
67
+ },
54
68
  colors: [
55
69
  colors.data_1,
56
70
  colors.data_2,
@@ -88,6 +102,7 @@ const lineGraphTheme = {
88
102
  minorGridLineColor: colors.border_light,
89
103
  lineWidth: 0,
90
104
  tickWidth: 0,
105
+ tickPixelInterval: 50,
91
106
  labels: {
92
107
  style: {
93
108
  fontFamily: typography.font_family_base,
@@ -143,7 +143,8 @@ export const recursiveCheckParent = (
143
143
 
144
144
  export const getExpandedItems = (
145
145
  treeData: { [key: string]: string }[],
146
- selectedIds: string[]
146
+ selectedIds: string[],
147
+ showCheckedChildren = true
147
148
  ): any[] => {
148
149
  const expandedItems: any[] = [];
149
150
 
@@ -152,19 +153,27 @@ export const getExpandedItems = (
152
153
  const item = items[i];
153
154
  const itemAncestors = [...ancestors, item];
154
155
 
156
+ // Always honor explicit expanded: true
155
157
  if (item.expanded) {
156
158
  expandedItems.push(item.id);
157
159
  }
158
- if (selectedIds && selectedIds.length && selectedIds.includes(item.id)) {
159
- expandedItems.push(...itemAncestors.map((ancestor) => ancestor.id));
160
+
161
+ // Only expand based on selected items if showCheckedChildren is true
162
+ if (showCheckedChildren) {
163
+ if (selectedIds && selectedIds.length && selectedIds.includes(item.id)) {
164
+ expandedItems.push(...itemAncestors.map((ancestor: any) => ancestor.id));
165
+ }
166
+ if (Array.isArray(item.children)) {
167
+ const hasCheckedChildren = item.children.some(
168
+ (child: { [key: string]: string }) => child.checked
169
+ );
170
+ if (hasCheckedChildren) {
171
+ expandedItems.push(...itemAncestors.map((ancestor: any) => ancestor.id));
172
+ }
173
+ }
160
174
  }
175
+
161
176
  if (Array.isArray(item.children)) {
162
- const hasCheckedChildren = item.children.some(
163
- (child: { [key: string]: string }) => child.checked
164
- );
165
- if (hasCheckedChildren) {
166
- expandedItems.push(...itemAncestors.map((ancestor) => ancestor.id));
167
- }
168
177
  traverse(item.children, itemAncestors);
169
178
  }
170
179
  }
@@ -47,6 +47,7 @@ type MultiLevelSelectProps = {
47
47
  name?: string
48
48
  required?: boolean
49
49
  returnAllSelected?: boolean
50
+ showCheckedChildren?: boolean
50
51
  treeData?: { [key: string]: string; }[] | any
51
52
  onChange?: (event: { target: { name?: string; value: any } }) => void
52
53
  onSelect?: (prop: { [key: string]: any }) => void
@@ -71,6 +72,7 @@ const MultiLevelSelect = forwardRef<HTMLInputElement, MultiLevelSelectProps>((pr
71
72
  label,
72
73
  required = false,
73
74
  returnAllSelected = false,
75
+ showCheckedChildren = true,
74
76
  treeData,
75
77
  onChange = () => null,
76
78
  onSelect = () => null,
@@ -104,7 +106,7 @@ const MultiLevelSelect = forwardRef<HTMLInputElement, MultiLevelSelectProps>((pr
104
106
  // State for default return
105
107
  const [defaultReturn, setDefaultReturn] = useState([]);
106
108
  // Get expanded items from treeData
107
- const initialExpandedItems = getExpandedItems(treeData, selectedIds);
109
+ const initialExpandedItems = getExpandedItems(treeData, selectedIds, showCheckedChildren);
108
110
  // Initialize state with expanded items
109
111
  const [expanded, setExpanded] = useState(initialExpandedItems);
110
112
 
@@ -0,0 +1,75 @@
1
+ <% treeData = [{
2
+ label: "Power Home Remodeling",
3
+ value: "powerHomeRemodeling",
4
+ id: "100",
5
+ expanded: true,
6
+ children: [
7
+ {
8
+ label: "People",
9
+ value: "people",
10
+ id: "101",
11
+ children: [
12
+ {
13
+ label: "Talent Acquisition",
14
+ value: "talentAcquisition",
15
+ id: "102",
16
+ },
17
+ {
18
+ label: "Business Affairs",
19
+ value: "businessAffairs",
20
+ id: "103",
21
+ children: [
22
+ {
23
+ label: "Initiatives",
24
+ value: "initiatives",
25
+ id: "104",
26
+ },
27
+ {
28
+ label: "Learning & Development",
29
+ value: "learningAndDevelopment",
30
+ id: "105",
31
+ },
32
+ ],
33
+ },
34
+ {
35
+ label: "People Experience",
36
+ value: "peopleExperience",
37
+ id: "106",
38
+ },
39
+ ],
40
+ },
41
+ {
42
+ label: "Contact Center",
43
+ value: "contactCenter",
44
+ id: "107",
45
+ children: [
46
+ {
47
+ label: "Appointment Management",
48
+ value: "appointmentManagement",
49
+ id: "108",
50
+ },
51
+ {
52
+ label: "Customer Service",
53
+ value: "customerService",
54
+ id: "109",
55
+ },
56
+ {
57
+ label: "Energy",
58
+ value: "energy",
59
+ id: "110",
60
+ },
61
+ ],
62
+ },
63
+ ],
64
+ }] %>
65
+
66
+ <% # Pre-selected node IDs to demonstrate the functionality %>
67
+ <% preSelectedIds = ["102", "104", "109"] %>
68
+
69
+ <%= pb_rails("multi_level_select", props: {
70
+ id: "multi-level-select-show-checked-children-rails",
71
+ name: "my_array",
72
+ tree_data: treeData,
73
+ selected_ids: preSelectedIds,
74
+ show_checked_children: false
75
+ }) %>
@@ -0,0 +1,94 @@
1
+ import React from "react";
2
+ import MultiLevelSelect from "../_multi_level_select";
3
+
4
+ const treeData = [
5
+ {
6
+ label: "Power Home Remodeling",
7
+ value: "powerHomeRemodeling",
8
+ id: "powerhome1",
9
+ expanded: true,
10
+ children: [
11
+ {
12
+ label: "People",
13
+ value: "people",
14
+ id: "people1",
15
+ children: [
16
+ {
17
+ label: "Talent Acquisition",
18
+ value: "talentAcquisition",
19
+ id: "talent1",
20
+ },
21
+ {
22
+ label: "Business Affairs",
23
+ value: "businessAffairs",
24
+ id: "business1",
25
+ children: [
26
+ {
27
+ label: "Initiatives",
28
+ value: "initiatives",
29
+ id: "initiative1",
30
+ },
31
+ {
32
+ label: "Learning & Development",
33
+ value: "learningAndDevelopment",
34
+ id: "development1",
35
+ },
36
+ ],
37
+ },
38
+ {
39
+ label: "People Experience",
40
+ value: "peopleExperience",
41
+ id: "experience1",
42
+ },
43
+ ],
44
+ },
45
+ {
46
+ label: "Contact Center",
47
+ value: "contactCenter",
48
+ id: "contact1",
49
+ children: [
50
+ {
51
+ label: "Appointment Management",
52
+ value: "appointmentManagement",
53
+ id: "appointment1",
54
+ },
55
+ {
56
+ label: "Customer Service",
57
+ value: "customerService",
58
+ id: "customer1",
59
+ },
60
+ {
61
+ label: "Energy",
62
+ value: "energy",
63
+ id: "energy1",
64
+ },
65
+ ],
66
+ },
67
+ ],
68
+ },
69
+ ];
70
+
71
+ // Pre-selected node IDs to demonstrate the functionality
72
+ const preSelectedIds = ["talent1", "initiative1", "customer1"];
73
+
74
+ const MultiLevelSelectShowCheckedChildren = (props) => {
75
+ return (
76
+ <div>
77
+ <MultiLevelSelect
78
+ id='multiselect-checked-children'
79
+ onSelect={(selectedNodes) =>
80
+ console.log(
81
+ "Selected Items",
82
+ selectedNodes
83
+ )
84
+ }
85
+ selectedIds={preSelectedIds}
86
+ showCheckedChildren={false}
87
+ treeData={treeData}
88
+ {...props}
89
+ />
90
+ </div>
91
+ )
92
+ };
93
+
94
+ export default MultiLevelSelectShowCheckedChildren;
@@ -0,0 +1,3 @@
1
+ If you wish to control the auto-expansion of nodes with selected descendants in your multi-level select, you can utilize `showCheckedChildren/show_checked_children`. This prop (set to 'true' by default) controls whether items will be expanded on first render. When set to true, a node with selected descendants will automatically render as expanded so the selected nodes are visible. If you do NOT wish for this to be the case, you can set this prop to false.
2
+
3
+ The prop will still honor any `expanded` attribute set up within your tree data.
@@ -13,4 +13,4 @@ export { default as MultiLevelSelectDisabledOptions } from './_multi_level_selec
13
13
  export { default as MultiLevelSelectDisabledOptionsParent } from './_multi_level_select_disabled_options_parent.jsx'
14
14
  export { default as MultiLevelSelectDisabledOptionsParentDefault } from './_multi_level_select_disabled_options_parent_default.jsx'
15
15
  export { default as MultiLevelSelectDisabledOptionsDefault } from './_multi_level_select_disabled_options_default.jsx'
16
- export { default as MultiLevelSelectLabel } from './_multi_level_select_label.jsx'
16
+ export { default as MultiLevelSelectLabel } from './_multi_level_select_label.jsx'
@@ -32,6 +32,8 @@ module Playbook
32
32
  default: ""
33
33
  prop :label, type: Playbook::Props::String,
34
34
  default: ""
35
+ prop :show_checked_children, type: Playbook::Props::Boolean,
36
+ default: true
35
37
 
36
38
  def classname
37
39
  generate_classname("pb_multi_level_select")
@@ -54,6 +56,7 @@ module Playbook
54
56
  variant: variant,
55
57
  pillColor: pill_color,
56
58
  wrapped: wrapped,
59
+ showCheckedChildren: show_checked_children,
57
60
  }
58
61
  end
59
62
  end