playbook_ui 14.7.0.pre.alpha.dependabotnpmandyarnfloatinguireact026284532 → 14.7.0.pre.alpha.dependabotnpmandyarnintltelinput24704448

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.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_card/docs/_card_light.md +1 -1
  3. data/app/pb_kits/playbook/pb_date/_date.scss +0 -3
  4. data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.ts +1 -1
  5. data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +0 -2
  6. data/app/pb_kits/playbook/pb_date_picker/docs/index.js +0 -1
  7. data/app/pb_kits/playbook/pb_date_picker/plugins/quickPick.tsx +1 -17
  8. data/app/pb_kits/playbook/pb_draggable/docs/example.yml +0 -6
  9. data/app/pb_kits/playbook/pb_drawer/_drawer.scss +175 -88
  10. data/app/pb_kits/playbook/pb_drawer/_drawer.tsx +47 -79
  11. data/app/pb_kits/playbook/pb_drawer/drawer.test.jsx +16 -20
  12. data/app/pb_kits/playbook/pb_timeline/_timeline.scss +1 -43
  13. data/app/pb_kits/playbook/pb_timeline/_timeline.tsx +2 -6
  14. data/app/pb_kits/playbook/pb_timeline/docs/example.yml +3 -5
  15. data/app/pb_kits/playbook/pb_timeline/docs/index.js +0 -2
  16. data/app/pb_kits/playbook/pb_timeline/timeline.rb +1 -11
  17. data/app/pb_kits/playbook/pb_timeline/timeline.test.js +4 -4
  18. data/app/pb_kits/playbook/utilities/_hover.scss +27 -40
  19. data/app/pb_kits/playbook/utilities/globalProps.ts +3 -5
  20. data/dist/chunks/_typeahead-CFuWkfWK.js +22 -0
  21. data/dist/chunks/_weekday_stacked-OvN7ix-I.js +45 -0
  22. data/dist/chunks/{lib-BC6ESsxG.js → lib-D-mTv-kp.js} +1 -1
  23. data/dist/chunks/{pb_form_validation-B_Z9rEbg.js → pb_form_validation-BkWGwJsl.js} +1 -1
  24. data/dist/chunks/vendor.js +1 -1
  25. data/dist/menu.yml +1 -1
  26. data/dist/playbook-doc.js +1 -1
  27. data/dist/playbook-rails-react-bindings.js +1 -1
  28. data/dist/playbook-rails.js +1 -1
  29. data/dist/playbook.css +1 -1
  30. data/lib/playbook/hover.rb +1 -1
  31. data/lib/playbook/version.rb +1 -1
  32. metadata +6 -25
  33. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_quick_pick_default_date.html.erb +0 -42
  34. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_quick_pick_default_date.jsx +0 -44
  35. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_quick_pick_default_date.md +0 -1
  36. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_default_rails.html.erb +0 -26
  37. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_default_rails.md +0 -7
  38. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_cards_rails.html.erb +0 -38
  39. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_cards_rails.md +0 -0
  40. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_list_rails.html.erb +0 -19
  41. data/app/pb_kits/playbook/pb_draggable/draggable.html.erb +0 -3
  42. data/app/pb_kits/playbook/pb_draggable/draggable.rb +0 -18
  43. data/app/pb_kits/playbook/pb_draggable/draggable_container.html.erb +0 -3
  44. data/app/pb_kits/playbook/pb_draggable/draggable_container.rb +0 -15
  45. data/app/pb_kits/playbook/pb_draggable/draggable_item.html.erb +0 -7
  46. data/app/pb_kits/playbook/pb_draggable/draggable_item.rb +0 -18
  47. data/app/pb_kits/playbook/pb_draggable/index.js +0 -125
  48. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_with_gap.html.erb +0 -94
  49. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_with_gap.jsx +0 -180
  50. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_with_gap.md +0 -1
  51. data/app/pb_kits/playbook/utilities/test/globalProps/hover.test.js +0 -79
  52. data/dist/chunks/_typeahead-CEqbLlRy.js +0 -22
  53. data/dist/chunks/_weekday_stacked-BiF9GqI1.js +0 -45
