playbook_ui 4.17.0 → 4.18.0
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 +1 -0
- data/app/pb_kits/playbook/data/menu.yml +2 -1
- data/app/pb_kits/playbook/index.js +1 -0
- data/app/pb_kits/playbook/packs/examples.js +2 -0
- data/app/pb_kits/playbook/packs/samples.js +2 -0
- data/app/pb_kits/playbook/pb_avatar_action_button/_avatar_action_button.html.erb +1 -0
- data/app/pb_kits/playbook/pb_avatar_action_button/_avatar_action_button.jsx +3 -0
- data/app/pb_kits/playbook/pb_label_value/_label_value.html.erb +1 -0
- data/app/pb_kits/playbook/pb_label_value/_label_value.jsx +22 -3
- data/app/pb_kits/playbook/pb_layout/_layout.jsx +6 -4
- data/app/pb_kits/playbook/pb_logistic/_logistic.html.erb +1 -0
- data/app/pb_kits/playbook/pb_logistic/_logistic.jsx +26 -4
- data/app/pb_kits/playbook/pb_message/_message.html.erb +1 -0
- data/app/pb_kits/playbook/pb_message/_message.jsx +25 -7
- data/app/pb_kits/playbook/pb_message/docs/_message_default.jsx +1 -2
- data/app/pb_kits/playbook/pb_message/message.rb +1 -1
- data/app/pb_kits/playbook/pb_person/_person.html.erb +9 -2
- data/app/pb_kits/playbook/pb_person/_person.jsx +34 -10
- data/app/pb_kits/playbook/pb_person/docs/_person_default.html.erb +5 -1
- data/app/pb_kits/playbook/pb_person_contact/_person_contact.html.erb +1 -0
- data/app/pb_kits/playbook/pb_person_contact/_person_contact.jsx +57 -5
- data/app/pb_kits/playbook/pb_person_contact/docs/_person_contact_with_wrong_numbers.jsx +32 -0
- data/app/pb_kits/playbook/pb_person_contact/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_person_contact/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.html.erb +1 -0
- data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.jsx +29 -5
- data/app/pb_kits/playbook/pb_section_separator/_section_separator.html.erb +1 -0
- data/app/pb_kits/playbook/pb_section_separator/_section_separator.jsx +22 -13
- data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_text.jsx +3 -1
- data/app/pb_kits/playbook/pb_timeline/_item.html.erb +28 -0
- data/app/pb_kits/playbook/pb_timeline/_item.jsx +54 -0
- data/app/pb_kits/playbook/pb_timeline/_timeline.html.erb +6 -0
- data/app/pb_kits/playbook/pb_timeline/_timeline.jsx +43 -0
- data/app/pb_kits/playbook/pb_timeline/_timeline.scss +271 -0
- data/app/pb_kits/playbook/pb_timeline/docs/_description.md +3 -0
- data/app/pb_kits/playbook/pb_timeline/docs/_timeline_default.html.erb +43 -0
- data/app/pb_kits/playbook/pb_timeline/docs/_timeline_default.jsx +73 -0
- data/app/pb_kits/playbook/pb_timeline/docs/_timeline_vertical.html.erb +43 -0
- data/app/pb_kits/playbook/pb_timeline/docs/_timeline_vertical.jsx +73 -0
- data/app/pb_kits/playbook/pb_timeline/docs/_timeline_with_date.html.erb +44 -0
- data/app/pb_kits/playbook/pb_timeline/docs/_timeline_with_date.jsx +85 -0
- data/app/pb_kits/playbook/pb_timeline/docs/example.yml +13 -0
- data/app/pb_kits/playbook/pb_timeline/docs/index.js +3 -0
- data/app/pb_kits/playbook/pb_timeline/item.rb +25 -0
- data/app/pb_kits/playbook/pb_timeline/timeline.rb +27 -0
- data/app/views/playbook/samples/registration/index.html.erb +316 -0
- data/app/views/playbook/samples/registration/index.jsx +476 -0
- data/lib/playbook/version.rb +1 -1
- metadata +23 -3
@@ -0,0 +1,32 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { PersonContact } from '../../'
|
3
|
+
|
4
|
+
const PersonContactWithWrongNumbers = () => {
|
5
|
+
return (
|
6
|
+
<>
|
7
|
+
<PersonContact
|
8
|
+
contacts={[
|
9
|
+
{
|
10
|
+
contactType: 'email',
|
11
|
+
contactValue: 'email@example.com',
|
12
|
+
},
|
13
|
+
{
|
14
|
+
contactValue: '5555555555',
|
15
|
+
},
|
16
|
+
{
|
17
|
+
contactType: 'wrong-phone',
|
18
|
+
contactValue: '3245627482',
|
19
|
+
},
|
20
|
+
{
|
21
|
+
contactType: 'phone',
|
22
|
+
contactValue: '3048615385',
|
23
|
+
},
|
24
|
+
]}
|
25
|
+
firstName="Pauline"
|
26
|
+
lastName="Smith"
|
27
|
+
/>
|
28
|
+
</>
|
29
|
+
)
|
30
|
+
}
|
31
|
+
|
32
|
+
export default PersonContactWithWrongNumbers
|
@@ -1,3 +1,4 @@
|
|
1
1
|
export { default as PersonContactDefault } from './_person_contact_default.jsx'
|
2
2
|
export { default as PersonContactMultiple } from './_person_contact_multiple.jsx'
|
3
3
|
export { default as PersonContactWithDetail } from './_person_contact_with_detail.jsx'
|
4
|
+
export { default as PersonContactWithWrongNumbers } from './_person_contact_with_wrong_numbers.jsx'
|
@@ -3,10 +3,21 @@
|
|
3
3
|
import React from 'react'
|
4
4
|
import { Body, Title } from '../'
|
5
5
|
import classnames from 'classnames'
|
6
|
+
|
7
|
+
import {
|
8
|
+
buildAriaProps,
|
9
|
+
buildCss,
|
10
|
+
buildDataProps,
|
11
|
+
} from '../utilities/props'
|
12
|
+
|
6
13
|
import { spacing } from '../utilities/spacing.js'
|
7
14
|
|
8
15
|
type ProgressPillsProps = {
|
9
16
|
active?: Number,
|
17
|
+
aria?: object,
|
18
|
+
className?: String,
|
19
|
+
data?: object,
|
20
|
+
id?: String,
|
10
21
|
steps?: Number,
|
11
22
|
title?: String,
|
12
23
|
value?: String,
|
@@ -26,7 +37,7 @@ const showSteps = (steps, active, dark) => {
|
|
26
37
|
const ProgressPill = ({ active, dark, step }: ProgressPillProps) => (
|
27
38
|
<div
|
28
39
|
className={`pb_progress_pill${step <= active ? '_active' : '_inactive'}${
|
29
|
-
dark ? '_dark' :
|
40
|
+
dark ? '_dark' : ''
|
30
41
|
}`}
|
31
42
|
key={step}
|
32
43
|
/>
|
@@ -35,15 +46,29 @@ const ProgressPill = ({ active, dark, step }: ProgressPillProps) => (
|
|
35
46
|
const ProgressPills = (props: ProgressPillsProps) => {
|
36
47
|
const {
|
37
48
|
active = 0,
|
49
|
+
aria = {},
|
50
|
+
className,
|
51
|
+
data = {},
|
52
|
+
id,
|
38
53
|
steps = 3,
|
39
|
-
title
|
40
|
-
value
|
54
|
+
title,
|
55
|
+
value,
|
41
56
|
dark = false,
|
42
57
|
} = props
|
43
58
|
const darkClass = dark ? '_dark' : ''
|
44
59
|
|
60
|
+
const ariaProps = buildAriaProps(aria)
|
61
|
+
const dataProps = buildDataProps(data)
|
62
|
+
const classes = classnames(buildCss('pb_progress_pills_kit', darkClass), className, spacing(props))
|
63
|
+
|
45
64
|
return (
|
46
|
-
<div
|
65
|
+
<div
|
66
|
+
{...ariaProps}
|
67
|
+
{...dataProps}
|
68
|
+
className={classes}
|
69
|
+
id={id}
|
70
|
+
>
|
71
|
+
|
47
72
|
<If condition={title}>
|
48
73
|
<div className="progress_pills_status">
|
49
74
|
<Title
|
@@ -59,7 +84,6 @@ const ProgressPills = (props: ProgressPillsProps) => {
|
|
59
84
|
/>
|
60
85
|
</div>
|
61
86
|
</If>
|
62
|
-
|
63
87
|
<div className="progress_pills">{showSteps(steps, active, dark)}</div>
|
64
88
|
</div>
|
65
89
|
)
|
@@ -1,36 +1,45 @@
|
|
1
1
|
/* @flow */
|
2
2
|
import React from 'react'
|
3
3
|
import classnames from 'classnames'
|
4
|
-
import Caption from '../
|
4
|
+
import { Caption } from '../'
|
5
|
+
import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
|
5
6
|
import { spacing } from '../utilities/spacing.js'
|
6
7
|
|
7
8
|
type SectionSeparatorProps = {
|
9
|
+
aria: object,
|
8
10
|
className: String,
|
9
|
-
|
11
|
+
dark?: Boolean,
|
12
|
+
data: object,
|
13
|
+
id: String,
|
10
14
|
orientation?: "horizontal" | "vertical",
|
15
|
+
text: String,
|
11
16
|
variant?: "card" | "background",
|
12
|
-
dark?: Boolean,
|
13
17
|
}
|
14
18
|
|
15
19
|
const SectionSeparator = (props: SectionSeparatorProps) => {
|
16
20
|
const {
|
21
|
+
aria = {},
|
17
22
|
className,
|
18
|
-
|
23
|
+
dark = false,
|
24
|
+
data = {},
|
25
|
+
id,
|
19
26
|
orientation = 'horizontal',
|
27
|
+
text,
|
20
28
|
variant = 'card',
|
21
|
-
dark = false,
|
22
29
|
} = props
|
23
30
|
const themeStyle = dark === true ? '_dark' : ''
|
24
|
-
const
|
25
|
-
|
26
|
-
|
27
|
-
className,
|
28
|
-
],
|
29
|
-
spacing(props)
|
30
|
-
)
|
31
|
+
const ariaProps = buildAriaProps(aria)
|
32
|
+
const dataProps = buildDataProps(data)
|
33
|
+
const classes = classnames(buildCss('pb_section_separator_kit', variant, orientation, themeStyle), className, spacing(props))
|
31
34
|
|
32
35
|
return (
|
33
|
-
|
36
|
+
|
37
|
+
<div
|
38
|
+
{...ariaProps}
|
39
|
+
{...dataProps}
|
40
|
+
className={classes}
|
41
|
+
id={id}
|
42
|
+
>
|
34
43
|
<span>
|
35
44
|
<Caption text={text} />
|
36
45
|
</span>
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<%= content_tag(:div,
|
2
|
+
id: object.id,
|
3
|
+
data: object.data,
|
4
|
+
class: object.classname) do %>
|
5
|
+
|
6
|
+
<div class="pb_timeline_item_left_block">
|
7
|
+
<% if object.date.present? %>
|
8
|
+
<%= pb_rails("date_stacked", props: {
|
9
|
+
date: object.date,
|
10
|
+
size: "sm",
|
11
|
+
align: "center"
|
12
|
+
}) %>
|
13
|
+
<% end %>
|
14
|
+
</div>
|
15
|
+
|
16
|
+
<div class="pb_timeline_item_step">
|
17
|
+
<%= pb_rails("icon_circle", props: {
|
18
|
+
icon: object.icon,
|
19
|
+
variant: object.icon_color,
|
20
|
+
size: "xs"
|
21
|
+
}) %>
|
22
|
+
<div class="pb_timeline_item_connector"></div>
|
23
|
+
</div>
|
24
|
+
<div class="pb_timeline_item_right_block">
|
25
|
+
<%= capture(&object.children) %>
|
26
|
+
</div>
|
27
|
+
|
28
|
+
<% end %>
|
@@ -0,0 +1,54 @@
|
|
1
|
+
/* @flow */
|
2
|
+
|
3
|
+
import React from 'react'
|
4
|
+
import classnames from 'classnames'
|
5
|
+
import { buildCss } from '../utilities/props'
|
6
|
+
import { DateStacked, IconCircle } from '..'
|
7
|
+
|
8
|
+
type ItemProps = {
|
9
|
+
className?: string,
|
10
|
+
children?: Array<React.Node>,
|
11
|
+
date?: Date,
|
12
|
+
icon?: string,
|
13
|
+
iconColor?: 'default' | 'royal' | 'blue' | 'purple' | 'teal' | 'red' | 'yellow' | 'green',
|
14
|
+
lineStyle?: 'solid' | 'dotted',
|
15
|
+
}
|
16
|
+
|
17
|
+
const TimelineItem = ({
|
18
|
+
className,
|
19
|
+
children,
|
20
|
+
date,
|
21
|
+
icon = 'user',
|
22
|
+
iconColor = 'default',
|
23
|
+
lineStyle = 'solid',
|
24
|
+
|
25
|
+
}: ItemProps) => {
|
26
|
+
const timelineItemCss = buildCss('pb_timeline_item_kit', lineStyle)
|
27
|
+
|
28
|
+
return (
|
29
|
+
<div className={classnames(timelineItemCss, className)}>
|
30
|
+
<div className="pb_timeline_item_left_block">
|
31
|
+
<If condition={date}>
|
32
|
+
<DateStacked
|
33
|
+
align="center"
|
34
|
+
date={date}
|
35
|
+
size="sm"
|
36
|
+
/>
|
37
|
+
</If>
|
38
|
+
</div>
|
39
|
+
<div className="pb_timeline_item_step">
|
40
|
+
<IconCircle
|
41
|
+
icon={icon}
|
42
|
+
size="xs"
|
43
|
+
variant={iconColor}
|
44
|
+
/>
|
45
|
+
<div className="pb_timeline_item_connector" />
|
46
|
+
</div>
|
47
|
+
<div className="pb_timeline_item_right_block">
|
48
|
+
{children}
|
49
|
+
</div>
|
50
|
+
</div>
|
51
|
+
)
|
52
|
+
}
|
53
|
+
|
54
|
+
export default TimelineItem
|
@@ -0,0 +1,43 @@
|
|
1
|
+
/* @flow */
|
2
|
+
|
3
|
+
import React from 'react'
|
4
|
+
import classnames from 'classnames'
|
5
|
+
import TimelineItem from './_item.jsx'
|
6
|
+
import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
|
7
|
+
|
8
|
+
type TimelineProps = {
|
9
|
+
aria?: object,
|
10
|
+
children?: Array<React.ReactChild>,
|
11
|
+
className?: String,
|
12
|
+
data?: String,
|
13
|
+
id?: String,
|
14
|
+
orientation?: String,
|
15
|
+
showDate?: Boolean,
|
16
|
+
}
|
17
|
+
|
18
|
+
const Timeline = ({
|
19
|
+
aria = {},
|
20
|
+
className,
|
21
|
+
children,
|
22
|
+
data = {},
|
23
|
+
orientation = 'horizontal',
|
24
|
+
showDate = false,
|
25
|
+
}: TimelineProps) => {
|
26
|
+
const ariaProps = buildAriaProps(aria)
|
27
|
+
const dataProps = buildDataProps(data)
|
28
|
+
const dateStyle = showDate === true ? '_with_date' : ''
|
29
|
+
const timelineCss = buildCss('pb_timeline_kit', `_${orientation}`, dateStyle)
|
30
|
+
return (
|
31
|
+
<div
|
32
|
+
{...ariaProps}
|
33
|
+
{...dataProps}
|
34
|
+
className={classnames(timelineCss, className)}
|
35
|
+
>
|
36
|
+
{children}
|
37
|
+
</div>
|
38
|
+
)
|
39
|
+
}
|
40
|
+
|
41
|
+
Timeline.Item = TimelineItem
|
42
|
+
|
43
|
+
export default Timeline
|
@@ -0,0 +1,271 @@
|
|
1
|
+
@import "../tokens/colors";
|
2
|
+
@import "../tokens/spacing";
|
3
|
+
@import "../tokens/opacity";
|
4
|
+
@import "../tokens/typography";
|
5
|
+
|
6
|
+
$connector_width: 2px;
|
7
|
+
$icon_margin: $space_xs/2;
|
8
|
+
$icon_height: 28px;
|
9
|
+
$height_from_top: $icon_height/2 - $connector_width/2;
|
10
|
+
|
11
|
+
@mixin pb_timeline_line_solid($width, $height, $margin) {
|
12
|
+
width: $width;
|
13
|
+
height: $height;
|
14
|
+
background-color: $border_light;
|
15
|
+
margin: $margin;
|
16
|
+
flex-grow: 1;
|
17
|
+
}
|
18
|
+
|
19
|
+
@mixin pb_timeline_line_dotted_horizontal($width, $height, $margin) {
|
20
|
+
width: $width;
|
21
|
+
height: $height;
|
22
|
+
background: repeating-linear-gradient(to right, $border_light 0px ,$border_light 2px, transparent 3px, transparent 10px);
|
23
|
+
margin: $margin;
|
24
|
+
flex-grow: 1;
|
25
|
+
}
|
26
|
+
|
27
|
+
@mixin pb_timeline_line_dotted_vertical($width, $height, $margin) {
|
28
|
+
width: $width;
|
29
|
+
height: $height;
|
30
|
+
background: repeating-linear-gradient(0deg, $border_light 0px ,$border_light 2px, transparent 3px, transparent 10px);
|
31
|
+
margin: $margin;
|
32
|
+
flex-grow: 1;
|
33
|
+
}
|
34
|
+
|
35
|
+
@mixin flex_wrapper($flex_direction) {
|
36
|
+
display: flex;
|
37
|
+
flex-direction: $flex_direction;
|
38
|
+
}
|
39
|
+
|
40
|
+
[class^=pb_timeline_kit] {
|
41
|
+
&[class*=_horizontal] {
|
42
|
+
@include flex_wrapper(row);
|
43
|
+
width: 100%;
|
44
|
+
>div {
|
45
|
+
&:last-child {
|
46
|
+
flex-basis: auto !important;
|
47
|
+
[class=pb_timeline_item_step] {
|
48
|
+
[class=pb_timeline_item_connector] {
|
49
|
+
opacity: 0;
|
50
|
+
}
|
51
|
+
}
|
52
|
+
[class=pb_timeline_item_right_block] {
|
53
|
+
display: block;
|
54
|
+
width: 100%;
|
55
|
+
overflow: hidden;
|
56
|
+
white-space: nowrap;
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}
|
60
|
+
[class*=pb_timeline_item_kit] {
|
61
|
+
&[class*=_solid] {
|
62
|
+
flex-basis: 100%;
|
63
|
+
[class=pb_timeline_item_left_block] {
|
64
|
+
height: 0px;
|
65
|
+
}
|
66
|
+
[class=pb_timeline_item_step] {
|
67
|
+
@include flex_wrapper(row);
|
68
|
+
margin-top: $space_xs;
|
69
|
+
margin-bottom: $space_xs;
|
70
|
+
[class=pb_timeline_item_connector] {
|
71
|
+
@include pb_timeline_line_solid($connector_width, $connector_width, $height_from_top $icon_margin 0 $icon_margin );
|
72
|
+
}
|
73
|
+
}
|
74
|
+
}
|
75
|
+
&[class*=_dotted] {
|
76
|
+
flex-basis: 100%;
|
77
|
+
[class=pb_timeline_item_left_block] {
|
78
|
+
height: 0;
|
79
|
+
}
|
80
|
+
[class=pb_timeline_item_step] {
|
81
|
+
@include flex_wrapper(row);
|
82
|
+
margin-top: $space_xs;
|
83
|
+
margin-bottom: $space_xs;
|
84
|
+
[class=pb_timeline_item_connector] {
|
85
|
+
@include pb_timeline_line_dotted_horizontal($connector_width, $connector_width, $height_from_top $icon_margin 0 $icon_margin );
|
86
|
+
}
|
87
|
+
}
|
88
|
+
}
|
89
|
+
}
|
90
|
+
&[class*=_with_date] {
|
91
|
+
@include flex_wrapper(row);
|
92
|
+
width: 100%;
|
93
|
+
>div {
|
94
|
+
&:last-child {
|
95
|
+
flex-basis: auto !important;
|
96
|
+
[class=pb_timeline_item_step] {
|
97
|
+
[class=pb_timeline_item_connector] {
|
98
|
+
opacity: 0;
|
99
|
+
}
|
100
|
+
}
|
101
|
+
[class=pb_timeline_item_right_block] {
|
102
|
+
display: block;
|
103
|
+
width: 100%;
|
104
|
+
overflow: hidden;
|
105
|
+
white-space: nowrap;
|
106
|
+
}
|
107
|
+
}
|
108
|
+
}
|
109
|
+
[class*=pb_timeline_item_kit] {
|
110
|
+
&[class*=_solid] {
|
111
|
+
flex-basis: 100%;
|
112
|
+
[class=pb_timeline_item_left_block] {
|
113
|
+
@include flex_wrapper(column);
|
114
|
+
height: 55px;
|
115
|
+
justify-content: flex-end;
|
116
|
+
[class=pb_date_stacked_kit_center_sm] {
|
117
|
+
[class=pb_date_stacked_day_month] {
|
118
|
+
[class=pb_caption_kit_md] {
|
119
|
+
text-align: left;
|
120
|
+
}
|
121
|
+
[class=pb_title_kit_4] {
|
122
|
+
text-align: left;
|
123
|
+
}
|
124
|
+
}
|
125
|
+
}
|
126
|
+
}
|
127
|
+
[class=pb_timeline_item_step] {
|
128
|
+
@include flex_wrapper(row);
|
129
|
+
margin-top: $space_xs;
|
130
|
+
margin-bottom: $space_xs;
|
131
|
+
[class=pb_timeline_item_connector] {
|
132
|
+
@include pb_timeline_line_solid($connector_width, $connector_width, $height_from_top $icon_margin 0 $icon_margin );
|
133
|
+
}
|
134
|
+
}
|
135
|
+
}
|
136
|
+
&[class*=_dotted] {
|
137
|
+
flex-basis: 100%;
|
138
|
+
[class=pb_timeline_item_left_block] {
|
139
|
+
height: 55px;
|
140
|
+
[class=pb_date_stacked_kit_center_sm] {
|
141
|
+
[class=pb_date_stacked_day_month] {
|
142
|
+
[class=pb_caption_kit_md] {
|
143
|
+
text-align: left;
|
144
|
+
}
|
145
|
+
[class=pb_title_kit_4] {
|
146
|
+
text-align: left;
|
147
|
+
}
|
148
|
+
}
|
149
|
+
}
|
150
|
+
}
|
151
|
+
[class=pb_timeline_item_step] {
|
152
|
+
@include flex_wrapper(row);
|
153
|
+
margin-top: $space_xs;
|
154
|
+
margin-bottom: $space_xs;
|
155
|
+
[class=pb_timeline_item_connector] {
|
156
|
+
@include pb_timeline_line_dotted_horizontal($connector_width, $connector_width, $height_from_top $icon_margin 0 $icon_margin );
|
157
|
+
}
|
158
|
+
}
|
159
|
+
}
|
160
|
+
}
|
161
|
+
}
|
162
|
+
}
|
163
|
+
&[class*=_vertical] {
|
164
|
+
@include flex_wrapper(column);
|
165
|
+
align-items: flex-start;
|
166
|
+
align-self: auto;
|
167
|
+
>div:last-child {
|
168
|
+
[class=pb_timeline_item_step] {
|
169
|
+
[class=pb_timeline_item_connector] {
|
170
|
+
opacity: 0;
|
171
|
+
}
|
172
|
+
}
|
173
|
+
}
|
174
|
+
[class*=pb_timeline_item_kit] {
|
175
|
+
@include flex_wrapper(row);
|
176
|
+
&[class*=_solid] {
|
177
|
+
flex-basis: 100%;
|
178
|
+
[class=pb_timeline_item_step] {
|
179
|
+
@include flex_wrapper(column);
|
180
|
+
align-content: flex-start;
|
181
|
+
margin-right: $space_sm;
|
182
|
+
margin-left: $space_sm;
|
183
|
+
[class=pb_timeline_item_connector] {
|
184
|
+
@include pb_timeline_line_solid($connector_width, $connector_width, $icon_margin 0 $icon_margin $height_from_top);
|
185
|
+
}
|
186
|
+
}
|
187
|
+
[class=pb_timeline_item_left_block] {
|
188
|
+
margin-bottom: $space_lg;
|
189
|
+
width: 0px;
|
190
|
+
}
|
191
|
+
[class=pb_timeline_item_right_block] {
|
192
|
+
@include flex_wrapper(column);
|
193
|
+
margin-bottom: $space_lg;
|
194
|
+
}
|
195
|
+
}
|
196
|
+
&[class*=_dotted] {
|
197
|
+
flex-basis: 100%;
|
198
|
+
[class=pb_timeline_item_step] {
|
199
|
+
@include flex_wrapper(column);
|
200
|
+
margin-right: $space_sm;
|
201
|
+
margin-left: $space_sm;
|
202
|
+
[class=pb_timeline_item_connector] {
|
203
|
+
@include pb_timeline_line_dotted_vertical($connector_width, $connector_width, $icon_margin 0 $icon_margin $height_from_top);
|
204
|
+
}
|
205
|
+
}
|
206
|
+
[class=pb_timeline_item_left_block] {
|
207
|
+
margin-bottom: $space_lg;
|
208
|
+
width: 0px;
|
209
|
+
}
|
210
|
+
[class=pb_timeline_item_right_block] {
|
211
|
+
@include flex_wrapper(column);
|
212
|
+
margin-bottom: $space_lg;
|
213
|
+
}
|
214
|
+
}
|
215
|
+
}
|
216
|
+
&[class*=_with_date] {
|
217
|
+
@include flex_wrapper(column);
|
218
|
+
align-items: flex-start;
|
219
|
+
align-self: auto;
|
220
|
+
>div:last-child {
|
221
|
+
[class=pb_timeline_item_step] {
|
222
|
+
[class=pb_timeline_item_connector] {
|
223
|
+
opacity: 0;
|
224
|
+
}
|
225
|
+
}
|
226
|
+
}
|
227
|
+
[class*=pb_timeline_item_kit] {
|
228
|
+
@include flex_wrapper(row);
|
229
|
+
&[class*=_solid] {
|
230
|
+
flex-basis: 100%;
|
231
|
+
[class=pb_timeline_item_step] {
|
232
|
+
@include flex_wrapper(column);
|
233
|
+
align-content: flex-start;
|
234
|
+
margin-right: $space_sm;
|
235
|
+
margin-left: $space_sm;
|
236
|
+
[class=pb_timeline_item_connector] {
|
237
|
+
@include pb_timeline_line_solid($connector_width, $connector_width, $icon_margin 0 $icon_margin $height_from_top);
|
238
|
+
}
|
239
|
+
}
|
240
|
+
[class=pb_timeline_item_left_block] {
|
241
|
+
margin-bottom: $space_lg;
|
242
|
+
width: $space_lg;
|
243
|
+
}
|
244
|
+
[class=pb_timeline_item_right_block] {
|
245
|
+
@include flex_wrapper(column);
|
246
|
+
margin-bottom: $space_lg;
|
247
|
+
}
|
248
|
+
}
|
249
|
+
&[class*=_dotted] {
|
250
|
+
flex-basis: 100%;
|
251
|
+
[class=pb_timeline_item_step] {
|
252
|
+
@include flex_wrapper(column);
|
253
|
+
margin-right: $space_sm;
|
254
|
+
margin-left: $space_sm;
|
255
|
+
[class=pb_timeline_item_connector] {
|
256
|
+
@include pb_timeline_line_dotted_vertical($connector_width, $connector_width, $icon_margin 0 $icon_margin $height_from_top);
|
257
|
+
}
|
258
|
+
}
|
259
|
+
[class=pb_timeline_item_left_block] {
|
260
|
+
margin-bottom: $space_lg;
|
261
|
+
width: $space_lg;
|
262
|
+
}
|
263
|
+
[class=pb_timeline_item_right_block] {
|
264
|
+
@include flex_wrapper(column);
|
265
|
+
margin-bottom: $space_lg;
|
266
|
+
}
|
267
|
+
}
|
268
|
+
}
|
269
|
+
}
|
270
|
+
}
|
271
|
+
}
|