playbook_ui 15.2.0.pre.rc.4 → 15.3.0.pre.alpha.PLAY2322popoverconditionalrender11766
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 +5 -5
- data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +3 -1
- data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableActions.ts +18 -3
- data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableState.ts +56 -14
- data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableHeader.tsx +3 -0
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +12 -3
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.html.erb +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +59 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_background_control_rails.html.erb +39 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_background_control_rails.md +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta.md +3 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_sort.html.erb +3 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_subrow_headers.html.erb +3 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_collapsible_trail_rails.html.erb +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling.md +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_column_headers_rails.html.erb +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_rails.html.erb +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_rails.md +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_inline_row_loading.jsx +28 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_inline_row_loading.md +11 -2
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_per_row_rails.html.erb +51 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_per_row_rails.md +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_rails.html.erb +40 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_rails.md +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling_rails.md +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling_react.md +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_rails.html.erb +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/docs/_mock_data_inline_loading_empty_children.js +42 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +3 -0
- data/app/pb_kits/playbook/pb_advanced_table/index.js +5 -1
- data/app/pb_kits/playbook/pb_advanced_table/table_body.rb +6 -6
- data/app/pb_kits/playbook/pb_advanced_table/table_header.rb +6 -6
- data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +3 -2
- data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +49 -5
- data/app/pb_kits/playbook/pb_bread_crumbs/docs/_bread_crumbs_default.html.erb +4 -4
- data/app/pb_kits/playbook/pb_bread_crumbs/docs/_bread_crumbs_default.jsx +4 -0
- data/app/pb_kits/playbook/pb_button/_button.scss +6 -0
- data/app/pb_kits/playbook/pb_button/docs/_button_loading.html.erb +7 -3
- data/app/pb_kits/playbook/pb_button/docs/_button_loading.jsx +29 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range_pattern.jsx +1 -1
- data/app/pb_kits/playbook/pb_date_picker/sass_partials/_quick_pick_styles.scss +11 -30
- data/app/pb_kits/playbook/pb_draggable/_draggable.scss +8 -0
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.scss +0 -1
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.tsx +5 -3
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_description.md +2 -0
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.rb +4 -1
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.test.js +10 -0
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with_loading.html.erb +1 -1
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -1
- data/app/pb_kits/playbook/pb_form/formHelper.js +1 -1
- data/app/pb_kits/playbook/pb_pb_bar_graph/_pb_bar_graph.tsx +8 -6
- data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_description.md +3 -0
- data/app/pb_kits/playbook/pb_pb_bar_graph/pb_bar_graph.rb +7 -10
- data/app/pb_kits/playbook/pb_pb_bar_graph/pbbargraph.test.jsx +73 -1
- data/app/pb_kits/playbook/pb_pb_circle_chart/_pb_circle_chart.tsx +1 -1
- data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_description.md +3 -0
- data/app/pb_kits/playbook/pb_pb_circle_chart/pb_circle_chart.rb +7 -10
- data/app/pb_kits/playbook/pb_pb_circle_chart/pb_circle_chart.test.jsx +47 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/_pb_gauge_chart.scss +3 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/_pb_gauge_chart.tsx +69 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_description.md +3 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_color.html.erb +12 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_color.jsx +24 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_color.md +5 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_complex.html.erb +45 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_complex.jsx +119 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_complex.md +1 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_default.html.erb +5 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_default.jsx +17 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_disable_animation.html.erb +12 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_disable_animation.jsx +24 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_full_circle.html.erb +23 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_full_circle.jsx +37 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_height.html.erb +40 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_height.jsx +56 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_live_data.jsx +64 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_min_max.html.erb +27 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_min_max.jsx +40 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_min_max.md +1 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_sizing.html.erb +19 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_sizing.jsx +65 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_sizing.md +3 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_title.html.erb +14 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_title.jsx +27 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_units.html.erb +39 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_units.jsx +58 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_units.md +1 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/example.yml +29 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/index.js +11 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/pbGaugeGraphTheme.ts +91 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/pb_gauge_chart.html.erb +1 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/pb_gauge_chart.rb +25 -0
- data/app/pb_kits/playbook/pb_pb_gauge_chart/pb_gauge_chart.test.jsx +80 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/_pb_line_graph.scss +3 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/_pb_line_graph.tsx +61 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_description.md +3 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_colors.html.erb +34 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_colors.jsx +52 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_colors.md +5 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_default.html.erb +34 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_default.jsx +45 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_height.html.erb +47 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_height.jsx +64 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_height.md +3 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend.html.erb +24 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend.jsx +37 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_nonclickable.html.erb +39 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_nonclickable.jsx +45 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_position.html.erb +86 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_position.jsx +116 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_position.md +11 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/example.yml +20 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/docs/index.js +6 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/pbLineGraphTheme.ts +125 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/pb_line_graph.html.erb +1 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/pb_line_graph.rb +25 -0
- data/app/pb_kits/playbook/pb_pb_line_graph/pb_line_graph.test.jsx +110 -0
- data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +130 -28
- data/app/pb_kits/playbook/pb_popover/_popover.scss +12 -0
- data/app/pb_kits/playbook/pb_popover/_popover.tsx +43 -29
- data/app/pb_kits/playbook/pb_popover/docs/_popover_close.jsx +7 -0
- data/app/pb_kits/playbook/pb_popover/docs/hook/useSmallScreenIndicator.tsx +27 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/TipTap/Toolbar.tsx +41 -2
- data/app/pb_kits/playbook/pb_rich_text_editor/TipTap/ToolbarDropdown.tsx +1 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.tsx +60 -20
- data/app/pb_kits/playbook/pb_rich_text_editor/_tiptap_styles.scss +36 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_attributes.jsx +38 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_attributes.md +1 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_focus.jsx +34 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_focus.md +1 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_inline.jsx +37 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_inline.md +1 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_simple.jsx +37 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_sticky.jsx +38 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_sticky.md +1 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_templates.jsx +69 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_templates.md +1 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml +8 -2
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/index.js +6 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor.test.js +127 -1
- data/app/pb_kits/playbook/pb_timeline/_timeline.scss +250 -233
- data/app/pb_kits/playbook/pb_timeline/_timeline.tsx +1 -1
- data/app/pb_kits/playbook/pb_timeline/timeline.test.js +2 -2
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.test.jsx +35 -1
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.tsx +71 -2
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default_options.html.erb +36 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default_options.md +1 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default_value.jsx +41 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default_value.md +1 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/index.js +1 -0
- data/app/pb_kits/playbook/tokens/_positioning.scss +1 -0
- data/app/pb_kits/playbook/utilities/_positioning.scss +6 -1
- data/app/pb_kits/playbook/utilities/globalProps.ts +3 -1
- data/dist/chunks/{_line_graph-BxcVBQsJ.js → _line_graph-BxC7m53J.js} +1 -1
- data/dist/chunks/_typeahead-B1SiFvbF.js +6 -0
- data/dist/chunks/{_weekday_stacked-BhPyFGlS.js → _weekday_stacked-DxdwXyYM.js} +3 -3
- data/dist/chunks/{lib-QZuu1ltS.js → lib-CGxXTQ75.js} +1 -1
- data/dist/chunks/{pb_form_validation-CleM960_.js → pb_form_validation-DebqlUKZ.js} +1 -1
- data/dist/chunks/vendor.js +1 -1
- data/dist/menu.yml +12 -0
- 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/pb_forms_helper.rb +7 -6
- data/lib/playbook/version.rb +2 -2
- data/lib/playbook/z_index.rb +1 -1
- metadata +91 -7
- data/dist/chunks/_typeahead-eZENQ_Y_.js +0 -6
| @@ -0,0 +1,37 @@ | |
| 1 | 
            +
            import React from 'react'
         | 
