@transferwise/components 0.0.0-experimental-fa56c29 → 0.0.0-experimental-644f437

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 (103) hide show
  1. package/build/index.js +5594 -5803
  2. package/build/index.js.map +1 -1
  3. package/build/index.mjs +5573 -5781
  4. package/build/index.mjs.map +1 -1
  5. package/build/main.css +0 -138
  6. package/build/styles/main.css +0 -138
  7. package/build/types/common/DOMOperations/DOMOperations.d.ts +10 -2
  8. package/build/types/common/DOMOperations/DOMOperations.d.ts.map +1 -1
  9. package/build/types/common/DOMOperations/index.d.ts +1 -3
  10. package/build/types/common/DOMOperations/index.d.ts.map +1 -1
  11. package/build/types/common/bottomSheet/BottomSheet.d.ts +2 -2
  12. package/build/types/common/bottomSheet/BottomSheet.d.ts.map +1 -1
  13. package/build/types/common/bottomSheet/index.d.ts +2 -1
  14. package/build/types/common/bottomSheet/index.d.ts.map +1 -1
  15. package/build/types/common/card/Card.d.ts +2 -2
  16. package/build/types/common/card/Card.d.ts.map +1 -1
  17. package/build/types/common/closeButton/CloseButton.messages.d.ts +7 -7
  18. package/build/types/common/closeButton/CloseButton.messages.d.ts.map +1 -1
  19. package/build/types/common/closeButton/index.d.ts +0 -1
  20. package/build/types/common/closeButton/index.d.ts.map +1 -1
  21. package/build/types/common/deviceDetection/deviceDetection.d.ts +1 -1
  22. package/build/types/common/deviceDetection/deviceDetection.d.ts.map +1 -1
  23. package/build/types/common/deviceDetection/index.d.ts +1 -1
  24. package/build/types/common/deviceDetection/index.d.ts.map +1 -1
  25. package/build/types/common/domHelpers/documentIosClick.d.ts +7 -2
  26. package/build/types/common/domHelpers/documentIosClick.d.ts.map +1 -1
  27. package/build/types/common/domHelpers/index.d.ts +1 -6
  28. package/build/types/common/domHelpers/index.d.ts.map +1 -1
  29. package/build/types/common/flowHeader/index.d.ts +2 -0
  30. package/build/types/common/flowHeader/index.d.ts.map +1 -0
  31. package/build/types/common/focusBoundary/index.d.ts +1 -1
  32. package/build/types/common/focusBoundary/index.d.ts.map +1 -1
  33. package/build/types/common/historyNavigator/historyNavigator.d.ts +8 -8
  34. package/build/types/common/historyNavigator/historyNavigator.d.ts.map +1 -1
  35. package/build/types/common/historyNavigator/index.d.ts +1 -1
  36. package/build/types/common/historyNavigator/index.d.ts.map +1 -1
  37. package/build/types/common/panel/Panel.d.ts +1 -1
  38. package/build/types/common/panel/Panel.d.ts.map +1 -1
  39. package/build/types/common/panel/index.d.ts +1 -1
  40. package/build/types/common/panel/index.d.ts.map +1 -1
  41. package/build/types/dimmer/Dimmer.d.ts +1 -1
  42. package/build/types/dimmer/Dimmer.d.ts.map +1 -1
  43. package/build/types/dimmer/index.d.ts +2 -1
  44. package/build/types/dimmer/index.d.ts.map +1 -1
  45. package/build/types/flowNavigation/FlowNavigation.d.ts.map +1 -1
  46. package/build/types/index.d.ts +42 -43
  47. package/build/types/index.d.ts.map +1 -1
  48. package/build/types/promoCard/PromoCard.d.ts +5 -16
  49. package/build/types/promoCard/PromoCard.d.ts.map +1 -1
  50. package/package.json +3 -3
  51. package/src/common/DOMOperations/index.ts +1 -0
  52. package/src/common/bottomSheet/BottomSheet.tsx +6 -3
  53. package/src/common/bottomSheet/index.ts +2 -0
  54. package/src/common/card/Card.tsx +43 -51
  55. package/src/common/closeButton/{CloseButton.spec.js → CloseButton.spec.tsx} +1 -0
  56. package/src/common/closeButton/index.ts +0 -1
  57. package/src/common/deviceDetection/{deviceDetection.spec.js → deviceDetection.spec.ts} +1 -1
  58. package/src/common/deviceDetection/deviceDetection.ts +7 -0
  59. package/src/common/domHelpers/{documentIosClick.spec.js → documentIosClick.spec.ts} +7 -13
  60. package/src/common/domHelpers/{documentIosClick.js → documentIosClick.ts} +23 -0
  61. package/src/common/domHelpers/index.ts +4 -23
  62. package/src/common/flowHeader/{FlowHeader.spec.js → FlowHeader.spec.tsx} +2 -1
  63. package/src/common/flowHeader/index.ts +1 -0
  64. package/src/common/historyNavigator/{historyNavigator.js → historyNavigator.ts} +9 -5
  65. package/src/common/panel/{Panel.spec.js → Panel.spec.tsx} +14 -9
  66. package/src/common/panel/Panel.tsx +3 -3
  67. package/src/common/responsivePanel/ResponsivePanel.tsx +1 -1
  68. package/src/dimmer/Dimmer.tsx +1 -1
  69. package/src/dimmer/index.ts +2 -0
  70. package/src/flowNavigation/FlowNavigation.tsx +1 -2
  71. package/src/index.ts +68 -68
  72. package/src/main.css +0 -138
  73. package/src/main.less +0 -1
  74. package/src/overlayHeader/OverlayHeader.js +1 -1
  75. package/src/promoCard/PromoCard.story.tsx +2 -2
  76. package/src/promoCard/PromoCard.tsx +10 -31
  77. package/src/withDisplayFormat/WithDisplayFormat.tsx +2 -2
  78. package/build/styles/carousel/Carousel.css +0 -138
  79. package/build/types/carousel/Carousel.d.ts +0 -26
  80. package/build/types/carousel/Carousel.d.ts.map +0 -1
  81. package/build/types/carousel/index.d.ts +0 -3
  82. package/build/types/carousel/index.d.ts.map +0 -1
  83. package/src/carousel/Carousel.css +0 -138
  84. package/src/carousel/Carousel.less +0 -137
  85. package/src/carousel/Carousel.spec.tsx +0 -221
  86. package/src/carousel/Carousel.story.tsx +0 -63
  87. package/src/carousel/Carousel.tsx +0 -345
  88. package/src/carousel/index.ts +0 -3
  89. package/src/common/DOMOperations/index.js +0 -3
  90. package/src/common/bottomSheet/index.js +0 -1
  91. package/src/common/deviceDetection/deviceDetection.js +0 -7
  92. package/src/dimmer/index.js +0 -1
  93. /package/src/common/DOMOperations/{DOMOperations.spec.js → DOMOperations.spec.tsx} +0 -0
  94. /package/src/common/DOMOperations/{DOMOperations.js → DOMOperations.ts} +0 -0
  95. /package/src/common/closeButton/{CloseButton.messages.js → CloseButton.messages.ts} +0 -0
  96. /package/src/common/closeButton/__snapshots__/{CloseButton.spec.js.snap → CloseButton.spec.tsx.snap} +0 -0
  97. /package/src/common/deviceDetection/{index.js → index.ts} +0 -0
  98. /package/src/common/flowHeader/__snapshots__/{FlowHeader.spec.js.snap → FlowHeader.spec.tsx.snap} +0 -0
  99. /package/src/common/focusBoundary/{index.js → index.ts} +0 -0
  100. /package/src/common/historyNavigator/{historyNavigator.spec.js → historyNavigator.spec.ts} +0 -0
  101. /package/src/common/historyNavigator/{index.js → index.ts} +0 -0
  102. /package/src/common/panel/__snapshots__/{Panel.spec.js.snap → Panel.spec.tsx.snap} +0 -0
  103. /package/src/common/panel/{index.js → index.ts} +0 -0
