playbook_ui 10.16.0 → 10.19.0.pre.popover.alpha1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (160) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +4 -0
  3. data/app/pb_kits/playbook/pb_background/background.test.js +22 -0
  4. data/app/pb_kits/playbook/pb_bar_graph/_bar_graph.jsx +3 -0
  5. data/app/pb_kits/playbook/pb_bar_graph/bar_graph.rb +3 -0
  6. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_colors.html.erb +26 -0
  7. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_colors.jsx +37 -0
  8. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_colors.md +2 -0
  9. data/app/pb_kits/playbook/pb_bar_graph/docs/example.yml +2 -0
  10. data/app/pb_kits/playbook/pb_bar_graph/docs/index.js +1 -0
  11. data/app/pb_kits/playbook/pb_body/_body.jsx +1 -1
  12. data/app/pb_kits/playbook/pb_body/_body_mixins.scss +2 -1
  13. data/app/pb_kits/playbook/pb_body/body.rb +1 -1
  14. data/app/pb_kits/playbook/pb_body/body.test.js +29 -0
  15. data/app/pb_kits/playbook/pb_body/docs/_body_light.html.erb +5 -0
  16. data/app/pb_kits/playbook/pb_body/docs/_body_light.jsx +5 -0
  17. data/app/pb_kits/playbook/pb_body/docs/_body_light.md +6 -0
  18. data/app/pb_kits/playbook/pb_button/_button.jsx +3 -3
  19. data/app/pb_kits/playbook/pb_button/_button.scss +17 -0
  20. data/app/pb_kits/playbook/pb_button/button.rb +6 -3
  21. data/app/pb_kits/playbook/pb_button/button.test.js +13 -0
  22. data/app/pb_kits/playbook/pb_button/docs/_button_size.html.erb +3 -0
  23. data/app/pb_kits/playbook/pb_button/docs/_button_size.jsx +26 -0
  24. data/app/pb_kits/playbook/pb_button/docs/_button_size.md +1 -0
  25. data/app/pb_kits/playbook/pb_button/docs/example.yml +2 -0
  26. data/app/pb_kits/playbook/pb_button/docs/index.js +1 -0
  27. data/app/pb_kits/playbook/pb_caption/_caption.jsx +21 -8
  28. data/app/pb_kits/playbook/pb_caption/_caption.scss +14 -8
  29. data/app/pb_kits/playbook/pb_caption/_caption_mixin.scss +27 -0
  30. data/app/pb_kits/playbook/pb_caption/caption.rb +6 -4
  31. data/app/pb_kits/playbook/pb_caption/caption.test.js +29 -0
  32. data/app/pb_kits/playbook/pb_caption/docs/_caption_colors.html.erb +3 -0
  33. data/app/pb_kits/playbook/pb_caption/docs/_caption_colors.jsx +25 -0
  34. data/app/pb_kits/playbook/pb_caption/docs/_caption_colors.md +6 -0
  35. data/app/pb_kits/playbook/pb_caption/docs/example.yml +7 -4
  36. data/app/pb_kits/playbook/pb_caption/docs/index.js +1 -1
  37. data/app/pb_kits/playbook/pb_card/_card.jsx +1 -3
  38. data/app/pb_kits/playbook/pb_card/_card.scss +0 -6
  39. data/app/pb_kits/playbook/pb_card/_card_mixin.scss +1 -8
  40. data/app/pb_kits/playbook/pb_card/card.html.erb +2 -0
  41. data/app/pb_kits/playbook/pb_card/card.rb +0 -8
  42. data/app/pb_kits/playbook/pb_card/docs/_card_background.html.erb +1 -1
  43. data/app/pb_kits/playbook/pb_card/docs/_card_content.html.erb +3 -1
  44. data/app/pb_kits/playbook/pb_card/docs/_card_content.jsx +9 -2
  45. data/app/pb_kits/playbook/pb_circle_chart/circle_chart.rb +4 -0
  46. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors.md +2 -0
  47. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.md +3 -1
  48. data/app/pb_kits/playbook/pb_date_time_stacked/date_time_stacked.test.js +13 -4
  49. data/app/pb_kits/playbook/pb_docs/kit_example.rb +4 -0
  50. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.rb +4 -0
  51. data/app/pb_kits/playbook/pb_flex/_flex.jsx +4 -0
  52. data/app/pb_kits/playbook/pb_flex/_flex.scss +17 -1
  53. data/app/pb_kits/playbook/pb_flex/_flex_item.jsx +6 -2
  54. data/app/pb_kits/playbook/pb_flex/_flex_item.scss +22 -0
  55. data/app/pb_kits/playbook/pb_flex/docs/_flex_item.html.erb +12 -1
  56. data/app/pb_kits/playbook/pb_flex/docs/_flex_item.md +2 -0
  57. data/app/pb_kits/playbook/pb_flex/docs/_flex_item_align_self.html.erb +89 -0
  58. data/app/pb_kits/playbook/pb_flex/docs/_flex_item_align_self.jsx +210 -0
  59. data/app/pb_kits/playbook/pb_flex/docs/_flex_item_align_self.md +5 -0
  60. data/app/pb_kits/playbook/pb_flex/docs/_flex_item_example.jsx +27 -0
  61. data/app/pb_kits/playbook/pb_flex/docs/_flex_item_example.md +2 -0
  62. data/app/pb_kits/playbook/pb_flex/docs/example.yml +2 -0
  63. data/app/pb_kits/playbook/pb_flex/docs/index.js +1 -0
  64. data/app/pb_kits/playbook/pb_flex/flex.rb +14 -1
  65. data/app/pb_kits/playbook/pb_flex/flex_item.rb +16 -1
  66. data/app/pb_kits/playbook/pb_gauge/_gauge.jsx +3 -0
  67. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_colors.html.erb +12 -0
  68. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_colors.jsx +19 -0
  69. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_colors.md +2 -0
  70. data/app/pb_kits/playbook/pb_gauge/docs/example.yml +2 -0
  71. data/app/pb_kits/playbook/pb_gauge/docs/index.js +1 -0
  72. data/app/pb_kits/playbook/pb_gauge/gauge.rb +2 -0
  73. data/app/pb_kits/playbook/pb_icon/icon.rb +4 -0
  74. data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.scss +2 -2
  75. data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_color.html.erb +1 -1
  76. data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_color.jsx +1 -1
  77. data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_color.md +1 -0
  78. data/app/pb_kits/playbook/pb_icon_circle/icon_circle.rb +1 -1
  79. data/app/pb_kits/playbook/pb_icon_stat_value/icon_stat_value.rb +2 -0
  80. data/app/pb_kits/playbook/pb_image/_image.jsx +4 -1
  81. data/app/pb_kits/playbook/pb_image/_image.scss +24 -8
  82. data/app/pb_kits/playbook/pb_image/docs/_transition_image.html.erb +54 -0
  83. data/app/pb_kits/playbook/pb_image/docs/_transition_image.jsx +77 -0
  84. data/app/pb_kits/playbook/pb_image/docs/_transition_image.md +1 -0
  85. data/app/pb_kits/playbook/pb_image/docs/example.yml +2 -0
  86. data/app/pb_kits/playbook/pb_image/docs/index.js +1 -0
  87. data/app/pb_kits/playbook/pb_image/image.html.erb +1 -1
  88. data/app/pb_kits/playbook/pb_image/image.rb +8 -1
  89. data/app/pb_kits/playbook/pb_image/image.test.js +9 -4
  90. data/app/pb_kits/playbook/pb_line_graph/_line_graph.jsx +4 -1
  91. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_colors.html.erb +26 -0
  92. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_colors.jsx +37 -0
  93. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_colors.md +2 -0
  94. data/app/pb_kits/playbook/pb_line_graph/docs/example.yml +2 -0
  95. data/app/pb_kits/playbook/pb_line_graph/docs/index.js +1 -0
  96. data/app/pb_kits/playbook/pb_line_graph/line_graph.rb +3 -0
  97. data/app/pb_kits/playbook/pb_list/list.rb +2 -0
  98. data/app/pb_kits/playbook/pb_nav/_bold_mixin.scss +22 -0
  99. data/app/pb_kits/playbook/pb_nav/_horizontal_nav.scss +17 -1
  100. data/app/pb_kits/playbook/pb_nav/_vertical_nav.scss +9 -2
  101. data/app/pb_kits/playbook/pb_nav/docs/_bold_horizontal_nav.html.erb +6 -0
  102. data/app/pb_kits/playbook/pb_nav/docs/_bold_horizontal_nav.jsx +39 -0
  103. data/app/pb_kits/playbook/pb_nav/docs/_bold_vertical_nav.html.erb +6 -0
  104. data/app/pb_kits/playbook/pb_nav/docs/_bold_vertical_nav.jsx +39 -0
  105. data/app/pb_kits/playbook/pb_nav/docs/_horizontal_nav.html.erb +1 -1
  106. data/app/pb_kits/playbook/pb_nav/docs/_subtle_nav.html.erb +1 -1
  107. data/app/pb_kits/playbook/pb_nav/docs/example.yml +4 -0
  108. data/app/pb_kits/playbook/pb_nav/docs/index.js +2 -0
  109. data/app/pb_kits/playbook/pb_nav/nav.rb +1 -1
  110. data/app/pb_kits/playbook/pb_popover/_popover.jsx +2 -4
  111. data/app/pb_kits/playbook/pb_popover/docs/_popover_close.html.erb +7 -7
  112. data/app/pb_kits/playbook/pb_popover/docs/_popover_scroll_height.jsx +3 -0
  113. data/app/pb_kits/playbook/pb_popover/docs/_popover_z_index.jsx +1 -0
  114. data/app/pb_kits/playbook/pb_popover/index.js +4 -9
  115. data/app/pb_kits/playbook/pb_popover/popover.html.erb +1 -1
  116. data/app/pb_kits/playbook/pb_select/select.rb +3 -0
  117. data/app/pb_kits/playbook/pb_source/source.rb +3 -0
  118. data/app/pb_kits/playbook/pb_text_input/_text_input.scss +63 -14
  119. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_error.html.erb +21 -2
  120. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_error.jsx +12 -3
  121. data/app/pb_kits/playbook/pb_text_input/text_input.rb +2 -0
  122. data/app/pb_kits/playbook/pb_title/_title.jsx +6 -4
  123. data/app/pb_kits/playbook/pb_title/_title.scss +5 -5
  124. data/app/pb_kits/playbook/pb_title/_title_mixin.scss +17 -0
  125. data/app/pb_kits/playbook/pb_title/docs/_title_colors.html.erb +4 -0
  126. data/app/pb_kits/playbook/pb_title/docs/_title_colors.jsx +37 -0
  127. data/app/pb_kits/playbook/pb_title/docs/_title_colors.md +6 -0
  128. data/app/pb_kits/playbook/pb_title/docs/_title_light.html.erb +4 -1
  129. data/app/pb_kits/playbook/pb_title/docs/_title_light.md +3 -0
  130. data/app/pb_kits/playbook/pb_title/docs/example.yml +2 -2
  131. data/app/pb_kits/playbook/pb_title/docs/index.js +1 -1
  132. data/app/pb_kits/playbook/pb_title/title.html.erb +4 -2
  133. data/app/pb_kits/playbook/pb_title/title.rb +5 -4
  134. data/app/pb_kits/playbook/pb_title/title.test.js +29 -0
  135. data/app/pb_kits/playbook/plugins/pb_chart.js +16 -24
  136. data/app/pb_kits/playbook/tokens/_colors.scss +3 -1
  137. data/app/pb_kits/playbook/utilities/_cursor.scss +3 -0
  138. data/app/pb_kits/playbook/utilities/_display.scss +23 -0
  139. data/app/pb_kits/playbook/utilities/_line_height.scss +11 -0
  140. data/app/pb_kits/playbook/utilities/_shadow.scss +11 -0
  141. data/app/pb_kits/playbook/utilities/globalProps.js +25 -1
  142. data/lib/playbook/classnames.rb +4 -0
  143. data/lib/playbook/cursor.rb +29 -0
  144. data/lib/playbook/display.rb +29 -0
  145. data/lib/playbook/engine.rb +0 -1
  146. data/lib/playbook/kit_base.rb +8 -0
  147. data/lib/playbook/line_height.rb +29 -0
  148. data/lib/playbook/markdown/helper.rb +2 -2
  149. data/lib/playbook/pb_doc_helper.rb +4 -0
  150. data/lib/playbook/props/base.rb +2 -2
  151. data/lib/playbook/shadow.rb +29 -0
  152. data/lib/playbook/version.rb +2 -2
  153. data/lib/playbook.rb +3 -0
  154. metadata +62 -23
  155. data/app/pb_kits/playbook/pb_caption/docs/_caption_variants.html.erb +0 -1
  156. data/app/pb_kits/playbook/pb_caption/docs/_caption_variants.jsx +0 -17
  157. data/app/pb_kits/playbook/pb_caption/docs/_caption_variants.md +0 -3
  158. data/app/pb_kits/playbook/pb_title/docs/_title_variants.html.erb +0 -1
  159. data/app/pb_kits/playbook/pb_title/docs/_title_variants.jsx +0 -19
  160. data/app/pb_kits/playbook/pb_title/docs/_title_variants.md +0 -3