| 2 | 
            +
            import PbGaugeChart from '../../pb_pb_gauge_chart/_pb_gauge_chart'
         | 
| 3 | 
            +
            import { colors, typography } from 'playbook-ui'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            const data = [{ name: "Capacity", y: 75 }]
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            const chartOptions = {
         | 
| 8 | 
            +
              title: {
         | 
| 9 | 
            +
                text: "Seating Capacity",
         | 
| 10 | 
            +
              },
         | 
| 11 | 
            +
              series: [{ data: data }],
         | 
| 12 | 
            +
              pane: {
         | 
| 13 | 
            +
                startAngle: 0,
         | 
| 14 | 
            +
                endAngle: 360,
         | 
| 15 | 
            +
              },
         | 
| 16 | 
            +
              plotOptions: {
         | 
| 17 | 
            +
                solidgauge: {
         | 
| 18 | 
            +
                  dataLabels: {
         | 
| 19 | 
            +
                    format:
         | 
| 20 | 
            +
                      `<span class="fix">{y:,f}</span>` +
         | 
| 21 | 
            +
                      `<span style="fill: ${colors.text_lt_light}; font-size: ${typography.text_larger};">%</span>`,
         | 
| 22 | 
            +
                  },
         | 
| 23 | 
            +
                },
         | 
| 24 | 
            +
              },
         | 
| 25 | 
            +
            };
         | 
| 26 | 
            +
             | 
| 27 | 
            +
             | 
| 28 | 
            +
            const PbGaugeChartFullCircle = (props) => (
         | 
| 29 | 
            +
              <div>
         | 
| 30 | 
            +
                <PbGaugeChart
         | 
| 31 | 
            +
                    options={chartOptions}
         | 
| 32 | 
            +
                    {...props}
         | 
| 33 | 
            +
                />
         | 
| 34 | 
            +
              </div>
         | 
| 35 | 
            +
            )
         | 
| 36 | 
            +
             | 
| 37 | 
            +
            export default PbGaugeChartFullCircle
         | 
| @@ -0,0 +1,40 @@ | |
| 1 | 
            +
            <% chart_options = {
         | 
| 2 | 
            +
              title: {
         | 
| 3 | 
            +
                text: "Fixed Height in Pixels",
         | 
| 4 | 
            +
              },
         | 
| 5 | 
            +
              chart: {
         | 
| 6 | 
            +
                height: "400",
         | 
| 7 | 
            +
              },
         | 
| 8 | 
            +
              series: [{ data: [{ name: "Pixels", y: 400 }] }],
         | 
| 9 | 
            +
              plotOptions: {
         | 
| 10 | 
            +
                solidgauge: {
         | 
| 11 | 
            +
                  dataLabels: {
         | 
| 12 | 
            +
                    format:
         | 
| 13 | 
            +
                      '<span class="fix">{y:,f}</span>' +
         | 
| 14 | 
            +
                      '<span style="fill: #687887; font-size: 27px;">px</span>',
         | 
| 15 | 
            +
                  },
         | 
| 16 | 
            +
                },
         | 
| 17 | 
            +
              },
         | 
| 18 | 
            +
            } %>
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            <% chart_options_1 = {
         | 
| 21 | 
            +
              title: {
         | 
| 22 | 
            +
                text: "Height as Percentage of Width",
         | 
| 23 | 
            +
              },
         | 
| 24 | 
            +
              chart: {
         | 
| 25 | 
            +
                height: "45%",
         | 
| 26 | 
            +
              },
         | 
| 27 | 
            +
              series: [{ data: [{ name: "Percentage", y: 45 }] }],
         | 
| 28 | 
            +
              plotOptions: {
         | 
| 29 | 
            +
                solidgauge: {
         | 
| 30 | 
            +
                  dataLabels: {
         | 
| 31 | 
            +
                    format:
         | 
| 32 | 
            +
                      '<span class="fix">{y:,f}</span>' +
         | 
| 33 | 
            +
                      '<span style="fill: #687887; font-size: 27px;">%</span>',
         | 
| 34 | 
            +
                  },
         | 
| 35 | 
            +
                },
         | 
| 36 | 
            +
              },
         | 
| 37 | 
            +
            } %>
         | 
