playbook_ui 14.22.0.pre.alpha.popoverkittransitionpoppertofloatingui8736 → 14.22.0.pre.alpha.popoverkittransitionpoppertofloatingui8856

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_bar_graph/barGraphTheme.ts +106 -0
  3. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_colors.jsx +33 -15
  4. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_default.jsx +33 -15
  5. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_height.jsx +52 -22
  6. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_height.md +3 -0
  7. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_horizontal.jsx +12 -16
  8. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend.jsx +31 -15
  9. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_non_clickable.jsx +39 -16
  10. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_position.jsx +86 -38
  11. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_negative_numbers.jsx +32 -15
  12. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_secondary_y_axis.jsx +72 -22
  13. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_secondary_y_axis.md +1 -1
  14. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_spline.jsx +31 -15
  15. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_stacked.jsx +37 -16
  16. data/app/pb_kits/playbook/pb_bar_graph/docs/_description.md +1 -3
  17. data/app/pb_kits/playbook/pb_bar_graph/docs/example.yml +1 -3
  18. data/app/pb_kits/playbook/pb_bar_graph/docs/index.js +0 -2
  19. data/app/pb_kits/playbook/pb_circle_chart/circleChartTheme.ts +36 -1
  20. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_block.jsx +71 -26
  21. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors.jsx +29 -16
  22. data/app/pb_kits/playbook/pb_circle_chart/docs/{_circle_chart_colors.md → _circle_chart_colors_rails.md} +1 -1
  23. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors_react.md +2 -0
  24. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_custom_tooltip.jsx +28 -16
  25. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_custom_tooltip.md +4 -2
  26. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_default.jsx +23 -15
  27. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_inner_sizes.jsx +81 -51
  28. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.jsx +103 -75
  29. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.md +3 -6
  30. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_live_data.jsx +19 -13
  31. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_rounded.jsx +30 -17
  32. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_labels.jsx +34 -20
  33. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_legend_kit.jsx +29 -20
  34. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_title.jsx +28 -20
  35. data/app/pb_kits/playbook/pb_circle_chart/docs/_description.md +1 -0
  36. data/app/pb_kits/playbook/pb_circle_chart/docs/example.yml +0 -1
  37. data/app/pb_kits/playbook/pb_circle_chart/docs/index.js +0 -1
  38. data/app/pb_kits/playbook/pb_filter/filter.test.js +1 -1
  39. data/app/pb_kits/playbook/pb_popover/_popover.tsx +16 -20
  40. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_click_open.html.erb +14 -0
  41. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_click_open_rails.md +1 -0
  42. data/app/pb_kits/playbook/pb_tooltip/docs/example.yml +1 -0
  43. data/app/pb_kits/playbook/pb_tooltip/index.js +59 -36
  44. data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +9 -2
  45. data/app/pb_kits/playbook/pb_walkthrough/_walkthrough.tsx +3 -3
  46. data/dist/chunks/_circle_chart-DVSbcau1.js +1 -0
  47. data/dist/chunks/_typeahead-Dw_aUsLL.js +22 -0
  48. data/dist/chunks/_weekday_stacked-BNHzzslr.js +21 -0
  49. data/dist/chunks/{lib-MbZXVX7s.js → lib-Ca_BDmX1.js} +1 -1
  50. data/dist/chunks/{pb_form_validation-ClEueixE.js → pb_form_validation-DczEjrcc.js} +1 -1
  51. data/dist/chunks/vendor.js +1 -1
  52. data/dist/playbook-doc.js +1 -19
  53. data/dist/playbook-rails-react-bindings.js +1 -1
  54. data/dist/playbook-rails.js +1 -1
  55. data/lib/playbook/version.rb +1 -1
  56. metadata +15 -16
  57. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_custom.jsx +0 -72
  58. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_custom.md +0 -6
  59. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.jsx +0 -64
  60. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.md +0 -1
  61. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_pb_styles.jsx +0 -38
  62. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_pb_styles.md +0 -1
  63. data/app/pb_kits/playbook/pb_popover/popover.test.js +0 -220
  64. data/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor_advanced.test.js +0 -47
  65. data/dist/chunks/_typeahead-L71EUpvT.js +0 -22
  66. data/dist/chunks/_weekday_stacked-BEQ6MH1X.js +0 -45
  67. /data/app/pb_kits/playbook/pb_tooltip/docs/{_tooltip_click_open.md → _tooltip_click_open_react.md} +0 -0