@@ -0,0 +1,77 @@
1
+ import React, { useState } from 'react'
2
+
3
+ import Image from '../_image'
4
+ import Select from '../../pb_select/_select'
5
+ import FlexItem from '../../pb_flex/_flex_item'
6
+ import Flex from '../../pb_flex/_flex'
7
+ import Button from '../../pb_button/_button'
8
+
9
+ const TransitionImage = (props) => {
10
+ const [transition, setTransition] = useState('')
11
+ const [apply, setApply] = useState({
12
+ url: '',
13
+ transition: '',
14
+ })
15
+
16
+ const loadImage = () => {
17
+ document.querySelector('.image').classList.remove(transition, 'lazyloaded')
18
+ setApply({
19
+ url: 'https://unsplash.it/500/400/?image=634',
20
+ transition: transition,
21
+ },
22
+ document.querySelector('.image').classList.add(transition, 'lazyload')
23
+ )
24
+ }
25
+
26
+ const handleTransition = ({ target }) => {
27
+ setTransition(target.value)
28
+ }
29
+
30
+ const options = [
31
+ {
32
+ value: 'fade',
33
+ },
34
+ {
35
+ value: 'blur',
36
+ },
37
+ {
38
+ value: 'scale',
39
+ },
40
+ ]
41
+
42
+ return (
43
+ <>
44
+ <Flex>
45
+ <FlexItem fixedSize="250px">
46
+ <Select
47
+ blankSelection="Select a Transition..."
48
+ label=""
49
+ onChange={handleTransition}
50
+ options={options}
51
+ {...props}
52
+ />
53
+ </FlexItem>
54
+ <FlexItem>
55
+ <Button
56
+ disabled={transition === '' ? true : false}
57
+ marginLeft="sm"
58
+ onClick={loadImage}
59
+ text="Load Image"
60
+ {...props}
61
+ />
62
+ </FlexItem>
63
+ </Flex>
64
+ <div style={{ display: apply.url === '' ? 'none' : 'block' }}>
65
+ <Image
66
+ alt="picture of a misty forest"
67
+ className="image"
68
+ transition={apply.transition}
69
+ url={apply.url}
70
+ {...props}
71
+ />
72
+ </div>
73
+ </>
74
+ )
75
+ }
76
+
77
+ export default TransitionImage
@@ -0,0 +1 @@
1
+ To add a transition, simply use the `transition` prop and one of the three string options `"fade"`, `"blur"`, or `"scale"`.
@@ -3,7 +3,9 @@ examples:
3
3
  - default_image: Default
