playbook_ui 6.0.0 → 6.0.1.pre.alpha6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (131) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +2 -1
  3. data/app/pb_kits/playbook/data/menu.yml +3 -2
  4. data/app/pb_kits/playbook/index.js +1 -0
  5. data/app/pb_kits/playbook/packs/examples.js +2 -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_caption/_caption.jsx +2 -2
  19. data/app/pb_kits/playbook/pb_card/_card.jsx +17 -14
  20. data/app/pb_kits/playbook/pb_card/_card.scss +4 -1
  21. data/app/pb_kits/playbook/pb_card/card.rb +2 -9
  22. data/app/pb_kits/playbook/pb_card/docs/_card_dark.html.erb +1 -1
  23. data/app/pb_kits/playbook/pb_checkbox/_checkbox.jsx +2 -2
  24. data/app/pb_kits/playbook/pb_checkbox/checkbox.rb +4 -8
  25. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.jsx +2 -2
  26. data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.rb +0 -2
  27. data/app/pb_kits/playbook/pb_contact/_contact.jsx +2 -2
  28. data/app/pb_kits/playbook/pb_currency/_currency.jsx +2 -2
  29. data/app/pb_kits/playbook/pb_dashboard/pbChartsLightTheme.js +26 -0
  30. data/app/pb_kits/playbook/pb_dashboard_value/_dashboard_value.jsx +2 -2
  31. data/app/pb_kits/playbook/pb_date/_date.jsx +4 -4
  32. data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.jsx +2 -2
  33. data/app/pb_kits/playbook/pb_date_range_stacked/_date_range_stacked.jsx +2 -2
  34. data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.jsx +2 -2
  35. data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.jsx +2 -2
  36. data/app/pb_kits/playbook/pb_date_year_stacked/_date_year_stacked.jsx +2 -2
  37. data/app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.jsx +2 -2
  38. data/app/pb_kits/playbook/pb_file_upload/_file_upload.jsx +2 -2
  39. data/app/pb_kits/playbook/pb_filter/Filter/FilterBackground.jsx +2 -2
  40. data/app/pb_kits/playbook/pb_filter/docs/_filter_default.html.erb +6 -2
  41. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.jsx +2 -2
  42. data/app/pb_kits/playbook/pb_flex/_flex.jsx +2 -2
  43. data/app/pb_kits/playbook/pb_flex/_flex_item.jsx +2 -2
  44. data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +1 -0
  45. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -0
  46. data/app/pb_kits/playbook/pb_form/docs/_form_simple_form.html.erb +3 -1
  47. data/app/pb_kits/playbook/pb_form/docs/_form_simple_form_validate.html.erb +3 -1
  48. data/app/pb_kits/playbook/pb_form/form_builder.rb +2 -0
  49. data/app/pb_kits/playbook/pb_form/form_builder/checkbox_field.rb +26 -0
  50. data/app/pb_kits/playbook/pb_form/form_builder/form_field_builder.rb +1 -0
  51. data/app/pb_kits/playbook/pb_form_pill/_form_pill.jsx +2 -2
  52. data/app/pb_kits/playbook/pb_gauge/_gauge.html.erb +12 -0
  53. data/app/pb_kits/playbook/pb_gauge/_gauge.jsx +110 -0
  54. data/app/pb_kits/playbook/pb_gauge/_gauge.scss +11 -0
  55. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_default.html.erb +11 -0
  56. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_default.jsx +17 -0
  57. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_disable_animation.html.erb +12 -0
  58. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_disable_animation.jsx +18 -0
  59. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_full_circle.html.erb +14 -0
  60. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_full_circle.jsx +20 -0
  61. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_height.html.erb +15 -0
  62. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_height.jsx +23 -0
  63. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_live_data.jsx +40 -0
  64. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_min_max.html.erb +15 -0
  65. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_min_max.jsx +21 -0
  66. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_min_max.md +1 -0
  67. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_sizing.html.erb +26 -0
  68. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_sizing.jsx +37 -0
  69. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_sizing.md +1 -0
  70. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_title.html.erb +14 -0
  71. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_title.jsx +20 -0
  72. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_units.html.erb +29 -0
  73. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_units.jsx +29 -0
  74. data/app/pb_kits/playbook/pb_gauge/docs/example.yml +24 -0
  75. data/app/pb_kits/playbook/pb_gauge/docs/index.js +9 -0
  76. data/app/pb_kits/playbook/pb_gauge/gauge.rb +57 -0
  77. data/app/pb_kits/playbook/pb_hashtag/_hashtag.jsx +2 -2
  78. data/app/pb_kits/playbook/pb_highlight/_highlight.jsx +2 -2
  79. data/app/pb_kits/playbook/pb_home_address_street/_home_address_street.jsx +2 -2
  80. data/app/pb_kits/playbook/pb_icon/_icon.jsx +2 -2
  81. data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.jsx +2 -2
  82. data/app/pb_kits/playbook/pb_icon_value/_icon_value.jsx +2 -2
  83. data/app/pb_kits/playbook/pb_image/_image.jsx +2 -2
  84. data/app/pb_kits/playbook/pb_label_pill/_label_pill.jsx +2 -2
  85. data/app/pb_kits/playbook/pb_label_value/_label_value.jsx +2 -2
  86. data/app/pb_kits/playbook/pb_layout/_layout.jsx +6 -6
  87. data/app/pb_kits/playbook/pb_legend/_legend.jsx +2 -2
  88. data/app/pb_kits/playbook/pb_line_graph/_line_graph.jsx +2 -2
  89. data/app/pb_kits/playbook/pb_list/_list.jsx +2 -2
  90. data/app/pb_kits/playbook/pb_list/_list_item.jsx +2 -2
  91. data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.jsx +2 -2
  92. data/app/pb_kits/playbook/pb_logistic/_logistic.jsx +111 -0
  93. data/app/pb_kits/playbook/pb_message/_message.jsx +2 -2
  94. data/app/pb_kits/playbook/pb_multiple_users/_multiple_users.jsx +2 -2
  95. data/app/pb_kits/playbook/pb_multiple_users_stacked/_multiple_users_stacked.jsx +2 -2
  96. data/app/pb_kits/playbook/pb_nav/_nav.jsx +2 -2
  97. data/app/pb_kits/playbook/pb_online_status/_online_status.jsx +2 -2
  98. data/app/pb_kits/playbook/pb_person/_person.jsx +2 -2
  99. data/app/pb_kits/playbook/pb_person_contact/_person_contact.jsx +2 -2
  100. data/app/pb_kits/playbook/pb_pill/_pill.jsx +2 -2
  101. data/app/pb_kits/playbook/pb_popover/_popover.jsx +2 -2
  102. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.jsx +2 -2
  103. data/app/pb_kits/playbook/pb_progress_simple/_progress_simple.jsx +2 -2
  104. data/app/pb_kits/playbook/pb_progress_step/_progress_step.jsx +2 -2
  105. data/app/pb_kits/playbook/pb_radio/_radio.jsx +2 -2
  106. data/app/pb_kits/playbook/pb_section_separator/_section_separator.jsx +2 -2
  107. data/app/pb_kits/playbook/pb_select/_select.jsx +2 -2
  108. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.jsx +2 -2
  109. data/app/pb_kits/playbook/pb_stat_change/_stat_change.jsx +2 -2
  110. data/app/pb_kits/playbook/pb_stat_value/_stat_value.jsx +2 -2
  111. data/app/pb_kits/playbook/pb_table/_table.jsx +2 -2
  112. data/app/pb_kits/playbook/pb_table/_table_row.jsx +2 -2
  113. data/app/pb_kits/playbook/pb_text_input/_text_input.jsx +2 -2
  114. data/app/pb_kits/playbook/pb_textarea/_textarea.jsx +2 -2
  115. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.jsx +2 -2
  116. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.jsx +2 -2
  117. data/app/pb_kits/playbook/pb_timestamp/_timestamp.jsx +2 -2
  118. data/app/pb_kits/playbook/pb_title/_title.jsx +2 -2
  119. data/app/pb_kits/playbook/pb_title_count/_title_count.jsx +2 -2
  120. data/app/pb_kits/playbook/pb_title_detail/_title_detail.jsx +2 -2
  121. data/app/pb_kits/playbook/pb_toggle/_toggle.jsx +2 -2
  122. data/app/pb_kits/playbook/pb_user/_user.jsx +2 -2
  123. data/app/pb_kits/playbook/pb_user_badge/_user_badge.jsx +2 -2
  124. data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.jsx +2 -2
  125. data/app/pb_kits/playbook/plugins/pb_chart.js +74 -0
  126. data/app/pb_kits/playbook/props.rb +6 -0
  127. data/app/pb_kits/playbook/utilities/{spacing.js → globalProps.js} +14 -1
  128. data/app/pb_kits/playbook/utilities/props.js +1 -0
  129. data/lib/generators/kit/templates/kit_jsx.erb.tt +2 -2
  130. data/lib/playbook/version.rb +1 -1
  131. metadata +34 -6
