Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
7729cf2
move replace vivo with vivo-new, and add vivo-evolution
brtbrt Jun 30, 2026
cebff06
update failing screenshot
brtbrt Jun 30, 2026
0021439
update audit for the new skins
brtbrt Jun 30, 2026
c392b89
feat(skin)!: remove Tu skin
brtbrt Jun 30, 2026
31801be
chore(ci): run CI on all PRs regardless of base branch
brtbrt Jun 30, 2026
9580f9c
Merge branch 'mbertamini/1596-remove-tu-skin' into mbertamini/1597-re…
brtbrt Jul 1, 2026
48e3e80
feat(skin)!: replace O2 skin with O2-new
brtbrt Jul 1, 2026
1b03319
fix(skin): remove unused import in icon-success after O2-new cleanup
brtbrt Jul 1, 2026
1684909
fix(skin): remove remaining O2-new references after O2 replacement
brtbrt Jul 1, 2026
44f814d
fix(skin): remove remaining Tu skin css and config references
brtbrt Jul 1, 2026
cd3b5ef
Merge branch 'mbertamini/1596-remove-tu-skin' into mbertamini/1597-re…
brtbrt Jul 1, 2026
94e1276
feat(skin)!: replace Movistar skin with Movistar-new
brtbrt Jul 1, 2026
67c7540
test(skin): remove orphaned Movistar-new screenshot baselines
brtbrt Jul 1, 2026
6dbab23
test(skin): keep instability warning on Movistar popover/tooltip tests
brtbrt Jul 1, 2026
efd8609
[bot] Update screenshots
brtbrt Jul 2, 2026
6426fec
test(skin): link Movistar tooltip/popover instability TODOs to tracki…
brtbrt Jul 2, 2026
6dbc6ce
update unstable tests
brtbrt Jul 2, 2026
0aa78f1
fix unstable tooltip tests
brtbrt Jul 2, 2026
951aa59
test(skin): remove orphaned O2-new screenshot snapshots
brtbrt Jul 2, 2026
2b825ce
[bot] Update screenshots
brtbrt Jul 2, 2026
7b900a7
Merge branch 'mbertamini/1597-remove-o2new-skin' into mbertamini/1617…
brtbrt Jul 2, 2026
526d832
feat(Chore)!: replace data-component-name with data-testid
brtbrt Jul 2, 2026
3474bd4
Merge branch 'master' into mbertamini/1598-data-testid
brtbrt Jul 14, 2026
85e883d
fix comments from PR
brtbrt Jul 14, 2026
be282e0
fix comments from PR
brtbrt Jul 14, 2026
f6bf993
fix comments from PR
brtbrt Jul 14, 2026
32ba436
fix ts linting problems
brtbrt Jul 14, 2026
f055051
completely remove componentName
brtbrt Jul 14, 2026
2cc2302
trigger CI
brtbrt Jul 14, 2026
0b44d73
fix tests
brtbrt Jul 14, 2026
7e85fa6
feat(types): allow component-name in DataAttributes
brtbrt Jul 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ coverage/
.directory
.DS_Store
.idea/
mistica-web.iml

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I use intellij, I don't want to further commit it, unless explicitly

*.js.map
*.orig
*.rej
Expand Down Expand Up @@ -32,3 +33,4 @@ community.d.ts
.scannerwork
*storybook.log
.env*.local

18 changes: 9 additions & 9 deletions doc/fonts.md

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this was bad by previous PRs. fixed here

Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ default serif font (Times New Roman on desktop). You must declare `@font-face` r

Each skin has a designated font family. Use the correct one for the skin your app is using:

| Skin | Getter function | Font family |
| --------------------- | ------------------------ | ------------------- |
| `movistar` _(legacy)_ | `getMovistarSkin()` | `'On Air'` |
| `o2` | `getO2Skin()` | `'On Air'` |
| `vivo` | `getVivoSkin()` | `'Vivo Type'` |
| `vivo-evolution` | `getVivoEvolutionSkin()` | `'Vivo Type'` |
| `telefonica` | `getTelefonicaSkin()` | `'Telefonica Sans'` |
| `blau` | `getBlauSkin()` | `'Roboto'` |
| `esimflag` | `getEsimflagSkin()` | `'On Air'` |
| Skin | Getter function | Font family |
| ---------------- | ------------------------ | ------------------- |
| `movistar` | `getMovistarSkin()` | `'Movistar Sans'` |
| `o2` | `getO2Skin()` | `'On Air'` |
| `vivo` | `getVivoSkin()` | `'Vivo Type'` |
| `vivo-evolution` | `getVivoEvolutionSkin()` | `'Vivo Type'` |
| `telefonica` | `getTelefonicaSkin()` | `'Telefonica Sans'` |
| `blau` | `getBlauSkin()` | `'Roboto'` |
| `esimflag` | `getEsimflagSkin()` | `'On Air'` |

