playbook_ui 14.6.2.pre.alpha.PLAY1607dependencydisplayymlupdate4271 → 14.6.2.pre.alpha.PLAY1613darkdatetimecolors4432
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 +3 -2
- data/app/pb_kits/playbook/pb_advanced_table/Components/CustomCell.tsx +8 -1
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +21 -28
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +37 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_custom_cell.jsx +13 -2
- data/app/pb_kits/playbook/pb_card/_card.tsx +11 -4
- data/app/pb_kits/playbook/pb_card/_card_mixin.scss +1 -2
- data/app/pb_kits/playbook/pb_currency/_currency.tsx +16 -6
- data/app/pb_kits/playbook/pb_currency/currency.rb +38 -11
- data/app/pb_kits/playbook/pb_currency/currency.test.js +35 -0
- data/app/pb_kits/playbook/pb_currency/docs/_currency_comma_separator.html.erb +7 -0
- data/app/pb_kits/playbook/pb_currency/docs/_currency_comma_separator.jsx +18 -0
- data/app/pb_kits/playbook/pb_currency/docs/_currency_comma_separator.md +3 -0
- data/app/pb_kits/playbook/pb_currency/docs/example.yml +3 -1
- data/app/pb_kits/playbook/pb_currency/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_date/_date.scss +3 -0
- data/app/pb_kits/playbook/pb_dialog/_dialog.tsx +5 -1
- data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +8 -7
- data/app/pb_kits/playbook/pb_flex/_flex.tsx +3 -1
- data/app/pb_kits/playbook/pb_flex/_flex_item.tsx +8 -2
- data/app/pb_kits/playbook/pb_flex/flex_item.html.erb +3 -6
- data/app/pb_kits/playbook/pb_flex/flex_item.rb +7 -2
- data/app/pb_kits/playbook/pb_form_pill/_form_pill.scss +6 -2
- data/app/pb_kits/playbook/pb_form_pill/_form_pill.tsx +30 -26
- data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_truncated_text.html.erb +24 -1
- data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_truncated_text.jsx +25 -2
- data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_truncated_text_rails.md +3 -0
- data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_truncated_text_react.md +1 -0
- data/app/pb_kits/playbook/pb_form_pill/form_pill.html.erb +46 -8
- data/app/pb_kits/playbook/pb_link/_link.scss +66 -0
- data/app/pb_kits/playbook/pb_link/_link.tsx +107 -0
- data/app/pb_kits/playbook/pb_link/docs/_link_color.html.erb +30 -0
- data/app/pb_kits/playbook/pb_link/docs/_link_color.jsx +40 -0
- data/app/pb_kits/playbook/pb_link/docs/_link_disabled.html.erb +5 -0
- data/app/pb_kits/playbook/pb_link/docs/_link_disabled.jsx +15 -0
- data/app/pb_kits/playbook/pb_link/docs/_link_icon.html.erb +15 -0
- data/app/pb_kits/playbook/pb_link/docs/_link_icon.jsx +25 -0
- data/app/pb_kits/playbook/pb_link/docs/_link_tag.html.erb +35 -0
- data/app/pb_kits/playbook/pb_link/docs/_link_tag.jsx +45 -0
- data/app/pb_kits/playbook/pb_link/docs/_link_underline.html.erb +5 -0
- data/app/pb_kits/playbook/pb_link/docs/_link_underline.jsx +15 -0
- data/app/pb_kits/playbook/pb_link/docs/example.yml +16 -0
- data/app/pb_kits/playbook/pb_link/docs/index.js +5 -0
- data/app/pb_kits/playbook/pb_link/link.html.erb +21 -0
- data/app/pb_kits/playbook/pb_link/link.rb +44 -0
- data/app/pb_kits/playbook/pb_link/link.test.jsx +92 -0
- data/app/pb_kits/playbook/pb_popover/_popover.tsx +1 -1
- data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +67 -1
- data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.tsx +1 -0
- data/app/pb_kits/playbook/pb_selectable_card/selectable_card.html.erb +1 -1
- data/app/pb_kits/playbook/pb_selectable_card/selectable_card.rb +5 -1
- data/app/pb_kits/playbook/pb_skeleton_loading/_skeleton_loading.scss +37 -0
- data/app/pb_kits/playbook/pb_skeleton_loading/_skeleton_loading.tsx +67 -0
- data/app/pb_kits/playbook/pb_skeleton_loading/_skeleton_loading_mixins.scss +40 -0
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_border_radius.jsx +51 -0
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_border_radius.md +1 -0
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_color.jsx +26 -0
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_color.md +1 -0
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_default.html.erb +1 -0
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_default.jsx +11 -0
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_height_width.jsx +59 -0
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_height_width.md +3 -0
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_layout.jsx +20 -0
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_layout.md +3 -0
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/example.yml +13 -0
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/index.js +5 -0
- data/app/pb_kits/playbook/pb_skeleton_loading/skeleton_loading.html.erb +12 -0
- data/app/pb_kits/playbook/pb_skeleton_loading/skeleton_loading.rb +8 -0
- data/app/pb_kits/playbook/pb_skeleton_loading/skeleton_loading.test.jsx +81 -0
- data/app/pb_kits/playbook/pb_timeline/_item.tsx +59 -23
- data/app/pb_kits/playbook/pb_timeline/_timeline.tsx +8 -0
- data/app/pb_kits/playbook/pb_timeline/detail.html.erb +3 -0
- data/app/pb_kits/playbook/pb_timeline/detail.rb +11 -0
- data/app/pb_kits/playbook/pb_timeline/docs/_timeline_with_children.html.erb +43 -0
- data/app/pb_kits/playbook/pb_timeline/docs/_timeline_with_children.jsx +68 -0
- data/app/pb_kits/playbook/pb_timeline/docs/_timeline_with_children.md +2 -0
- data/app/pb_kits/playbook/pb_timeline/docs/example.yml +2 -1
- data/app/pb_kits/playbook/pb_timeline/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_timeline/item.html.erb +17 -21
- data/app/pb_kits/playbook/pb_timeline/item.rb +4 -0
- data/app/pb_kits/playbook/pb_timeline/label.html.erb +12 -0
- data/app/pb_kits/playbook/pb_timeline/label.rb +13 -0
- data/app/pb_kits/playbook/pb_timeline/step.html.erb +14 -0
- data/app/pb_kits/playbook/pb_timeline/step.rb +16 -0
- data/app/pb_kits/playbook/pb_timeline/subcomponents/Detail.tsx +29 -0
- data/app/pb_kits/playbook/pb_timeline/subcomponents/Label.tsx +38 -0
- data/app/pb_kits/playbook/pb_timeline/subcomponents/Step.tsx +42 -0
- data/app/pb_kits/playbook/pb_timeline/subcomponents/index.tsx +3 -0
- data/app/pb_kits/playbook/pb_timeline/timeline.test.js +84 -0
- data/app/pb_kits/playbook/tokens/_typography.scss +35 -0
- data/app/pb_kits/playbook/utilities/_hover.scss +46 -43
- data/app/pb_kits/playbook/utilities/globalPropNames.mjs +4 -0
- data/app/pb_kits/playbook/utilities/globalProps.ts +44 -2
- data/dist/chunks/_typeahead-DhLic2Fe.js +22 -0
- data/dist/chunks/_weekday_stacked-Mx8TYP5I.js +45 -0
- data/dist/chunks/vendor.js +1 -1
- data/dist/menu.yml +6 -315
- 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/hover.rb +4 -1
- data/lib/playbook/kit_base.rb +43 -5
- data/lib/playbook/version.rb +1 -1
- metadata +57 -5
- data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_truncated_text.md +0 -1
- data/dist/chunks/_typeahead-BV_n6U5W.js +0 -22
- data/dist/chunks/_weekday_stacked-Dh3OU4s8.js +0 -45
@@ -0,0 +1,38 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import classnames from 'classnames'
|
3
|
+
import { buildHtmlProps } from '../../utilities/props'
|
4
|
+
import { globalProps, GlobalProps } from "../../utilities/globalProps"
|
5
|
+
import DateStacked from '../../pb_date_stacked/_date_stacked'
|
6
|
+
|
7
|
+
type TimelineLabelProps = {
|
8
|
+
date?: Date,
|
9
|
+
children?: React.ReactNode,
|
10
|
+
className?: string,
|
11
|
+
htmlOptions?: { [key: string]: any },
|
12
|
+
} & GlobalProps
|
13
|
+
|
14
|
+
const TimelineLabel: React.FC<TimelineLabelProps> = ({
|
15
|
+
date,
|
16
|
+
children,
|
17
|
+
className,
|
18
|
+
htmlOptions = {},
|
19
|
+
...props
|
20
|
+
}) => {
|
21
|
+
const htmlProps = buildHtmlProps(htmlOptions)
|
22
|
+
return (
|
23
|
+
<div
|
24
|
+
{...htmlProps}
|
25
|
+
className={classnames('pb_timeline_item_left_block', globalProps(props), className)}
|
26
|
+
>
|
27
|
+
{children}
|
28
|
+
{date && (
|
29
|
+
<DateStacked align="center"
|
30
|
+
date={date}
|
31
|
+
size="sm"
|
32
|
+
/>
|
33
|
+
)}
|
34
|
+
</div>
|
35
|
+
)
|
36
|
+
}
|
37
|
+
|
38
|
+
export default TimelineLabel
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import classnames from 'classnames'
|
3
|
+
import { buildHtmlProps } from '../../utilities/props'
|
4
|
+
import { globalProps, GlobalProps } from "../../utilities/globalProps"
|
5
|
+
import IconCircle from '../../pb_icon_circle/_icon_circle'
|
6
|
+
|
7
|
+
type TimelineStepProps = {
|
8
|
+
icon?: string,
|
9
|
+
iconColor?: 'default' | 'royal' | 'blue' | 'purple' | 'teal' | 'red' | 'yellow' | 'green',
|
10
|
+
children?: React.ReactNode,
|
11
|
+
className?: string,
|
12
|
+
htmlOptions?: { [key: string]: any },
|
13
|
+
} & GlobalProps
|
14
|
+
|
15
|
+
const TimelineStep: React.FC<TimelineStepProps> = ({
|
16
|
+
icon = 'user',
|
17
|
+
iconColor = 'default',
|
18
|
+
children,
|
19
|
+
className,
|
20
|
+
htmlOptions = {},
|
21
|
+
...props
|
22
|
+
}) => {
|
23
|
+
const htmlProps = buildHtmlProps(htmlOptions)
|
24
|
+
return (
|
25
|
+
<div
|
26
|
+
{...htmlProps}
|
27
|
+
className={classnames('pb_timeline_item_step', globalProps(props), className)}
|
28
|
+
>
|
29
|
+
{children ? (
|
30
|
+
children
|
31
|
+
) : (
|
32
|
+
<IconCircle icon={icon}
|
33
|
+
size="xs"
|
34
|
+
variant={iconColor}
|
35
|
+
/>
|
36
|
+
)}
|
37
|
+
<div className="pb_timeline_item_connector" />
|
38
|
+
</div>
|
39
|
+
)
|
40
|
+
}
|
41
|
+
|
42
|
+
export default TimelineStep
|
@@ -2,6 +2,10 @@ import React from 'react'
|
|
2
2
|
import { render, screen } from '../utilities/test-utils'
|
3
3
|
|
4
4
|
import Timeline from './_timeline'
|
5
|
+
import TimelineItem from './_item'
|
6
|
+
import TimelineLabel from './subcomponents/Label'
|
7
|
+
import TimelineStep from './subcomponents/Step'
|
8
|
+
import TimelineDetail from './subcomponents/Detail'
|
5
9
|
import TitleDetail from '../pb_title_detail/_title_detail'
|
6
10
|
|
7
11
|
const testId = 'timeline'
|
@@ -43,18 +47,91 @@ const TimelineDefault = (props) => (
|
|
43
47
|
</>
|
44
48
|
)
|
45
49
|
|
50
|
+
const TimelineWithChildren = (props) => (
|
51
|
+
<>
|
52
|
+
<Timeline
|
53
|
+
className={className}
|
54
|
+
data={{ testid: testId }}
|
55
|
+
orientation="horizontal"
|
56
|
+
showDate
|
57
|
+
{...props}
|
58
|
+
>
|
59
|
+
<TimelineItem lineStyle="solid"
|
60
|
+
{...props}
|
61
|
+
>
|
62
|
+
<TimelineLabel date={new Date()} />
|
63
|
+
<TimelineStep icon="user"
|
64
|
+
iconColor="royal"
|
65
|
+
/>
|
66
|
+
<TimelineDetail>
|
67
|
+
<TitleDetail
|
68
|
+
detail="37-27 74th Street"
|
69
|
+
title="Jackson Heights"
|
70
|
+
{...props}
|
71
|
+
/>
|
72
|
+
</TimelineDetail>
|
73
|
+
</TimelineItem>
|
74
|
+
|
75
|
+
<TimelineItem lineStyle="dotted"
|
76
|
+
{...props}
|
77
|
+
>
|
78
|
+
<TimelineStep icon="check"
|
79
|
+
iconColor="teal"
|
80
|
+
/>
|
81
|
+
<TimelineDetail>
|
82
|
+
<TitleDetail
|
83
|
+
detail="81 Gate St Brooklyn"
|
84
|
+
title="Greenpoint"
|
85
|
+
{...props}
|
86
|
+
/>
|
87
|
+
</TimelineDetail>
|
88
|
+
</TimelineItem>
|
89
|
+
|
90
|
+
<TimelineItem lineStyle="solid"
|
91
|
+
{...props}
|
92
|
+
>
|
93
|
+
<TimelineLabel
|
94
|
+
date={new Date(new Date().setDate(new Date().getDate() + 1))}
|
95
|
+
/>
|
96
|
+
<TimelineStep icon="map-marker-alt"
|
97
|
+
iconColor="purple"
|
98
|
+
/>
|
99
|
+
<TimelineDetail>
|
100
|
+
<TitleDetail
|
101
|
+
detail="72 E St Astoria"
|
102
|
+
title="Society Hill"
|
103
|
+
{...props}
|
104
|
+
/>
|
105
|
+
</TimelineDetail>
|
106
|
+
</TimelineItem>
|
107
|
+
</Timeline>
|
108
|
+
</>
|
109
|
+
)
|
110
|
+
|
46
111
|
test('should pass data prop', () => {
|
47
112
|
render(<TimelineDefault />)
|
48
113
|
const kit = screen.getByTestId(testId)
|
49
114
|
expect(kit).toBeInTheDocument()
|
50
115
|
})
|
51
116
|
|
117
|
+
test('should pass data prop using children', () => {
|
118
|
+
render(<TimelineWithChildren />)
|
119
|
+
const kit = screen.getByTestId(testId)
|
120
|
+
expect(kit).toBeInTheDocument()
|
121
|
+
})
|
122
|
+
|
52
123
|
test('should pass className prop', () => {
|
53
124
|
render(<TimelineDefault />)
|
54
125
|
const kit = screen.getByTestId(testId)
|
55
126
|
expect(kit).toHaveClass(className)
|
56
127
|
})
|
57
128
|
|
129
|
+
test('should pass className prop with children', () => {
|
130
|
+
render(<TimelineWithChildren />)
|
131
|
+
const kit = screen.getByTestId(testId)
|
132
|
+
expect(kit).toHaveClass(className)
|
133
|
+
})
|
134
|
+
|
58
135
|
test('should pass aria prop', () => {
|
59
136
|
render(<TimelineDefault />)
|
60
137
|
const kit = screen.getByTestId(testId)
|
@@ -86,3 +163,10 @@ test('should pass showDate prop', () => {
|
|
86
163
|
const kit = screen.getByTestId(testId)
|
87
164
|
expect(kit).toHaveClass('pb_timeline_kit__horizontal__with_date')
|
88
165
|
})
|
166
|
+
|
167
|
+
test('should pass showDate prop with Children', () => {
|
168
|
+
const props = { showDate: true }
|
169
|
+
render(<TimelineWithChildren {...props} />)
|
170
|
+
const kit = screen.getByTestId(testId)
|
171
|
+
expect(kit).toHaveClass('pb_timeline_kit__horizontal__with_date')
|
172
|
+
})
|
@@ -1,3 +1,5 @@
|
|
1
|
+
@import "../tokens/colors";
|
2
|
+
|
1
3
|
$font_family_base: "Power Centra", "Helvetica Neue", Helvetica, Arial, sans_serif !default;
|
2
4
|
|
3
5
|
/* CLEAN UP AND REMOVE */
|
@@ -51,3 +53,36 @@ $boldest: 700 !default;
|
|
51
53
|
$bolder: 700 !default;
|
52
54
|
$light: 300 !default;
|
53
55
|
$lighter: 300 !default;
|
56
|
+
|
57
|
+
/* Link Colors */
|
58
|
+
$pb_link_colors: (
|
59
|
+
default: $primary_action,
|
60
|
+
body: $text_lt_default,
|
61
|
+
muted: $text_lt_light,
|
62
|
+
destructive: $error,
|
63
|
+
);
|
64
|
+
|
65
|
+
$pb_link_hover_colors: (
|
66
|
+
default: $text_lt_default,
|
67
|
+
body: $primary_action,
|
68
|
+
muted: $text_lt_default,
|
69
|
+
destructive: $text_lt_default,
|
70
|
+
);
|
71
|
+
|
72
|
+
$pb_dark_link_colors: (
|
73
|
+
default: $active_dark,
|
74
|
+
body: $text_dk_default,
|
75
|
+
muted: $text_dk_light,
|
76
|
+
destructive: $error_dark,
|
77
|
+
);
|
78
|
+
|
79
|
+
$pb_dark_link_hover_colors: (
|
80
|
+
default: $text_dk_default,
|
81
|
+
body: $active_dark,
|
82
|
+
muted: $text_dk_default,
|
83
|
+
destructive: $text_dk_default,
|
84
|
+
);
|
85
|
+
|
86
|
+
@mixin pb_link($color: $primary_action) {
|
87
|
+
color: $color;
|
88
|
+
}
|
@@ -1,51 +1,54 @@
|
|
1
1
|
@import "../tokens/exports/scale.module";
|
2
2
|
|
3
|
-
@mixin hover-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
.hover_color_#{"" + $name}:hover {
|
10
|
-
color: $color !important;
|
11
|
-
transition: color $transition-speed ease;
|
12
|
-
}
|
3
|
+
@mixin hover-scale-classes($scales-list) {
|
4
|
+
@each $name, $scale in $scales-list {
|
5
|
+
.hover_#{"" + $name}:hover,
|
6
|
+
.group_hover:hover .group_hover.hover_#{"" + $name} {
|
7
|
+
transform: $scale;
|
8
|
+
transition: transform $transition-speed ease;
|
13
9
|
}
|
14
10
|
}
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
11
|
+
}
|
12
|
+
|
13
|
+
@mixin hover-shadow-classes($shadows-list) {
|
14
|
+
@each $name, $shadow in $shadows-list {
|
15
|
+
.hover_#{"" + $name}:hover,
|
16
|
+
.group_hover:hover .group_hover.hover_#{"" + $name} {
|
17
|
+
box-shadow: $shadow;
|
18
|
+
transition: box-shadow $transition-speed ease;
|
22
19
|
}
|
23
20
|
}
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
21
|
+
}
|
22
|
+
|
23
|
+
@mixin hover-color-classes($colors-list) {
|
24
|
+
@each $name, $color in $colors-list {
|
25
|
+
.hover_background_#{"" + $name}:hover,
|
26
|
+
.group_hover:hover .group_hover.hover_background_#{"" + $name} {
|
27
|
+
background-color: $color !important;
|
28
|
+
transition: background-color $transition-speed ease;
|
29
|
+
}
|
30
|
+
.hover_color_#{"" + $name}:hover,
|
31
|
+
.group_hover:hover .group_hover.hover_color_#{"" + $name} {
|
32
|
+
color: $color !important;
|
33
|
+
transition: color $transition-speed ease;
|
31
34
|
}
|
32
35
|
}
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
36
|
+
}
|
37
|
+
|
38
|
+
@include hover-scale-classes($scales);
|
39
|
+
@include hover-shadow-classes($box_shadows);
|
40
|
+
@include hover-color-classes($product_colors);
|
41
|
+
@include hover-color-classes($status_colors);
|
42
|
+
@include hover-color-classes($data_colors);
|
43
|
+
@include hover-color-classes($shadow_colors);
|
44
|
+
@include hover-color-classes($colors);
|
45
|
+
@include hover-color-classes($interface_colors);
|
46
|
+
@include hover-color-classes($main_colors);
|
47
|
+
@include hover-color-classes($background_colors);
|
48
|
+
@include hover-color-classes($card_colors);
|
49
|
+
@include hover-color-classes($active_colors);
|
50
|
+
@include hover-color-classes($action_colors);
|
51
|
+
@include hover-color-classes($hover_colors);
|
52
|
+
@include hover-color-classes($border_colors);
|
53
|
+
@include hover-color-classes($text_colors);
|
54
|
+
@include hover-color-classes($category_colors);
|
@@ -66,6 +66,10 @@ type Hover = Shadow & {
|
|
66
66
|
scale?: "sm" | "md" | "lg"
|
67
67
|
}
|
68
68
|
|
69
|
+
type GroupHover = {
|
70
|
+
groupHover?: boolean,
|
71
|
+
}
|
72
|
+
|
69
73
|
type JustifyContent = {
|
70
74
|
justifyContent?: Alignment & Space
|
71
75
|
}
|
@@ -170,12 +174,24 @@ type ZIndex = {
|
|
170
174
|
zIndex?: ZIndexType,
|
171
175
|
} | ZIndexResponsiveType
|
172
176
|
|
177
|
+
type Height = {
|
178
|
+
height?: string
|
179
|
+
}
|
180
|
+
|
181
|
+
type MaxHeight = {
|
182
|
+
maxHeight?: string
|
183
|
+
}
|
184
|
+
|
185
|
+
type MinHeight = {
|
186
|
+
minHeight?: string
|
187
|
+
}
|
188
|
+
|
173
189
|
// keep this as the last type definition
|
174
190
|
export type GlobalProps = AlignContent & AlignItems & AlignSelf &
|
175
191
|
BorderRadius & Cursor & Dark & Display & DisplaySizes & Flex & FlexDirection &
|
176
192
|
FlexGrow & FlexShrink & FlexWrap & JustifyContent & JustifySelf &
|
177
193
|
LineHeight & Margin & MinWidth & MaxWidth & NumberSpacing & Order & Overflow & Padding &
|
178
|
-
Position & Shadow & TextAlign & Truncate & VerticalAlign & ZIndex & { hover?: string } & Top & Right & Bottom & Left;
|
194
|
+
Position & Shadow & TextAlign & Truncate & VerticalAlign & ZIndex & { hover?: string } & Top & Right & Bottom & Left & Height & MaxHeight & MinHeight;
|
179
195
|
|
180
196
|
const getResponsivePropClasses = (prop: {[key: string]: string}, classPrefix: string) => {
|
181
197
|
const keys: string[] = Object.keys(prop)
|
@@ -209,6 +225,7 @@ const filterClassName = (value: string): string => {
|
|
209
225
|
// Prop categories
|
210
226
|
const PROP_CATEGORIES: {[key:string]: (props: {[key: string]: any}) => string} = {
|
211
227
|
|
228
|
+
groupHoverProps: ({ groupHover }: GroupHover ) => groupHover ? 'group_hover ' : '',
|
212
229
|
hoverProps: ({ hover }: { hover?: Hover }) => {
|
213
230
|
let css = '';
|
214
231
|
if (!hover) return css;
|
@@ -498,7 +515,22 @@ const PROP_CATEGORIES: {[key:string]: (props: {[key: string]: any}) => string} =
|
|
498
515
|
} else {
|
499
516
|
return verticalAlign ? `vertical_align_${verticalAlign} ` : ''
|
500
517
|
}
|
501
|
-
}
|
518
|
+
},
|
519
|
+
|
520
|
+
}
|
521
|
+
|
522
|
+
const PROP_INLINE_CATEGORIES: {[key:string]: (props: {[key: string]: any}) => {[key: string]: any}} = {
|
523
|
+
heightProps: ({ height }: Height) => {
|
524
|
+
return height ? { height } : {};
|
525
|
+
},
|
526
|
+
|
527
|
+
maxHeightProps: ({ maxHeight }: MaxHeight) => {
|
528
|
+
return maxHeight ? { maxHeight } : {};
|
529
|
+
},
|
530
|
+
|
531
|
+
minHeightProps: ({ minHeight }: MinHeight) => {
|
532
|
+
return minHeight ? { minHeight } : {};
|
533
|
+
},
|
502
534
|
}
|
503
535
|
|
504
536
|
type DefaultProps = {[key: string]: string} | Record<string, unknown>
|
@@ -510,6 +542,16 @@ export const globalProps = (props: GlobalProps, defaultProps: DefaultProps = {})
|
|
510
542
|
}).filter((value) => value?.length > 0).join(" ")
|
511
543
|
}
|
512
544
|
|
545
|
+
// New function for inline styles
|
546
|
+
export const globalInlineProps = (props: GlobalProps): React.CSSProperties => {
|
547
|
+
const styles = Object.keys(PROP_INLINE_CATEGORIES).reduce((acc, key) => {
|
548
|
+
const result = PROP_INLINE_CATEGORIES[key](props);
|
549
|
+
return { ...acc, ...(typeof result === 'object' ? result : {}) }; // Ensure result is an object before spreading
|
550
|
+
}, {});
|
551
|
+
|
552
|
+
return styles; // Return the styles object directly
|
553
|
+
}
|
554
|
+
|
513
555
|
|
514
556
|
export const deprecatedProps = (): void => {
|
515
557
|
// if (process.env.NODE_ENV === 'development') {
|