@@ -1,19 +1,19 @@
1
1
  import { useId } from '@radix-ui/react-id';
2
2
  import { Check } from '@transferwise/icons';
3
3
  import classNames from 'classnames';
4
- import React, { forwardRef, type FunctionComponent, useEffect, useState } from 'react';
4
+ import React, { forwardRef, FunctionComponent, useEffect, useState } from 'react';
5
5
 
6
6
  import Body from '../body';
7
7
  import { Typography } from '../common';
8
- import Card, { type CardProps } from '../common/card';
8
+ import Card, { CardProps } from '../common/card';
9
9
  import Display from '../display';
10
10
  import Image from '../image/Image';
11
11
  import Title from '../title';
12
12
 
13
13
  import { usePromoCardContext } from './PromoCardContext';
14
- import PromoCardIndicator, { type PromoCardIndicatorProps } from './PromoCardIndicator';
14
+ import PromoCardIndicator, { PromoCardIndicatorProps } from './PromoCardIndicator';
15
15
 
16
- export type ReferenceType = React.Ref<HTMLInputElement> | React.Ref<HTMLDivElement>;
16
+ export type ReferenceType = React.Ref<HTMLInputElement>;
17
17
  export type RelatedTypes =
18
18
  | ''
19
19
  | 'alternate'