| 38 | 
            +
             | 
| 39 | 
            +
            <%= pb_rails("pb_gauge_chart", props: { options: chart_options }) %>
         | 
| 40 | 
            +
            <%= pb_rails("pb_gauge_chart", props: { options: chart_options_1 }) %>
         | 
| @@ -0,0 +1,56 @@ | |
| 1 | 
            +
            import React from 'react'
         | 
| 2 | 
            +
            import PbGaugeChart from '../../pb_pb_gauge_chart/_pb_gauge_chart'
         | 
| 3 | 
            +
            import { colors, typography } from 'playbook-ui'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            const chartOptions = {
         | 
| 6 | 
            +
              title: {
         | 
| 7 | 
            +
                text: "Fixed Height in Pixels",
         | 
| 8 | 
            +
              },
         | 
| 9 | 
            +
              chart: {
         | 
| 10 | 
            +
                height: "400",
         | 
| 11 | 
            +
              },
         | 
| 12 | 
            +
              series: [{ data: [{ name: "Pixels", y: 400 }] }],
         | 
| 13 | 
            +
              plotOptions: {
         | 
| 14 | 
            +
                solidgauge: {
         | 
| 15 | 
            +
                  dataLabels: {
         | 
| 16 | 
            +
                    format:
         | 
| 17 | 
            +
                      `<span class="fix">{y:,f}</span>` +
         | 
| 18 | 
            +
                      `<span style="fill: ${colors.text_lt_light}; font-size: ${typography.text_larger};">px</span>`,
         | 
| 19 | 
            +
                  },
         | 
| 20 | 
            +
                },
         | 
| 21 | 
            +
              },
         | 
| 22 | 
            +
            };
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            const chartOptions2 = {
         | 
| 25 | 
            +
              title: {
         | 
| 26 | 
            +
                text: "Height as Percentage of Width",
         | 
| 27 | 
            +
              },
         | 
| 28 | 
            +
              chart: {
         | 
| 29 | 
            +
                height: "45%",
         | 
| 30 | 
            +
              },
         | 
| 31 | 
            +
              series: [{ data: [{ name: "Percentage", y: 45 }] }],
         | 
| 32 | 
            +
              plotOptions: {
         | 
| 33 | 
            +
                solidgauge: {
         | 
| 34 | 
            +
                  dataLabels: {
         | 
| 35 | 
            +
                    format:
         | 
| 36 | 
            +
                      `<span class="fix">{y:,f}</span>` +
         | 
| 37 | 
            +
                      `<span style="fill: ${colors.text_lt_light}; font-size: ${typography.text_larger};">%</span>`,
         | 
| 38 | 
            +
                  },
         | 
| 39 | 
            +
                },
         | 
| 40 | 
            +
              },
         | 
| 41 | 
            +
            };
         | 
| 42 | 
            +
             | 
| 43 | 
            +
            const PbGaugeChartHeight = (props) => (
         | 
| 44 | 
            +
              <div>
         | 
| 45 | 
            +
                <PbGaugeChart
         | 
| 46 | 
            +
                    options={chartOptions}
         | 
| 47 | 
            +
                    {...props}
         | 
| 48 | 
            +
                />
         | 
| 49 | 
            +
                <PbGaugeChart
         | 
| 50 | 
            +
                    options={chartOptions2}
         | 
| 51 | 
            +
                    {...props}
         | 
| 52 | 
            +
                />
         | 
| 53 | 
            +
              </div>
         | 
| 54 | 
            +
            )
         | 
| 55 | 
            +
             | 
| 56 | 
            +
            export default PbGaugeChartHeight
         | 
| @@ -0,0 +1,64 @@ | |
| 1 | 
            +
            import React, { useState, useRef } from 'react'
         | 
| 2 | 
            +
            import PbGaugeChart from '../../pb_pb_gauge_chart/_pb_gauge_chart'
         | 
| 3 | 
            +
            import Button from '../../pb_button/_button'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            const PbGaugeChartLiveData = (props) => {
         | 
| 6 | 
            +
              const [value, setValue] = useState(50)
         | 
| 7 | 
            +
              const [name, setName] = useState('Name')
         | 
| 8 | 
            +
              const chartRef = useRef(null)
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              const namesArray = ['Name', 'Windows', 'Doors', 'Roofing', 'Siding', 'Gutters']
         | 
| 11 | 
            +
             | 
| 12 | 
            +
              const updateValue = () => {
         | 
| 13 | 
            +
                const newValue = Math.floor(Math.random() * 100)
         | 
| 14 | 
            +
                setValue(newValue)
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                const chart = chartRef.current?.chart
         | 
| 17 | 
            +
                if (chart) {
         | 
| 18 | 
            +
                  chart.series[0].points[0].update(newValue)
         | 
| 19 | 
            +
                }
         | 
| 20 | 
            +
              }
         | 
| 21 | 
            +
             | 
| 22 | 
            +
              const updateName = () => {
         | 
| 23 | 
            +
                let index = namesArray.indexOf(name)
         | 
| 24 | 
            +
                if (namesArray.indexOf(name) == 5) {
         | 
| 25 | 
            +
                  index = 0
         | 
| 26 | 
            +
                } else {
         | 
| 27 | 
            +
                  index += 1
         | 
| 28 | 
            +
                }
         | 
| 29 | 
            +
                setName(namesArray[index])
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                const chart = chartRef.current?.chart
         | 
| 32 | 
            +
                if (chart) {
         | 
| 33 | 
            +
                  chart.series[0].points[0].update({ name: namesArray[index] })
         | 
| 34 | 
            +
                }
         | 
| 35 | 
            +
              }
         | 
| 36 | 
            +
             | 
| 37 | 
            +
              const chartOptions = {
         | 
| 38 | 
            +
                title: {
         | 
| 39 | 
            +
                  text: name,
         | 
| 40 | 
            +
                },
         | 
| 41 | 
            +
                series: [{
         | 
| 42 | 
            +
                  data: [{ name: name, y: value }]
         | 
| 43 | 
            +
                }]
         | 
| 44 | 
            +
              }
         | 
| 45 | 
            +
              return (
         | 
| 46 | 
            +
                <div>
         | 
| 47 | 
            +
                  <Button
         | 
| 48 | 
            +
                      onClick={updateValue}
         | 
| 49 | 
            +
                      text="Update Value"
         | 
| 50 | 
            +
                    />
         | 
| 51 | 
            +
                    <Button
         | 
| 52 | 
            +
                        onClick={updateName}
         | 
| 53 | 
            +
                        text="Update Name"
         | 
| 54 | 
            +
                    />
         | 
| 55 | 
            +
                  <PbGaugeChart
         | 
| 56 | 
            +
                      options={chartOptions}
         | 
| 57 | 
            +
                      ref={chartRef}
         | 
| 58 | 
            +
                      {...props}
         | 
| 59 | 
            +
                  />
         | 
| 60 | 
            +
                </div>
         | 
| 61 | 
            +
              );
         | 
| 62 | 
            +
            }
         | 
