Codemods

The American Express Design System provides a unified language for designing American Express websites and experiences. The design system provides design resources that match our coded components and are aligned with the American Express brand. Included are colors, components, icons and glyphs, type styles, and graphic assets to get you up and running quickly.

On this page

Back to All Codemods

Input Transform

Converts a v6 Input component to a v7 Input component.

Automatic Changes

  • Renames the locale prop to the native HTML lang prop.
  • Renames the describedBy prop to the native HTML aria-describedby prop.
  • Deletes the showStateIcon prop, as it is deprecated in v7. To show a state icon below the Input, use the status and statusMessage props.
  • Attempts to transform the deprecated theme prop to the className prop. If it cannot, deletes the theme prop.

For example:

import { Input } from '@americanexpress/dls-react6';

export default function Page() {

return (

<Input

id="input-id"

locale="en-US"

describedBy="label-id"

showStateIcon={true}

theme={{ color: 'red' }}

{...otherProps}

/>

);

}

Transforms into:

import { Input } from '@americanexpress/dls-react';

export default function Page() {

return (

<Input

id="input-id"

lang="en-US"

aria-describedby="label-id"

{...otherProps}

/>

);

}

Manual Changes

  • A visible label is required for all Input components in v7. There are two props that can be used: the label prop or the aria-labelledby prop.

For example:

import { Input, Label } from '@americanexpress/dls-react';

export default function Page() {

return (

<>

<Label htmlFor="input-id">Label Text</Label>

<Input id="input-id" />

</>

);

}

Should be manually updated to either:

import { Input } from '@americanexpress/dls-react';

export default function Page() {

return <Input id="input-id" label="Label Text" />;

}

Or:

import { Input, Label } from '@americanexpress/dls-react';

export default function Page() {

return (

<>

<Label id="label-id">Label Text</Label>

<Input id="input-id" aria-labelledby="label-id" />

</>

);

}

Questions?

Connect with the DLS Team on Slack or by email.

Resources

Check out additional resources.