@@ -1,47 +1,61 @@
1
1
  import React from 'react'
2
-
3
- import CircleChart from '../_circle_chart'
2
+ import circleChartTheme from '../circleChartTheme'
3
+ import Highcharts from "highcharts"
4
+ import HighchartsReact from "highcharts-react-official"
4
5
 
5
6
  const dataWithLabels = [
6
7
  {
7
8
  name: 'Facebook',
8
- value: 2498,
9
+ y: 2498,
9
10
  },
10
11
  {
11
12
  name: 'YouTube',
12
- value: 2000,
13
+ y: 2000,
13
14
  },
14
15
  {
15
16
  name: 'WhatsApp',
16
- value: 2000,
17
+ y: 2000,
17
18
  },
18
19
  {
19
20
  name: 'Facebook Messenger',
20
- value: 1300,
21
+ y: 1300,
21
22
  },
22
23
  {
23
24
  name: 'WeChat',
24
- value: 1165,
25
+ y: 1165,
25
26
  },
26
27
  {
27
28
  name: 'Instagram',
28
- value: 1000,
29
+ y: 1000,
29
30
  },
30
31
  {
31
32
  name: 'Tik Tok',
32
- value: 800,
33
+ y: 800,
33
34
  },
34
35
  ]
35
36
 
36
- const CircleChartWithLabels = (props) => (
37
- <div>
38
- <CircleChart
39
- chartData={dataWithLabels}
40
- dataLabels
41
- id="with-labels-example"
42
- {...props}
43
- />
44
- </div>
45
- )
37
+ const CircleChartWithLabels = () => {
38
+ const chartOptions = {
39
+ series: [{ data: dataWithLabels }],
40
+ plotOptions: {
41
+ pie: {
42
+ dataLabels: {
43
+ enabled: true,
44
+ }
45
+ }
46
+ }
47
+ }
48
+
49
+ const options = Highcharts.merge({}, circleChartTheme, chartOptions)
50
+
51
+ return (
52
+ <div>
53
+ <HighchartsReact
54
+ highcharts={Highcharts}
55
+ options={options}
56
+ />
57
+ </div>
58
+ )
59
+ }
46
60
 
47
- export default CircleChartWithLabels
61
+ export default CircleChartWithLabels
@@ -1,32 +1,41 @@
1
1
  import React from 'react'
2
-
3
- import CircleChart from '../_circle_chart'
2
+ import circleChartTheme from '../circleChartTheme'
3
+ import Highcharts from "highcharts"
4
+ import HighchartsReact from "highcharts-react-official"
4
5
 
5
6
  const dataWithLegend = [{
6
7
  name: 'Bugs',
7
- value: 8,
8
-
8
+ y: 8,
9
9
  },
10
10
  {
11
11
  name: 'Chores',
12
- value: 1,
13
-
12
+ y: 1,
14
13
  },
15
14
  {
16
15
  name: 'Stories',
17
- value: 12,
18
- },
19
- ]
16
+ y: 12,
17
+ }]
18
+
19
+ const CircleChartWithLegendKit = () => {
20
+ const chartOptions = {
21
+ series: [{ data: dataWithLegend }],
22
+ plotOptions: {
23
+ pie: {
24
+ showInLegend: true
25
+ }
26
+ }
27
+ }
28
+
29
+ const options = Highcharts.merge({}, circleChartTheme, chartOptions)
20
30
 
21
- const CircleChartWithLegendKit = (props) => (
22
- <div>
23
- <CircleChart
24
- chartData={dataWithLegend}
25
- id="with-legend-example"
26
- legend
27
- {...props}
28
- />
29
- </div>
30
- )
31
+ return (
32
+ <div>
33
+ <HighchartsReact
34
+ highcharts={Highcharts}
35
+ options={options}
36
+ />
37
+ </div>
38
+ )
39
+ }
31
40
 
