playbook_ui 14.10.0.pre.alpha.PLAY1774timelinelabelstepspacing5274 → 14.10.0.pre.alpha.PLAY1774timelinelabelstepspacing5314
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/_playbook.scss +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_subrow_headers.html.erb +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_subrow_headers.md +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/index.js +53 -8
- data/app/pb_kits/playbook/pb_advanced_table/table_body.rb +23 -18
- data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +6 -0
- data/app/pb_kits/playbook/pb_advanced_table/table_subrow_header.html.erb +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/table_subrow_header.rb +6 -4
- data/app/pb_kits/playbook/pb_file_upload/_file_upload.tsx +24 -15
- data/app/pb_kits/playbook/pb_file_upload/docs/_file_upload_accept.jsx +3 -1
- data/app/pb_kits/playbook/pb_file_upload/docs/_file_upload_custom_description.jsx +4 -1
- data/app/pb_kits/playbook/pb_file_upload/docs/_file_upload_max_size.jsx +1 -1
- data/app/pb_kits/playbook/pb_table/_table.tsx +8 -1
- data/app/pb_kits/playbook/pb_table/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_table/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_mask.jsx +18 -0
- data/app/pb_kits/playbook/pb_text_input/inputMask.ts +22 -1
- data/app/pb_kits/playbook/pb_text_input/text_input.test.js +80 -0
- data/app/pb_kits/playbook/pb_timeline/_timeline.scss +14 -13
- data/app/pb_kits/playbook/pb_timeline/_timeline.tsx +5 -5
- data/app/pb_kits/playbook/pb_timeline/docs/_timeline_with_gap.html.erb +4 -5
- data/app/pb_kits/playbook/pb_timeline/docs/_timeline_with_gap.jsx +4 -4
- data/app/pb_kits/playbook/pb_timeline/docs/_timeline_with_gap.md +1 -1
- data/app/pb_kits/playbook/pb_timeline/timeline.rb +6 -6
- data/app/pb_kits/playbook/utilities/_gap.scss +29 -0
- data/app/pb_kits/playbook/utilities/globalPropNames.mjs +1 -0
- data/app/pb_kits/playbook/utilities/globalProps.ts +18 -9
- data/dist/chunks/_typeahead-C2iCBqxQ.js +36 -0
- data/dist/chunks/_weekday_stacked-CWnbnW7m.js +45 -0
- data/dist/chunks/lazysizes-B7xYodB-.js +1 -0
- data/dist/chunks/vendor.js +1 -1
- data/dist/playbook-doc.js +1 -1
- data/dist/playbook-rails-react-bindings.js +1 -1
- data/dist/playbook-rails.js +1 -1
- data/dist/playbook.css +1 -1
- data/lib/playbook/classnames.rb +1 -0
- data/lib/playbook/spacing.rb +21 -0
- data/lib/playbook/version.rb +1 -1
- metadata +6 -5
- data/dist/chunks/_typeahead-gJLWiR0r.js +0 -22
- data/dist/chunks/_weekday_stacked-BT8jIMPK.js +0 -45
- data/dist/chunks/lazysizes-DHz07jlL.js +0 -1
@@ -68,10 +68,11 @@ $gap_lg: $height_from_top + $space_lg;
|
|
68
68
|
flex-basis: 100%;
|
69
69
|
[class=pb_timeline_item_step] {
|
70
70
|
@include flex_wrapper(row);
|
71
|
+
align-items: center;
|
71
72
|
margin-top: $space_xs;
|
72
73
|
margin-bottom: $space_xs;
|
73
74
|
[class=pb_timeline_item_connector] {
|
74
|
-
@include pb_timeline_line_solid($connector_width, $connector_width,
|
75
|
+
@include pb_timeline_line_solid($connector_width, $connector_width, 0 $icon_margin 0 $icon_margin );
|
75
76
|
}
|
76
77
|
}
|
77
78
|
}
|
@@ -79,18 +80,14 @@ $gap_lg: $height_from_top + $space_lg;
|
|
79
80
|
flex-basis: 100%;
|
80
81
|
[class=pb_timeline_item_step] {
|
81
82
|
@include flex_wrapper(row);
|
83
|
+
align-items: center;
|
82
84
|
margin-top: $space_xs;
|
83
85
|
margin-bottom: $space_xs;
|
84
86
|
[class=pb_timeline_item_connector] {
|
85
|
-
@include pb_timeline_line_dotted_horizontal($connector_width, $connector_width,
|
87
|
+
@include pb_timeline_line_dotted_horizontal($connector_width, $connector_width, 0 $icon_margin 0 $icon_margin );
|
86
88
|
}
|
87
89
|
}
|
88
90
|
}
|
89
|
-
[class=pb_timeline_item_step] {
|
90
|
-
> :first-child:not([class^=pb_icon_circle_kit]) {
|
91
|
-
margin-top: $space_xs;
|
92
|
-
}
|
93
|
-
}
|
94
91
|
}
|
95
92
|
&[class*=_with_date] {
|
96
93
|
@include flex_wrapper(row);
|
@@ -133,7 +130,7 @@ $gap_lg: $height_from_top + $space_lg;
|
|
133
130
|
margin-top: $space_xs;
|
134
131
|
margin-bottom: $space_xs;
|
135
132
|
[class=pb_timeline_item_connector] {
|
136
|
-
@include pb_timeline_line_solid($connector_width, $connector_width,
|
133
|
+
@include pb_timeline_line_solid($connector_width, $connector_width, 0 $icon_margin 0 $icon_margin );
|
137
134
|
}
|
138
135
|
}
|
139
136
|
}
|
@@ -157,7 +154,7 @@ $gap_lg: $height_from_top + $space_lg;
|
|
157
154
|
margin-top: $space_xs;
|
158
155
|
margin-bottom: $space_xs;
|
159
156
|
[class=pb_timeline_item_connector] {
|
160
|
-
@include pb_timeline_line_dotted_horizontal($connector_width, $connector_width,
|
157
|
+
@include pb_timeline_line_dotted_horizontal($connector_width, $connector_width, 0 $icon_margin 0 $icon_margin );
|
161
158
|
}
|
162
159
|
}
|
163
160
|
}
|
@@ -181,11 +178,12 @@ $gap_lg: $height_from_top + $space_lg;
|
|
181
178
|
flex-basis: 100%;
|
182
179
|
[class=pb_timeline_item_step] {
|
183
180
|
@include flex_wrapper(column);
|
181
|
+
align-items: center;
|
184
182
|
align-content: flex-start;
|
185
183
|
margin-right: $space_sm;
|
186
184
|
margin-left: $space_sm;
|
187
185
|
[class=pb_timeline_item_connector] {
|
188
|
-
@include pb_timeline_line_solid($connector_width, $connector_width, $icon_margin 0 $icon_margin
|
186
|
+
@include pb_timeline_line_solid($connector_width, $connector_width, $icon_margin 0 $icon_margin 0);
|
189
187
|
}
|
190
188
|
}
|
191
189
|
[class=pb_timeline_item_left_block] {
|
@@ -201,10 +199,11 @@ $gap_lg: $height_from_top + $space_lg;
|
|
201
199
|
flex-basis: 100%;
|
202
200
|
[class=pb_timeline_item_step] {
|
203
201
|
@include flex_wrapper(column);
|
202
|
+
align-items: center;
|
204
203
|
margin-right: $space_sm;
|
205
204
|
margin-left: $space_sm;
|
206
205
|
[class=pb_timeline_item_connector] {
|
207
|
-
@include pb_timeline_line_dotted_vertical($connector_width, $connector_width, $icon_margin 0 $icon_margin
|
206
|
+
@include pb_timeline_line_dotted_vertical($connector_width, $connector_width, $icon_margin 0 $icon_margin 0);
|
208
207
|
}
|
209
208
|
}
|
210
209
|
[class=pb_timeline_item_left_block] {
|
@@ -234,11 +233,12 @@ $gap_lg: $height_from_top + $space_lg;
|
|
234
233
|
flex-basis: 100%;
|
235
234
|
[class=pb_timeline_item_step] {
|
236
235
|
@include flex_wrapper(column);
|
236
|
+
align-items: center;
|
237
237
|
align-content: flex-start;
|
238
238
|
margin-right: $space_sm;
|
239
239
|
margin-left: $space_sm;
|
240
240
|
[class=pb_timeline_item_connector] {
|
241
|
-
@include pb_timeline_line_solid($connector_width, $connector_width, $icon_margin 0 $icon_margin
|
241
|
+
@include pb_timeline_line_solid($connector_width, $connector_width, $icon_margin 0 $icon_margin 0);
|
242
242
|
}
|
243
243
|
}
|
244
244
|
[class=pb_timeline_item_left_block] {
|
@@ -254,10 +254,11 @@ $gap_lg: $height_from_top + $space_lg;
|
|
254
254
|
flex-basis: 100%;
|
255
255
|
[class=pb_timeline_item_step] {
|
256
256
|
@include flex_wrapper(column);
|
257
|
+
align-items: center;
|
257
258
|
margin-right: $space_sm;
|
258
259
|
margin-left: $space_sm;
|
259
260
|
[class=pb_timeline_item_connector] {
|
260
|
-
@include pb_timeline_line_dotted_vertical($connector_width, $connector_width, $icon_margin 0 $icon_margin
|
261
|
+
@include pb_timeline_line_dotted_vertical($connector_width, $connector_width, $icon_margin 0 $icon_margin 0);
|
261
262
|
}
|
262
263
|
}
|
263
264
|
[class=pb_timeline_item_left_block] {
|
@@ -20,7 +20,7 @@ type TimelineProps = {
|
|
20
20
|
id?: string,
|
21
21
|
orientation?: string,
|
22
22
|
showDate?: boolean,
|
23
|
-
|
23
|
+
itemGap?: 'xs' | 'sm' | 'md' | 'lg' | 'none',
|
24
24
|
} & GlobalProps
|
25
25
|
|
26
26
|
const Timeline = ({
|
@@ -32,15 +32,15 @@ const Timeline = ({
|
|
32
32
|
id,
|
33
33
|
orientation = 'horizontal',
|
34
34
|
showDate = false,
|
35
|
-
|
35
|
+
itemGap = 'none',
|
36
36
|
...props
|
37
37
|
}: TimelineProps): React.ReactElement => {
|
38
38
|
const ariaProps = buildAriaProps(aria)
|
39
39
|
const dataProps = buildDataProps(data)
|
40
40
|
const htmlProps = buildHtmlProps(htmlOptions)
|
41
41
|
const dateStyle = showDate === true ? '_with_date' : ''
|
42
|
-
const
|
43
|
-
const timelineCss = buildCss('pb_timeline_kit', `${orientation}`, dateStyle,
|
42
|
+
const itemGapStyle = itemGap === 'none' ? '' : `gap_${itemGap}`
|
43
|
+
const timelineCss = buildCss('pb_timeline_kit', `${orientation}`, dateStyle, itemGapStyle)
|
44
44
|
|
45
45
|
return (
|
46
46
|
<div
|
@@ -60,4 +60,4 @@ Timeline.Step = TimelineStep
|
|
60
60
|
Timeline.Label = TimelineLabel
|
61
61
|
Timeline.Detail = TimelineDetail
|
62
62
|
|
63
|
-
export default Timeline
|
63
|
+
export default Timeline
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<%= pb_rails("flex", props: { justify: "evenly" }) do %>
|
2
2
|
<%= pb_rails("flex/flex_item") do %>
|
3
|
-
<%= pb_rails("timeline", props: {orientation: "vertical",
|
3
|
+
<%= pb_rails("timeline", props: {orientation: "vertical", item_gap: "xs"}) do %>
|
4
4
|
<%= pb_rails("timeline/item", props: {icon: "user", icon_color: "royal"}) do %>
|
5
5
|
<%= pb_rails("body", props: {
|
6
6
|
text: "Conversation started",
|
@@ -23,7 +23,7 @@
|
|
23
23
|
<% end %>
|
24
24
|
|
25
25
|
<%= pb_rails("flex/flex_item") do %>
|
26
|
-
<%= pb_rails("timeline", props: {orientation: "vertical",
|
26
|
+
<%= pb_rails("timeline", props: {orientation: "vertical", item_gap: "sm"}) do %>
|
27
27
|
<%= pb_rails("timeline/item", props: {icon: "user", icon_color: "royal"}) do %>
|
28
28
|
<%= pb_rails("body", props: {
|
29
29
|
text: "Conversation started",
|
@@ -46,7 +46,7 @@
|
|
46
46
|
<% end %>
|
47
47
|
|
48
48
|
<%= pb_rails("flex/flex_item") do %>
|
49
|
-
<%= pb_rails("timeline", props: {orientation: "vertical",
|
49
|
+
<%= pb_rails("timeline", props: {orientation: "vertical", item_gap: "md"}) do %>
|
50
50
|
<%= pb_rails("timeline/item", props: {icon: "user", icon_color: "royal"}) do %>
|
51
51
|
<%= pb_rails("body", props: {
|
52
52
|
text: "Conversation started",
|
@@ -69,7 +69,7 @@
|
|
69
69
|
<% end %>
|
70
70
|
|
71
71
|
<%= pb_rails("flex/flex_item") do %>
|
72
|
-
<%= pb_rails("timeline", props: {orientation: "vertical",
|
72
|
+
<%= pb_rails("timeline", props: {orientation: "vertical", item_gap: "lg"}) do %>
|
73
73
|
<%= pb_rails("timeline/item", props: {icon: "user", icon_color: "royal"}) do %>
|
74
74
|
<%= pb_rails("body", props: {
|
75
75
|
text: "Conversation started",
|
@@ -91,4 +91,3 @@
|
|
91
91
|
<% end %>
|
92
92
|
<% end %>
|
93
93
|
<% end %>
|
94
|
-
|
@@ -10,7 +10,7 @@ const TimelineWithGap = (props) => (
|
|
10
10
|
<Flex justify="evenly">
|
11
11
|
<FlexItem>
|
12
12
|
<Timeline
|
13
|
-
|
13
|
+
itemGap="xs"
|
14
14
|
orientation="vertical"
|
15
15
|
>
|
16
16
|
<Timeline.Item
|
@@ -51,7 +51,7 @@ const TimelineWithGap = (props) => (
|
|
51
51
|
</FlexItem>
|
52
52
|
<FlexItem>
|
53
53
|
<Timeline
|
54
|
-
|
54
|
+
itemGap="sm"
|
55
55
|
orientation="vertical"
|
56
56
|
>
|
57
57
|
<Timeline.Item
|
@@ -92,7 +92,7 @@ const TimelineWithGap = (props) => (
|
|
92
92
|
</FlexItem>
|
93
93
|
<FlexItem>
|
94
94
|
<Timeline
|
95
|
-
|
95
|
+
itemGap="md"
|
96
96
|
orientation="vertical"
|
97
97
|
>
|
98
98
|
<Timeline.Item
|
@@ -134,7 +134,7 @@ const TimelineWithGap = (props) => (
|
|
134
134
|
</FlexItem>
|
135
135
|
<FlexItem>
|
136
136
|
<Timeline
|
137
|
-
|
137
|
+
itemGap="lg"
|
138
138
|
orientation="vertical"
|
139
139
|
>
|
140
140
|
<Timeline.Item
|
@@ -1 +1 @@
|
|
1
|
-
Use the optional `
|
1
|
+
Use the optional `itemGap` prop to render the timeline kit with adjusted spacing between nodes. The `itemGap` prop will only work when utilized with a vertical timeline. Horizontal timelines will show no difference in spacing.
|
@@ -8,15 +8,15 @@ module Playbook
|
|
8
8
|
default: "horizontal"
|
9
9
|
prop :show_date, type: Playbook::Props::Boolean,
|
10
10
|
default: false
|
11
|
-
prop :
|
12
|
-
|
13
|
-
|
11
|
+
prop :item_gap, type: Playbook::Props::Enum,
|
12
|
+
values: %w[xs sm md lg none],
|
13
|
+
default: "none"
|
14
14
|
|
15
15
|
def classname
|
16
16
|
generate_classname("pb_timeline_kit",
|
17
17
|
orientation,
|
18
18
|
date_class,
|
19
|
-
|
19
|
+
item_gap_class)
|
20
20
|
end
|
21
21
|
|
22
22
|
private
|
@@ -25,8 +25,8 @@ module Playbook
|
|
25
25
|
show_date ? "with_date" : nil
|
26
26
|
end
|
27
27
|
|
28
|
-
def
|
29
|
-
|
28
|
+
def item_gap_class
|
29
|
+
item_gap == "none" ? nil : "gap_#{item_gap}"
|
30
30
|
end
|
31
31
|
end
|
32
32
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
@import "spacing";
|
2
|
+
|
3
|
+
.gap_none {
|
4
|
+
gap: 0;
|
5
|
+
}
|
6
|
+
|
7
|
+
.gap_xxs {
|
8
|
+
gap: $space_xxs;
|
9
|
+
}
|
10
|
+
|
11
|
+
.gap_xs {
|
12
|
+
gap: $space_xs;
|
13
|
+
}
|
14
|
+
|
15
|
+
.gap_sm {
|
16
|
+
gap: $space_sm;
|
17
|
+
}
|
18
|
+
|
19
|
+
.gap_md {
|
20
|
+
gap: $space_md;
|
21
|
+
}
|
22
|
+
|
23
|
+
.gap_lg {
|
24
|
+
gap: $space_lg;
|
25
|
+
}
|
26
|
+
|
27
|
+
.gap_xl {
|
28
|
+
gap: $space_xl;
|
29
|
+
}
|
@@ -108,6 +108,10 @@ type MinWidth = {
|
|
108
108
|
minWidth?: string,
|
109
109
|
}
|
110
110
|
|
111
|
+
type Gap = {
|
112
|
+
gap?: string,
|
113
|
+
}
|
114
|
+
|
111
115
|
type NumberSpacing = {
|
112
116
|
numberSpacing?: "tabular",
|
113
117
|
}
|
@@ -196,7 +200,7 @@ type MinHeight = {
|
|
196
200
|
export type GlobalProps = AlignContent & AlignItems & AlignSelf &
|
197
201
|
BorderRadius & Cursor & Dark & Display & DisplaySizes & Flex & FlexDirection &
|
198
202
|
FlexGrow & FlexShrink & FlexWrap & JustifyContent & JustifySelf &
|
199
|
-
LineHeight & Margin & Width & MinWidth & MaxWidth & NumberSpacing & Order & Overflow & Padding &
|
203
|
+
LineHeight & Margin & Width & MinWidth & MaxWidth & Gap & NumberSpacing & Order & Overflow & Padding &
|
200
204
|
Position & Shadow & TextAlign & Truncate & VerticalAlign & ZIndex & { hover?: string } & Top & Right & Bottom & Left & Height & MaxHeight & MinHeight;
|
201
205
|
|
202
206
|
const getResponsivePropClasses = (prop: {[key: string]: string}, classPrefix: string) => {
|
@@ -372,6 +376,11 @@ const PROP_CATEGORIES: {[key:string]: (props: {[key: string]: any}) => string} =
|
|
372
376
|
css += maxWidth ? `max_width_${filterClassName(maxWidth)} ` : ''
|
373
377
|
return css.trimEnd()
|
374
378
|
},
|
379
|
+
gapProps: ({ gap }: Gap) => {
|
380
|
+
let css = ''
|
381
|
+
css += gap ? `gap_${gap} ` : ''
|
382
|
+
return css.trimEnd()
|
383
|
+
},
|
375
384
|
minHeightProps: ({ minHeight }: MinHeight) => {
|
376
385
|
const heightValues = ["auto", "xs", "sm", "md", "lg", "xl", "xxl", "xxxl"]
|
377
386
|
if (heightValues.includes(minHeight)) {
|
@@ -530,15 +539,15 @@ const PROP_CATEGORIES: {[key:string]: (props: {[key: string]: any}) => string} =
|
|
530
539
|
},
|
531
540
|
|
532
541
|
|
533
|
-
topProps: ({top}) => getPositioningPropsClasses('top', top),
|
542
|
+
topProps: ({top}) => getPositioningPropsClasses('top', top),
|
543
|
+
|
544
|
+
rightProps: ({right}) => getPositioningPropsClasses('right', right),
|
534
545
|
|
535
|
-
|
546
|
+
bottomProps:({bottom}) => getPositioningPropsClasses('bottom', bottom),
|
536
547
|
|
537
|
-
bottomProps:({bottom}) => getPositioningPropsClasses('bottom', bottom),
|
538
|
-
|
539
548
|
leftProps: ({left}) => getPositioningPropsClasses('left', left),
|
540
|
-
|
541
|
-
|
549
|
+
|
550
|
+
|
542
551
|
textAlignProps: ({ textAlign }: TextAlign) => {
|
543
552
|
if (typeof textAlign === 'object') {
|
544
553
|
return getResponsivePropClasses(textAlign, 'text_align')
|
@@ -558,7 +567,7 @@ const PROP_CATEGORIES: {[key:string]: (props: {[key: string]: any}) => string} =
|
|
558
567
|
|
559
568
|
const PROP_INLINE_CATEGORIES: {[key:string]: (props: {[key: string]: any}) => {[key: string]: any}} = {
|
560
569
|
heightProps: ({ height }: Height) => {
|
561
|
-
return height ? { height } : {};
|
570
|
+
return height ? { height } : {};
|
562
571
|
},
|
563
572
|
|
564
573
|
maxHeightProps: ({ maxHeight }: MaxHeight) => {
|
@@ -566,7 +575,7 @@ const PROP_INLINE_CATEGORIES: {[key:string]: (props: {[key: string]: any}) => {[
|
|
566
575
|
},
|
567
576
|
|
568
577
|
minHeightProps: ({ minHeight }: MinHeight) => {
|
569
|
-
return minHeight ? { minHeight } : {};
|
578
|
+
return minHeight ? { minHeight } : {};
|
570
579
|
},
|
571
580
|
}
|
572
581
|
|