playbook_ui 4.14.0 → 4.15.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +2 -0
  3. data/app/pb_kits/playbook/data/menu.yml +2 -0
  4. data/app/pb_kits/playbook/index.js +4 -1
  5. data/app/pb_kits/playbook/packs/examples.js +2 -0
  6. data/app/pb_kits/playbook/packs/kits/pb_progress_step.js +2 -0
  7. data/app/pb_kits/playbook/pb_button/_button.jsx +9 -1
  8. data/app/pb_kits/playbook/pb_contact/_contact.jsx +1 -0
  9. data/app/pb_kits/playbook/pb_contact/contact.rb +2 -0
  10. data/app/pb_kits/playbook/pb_contact/docs/_contact_default.html.erb +5 -0
  11. data/app/pb_kits/playbook/pb_contact/docs/_contact_default.jsx +4 -0
  12. data/app/pb_kits/playbook/pb_contact/docs/_contact_with_detail.html.erb +6 -0
  13. data/app/pb_kits/playbook/pb_contact/docs/_contact_with_detail.jsx +5 -0
  14. data/app/pb_kits/playbook/pb_date_year_stacked/_date_year_stacked.jsx +2 -2
  15. data/app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx +56 -0
  16. data/app/pb_kits/playbook/pb_filter/Filter/FilterBackground.jsx +26 -0
  17. data/app/pb_kits/playbook/pb_filter/Filter/FilterDouble.jsx +58 -0
  18. data/app/pb_kits/playbook/pb_filter/Filter/FilterSingle.jsx +46 -0
  19. data/app/pb_kits/playbook/pb_filter/Filter/FiltersPopover.jsx +37 -0
  20. data/app/pb_kits/playbook/pb_filter/Filter/ResultsCount.jsx +34 -0
  21. data/app/pb_kits/playbook/pb_filter/Filter/SortMenu.jsx +85 -0
  22. data/app/pb_kits/playbook/pb_filter/Filter/index.jsx +26 -0
  23. data/app/pb_kits/playbook/pb_filter/_filter.jsx +1 -222
  24. data/app/pb_kits/playbook/pb_filter/_filter.scss +16 -13
  25. data/app/pb_kits/playbook/pb_filter/docs/_filter_default.html.erb +34 -41
  26. data/app/pb_kits/playbook/pb_filter/docs/_filter_default.jsx +13 -9
  27. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.html.erb +69 -74
  28. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.jsx +12 -9
  29. data/app/pb_kits/playbook/pb_filter/docs/_filter_only.html.erb +28 -35
  30. data/app/pb_kits/playbook/pb_filter/docs/_filter_only.jsx +5 -6
  31. data/app/pb_kits/playbook/pb_filter/docs/_filter_single.html.erb +35 -41
  32. data/app/pb_kits/playbook/pb_filter/docs/_filter_single.jsx +12 -10
  33. data/app/pb_kits/playbook/pb_filter/docs/_sort_only.html.erb +12 -18
  34. data/app/pb_kits/playbook/pb_filter/docs/_sort_only.jsx +14 -44
  35. data/app/pb_kits/playbook/pb_filter/templates/_default.html.erb +1 -1
  36. data/app/pb_kits/playbook/pb_layout/_layout.jsx +66 -14
  37. data/app/pb_kits/playbook/pb_layout/docs/_layout_colors.jsx +63 -0
  38. data/app/pb_kits/playbook/pb_layout/docs/_layout_sizes.jsx +87 -0
  39. data/app/pb_kits/playbook/pb_layout/docs/_layout_sizes_dark.jsx +92 -0
  40. data/app/pb_kits/playbook/pb_layout/docs/_layout_transparent.jsx +24 -0
  41. data/app/pb_kits/playbook/pb_layout/docs/example.yml +4 -1
  42. data/app/pb_kits/playbook/pb_layout/docs/index.js +4 -1
  43. data/app/pb_kits/playbook/pb_online_status/_online_status.jsx +31 -14
  44. data/app/pb_kits/playbook/pb_online_status/docs/_online_status_default.jsx +19 -0
  45. data/app/pb_kits/playbook/pb_online_status/docs/example.yml +3 -3
  46. data/app/pb_kits/playbook/pb_online_status/docs/index.js +1 -0
  47. data/app/pb_kits/playbook/pb_popover/_popover.jsx +2 -2
  48. data/app/pb_kits/playbook/pb_popover/docs/example.yml +0 -2
  49. data/app/pb_kits/playbook/pb_popover/docs/index.js +0 -1
  50. data/app/pb_kits/playbook/pb_progress_step/_progress_step.html.erb +6 -0
  51. data/app/pb_kits/playbook/pb_progress_step/_progress_step.jsx +35 -0
  52. data/app/pb_kits/playbook/pb_progress_step/_progress_step.scss +388 -0
  53. data/app/pb_kits/playbook/pb_progress_step/_progress_step_item.html.erb +23 -0
  54. data/app/pb_kits/playbook/pb_progress_step/_progress_step_item.jsx +44 -0
  55. data/app/pb_kits/playbook/pb_progress_step/docs/_description.md +1 -0
  56. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_dark.html.erb +8 -0
  57. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_dark.jsx +18 -0
  58. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_default.html.erb +33 -0
  59. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_default.jsx +39 -0
  60. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_vertical.html.erb +33 -0
  61. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_vertical.jsx +40 -0
  62. data/app/pb_kits/playbook/pb_progress_step/docs/example.yml +12 -0
  63. data/app/pb_kits/playbook/pb_progress_step/docs/index.js +3 -0
  64. data/app/pb_kits/playbook/pb_progress_step/progress_step.rb +33 -0
  65. data/app/pb_kits/playbook/pb_progress_step/progress_step_item.rb +19 -0
  66. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_default.html.erb +1 -1
  67. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_default.jsx +1 -1
  68. data/app/pb_kits/playbook/pb_stat_change/stat_change.rb +1 -1
  69. data/app/pb_kits/playbook/pb_timestamp/_timestamp.jsx +39 -14
  70. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.jsx +8 -0
  71. data/app/pb_kits/playbook/pb_timestamp/docs/example.yml +3 -3
  72. data/app/pb_kits/playbook/pb_timestamp/docs/index.js +1 -0
  73. data/app/pb_kits/playbook/pb_title_detail/_title_detail.jsx +47 -14
  74. data/app/pb_kits/playbook/pb_title_detail/docs/_title_detail_default.jsx +26 -0
  75. data/app/pb_kits/playbook/pb_title_detail/docs/example.yml +3 -3
  76. data/app/pb_kits/playbook/pb_title_detail/docs/index.js +1 -0
  77. data/app/pb_kits/playbook/pb_tooltip/_tooltip.html.erb +10 -0
  78. data/app/pb_kits/playbook/pb_tooltip/_tooltip.scss +105 -0
  79. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_default.html.erb +10 -0
  80. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_white.html.erb +9 -0
  81. data/app/pb_kits/playbook/pb_tooltip/docs/example.yml +5 -0
  82. data/app/pb_kits/playbook/pb_tooltip/index.js +80 -0
  83. data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +34 -0
  84. data/app/pb_kits/playbook/tokens/_colors.scss +4 -0
  85. data/app/pb_kits/playbook/vendor.js +3 -0
  86. data/lib/playbook/version.rb +1 -1
  87. metadata +41 -6
  88. data/app/pb_kits/playbook/pb_layout/_body.jsx +0 -26
  89. data/app/pb_kits/playbook/pb_layout/_sidebar.jsx +0 -26
  90. data/app/pb_kits/playbook/pb_layout/docs/_layout_default.jsx +0 -14
  91. data/app/pb_kits/playbook/pb_popover/docs/_popover_with_button.html.erb +0 -4
