playbook_ui 6.0.1 → 6.1.0.pre.alpha1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (205) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +4 -1
  3. data/app/pb_kits/playbook/data/menu.yml +5 -2
  4. data/app/pb_kits/playbook/index.js +4 -0
  5. data/app/pb_kits/playbook/packs/examples.js +7 -0
  6. data/app/pb_kits/playbook/pb_avatar/_avatar.jsx +2 -2
  7. data/app/pb_kits/playbook/pb_badge/_badge.jsx +2 -5
  8. data/app/pb_kits/playbook/pb_badge/_badge.scss +1 -1
  9. data/app/pb_kits/playbook/pb_badge/badge.rb +1 -6
  10. data/app/pb_kits/playbook/pb_bar_graph/_bar_graph.jsx +2 -2
  11. data/app/pb_kits/playbook/pb_body/_body.jsx +3 -6
  12. data/app/pb_kits/playbook/pb_body/_body.scss +6 -0
  13. data/app/pb_kits/playbook/pb_body/body.rb +2 -8
  14. data/app/pb_kits/playbook/pb_button/_button.jsx +2 -5
  15. data/app/pb_kits/playbook/pb_button/_button.scss +1 -1
  16. data/app/pb_kits/playbook/pb_button/button.rb +1 -7
  17. data/app/pb_kits/playbook/pb_button/docs/_button_default.jsx +2 -0
  18. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar.html.erb +7 -0
  19. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar.jsx +52 -0
  20. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar.scss +101 -0
  21. data/app/pb_kits/playbook/pb_button_toolbar/button_toolbar.rb +29 -0
  22. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_default.html.erb +7 -0
  23. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_default.jsx +29 -0
  24. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_secondary.html.erb +7 -0
  25. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_secondary.jsx +34 -0
  26. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_vertical.html.erb +11 -0
  27. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_vertical.jsx +29 -0
  28. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_vertical_secondary.html.erb +11 -0
  29. data/app/pb_kits/playbook/pb_button_toolbar/docs/_button_toolbar_vertical_secondary.jsx +34 -0
  30. data/app/pb_kits/playbook/pb_button_toolbar/docs/_description.md +1 -0
  31. data/app/pb_kits/playbook/pb_button_toolbar/docs/example.yml +15 -0
  32. data/app/pb_kits/playbook/pb_button_toolbar/docs/index.js +4 -0
  33. data/app/pb_kits/playbook/pb_caption/_caption.jsx +3 -7
  34. data/app/pb_kits/playbook/pb_caption/_caption.scss +0 -4
  35. data/app/pb_kits/playbook/pb_caption/caption.rb +1 -8
  36. data/app/pb_kits/playbook/pb_card/_card.jsx +17 -14
  37. data/app/pb_kits/playbook/pb_card/_card.scss +4 -1
  38. data/app/pb_kits/playbook/pb_card/card.rb +2 -9
  39. data/app/pb_kits/playbook/pb_card/docs/_card_dark.html.erb +1 -1
  40. data/app/pb_kits/playbook/pb_checkbox/_checkbox.jsx +2 -2
  41. data/app/pb_kits/playbook/pb_checkbox/checkbox.rb +1 -8
  42. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.jsx +2 -2
  43. data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.rb +0 -2
  44. data/app/pb_kits/playbook/pb_contact/_contact.jsx +2 -2
  45. data/app/pb_kits/playbook/pb_currency/_currency.jsx +2 -2
  46. data/app/pb_kits/playbook/pb_dashboard/pbChartsLightTheme.js +26 -0
  47. data/app/pb_kits/playbook/pb_dashboard_value/_dashboard_value.jsx +2 -2
  48. data/app/pb_kits/playbook/pb_date/_date.jsx +4 -4
  49. data/app/pb_kits/playbook/pb_date_picker/_date_picker.html.erb +38 -0
  50. data/app/pb_kits/playbook/pb_date_picker/_date_picker.jsx +101 -0
  51. data/app/pb_kits/playbook/pb_date_picker/_date_picker.scss +846 -0
  52. data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +41 -0
  53. data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.js +91 -0
  54. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default.html.erb +1 -0
  55. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default.jsx +12 -0
  56. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.html.erb +24 -0
  57. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.jsx +30 -0
  58. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_disabled.html.erb +43 -0
  59. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_disabled.jsx +48 -0
  60. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_error.html.erb +4 -0
  61. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_error.jsx +13 -0
  62. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_format.html.erb +19 -0
  63. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_format.jsx +25 -0
  64. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_label.html.erb +4 -0
  65. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_label.jsx +13 -0
  66. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_min_max.html.erb +14 -0
  67. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_min_max.jsx +22 -0
  68. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.html.erb +4 -0
  69. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.jsx +13 -0
  70. data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +23 -0
  71. data/app/pb_kits/playbook/pb_date_picker/docs/index.js +8 -0
  72. data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.jsx +2 -2
  73. data/app/pb_kits/playbook/pb_date_range_stacked/_date_range_stacked.jsx +2 -2
  74. data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.jsx +2 -2
  75. data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.jsx +2 -2
  76. data/app/pb_kits/playbook/pb_date_year_stacked/_date_year_stacked.jsx +2 -2
  77. data/app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.jsx +2 -2
  78. data/app/pb_kits/playbook/pb_file_upload/_file_upload.jsx +2 -2
  79. data/app/pb_kits/playbook/pb_filter/Filter/FilterBackground.jsx +2 -2
  80. data/app/pb_kits/playbook/pb_filter/docs/_filter_default.html.erb +2 -1
  81. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.jsx +2 -2
  82. data/app/pb_kits/playbook/pb_flex/_flex.jsx +2 -2
  83. data/app/pb_kits/playbook/pb_flex/_flex_item.jsx +2 -2
  84. data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +2 -1
  85. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +2 -1
  86. data/app/pb_kits/playbook/pb_form/docs/_form_simple_form.html.erb +3 -1
  87. data/app/pb_kits/playbook/pb_form/docs/_form_simple_form_validate.html.erb +3 -1
  88. data/app/pb_kits/playbook/pb_form/form_builder.rb +1 -0
  89. data/app/pb_kits/playbook/pb_form/form_builder/date_picker_field.rb +41 -0
  90. data/app/pb_kits/playbook/pb_form_pill/_form_pill.jsx +2 -2
  91. data/app/pb_kits/playbook/pb_gauge/_gauge.html.erb +12 -0
  92. data/app/pb_kits/playbook/pb_gauge/_gauge.jsx +110 -0
  93. data/app/pb_kits/playbook/pb_gauge/_gauge.scss +11 -0
  94. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_default.html.erb +11 -0
  95. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_default.jsx +17 -0
  96. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_disable_animation.html.erb +12 -0
  97. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_disable_animation.jsx +18 -0
  98. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_full_circle.html.erb +14 -0
  99. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_full_circle.jsx +20 -0
  100. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_height.html.erb +15 -0
  101. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_height.jsx +23 -0
  102. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_live_data.jsx +40 -0
  103. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_min_max.html.erb +15 -0
  104. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_min_max.jsx +21 -0
  105. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_min_max.md +1 -0
  106. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_sizing.html.erb +26 -0
  107. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_sizing.jsx +37 -0
  108. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_sizing.md +1 -0
  109. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_title.html.erb +14 -0
  110. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_title.jsx +20 -0
  111. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_units.html.erb +29 -0
  112. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_units.jsx +29 -0
  113. data/app/pb_kits/playbook/pb_gauge/docs/example.yml +24 -0
  114. data/app/pb_kits/playbook/pb_gauge/docs/index.js +9 -0
  115. data/app/pb_kits/playbook/pb_gauge/gauge.rb +57 -0
  116. data/app/pb_kits/playbook/pb_hashtag/_hashtag.jsx +2 -2
  117. data/app/pb_kits/playbook/pb_highlight/_highlight.jsx +2 -2
  118. data/app/pb_kits/playbook/pb_home_address_street/_home_address_street.jsx +2 -2
  119. data/app/pb_kits/playbook/pb_icon/_icon.jsx +2 -2
  120. data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.jsx +2 -2
  121. data/app/pb_kits/playbook/pb_icon_value/_icon_value.jsx +2 -2
  122. data/app/pb_kits/playbook/pb_image/_image.jsx +2 -2
  123. data/app/pb_kits/playbook/pb_kit/dateTime.js +5 -1
  124. data/app/pb_kits/playbook/pb_label_pill/_label_pill.jsx +2 -2
  125. data/app/pb_kits/playbook/pb_label_value/_label_value.jsx +2 -2
  126. data/app/pb_kits/playbook/pb_layout/_layout.jsx +6 -6
  127. data/app/pb_kits/playbook/pb_legend/_legend.jsx +2 -2
  128. data/app/pb_kits/playbook/pb_line_graph/_line_graph.jsx +2 -2
  129. data/app/pb_kits/playbook/pb_list/_list.jsx +2 -2
  130. data/app/pb_kits/playbook/pb_list/_list_item.jsx +2 -2
  131. data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.jsx +2 -2
  132. data/app/pb_kits/playbook/pb_logistic/_logistic.jsx +111 -0
  133. data/app/pb_kits/playbook/pb_message/_message.jsx +2 -2
  134. data/app/pb_kits/playbook/pb_multiple_users/_multiple_users.jsx +2 -2
  135. data/app/pb_kits/playbook/pb_multiple_users_stacked/_multiple_users_stacked.jsx +2 -2
  136. data/app/pb_kits/playbook/pb_nav/_nav.jsx +2 -2
  137. data/app/pb_kits/playbook/pb_online_status/_online_status.jsx +2 -2
  138. data/app/pb_kits/playbook/pb_person/_person.jsx +2 -2
  139. data/app/pb_kits/playbook/pb_person_contact/_person_contact.jsx +2 -2
  140. data/app/pb_kits/playbook/pb_pill/_pill.jsx +2 -2
  141. data/app/pb_kits/playbook/pb_popover/_popover.jsx +2 -2
  142. data/app/pb_kits/playbook/pb_popover/docs/_popover_list.jsx +5 -5
  143. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.jsx +2 -2
  144. data/app/pb_kits/playbook/pb_progress_simple/_progress_simple.jsx +2 -2
  145. data/app/pb_kits/playbook/pb_progress_step/_progress_step.jsx +2 -2
  146. data/app/pb_kits/playbook/pb_radio/_radio.jsx +2 -2
  147. data/app/pb_kits/playbook/pb_section_separator/_section_separator.jsx +2 -2
  148. data/app/pb_kits/playbook/pb_select/_select.jsx +2 -2
  149. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.jsx +12 -16
  150. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +1 -1
  151. data/app/pb_kits/playbook/pb_selectable_card/selectable_card.rb +1 -7
  152. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.jsx +26 -26
  153. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.scss +1 -1
  154. data/app/pb_kits/playbook/pb_selectable_card_icon/selectable_card_icon.rb +1 -8
  155. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.jsx +8 -10
  156. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.scss +1 -1
  157. data/app/pb_kits/playbook/pb_selectable_icon/selectable_icon.rb +1 -7
  158. data/app/pb_kits/playbook/pb_stat_change/_stat_change.jsx +2 -2
  159. data/app/pb_kits/playbook/pb_stat_value/_stat_value.jsx +2 -2
  160. data/app/pb_kits/playbook/pb_table/_table.jsx +2 -2
  161. data/app/pb_kits/playbook/pb_table/_table_row.jsx +2 -2
  162. data/app/pb_kits/playbook/pb_text_input/_text_input.jsx +2 -2
  163. data/app/pb_kits/playbook/pb_textarea/_textarea.html.erb +1 -1
  164. data/app/pb_kits/playbook/pb_textarea/_textarea.jsx +2 -2
  165. data/app/pb_kits/playbook/pb_textarea/_textarea.scss +2 -1
  166. data/app/pb_kits/playbook/pb_time/_time.jsx +57 -14
  167. data/app/pb_kits/playbook/pb_time/_time.scss +17 -0
  168. data/app/pb_kits/playbook/pb_time/docs/_time_align.jsx +27 -0
  169. data/app/pb_kits/playbook/pb_time/docs/_time_dark.jsx +28 -0
  170. data/app/pb_kits/playbook/pb_time/docs/_time_default.jsx +28 -0
  171. data/app/pb_kits/playbook/pb_time/docs/_time_timestamp.jsx +32 -0
  172. data/app/pb_kits/playbook/pb_time/docs/example.yml +4 -0
  173. data/app/pb_kits/playbook/pb_time/docs/index.js +4 -0
  174. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.jsx +2 -2
  175. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.jsx +2 -2
  176. data/app/pb_kits/playbook/pb_timestamp/_timestamp.jsx +2 -2
  177. data/app/pb_kits/playbook/pb_title/_title.jsx +3 -6
  178. data/app/pb_kits/playbook/pb_title/_title.scss +1 -1
  179. data/app/pb_kits/playbook/pb_title/title.rb +1 -9
  180. data/app/pb_kits/playbook/pb_title_count/_title_count.jsx +2 -2
  181. data/app/pb_kits/playbook/pb_title_detail/_title_detail.jsx +2 -2
  182. data/app/pb_kits/playbook/pb_toggle/_toggle.jsx +39 -31
  183. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_custom.jsx +31 -0
  184. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_custom_radio.html.erb +6 -6
  185. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_custom_radio.jsx +72 -0
  186. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_default.html.erb +1 -3
  187. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_default.jsx +6 -19
  188. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_name.jsx +57 -0
  189. data/app/pb_kits/playbook/pb_toggle/docs/{_toggle_checked.html.erb → _toggle_size.html.erb} +2 -2
  190. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_size.jsx +44 -0
  191. data/app/pb_kits/playbook/pb_toggle/docs/example.yml +8 -5
  192. data/app/pb_kits/playbook/pb_toggle/docs/index.js +4 -2
  193. data/app/pb_kits/playbook/pb_user/_user.jsx +2 -2
  194. data/app/pb_kits/playbook/pb_user_badge/_user_badge.jsx +2 -2
  195. data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.jsx +2 -2
  196. data/app/pb_kits/playbook/plugins/pb_chart.js +74 -0
  197. data/app/pb_kits/playbook/props.rb +6 -0
  198. data/app/pb_kits/playbook/utilities/{spacing.js → globalProps.js} +14 -1
  199. data/app/pb_kits/playbook/utilities/props.js +1 -0
  200. data/app/pb_kits/playbook/vendor.js +6 -0
  201. data/lib/generators/kit/templates/kit_jsx.erb.tt +2 -2
  202. data/lib/playbook/version.rb +1 -1
  203. metadata +81 -9
  204. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_accessibility.jsx +0 -12
  205. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_data.jsx +0 -15
