playbook_ui 12.30.1.pre.alpha.PLAY802responsivetitlekit909 → 12.30.1.pre.alpha.hovertesting914

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,47 @@
1
+ @import "../tokens/exports/scale";
2
+
3
+ @mixin hover-color-classes($colors-list) {
4
+ @each $name, $color in $colors-list {
5
+ .bg-hover-#{$name}:hover {
6
+ background-color: $color !important;
7
+ transition: background-color $transition-speed ease;
8
+ }
9
+ }
10
+ }
11
+
12
+ @mixin hover-shadow-classes($shadows-list) {
13
+ @each $name, $shadow in $shadows-list {
14
+ .hover_#{$name}:hover {
15
+ box-shadow: $shadow;
16
+ transition: box-shadow $transition-speed ease;
17
+ }
18
+ }
19
+ }
20
+
21
+ @mixin hover-scale-classes($scales-list) {
22
+ @each $name, $scale in $scales-list {
23
+ .hover_#{$name}:hover {
24
+ transform: $scale;
25
+ transition: transform $transition-speed ease;
26
+ }
27
+ }
28
+ }
29
+
30
+
31
+ @include hover-scale-classes($scales);
32
+ @include hover-shadow-classes($box_shadows);
33
+ @include hover-color-classes($product_colors);
34
+ @include hover-color-classes($status_colors);
35
+ @include hover-color-classes($data_colors);
36
+ @include hover-color-classes($shadow_colors);
37
+ @include hover-color-classes($colors);
38
+ @include hover-color-classes($interface_colors);
39
+ @include hover-color-classes($main_colors);
40
+ @include hover-color-classes($background_colors);
41
+ @include hover-color-classes($card_colors);
42
+ @include hover-color-classes($active_colors);
43
+ @include hover-color-classes($action_colors);
44
+ @include hover-color-classes($hover_colors);
45
+ @include hover-color-classes($border_colors);
46
+ @include hover-color-classes($text_colors);
47
+ @include hover-color-classes($category_colors);
@@ -60,6 +60,11 @@ type FlexWrap = {
60
60
  flexWrap?: "wrap" | "nowrap" | "wrapReverse"
61
61
  }
62
62
 
63
+ type Hover = Shadow & {
64
+ background?: string,
65
+ scale?: "sm" | "md" | "lg"
66
+ }
67
+
63
68
  type JustifyContent = {
64
69
  justifyContent?: Alignment & Space
65
70
  }
@@ -125,7 +130,7 @@ export type GlobalProps = AlignContent & AlignItems & AlignSelf &
125
130
  BorderRadius & Cursor & Dark & Display & DisplaySizes & Flex & FlexDirection &
126
131
  FlexGrow & FlexShrink & FlexWrap & JustifyContent & JustifySelf &
127
132
  LineHeight & Margin & MaxWidth & NumberSpacing & Order & Padding &
128
- Position & Shadow & ZIndex
133
+ Position & Shadow & ZIndex & { hover?: string };
129
134
 
130
135
  const getResponsivePropClasses = (prop: {[key: string]: string}, classPrefix: string) => {
131
136
  const keys: string[] = Object.keys(prop)
@@ -137,6 +142,16 @@ const getResponsivePropClasses = (prop: {[key: string]: string}, classPrefix: st
137
142
 
138
143
  // Prop categories
139
144
  const PROP_CATEGORIES: {[key:string]: (props: {[key: string]: any}) => string} = {
145
+
146
+ hoverProps: ({ hover }: { hover?: Hover }) => {
147
+ let css = '';
148
+ if (!hover) return css;
149
+ css += hover.shadow ? `hover_shadow_${hover.shadow} ` : '';
150
+ css += hover.background ? `bg-hover-${hover.background } ` : '';
151
+ css += hover.scale ? `hover_scale_${hover.scale} ` : '';
152
+ return css;
153
+ },
154
+
140
155
  spacingProps: ({
141
156
  marginRight,
142
157
  marginLeft,
@@ -214,7 +229,11 @@ const PROP_CATEGORIES: {[key:string]: (props: {[key: string]: any}) => string} =
214
229
  });
215
230
  return css.trim();
216
231
  },
217
-
232
+ borderRadiusProps: ({ borderRadius }: BorderRadius) => {
233
+ let css = ''
234
+ css += borderRadius ? `border_radius_${borderRadius} ` : ''
235
+ return css
236
+ },
218
237
  darkProps: ({ dark }: Dark) => dark ? 'dark' : '',
219
238
  numberSpacingProps: ({ numberSpacing }: NumberSpacing) => {
220
239
  let css = ''
@@ -369,6 +388,7 @@ export const globalProps = (props: GlobalProps, defaultProps: DefaultProps = {})
369
388
  }).filter((value) => value?.length > 0).join(" ")
370
389
  }
371
390
 
391
+
372
392
  export const deprecatedProps = (kit: string, props: string[] = []): void => {
373
393
  if (process.env.NODE_ENV === 'development') {
374
394
  /* eslint no-console: ["error", { allow: ["warn", "error"] }] */