32
- export default CircleChartWithLegendKit
41
+ export default CircleChartWithLegendKit
@@ -1,47 +1,55 @@
1
1
  import React from 'react'
2
-
3
- import CircleChart from '../_circle_chart'
2
+ import circleChartTheme from '../circleChartTheme'
3
+ import Highcharts from "highcharts"
4
+ import HighchartsReact from "highcharts-react-official"
4
5
 
5
6
  const dataWithTitle = [
6
7
  {
7
8
  name: 'Facebook',
8
- value: 2498,
9
+ y: 2498,
9
10
  },
10
11
  {
11
12
  name: 'YouTube',
12
- value: 2000,
13
+ y: 2000,
13
14
  },
14
15
  {
15
16
  name: 'WhatsApp',
16
- value: 2000,
17
+ y: 2000,
17
18
  },
18
19
  {
19
20
  name: 'Facebook Messenger',
20
- value: 1300,
21
+ y: 1300,
21
22
  },
22
23
  {
23
24
  name: 'WeChat',
24
- value: 1165,
25
+ y: 1165,
25
26
  },
26
27
  {
27
28
  name: 'Instagram',
28
- value: 1000,
29
+ y: 1000,
29
30
  },
30
31
  {
31
32
  name: 'Tik Tok',
32
- value: 800,
33
+ y: 800,
33
34
  },
34
35
  ]
35
36
 
36
- const CircleChartWithLegendKit = (props) => (
37
- <div>
38
- <CircleChart
39
- chartData={dataWithTitle}
40
- id="with-title-example"
41
- title="Active Users on Social Media"
42
- {...props}
43
- />
44
- </div>
45
- )
37
+ const CircleChartWithTitle = () => {
38
+ const chartOptions = {
39
+ title: { text: "Active Users on Social Media" },
40
+ series: [{ data: dataWithTitle }],
41
+ }
42
+
43
+ const options = Highcharts.merge({}, circleChartTheme, chartOptions)
44
+
45
+ return (
46
+ <div>
47
+ <HighchartsReact
48
+ highcharts={Highcharts}
49
+ options={options}
50
+ />
51
+ </div>
52
+ )
53
+ }
46
54
 
47
- export default CircleChartWithLegendKit
55
+ export default CircleChartWithTitle
@@ -0,0 +1 @@
1
+ **Important Note for the React Kit**: In order to leverage this kit, you must install `highcharts` and `highcharts-react-official` into your project as shown below. To then apply Playbook styles to your Highchart, import circleChartTheme.ts from playbook-ui and merge it with your Highchart options. Then, pass the merged value to the options prop. Playbook’s styling will be applied automatically. See the examples in the documentation below.
@@ -14,7 +14,6 @@ examples:
14
14
 
15
15
  react:
16
16
  - circle_chart_default: Default Style
17
- - circle_chart_pb_styles: Playbook Styles
18
17
  - circle_chart_live_data: Live Data
19
18
  - circle_chart_rounded: Rounded Corners
20
19
  - circle_chart_block: Accepts Any Block
@@ -9,4 +9,3 @@ export { default as CircleChartLegendPosition } from './_circle_chart_legend_pos
9
9
  export { default as CircleChartWithTitle } from './_circle_chart_with_title.jsx'
10
10
  export { default as CircleChartInnerSizes } from './_circle_chart_inner_sizes.jsx'
11
11
  export { default as CircleChartCustomTooltip } from "./_circle_chart_custom_tooltip.jsx"
12
- export { default as CircleChartPbStyles } from "./_circle_chart_pb_styles.jsx"
@@ -57,7 +57,7 @@ function FilterTest(props) {
57
57
  );