@@ -3,7 +3,7 @@
3
3
  import React from 'react'
4
4
  import classnames from 'classnames'
5
5
  import { buildCss } from '../utilities/props'
6
- import { spacing as spacingFunc } from '../utilities/spacing.js'
6
+ import { globalProps } from '../utilities/globalProps.js'
7
7
  type FlexProps = {
8
8
  children: Array<React.ReactNode> | React.ReactNode,
9
9
  className?: String,
@@ -52,7 +52,7 @@ const Flex = (props: FlexProps) => {
52
52
  wrapClass
53
53
  ),
54
54
  className,
55
- spacingFunc(props)
55
+ globalProps(props)
56
56
  )}
57
57
  >
58
58
  {children}
@@ -2,7 +2,7 @@
2
2
  import React from 'react'
3
3
  import classnames from 'classnames'
4
4
  import { buildCss } from '../utilities/props'
5
- import { spacing } from '../utilities/spacing.js'
5
+ import { globalProps } from '../utilities/globalProps.js'
6
6
  type FlexItemPropTypes = {
7
7
  children: Array<React.ReactNode> | React.ReactNode,
8
8
  fixedSize: String,
@@ -18,7 +18,7 @@ const FlexItem = (props: FlexItemPropTypes) => {
18
18
 
19
19
  return (
20
20
  <div
21
- className={classnames(buildCss('pb_flex_item_kit', growClass), className, spacing(props))}
21
+ className={classnames(buildCss('pb_flex_item_kit', growClass), className, globalProps(props))}
22
22
  style={fixedStyle}
23
23
  >
24
24
  {children}
@@ -24,6 +24,7 @@
24
24
  <%= form.text_area :example_text_area, props: { label: true } %>
25
25
  <%= form.select :example_select, [ ["Yes", 1], ["No", 2] ], props: { label: true } %>
26
26
  <%= form.collection_select :example_collection_select, example_collection, :value, :name, props: { label: true } %>
27
+ <%= form.check_box :example_checkbox, data: { field1: "value1", field2: "value2" }, props: { text: "Example Checkbox", label: true, value: "test-val" } %>
27
28
 
28
29
  <%= form.actions do |action| %>
29
30
  <%= action.submit %>
@@ -27,6 +27,7 @@
27
27
  <%= form.text_area :example_text_area, props: { label: true, required: true } %>
28
28
  <%= form.select :example_select, [ ["Yes", 1], ["No", 2] ], props: { label: true, blank_selection: "Select One...", required: true } %>
29
29
  <%= form.collection_select :example_collection_select, example_collection, :value, :name, props: { label: true, blank_selection: "Select One...", required: true } %>
30
+ <%= form.check_box :example_checkbox, props: { text: "Example Checkbox", label: true, required: true } %>
30
31
 
31
32
  <%= form.actions do |action| %>
32
33
  <%= action.submit %>
@@ -13,7 +13,8 @@
13
13
  :example_url_field,
14
14
  :example_text_area,
15
15
  :example_select_field,
16
- :example_collection_select_field
16
+ :example_collection_select_field,
17
+ :example_checkbox_field
17
18
 
18
19
 
19
20
  def self.model_name
@@ -49,6 +50,7 @@
49
50
  <%= form.input :example_text_area, as: :text %>
50
51
  <%= form.select :example_select_field, [["Yes", 1], ["No", 2]], props: { label: true } %>
51
52
  <%= form.collection_select :example_collection_select_field, example_collection, :value, :name, props: { label: true } %>
53
+ <%= form.check_box :example_checkbox_field, props: { text: "Example Checkbox", label: true } %>
52
54
 
53
55
  <%= form.actions do |action| %>
54
56
  <%= action.submit %>
@@ -13,7 +13,8 @@
13
13
  :example_url_field,
14
14
  :example_text_area,
15
15
  :example_select_field,
16
- :example_collection_select_field
16
+ :example_collection_select_field,
17
+ :example_checkbox_field
17
18
 
18
19
 
19
20
  def self.model_name
@@ -49,6 +50,7 @@
49
50
  <%= form.input :example_text_area, {as: :text, input_html: {props: {required: true}}} %>
50
51
  <%= form.select :example_select_field, [["Yes", 1], ["No", 2]], props: { required: true, blank_selection: "Select One...", label: true } %>
51
52
  <%= form.collection_select :example_collection_select_field, example_collection, :value, :name, props: { required: true, blank_selection: "Select One...", label: true } %>
53
+ <%= form.check_box :example_checkbox_field, props: { text: "Example Checkbox", label: true, required: true } %>
52
54
 
53
55
  <%= form.actions do |action| %>
54
56
  <%= action.submit %>
@@ -14,9 +14,11 @@ module Playbook
14
14
  prepend(FormFieldBuilder.new(:password_field, kit_name: "text_input"))
15
15
  prepend(FormFieldBuilder.new(:url_field, kit_name: "text_input"))
16
16
  prepend(FormFieldBuilder.new(:text_area, kit_name: "textarea"))
17
+ # prepend(FormFieldBuilder.new(:check_box, kit_name: "checkbox"))
17
18
  prepend(TypeaheadField)
18
19
  prepend(SelectField)
19
20
  prepend(CollectionSelectField)
21
+ prepend(CheckboxField)
20
22
 
21
23
  def actions(&block)
22
24
  ActionArea.new(self).wrapper(&block)
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Playbook
4
+ module PbForm
5
+ module FormBuilder
6
+ module CheckboxField
7
+ def check_box(name, data: {}, props: {})
8
+ value = props[:value] ||= 1
9
+ input = super(name, { required: props[:required], data: data }, value)
10
+ label_text = name.to_s.gsub("_", " ")
11
+
12
+ if props[:label]
13
+ @template.pb_rails("caption", props: { text: label_text, margin_bottom: "xs" }) +
14
+ @template.pb_rails("checkbox", props: props) do
15
+ input
16
+ end
17
+ else
18
+ @template.pb_rails("checkbox", props: props) do
19
+ input
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -12,6 +12,7 @@ module Playbook
12
12
  options[:skip_default_ids] = false unless options.key?(:skip_default_ids)
13
13
  options[:required] = true if props[:required]
14
14
  options[:placeholder] = props[:placeholder] || ""
15
+ options[:value] = props[:value]
15
16
 
16
17
  if props.key?(:validation)
17
18
  validation = props[:validation]
@@ -4,7 +4,7 @@ import classnames from 'classnames'
4
4
  import Title from '../pb_title/_title.jsx'
5
5
  import Icon from '../pb_icon/_icon.jsx'
6
6
  import Avatar from '../pb_avatar/_avatar.jsx'
7
- import { spacing } from '../utilities/spacing.js'
7
+ import { globalProps } from '../utilities/globalProps.js'
8
8
 
9
9
  type FormPillProps = {
10
10
  className?: String,
@@ -19,7 +19,7 @@ const FormPill = (props: FormPillProps) => {
19
19
  const { className, text, name, onClick = () => {}, avatarUrl } = props
20
20
  const css = classnames(
21
21
  [`pb_form_pill_kit_${'primary'}`, className],
22
- spacing(props)
22
+ globalProps(props)
23
23
  )
24
24
  return (
25
25
  <div className={css}>
@@ -0,0 +1,12 @@
1
+ <%= content_tag(:div, "",
2
+ id: object.id,
3
+ data: object.data,
4
+ class: object.classname) %>
5
+ <% content_for :pb_js do %>
6
+ <%= javascript_tag do %>
7
+ window.addEventListener('DOMContentLoaded', function() {
8
+ new pbChart('.selector', <%= object.chart_options %>)
9
+ })
10
+ <% end %>
11
+ <% end %>
12
+
@@ -0,0 +1,110 @@
1
+ /* @flow */
2
+
3
+ import React, { useEffect, useRef } from 'react'
4
+ import { pbChart } from '../'
5
+ import { globalProps } from '../utilities/globalProps'
6
+ import classnames from 'classnames'
7
+ import Highcharts from 'highcharts'
8
+
9
+ import {
10
+ buildAriaProps,
11
+ buildCss,
12
+ buildDataProps,
13
+ } from '../utilities/props'
14
+
15
+ type GaugeProps = {
16
+ aria: Object,
17
+ className?: String,
18
+ chartData?: Array,
19
+ data?: Object,
20
+ disableAnimation: Boolean,
21
+ fullCircle: Boolean,
22
+ height: String,
23
+ id?: String,
24
+ max: Number,
25
+ min: Number,
26
+ prefix: String,
27
+ showLabels: Boolean,
28
+ style: String,
29
+ suffix: String,
30
+ title: String,
31
+ tooltipHtml: String,
32
+ }
33
+
34
+ const Gauge = (props: GaugeProps) => {
35
+ const {
36
+ aria = {},
37
+ className,
38
+ chartData = [{ name: 'Name', value: 0 }],
39
+ data = {},
40
+ disableAnimation = false,
41
+ fullCircle = false,
42
+ height = null,
43
+ id,
44
+ max = 100,
45
+ min = 0,
46
+ prefix = '',
47
+ showLabels = false,
48
+ style = 'solidgauge',
49
+ suffix = '',
50
+ title = '',
51
+ tooltipHtml = '<span style="font-weight: bold; color:{point.color};">●</span>{point.name}: ' + '<b>{point.y}</b>',
52
+ } = props
53
+
54
+ const ariaProps = buildAriaProps(aria)
55
+ const dataProps = buildDataProps(data)
56
+
57
+ const css = buildCss({
58
+ 'pb_gauge_kit': true,
59
+ })
60
+ // Runs first time component Renders
61
+ useEffect(() => {
62
+ const formattedChartData = chartData.map((obj) => {
63
+ obj.y = obj.value
64
+ delete obj.value
65
+ return obj
66
+ })
67
+
68
+ new pbChart('.selector', {
69
+ id: id,
70
+ chartData: formattedChartData,
71
+ circumference: fullCircle ? [0, 360] : [-100, 100],
72
+ disableAnimation: disableAnimation,
73
+ height: height,
74
+ min: min,
75
+ max: max,
76
+ prefix: prefix,
77
+ title: title,
78
+ suffix: suffix,
79
+ showLabels: showLabels,
80
+ style: style,
81
+ tooltipHtml: tooltipHtml,
82
+ type: 'gauge',
83
+ })
84
+ }, [])
85
+
86
+ const componentDidMount = useRef(false)
87
+ // Doesn't run the first time but runs every subsequent render
88
+ useEffect(() => {
89
+ if (componentDidMount.current) {
90
+ Highcharts.charts.forEach((chart) => {
91
+ if (chart.renderTo.id === id) {
92
+ chart.series[0].setData([chartData[0].value])
93
+ chart.series[0].data[0].name = chartData[0].name
94
+ }
95
+ })
96
+ } else {
97
+ componentDidMount.current = true
98
+ }
99
+ }, [chartData])
100
+ return (
101
+ <div
102
+ {...ariaProps}
103
+ {...dataProps}
104
+ className={classnames(css, className, globalProps(props))}
105
+ id={id}
106
+ />
107
+ )
108
+ }
109
+
110
+ export default Gauge
@@ -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