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.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/_playbook.scss +4 -0
- data/app/pb_kits/playbook/pb_background/background.test.js +22 -0
- data/app/pb_kits/playbook/pb_bar_graph/_bar_graph.jsx +3 -0
- data/app/pb_kits/playbook/pb_bar_graph/bar_graph.rb +3 -0
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_colors.html.erb +26 -0
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_colors.jsx +37 -0
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_colors.md +2 -0
- data/app/pb_kits/playbook/pb_bar_graph/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_bar_graph/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_body/_body.jsx +1 -1
- data/app/pb_kits/playbook/pb_body/_body_mixins.scss +2 -1
- data/app/pb_kits/playbook/pb_body/body.rb +1 -1
- data/app/pb_kits/playbook/pb_body/body.test.js +29 -0
- data/app/pb_kits/playbook/pb_body/docs/_body_light.html.erb +5 -0
- data/app/pb_kits/playbook/pb_body/docs/_body_light.jsx +5 -0
- data/app/pb_kits/playbook/pb_body/docs/_body_light.md +6 -0
- data/app/pb_kits/playbook/pb_button/_button.jsx +3 -3
- data/app/pb_kits/playbook/pb_button/_button.scss +17 -0
- data/app/pb_kits/playbook/pb_button/button.rb +6 -3
- data/app/pb_kits/playbook/pb_button/button.test.js +13 -0
- data/app/pb_kits/playbook/pb_button/docs/_button_size.html.erb +3 -0
- data/app/pb_kits/playbook/pb_button/docs/_button_size.jsx +26 -0
- data/app/pb_kits/playbook/pb_button/docs/_button_size.md +1 -0
- data/app/pb_kits/playbook/pb_button/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_button/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_caption/_caption.jsx +21 -8
- data/app/pb_kits/playbook/pb_caption/_caption.scss +14 -8
- data/app/pb_kits/playbook/pb_caption/_caption_mixin.scss +27 -0
- data/app/pb_kits/playbook/pb_caption/caption.rb +6 -4
- data/app/pb_kits/playbook/pb_caption/caption.test.js +29 -0
- data/app/pb_kits/playbook/pb_caption/docs/_caption_colors.html.erb +3 -0
- data/app/pb_kits/playbook/pb_caption/docs/_caption_colors.jsx +25 -0
- data/app/pb_kits/playbook/pb_caption/docs/_caption_colors.md +6 -0
- data/app/pb_kits/playbook/pb_caption/docs/example.yml +7 -4
- data/app/pb_kits/playbook/pb_caption/docs/index.js +1 -1
- data/app/pb_kits/playbook/pb_card/_card.jsx +1 -3
- data/app/pb_kits/playbook/pb_card/_card.scss +0 -6
- data/app/pb_kits/playbook/pb_card/_card_mixin.scss +1 -8
- data/app/pb_kits/playbook/pb_card/card.html.erb +2 -0
- data/app/pb_kits/playbook/pb_card/card.rb +0 -8
- data/app/pb_kits/playbook/pb_card/docs/_card_background.html.erb +1 -1
- data/app/pb_kits/playbook/pb_card/docs/_card_content.html.erb +3 -1
- data/app/pb_kits/playbook/pb_card/docs/_card_content.jsx +9 -2
- data/app/pb_kits/playbook/pb_circle_chart/circle_chart.rb +4 -0
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors.md +2 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.md +3 -1
- data/app/pb_kits/playbook/pb_date_time_stacked/date_time_stacked.test.js +13 -4
- data/app/pb_kits/playbook/pb_docs/kit_example.rb +4 -0
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.rb +4 -0
- data/app/pb_kits/playbook/pb_flex/_flex.jsx +4 -0
- data/app/pb_kits/playbook/pb_flex/_flex.scss +17 -1
- data/app/pb_kits/playbook/pb_flex/_flex_item.jsx +6 -2
- data/app/pb_kits/playbook/pb_flex/_flex_item.scss +22 -0
- data/app/pb_kits/playbook/pb_flex/docs/_flex_item.html.erb +12 -1
- data/app/pb_kits/playbook/pb_flex/docs/_flex_item.md +2 -0
- data/app/pb_kits/playbook/pb_flex/docs/_flex_item_align_self.html.erb +89 -0
- data/app/pb_kits/playbook/pb_flex/docs/_flex_item_align_self.jsx +210 -0
- data/app/pb_kits/playbook/pb_flex/docs/_flex_item_align_self.md +5 -0
- data/app/pb_kits/playbook/pb_flex/docs/_flex_item_example.jsx +27 -0
- data/app/pb_kits/playbook/pb_flex/docs/_flex_item_example.md +2 -0
- data/app/pb_kits/playbook/pb_flex/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_flex/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_flex/flex.rb +14 -1
- data/app/pb_kits/playbook/pb_flex/flex_item.rb +16 -1
- data/app/pb_kits/playbook/pb_gauge/_gauge.jsx +3 -0
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_colors.html.erb +12 -0
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_colors.jsx +19 -0
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_colors.md +2 -0
- data/app/pb_kits/playbook/pb_gauge/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_gauge/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_gauge/gauge.rb +2 -0
- data/app/pb_kits/playbook/pb_icon/icon.rb +4 -0
- data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.scss +2 -2
- data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_color.html.erb +1 -1
- data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_color.jsx +1 -1
- data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_color.md +1 -0
- data/app/pb_kits/playbook/pb_icon_circle/icon_circle.rb +1 -1
- data/app/pb_kits/playbook/pb_icon_stat_value/icon_stat_value.rb +2 -0
- data/app/pb_kits/playbook/pb_image/_image.jsx +4 -1
- data/app/pb_kits/playbook/pb_image/_image.scss +24 -8
- data/app/pb_kits/playbook/pb_image/docs/_transition_image.html.erb +54 -0
- data/app/pb_kits/playbook/pb_image/docs/_transition_image.jsx +77 -0
- data/app/pb_kits/playbook/pb_image/docs/_transition_image.md +1 -0
- data/app/pb_kits/playbook/pb_image/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_image/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_image/image.html.erb +1 -1
- data/app/pb_kits/playbook/pb_image/image.rb +8 -1
- data/app/pb_kits/playbook/pb_image/image.test.js +9 -4
- data/app/pb_kits/playbook/pb_line_graph/_line_graph.jsx +4 -1
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_colors.html.erb +26 -0
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_colors.jsx +37 -0
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_colors.md +2 -0
- data/app/pb_kits/playbook/pb_line_graph/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_line_graph/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_line_graph/line_graph.rb +3 -0
- data/app/pb_kits/playbook/pb_list/list.rb +2 -0
- data/app/pb_kits/playbook/pb_nav/_bold_mixin.scss +22 -0
- data/app/pb_kits/playbook/pb_nav/_horizontal_nav.scss +17 -1
- data/app/pb_kits/playbook/pb_nav/_vertical_nav.scss +9 -2
- data/app/pb_kits/playbook/pb_nav/docs/_bold_horizontal_nav.html.erb +6 -0
- data/app/pb_kits/playbook/pb_nav/docs/_bold_horizontal_nav.jsx +39 -0
- data/app/pb_kits/playbook/pb_nav/docs/_bold_vertical_nav.html.erb +6 -0
- data/app/pb_kits/playbook/pb_nav/docs/_bold_vertical_nav.jsx +39 -0
- data/app/pb_kits/playbook/pb_nav/docs/_horizontal_nav.html.erb +1 -1
- data/app/pb_kits/playbook/pb_nav/docs/_subtle_nav.html.erb +1 -1
- data/app/pb_kits/playbook/pb_nav/docs/example.yml +4 -0
- data/app/pb_kits/playbook/pb_nav/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_nav/nav.rb +1 -1
- data/app/pb_kits/playbook/pb_popover/_popover.jsx +2 -4
- data/app/pb_kits/playbook/pb_popover/docs/_popover_close.html.erb +7 -7
- data/app/pb_kits/playbook/pb_popover/docs/_popover_scroll_height.jsx +3 -0
- data/app/pb_kits/playbook/pb_popover/docs/_popover_z_index.jsx +1 -0
- data/app/pb_kits/playbook/pb_popover/index.js +4 -9
- data/app/pb_kits/playbook/pb_popover/popover.html.erb +1 -1
- data/app/pb_kits/playbook/pb_select/select.rb +3 -0
- data/app/pb_kits/playbook/pb_source/source.rb +3 -0
- data/app/pb_kits/playbook/pb_text_input/_text_input.scss +63 -14
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_error.html.erb +21 -2
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_error.jsx +12 -3
- data/app/pb_kits/playbook/pb_text_input/text_input.rb +2 -0
- data/app/pb_kits/playbook/pb_title/_title.jsx +6 -4
- data/app/pb_kits/playbook/pb_title/_title.scss +5 -5
- data/app/pb_kits/playbook/pb_title/_title_mixin.scss +17 -0
- data/app/pb_kits/playbook/pb_title/docs/_title_colors.html.erb +4 -0
- data/app/pb_kits/playbook/pb_title/docs/_title_colors.jsx +37 -0
- data/app/pb_kits/playbook/pb_title/docs/_title_colors.md +6 -0
- data/app/pb_kits/playbook/pb_title/docs/_title_light.html.erb +4 -1
- data/app/pb_kits/playbook/pb_title/docs/_title_light.md +3 -0
- data/app/pb_kits/playbook/pb_title/docs/example.yml +2 -2
- data/app/pb_kits/playbook/pb_title/docs/index.js +1 -1
- data/app/pb_kits/playbook/pb_title/title.html.erb +4 -2
- data/app/pb_kits/playbook/pb_title/title.rb +5 -4
- data/app/pb_kits/playbook/pb_title/title.test.js +29 -0
- data/app/pb_kits/playbook/plugins/pb_chart.js +16 -24
- data/app/pb_kits/playbook/tokens/_colors.scss +3 -1
- data/app/pb_kits/playbook/utilities/_cursor.scss +3 -0
- data/app/pb_kits/playbook/utilities/_display.scss +23 -0
- data/app/pb_kits/playbook/utilities/_line_height.scss +11 -0
- data/app/pb_kits/playbook/utilities/_shadow.scss +11 -0
- data/app/pb_kits/playbook/utilities/globalProps.js +25 -1
- data/lib/playbook/classnames.rb +4 -0
- data/lib/playbook/cursor.rb +29 -0
- data/lib/playbook/display.rb +29 -0
- data/lib/playbook/engine.rb +0 -1
- data/lib/playbook/kit_base.rb +8 -0
- data/lib/playbook/line_height.rb +29 -0
- data/lib/playbook/markdown/helper.rb +2 -2
- data/lib/playbook/pb_doc_helper.rb +4 -0
- data/lib/playbook/props/base.rb +2 -2
- data/lib/playbook/shadow.rb +29 -0
- data/lib/playbook/version.rb +2 -2
- data/lib/playbook.rb +3 -0
- metadata +62 -23
- data/app/pb_kits/playbook/pb_caption/docs/_caption_variants.html.erb +0 -1
- data/app/pb_kits/playbook/pb_caption/docs/_caption_variants.jsx +0 -17
- data/app/pb_kits/playbook/pb_caption/docs/_caption_variants.md +0 -3
- data/app/pb_kits/playbook/pb_title/docs/_title_variants.html.erb +0 -1
- data/app/pb_kits/playbook/pb_title/docs/_title_variants.jsx +0 -19
- 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
|
@@ -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
|
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
|
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
|
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
|
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
|
@@ -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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
36
|
+
position: "top",
|
37
37
|
offset: true
|
38
38
|
}) do %>
|
39
39
|
Click anything!
|
40
40
|
<% end %>
|
41
41
|
</span>
|
42
|
-
<% end %>
|
42
|
+
<% end %>
|