58
58
  }
59
59
 
60
- test("triggers popover on filter button click", () => {
60
+ test.skip("triggers popover on filter button click", () => {
61
61
  const { container } = render(<FilterTest data={{ testid: "render-test" }}/>);
62
62
 
63
63
  const btn = screen.getAllByRole("button")[0];
@@ -1,13 +1,13 @@
1
1
  /* eslint-disable react/no-multi-comp */
2
2
  import React, { useEffect, useState } from "react";
3
3
  import ReactDOM from "react-dom";
4
- import {
5
- Popper,
6
- Manager as PopperManager,
7
- Modifier,
8
- PopperProps,
9
- Reference as PopperReference,
10
- } from "react-popper";
4
+ // import {
5
+ // Popper,
6
+ // Manager as PopperManager,
7
+ // Modifier,
8
+ // PopperProps,
9
+ // Reference as PopperReference,
10
+ // } from "react-popper";
11
11
 
12
12
  import {
13
13
  buildAriaProps,
@@ -31,10 +31,10 @@ type PbPopoverProps = {
31
31
  htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
32
32
  id?: string;
33
33
  offset?: boolean;
34
- reference: PopperReference & any;
34
+ reference: any;
35
35
  show?: boolean;
36
36
  shouldClosePopover?: (arg0: boolean) => void;
37
- } & ModifiedGlobalProps & Omit<PopperProps<any>, 'children'>
37
+ } & ModifiedGlobalProps & Omit<any, 'children'>
38
38
  & { children?: React.ReactChild[] | React.ReactChild }
39
39
 
40
40
  // Prop enabled default modifiers here
@@ -56,7 +56,7 @@ const popoverModifiers = ({
56
56
  modifiers,
57
57
  offset,
58
58
  }: {
59
- modifiers: Modifier<any> & any;
59
+ modifiers: any;
60
60
  offset: boolean;
61
61
  }) => {
62
62
  return offset ? modifiers.concat([POPOVER_MODIFIERS.offset]) : modifiers;
@@ -112,11 +112,7 @@ const Popover = (props: PbPopoverProps) => {
112
112
  );
113
113
 
114
114
  return (
115
- <Popper
116
- modifiers={popoverModifiers({ modifiers, offset })}
117
- placement={placement}
118
- referenceElement={referenceElement}
119
- >
115
+ <>
120
116
  {({ placement, ref, style }) => {
121
117
  return (
122
118
  <div
@@ -147,7 +143,7 @@ const Popover = (props: PbPopoverProps) => {
147
143
  </div>
148
144
  );
149
145
  }}
150
- </Popper>
146
+ </>
151
147
  );
152
148
  };
153
149
 
@@ -228,9 +224,9 @@ const PbReactPopover = (props: PbPopoverProps): React.ReactElement => {
228
224
  );
229
225
 
230
226
  return (
231
- <PopperManager>
227
+ // <PopperManager>
232
228
  <>
233
- {reference && !referenceElement && (
229
+ {/* {reference && !referenceElement && (
234
230
  <PopperReference>
235
231
  {({ ref }) => (
236
232
  <span
@@ -253,9 +249,9 @@ const PbReactPopover = (props: PbPopoverProps): React.ReactElement => {
253
249
  </>
254
250
  ) : (
255
251
  { popoverComponent }
256
- ))}
252
+ ))} */}
257
253
  </>
258
- </PopperManager>
254
+ // </PopperManager>
259
255
  );
260
256
  };
261
257
 
@@ -0,0 +1,14 @@
1
+ <%= pb_rails("button", props: {
2
+ text: "Click to Open",
3
+ id: "click-tooltip-trigger-1",
4
+ variant: "primary"
5
+ }) %>
6
+
7
+ <%= pb_rails("tooltip", props: {
8
+ trigger_element_selector: "#click-tooltip-trigger-1",
9
+ tooltip_id: "click-tooltip-1",
10
+ position: "top",
11
+ use_click_to_open: true
12
+ }) do %>
13
+ Tooltip opened by click! Click trigger again to close.
14
+ <% end %>
@@ -0,0 +1 @@
1
+ Set the prop `use_click_to_open` as `true` so that the tooltip will only appear when an item is clicked rather than hovered over.
@@ -9,6 +9,7 @@ examples:
9
9
  - tooltip_with_icon_circle: Icon Circle Tooltip
10
10
  - tooltip_delay_rails: Delay
11
11
  - tooltip_show_tooltip: Show Tooltip
12
+ - tooltip_click_open: Click to Open
12
13
 
13
14
  react:
14
15
  - tooltip_default_react: Default
@@ -19,60 +19,75 @@ export default class PbTooltip extends PbEnhancedElement {
19
19
  }
20
20
 
21
21
  this.triggerElements.forEach((trigger) => {
22
- const method = this.triggerMethod
22
+ const method = this.effectiveTriggerMethod
23
23
  const interactionEnabled = this.tooltipInteraction
24
24
 
25
25
  if (method === 'click') {
26
- trigger.addEventListener('click', () => {
27
- this.showTooltip(trigger)
28
- })
29
- } else {
30
- trigger.addEventListener('mouseenter', () => {
31
- clearSafeZoneListener(this)
32
- clearTimeout(this.mouseleaveTimeout)
33
- this.currentTrigger = trigger
34
- const delayOpen = this.delayOpen ? parseInt(this.delayOpen) : TOOLTIP_TIMEOUT
35
- this.mouseenterTimeout = setTimeout(() => {
36
- this.showTooltip(trigger)
37
- if (interactionEnabled) {
38
- this.checkCloseTooltip(trigger)
26
+ trigger.addEventListener('click', (e) => {
27
+ if (this.useClickToOpen) {
28
+ e.preventDefault()
29
+ if (this.isTooltipVisible()) {
30
+ this.hideTooltip()
31
+ } else {
32
+ this.showTooltip(trigger)
39
33
  }
40
- }, delayOpen)
34
+ } else {
35
+ this.showTooltip(trigger)
36
+ }
41
37
  })
38
+ } else {
39
+ if (!this.useClickToOpen) {
40
+ trigger.addEventListener('mouseenter', () => {
41
+ clearSafeZoneListener(this)
42
+ clearTimeout(this.mouseleaveTimeout)
43
+ this.currentTrigger = trigger
44
+ const delayOpen = this.delayOpen ? parseInt(this.delayOpen) : TOOLTIP_TIMEOUT
45
+ this.mouseenterTimeout = setTimeout(() => {
46
+ this.showTooltip(trigger)
47
+ if (interactionEnabled) {
48
+ this.checkCloseTooltip(trigger)
49
+ }
50
+ }, delayOpen)
51
+ })
42
52
 
43
- trigger.addEventListener('mouseleave', () => {
44
- clearTimeout(this.mouseenterTimeout)
45
- if (this.delayClose) {
46
- const delayClose = parseInt(this.delayClose)
47
- this.mouseleaveTimeout = setTimeout(() => {
53
+ trigger.addEventListener('mouseleave', () => {
54
+ clearTimeout(this.mouseenterTimeout)
55
+ if (this.delayClose) {
56
+ const delayClose = parseInt(this.delayClose)
57
+ this.mouseleaveTimeout = setTimeout(() => {
58
+ if (interactionEnabled) {
59
+ this.attachSafeZoneListener()
60
+ } else {
61
+ this.hideTooltip()
62
+ }
63
+ }, delayClose)
64
+ } else {
48
65
  if (interactionEnabled) {
49
66
  this.attachSafeZoneListener()
50
67
  } else {
51
68
  this.hideTooltip()
52
69
  }
53
- }, delayClose)
54
- } else {
55
- if (interactionEnabled) {
56
- this.attachSafeZoneListener()
57
- } else {
58
- this.hideTooltip()
59
70
  }
60
- }
61
- })
62
-
63
- if (interactionEnabled) {
64
- this.tooltip.addEventListener('mouseenter', () => {
65
- clearSafeZoneListener(this)
66
71
  })
67
72
 
68
- this.tooltip.addEventListener('mouseleave', () => {
69
- this.attachSafeZoneListener()
70
- })
73
+ if (interactionEnabled) {
74
+ this.tooltip.addEventListener('mouseenter', () => {
75
+ clearSafeZoneListener(this)
76
+ })
77
+
78
+ this.tooltip.addEventListener('mouseleave', () => {
79
+ this.attachSafeZoneListener()
80
+ })
81
+ }
71
82
  }
72
83
  }
73
84
  })
74
85
  }
75
86
 
87
+ isTooltipVisible() {
88
+ return this.tooltip && this.tooltip.classList.contains('show')
89
+ }
90
+
76
91
  attachSafeZoneListener() {
77
92
  clearSafeZoneListener(this)
78
93
  this.safeZoneHandler = (e) => {
@@ -145,7 +160,7 @@ export default class PbTooltip extends PbEnhancedElement {
145
160
 
146
161
  this.tooltip.classList.add('show')
147
162
 
148
- if (this.triggerMethod === 'click') {
163
+ if (this.effectiveTriggerMethod === 'click' && !this.useClickToOpen) {
149
164
  clearTimeout(this.autoHideTimeout)
150
165
  this.autoHideTimeout = setTimeout(() => {
151
166
  this.hideTooltip()
@@ -224,6 +239,14 @@ export default class PbTooltip extends PbEnhancedElement {
224
239
  return this.element.dataset.pbTooltipTriggerMethod || 'hover'
225
240
  }
226
241
 
242
+ get useClickToOpen() {
243
+ return this.element.dataset.pbTooltipUseClickToOpen === 'true'
244
+ }
245
+
246
+ get effectiveTriggerMethod() {
247
+ return this.useClickToOpen ? 'click' : this.triggerMethod
248
+ }
249
+
227
250
  get tooltipInteraction() {
228
251
  return this.element.dataset.pbTooltipInteraction === 'true'
229
252
  }
@@ -21,6 +21,8 @@ module Playbook
21
21
  prop :trigger_method, type: Playbook::Props::Enum,
22
22
  values: %w[hover click],
23
23
  default: "hover"
24
+ prop :use_click_to_open, type: Playbook::Props::Boolean,
25
+ default: false
24
26
  prop :width
25
27
 
26
28
  def classname
@@ -46,6 +48,10 @@ module Playbook
46
48
  out
47
49
  end
48
50
 
51
+ def effective_trigger_method
52
+ use_click_to_open ? "click" : (trigger_method || "hover")
53
+ end
54
+
49
55
  def data
50
56
  data = Hash(values[:data]).merge(
51
57
  pb_tooltip_kit: true,
@@ -54,8 +60,9 @@ module Playbook
54
60
  pb_tooltip_trigger_element_id: trigger_element_id,
55
61
  pb_tooltip_tooltip_id: tooltip_id,
56
62
  pb_tooltip_show_tooltip: true,
57
- pb_tooltip_trigger_method: trigger_method,
58
- pb_tooltip_interaction: interaction
63
+ pb_tooltip_trigger_method: effective_trigger_method,
64
+ pb_tooltip_interaction: interaction,
65
+ pb_tooltip_use_click_to_open: use_click_to_open
59
66
  )
60
67
  data = data.merge(pb_tooltip_delay_open: delay_open) if delay_open
61
68
  data = data.merge(pb_tooltip_delay_close: delay_close) if delay_close
@@ -4,7 +4,7 @@ import React from 'react'
4
4
  import classnames from 'classnames'
5
5
  import { buildAriaProps, buildCss, buildDataProps, buildHtmlProps } from '../utilities/props'
6
6
  import { globalProps } from '../utilities/globalProps'
7
- import Joyride, { TooltipRenderProps } from 'react-joyride'
7
+ // import Joyride, { TooltipRenderProps } from 'react-joyride'
8
8
  import Button from '../pb_button/_button'
9
9
  import Flex from '../pb_flex/_flex'
10
10
  import SectionSeparator from '../pb_section_separator/_section_separator'
@@ -181,7 +181,7 @@ const Walkthrough = (props: WalkthroughProps): React.ReactElement => {
181
181
  className={classes}
182
182
  id={id}
183
183
  >
184
- <Joyride
184
+ {/* <Joyride
185
185
  callback={callback}
186
186
  continuous={continuous}
187
187
  disableOverlay={disableOverlay}
@@ -193,7 +193,7 @@ const Walkthrough = (props: WalkthroughProps): React.ReactElement => {
193
193
  styles={styles}
194
194
  tooltipComponent={Tooltip}
195
195
  {...props}
196
- />
196
+ /> */}
197
197
  </div>
198
198
 
199
199
  )
@@ -0,0 +1 @@
1
+ import{jsx,Fragment,jsxs}from"react/jsx-runtime";import{useState,useEffect}from"react";import{b as buildAriaProps,a as buildDataProps,c as buildHtmlProps,m as mapColors,H as HighchartsReact,d as Highcharts,e as classnames,g as globalProps,f as HighchartsMore}from"./_typeahead-Dw_aUsLL.js";import{h as highchartsTheme,m as merge,a as highchartsDarkTheme}from"./lib-Ca_BDmX1.js";const BarGraph=({aria:aria={},data:data={},align:align="center",axisTitle:axisTitle,dark:dark=false,chartData:chartData,className:className="pb_bar_graph",colors:colors,htmlOptions:htmlOptions={},customOptions:customOptions={},axisFormat:axisFormat,id:id,pointStart:pointStart,stacking:stacking,subTitle:subTitle,type:type="column",title:title="Title",xAxisCategories:xAxisCategories,yAxisMin:yAxisMin,yAxisMax:yAxisMax,legend:legend=false,toggleLegendClick:toggleLegendClick=true,height:height,layout:layout="horizontal",verticalAlign:verticalAlign="bottom",x:x=0,y:y=0,...props})=>{const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const setupTheme=()=>{dark?Highcharts.setOptions(highchartsDarkTheme):Highcharts.setOptions(highchartsTheme)};setupTheme();const staticOptions={title:{text:title},chart:{height:height,type:type},subtitle:{text:subTitle},yAxis:[{labels:{format:typeof axisFormat==="string"?axisFormat:axisFormat&&axisFormat[0]?axisFormat[0].format:""},min:yAxisMin,max:yAxisMax,opposite:false,title:{text:Array.isArray(axisTitle)?axisTitle.length>0?axisTitle[0].name:null:axisTitle},plotLines:typeof yAxisMin!=="undefined"&&yAxisMin!==null?[]:[{value:0,zIndex:10,color:"#E4E8F0"}]}],xAxis:{categories:xAxisCategories},legend:{enabled:legend,align:align,verticalAlign:verticalAlign,layout:layout,x:x,y:y},colors:colors!==void 0&&colors.length>0?mapColors(colors):highchartsTheme.colors,plotOptions:{series:{stacking:stacking,pointStart:pointStart,borderWidth:stacking?0:"",events:{},dataLabels:{enabled:false}}},series:chartData,credits:false};if(Array.isArray(axisTitle)&&axisTitle.length>1&&axisTitle[1].name){staticOptions.yAxis.push({labels:{format:typeof axisFormat==="string"?axisFormat:axisFormat[1].format},min:yAxisMin,max:yAxisMax,opposite:true,title:{text:axisTitle[1].name},plotLines:typeof yAxisMin!=="undefined"&&yAxisMin!==null?[]:[{value:0,zIndex:10,color:"#E4E8F0"}]})}if(!toggleLegendClick){staticOptions.plotOptions.series.events={legendItemClick:()=>false}}const filteredProps={...props};delete filteredProps.verticalAlign;const[options,setOptions]=useState({});useEffect((()=>{setOptions(merge(staticOptions,customOptions))}),[chartData]);return jsx(HighchartsReact,{containerProps:{className:classnames(globalProps(filteredProps),className),id:id,...ariaProps,...dataProps,...htmlProps},highcharts:Highcharts,options:options})};const alignBlockElement=event=>{const itemToMove=document.querySelector(`#wrapper-circle-chart-${event.target.renderTo.id} .pb-circle-chart-block`);const chartContainer=document.querySelector(`#${event.target.renderTo.id}`);if(itemToMove!==null&&chartContainer!==null){itemToMove.style.height=`${event.target.chartHeight}px`;itemToMove.style.width=`${event.target.chartWidth}px`;if(chartContainer.firstChild!==null){chartContainer.firstChild.before(itemToMove)}}};const CircleChart=({align:align="center",aria:aria={},rounded:rounded=false,borderColor:borderColor=(rounded?null:""),borderWidth:borderWidth=(rounded?20:null),chartData:chartData,children:children,className:className,colors:colors=[],customOptions:customOptions={},dark:dark=false,data:data={},dataLabelHtml:dataLabelHtml="<div>{point.name}</div>",dataLabels:dataLabels=false,height:height,htmlOptions:htmlOptions={},id:id,innerSize:innerSize="md",legend:legend=false,maxPointSize:maxPointSize=null,minPointSize:minPointSize=null,startAngle:startAngle=null,style:style="pie",title:title,tooltipHtml:tooltipHtml,useHtml:useHtml=false,zMin:zMin=null,layout:layout="horizontal",verticalAlign:verticalAlign="bottom",x:x=0,y:y=0,...props})=>{const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);HighchartsMore(Highcharts);const setupTheme=()=>{dark?Highcharts.setOptions(highchartsDarkTheme):Highcharts.setOptions(highchartsTheme)};setupTheme();Highcharts.setOptions({tooltip:{headerFormat:null,pointFormat:tooltipHtml?tooltipHtml:'<span style="font-weight: bold; color:{point.color};">●</span>{point.name}: <b>{point.y}</b>',useHTML:useHtml}});const innerSizes={sm:"35%",md:"50%",lg:"85%",none:"0%"};const innerSizeFormat=size=>innerSizes[size];const filteredProps={...props};delete filteredProps.verticalAlign;const[options,setOptions]=useState({});useEffect((()=>{const formattedChartData=chartData.map((obj=>{obj.y=obj.value;delete obj.value;return obj}));const staticOptions={title:{text:title},chart:{height:height,type:style,events:{render:event=>alignBlockElement(event),redraw:event=>alignBlockElement(event)}},legend:{align:align,verticalAlign:verticalAlign,layout:layout,x:x,y:y},plotOptions:{pie:{colors:colors.length>0?mapColors(colors):highchartsTheme.colors,dataLabels:{enabled:dataLabels,connectorShape:"straight",connectorWidth:3,format:dataLabelHtml},showInLegend:legend}},series:[{minPointSize:minPointSize,maxPointSize:maxPointSize,innerSize:borderWidth==20?"100%":innerSizeFormat(innerSize),data:formattedChartData,zMin:zMin,startAngle:startAngle,borderWidth:borderWidth,borderColor:borderColor}],credits:false};setOptions(merge(staticOptions,customOptions))}),[chartData]);return jsx(Fragment,{children:children?jsxs("div",{id:`wrapper-circle-chart-${id}`,children:[jsx(HighchartsReact,{containerProps:{className:classnames("pb_circle_chart",globalProps(filteredProps)),id:id,...ariaProps,...dataProps,...htmlProps},highcharts:Highcharts,options:options}),jsx("div",{className:"pb-circle-chart-block",children:children})]}):jsx(HighchartsReact,{containerProps:{className:classnames("pb_circle_chart",globalProps(filteredProps)),id:id,...ariaProps,...dataProps,...htmlProps},highcharts:Highcharts,options:options})})};export{BarGraph as B,CircleChart as C};