@@ -0,0 +1,11 @@
1
+ [class^=pb_gauge_kit] {
2
+
3
+ .suffix {
4
+ fill: $text_lt_light;
5
+ font: $regular $font_larger $font_family_base;
6
+ }
7
+ .prefix {
8
+ fill: $text_lt_light;
9
+ font: $regular $font_base $font_family_base;
10
+ }
11
+ }
@@ -0,0 +1,11 @@
1
+ <% data = [
2
+ {
3
+ name: 'Name',
4
+ value: 45,
5
+ }
6
+ ]%>
7
+
8
+ <%= pb_rails("gauge", props: {
9
+ id: "gauge-default",
10
+ chart_data: data,
11
+ }) %>
@@ -0,0 +1,17 @@
1
+ import React from 'react'
2
+ import { Gauge } from '../../'
3
+
4
+ const data = [
5
+ { name: 'Name', value: 45 },
6
+ ]
7
+
8
+ const GaugeDefault = () => (
9
+ <div>
10
+ <Gauge
11
+ chartData={data}
12
+ id="gauge-default"
13
+ />
14
+ </div>
15
+ )
16
+
17
+ export default GaugeDefault
@@ -0,0 +1,12 @@
1
+ <% data = [
2
+ {
3
+ name: 'Participants',
4
+ value: 84,
5
+ }
6
+ ]%>
7
+
8
+ <%= pb_rails("gauge", props: {
9
+ id: "gauge-disable-animation",
10
+ chart_data: data,
11
+ disable_animation: true,
12
+ }) %>
@@ -0,0 +1,18 @@
1
+ import React from 'react'
2
+ import { Gauge } from '../../'
3
+
4
+ const data = [
5
+ { name: 'Participants', value: 84 },
6
+ ]
7
+
8
+ const GaugeDisableAnimation = () => (
9
+ <div>
10
+ <Gauge
11
+ chartData={data}
12
+ disableAnimation
13
+ id="gauge-disable-animation"
14
+ />
15
+ </div>
16
+ )
17
+
18
+ export default GaugeDisableAnimation
@@ -0,0 +1,14 @@
1
+ <% data = [
2
+ {
3
+ name: 'Capacity',
4
+ value: 75,
5
+ }
6
+ ]%>
7
+
8
+ <%= pb_rails("gauge", props: {
9
+ id: "full-circle",
10
+ chart_data: data,
11
+ full_circle: true,
12
+ title: "Seating Capacity",
13
+ suffix: "%"
14
+ }) %>
@@ -0,0 +1,20 @@
1
+ import React from 'react'
2
+ import { Gauge } from '../../'
3
+
4
+ const data = [
5
+ { name: 'Capacity', value: 75 },
6
+ ]
7
+
8
+ const GaugeFullCircle = () => (
9
+ <div>
10
+ <Gauge
11
+ chartData={data}
12
+ fullCircle
13
+ id="gauge-full-circle"
14
+ suffix="%"
15
+ title="Seating Capacity"
16
+ />
17
+ </div>
18
+ )
19
+
20
+ export default GaugeFullCircle
@@ -0,0 +1,15 @@
1
+ <%= pb_rails("gauge", props: {
2
+ id: "gauge-height-px",
3
+ chart_data: [{ name: "Pixels", value: 400 }],
4
+ height: '400',
5
+ title: "Fixed Height in Pixels",
6
+ suffix: "px"
7
+ }) %>
8
+
9
+ <%= pb_rails("gauge", props: {
10
+ id: "gauge-height-percent",
11
+ chart_data: [{ name: "Percentage", value: 45 }],
12
+ height: '45%',
13
+ title: "Height as Percentage of Width",
14
+ suffix: "%"
15
+ }) %>
@@ -0,0 +1,23 @@
1
+ import React from 'react'
2
+ import { Gauge } from '../../'
3
+
4
+ const GaugeHeight = () => (
5
+ <div>
6
+ <Gauge
7
+ chartData={[ { name: 'Pixels', value: 400 } ]}
8
+ height="400"
9
+ id="gauge-height-px"
10
+ suffix="px"
11
+ title="Fixed Height in Pixels"
12
+ />
13
+ <Gauge
14
+ chartData={[ { name: 'Percentage', value: 45 } ]}
15
+ height="45%"
16
+ id="gauge-height-percent"
17
+ suffix="%"
18
+ title="Height as Percentage of Width"
19
+ />
20
+ </div>
21
+ )
22
+
23
+ export default GaugeHeight
@@ -0,0 +1,40 @@
1
+ import React, { useState } from 'react'
2
+ import { Button, Gauge } from '../../'
3
+
4
+ const GaugeLiveData = () => {
5
+ const [value, setValue] = useState(50)
6
+ const [name, setName] = useState('Name')
7
+
8
+ const updateValue = () => {
9
+ setValue(Math.floor(Math.random() * 100))
10
+ }
11
+ const updateName = () => {
12
+ let index = namesArray.indexOf(name)
13
+ if (namesArray.indexOf(name) == 5) {
14
+ index = 0
15
+ } else {
16
+ index += 1
17
+ }
18
+ setName(namesArray[index])
19
+ }
20
+ const namesArray = ['Name', 'Windows', 'Doors', 'Roofing', 'Siding', 'Gutters']
21
+
22
+ return (
23
+ <div>
24
+ <Button
25
+ onClick={updateValue}
26
+ text="Update Value"
27
+ />
28
+ <Button
29
+ onClick={updateName}
30
+ text="Update Name"
31
+ />
32
+ <Gauge
33
+ chartData={[{ name: name, value: value }]}
34
+ id="gauge-live-data"
35
+ />
36
+ </div>
37
+ )
38
+ }
39
+
40
+ export default GaugeLiveData
@@ -0,0 +1,15 @@
1
+ <% data = [
2
+ {
3
+ name: 'Rating',
4
+ value: 4.5,
5
+ }
6
+ ]%>
7
+
8
+ <%= pb_rails("gauge", props: {
9
+ id: "gauge-min-max",
10
+ chart_data: data,
11
+ min: 0,
12
+ max: 5,
13
+ show_labels: true,
14
+ title: "Product Rating"
15
+ }) %>
@@ -0,0 +1,21 @@
1
+ import React from 'react'
2
+ import { Gauge } from '../../'
3
+
4
+ const data = [{
5
+ name: 'Rating', value: 4.5,
6
+ }]
7
+
8
+ const GaugeMinMax = () => (
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
+ />
18
+ </div>
19
+ )
20
+
21
+ export default GaugeMinMax
@@ -0,0 +1 @@
1
+ ### Min defaults to 0, Max to 100.
@@ -0,0 +1,26 @@
1
+ <%= pb_rails("flex", props: {wrap: true}) do %>
2
+ <%= pb_rails("flex/flex_item", props: {fixed_size: "400px"}) do %>
3
+ <%= pb_rails("gauge", props: {
4
+ id: "gauge-sizing4",
5
+ chart_data: [{ name: "Point 1", value: 100 }],
6
+ }) %>
7
+ <% end %>
8
+ <%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>
9
+ <%= pb_rails("gauge", props: {
10
+ id: "gauge-sizing3",
11
+ chart_data: [{ name: "Point 2", value: 75 }],
12
+ }) %>
13
+ <% end %>
14
+ <%= pb_rails("flex/flex_item", props: {fixed_size: "200px"}) do %>
15
+ <%= pb_rails("gauge", props: {
16
+ id: "gauge-sizing2",
17
+ chart_data: [{ name: "Point 3", value: 50 }],
18
+ }) %>
19
+ <% end %>
20
+ <%= pb_rails("flex/flex_item", props: {fixed_size: "125px"}) do %>
21
+ <%= pb_rails("gauge", props: {
22
+ id: "gauge-sizing1",
23
+ chart_data: [{ name: "Point 4", value: 25 }],
24
+ }) %>
25
+ <% end %>
26
+ <% end %>
@@ -0,0 +1,37 @@
1
+ import React from 'react'
2
+ import { Flex, FlexItem, Gauge } from '../../'
3
+
4
+ const GaugeSizing = () => (
5
+ <div>
6
+ <Flex
7
+ wrap
8
+ >
9
+ <FlexItem fixedSize="400px">
10
+ <Gauge
11
+ chartData={[ { name: 'Point 1', value: 100 } ]}
12
+ id="gauge-sizing4"
13
+ />
14
+ </FlexItem>
15
+ <FlexItem fixedSize="300px">
16
+ <Gauge
17
+ chartData={[ { name: 'Point 2', value: 75 } ]}
18
+ id="gauge-sizing3"
19
+ />
20
+ </FlexItem>
21
+ <FlexItem fixedSize="200px">
22
+ <Gauge
23
+ chartData={[ { name: 'Point 3', value: 50 } ]}
24
+ id="gauge-sizing2"
25
+ />
26
+ </FlexItem>
27
+ <FlexItem fixedSize="125px">
28
+ <Gauge
29
+ chartData={[ { name: 'Point 4', value: 25 } ]}
30
+ id="gauge-sizing1"
31
+ />
32
+ </FlexItem>
33
+ </Flex>
34
+ </div>
35
+ )
36
+
37
+ export default GaugeSizing
@@ -0,0 +1 @@
1
+ ### Gauge resizes dynamically to fit whatever element it's placed within.
@@ -0,0 +1,14 @@
1
+ <% data = [
2
+ {
3
+ name: 'Score',
4
+ value: 780,
5
+ }
6
+ ]%>
7
+
8
+ <%= pb_rails("gauge", props: {
9
+ id: "gauge-title",
10
+ chart_data: data,
11
+ min: 300,
12
+ max: 850,
13
+ title: "Credit Score",
14
+ }) %>
@@ -0,0 +1,20 @@
1
+ import React from 'react'
2
+ import { Gauge } from '../../'
3
+
4
+ const data = [
5
+ { name: 'Score', value: 780 },
6
+ ]
7
+
8
+ const GaugeTitle = () => (
9
+ <div>
10
+ <Gauge
11
+ chartData={data}
12
+ id="gauge-title"
13
+ max={850}
14
+ min={300}
15
+ title="Credit Score"
16
+ />
17
+ </div>
18
+ )
19
+
20
+ export default GaugeTitle
@@ -0,0 +1,29 @@
1
+ <% data1 = [
2
+ {
3
+ name: 'Data Used',
4
+ value: 32,
5
+ }
6
+ ]%>
7
+
8
+ <%= pb_rails("gauge", props: {
9
+ id: "gauge-units1",
10
+ chart_data: data1,
11
+ title: "Data Usage",
12
+ suffix: "GB"
13
+ }) %>
14
+
15
+ <% data2 = [
16
+ {
17
+ name: 'Sales to Date',
18
+ value: 65,
19
+ }
20
+ ]%>
21
+
22
+ <%= pb_rails("gauge", props: {
23
+ id: "gauge-units2",
24
+ chart_data: data2,
25
+ title: "Sales Goal",
26
+ prefix: "$",
27
+ suffix: "k",
28
+
29
+ }) %>
@@ -0,0 +1,29 @@
1
+ import React from 'react'
2
+ import { Gauge } from '../../'
3
+
4
+ const data1 = [
5
+ { name: 'Data Used', value: 32 },
6
+ ]
7
+ const data2 = [
8
+ { name: 'Sales to Date', value: 65 },
9
+ ]
10
+
11
+ const GaugeUnits = () => (
12
+ <div>
13
+ <Gauge
14
+ chartData={data1}
15
+ id="gauge-units1"
16
+ suffix="GB"
17
+ title="Data Usage"
18
+ />
19
+ <Gauge
20
+ chartData={data2}
21
+ id="gauge-units2"
22
+ prefix="$"
23
+ suffix="k"
24
+ title="Sales Goal"
25
+ />
26
+ </div>
27
+ )
28
+
29
+ export default GaugeUnits
@@ -0,0 +1,24 @@
1
+ examples:
2
+
3
+ rails:
4
+ - gauge_default: Default
5
+ - gauge_disable_animation: Disable Animation
6
+ - gauge_title: Title
7
+ - gauge_units: Units
8
+ - gauge_full_circle: Full Circle
9
+ - gauge_min_max: Min Max Labels
10
+ - gauge_sizing: Sizing
11
+ - gauge_height: Height
12
+
13
+
14
+ react:
15
+ - gauge_default: Default
16
+ - gauge_disable_animation: Disable Animation
17
+ - gauge_title: Title
18
+ - gauge_units: Units
19
+ - gauge_full_circle: Full Circle
20
+ - gauge_min_max: Min Max Labels
21
+ - gauge_sizing: Sizing
22
+ - gauge_height: Height
23
+ - gauge_live_data: Live Data
24
+
@@ -0,0 +1,9 @@
1
+ export { default as GaugeDefault } from './_gauge_default.jsx'
2
+ export { default as GaugeDisableAnimation } from './_gauge_disable_animation.jsx'
3
+ export { default as GaugeFullCircle } from './_gauge_full_circle.jsx'
4
+ export { default as GaugeHeight } from './_gauge_height.jsx'
5
+ export { default as GaugeMinMax } from './_gauge_min_max.jsx'
6
+ export { default as GaugeSizing } from './_gauge_sizing.jsx'
7
+ export { default as GaugeTitle } from './_gauge_title.jsx'
8
+ export { default as GaugeUnits } from './_gauge_units.jsx'
9
+ export { default as GaugeLiveData } from './_gauge_live_data.jsx'
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Playbook
4
+ module PbGauge
5
+ class Gauge
6
+ include Playbook::Props
7
+
8
+ partial "pb_gauge/gauge"
9
+
10
+ prop :chart_data, type: Playbook::Props::Array,
11
+ default: [{ name: "Name", value: 0 }]
12
+ prop :style, type: Playbook::Props::Enum,
13
+ values: %w[solidgauge],
14
+ default: "solidgauge"
15
+ prop :title, type: Playbook::Props::String, default: ""
16
+ prop :prefix, type: Playbook::Props::String, default: ""
17
+ prop :suffix, type: Playbook::Props::String, default: ""
18
+ prop :height, type: Playbook::Props::String, default: nil
19
+ prop :tooltip_html, default: '<span style="font-weight: bold; color:{point.color};">●</span>
20
+ {point.name}: ' + '<b>{point.y}
21
+ </b>'
22
+ prop :full_circle, type: Playbook::Props::Boolean, default: false
23
+ prop :show_labels, type: Playbook::Props::Boolean, default: false
24
+ prop :disable_animation, type: Playbook::Props::Boolean, default: false
25
+ prop :min, type: Playbook::Props::Numeric, default: 0
26
+ prop :max, type: Playbook::Props::Numeric, default: 100
27
+
28
+ def chart_data_formatted
29
+ chart_data.map { |hash| hash[:y] = hash.delete :value }
30
+ chart_data
31
+ end
32
+
33
+ def chart_options
34
+ {
35
+ id: id,
36
+ chartData: chart_data_formatted,
37
+ circumference: full_circle ? [0, 360] : [-100, 100],
38
+ disableAnimation: disable_animation,
39
+ height: height,
40
+ min: min,
41
+ max: max,
42
+ title: title,
43
+ suffix: suffix,
44
+ prefix: prefix,
45
+ showLabels: show_labels,
46
+ style: style,
47
+ tooltipHtml: tooltip_html,
48
+ type: "gauge",
49
+ }.to_json.html_safe
50
+ end
51
+
52
+ def classname
53
+ generate_classname("pb_gauge_kit")
54
+ end
55
+ end
56
+ end
57
+ end