| 63 | 
            +
             | 
| 64 | 
            +
            export default PbGaugeChartLiveData
         | 
| @@ -0,0 +1,27 @@ | |
| 1 | 
            +
            <% data = [{ name: "Rating", y: 4.5 }] %>
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            <% chart_options = {
         | 
| 4 | 
            +
            title: {
         | 
| 5 | 
            +
                text: "Product Rating",
         | 
| 6 | 
            +
              },
         | 
| 7 | 
            +
              yAxis: {
         | 
| 8 | 
            +
                min: 0,
         | 
| 9 | 
            +
                max: 5,
         | 
| 10 | 
            +
                lineWidth: 0,
         | 
| 11 | 
            +
                tickWidth: 0,
         | 
| 12 | 
            +
                minorTickInterval: nil,
         | 
| 13 | 
            +
                tickAmount: 2,
         | 
| 14 | 
            +
                tickPositions: [0, 5],
         | 
| 15 | 
            +
                labels: {
         | 
| 16 | 
            +
                  y: 26,
         | 
| 17 | 
            +
                  enabled: true,
         | 
| 18 | 
            +
                  style: {
         | 
| 19 | 
            +
                    color: '#C1CDD6',
         | 
| 20 | 
            +
                    fontWeight:'700',
         | 
| 21 | 
            +
                  }
         | 
| 22 | 
            +
                },
         | 
| 23 | 
            +
              },
         | 
| 24 | 
            +
              series: [{ data: data }],
         | 
| 25 | 
            +
            } %>
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            <%= pb_rails("pb_gauge_chart", props: { options: chart_options }) %>
         | 
| @@ -0,0 +1,40 @@ | |
| 1 | 
            +
            import React from 'react'
         | 
| 2 | 
            +
            import PbGaugeChart from '../../pb_pb_gauge_chart/_pb_gauge_chart'
         | 
| 3 | 
            +
            import { colors, typography } from 'playbook-ui'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            const data = [{ name: "Rating", y: 4.5 }]
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            const chartOptions = {
         | 
| 8 | 
            +
              title: {
         | 
| 9 | 
            +
                text: "Product Rating",
         | 
| 10 | 
            +
              },
         | 
| 11 | 
            +
              yAxis: {
         | 
| 12 | 
            +
                min: 0,
         | 
| 13 | 
            +
                max: 5,
         | 
| 14 | 
            +
                lineWidth: 0,
         | 
| 15 | 
            +
                tickWidth: 0,
         | 
| 16 | 
            +
                minorTickInterval: null,
         | 
| 17 | 
            +
                tickAmount: 2,
         | 
| 18 | 
            +
                tickPositions: [0, 5],
         | 
| 19 | 
            +
                labels: {
         | 
| 20 | 
            +
                  y: 26,
         | 
| 21 | 
            +
                  enabled: true,
         | 
| 22 | 
            +
                  style: {
         | 
| 23 | 
            +
                    color: colors.neutral,
         | 
| 24 | 
            +
                    fontFamily: typography.font_family_base,
         | 
| 25 | 
            +
                    fontWeight: typography.bold,
         | 
| 26 | 
            +
                  }
         | 
| 27 | 
            +
                },
         | 
| 28 | 
            +
              },
         | 
| 29 | 
            +
              series: [{ data: data }],
         | 
| 30 | 
            +
            };
         | 
| 31 | 
            +
            const PbGaugeChartMinMax = (props) => (
         | 
| 32 | 
            +
              <div>
         | 
| 33 | 
            +
                <PbGaugeChart
         | 
| 34 | 
            +
                    options={chartOptions}
         | 
| 35 | 
            +
                    {...props}
         | 
| 36 | 
            +
                />
         | 
| 37 | 
            +
              </div>
         | 
| 38 | 
            +
            )
         | 
| 39 | 
            +
             | 
| 40 | 
            +
            export default PbGaugeChartMinMax
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            By default, Highcharts set min to 0 and max to 100 but this can be customized if needed as shown here.
         | 
| @@ -0,0 +1,19 @@ | |
| 1 | 
            +
            <% chart_options = { series: [{ data:[{ name: "Point 1", y: 100 }] }] } %>
         | 
| 2 | 
            +
            <% chart_options_1 = { series: [{ data:[{ name: "Point 2", y: 75 }] }] } %>
         | 
| 3 | 
            +
            <% chart_options_2 = { series: [{ data:[{ name: "Point 3", y: 50 }] }] } %>
         | 
| 4 | 
            +
            <% chart_options_3 = { series: [{ data:[{ name: "Point 4", y: 25 }] }] } %>
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            <%= pb_rails("flex", props: {wrap: true, align: "center"}) do %>
         | 