## Setting font-family

Expand Down
8 changes: 4 additions & 4 deletions doc/llms/agents/figma-verifier.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,10 @@ rules before starting.
`font-family`, composite props that don't match the non-CodeConnect DOM, spacing values absent from the
DOM, mismatched semantic structure (`Stack` vs `Inline`, flat vs nested), native HTML where a Mistica
primitive exists, wrong/missing skin/font/body-background for the file's brand.
- **Layout primitives.** When the DOM shows `grid grid-cols-[repeat(12,…)]` with `col-[…/span_N]`
children, flag any implementation that used a raw `<div style={{display:'grid'}}>`, a fixed-width flex
row, `Grid`, or manual spacer columns instead of a `GridLayout` whose `template` matches the child
spans. Flag a `GridLayout` that is not wrapped in a `ResponsiveLayout`, and a full-width padded section
- **Layout primitives.** When the DOM shows `grid grid-cols-[repeat(12,…)]` with `col-[…/span_N]` children,
flag any implementation that used a raw `<div style={{display:'grid'}}>`, a fixed-width flex row, `Grid`,
or manual spacer columns instead of a `GridLayout` whose `template` matches the child spans. Flag a
`GridLayout` that is not wrapped in a `ResponsiveLayout`, and a full-width padded section
(`px-[48/32/16px]`) implemented without a `ResponsiveLayout`. Conversely, flag double-wrapping a
component that embeds its own `ResponsiveLayout` (`MainNavigationBar`, `NavigationBar`, `Tabs`).

Expand Down
2 changes: 1 addition & 1 deletion packages/generate-design-tokens/index.js

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here: fixed on this PR

Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ console.log('Using design tokens from:', DESIGN_TOKENS_FOLDER);
const SKINS_FOLDER = path.join(import.meta.dirname, '..', '..', 'src', 'skins');
const CSS_FOLDER = path.join(import.meta.dirname, '..', '..', 'css');

const KNOWN_SKINS = ['blau', 'movistar', 'o2', 'o2-new', 'telefonica', 'vivo', 'vivo-new', 'tu', 'esimflag'];
const KNOWN_SKINS = ['blau', 'movistar', 'o2', 'telefonica', 'vivo', 'vivo-evolution', 'esimflag'];

const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1);
const toCamelCase = (str) => str.replace(/-([a-z])/g, (g) => g[1].toUpperCase());
Expand Down
16 changes: 16 additions & 0 deletions src/__type_tests__/data-attributes-type-test.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import type {DataAttributes} from '../utils/types';

const validAttrs: DataAttributes = {
testid: 'MyComponent',
custom: 'value',
count: 42,
enabled: true,
// eslint-disable-next-line object-shorthand
undefined: undefined,
};