@@ -1,12 +1,8 @@
1
1
  import React, { useState, useEffect } from "react";
2
2
  import classnames from "classnames";
3
+ import Modal from "react-modal";
3
4
 
4
- import {
5
- buildAriaProps,
6
- buildCss,
7
- buildDataProps,
8
- buildHtmlProps,
9
- } from "../utilities/props";
5
+ import { buildAriaProps, buildCss, buildDataProps, buildHtmlProps } from "../utilities/props";
10
6
  import { globalProps } from "../utilities/globalProps";
11
7
 
12
8
  import { DialogContext } from "../pb_dialog/_dialog_context";
@@ -57,19 +53,13 @@ const Drawer = (props: DrawerProps): React.ReactElement => {
57
53
  let globalPropsString: string = globalProps(props);
58
54
 
59
55
  // Check if the string contains any of the prefixes
60
- const containsPrefix = [
61
- "p_",
62
- "pb_",
63
- "pt_",
64
- "pl_",
65
- "pr_",
66
- "px_",
67
- "py_",
68
- ].some((prefix) => globalPropsString.includes(prefix));
56
+ const containsPrefix = ['p_', 'pb_', 'pt_', 'pl_', 'pr_', 'px_', 'py_'].some((prefix) =>
57
+ globalPropsString.includes(prefix)
58
+ );
69
59
 
70
60
  // If none of the prefixes are found, append 'p_sm' to the string
71
61
  if (!containsPrefix) {
72
- globalPropsString += " p_sm";
62
+ globalPropsString += ' p_sm';
73
63
  }
74
64
 
75
65
  const drawerClassNames = {
@@ -77,9 +67,9 @@ const Drawer = (props: DrawerProps): React.ReactElement => {
77
67
  "pb_drawer",
78
68
  buildCss("pb_drawer", size, placement),
79
69
  {
80
- drawer_border_full: border === "full",
81
- drawer_border_right: border === "right",
82
- drawer_border_left: border === "left",
70
+ "drawer_border_full": border === "full",
71
+ "drawer_border_right": border === "right",
72
+ "drawer_border_left": border === "left",
83
73
  }
84
74
  )} ${globalPropsString}`,
85
75
  afterOpen: "pb_drawer_after_open",
@@ -92,18 +82,19 @@ const Drawer = (props: DrawerProps): React.ReactElement => {
92
82
  };
93
83
 
94
84
  const overlayClassNames = {
95
- base: `pb_drawer${overlay ? "_overlay" : "_no_overlay"} ${
96
- fullHeight !== null && fullHeightClassNames()
97
- } ${!overlay ? "no-background" : ""}`,
85
+ base: `pb_drawer${overlay ? '_overlay' : '_no_overlay'} ${fullHeight !== null && fullHeightClassNames()} ${!overlay ? 'no-background' : ''}`,
98
86
  afterOpen: "pb_drawer_overlay_after_open",
99
87
  beforeClose: "pb_drawer_overlay_before_close",
100
88
  };
101
89
 
102
- const classes = classnames(buildCss("pb_drawer_wrapper"), className);
90
+ const classes = classnames(
91
+ buildCss("pb_drawer_wrapper"),
92
+ className
93
+ );
103
94
 
104
95
  const [triggerOpened, setTriggerOpened] = useState(false);
105
96
 
106
- const breakpointWidths: Record<DrawerProps["breakpoint"], number> = {
97
+ const breakpointWidths: Record<DrawerProps['breakpoint'], number> = {
107
98
  none: 0,
108
99
  xs: 575,
109
100
  sm: 768,
@@ -116,7 +107,7 @@ const Drawer = (props: DrawerProps): React.ReactElement => {
116
107
  const [isBreakpointOpen, setIsBreakpointOpen] = useState(false);
117
108
 
118
109
  useEffect(() => {
119
- if (breakpoint === "none") return;
110
+ if (breakpoint === 'none') return;
120
111
 
121
112
  const handleResize = () => {
122
113
  const width = window.innerWidth;
@@ -129,57 +120,39 @@ const Drawer = (props: DrawerProps): React.ReactElement => {
129
120
  }
130
121
  };
131
122
 
132
- window.addEventListener("resize", handleResize);
123
+ window.addEventListener('resize', handleResize);
133
124
 
134
125
  // Call handler once on mount to set initial state
135
126
  handleResize();
136
127
 
137
128
  return () => {
138
- window.removeEventListener("resize", handleResize);
129
+ window.removeEventListener('resize', handleResize);
139
130
  };
140
131
  }, [breakpoint]);
141
132
 
142
- const modalIsOpened = trigger ? triggerOpened : opened || isBreakpointOpen;
143
-
144
- const [animationState, setAnimationState] = useState("");
145
-
146
- useEffect(() => {
147
- if (modalIsOpened) {
148
- setAnimationState("afterOpen");
149
- } else if (!modalIsOpened && animationState === "afterOpen") {
150
- setAnimationState("beforeClose");
151
- setTimeout(() => {
152
- setAnimationState("");
153
- }, 200); // closeTimeoutMS
154
- }
155
- }, [modalIsOpened]);
156
-
157
- const isModalVisible = modalIsOpened || animationState === "beforeClose";
133
+ const modalIsOpened = trigger ? triggerOpened : (opened || isBreakpointOpen);
158
134
 
159
135
  useEffect(() => {
160
- const sizeMap: Record<DrawerProps["size"], string> = {
161
- xl: "365px",
162
- lg: "300px",
163
- md: "250px",
164
- sm: "200px",
165
- xs: "64px",
136
+ const sizeMap: Record<DrawerProps['size'], string> = {
137
+ xl: '365px',
138
+ lg: '300px',
139
+ md: '250px',
140
+ sm: '200px',
141
+ xs: '64px',
166
142
  };
167
- const body = document.querySelector("body");
143
+ const body = document.querySelector('body');
168
144
 
169
- if (modalIsOpened && behavior === "push" && body) {
170
- if (placement === "left") {
145
+ if (modalIsOpened && behavior === 'push' && body) {
146
+ if (placement === 'left') {
171
147
  body.style.cssText = `margin-left: ${sizeMap[size]} !important; margin-right: '' !important;`;
172
- } else if (placement === "right") {
148
+ } else if (placement === 'right') {
173
149
  body.style.cssText = `margin-right: ${sizeMap[size]} !important; margin-left: '' !important;`;
174
150
  }
175
151
 
176
- body.classList.add("PBDrawer__Body--open");
152
+ body.classList.add('ReactModal__Body--open');
177
153
  } else if (body) {
178
- if (body.classList.contains("PBDrawer__Body--open")) {
179
- body.classList.add("PBDrawer__Body--close");
180
- }
181
- body.style.cssText = ""; // Clear the styles when modal is closed or behavior is not 'push'
182
- body.classList.remove("PBDrawer__Body--open");
154
+ body.style.cssText = ''; // Clear the styles when modal is closed or behavior is not 'push'
155
+ body.classList.remove('ReactModal__Body--open');
183
156
  }
184
157
  }, [modalIsOpened, behavior, placement, size]);
185
158
 
@@ -199,27 +172,22 @@ const Drawer = (props: DrawerProps): React.ReactElement => {
199
172
  {...htmlProps}
200
173
  className={classes}
201
174
  >
202
- {isModalVisible && (
203
- <div
204
- className={classnames(overlayClassNames.base, {
205
- [overlayClassNames.afterOpen]: animationState === "afterOpen",
206
- [overlayClassNames.beforeClose]: animationState === "beforeClose",
207
- })}
208
- id={id}
209
- onClick={overlay ? onClose : undefined}
210
- >
211
- <div
212
- className={classnames(drawerClassNames.base, {
213
- [drawerClassNames.afterOpen]: animationState === "afterOpen",
214
- [drawerClassNames.beforeClose]: animationState === "beforeClose",
215
- })}
216
- onClick={(e) => e.stopPropagation()}
217
- >
175
+ <Modal
176
+ ariaHideApp={false}
177
+ className={drawerClassNames}
178
+ closeTimeoutMS={200}
179
+ contentLabel="Minimal Modal Example"
180
+ id={id}
181
+ isOpen={modalIsOpened}
182
+ onRequestClose={onClose}
183
+ overlayClassName={overlayClassNames}
184
+ shouldCloseOnOverlayClick={overlay}
185
+ >
186
+ <>
218
187
  {children}
219
- </div>
220
- </div>
221
- )}
222
- </div>
188
+ </>
189
+ </Modal>
190
+ </div>
223
191
  </DialogContext.Provider>
224
192
  );
225
193
  };
@@ -1,7 +1,6 @@
1
1
  import React, { useState } from 'react';
2
- import { render, fireEvent, screen } from '../utilities/test-utils';
2
+ import { render, cleanup, fireEvent, screen } from '../utilities/test-utils';
3
3
  import { Drawer, Button } from 'playbook-ui';
4
- import { waitFor } from '@testing-library/react';
5
4
 
6
5
  const size = 'sm';
7
6
 
@@ -12,10 +11,9 @@ function DrawerTest({ props }) {
12
11
 
13
12
  return (
14
13
  <>
15
- <Button onClick={open}>{'Open Drawer'}</Button>
14
+ <Button onClick={open}>{'Open Drawer'}</Button>
16
15
  <Drawer
17
16
  className="wrapper"
18
- id="drawer-id"
19
17
  onClose={close}
20
18
  opened={isOpen}
21
19
  placement="left"
@@ -29,17 +27,24 @@ function DrawerTest({ props }) {
29
27
  );
30
28
  }
31
29
 
30
+ afterEach(cleanup);
31
+
32
32
  test('renders with the right border class when border prop is right', async () => {
33
33
  render(<DrawerTest props={{ border: 'right' }} />);
34
34
 
35
35
  fireEvent.click(screen.getByText('Open Drawer'));
36
36
 
37
- await waitFor(() => expect(document.getElementById('drawer-id')).toBeInTheDocument());
37
+ const drawer = await screen.findByRole('dialog');
38
+ expect(drawer).toHaveClass('drawer_border_right');
39
+ });
38
40
 
39
- const container = document.getElementById('drawer-id');
40
- const drawer = container.querySelector('#drawer-id .pb_drawer');
41
+ test('renders with the left border class when border prop is left', async () => {
42
+ render(<DrawerTest props={{ border: 'left' }} />);
41
43
 
42
- expect(drawer).toHaveClass('drawer_border_right');
44
+ fireEvent.click(screen.getByText('Open Drawer'));
45
+
46
+ const drawer = await screen.findByRole('dialog');
47
+ expect(drawer).toHaveClass('drawer_border_left');
43
48
  });
44
49
 
45
50
  test('renders with the full border class when border prop is full', async () => {
@@ -47,10 +52,7 @@ test('renders with the full border class when border prop is full', async () =>
47
52
 
48
53
  fireEvent.click(screen.getByText('Open Drawer'));
49
54
 
50
- await waitFor(() => expect(document.getElementById('drawer-id')).toBeInTheDocument());
51
-
52
- const container = document.getElementById('drawer-id');
53
- const drawer = container.querySelector('#drawer-id .pb_drawer');
55
+ const drawer = await screen.findByRole('dialog');
54
56
  expect(drawer).toHaveClass('drawer_border_full');
55
57
  });
56
58
 
@@ -59,10 +61,7 @@ test('does not have a border class when border prop is none', async () => {
59
61
 
60
62
  fireEvent.click(screen.getByText('Open Drawer'));
61
63
 
62
- await waitFor(() => expect(document.getElementById('drawer-id')).toBeInTheDocument());
63
-
64
- const container = document.getElementById('drawer-id');
65
- const drawer = container.querySelector('#drawer-id .pb_drawer');
64
+ const drawer = await screen.findByRole('dialog');
66
65
  expect(drawer).not.toHaveClass('drawer_border_right');
67
66
  expect(drawer).not.toHaveClass('drawer_border_left');
68
67
  expect(drawer).not.toHaveClass('drawer_border_full');
@@ -73,9 +72,6 @@ test('renders the correct size class for a large drawer', async () => {
73
72
 
74
73
  fireEvent.click(screen.getByText('Open Drawer'));
75
74
 
76
- await waitFor(() => expect(document.getElementById('drawer-id')).toBeInTheDocument());
77
-
78
- const container = document.getElementById('drawer-id');
79
- const drawer = container.querySelector('#drawer-id .pb_drawer');
75
+ const drawer = await screen.findByRole('dialog');
80
76
  expect(drawer).toHaveClass('pb_drawer pb_drawer_lg_left');
81
77
  });
@@ -8,12 +8,6 @@ $icon_margin: $space_xs/2;
8
8
  $icon_height: 28px;
9
9
  $height_from_top: $icon_height/2 - $connector_width/2;
10
10
 
11
- // Add gap variables
12
- $gap_xs: $height_from_top + $space_xs;
13
- $gap_sm: $height_from_top + $space_sm;
14
- $gap_md: $height_from_top + $space_md;
15
- $gap_lg: $height_from_top + $space_lg;
16
-
17
11
  @mixin pb_timeline_line_solid($width, $height, $margin) {
18
12
  width: $width;
19
13
  height: $height;
@@ -162,7 +156,7 @@ $gap_lg: $height_from_top + $space_lg;
162
156
  }
163
157
  }
164
158
  }
165
- }
159
+ }
166
160
  }
167
161
  }
168
162
  &[class*=_vertical] {
@@ -272,41 +266,5 @@ $gap_lg: $height_from_top + $space_lg;
272
266
  }
273
267
  }
274
268
  }
275
- &[class*=_gap_xs] {
276
- [class*=pb_timeline_item_kit] {
277
- [class=pb_timeline_item_step] {
278
- [class=pb_timeline_item_connector] {
279
- height: $gap_xs !important;
280
- }
281
- }
282
- }
283
- }
284
- &[class*=_gap_sm] {
285
- [class*=pb_timeline_item_kit] {
286
- [class=pb_timeline_item_step] {
287
- [class=pb_timeline_item_connector] {
288
- height: $gap_sm !important;
289
- }
290
- }
291
- }
292
- }
293
- &[class*=_gap_md] {
294
- [class*=pb_timeline_item_kit] {
295
- [class=pb_timeline_item_step] {
296
- [class=pb_timeline_item_connector] {
297
- height: $gap_md !important;
298
- }
299
- }
300
- }
301
- }
302
- &[class*=_gap_lg] {
303
- [class*=pb_timeline_item_kit] {
304
- [class=pb_timeline_item_step] {
305
- [class=pb_timeline_item_connector] {
306
- height: $gap_lg !important;
307
- }
308
- }
309
- }
310
- }
311
269
  }
312
270
  }
@@ -20,7 +20,6 @@ type TimelineProps = {
20
20
  id?: string,
21
21
  orientation?: string,
22
22
  showDate?: boolean,
23
- gap?: 'xs' | 'sm' | 'md' | 'lg' | 'none',
24
23
  } & GlobalProps
25
24
 
26
25
  const Timeline = ({
@@ -32,16 +31,13 @@ const Timeline = ({
32
31
  id,
33
32
  orientation = 'horizontal',
34
33
  showDate = false,
35
- gap = 'none',
36
34
  ...props
37
35
  }: TimelineProps): React.ReactElement => {
38
36
  const ariaProps = buildAriaProps(aria)
39
37
  const dataProps = buildDataProps(data)
40
38
  const htmlProps = buildHtmlProps(htmlOptions)
41
39
  const dateStyle = showDate === true ? '_with_date' : ''
42
- const gapStyle = gap === 'none' ? '' : `gap_${gap}`
43
- const timelineCss = buildCss('pb_timeline_kit', `${orientation}`, dateStyle, gapStyle)
44
-
40
+ const timelineCss = buildCss('pb_timeline_kit', `_${orientation}`, dateStyle)
45
41
  return (
46
42
  <div
47
43
  {...ariaProps}
@@ -60,4 +56,4 @@ Timeline.Step = TimelineStep
60
56
  Timeline.Label = TimelineLabel
61
57
  Timeline.Detail = TimelineDetail
62
58
 
63
- export default Timeline
59
+ export default Timeline
@@ -1,16 +1,14 @@
1
1
  examples:
2
-
2
+
3
3
  rails:
4
4
  - timeline_default: Default
5
5
  - timeline_vertical: Vertical
6
6
  - timeline_with_date: With Date
7
7
  - timeline_with_children: With Children
8
- - timeline_with_gap: With Gap
9
-
10
-
8
+
9
+
11
10
  react:
12
11
  - timeline_default: Default
13
12
  - timeline_vertical: Vertical
14
13
  - timeline_with_date: With Date
15
14
  - timeline_with_children: With Children
16
- - timeline_with_gap: With Gap
@@ -2,5 +2,3 @@ export { default as TimelineDefault } from './_timeline_default.jsx'
2
2
  export { default as TimelineVertical } from './_timeline_vertical.jsx'
3
3
  export { default as TimelineWithDate } from './_timeline_with_date.jsx'
4
4
  export { default as TimelineWithChildren } from './_timeline_with_children.jsx'
5
- export { default as TimelineWithGap } from './_timeline_with_gap.jsx'
6
-
@@ -8,15 +8,9 @@ module Playbook
8
8
  default: "horizontal"
9
9
  prop :show_date, type: Playbook::Props::Boolean,
10
10
  default: false
11
- prop :gap, type: Playbook::Props::Enum,
12
- values: %w[xs sm md lg none],
13
- default: "none"
14
11
 
15
12
  def classname
16
- generate_classname("pb_timeline_kit",
17
- orientation,
18
- date_class,
19
- gap_class)
13
+ generate_classname("pb_timeline_kit", orientation, date_class)
20
14
  end
21
15
 
22
16
  private
@@ -24,10 +18,6 @@ module Playbook
24
18
  def date_class
25
19
  show_date ? "with_date" : nil
26
20
  end
27
-
28
- def gap_class
29
- gap == "none" ? nil : "gap_#{gap}"
30
- end
31
21
  end
32
22
  end
33
23
  end
@@ -147,26 +147,26 @@ test('should pass id prop', () => {
147
147
  test('should have horizontal orientation by default', () => {
148
148
  render(<TimelineDefault />)
149
149
  const kit = screen.getByTestId(testId)
150
- expect(kit).toHaveClass('pb_timeline_kit_horizontal')
150
+ expect(kit).toHaveClass('pb_timeline_kit__horizontal')
151
151
  })
152
152
 
153
153
  test('should pass vertical orientation', () => {
154
154
  const props = { orientation: 'vertical' }
155
155
  render(<TimelineDefault {...props} />)
156
156
  const kit = screen.getByTestId(testId)
157
- expect(kit).toHaveClass('pb_timeline_kit_vertical')
157
+ expect(kit).toHaveClass('pb_timeline_kit__vertical')
158
158
  })
159
159
 
160
160
  test('should pass showDate prop', () => {
161
161
  const props = { showDate: true }
162
162
  render(<TimelineDefault {...props} />)
163
163
  const kit = screen.getByTestId(testId)
164
- expect(kit).toHaveClass('pb_timeline_kit_horizontal__with_date')
164
+ expect(kit).toHaveClass('pb_timeline_kit__horizontal__with_date')
165
165
  })
166
166
 
167
167
  test('should pass showDate prop with Children', () => {
168
168
  const props = { showDate: true }
169
169
  render(<TimelineWithChildren {...props} />)
170
170
  const kit = screen.getByTestId(testId)
171
- expect(kit).toHaveClass('pb_timeline_kit_horizontal__with_date')
171
+ expect(kit).toHaveClass('pb_timeline_kit__horizontal__with_date')
172
172
  })
@@ -21,47 +21,34 @@
21
21
  }
22
22
 
23
23
  @mixin hover-color-classes($colors-list) {
24
- @each $name, $color in $colors-list {
25
- .hover_background-#{"" + $name}:hover {
26
- background-color: $color !important;
27
- transition: background-color $transition-speed ease;
28
- }
29
- .hover_color-#{"" + $name}:hover {
30
- color: $color !important;
31
- transition: color $transition-speed ease;
32
- }
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;
33
34
  }
34
- }
35
-
36
- @include hover-scale-classes($scales);
37
- @include hover-shadow-classes($box_shadows);
38
- @include hover-color-classes($product_colors);
39
- @include hover-color-classes($status_colors);
40
- @include hover-color-classes($data_colors);
41
- @include hover-color-classes($shadow_colors);
42
- @include hover-color-classes($colors);
43
- @include hover-color-classes($interface_colors);
44
- @include hover-color-classes($main_colors);
45
- @include hover-color-classes($background_colors);
46
- @include hover-color-classes($card_colors);
47
- @include hover-color-classes($active_colors);
48
- @include hover-color-classes($action_colors);
49
- @include hover-color-classes($hover_colors);
50
- @include hover-color-classes($border_colors);
51
- @include hover-color-classes($text_colors);
52
- @include hover-color-classes($category_colors);
53
-
54
- .hover_visibility {
55
- opacity: 0;
56
- transition: opacity $transition-speed ease;
57
-
58
- &:hover {
59
- opacity: 1;
60
35
  }
61
36
  }
62
37
 
63
- .group_hover:hover {
64
- .group_hover.hover_visibility {
65
- opacity: 1;
66
- }
67
- }
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);
@@ -63,8 +63,7 @@ type FlexWrap = {
63
63
  type Hover = Shadow & {
64
64
  background?: string,
65
65
  color?: string,
66
- scale?: "sm" | "md" | "lg",
67
- visibility?: boolean,
66
+ scale?: "sm" | "md" | "lg"
68
67
  }
69
68
 
70
69
  type GroupHover = {
@@ -231,10 +230,9 @@ const PROP_CATEGORIES: {[key:string]: (props: {[key: string]: any}) => string} =
231
230
  let css = '';
232
231
  if (!hover) return css;
233
232
  css += hover.shadow ? `hover_shadow_${hover.shadow} ` : '';
234
- css += hover.background ? `hover_background-${hover.background } ` : '';
233
+ css += hover.background ? `hover_background_${hover.background } ` : '';
235
234
  css += hover.scale ? `hover_scale_${hover.scale} ` : '';
236
- css += hover.color ? `hover_color-${hover.color } ` : '';
237
- css += hover.visibility ? `hover_visibility` : '';
235
+ css += hover.color ? `hover_color_${hover.color } ` : '';
238
236
  return css;
239
237
  },
240
238