4
4
  - rounded_image: Rounded
5
5
  - custom_error_image: Error Handling
6
+ - transition_image: Transition
6
7
  react:
7
8
  - default_image: Default
8
9
  - rounded_image: Rounded
9
10
  - custom_error_image: Error Handling
11
+ - transition_image: Transition
@@ -1,3 +1,4 @@
1
1
  export { default as DefaultImage } from './_default_image.jsx'
2
2
  export { default as RoundedImage } from './_rounded_image.jsx'
3
3
  export { default as CustomErrorImage } from './_custom_error_image.jsx'
4
+ export { default as TransitionImage } from './_transition_image.jsx'
@@ -7,4 +7,4 @@
7
7
  alt: object.alt,
8
8
  onerror: object.on_error,
9
9
  )
10
- %>
10
+ %>
@@ -11,10 +11,13 @@ module Playbook
11
11
  prop :size, type: Playbook::Props::Enum,
12
12
  values: %w[xs sm md lg xl none],
13
13
  default: "none"
14
+ prop :transition, type: Playbook::Props::Enum,
15
+ values: %w[blur fade scale none],
16
+ default: "fade"
14
17
  prop :url
15
18
 
16
19
  def classname
17
- generate_classname("pb_image_kit#{size_class} lazyload blur_up") + rounded_class
20
+ generate_classname("pb_image_kit#{size_class} #{transition_class} lazyload") + rounded_class
18
21
  end