| 7 | 
            +
              <%= pb_rails("flex/flex_item", props: {fixed_size: "400px", overflow: "hidden", shrink: true }) do %>
         | 
| 8 | 
            +
                <%= pb_rails("pb_gauge_chart", props: { options: chart_options }) %>
         | 
| 9 | 
            +
              <% end %>
         | 
| 10 | 
            +
              <%= pb_rails("flex/flex_item", props: {fixed_size: "300px", overflow: "hidden", shrink: true }) do %>
         | 
| 11 | 
            +
                <%= pb_rails("pb_gauge_chart", props: { options: chart_options_1 }) %>
         | 
| 12 | 
            +
              <% end %>
         | 
| 13 | 
            +
              <%= pb_rails("flex/flex_item", props: {fixed_size: "200px", overflow: "hidden", shrink: true }) do %>
         | 
| 14 | 
            +
                  <%= pb_rails("pb_gauge_chart", props: { options: chart_options_2 }) %>
         | 
| 15 | 
            +
              <% end %>
         | 
| 16 | 
            +
              <%= pb_rails("flex/flex_item", props: {fixed_size: "155px", overflow: "hidden", shrink: true }) do %>
         | 
| 17 | 
            +
                <%= pb_rails("pb_gauge_chart", props: { options: chart_options_3 }) %>
         | 
| 18 | 
            +
              <% end %>
         | 
| 19 | 
            +
            <% end %>
         | 
| @@ -0,0 +1,65 @@ | |
| 1 | 
            +
            import React from 'react'
         | 
| 2 | 
            +
            import PbGaugeChart from '../../pb_pb_gauge_chart/_pb_gauge_chart'
         | 
| 3 | 
            +
            import Flex from '../../pb_flex/_flex'
         | 
| 4 | 
            +
            import FlexItem from '../../pb_flex/_flex_item'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
             | 
| 7 | 
            +
            const PbGaugeChartSizing = (props) => (
         | 
| 8 | 
            +
              <div>
         | 
| 9 | 
            +
                <Flex
         | 
| 10 | 
            +
                    align="center"
         | 
| 11 | 
            +
                    wrap
         | 
| 12 | 
            +
                >
         | 
| 13 | 
            +
                  <FlexItem
         | 
| 14 | 
            +
                      fixedSize="400px"
         | 
| 15 | 
            +
                      overflow="hidden"
         | 
| 16 | 
            +
                      shrink
         | 
| 17 | 
            +
                  >
         | 
| 18 | 
            +
                    <PbGaugeChart
         | 
| 19 | 
            +
                        options={{
         | 
| 20 | 
            +
                          series: [{ data: [{ name: "Point 1", y: 100 }] }],
         | 
| 21 | 
            +
                        }}
         | 
| 22 | 
            +
                    />
         | 
| 23 | 
            +
                  </FlexItem>
         | 
| 24 | 
            +
                  <FlexItem
         | 
| 25 | 
            +
                      fixedSize="300px"
         | 
| 26 | 
            +
                      overflow="hidden"
         | 
| 27 | 
            +
                      shrink
         | 
| 28 | 
            +
                  >
         | 
| 29 | 
            +
                    <PbGaugeChart
         | 
| 30 | 
            +
                        options={{
         | 
| 31 | 
            +
                          series: [{ data: [{ name: "Point 2", y: 75 }] }],
         | 
| 32 | 
            +
                        }}
         | 
| 33 | 
            +
                        {...props}
         | 
| 34 | 
            +
                    />
         | 
| 35 | 
            +
                  </FlexItem>
         | 
| 36 | 
            +
                  <FlexItem
         | 
| 37 | 
            +
                      fixedSize="200px"
         | 
| 38 | 
            +
                      overflow="hidden"
         | 
| 39 | 
            +
                      shrink
         | 
| 40 | 
            +
                  >
         | 
| 41 | 
            +
                    <PbGaugeChart
         | 
| 42 | 
            +
                        options={{
         | 
| 43 | 
            +
                          series: [{ data: [{ name: "Point 3", y: 50 }] }],
         | 
| 44 | 
            +
                        }}
         | 
| 45 | 
            +
                    />
         | 
| 46 | 
            +
                  </FlexItem>
         | 
| 47 | 
            +
                  <FlexItem
         | 
| 48 | 
            +
                      fixedSize="125px"
         | 
| 49 | 
            +
                      overflow="hidden"
         | 
| 50 | 
            +
                      shrink
         | 
| 51 | 
            +
                  >
         | 
| 52 | 
            +
                    <PbGaugeChart
         | 
| 53 | 
            +
                        options={{
         | 
| 54 | 
            +
                          chart: {
         | 
| 55 | 
            +
                            height: "100%",
         | 
| 56 | 
            +
                          },
         | 
| 57 | 
            +
                          series: [{ data: [{ name: "Point 4", y: 25 }] }],
         | 
| 58 | 
            +
                        }}
         | 
| 59 | 
            +
                    />
         | 
| 60 | 
            +
                  </FlexItem>
         | 
| 61 | 
            +
                </Flex>
         | 
| 62 | 
            +
              </div>
         | 
| 63 | 
            +
            )
         | 
| 64 | 
            +
             | 
| 65 | 
            +
            export default PbGaugeChartSizing
         | 
| @@ -0,0 +1,14 @@ | |
| 1 | 
            +
            <% data = [{ name: "Score", y: 780 }] %>
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            <% chart_options = {
         | 
| 4 | 
            +
              title: {
         | 
| 5 | 
            +
                text: "Credit Score",
         | 
| 6 | 
            +
              },
         | 
| 7 | 
            +
              yAxis: {
         | 
| 8 | 
            +
                min: 300,
         | 
| 9 | 
            +
                max: 850,
         | 
| 10 | 
            +
              },
         | 
| 11 | 
            +
              series: [{ data: data }],
         | 
| 12 | 
            +
            } %>
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            <%= pb_rails("pb_gauge_chart", props: { options: chart_options }) %>
         | 