@@ -0,0 +1,19 @@
1
+ import React from 'react'
2
+ import { OnlineStatus } from '../../'
3
+
4
+ const OnlineStatusDefault = () => (
5
+ <>
6
+ <OnlineStatus status="offline" />
7
+
8
+ <br />
9
+
10
+ <OnlineStatus status="online" />
11
+
12
+ <br />
13
+
14
+ <OnlineStatus status="away" />
15
+
16
+ </>
17
+ )
18
+
19
+ export default OnlineStatusDefault
@@ -1,7 +1,7 @@
1
1
  examples:
2
-
2
+
3
3
  rails:
4
4
  - online_status_default: Default
5
-
5
+
6
6
  react:
7
-
7
+ - online_status_default: Default
@@ -0,0 +1 @@
1
+ export { default as OnlineStatusDefault } from './_online_status_default.jsx'
@@ -60,12 +60,12 @@ const Popover = ({
60
60
  {({ placement, ref, style }) => {
61
61
  return (
62
62
  <div
63
- className={buildCss('pb_popover_kit', className)}
63
+ className={`${buildCss('pb_popover_kit')} ${className}`}
64
64
  data-placement={placement}
65
65
  ref={ref}
66
66
  style={style}
67
67
  >
68
- <div className={buildCss('popover_tooltip', 'show')}>
68
+ <div className={`${buildCss('popover_tooltip')} show`}>
69
69
  <Card shadow="deeper">
70
70
  { children }
71
71
  </Card>
@@ -1,7 +1,6 @@
1
1
  examples:
2
2
  rails:
3
3
  - popover_default: Default
4
- - popover_with_button: With Button
5
4
  - popover_list: With any children
6
5
  - popover_click_outside: Close on click outside
7
6
  - popover_click_inside: Close on click inside
@@ -9,7 +8,6 @@ examples:
9
8
 
10
9
  react:
11
10
  - popover_default: Default
12
- - popover_with_button: With Button
13
11
  - popover_list: With any children
14
12
  - popover_click_outside: Close on click outside
15
13
  - popover_click_inside: Close on click inside
@@ -1,5 +1,4 @@
1
1
  export { default as PopoverDefault } from './_popover_default.jsx'
2
- export { default as PopoverWithButton } from './_popover_with_button.jsx'
3
2
  export { default as PopoverList } from './_popover_list.jsx'
4
3
  export { default as PopoverClickOutside } from './_popover_click_outside.jsx'
5
4
  export { default as PopoverClickInside } from './_popover_click_inside.jsx'
@@ -0,0 +1,6 @@
1
+ <%= content_tag(:div,
2
+ id: object.id,
3
+ data: object.data,
4
+ class: object.classname) do %>
5
+ <%= capture(&object.children) %>
6
+ <% end %>
@@ -0,0 +1,35 @@
1
+ /* @flow */
2
+
3
+ import React from 'react'
4
+ import classnames from 'classnames'
5
+ import { buildCss } from '../utilities/props'
6
+
7
+ type ProgressStepProps = {
8
+ className?: String,
9
+ data?: String,
10
+ id?: String,
11
+ children?: Array<React.ReactChild>,
12
+ orientation?: 'horizontal' | 'vertical',
13
+ icon?: Boolean,
14
+ dark?: Boolean,
15
+ }
16
+
17
+ const ProgressStep = ({
18
+ className,
19
+ children,
20
+ orientation = 'horizontal',
21
+ icon = false,
22
+ dark = false,
23
+ }: ProgressStepProps) => {
24
+ const iconStyle = icon === true ? 'icon' : ''
25
+ const darkStyle = dark === true ? 'dark' : ''
26
+ const progressStepCss = buildCss('pb_progress_step_kit', orientation, iconStyle, darkStyle)
27
+
28
+ return (
29
+ <div className={classnames(progressStepCss, className)}>
30
+ {children}
31
+ </div>
32
+ )
33
+ }
34
+
35
+ export default ProgressStep
@@ -0,0 +1,388 @@
1
+ @import "../tokens/colors";
2
+ @import "../tokens/spacing";
3
+ @import "../tokens/opacity";
4
+ @import "../tokens/typography";
5
+
6
+ $pb_progress_step_circle_size: 14px;
7
+ $pb_progress_step_connector_width: 3px;
8
+ $pb_progress_step_connector_height_from_top: $pb_progress_step_circle_size/2 - $pb_progress_step_connector_width/2 + 2;
9
+ $pb_progress_step_connector_height_from_left: $pb_progress_step_circle_size/2 - $pb_progress_step_connector_width/2;
10
+
11
+ @mixin pb_progress_step_circle($background_color, $border_color, $border_width, $icon_color) {
12
+ display: flex;
13
+ flex-shrink: 0;
14
+ justify-content: center;
15
+ align-items: center;
16
+ padding-right: 0;
17
+ overflow: hidden;
18
+ height: $pb_progress_step_circle_size;
19
+ width: $pb_progress_step_circle_size;
20
+ background-color: $background_color;
21
+ color: $icon_color;
22
+ font-size: $font_smallest;
23
+ border-radius: $pb_progress_step_circle_size/2;
24
+ border: $border_width solid $border_color;
25
+ margin: 2px;
26
+ }
27
+
28
+ @mixin pb_progress_step_line($width, $height, $color, $margin) {
29
+ width: $width;
30
+ height: $height;
31
+ background-color: $color;
32
+ margin: $margin;
33
+ flex-grow: 1;
34
+ }
35
+
36
+ @mixin pb_progress_step_item_wrapper_horizontal {
37
+ display: flex;
38
+ flex-direction: row;
39
+ width: 100%;
40
+ }
41
+
42
+ @mixin pb_progress_step_item_wrapper_flex($flex_direction, $align_items, $align_self) {
43
+ display: flex;
44
+ flex-direction: $flex_direction;
45
+ align-items: $align_items;
46
+ align-self: $align_self;
47
+ }
48
+
49
+ [class^=pb_progress_step_kit] {
50
+ &[class*=_icon] {
51
+ [class^=pb_progress_step_item_kit_complete] {
52
+ [class=pb_progress_step_item_step_circle] {
53
+ svg {
54
+ width: $pb_progress_step_circle_size;
55
+ height: $pb_progress_step_circle_size - 2;
56
+ color: $white;
57
+ }
58
+ }
59
+ }
60
+ }
61
+ &[class*=_horizontal] {
62
+ @include pb_progress_step_item_wrapper_horizontal;
63
+ >div {
64
+ &:first-child {
65
+ [class^=pb_progress_step_item] {
66
+ &[class*=_connector_first], &[class*=_step_connector_first] {
67
+ opacity: 0;
68
+ }
69
+ }
70
+ }
71
+ &:last-child {
72
+ [class^=pb_progress_step_item] {
73
+ &[class*=_connector_second], &[class*=_step_connector_second] {
74
+ opacity: 0;
75
+ }
76
+ }
77
+ }
78
+ }
79
+ [class*=pb_progress_step_item_kit] {
80
+ &[class*=_complete] {
81
+ flex-basis: 100%;
82
+ [class=pb_progress_step_item_wrapper] {
83
+ @include pb_progress_step_item_wrapper_horizontal;
84
+ [class^=pb_progress_step_item] {
85
+ &[class*=_connector_first], &[class*=_connector_second] {
86
+ @include pb_progress_step_line($space_sm, $pb_progress_step_connector_width, $primary, $pb_progress_step_connector_height_from_top 0 0 0);
87
+ }
88
+ }
89
+ [class=pb_progress_step_item_step_wrapper] {
90
+ @include pb_progress_step_item_wrapper_flex(column, center, auto);
91
+ [class=pb_progress_step_item_step] {
92
+ @include pb_progress_step_item_wrapper_horizontal;
93
+ [class^=pb_progress_step_item] {
94
+ &[class*=_step_connector_first], &[class*=_step_connector_second] {
95
+ @include pb_progress_step_line($space_sm, $pb_progress_step_connector_width, $primary, $pb_progress_step_connector_height_from_top 0 0 0);
96
+ }
97
+ &[class*=_step_circle] {
98
+ @include pb_progress_step_circle($primary, $primary, 2px, $primary);
99
+ }
100
+ }
101
+ }
102
+ }
103
+ }
104
+ }
105
+ &[class*=_active] {
106
+ flex-basis: 100%;
107
+ [class=pb_progress_step_item_wrapper] {
108
+ @include pb_progress_step_item_wrapper_horizontal;
109
+ [class^=pb_progress_step_item] {
110
+ &[class*=_connector_first] {
111
+ @include pb_progress_step_line($space_sm, $pb_progress_step_connector_width, $primary, $pb_progress_step_connector_height_from_top 0 0 0);
112
+ }
113
+ &[class*=_connector_second] {
114
+ @include pb_progress_step_line($space_sm, $pb_progress_step_connector_width, $border_light, $pb_progress_step_connector_height_from_top 0 0 0);
115
+ }
116
+ }
117
+ [class=pb_progress_step_item_step_wrapper] {
118
+ @include pb_progress_step_item_wrapper_flex(column, center, auto);
119
+ [class=pb_progress_step_item_step] {
120
+ @include pb_progress_step_item_wrapper_horizontal;
121
+ [class^=pb_progress_step_item] {
122
+ &[class*=_step_connector_first] {
123
+ @include pb_progress_step_line($space_sm, $pb_progress_step_connector_width, $primary, $pb_progress_step_connector_height_from_top 0 0 0);
124
+ }
125
+ &[class*=_step_circle] {
126
+ @include pb_progress_step_circle($white, $primary, 2px, $white);
127
+ svg {
128
+ display: none;
129
+ }
130
+ }
131
+ &[class*=_step_connector_second] {
132
+ @include pb_progress_step_line($space_sm, $pb_progress_step_connector_width, $border_light, $pb_progress_step_connector_height_from_top 0 0 0);
133
+ }
134
+ }
135
+ }
136
+ }
137
+ }
138
+ }
139
+ &[class*=_inactive] {
140
+ flex-basis: 100%;
141
+ [class=pb_progress_step_item_wrapper] {
142
+ @include pb_progress_step_item_wrapper_horizontal;
143
+ [class^=pb_progress_step_item] {
144
+ &[class*=_connector_first], &[class*=_connector_second] {
145
+ @include pb_progress_step_line($space_sm, $pb_progress_step_connector_width, $border_light, $pb_progress_step_connector_height_from_top 0 0 0);
146
+ }
147
+ }
148
+ [class=pb_progress_step_item_step_wrapper] {
149
+ @include pb_progress_step_item_wrapper_flex(column, center, auto);
150
+ [class=pb_progress_step_item_step] {
151
+ @include pb_progress_step_item_wrapper_horizontal;
152
+ [class^=pb_progress_step_item] {
153
+ &[class*=_step_connector_first], &[class*=_step_connector_second] {
154
+ @include pb_progress_step_line($space_sm, $pb_progress_step_connector_width, $border_light, $pb_progress_step_connector_height_from_top 0 0 0);
155
+ }
156
+ &[class*=_step_circle] {
157
+ @include pb_progress_step_circle($border_light, $border_light, 2px, $border_light);
158
+ }
159
+ }
160
+ }
161
+ }
162
+ }
163
+ }
164
+ }
165
+ &[class*=_dark] {
166
+ [class*=pb_progress_step_item_kit] {
167
+ &[class*=_active] {
168
+ [class^=pb_progress_step_item] {
169
+ &[class*=_connector_first] {
170
+ @include pb_progress_step_line($space_sm, $pb_progress_step_connector_width, $primary, $pb_progress_step_connector_height_from_top 0 0 0);
171
+ }
172
+ &[class*=_connector_second] {
173
+ @include pb_progress_step_line($space_sm, $pb_progress_step_connector_width, $border_dark, $pb_progress_step_connector_height_from_top 0 0 0);
174
+ }
175
+ }
176
+ [class=pb_progress_step_item_step_wrapper] {
177
+ [class=pb_progress_step_item_step] {
178
+ [class^=pb_progress_step_item] {
179
+ &[class*=_step_connector_first] {
180
+ @include pb_progress_step_line($space_sm, $pb_progress_step_connector_width, $primary, $pb_progress_step_connector_height_from_top 0 0 0);
181
+ }
182
+ &[class*=_step_circle] {
183
+ @include pb_progress_step_circle($bg_dark, $primary, 2px, $bg_dark);
184
+ svg {
185
+ display: none;
186
+ }
187
+ }
188
+ &[class*=_step_connector_second] {
189
+ @include pb_progress_step_line($space_sm, $pb_progress_step_connector_width, $border_dark, $pb_progress_step_connector_height_from_top 0 0 0);
190
+ }
191
+ }
192
+ }
193
+ }
194
+ }
195
+ &[class*=_inactive] {
196
+ [class=pb_progress_step_item_wrapper] {
197
+ [class^=pb_progress_step_item] {
198
+ &[class*=_connector_first], &[class*=_connector_second] {
199
+ @include pb_progress_step_line($space_sm, $pb_progress_step_connector_width, $border_dark, $pb_progress_step_connector_height_from_top 0 0 0);
200
+ }
201
+ }
202
+ [class=pb_progress_step_item_step_wrapper] {
203
+ [class=pb_progress_step_item_step] {
204
+ [class^=pb_progress_step_item] {
205
+ &[class*=_step_connector_first], &[class*=_step_connector_second] {
206
+ @include pb_progress_step_line($space_sm, $pb_progress_step_connector_width, $border_dark, $pb_progress_step_connector_height_from_top 0 0 0);
207
+ }
208
+ &[class*=_step_circle] {
209
+ @include pb_progress_step_circle($border_dark, $border_dark, 0px, $border_dark);
210
+ svg {
211
+ display: none;
212
+ }
213
+ }
214
+ }
215
+ }
216
+ }
217
+ }
218
+ }
219
+ }
220
+ }
221
+ }
222
+ &[class*=_vertical] {
223
+ @include pb_progress_step_item_wrapper_flex(column, flex-start, auto);
224
+ > div:first-child {
225
+ [class=pb_progress_step_item_wrapper] {
226
+ [class=pb_progress_step_item_connector_first] {
227
+ opacity: 0;
228
+ margin: 0 0 0 $pb_progress_step_connector_height_from_left;
229
+ }
230
+ [class=pb_progress_step_item_step_wrapper] {
231
+ [class=pb_progress_step_item_step] {
232
+ > div:first-child {
233
+ opacity: 0;
234
+ }
235
+ }
236
+ }
237
+ }
238
+ }
239
+ >div:last-child {
240
+ [class=pb_progress_step_item_wrapper] {
241
+ [class=pb_progress_step_item_connector_second] {
242
+ opacity: 0;
243
+ }
244
+ [class=pb_progress_step_item_step_wrapper] {
245
+ [class=pb_progress_step_item_step] {
246
+ > div:last-child {
247
+ opacity: 0;
248
+ }
249
+ }
250
+ }
251
+ }
252
+ }
253
+ [class*=pb_progress_step_item_kit] {
254
+ &[class*=_complete] {
255
+ flex-basis: 100%;
256
+ [class=pb_progress_step_item_wrapper] {
257
+ @include pb_progress_step_item_wrapper_flex(column, baseline, auto);
258
+ [class=pb_progress_step_item_connector_second] {
259
+ @include pb_progress_step_line($pb_progress_step_connector_width, $space_md, $primary, 0 0 0 $pb_progress_step_connector_height_from_top);
260
+ }
261
+ [class=pb_progress_step_item_step_wrapper] {
262
+ @include pb_progress_step_item_wrapper_flex(row, flex-start, auto);
263
+ [class=pb_progress_step_item_step] {
264
+ @include pb_progress_step_item_wrapper_flex(column, center, stretch);
265
+ margin-right: 4px;
266
+ [class^=pb_progress_step_item] {
267
+ &[class*=_step_connector_first] {
268
+ display: none;
269
+ }
270
+ &[class*=_step_circle] {
271
+ @include pb_progress_step_circle($primary, $primary, 2px, $primary);
272
+ }
273
+ &[class*=_step_connector_second] {
274
+ @include pb_progress_step_line($pb_progress_step_connector_width, 100%, $primary, 0);
275
+ }
276
+ }
277
+ }
278
+ }
279
+ }
280
+ }
281
+ &[class*=_active] {
282
+ flex-basis: 100%;
283
+ [class=pb_progress_step_item_wrapper] {
284
+ @include pb_progress_step_item_wrapper_flex(column, baseline, auto);
285
+ [class=pb_progress_step_item_connector_second] {
286
+ @include pb_progress_step_line($pb_progress_step_connector_width, $space_md, $border_light, 0 0 0 $pb_progress_step_connector_height_from_top);
287
+ }
288
+ [class=pb_progress_step_item_step_wrapper] {
289
+ @include pb_progress_step_item_wrapper_flex(row, flex-start, auto);
290
+ [class=pb_progress_step_item_step] {
291
+ @include pb_progress_step_item_wrapper_flex(column, center, stretch);
292
+ margin-right: 4px;
293
+ [class^=pb_progress_step_item] {
294
+ &[class*=_step_connector_first] {
295
+ display: none;
296
+ }
297
+ &[class*=_step_circle] {
298
+ @include pb_progress_step_circle($white, $primary, 2px, $white);
299
+ svg {
300
+ display: none;
301
+ }
302
+ }
303
+ &[class*=_step_connector_second] {
304
+ @include pb_progress_step_line($pb_progress_step_connector_width, 100%, $border_light, 0);
305
+ }
306
+ }
307
+ }
308
+ }
309
+ }
310
+ }
311
+ &[class*=_inactive] {
312
+ flex-basis: 100%;
313
+ [class=pb_progress_step_item_wrapper] {
314
+ @include pb_progress_step_item_wrapper_flex(column, baseline, auto);
315
+ [class=pb_progress_step_item_connector_second] {
316
+ @include pb_progress_step_line($pb_progress_step_connector_width, $space_md, $border_light, 0 0 0 $pb_progress_step_connector_height_from_top);
317
+ }
318
+ [class=pb_progress_step_item_step_wrapper] {
319
+ @include pb_progress_step_item_wrapper_flex(row, flex-start, auto);
320
+ [class=pb_progress_step_item_step] {
321
+ @include pb_progress_step_item_wrapper_flex(column, center, stretch);
322
+ margin-right: 4px;
323
+ [class^=pb_progress_step_item] {
324
+ &[class*=_step_connector_first] {
325
+ display: none;
326
+ }
327
+ &[class*=_step_circle] {
328
+ @include pb_progress_step_circle($border_light, $border_light, 2px, $border_light);
329
+ }
330
+ &[class*=_step_connector_second] {
331
+ @include pb_progress_step_line($pb_progress_step_connector_width, 100%, $border_light, 0);
332
+ }
333
+ }
334
+ }
335
+ }
336
+ }
337
+ }
338
+ }
339
+ &[class*=_dark] {
340
+ [class^=pb_progress_step_item_kit] {
341
+ &[class*=_active] {
342
+ [class=pb_progress_step_item_wrapper] {
343
+ [class=pb_progress_step_item_connector_second] {
344
+ @include pb_progress_step_line($pb_progress_step_connector_width, $space_md, $border_dark, 0 0 0 $pb_progress_step_connector_height_from_top);
345
+ }
346
+ [class=pb_progress_step_item_step_wrapper] {
347
+ [class=pb_progress_step_item_step] {
348
+ [class^=pb_progress_step_item] {
349
+ &[class*=_step_circle] {
350
+ @include pb_progress_step_circle(transparent, $primary, 2px, $bg_dark);
351
+ svg {
352
+ display: none;
353
+ }
354
+ }
355
+ &[class*=_step_connector_second] {
356
+ @include pb_progress_step_line($pb_progress_step_connector_width, 100%, $border_dark, 0);
357
+ }
358
+ }
359
+ }
360
+ }
361
+ }
362
+ }
363
+ &[class*=_inactive] {
364
+ [class=pb_progress_step_item_wrapper] {
365
+ [class=pb_progress_step_item_connector_second] {
366
+ @include pb_progress_step_line($pb_progress_step_connector_width, $space_md, $border_dark, 0 0 0 $pb_progress_step_connector_height_from_top);
367
+ }
368
+ [class=pb_progress_step_item_step_wrapper] {
369
+ [class=pb_progress_step_item_step] {
370
+ [class^=pb_progress_step_item] {
371
+ &[class*=_step_circle] {
372
+ @include pb_progress_step_circle($border_dark, $border_dark, 0px, $border_dark);
373
+ svg {
374
+ display: none;
375
+ }
376
+ }
377
+ &[class*=_step_connector_second] {
378
+ @include pb_progress_step_line($pb_progress_step_connector_width, 100%, $border_dark, 0);
379
+ }
380
+ }
381
+ }
382
+ }
383
+ }
384
+ }
385
+ }
386
+ }
387
+ }
388
+ }
@@ -0,0 +1,23 @@
1
+ <%= content_tag(:div,
2
+ id: object.id,
3
+ data: object.data,
4
+ class: object.classname) do %>
5
+
6
+ <div class="pb_progress_step_item_wrapper">
7
+ <div class="pb_progress_step_item_connector_first"></div>
8
+ <div class="pb_progress_step_item_step_wrapper">
9
+ <div class="pb_progress_step_item_step">
10
+ <div class="pb_progress_step_item_step_connector_first"></div>
11
+ <div class="pb_progress_step_item_step_circle">
12
+ <%= pb_rails("icon", props: { icon: "check", size: "xs" }) %>
13
+ </div>
14
+ <div class="pb_progress_step_item_step_connector_second"></div>
15
+ </div>
16
+ <div>
17
+ <%= capture(&object.children) %>
18
+ </div>
19
+ </div>
20
+ <div class="pb_progress_step_item_connector_second"></div>
21
+ </div>
22
+
23
+ <% end %>
@@ -0,0 +1,44 @@
1
+ /* @flow */
2
+
3
+ import React from 'react'
4
+ import classnames from 'classnames'
5
+ import { buildCss } from '../utilities/props'
6
+ import { Icon } from '..'
7
+
8
+ type ProgressStepItemProps = {
9
+ className?: String,
10
+ status?: 'complete' | 'active' | 'inactive',
11
+ children?: React.Node,
12
+ }
13
+
14
+ const ProgressStepItem = ({
15
+ className,
16
+ status = 'inactive',
17
+ children,
18
+ }: ProgressStepItemProps) => {
19
+ const progressStepItem = buildCss('pb_progress_step_item_kit', status)
20
+
21
+ return (
22
+ <div className={classnames(progressStepItem, className)}>
23
+ <div className="pb_progress_step_item_wrapper">
24
+ <div className="pb_progress_step_item_connector_first" />
25
+ <div className="pb_progress_step_item_step_wrapper">
26
+ <div className="pb_progress_step_item_step">
27
+ <div className="pb_progress_step_item_step_connector_first" />
28
+ <div className="pb_progress_step_item_step_circle">
29
+ <Icon
30
+ icon="check"
31
+ />
32
+ </div>
33
+ <div className="pb_progress_step_item_step_connector_second" />
34
+ </div>
35
+ <div>
36
+ {children}
37
+ </div>
38
+ </div>
39
+ <div className="pb_progress_step_item_connector_second" />
40
+ </div>
41
+ </div>
42
+ )
43
+ }
44
+ export default ProgressStepItem
@@ -0,0 +1 @@
1
+ Progress step kit is used to show the progress of a process. There are three types of steps in this kit: completed, active, and inactive. Completed steps are indicated by a solid, blue circle (with or without an icon). The current, or active, step is indicated by an outlined blue circle. The inactive, or future, step is indicated by a solid gray circle.
@@ -0,0 +1,8 @@
1
+ <%= pb_rails("progress_step", props: {orientation: "horizontal", icon: true, dark: true}) do %>
2
+ <%= pb_rails("progress_step/progress_step_item", props: {status: "complete"}) do %>
3
+ <% end %>
4
+ <%= pb_rails("progress_step/progress_step_item", props: {status: "active"}) do %>
5
+ <% end %>
6
+ <%= pb_rails("progress_step/progress_step_item", props: {status: "inactive"}) do %>
7
+ <% end %>
8
+ <% end %>
@@ -0,0 +1,18 @@
1
+ import React from 'react'
2
+ import ProgressStep from '../_progress_step.jsx'
3
+ import ProgressStepItem from '../_progress_step_item.jsx'
4
+
5
+ const ProgressStepDark = () => (
6
+ <div>
7
+ <ProgressStep
8
+ dark
9
+ icon
10
+ >
11
+ <ProgressStepItem status="complete" />
12
+ <ProgressStepItem status="active" />
13
+ <ProgressStepItem status="inactive" />
14
+ </ProgressStep>
15
+ </div>
16
+ )
17
+
18
+ export default ProgressStepDark
@@ -0,0 +1,33 @@
1
+ <%= pb_rails("progress_step", props: {orientation: "horizontal", icon: true}) do %>
2
+ <%= pb_rails("progress_step/progress_step_item", props: {status: "complete"}) do %>
3
+ <% end %>
4
+ <%= pb_rails("progress_step/progress_step_item", props: {status: "active"}) do %>
5
+ <% end %>
6
+ <%= pb_rails("progress_step/progress_step_item", props: {status: "inactive"}) do %>
7
+ <% end %>
8
+ <% end %>
9
+
10
+ <br /><br />
11
+
12
+ <%= pb_rails("progress_step", props: {orientation: "horizontal"}) do %>
13
+ <%= pb_rails("progress_step/progress_step_item", props: {status: "complete"}) do %>
14
+ <% end %>
15
+ <%= pb_rails("progress_step/progress_step_item", props: {status: "active"}) do %>
16
+ <% end %>
17
+ <%= pb_rails("progress_step/progress_step_item", props: {status: "inactive"}) do %>
18
+ <% end %>
19
+ <% end %>
20
+
21
+ <br /><br />
22
+
23
+ <%= pb_rails("progress_step", props: {orientation: "horizontal"}) do %>
24
+ <%= pb_rails("progress_step/progress_step_item", props: {status: "complete"}) do %>
25
+ Child
26
+ <% end %>
27
+ <%= pb_rails("progress_step/progress_step_item", props: {status: "active"}) do %>
28
+ Child
29
+ <% end %>
30
+ <%= pb_rails("progress_step/progress_step_item", props: {status: "inactive"}) do %>
31
+ Child
32
+ <% end %>
33
+ <% end %>