// component-name is allowed
const validAttrsWithComponentName: DataAttributes = {
'component-name': 'MyComponent',
testid: 'MyComponent',
};
8 changes: 4 additions & 4 deletions src/accordion.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@ export const AccordionItem = React.forwardRef<TouchableElement, AccordionItemCon
<AccordionItemContent
{...props}
ref={ref}
dataAttributes={{'component-name': 'AccordionItem', ...dataAttributes}}
dataAttributes={{testid: 'AccordionItem', ...dataAttributes}}
/>
</div>
)
Expand Down Expand Up @@ -297,7 +297,7 @@ export const Accordion = ({
<AccordionContext.Provider value={{index: indexList, toggle}}>
<div
role={role}
{...getPrefixedDataAttributes({...dataAttributes, accordion: true}, 'Accordion')}
{...getPrefixedDataAttributes({testid: 'Accordion', ...dataAttributes, accordion: true})}
>
{childrenContent.map((child, index) => (
<React.Fragment key={index}>
Expand Down Expand Up @@ -329,7 +329,7 @@ export const BoxedAccordionItem = React.forwardRef<HTMLDivElement, BoxedAccordio
className={styles.boxed}
variant={variant ?? (isInverse ? 'brand' : 'default')}
ref={ref}
dataAttributes={{'component-name': 'BoxedAccordionItem', ...dataAttributes}}
dataAttributes={{testid: 'BoxedAccordionItem', ...dataAttributes}}
>
<AccordionItemContent {...props} />
</InternalBoxed>
Expand Down Expand Up @@ -357,7 +357,7 @@ export const BoxedAccordion = ({
<Stack
space={16}
role={role}
dataAttributes={{'component-name': 'BoxedAccordion', accordion: true, ...dataAttributes}}
dataAttributes={{testid: 'BoxedAccordion', accordion: true, ...dataAttributes}}
>
{children}
</Stack>
Expand Down
2 changes: 1 addition & 1 deletion src/align.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ type Props = {
const Align = ({x = 'start', y = 'start', width, height, children, dataAttributes}: Props): JSX.Element => {
return (
<div
{...getPrefixedDataAttributes(dataAttributes, 'Align')}
{...getPrefixedDataAttributes({testid: 'Align', ...dataAttributes})}
className={styles.container}
style={{
placeItems: `${y} ${x}`,
Expand Down
2 changes: 1 addition & 1 deletion src/avatar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ const Avatar = ({
boxSizing: 'border-box',
border,
}}
{...getPrefixedDataAttributes(dataAttributes, 'Avatar')}
{...getPrefixedDataAttributes({testid: 'Avatar', ...dataAttributes})}
>
{shouldRenderImage ? (
<img
Expand Down
5 changes: 4 additions & 1 deletion src/badge.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,10 @@ const Badge = ({children, value, right, top, dataAttributes}: Props): JSX.Elemen
themeVariant === 'brand' || themeVariant === 'negative' || themeVariant === 'media' || !!children;

return (
<div className={classes.container} {...getPrefixedDataAttributes(dataAttributes, 'Badge')}>
<div
className={classes.container}
{...getPrefixedDataAttributes({testid: 'Badge', ...dataAttributes})}
>
{children}
{value ? (
<div
Expand Down
2 changes: 1 addition & 1 deletion src/button-group.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ const ButtonGroup = ({
[styles.centerInMobile]: alignByBreakpoint.mobile === 'center',
}
)}
{...getPrefixedDataAttributes(dataAttributes, 'ButtonGroup')}
{...getPrefixedDataAttributes({testid: 'ButtonGroup', ...dataAttributes})}
>
{(primaryButton || secondaryButton) && (
<div
Expand Down
2 changes: 1 addition & 1 deletion src/button-layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ const ButtonLayout = ({
className={classnames(styles.container, styles.alignVariant[align], {
[styles.containerWithTwoButtons]: numberOfButtons > 1,
})}
{...getPrefixedDataAttributes(dataAttributes, 'ButtonLayout')}
{...getPrefixedDataAttributes({testid: 'ButtonLayout', ...dataAttributes})}
>
{align !== 'right' || numberOfButtons > 1 ? (
<>
Expand Down
7 changes: 2 additions & 5 deletions src/button.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -566,7 +566,7 @@ export const ButtonLink = React.forwardRef<
>(({dataAttributes, className, ...props}, ref) => {
return (
<BaseButton
dataAttributes={{'component-name': 'ButtonLink', testid: 'ButtonLink', ...dataAttributes}}
dataAttributes={{testid: 'ButtonLink', ...dataAttributes}}
className={classnames(className, {[styles.smallLink]: props.small})}
{...props}
ref={ref}
Expand All @@ -580,7 +580,6 @@ export const ButtonLinkDanger = React.forwardRef<TouchableElement, ButtonLinkPro
return (
<BaseButton
dataAttributes={{
'component-name': 'ButtonLinkDanger',
testid: 'ButtonLinkDanger',
...dataAttributes,
}}
Expand All @@ -599,7 +598,6 @@ export const ButtonPrimary = React.forwardRef<TouchableElement, ButtonProps>(
return (
<BaseButton
dataAttributes={{
'component-name': 'ButtonPrimary',
testid: 'ButtonPrimary',
...dataAttributes,
}}
Expand All @@ -616,7 +614,6 @@ export const ButtonSecondary = React.forwardRef<TouchableElement, ButtonProps>(
return (
<BaseButton
dataAttributes={{
'component-name': 'ButtonSecondary',
testid: 'ButtonSecondary',
...dataAttributes,
}}
Expand All @@ -632,7 +629,7 @@ export const ButtonDanger = React.forwardRef<TouchableElement, ButtonProps>(
({dataAttributes, ...props}, ref) => {
return (
<BaseButton
dataAttributes={{'component-name': 'ButtonDanger', testid: 'ButtonDanger', ...dataAttributes}}
dataAttributes={{testid: 'ButtonDanger', ...dataAttributes}}
{...props}
ref={ref}
buttonType="danger"
Expand Down
2 changes: 1 addition & 1 deletion src/callout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ const Callout = ({
})}
aria-label={ariaLabel}
role={role}
{...getPrefixedDataAttributes(dataAttributes, 'Callout')}
{...getPrefixedDataAttributes({testid: 'Callout', ...dataAttributes})}
>
<ThemeVariant variant={variant}>
{asset && (
Expand Down
3 changes: 0 additions & 3 deletions src/card-cover.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@ export const CoverCard = React.forwardRef<HTMLDivElement, MaybeTouchableCard<Cov
<InternalCard
ref={ref}
dataAttributes={{
'component-name': 'CoverCard',
testid: 'CoverCard',
...dataAttributes,
}}
Expand Down Expand Up @@ -191,7 +190,6 @@ export const PosterCard = React.forwardRef<HTMLDivElement, MaybeTouchableCard<Po
size={size}
variant={variant || (isInverse ? 'inverse' : undefined)}
dataAttributes={{
'component-name': 'PosterCard',
testid: 'PosterCard',
...dataAttributes,
}}
Expand Down Expand Up @@ -231,7 +229,6 @@ export const DisplayMediaCard = React.forwardRef<HTMLDivElement, MaybeTouchableC
size="display"
buttonSecondary={buttonSecondary || secondaryButton}
dataAttributes={{
'component-name': 'DisplayMediaCard',
testid: 'DisplayMediaCard',
...dataAttributes,
}}
Expand Down
3 changes: 0 additions & 3 deletions src/card-data.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,6 @@ export const DataCard = React.forwardRef<HTMLDivElement, MaybeTouchableCard<Data
type="data"
size={size}
dataAttributes={{
'component-name': 'DataCard',
testid: 'DataCard',
...dataAttributes,
}}
Expand All @@ -112,7 +111,6 @@ export const SnapCard = React.forwardRef<HTMLDivElement, MaybeTouchableCard<Fixe
<DataCard
size="snap"
dataAttributes={{
'component-name': 'SnapCard',
testid: 'SnapCard',
...dataAttributes,
}}
Expand All @@ -138,7 +136,6 @@ export const DisplayDataCard = React.forwardRef<HTMLDivElement, MaybeTouchableCa
<DataCard
size="display"
dataAttributes={{
'component-name': 'DisplayDataCard',
testid: 'DisplayDataCard',
...dataAttributes,
}}
Expand Down
2 changes: 1 addition & 1 deletion src/card-internal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ const Container = React.forwardRef<HTMLDivElement, ContainerProps & MediaProps &
aria-description={ariaDescription}
aria-describedby={ariaDescribedby}
className={classnames(styles.container)}
{...getPrefixedDataAttributes(dataAttributes, 'InternalCard')}
{...getPrefixedDataAttributes({testid: 'InternalCard', ...dataAttributes})}
style={{
width: width || '100%',
height: height || '100%',
Expand Down
2 changes: 0 additions & 2 deletions src/card-media.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,6 @@ export const MediaCard = React.forwardRef<HTMLDivElement, MaybeTouchableCard<Med
variant="default"
size={size}
dataAttributes={{
'component-name': 'MediaCard',
testid: 'MediaCard',
...dataAttributes,
}}
Expand Down Expand Up @@ -142,7 +141,6 @@ export const HighlightedCard = React.forwardRef<
mediaPosition="right"
mediaWidth={mediaWidth || 100}
dataAttributes={{
'component-name': 'HighlightedCard',
testid: 'HighlightedCard',
...dataAttributes,
}}
Expand Down
2 changes: 0 additions & 2 deletions src/card-naked.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ export const NakedCard = React.forwardRef<HTMLDivElement, MaybeTouchableCard<Nak
return (
<InternalCard
dataAttributes={{
'component-name': 'NakedCard',
testid: 'NakedCard',
...dataAttributes,
}}
Expand All @@ -49,7 +48,6 @@ export const SmallNakedCard = React.forwardRef<HTMLDivElement, MaybeTouchableCar
return (
<NakedCard
dataAttributes={{
'component-name': 'SmallNakedCard',
testid: 'SmallNakedCard',
...dataAttributes,
}}
Expand Down
5 changes: 2 additions & 3 deletions src/carousel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ export const PageBullets = ({currentIndex, numPages}: PageBulletsProps): JSX.Ele

return (
<div
{...getPrefixedDataAttributes({'component-name': 'PageBullets', testid: 'PageBullets'})}
{...getPrefixedDataAttributes({testid: 'PageBullets'})}
className={classNames(styles.bulletsScrollableContainerBase, {
[styles.bulletsScrollableContainer]: pagesCount > styles.VISIBLE_BULLETS,
})}
Expand Down Expand Up @@ -810,7 +810,6 @@ const BaseCarousel = ({
return (
<div
{...getPrefixedDataAttributes({
'component-name': 'Carousel',
testid: 'Carousel',
...dataAttributes,
})}
Expand Down Expand Up @@ -1230,7 +1229,7 @@ export const Slideshow = ({
className={classNames(styles.slideshowContainer, {
[styles.slideshowWithBullets]: !!withBullets,
})}
{...getPrefixedDataAttributes(dataAttributes, 'SlideShow')}
{...getPrefixedDataAttributes({testid: 'SlideShow', ...dataAttributes})}
>
{items.length > 1 &&
(withControls ? (
Expand Down
2 changes: 1 addition & 1 deletion src/checkbox.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ const Checkbox = React.forwardRef<HTMLDivElement, RenderProps | ChildrenProps>((
aria-label={ariaLabel}
aria-labelledby={ariaLabel ? undefined : labelId}
aria-disabled={disabled}
{...getPrefixedDataAttributes(props.dataAttributes, 'Checkbox')}
{...getPrefixedDataAttributes({testid: 'Checkbox', ...props.dataAttributes})}
>
{props.render ? (
props.render({
Expand Down
2 changes: 1 addition & 1 deletion src/chip.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ const Chip = (props: ChipProps): JSX.Element => {
</>
);

const chipDataAttributes = {'component-name': 'Chip', testid: 'Chip', ...dataAttributes};
const chipDataAttributes = {testid: 'Chip', ...dataAttributes};

if (onClose) {
return (
Expand Down
2 changes: 1 addition & 1 deletion src/circle.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ const Circle = ({
: `center / cover no-repeat ${imageStyle} ${backgroundColor || ''}`,
border: borderProp,
}}
{...getPrefixedDataAttributes(dataAttributes, 'Circle')}
{...getPrefixedDataAttributes({testid: 'Circle', ...dataAttributes})}
>
{children}
</div>
Expand Down
2 changes: 1 addition & 1 deletion src/community/advanced-data-card.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -350,7 +350,7 @@ export const AdvancedDataCard = React.forwardRef<HTMLDivElement, AdvancedDataCar
return (
<section
className={styles.container}
{...getPrefixedDataAttributes(dataAttributes, 'AdvancedDataCard')}
{...getPrefixedDataAttributes({testid: 'AdvancedDataCard', ...dataAttributes})}
ref={ref}
aria-label={isTouchable ? undefined : ariaLabel}
>
Expand Down
2 changes: 1 addition & 1 deletion src/community/ai-card.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@ const AiCard = ({
})
: undefined
}
dataAttributes={{'component-name': 'AiCard', testid: 'AiCard', ...dataAttributes}}
dataAttributes={{testid: 'AiCard', ...dataAttributes}}
{...(touchableProps as any)}
aria-label={ariaLabel ?? autoAriaLabel}
>
Expand Down
2 changes: 1 addition & 1 deletion src/counter.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ const Counter = ({
return (
<div
className={classNames(styles.counter, {[styles.disabled]: disabled})}
{...getPrefixedDataAttributes(dataAttributes, 'Counter')}
{...getPrefixedDataAttributes({testid: 'Counter', ...dataAttributes})}
style={{
border: `1px solid ${(variant === 'brand' || variant === 'media' || variant === 'negative') && !isDarkMode ? vars.colors.backgroundContainer : vars.colors.inputBorder}`,
}}
Expand Down
2 changes: 1 addition & 1 deletion src/cover-hero.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ const CoverHero = React.forwardRef<HTMLDivElement, CoverHeroProps>(

return (
<section
{...getPrefixedDataAttributes(dataAttributes, 'CoverHero')}
{...getPrefixedDataAttributes({testid: 'CoverHero', ...dataAttributes})}
aria-label={ariaLabel}
ref={ref}
className={classnames(styles.coverHeroContainer, {
Expand Down
1 change: 0 additions & 1 deletion src/credit-card-expiration-field.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,6 @@ const CreditCardExpirationField = ({
autoComplete={autoComplete}
inputComponent={MonthYearDateInput}
dataAttributes={{
'component-name': 'CreditCardExpirationField',
testid: 'CreditCardExpirationField',
...dataAttributes,
}}
Expand Down
Loading
Loading