| @@ -0,0 +1,27 @@ | |
| 1 | 
            +
            import React from 'react'
         | 
| 2 | 
            +
            import PbGaugeChart from '../../pb_pb_gauge_chart/_pb_gauge_chart'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
             | 
| 5 | 
            +
            const data = [{ name: "Score", y: 780 }]
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            const chartOptions = {
         | 
| 8 | 
            +
              title: {
         | 
| 9 | 
            +
                text: "Credit Score",
         | 
| 10 | 
            +
              },
         | 
| 11 | 
            +
              yAxis: {
         | 
| 12 | 
            +
                min: 300,
         | 
| 13 | 
            +
                max: 850,
         | 
| 14 | 
            +
              },
         | 
| 15 | 
            +
              series: [{ data: data }],
         | 
| 16 | 
            +
            };
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            const PbGaugeChartTitle = (props) => (
         | 
| 19 | 
            +
              <div>
         | 
| 20 | 
            +
                <PbGaugeChart
         | 
| 21 | 
            +
                    options={chartOptions}
         | 
| 22 | 
            +
                    {...props}
         | 
| 23 | 
            +
                />
         | 
| 24 | 
            +
              </div>
         | 
| 25 | 
            +
            )
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            export default PbGaugeChartTitle
         | 
| @@ -0,0 +1,39 @@ | |
| 1 | 
            +
            <% data1 = [{ name: 'Data Used', y: 32 }] %>
         | 
| 2 | 
            +
            <% data2 = [{ name: 'Sales to Date', y: 65 }] %>
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            <% chart_options_1 = {
         | 
| 5 | 
            +
              title: {
         | 
| 6 | 
            +
                text: "Data Usage",
         | 
| 7 | 
            +
              },
         | 
| 8 | 
            +
              series: [{ data: data1 }],
         | 
| 9 | 
            +
              plotOptions: {
         | 
| 10 | 
            +
                solidgauge: {
         | 
| 11 | 
            +
                  dataLabels: {
         | 
| 12 | 
            +
                    format:
         | 
| 13 | 
            +
                      '<span class="fix">{y:,f}</span>' +
         | 
| 14 | 
            +
                      '<span style="fill: #687887; font-size: 27px;">GB</span>',
         | 
| 15 | 
            +
                  },
         | 
| 16 | 
            +
                },
         | 
| 17 | 
            +
              },
         | 
| 18 | 
            +
            } %>
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            <% chart_options_2 = {
         | 
| 21 | 
            +
              title: {
         | 
| 22 | 
            +
                text: "Sales Goal",
         | 
| 23 | 
            +
              },
         | 
| 24 | 
            +
              series: [{ data: data2 }],
         | 
| 25 | 
            +
              plotOptions: {
         | 
| 26 | 
            +
                solidgauge: {
         | 
| 27 | 
            +
                  dataLabels: {
         | 
| 28 | 
            +
                    format:
         | 
| 29 | 
            +
                      '<span y="28" style="fill: #687887; font-size: 16px;">$</span>' +
         | 
| 30 | 
            +
                      '<span class="fix" y="38">{y:,f}</span>' +
         | 
| 31 | 
            +
                      '<span style="fill: #687887; font-size: 27px;">k</span>',
         | 
| 32 | 
            +
                  },
         | 
| 33 | 
            +
                },
         | 
| 34 | 
            +
              },
         | 
| 35 | 
            +
            } %>
         | 
| 36 | 
            +
             | 
| 37 | 
            +
             | 
| 38 | 
            +
            <%= pb_rails("pb_gauge_chart", props: { options: chart_options_1 }) %>
         | 
| 39 | 
            +
            <%= pb_rails("pb_gauge_chart", props: { options: chart_options_2 }) %>
         | 
| @@ -0,0 +1,58 @@ | |
| 1 | 
            +
            import React from 'react'
         | 
| 2 | 
            +
            import PbGaugeChart from '../../pb_pb_gauge_chart/_pb_gauge_chart'
         | 
| 3 | 
            +
            import { colors, typography } from 'playbook-ui'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
             | 
| 6 | 
            +
            const data1 = [
         | 
| 7 | 
            +
              { name: 'Data Used', y: 32 },
         | 
| 8 | 
            +
            ]
         | 
| 9 | 
            +
            const data2 = [
         | 
| 10 | 
            +
              { name: 'Sales to Date', y: 65 },
         | 
| 11 | 
            +
            ]
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            const chartOptions1 = {
         | 
| 14 | 
            +
              title: {
         | 
| 15 | 
            +
                text: "Data Usage",
         | 
| 16 | 
            +
              },
         | 
| 17 | 
            +
              series: [{ data: data1 }],
         | 
| 18 | 
            +
              plotOptions: {
         | 
| 19 | 
            +
                solidgauge: {
         | 
| 20 | 
            +
                  dataLabels: {
         | 
| 21 | 
            +
                    format:
         | 
| 22 | 
            +
                      `<span class="fix">{y:,f}</span>` +
         | 
| 23 | 
            +
                      `<span style="fill: ${colors.text_lt_light}; font-size: ${typography.text_larger};">GB</span>`,
         | 
| 24 | 
            +
                  },
         | 
| 25 | 
            +
                },
         | 
| 26 | 
            +
              },
         | 
| 27 | 
            +
            };
         | 
| 28 | 
            +
            const chartOptions2 = {
         | 
| 29 | 
            +
              title: {
         | 
| 30 | 
            +
                text: "Sales Goal",
         | 
| 31 | 
            +
              },
         | 
| 32 | 
            +
              series: [{ data: data2 }],
         | 
| 33 | 
            +
              plotOptions: {
         | 
| 34 | 
            +
                solidgauge: {
         | 
| 35 | 
            +
                  dataLabels: {
         | 
| 36 | 
            +
                    format:
         | 
| 37 | 
            +
                      `<span y="28" style="fill: ${colors.text_lt_light}; font-size: ${typography.text_base};">$</span>` +
         | 
| 38 | 
            +
                      `<span class="fix" y="38">{y:,f}</span>` +
         | 
| 39 | 
            +
                      `<span style="fill: ${colors.text_lt_light}; font-size: ${typography.text_larger};">k</span>`,
         | 
| 40 | 
            +
                  },
         | 
| 41 | 
            +
                },
         | 
| 42 | 
            +
              },
         | 
| 43 | 
            +
            };
         | 