@@ -68,9 +68,6 @@ export interface PromoCardCommonProps {
68
68
  /** Specify an onClick event handler */
69
69
  onClick?: () => void;
70
70
 
71
- /** Specify an onKeyDown event handler */
72
- onKeyDown?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
73
-
74
71
  /** Optional prop to specify the ID used for testing */
75
72
  testId?: string;
76
73
 
@@ -79,8 +76,6 @@ export interface PromoCardCommonProps {
79
76
 
80
77
  /** Set to false to use body font style for the title */
81
78
  useDisplayFont?: boolean;
82
-
83
- ref?: ReferenceType;
84
79
  }
85
80
 
86
81
  export interface PromoCardLinkProps extends PromoCardCommonProps, Omit<CardProps, 'children'> {
@@ -96,14 +91,6 @@ export interface PromoCardLinkProps extends PromoCardCommonProps, Omit<CardProps
96
91
  /** Optionally specify the language of the linked URL */
97
92
  hrefLang?: string;
98
93
 
99
- /** Optional property that can be pass a ref for the anchor. */
100
- anchorRef?: React.Ref<HTMLAnchorElement>;
101
-
102
- /**
103
- * Optional prop to specify the ID of the anchor element which can be useful when using a ref.
104
- */
105
- anchorId?: string;
106
-
107
94
  /**
108
95
  * Relationship between the PromoCard href URL and the current page. See
109
96
  * [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel).
@@ -118,7 +105,7 @@ export interface PromoCardLinkProps extends PromoCardCommonProps, Omit<CardProps
118
105
  isChecked?: never;
119
106
  tabIndex?: never;
120
107
  type?: never;
121
- ref?: ReferenceType;
108
+ reference?: never;
122
109
  value?: never;
123
110
  }
124
111
 
@@ -133,7 +120,7 @@ export interface PromoCardCheckedProps extends PromoCardCommonProps, Omit<CardPr
133
120
  tabIndex?: number;
134
121
 
135
122
  /** Optional property to provide component Ref */
136
- ref?: ReferenceType;
123
+ reference?: ReferenceType;
137
124
 
138
125
  /** Optional prop to specify the input type of the PromoCard */
139
126
  type?: 'checkbox' | 'radio';
@@ -144,8 +131,6 @@ export interface PromoCardCheckedProps extends PromoCardCommonProps, Omit<CardPr
144
131
  /** Only applies to <a />s */
145
132
  download?: never;
146
133
  href?: never;
147
- anchorRef?: never;
148
- anchorId?: never;
149
134
  hrefLang?: never;
150
135
  rel?: never;
151
136
  target?: never;
@@ -217,7 +202,6 @@ const PromoCard: FunctionComponent<PromoCardProps> = forwardRef(
217
202
  isChecked,
218
203
  isDisabled,
219
204
  onClick,
220
- onKeyDown,
221
205
  rel,
222
206
  tabIndex,
223
207
  target,
@@ -227,11 +211,9 @@ const PromoCard: FunctionComponent<PromoCardProps> = forwardRef(
227
211
  value,
228
212
  isSmall,
229
213
  useDisplayFont = true,
230
- anchorRef,
231
- anchorId,
232
214
  ...props
233
215
  },
234
- ref: ReferenceType,
216
+ reference,
235
217
  ) => {
236
218
  // Set the `checked` state to the value of `defaultChecked` if it is truthy,
237
219
  // or the value of `isChecked` if it is truthy, or `false` if neither
@@ -282,7 +264,7 @@ const PromoCard: FunctionComponent<PromoCardProps> = forwardRef(
282
264
  'np-Card--checked': !href && type,
283
265
  'np-Card--link': href && !type,
284
266
  'is-checked': type === 'radio' ? value === state : type === 'checkbox' ? checked : undefined,
285
- [String(className || '')]: className,
267
+ [`${className || ''}`]: className,
286
268
  });
287
269
 
288
270
  // Object with common props that will be passed to the `Card` components
@@ -291,8 +273,7 @@ const PromoCard: FunctionComponent<PromoCardProps> = forwardRef(
291
273
  id: componentId,
292
274
  isDisabled: isDisabled || contextIsDisabled,
293
275
  onClick,
294
- onKeyDown,
295
- ref,
276
+ ref: reference,
296
277
  'data-testid': testId,
297
278
  isSmall,
298
279
  };
@@ -307,8 +288,6 @@ const PromoCard: FunctionComponent<PromoCardProps> = forwardRef(
307
288
  hrefLang,
308
289
  rel,
309
290
  target,
310
- ref: anchorRef,
311
- id: anchorId,
312
291
  }
313
292
  : {};
314
293
 
@@ -329,7 +308,7 @@ const PromoCard: FunctionComponent<PromoCardProps> = forwardRef(
329
308
  handleClick();
330
309
  }
331
310
  },
332
- ref,
311
+ ref: reference,
333
312
  tabIndex: 0,
334
313
  }