19
22
 
20
23
  private
@@ -26,6 +29,10 @@ module Playbook
26
29
  def size_class
27
30
  size == "none" ? nil : "_#{size}"
28
31
  end
32
+
33
+ def transition_class
34
+ transition == "none" ? nil : transition
35
+ end
29
36
  end
30
37
  end
31
38
  end
@@ -7,6 +7,7 @@ const props = {
7
7
  data: { testid: 'avatar' },
8
8
  size: null,
9
9
  url: 'https://unsplash.it/500/400/?image=634',
10
+ transition: 'blur',
10
11
  }
11
12
 
12
13
  it('Should be accessible', async () => {
@@ -20,16 +21,20 @@ test('alt attribute', () => {
20
21
 
21
22
  test('default classname', () => {
22
23
  const kit = renderKit(Image, props)
23
- expect(kit).toHaveClass('pb_image_kit lazyload blur_up')
24
+ expect(kit).toHaveClass('pb_image_kit lazyload')
24
25
  })
25
26
 
26
27
  test('size = xs', () => {
27
28
  const kit = renderKit(Image, props, { size: 'xs' })
28
- expect(kit).toHaveClass('pb_image_kit_xs lazyload blur_up')
29
+ expect(kit).toHaveClass('pb_image_kit_xs lazyload')
30
+ })
31
+
32
+ test('transition = blur', () => {
33
+ const kit = renderKit(Image, props, { transition: 'blur' })
34
+ expect(kit).toHaveClass('pb_image_kit lazyload blur')
29
35
  })
30
36
 
31
37
  test('rounded = true', () => {
32
38
  const kit = renderKit(Image, props, { rounded: true })
33
- expect(kit).toHaveClass('pb_image_kit lazyload blur_up rounded')
39
+ expect(kit).toHaveClass('pb_image_kit lazyload rounded')
34
40
  })
35
-
@@ -25,7 +25,8 @@ type LineGraphProps = {
25
25
  legend?: boolean,
26
26
  toggleLegendClick?: boolean,
27
27
  height?: string,
28
- }
28
+ colors: array,
29
+ }
29
30
 
30
31
  export default class LineGraph extends React.Component<LineGraphProps> {
31
32
  static defaultProps = {
@@ -52,11 +53,13 @@ export default class LineGraph extends React.Component<LineGraphProps> {
52
53
  legend,
53
54
  toggleLegendClick,
54
55
  height,
56
+ colors = [],
55
57
  } = this.props
56
58
 
57
59
  new pbChart(`.${className}`, {
58
60
  axisTitle: axisTitle,
59
61
  chartData: chartData,
62
+ colors: colors,
60
63
  id: id,
61
64
  pointStart: pointStart,
62
65
  subtitle: subTitle,
@@ -0,0 +1,26 @@
1
+ <% data = [{
2
+ name: 'Installation',
3
+ data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175]
4
+ }, {
5
+ name: 'Manufacturing',
6
+ data: [24916, 28064, 29742, 40851, 50590, 65282, 70121, 85434]
7
+ }, {
8
+ name: 'Sales & Distribution',
9
+ data: [11744, 17722, 16005, 19771, 25185, 28377, 36147, 43387]
10
+ }, {
11
+ name: 'Project Development',
12
+ data: [5332, 6344, 7988, 12169, 15112, 14452, 22400, 30227]
13
+ }, {
14
+ name: 'Other',
15
+ data: [nil, nil, nil, 3112, 4989, 5816, 15274, 18111]
16
+ }] %>
17
+
18
+ <%= pb_rails("line_graph", props: {
19
+ id: "line-colors",
20
+ gradient: false,
21
+ chart_data: data,
22
+ x_axis_categories:['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],
23
+ title: 'Line Graph with Custom Data Colors',
24
+ axis_title: 'Number of Employees',
25
+ colors: ['data-4', 'data-5', 'data-6', 'data-7', 'data-8']
26
+ }) %>
@@ -0,0 +1,37 @@
1
+ import React from 'react'
2
+
3
+ import LineGraph from '../_line_graph'
4
+
5
+ const data = [{
6
+ name: 'Installation',
7
+ data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175],
8
+ }, {
9
+ name: 'Manufacturing',
10
+ data: [24916, 28064, 29742, 40851, 50590, 65282, 70121, 85434],
11
+ }, {
12
+ name: 'Sales & Distribution',
13
+ data: [11744, 17722, 16005, 19771, 25185, 28377, 36147, 43387],
14
+ }, {
15
+ name: 'Project Development',
16
+ data: [5332, 6344, 7988, 12169, 15112, 14452, 22400, 30227],
17
+ }, {
18
+ name: 'Other',
19
+ data: [null, null, null, 3112, 4989, 5816, 15274, 18111],
20
+ }]
21
+
22
+ const LineGraphColors = (props) => (
23
+ <div>
24
+ <LineGraph
25
+ axisTitle="Number of Employees"
26
+ chartData={data}
27
+ colors={['data-4', 'data-5', 'data-6', 'data-7', 'data-8']}
28
+ id="line-colors"
29
+ title="Line Graph with Custom Data Colors"
30
+ xAxisCategories={['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']}
31
+ yAxisMin={0}
32
+ {...props}
33
+ />
34
+ </div>
35
+ )
36
+
37
+ export default LineGraphColors
@@ -0,0 +1,2 @@
1
+ Custom data colors allow for color customization to match the needs of business requirements.
2
+ Pass the prop `colors` and use desired values `data-1 | data-2 | data-3 | data-4 | data-5 | data-6 | data-7 | data-8` in an array. Hex colors are also available `eg: #CA0095`
@@ -5,6 +5,7 @@ examples:
5
5
  - line_graph_legend: Legend
6
6
  - line_graph_legend_nonclickable: Legend Nonclickable
7
7
  - line_graph_height: Height
8
+ - line_graph_colors: Color Overrides
8
9
 
9
10
 
10
11
  react:
@@ -12,3 +13,4 @@ examples:
12
13
  - line_graph_legend: Legend
13
14
  - line_graph_legend_nonclickable: Legend Nonclickable
14
15
  - line_graph_height: Height
16
+ - line_graph_colors: Color Overrides
@@ -2,3 +2,4 @@ export { default as LineGraphDefault } from './_line_graph_default.jsx'
2
2
  export { default as LineGraphLegend } from './_line_graph_legend.jsx'
3
3
  export { default as LineGraphLegendNonclickable } from './_line_graph_legend_nonclickable.jsx'
4
4
  export { default as LineGraphHeight } from './_line_graph_height.jsx'
5
+ export { default as LineGraphColors } from './_line_graph_colors.jsx'
@@ -20,6 +20,8 @@ module Playbook
20
20
  prop :toggle_legend_click, type: Playbook::Props::Boolean,
21
21
  default: true
22
22
  prop :height
23
+ prop :colors, type: Playbook::Props::Array,
24
+ default: []
23
25
 
24
26
  def chart_type
25
27
  gradient ? "area" : "line"
@@ -41,6 +43,7 @@ module Playbook
41
43
  legend: legend,
42
44
  toggleLegendClick: toggle_legend_click,
43
45
  height: height,
46
+ colors: colors,
44
47
  }
45
48
  end
46
49
 
@@ -43,6 +43,7 @@ module Playbook
43
43
  dark ? "dark" : nil
44
44
  end
45
45
 
46
+ # rubocop:disable Style/CaseLikeIf
46
47
  def layout_class
47
48
  if layout == "right"
48
49
  "layout_right"
@@ -52,6 +53,7 @@ module Playbook
52
53
  ""
53
54
  end
54
55
  end
56
+ # rubocop:enable Style/CaseLikeIf
55
57
 
56
58
  def size_class
57
59
  size ? "large" : nil
@@ -0,0 +1,22 @@
1
+ @mixin bold {
2
+ @include subtle;
3
+
4
+ [class*=pb_nav_list_kit_item] {
5
+ &[class*=_active] [class*=_link] {
6
+ background-color: $primary;
7
+ color: $white;
8
+ box-shadow: $shadow_deep;
9
+ @media (hover:hover) {
10
+ &:hover {
11
+ background-color: darken($primary, 4%);
12
+ [class*=_text],[class*=_icon] {
13
+ color: $white;
14
+ }
15
+ }
16
+ }
17
+ [class*=_text],[class*=_icon] {
18
+ font-weight: $bolder;
19
+ }
20
+ }
21
+ }
22
+ }
@@ -3,6 +3,8 @@
3
3
  @import "../tokens/animation-curves";
4
4
  @import "../tokens/typography";
5
5
  @import "./subtle_mixin";
6
+ @import "./bold_mixin";
7
+ @import "../tokens/shadows";
6
8
 
7
9
  $selector: ".pb_nav_list";
8
10
 
@@ -92,7 +94,21 @@ $selector: ".pb_nav_list";
92
94
  }
93
95
  }
94
96
  }
95
-
97
+
98
+ // Bold Variant
99
+ &[class*=_bold] {
100
+ @include bold;
101
+ // Horizontal Overrides
102
+ [class*=pb_nav_list_kit_item] {
103
+ margin: 0;
104
+ }
105
+ [class*=_active] {
106
+ [class*=_text] {
107
+ color: $white;
108
+ }
109
+ }
110
+ }
111
+
96
112
  &[class*=dark]{
97
113
  [class*=pb_nav_list_kit_item]{
98
114
  [class*=_link]{
@@ -6,6 +6,8 @@
6
6
  @import "../tokens/titles";
7
7
  @import "../pb_body/body_mixins";
8
8
  @import "./subtle_mixin";
9
+ @import "./bold_mixin";
10
+ @import "../tokens/shadows";
9
11
 
10
12
  $selector: ".pb_nav_list";
11
13
 
@@ -87,12 +89,17 @@ $selector: ".pb_nav_list";
87
89
  }
88
90
 
89
91
  // Subtle Variant
90
- &[class*=_subtle] {
92
+ &[class*=_subtle] {
91
93
  @include subtle;
92
94
  }
93
95
 
96
+ // Bold Variant
97
+ &[class*=_bold] {
98
+ @include bold;
99
+ }
100
+
94
101
  // Show Highlight
95
- &[class*=_highlight] {
102
+ &[class*=_highlight] {
96
103
  [class*=_active] {
97
104
  background-color: $active_light;
98
105
  }
@@ -0,0 +1,6 @@
1
+ <%= pb_rails("nav", props: { orientation: "horizontal", variant: "bold" }) do %>
2
+ <%= pb_rails("nav/item", props: { text: "About", link: "#" }) %>
3
+ <%= pb_rails("nav/item", props: { text: "Case Studies", link: "#", active: true }) %>
4
+ <%= pb_rails("nav/item", props: { text: "Service ", link: "#" }) %>
5
+ <%= pb_rails("nav/item", props: { text: "Contacts", link: "#" }) %>
6
+ <% end %>
@@ -0,0 +1,39 @@
1
+ import React from 'react'
2
+
3
+ import Nav from '../_nav'
4
+ import NavItem from '../_item'
5
+
6
+ const BoldHorizontalNav = (props) => {
7
+ return (
8
+ <Nav
9
+ link="#"
10
+ orientation="horizontal"
11
+ variant="bold"
12
+ {...props}
13
+ >
14
+ <NavItem
15
+ link="#"
16
+ text="About"
17
+ {...props}
18
+ />
19
+ <NavItem
20
+ active
21
+ link="#"
22
+ text="Case Studies"
23
+ {...props}
24
+ />
25
+ <NavItem
26
+ link="#"
27
+ text="Service"
28
+ {...props}
29
+ />
30
+ <NavItem
31
+ link="#"
32
+ text="Contacts"
33
+ {...props}
34
+ />
35
+ </Nav>
36
+ )
37
+ }
38
+
39
+ export default BoldHorizontalNav
@@ -0,0 +1,6 @@
1
+ <%= pb_rails("nav", props: { orientation: "vertical", variant: "bold" }) do %>
2
+ <%= pb_rails("nav/item", props: { text: "About", link: "#" }) %>
3
+ <%= pb_rails("nav/item", props: { text: "Case Studies", link: "#", active: true }) %>
4
+ <%= pb_rails("nav/item", props: { text: "Service ", link: "#" }) %>
5
+ <%= pb_rails("nav/item", props: { text: "Contacts", link: "#" }) %>
6
+ <% end %>
@@ -0,0 +1,39 @@
1
+ import React from 'react'
2
+
3
+ import Nav from '../_nav'
4
+ import NavItem from '../_item'
5
+
6
+ const BoldVerticalNav = (props) => {
7
+ return (
8
+ <Nav
9
+ link="#"
10
+ orientation="vertical"
11
+ variant="bold"
12
+ {...props}
13
+ >
14
+ <NavItem
15
+ link="#"
16
+ text="About"
17
+ {...props}
18
+ />
19
+ <NavItem
20
+ active
21
+ link="#"
22
+ text="Case Studies"
23
+ {...props}
24
+ />
25
+ <NavItem
26
+ link="#"
27
+ text="Service"
28
+ {...props}
29
+ />
30
+ <NavItem
31
+ link="#"
32
+ text="Contacts"
33
+ {...props}
34
+ />
35
+ </Nav>
36
+ )
37
+ }
38
+
39
+ export default BoldVerticalNav
@@ -1,4 +1,4 @@
1
- <%= pb_rails("nav", props: { orientation: "horizontal"}) do %>
1
+ <%= pb_rails("nav", props: { orientation: "horizontal" }) do %>
2
2
  <%= pb_rails("nav/item", props: { text: "About", link: "#" }) %>
3
3
  <%= pb_rails("nav/item", props: { text: "Case Studies", link: "#", active: true }) %>
4
4
  <%= pb_rails("nav/item", props: { text: "Service ", link: "#" }) %>
@@ -1,4 +1,4 @@
1
- <%= pb_rails("nav", props: {variant: "subtle"}) do %>
1
+ <%= pb_rails("nav", props: { variant: "subtle" }) do %>
2
2
  <%= pb_rails("nav/item", props: { text: "Overview", link: "#" }) %>
3
3
  <%= pb_rails("nav/item", props: { text: "Albums", link: "#", active: true }) %>
4
4
  <%= pb_rails("nav/item", props: { text: "Similar Artists", link: "#" }) %>
@@ -8,8 +8,10 @@ examples:
8
8
  - subtle_nav: Subtle Variant
9
9
  - subtle_with_icons_nav: Subtle With Icons
10
10
  - subtle_no_highlight_nav: Subtle No Highlight
11
+ - bold_vertical_nav: Bold Variant
11
12
  - horizontal_nav: Horizontal Nav
12
13
  - subtle_horizontal_nav: Subtle Horizontal Nav
14
+ - bold_horizontal_nav: Bold Horizontal Nav
13
15
  - block_nav: Block
14
16
  - block_no_title_nav: Without Title
15
17
  - new_tab: Open in a New Tab
@@ -23,8 +25,10 @@ examples:
23
25
  - subtle_nav: Subtle Variant
24
26
  - subtle_with_icons_nav: Subtle With Icons
25
27
  - subtle_no_highlight_nav: Subtle No Highlight
28
+ - bold_vertical_nav: Bold Variant
26
29
  - horizontal_nav: Horizontal Nav
27
30
  - subtle_horizontal_nav: Subtle Horizontal Nav
31
+ - bold_horizontal_nav: Bold Horizontal Nav
28
32
  - block_nav: Block
29
33
  - block_no_title_nav: Without Title
30
34
  - new_tab: Open in a New Tab
@@ -11,3 +11,5 @@ export { default as WithIconsNav } from './_with_icons_nav.jsx'
11
11
  export { default as SubtleWithIconsNav } from './_subtle_with_icons_nav.jsx'
12
12
  export { default as WithImgNav } from './_with_img_nav.jsx'
13
13
  export { default as NewTab } from './_new_tab.jsx'
14
+ export { default as BoldHorizontalNav } from './_bold_horizontal_nav.jsx'
15
+ export { default as BoldVerticalNav } from './_bold_vertical_nav.jsx'
@@ -9,7 +9,7 @@ module Playbook
9
9
  values: %w[vertical horizontal],
10
10
  default: "vertical"
11
11
  prop :variant, type: Playbook::Props::Enum,
12
- values: %w[normal subtle],
12
+ values: %w[normal subtle bold],
13
13
  default: "normal"
14
14
  prop :highlight, type: Playbook::Props::Boolean, default: true
15
15
  prop :borderless, type: Playbook::Props::Boolean, default: false
@@ -150,16 +150,14 @@ export default class PbReactPopover extends React.Component<PbPopoverProps> {
150
150
  const targetIsReference =
151
151
  target.closest('.pb_popover_reference_wrapper') !== null
152
152
 
153
- if (targetIsReference) return
154
-
155
153
  switch (closeOnClick) {
156
154
  case 'outside':
157
- if (!targetIsPopover) {
155
+ if (!targetIsPopover || targetIsReference) {
158
156
  shouldClosePopover(true)
159
157
  }
160
158
  break
161
159
  case 'inside':
162
- if (targetIsPopover) {
160
+ if (targetIsPopover || targetIsReference) {
163
161
  shouldClosePopover(true)
164
162
  }
165
163
  break
@@ -1,23 +1,23 @@
1
1
  <%= pb_rails("flex", props: {classname: "flex-container", spacing: "between"}) do %>
2
2
  <span>
3
- <%= pb_rails("button", props: { text: "Click Inside", variant: "secondary", id: 'inside-popover-1' }) %>
3
+ <%= pb_rails("button", props: { text: "Click Inside", variant: "secondary", id: "inside-popover-1" }) %>
4
4
  <%= pb_rails("popover", props: {
5
5
  close_on_click: "inside",
6
6
  trigger_element_id: "inside-popover-1",
7
7
  tooltip_id: "inside-tooltip-1",
8
- position: 'bottom',
8
+ position: "bottom",
9
9
  offset: true
10
10
  }) do %>
11
11
  Click on me!
12
12
  <% end %>
13
13
  </span>
14
14
  <span>
15
- <%= pb_rails("button", props: { text: "Click Outside", variant: "secondary", id: 'outside-popover-1' }) %>
15
+ <%= pb_rails("button", props: { text: "Click Outside", variant: "secondary", id: "outside-popover-1" }) %>
16
16
  <%= pb_rails("popover", props: {
17
17
  close_on_click: "outside",
18
18
  trigger_element_id: "outside-popover-1",
19
19
  tooltip_id: "outside-tooltip-1",
20
- position: 'left',
20
+ position: "left",
21
21
  offset: true
22
22
  }) do %>
23
23
  Click anywhere but me!
@@ -27,16 +27,16 @@
27
27
  <%= pb_rails("button", props: {
28
28
  text: "Click Anywhere",
29
29
  variant: "secondary",
30
- id: 'any-popover-1'
30
+ id: "any-popover-1"
31
31
  }) %>
32
32
  <%= pb_rails("popover", props: {
33
33
  close_on_click: "any",
34
34
  trigger_element_id: "any-popover-1",
35
35
  tooltip_id: "any-tooltip-1",
36
- position: 'top',
36
+ position: "top",
37
37
  offset: true
38
38
  }) do %>
39
39
  Click anything!
40
40
  <% end %>
41
41
  </span>
42
- <% end %>
42
+ <% end %>
@@ -31,6 +31,9 @@ const PopoverScrollHeight = (props) => {
31
31
  maxHeight="150px"
32
32
  maxWidth="240px"
33
33
  offset
34
+ padding="md"
35
+ paddingBottom="sm"
36
+ paddingTop="sm"
34
37
  placement="top"
35
38
  reference={popoverTrigger}
36
39
  shouldClosePopover={handleShouldClosePopover}
@@ -36,6 +36,7 @@ const PopoverZIndex = (props) => {
36
36
  <PbReactPopover
37
37
  closeOnClick="outside"
38
38
  offset
39
+ padding="sm"
39
40
  placement="top"
40
41
  reference={popoverTrigger}
41
42
  shouldClosePopover={handleShouldClosePopover}