| 44 | 
            +
             | 
| 45 | 
            +
            const PbGaugeChartUnits = (props) => (
         | 
| 46 | 
            +
              <div>
         | 
| 47 | 
            +
                <PbGaugeChart
         | 
| 48 | 
            +
                    options={chartOptions1}
         | 
| 49 | 
            +
                    {...props}
         | 
| 50 | 
            +
                />
         | 
| 51 | 
            +
                <PbGaugeChart
         | 
| 52 | 
            +
                    options={chartOptions2}
         | 
| 53 | 
            +
                    {...props}
         | 
| 54 | 
            +
                />
         | 
| 55 | 
            +
              </div>
         | 
| 56 | 
            +
            )
         | 
| 57 | 
            +
             | 
| 58 | 
            +
            export default PbGaugeChartUnits
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            Use custom CSS with classes or inline styles (as shown in these docs) to customize the appearance of prefix and suffix units.
         | 
| @@ -0,0 +1,29 @@ | |
| 1 | 
            +
            examples:
         | 
| 2 | 
            +
              
         | 
| 3 | 
            +
              rails:
         | 
| 4 | 
            +
              - pb_gauge_chart_default: Default
         | 
| 5 | 
            +
              - pb_gauge_chart_disable_animation: Disable Animation
         | 
| 6 | 
            +
              - pb_gauge_chart_title: With Title
         | 
| 7 | 
            +
              - pb_gauge_chart_units: With Units
         | 
| 8 | 
            +
              - pb_gauge_chart_full_circle: Full Circle
         | 
| 9 | 
            +
              - pb_gauge_chart_min_max: With Min and Max Labels
         | 
| 10 | 
            +
              - pb_gauge_chart_sizing: Sizing
         | 
| 11 | 
            +
              - pb_gauge_chart_height: Height
         | 
| 12 | 
            +
              - pb_gauge_chart_color: Custom Color
         | 
| 13 | 
            +
              - pb_gauge_chart_complex: Complex Example
         | 
| 14 | 
            +
              
         | 
| 15 | 
            +
              
         | 
| 16 | 
            +
              react:
         | 
| 17 | 
            +
              - pb_gauge_chart_default: Default
         | 
| 18 | 
            +
              - pb_gauge_chart_disable_animation: Disable Animation
         | 
| 19 | 
            +
              - pb_gauge_chart_title: With Title
         | 
| 20 | 
            +
              - pb_gauge_chart_units: With Units
         | 
| 21 | 
            +
              - pb_gauge_chart_full_circle: Full Circle
         | 
| 22 | 
            +
              - pb_gauge_chart_min_max: With Min and Max Labels
         | 
| 23 | 
            +
              - pb_gauge_chart_sizing: Sizing
         | 
| 24 | 
            +
              - pb_gauge_chart_height: Height
         | 
| 25 | 
            +
              - pb_gauge_chart_live_data: Live Data
         | 
| 26 | 
            +
              - pb_gauge_chart_color: Custom Color
         | 
| 27 | 
            +
              - pb_gauge_chart_complex: Complex Example
         | 
| 28 | 
            +
              
         | 
| 29 | 
            +
              
         | 
| @@ -0,0 +1,11 @@ | |
| 1 | 
            +
            export { default as PbGaugeChartDefault } from './_pb_gauge_chart_default.jsx'
         | 
| 2 | 
            +
            export { default as PbGaugeChartDisableAnimation } from './_pb_gauge_chart_disable_animation.jsx'
         | 
| 3 | 
            +
            export { default as PbGaugeChartTitle } from './_pb_gauge_chart_title.jsx'
         | 
| 4 | 
            +
            export { default as PbGaugeChartUnits } from './_pb_gauge_chart_units.jsx'
         | 
| 5 | 
            +
            export { default as PbGaugeChartFullCircle } from './_pb_gauge_chart_full_circle.jsx'
         | 
| 6 | 
            +
            export { default as PbGaugeChartMinMax } from './_pb_gauge_chart_min_max.jsx'
         | 
| 7 | 
            +
            export { default as PbGaugeChartSizing } from './_pb_gauge_chart_sizing.jsx'
         | 
| 8 | 
            +
            export { default as PbGaugeChartHeight } from './_pb_gauge_chart_height.jsx'
         | 
| 9 | 
            +
            export { default as PbGaugeChartLiveData } from './_pb_gauge_chart_live_data.jsx'
         | 
| 10 | 
            +
            export { default as PbGaugeChartColor } from './_pb_gauge_chart_color.jsx'
         | 
| 11 | 
            +
            export { default as PbGaugeChartComplex } from './_pb_gauge_chart_complex.jsx'
         | 
| @@ -0,0 +1,91 @@ | |
| 1 | 
            +
            import colors from '../tokens/exports/_colors.module.scss'
         | 