335
314
  : {};
@@ -169,10 +169,10 @@ class WithDisplayFormat<T extends TextElementProps> extends Component<
169
169
  let newFormattedValue = '';
170
170
 
171
171
  if (this.detectUndoRedo(event) === 'Undo') {
172
- newFormattedValue = formatWithPattern(historyNavigator.undo(), displayPattern);
172
+ newFormattedValue = formatWithPattern(historyNavigator.undo().toString(), displayPattern);
173
173
  this.setState({ value: newFormattedValue, triggerType: 'Undo' });
174
174
  } else if (this.detectUndoRedo(event) === 'Redo') {
175
- newFormattedValue = formatWithPattern(historyNavigator.redo(), displayPattern);
175
+ newFormattedValue = formatWithPattern(historyNavigator.redo().toString(), displayPattern);
176
176
  this.setState({ value: newFormattedValue, triggerType: 'Redo' });
177
177
  } else {
178
178
  this.setState({
@@ -1,138 +0,0 @@
1
- .carousel {
2
- display: flex;
3
- align-items: center;
4
- overflow-x: scroll;
5
- overflow-y: hidden;
6
- scroll-snap-type: x mandatory;
7
- scroll-behavior: smooth;
8
- gap: 16px;
9
- gap: var(--size-16);
10
- }
11
- @media (max-width: 767px) {
12
- .carousel {
13
- gap: 8px;
14
- gap: var(--size-8);
15
- }
16
- }
17
- .carousel__header {
18
- display: flex;
19
- align-items: center;
20
- overflow: hidden;
21
- min-height: 32px;
22
- min-height: var(--size-32);
23
- padding-bottom: 16px;
24
- padding-bottom: var(--size-16);
25
- }
26
- .carousel__card,
27
- .carousel__card:hover,
28
- .carousel__card:focus,
29
- .carousel__card:focus-within {
30
- -webkit-text-decoration: none;
31
- text-decoration: none;
32
- outline: none !important;
33
- }
34
- .carousel__card {
35
- display: block;
36
- position: relative;
37
- text-align: left;
38
- border: none;
39
- overflow: hidden;
40
- background: rgba(134,167,189,0.10196);
41
- background: var(--color-background-neutral);
42
- border-radius: 32px;
43
- border-radius: var(--size-32);
44
- scroll-snap-align: center;
45
- -webkit-scroll-snap-align: center;
46
- transition: all 0.4s !important;
47
- }
48
- @media (min-width: 1200px) {
49
- .carousel__card {
50
- min-width: 280px;
51
- width: 280px;
52
- height: 280px;
53
- }
54
- }
55
- @media (max-width: 1199px) {
56
- .carousel__card {
57
- min-width: 242px;
58
- width: 242px;
59
- height: 242px;
60
- }
61
- }
62
- @media (max-width: 767px) {
63
- .carousel__card {
64
- min-width: 336px;
65
- width: 336px;
66
- height: 336px;
67
- scroll-snap-stop: always;
68
- }
69
- }
70
- .carousel__card:focus {
71
- outline: 0;
72
- }
73
- .carousel__card:focus:after,
74
- .carousel__card:focus-within:after {
75
- content: '';
76
- position: absolute;
77
- z-index: 4;
78
- top: 0;
79
- left: 0;
80
- width: 100%;
81
- height: 100%;
82
- border-radius: 32px;
83
- border-radius: var(--size-32);
84
- box-shadow: inset 0 0 0 2px var(--ring-outline-color);
85
- }
86
- .carousel__card:hover {
87
- background-color: var(--color-background-neutral-hover);
88
- }
89
- .carousel__card:focus {
90
- background-color: var(--color-background-neutral-hover);
91
- }
92
- .carousel__card-content {
93
- height: 100%;
94
- font-weight: normal;
95
- padding: 24px;
96
- padding: var(--size-24);
97
- }
98
- .carousel__scroll-button {
99
- width: 32px;
100
- width: var(--size-32);
101
- height: 32px;
102
- height: var(--size-32);
103
- align-items: center;
104
- justify-content: center;
105
- }
106
- .carousel__indicators {
107
- display: flex;
108
- justify-content: center;
109
- padding-top: 8px;
110
- padding-top: var(--size-8);
111
- gap: 8px;
112
- gap: var(--size-8);
113
- }
114
- .carousel__indicator {
115
- width: 12px;
116
- width: var(--size-12);
117
- height: 12px;
118
- height: var(--size-12);
119
- border-radius: 8px;
120
- border-radius: var(--size-8);
121
- background: #c9cbce;
122
- background: var(--color-interactive-secondary);
123
- border: none;
124
- -webkit-appearance: none;
125
- -moz-appearance: none;
126
- appearance: none;
127
- transition: all 0.1s;
128
- }
129
- .carousel__indicator:hover {
130
- width: 16px;
131
- width: var(--size-16);
132
- }
133
- .carousel__indicator--selected,
134
- .carousel__indicator--selected:hover {
135
- background: var(--color-interactive-primary);
136
- width: 24px;
137
- width: var(--size-24);
138
- }
@@ -1,26 +0,0 @@
1
- import { type CSSProperties, type ReactNode } from 'react';
2
- import type { PromoCardLinkProps } from '../promoCard/PromoCard';
3
- export type CarouselCardCommon = {
4
- id: string;
5
- href?: string;
6
- onClick?: () => void;
7
- className?: string;
8
- styles?: CSSProperties;
9
- };
10
- export type CarouselDefaultCard = CarouselCardCommon & {
11
- type: 'anchor' | 'button';
12
- content: ReactNode;
13
- };
14
- export type CarouselPromoCard = CarouselCardCommon & {
15
- type: 'promo';
16
- } & Omit<PromoCardLinkProps, 'type'>;
17
- export type CarouselCard = CarouselDefaultCard | CarouselPromoCard;
18
- export interface CarouselProps {
19
- header: string | ReactNode;
20
- className?: string;
21
- cards: CarouselCard[];
22
- onClick?: (cardId: string) => void;
23
- }
24
- declare const Carousel: React.FC<CarouselProps>;
25
- export default Carousel;
26
- //# sourceMappingURL=Carousel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Carousel.d.ts","sourceRoot":"","sources":["../../../src/carousel/Carousel.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,SAAS,EAA+B,MAAM,OAAO,CAAC;AAIxF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGjE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAAG;IACrD,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,OAAO,EAAE,SAAS,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,GAAG;IACnD,IAAI,EAAE,OAAO,CAAC;CACf,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;AAErC,MAAM,MAAM,YAAY,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AACnE,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAUD,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAkSrC,CAAC;AAYF,eAAe,QAAQ,CAAC"}
@@ -1,3 +0,0 @@
1
- export * from './Carousel';
2
- export { default } from './Carousel';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/carousel/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
@@ -1,138 +0,0 @@
1
- .carousel {
2
- display: flex;
3
- align-items: center;
4
- overflow-x: scroll;
5
- overflow-y: hidden;
6
- scroll-snap-type: x mandatory;
7
- scroll-behavior: smooth;
8
- gap: 16px;
9
- gap: var(--size-16);
10
- }
11
- @media (max-width: 767px) {
12
- .carousel {
13
- gap: 8px;
14
- gap: var(--size-8);
15
- }
16
- }
17
- .carousel__header {
18
- display: flex;
19
- align-items: center;
20
- overflow: hidden;
21
- min-height: 32px;
22
- min-height: var(--size-32);
23
- padding-bottom: 16px;
24
- padding-bottom: var(--size-16);
25
- }
26
- .carousel__card,
27
- .carousel__card:hover,
28
- .carousel__card:focus,
29
- .carousel__card:focus-within {
30
- -webkit-text-decoration: none;
31
- text-decoration: none;
32
- outline: none !important;
33
- }
34
- .carousel__card {
35
- display: block;
36
- position: relative;
37
- text-align: left;
38
- border: none;
39
- overflow: hidden;
40
- background: rgba(134,167,189,0.10196);
41
- background: var(--color-background-neutral);
42
- border-radius: 32px;
43
- border-radius: var(--size-32);
44
- scroll-snap-align: center;
45
- -webkit-scroll-snap-align: center;
46
- transition: all 0.4s !important;
47
- }
48
- @media (min-width: 1200px) {
49
- .carousel__card {
50
- min-width: 280px;
51
- width: 280px;
52
- height: 280px;
53
- }
54
- }
55
- @media (max-width: 1199px) {
56
- .carousel__card {
57
- min-width: 242px;
58
- width: 242px;
59
- height: 242px;
60
- }
61
- }
62
- @media (max-width: 767px) {
63
- .carousel__card {
64
- min-width: 336px;
65
- width: 336px;
66
- height: 336px;
67
- scroll-snap-stop: always;
68
- }
69
- }
70
- .carousel__card:focus {
71
- outline: 0;
72
- }
73
- .carousel__card:focus:after,
74
- .carousel__card:focus-within:after {
75
- content: '';
76
- position: absolute;
77
- z-index: 4;
78
- top: 0;
79
- left: 0;
80
- width: 100%;
81
- height: 100%;
82
- border-radius: 32px;
83
- border-radius: var(--size-32);
84
- box-shadow: inset 0 0 0 2px var(--ring-outline-color);
85
- }
86
- .carousel__card:hover {
87
- background-color: var(--color-background-neutral-hover);
88
- }
89
- .carousel__card:focus {
90
- background-color: var(--color-background-neutral-hover);
91
- }
92
- .carousel__card-content {
93
- height: 100%;
94
- font-weight: normal;
95
- padding: 24px;
96
- padding: var(--size-24);
97
- }
98
- .carousel__scroll-button {
99
- width: 32px;
100
- width: var(--size-32);
101
- height: 32px;
102
- height: var(--size-32);
103
- align-items: center;
104
- justify-content: center;
105
- }
106
- .carousel__indicators {
107
- display: flex;
108
- justify-content: center;
109
- padding-top: 8px;
110
- padding-top: var(--size-8);
111
- gap: 8px;
112
- gap: var(--size-8);
113
- }
114
- .carousel__indicator {
115
- width: 12px;
116
- width: var(--size-12);
117
- height: 12px;
118
- height: var(--size-12);
119
- border-radius: 8px;
120
- border-radius: var(--size-8);
121
- background: #c9cbce;
122
- background: var(--color-interactive-secondary);
123
- border: none;
124
- -webkit-appearance: none;
125
- -moz-appearance: none;
126
- appearance: none;
127
- transition: all 0.1s;
128
- }
129
- .carousel__indicator:hover {
130
- width: 16px;
131
- width: var(--size-16);
132
- }
133
- .carousel__indicator--selected,
134
- .carousel__indicator--selected:hover {
135
- background: var(--color-interactive-primary);
136
- width: 24px;
137
- width: var(--size-24);
138
- }
@@ -1,137 +0,0 @@
1
- .carousel {
2
- display: flex;
3
- align-items: center;
4
- overflow-x: scroll;
5
- overflow-y: hidden;
6
- scroll-snap-type: x mandatory;
7
- scroll-behavior: smooth;
8
- gap: var(--size-16);
9
- }
10
-
11
- @media (--screen-sm-max) {
12
- .carousel {
13
- gap: var(--size-8);
14
- }
15
- }
16
-
17
-
18
- .carousel__header {
19
- display: flex;
20
- align-items: center;
21
- overflow: hidden;
22
- min-height: var(--size-32);
23
- padding-bottom: var(--size-16)
24
- }
25
-
26
- .carousel__card,
27
- .carousel__card:hover,
28
- .carousel__card:focus,
29
- .carousel__card:focus-within {
30
- text-decoration: none;
31
- outline: none !important; // The specificity of the outline property is too high, so we need to use !important to override it for PromoCard
32
- }
33
-
34
- .carousel__card {
35
- display: block;
36
- position: relative;
37
- text-align: left;
38
- border: none;
39
- overflow: hidden;
40
- background: var(--color-background-neutral);
41
- border-radius: var(--size-32);
42
- scroll-snap-align: center;
43
- -webkit-scroll-snap-align: center;
44
- transition: all 0.4s !important; // The specificity of the transition property is too high, so we need to use !important to override it for PromoCard
45
- }
46
-
47
- @media (--screen-xl) {
48
- .carousel__card {
49
- min-width: 280px;
50
- width: 280px;
51
- height: 280px;
52
- }
53
- }
54
-
55
-
56
- @media (--screen-lg-max) {
57
- .carousel__card {
58
- min-width: 242px;
59
- width: 242px;
60
- height: 242px;
61
- }
62
- }
63
-
64
-
65
- @media (--screen-sm-max) {
66
- .carousel__card {
67
- min-width: 336px;
68
- width: 336px;
69
- height: 336px;
70
- scroll-snap-stop: always;
71
- }
72
- }
73
-
74
- .carousel__card:focus {
75
- outline: 0;
76
- }
77
-
78
- .carousel__card:focus:after,
79
- .carousel__card:focus-within:after {
80
- content: '';
81
- position: absolute;
82
- z-index: 4;
83
- top: 0;
84
- left: 0;
85
- width: 100%;
86
- height: 100%;
87
- border-radius: var(--size-32);
88
- box-shadow: inset 0 0 0 2px var(--ring-outline-color);
89
- }
90
-
91
- .carousel__card:hover {
92
- background-color: var(--color-background-neutral-hover);
93
- }
94
-
95
- .carousel__card:focus {
96
- background-color: var(--color-background-neutral-hover);
97
- }
98
-
99
- .carousel__card-content {
100
- height: 100%;
101
- font-weight: normal;
102
- padding: var(--size-24);
103
- }
104
-
105
- .carousel__scroll-button {
106
- width: var(--size-32);
107
- height: var(--size-32);
108
- align-items: center;
109
- justify-content: center;
110
- }
111
-
112
- .carousel__indicators {
113
- display: flex;
114
- justify-content: center;
115
- padding-top: var(--size-8);
116
- gap: var(--size-8);
117
- }
118
-
119
- .carousel__indicator {
120
- width: var(--size-12);
121
- height: var(--size-12);
122
- border-radius: var(--size-8);
123
- background: var(--color-interactive-secondary);
124
- border: none;
125
- appearance: none;
126
- transition: all 0.1s;
127
- }
128
-
129
- .carousel__indicator:hover {
130
- width: var(--size-16)
131
- }
132
-
133
- .carousel__indicator--selected,
134
- .carousel__indicator--selected:hover {
135
- background: var(--color-interactive-primary);
136
- width: var(--size-24);
137
- }