| 2 | 
            +
            import typography from '../tokens/exports/_typography.module.scss'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            const pbGaugeGraphTheme = {
         | 
| 5 | 
            +
              title: { 
         | 
| 6 | 
            +
                text: "",
         | 
| 7 | 
            +
                style: {
         | 
| 8 | 
            +
                  fontFamily: typography.font_family_base,
         | 
| 9 | 
            +
                  fontSize: typography.text_larger,
         | 
| 10 | 
            +
                },
         | 
| 11 | 
            +
              },
         | 
| 12 | 
            +
              chart: {
         | 
| 13 | 
            +
                type: "solidgauge",
         | 
| 14 | 
            +
                events: {
         | 
| 15 | 
            +
                  render() {
         | 
| 16 | 
            +
                    this.container
         | 
| 17 | 
            +
                      const arc = this.container.querySelector('path.gauge-pane');
         | 
| 18 | 
            +
                      if (arc) arc.setAttribute('stroke-linejoin', 'round');
         | 
| 19 | 
            +
                  }
         | 
| 20 | 
            +
                }
         | 
| 21 | 
            +
              },
         | 
| 22 | 
            +
              pane: {
         | 
| 23 | 
            +
                size: "90%",
         | 
| 24 | 
            +
                startAngle: -100,
         | 
| 25 | 
            +
                endAngle: 100,
         | 
| 26 | 
            +
                background: [
         | 
| 27 | 
            +
                  {
         | 
| 28 | 
            +
                    borderWidth: 20,
         | 
| 29 | 
            +
                    innerRadius: "90%",
         | 
| 30 | 
            +
                    outerRadius: "90%",
         | 
| 31 | 
            +
                    shape: "arc",
         | 
| 32 | 
            +
                    className: "gauge-pane",
         | 
| 33 | 
            +
                    borderColor: colors.border_light,
         | 
| 34 | 
            +
                    borderRadius: '50%',
         | 
| 35 | 
            +
                  },
         | 
| 36 | 
            +
                ],
         | 
| 37 | 
            +
              },
         | 
| 38 | 
            +
              tooltip: {
         | 
| 39 | 
            +
                backgroundColor: {
         | 
| 40 | 
            +
                  linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
         | 
| 41 | 
            +
                  stops: [
         | 
| 42 | 
            +
                    [0, colors.bg_dark],
         | 
| 43 | 
            +
                    [1, colors.bg_dark],
         | 
| 44 | 
            +
                  ],
         | 
| 45 | 
            +
                },
         | 
| 46 | 
            +
                pointFormat:
         | 
| 47 | 
            +
                  '<span style="font-weight: bold; color:{point.color};">●</span>{point.name}: ' +
         | 
| 48 | 
            +
                  "<b>{point.y}</b>",
         | 
| 49 | 
            +
                followPointer: true,
         | 
| 50 | 
            +
                shadow: false,
         | 
| 51 | 
            +
                borderWidth: 0,
         | 
| 52 | 
            +
                borderRadius: 10,
         | 
| 53 | 
            +
                style: {
         | 
| 54 | 
            +
                  fontFamily: typography.font_family_base,
         | 
| 55 | 
            +
                  color: colors.text_dk_default,
         | 
| 56 | 
            +
                  fontWeight: typography.regular,
         | 
| 57 | 
            +
                  fontSize: typography.text_smaller,
         | 
| 58 | 
            +
                },
         | 
| 59 | 
            +
              },
         | 
| 60 | 
            +
              yAxis: {
         | 
| 61 | 
            +
                min: 0,
         | 
| 62 | 
            +
                max: 100,
         | 
| 63 | 
            +
                lineWidth: 0,
         | 
| 64 | 
            +
                tickPositions: [] as number[],
         | 
| 65 | 
            +
              },
         | 
| 66 | 
            +
              plotOptions: {
         | 
| 67 | 
            +
                solidgauge: {
         | 
| 68 | 
            +
                  borderColor: colors.data_1,
         | 
| 69 | 
            +
                  borderWidth: 20,
         | 
| 70 | 
            +
                  color: colors.data_1,
         | 
| 71 | 
            +
                  radius: 90,
         | 
| 72 | 
            +
                  innerRadius: "90%",
         | 
| 73 | 
            +
                  y: -26,
         | 
| 74 | 
            +
                  dataLabels: {
         | 
| 75 | 
            +
                    borderWidth: 0,
         | 
| 76 | 
            +
                    color: colors.text_lt_default,
         | 
| 77 | 
            +
                    enabled: true,
         | 
| 78 | 
            +
                    format: '<span class="fix">{y:,f}</span>',
         | 
| 79 | 
            +
                    style: {
         | 
| 80 | 
            +
                      fontFamily: typography.font_family_base,
         | 
| 81 | 
            +
                      fontWeight: typography.regular,
         | 
| 82 | 
            +
                      fontSize: typography.heading_2,
         | 
| 83 | 
            +
                    },
         | 
| 84 | 
            +
                    y: -26,
         | 
| 85 | 
            +
                  },
         | 
| 86 | 
            +
                },
         | 
| 87 | 
            +
              },
         | 
| 88 | 
            +
              credits: { enabled: false }
         | 
| 89 | 
            +
            }
         | 
| 90 | 
            +
             | 
| 91 | 
            +
            export default pbGaugeGraphTheme;
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            <%= react_component('PbGaugeChart', object.react_props) %>
         | 
| @@ -0,0 +1,25 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Playbook
         | 
| 4 | 
            +
              module PbPbGaugeChart
         | 
| 5 | 
            +
                class PbGaugeChart < ::Playbook::KitBase
         | 
| 6 | 
            +
                  prop :options, default: {}
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                  def react_props
         | 
| 9 | 
            +
                    {
         | 
| 10 | 
            +
                      className: classname,
         | 
| 11 | 
            +
                      data: data,
         | 
| 12 | 
            +
                      options: options,
         | 
| 13 | 
            +
                      id: id,
         | 
| 14 | 
            +
                    }
         | 
| 15 | 
            +
                  end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                  def classname
         | 
| 18 | 
            +
                    # Highcharts react needs classname attached to the container div,
         | 
| 19 | 
            +
                    # we pass an empty string here to avoid conflicts, classname is built in the TSX
         | 
| 20 | 
            +
                    # We still need generate_classnames to retain ability to pass in custom classnames or global props
         | 
| 21 | 
            +
                    generate_classname("")
         | 
| 22 | 
            +
                  end
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
              end
         | 
| 25 | 
            +
            end
         |