@transferwise/components 46.102.0 → 46.103.1
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.
- package/build/button/Button.js +1 -0
- package/build/button/Button.js.map +1 -1
- package/build/button/Button.mjs +1 -0
- package/build/button/Button.mjs.map +1 -1
- package/build/common/RadioButton/RadioButton.js +5 -2
- package/build/common/RadioButton/RadioButton.js.map +1 -1
- package/build/common/RadioButton/RadioButton.mjs +5 -2
- package/build/common/RadioButton/RadioButton.mjs.map +1 -1
- package/build/flowNavigation/animatedLabel/AnimatedLabel.js +2 -3
- package/build/flowNavigation/animatedLabel/AnimatedLabel.js.map +1 -1
- package/build/flowNavigation/animatedLabel/AnimatedLabel.mjs +1 -2
- package/build/flowNavigation/animatedLabel/AnimatedLabel.mjs.map +1 -1
- package/build/i18n/ja.json +1 -1
- package/build/i18n/ja.json.js +1 -1
- package/build/i18n/ja.json.mjs +1 -1
- package/build/i18n/pt.json +2 -0
- package/build/i18n/pt.json.js +2 -0
- package/build/i18n/pt.json.js.map +1 -1
- package/build/i18n/pt.json.mjs +2 -0
- package/build/i18n/pt.json.mjs.map +1 -1
- package/build/iconButton/IconButton.js.map +1 -1
- package/build/iconButton/IconButton.mjs.map +1 -1
- package/build/image/Image.js.map +1 -1
- package/build/image/Image.mjs.map +1 -1
- package/build/index.js +2 -2
- package/build/index.mjs +1 -1
- package/build/list/List.js +21 -0
- package/build/list/List.js.map +1 -0
- package/build/list/List.mjs +17 -0
- package/build/list/List.mjs.map +1 -0
- package/build/main.css +3 -1
- package/build/styles/avatarView/AvatarView.css +3 -1
- package/build/styles/main.css +3 -1
- package/build/switch/Switch.js +3 -1
- package/build/switch/Switch.js.map +1 -1
- package/build/switch/Switch.mjs +3 -1
- package/build/switch/Switch.mjs.map +1 -1
- package/build/test-utils/assets/placeholder-landscape.svg +1 -0
- package/build/test-utils/assets/placeholder-portrait.svg +1 -0
- package/build/types/button/Button.d.ts.map +1 -1
- package/build/types/button/Button.types.d.ts +1 -1
- package/build/types/button/Button.types.d.ts.map +1 -1
- package/build/types/button/index.d.ts +1 -1
- package/build/types/button/index.d.ts.map +1 -1
- package/build/types/common/RadioButton/RadioButton.d.ts +3 -1
- package/build/types/common/RadioButton/RadioButton.d.ts.map +1 -1
- package/build/types/iconButton/IconButton.d.ts +2 -2
- package/build/types/iconButton/IconButton.d.ts.map +1 -1
- package/build/types/image/Image.d.ts +3 -0
- package/build/types/image/Image.d.ts.map +1 -1
- package/build/types/image/index.d.ts +1 -0
- package/build/types/image/index.d.ts.map +1 -1
- package/build/types/index.d.ts +4 -2
- package/build/types/index.d.ts.map +1 -1
- package/build/types/legacylistItem/index.d.ts +0 -2
- package/build/types/legacylistItem/index.d.ts.map +1 -1
- package/build/types/list/List.d.ts +11 -0
- package/build/types/list/List.d.ts.map +1 -0
- package/build/types/list/index.d.ts +3 -0
- package/build/types/list/index.d.ts.map +1 -0
- package/build/types/switch/Switch.d.ts +3 -1
- package/build/types/switch/Switch.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/avatarView/AvatarView.css +3 -1
- package/src/avatarView/AvatarView.less +2 -1
- package/src/button/Button.spec.tsx +18 -0
- package/src/button/Button.story.tsx +91 -1
- package/src/button/Button.tsx +5 -1
- package/src/button/Button.types.ts +1 -1
- package/src/button/index.ts +1 -1
- package/src/checkboxButton/CheckboxButton.story.tsx +27 -8
- package/src/common/RadioButton/RadioButton.tsx +6 -1
- package/src/flowNavigation/animatedLabel/AnimatedLabel.tsx +1 -1
- package/src/i18n/ja.json +1 -1
- package/src/i18n/pt.json +2 -0
- package/src/iconButton/IconButton.story.tsx +1 -1
- package/src/iconButton/IconButton.tsx +1 -1
- package/src/image/Image.tsx +3 -0
- package/src/image/index.ts +1 -0
- package/src/index.ts +4 -2
- package/src/legacylistItem/LegacyListItem.story.tsx +2 -2
- package/src/legacylistItem/LegacyListItem.tests.story.tsx +2 -1
- package/src/legacylistItem/index.ts +0 -2
- package/src/list/List.spec.tsx +52 -0
- package/src/list/List.story.tsx +20 -0
- package/src/list/List.tsx +15 -0
- package/src/list/index.ts +2 -0
- package/src/main.css +3 -1
- package/src/switch/Switch.tsx +6 -2
- package/src/test-utils/assets/placeholder-landscape.svg +1 -0
- package/src/test-utils/assets/placeholder-portrait.svg +1 -0
- package/build/legacylistItem/List.js +0 -17
- package/build/legacylistItem/List.js.map +0 -1
- package/build/legacylistItem/List.mjs +0 -15
- package/build/legacylistItem/List.mjs.map +0 -1
- package/build/types/legacylistItem/List.d.ts +0 -6
- package/build/types/legacylistItem/List.d.ts.map +0 -1
- package/src/legacylistItem/List.tsx +0 -10
- package/src/test-utils/Parameters.d.ts +0 -77
|
@@ -29,21 +29,40 @@ export const Basic: Story = {
|
|
|
29
29
|
},
|
|
30
30
|
};
|
|
31
31
|
|
|
32
|
+
/**
|
|
33
|
+
* The `indeterminate` state is predominantly visual and should match the [native HTML checkbox
|
|
34
|
+
* implementation](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/indeterminate).
|
|
35
|
+
* It is used to indicate a mixed state, where some but not all items are selected, but does not
|
|
36
|
+
* change the `checked` state of the input itself – it remains either checked or unchecked.
|
|
37
|
+
*
|
|
38
|
+
* In the example below the 1st checkbox is unchecked and the 2nd checkbox is checked.
|
|
39
|
+
*/
|
|
32
40
|
export const Indeterminate: Story = {
|
|
33
41
|
args: {
|
|
34
|
-
'aria-label': 'Group checkbox with indeterminate state',
|
|
35
42
|
indeterminate: true,
|
|
36
43
|
},
|
|
37
44
|
render: (args) => {
|
|
38
|
-
const [
|
|
45
|
+
const [checked1, setChecked1] = useState<boolean | undefined>(false);
|
|
46
|
+
const [checked2, setChecked2] = useState<boolean | undefined>(true);
|
|
39
47
|
|
|
40
48
|
return (
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
49
|
+
<>
|
|
50
|
+
<CheckboxButton
|
|
51
|
+
{...args}
|
|
52
|
+
checked={checked1}
|
|
53
|
+
indeterminate={args.indeterminate}
|
|
54
|
+
aria-label="Initially disabled checkbox with indeterminate state"
|
|
55
|
+
onChange={() => setChecked1((current) => !current)}
|
|
56
|
+
/>
|
|
57
|
+
|
|
58
|
+
<CheckboxButton
|
|
59
|
+
{...args}
|
|
60
|
+
checked={checked2}
|
|
61
|
+
indeterminate={args.indeterminate}
|
|
62
|
+
aria-label="Initially enabled checkbox with indeterminate state"
|
|
63
|
+
onChange={() => setChecked2((current) => !current)}
|
|
64
|
+
/>
|
|
65
|
+
</>
|
|
47
66
|
);
|
|
48
67
|
},
|
|
49
68
|
};
|
|
@@ -8,6 +8,8 @@ export interface RadioButtonProps<T extends string | number = string> {
|
|
|
8
8
|
disabled?: boolean;
|
|
9
9
|
value?: T;
|
|
10
10
|
readOnly?: boolean;
|
|
11
|
+
className?: string;
|
|
12
|
+
'aria-describedby'?: string;
|
|
11
13
|
}
|
|
12
14
|
|
|
13
15
|
export default function RadioButton<T extends string | number = ''>({
|
|
@@ -18,17 +20,20 @@ export default function RadioButton<T extends string | number = ''>({
|
|
|
18
20
|
onChange,
|
|
19
21
|
disabled,
|
|
20
22
|
readOnly,
|
|
23
|
+
className,
|
|
24
|
+
'aria-describedby': ariaDescribedBy,
|
|
21
25
|
}: RadioButtonProps<T>) {
|
|
22
26
|
return (
|
|
23
27
|
<>
|
|
24
28
|
<input
|
|
25
29
|
type="radio"
|
|
26
|
-
className=
|
|
30
|
+
className={clsx('sr-only', className)}
|
|
27
31
|
id={id}
|
|
28
32
|
value={value}
|
|
29
33
|
name={name}
|
|
30
34
|
checked={checked}
|
|
31
35
|
disabled={disabled || readOnly}
|
|
36
|
+
aria-describedby={ariaDescribedBy}
|
|
32
37
|
onChange={() => {
|
|
33
38
|
if (!checked) {
|
|
34
39
|
onChange?.(value);
|
|
@@ -6,7 +6,7 @@ import BottomSheet from '../../common/bottomSheet';
|
|
|
6
6
|
import Option from '../../common/Option';
|
|
7
7
|
import { Check, ChevronDown } from '@transferwise/icons';
|
|
8
8
|
import { OverlayIdContext, OverlayIdProvider } from '../../provider/overlay/OverlayIdProvider';
|
|
9
|
-
import
|
|
9
|
+
import List from '../../list';
|
|
10
10
|
|
|
11
11
|
export interface AnimatedLabelProps {
|
|
12
12
|
activeLabel: number;
|
package/src/i18n/ja.json
CHANGED
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"neptune.Upload.csFailureText": "アップロードに失敗しました。もう一度やり直してください。",
|
|
46
46
|
"neptune.Upload.csSuccessText": "アップロードが完了しました。",
|
|
47
47
|
"neptune.Upload.csTooLargeMessage": "{maxSize}MB以下のファイルをアップロードしてください",
|
|
48
|
-
"neptune.Upload.csTooLargeNoLimitMessage": "
|
|
48
|
+
"neptune.Upload.csTooLargeNoLimitMessage": "より小さいファイルをアップロードしてください",
|
|
49
49
|
"neptune.Upload.csWrongTypeMessage": "ファイルの種類はサポートされていません。別のファイルで再度お試しください",
|
|
50
50
|
"neptune.Upload.psButtonText": "キャンセルする",
|
|
51
51
|
"neptune.Upload.psProcessingText": "アップロードしています…",
|
package/src/i18n/pt.json
CHANGED
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
"neptune.Upload.csFailureText": "Falha no envio. Por favor, tente novamente",
|
|
46
46
|
"neptune.Upload.csSuccessText": "Envio concluído!",
|
|
47
47
|
"neptune.Upload.csTooLargeMessage": "Por favor, envie um arquivo com menos de {maxSize}MB",
|
|
48
|
+
"neptune.Upload.csTooLargeNoLimitMessage": "Forneça um arquivo menor",
|
|
48
49
|
"neptune.Upload.csWrongTypeMessage": "Não trabalhamos com este tipo de arquivo. Por favor, tente novamente com um arquivo diferente",
|
|
49
50
|
"neptune.Upload.psButtonText": "Cancelar",
|
|
50
51
|
"neptune.Upload.psProcessingText": "Enviando...",
|
|
@@ -52,6 +53,7 @@
|
|
|
52
53
|
"neptune.Upload.usButtonText": "Ou escolha um arquivo",
|
|
53
54
|
"neptune.Upload.usDropMessage": "Arraste o arquivo para iniciar o envio",
|
|
54
55
|
"neptune.Upload.usPlaceholder": "Selecione e envie um arquivo com menos de {maxSize}MB",
|
|
56
|
+
"neptune.Upload.usPlaceholderNoLimit": "Arraste e solte um arquivo",
|
|
55
57
|
"neptune.UploadButton.allFileTypes": "Todos os tipos de arquivos",
|
|
56
58
|
"neptune.UploadButton.dropFiles": "Arraste o arquivo para iniciar o envio",
|
|
57
59
|
"neptune.UploadButton.instructions": "{fileTypes}, com menos de {size}MB",
|
|
@@ -91,7 +91,7 @@ export const Basic: Story = {
|
|
|
91
91
|
gridTemplate: `auto auto / repeat(6, min-content)`,
|
|
92
92
|
}}
|
|
93
93
|
>
|
|
94
|
-
{['Primary', 'Secondary', 'Tertiary', '
|
|
94
|
+
{['Primary', 'Secondary', 'Tertiary', 'Minimal', 'Neg primary', 'Neg secondary'].map(
|
|
95
95
|
(variant) => (
|
|
96
96
|
<Body type="body-default-bold">{variant}</Body>
|
|
97
97
|
),
|
|
@@ -12,7 +12,7 @@ export type Props = {
|
|
|
12
12
|
Pick<ButtonHTMLAttributes<HTMLButtonElement>, 'onClick' | 'disabled'> &
|
|
13
13
|
Pick<
|
|
14
14
|
HTMLAttributes<HTMLDivElement>,
|
|
15
|
-
'className' | 'role' | 'children' | 'aria-label' | 'tabIndex'
|
|
15
|
+
'id' | 'className' | 'role' | 'children' | 'aria-label' | 'tabIndex'
|
|
16
16
|
>;
|
|
17
17
|
|
|
18
18
|
const IconButton = forwardRef(function IconButton(
|
package/src/image/Image.tsx
CHANGED
|
@@ -10,6 +10,9 @@ export interface ImageProps {
|
|
|
10
10
|
onLoad?: () => void;
|
|
11
11
|
onError?: () => void;
|
|
12
12
|
className?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Specifies the [loading behavior of the image](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#loading).
|
|
15
|
+
*/
|
|
13
16
|
loading?: 'lazy' | 'eager';
|
|
14
17
|
stretch?: boolean;
|
|
15
18
|
role?: string;
|
package/src/image/index.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -50,7 +50,7 @@ export type {
|
|
|
50
50
|
export type { TextAreaProps } from './inputs/TextArea';
|
|
51
51
|
export type { InstructionsListProps } from './instructionsList';
|
|
52
52
|
export type { LabelProps, LabelOptionalProps, LabelDescriptionProps } from './label/Label';
|
|
53
|
-
export type {
|
|
53
|
+
export type { LegacyListItemProps } from './legacylistItem';
|
|
54
54
|
export type { LoaderProps } from './loader';
|
|
55
55
|
export type { MarkdownProps } from './markdown';
|
|
56
56
|
export type { ModalProps } from './modal';
|
|
@@ -108,6 +108,7 @@ export type {
|
|
|
108
108
|
TableCellStatus,
|
|
109
109
|
TableCellType,
|
|
110
110
|
} from './table';
|
|
111
|
+
export type { ListProps } from './list';
|
|
111
112
|
|
|
112
113
|
/**
|
|
113
114
|
* Components
|
|
@@ -165,7 +166,7 @@ export { TextArea } from './inputs/TextArea';
|
|
|
165
166
|
export { default as InstructionsList } from './instructionsList';
|
|
166
167
|
export { Label } from './label/Label';
|
|
167
168
|
export { default as Link } from './link';
|
|
168
|
-
export {
|
|
169
|
+
export { default as LegacyListItem } from './legacylistItem';
|
|
169
170
|
export { default as Loader } from './loader';
|
|
170
171
|
export { default as Logo } from './logo';
|
|
171
172
|
export { default as Markdown } from './markdown';
|
|
@@ -209,6 +210,7 @@ export { default as Typeahead } from './typeahead';
|
|
|
209
210
|
export { default as Upload } from './upload';
|
|
210
211
|
export { default as UploadInput } from './uploadInput';
|
|
211
212
|
export { default as Table } from './table';
|
|
213
|
+
export { default as List } from './list';
|
|
212
214
|
|
|
213
215
|
/**
|
|
214
216
|
* Hooks
|
|
@@ -2,11 +2,11 @@ import { action } from 'storybook/actions';
|
|
|
2
2
|
import { Documents, FastFlag } from '@transferwise/icons';
|
|
3
3
|
import { ComponentProps } from 'react';
|
|
4
4
|
|
|
5
|
-
import { Button, IconButton } from '..';
|
|
5
|
+
import { Button, IconButton, List } from '..';
|
|
6
6
|
import AvatarView from '../avatarView';
|
|
7
7
|
import Info from '../info';
|
|
8
8
|
import Title from '../title/Title';
|
|
9
|
-
import LegacyListItem
|
|
9
|
+
import LegacyListItem from '.';
|
|
10
10
|
|
|
11
11
|
export default {
|
|
12
12
|
component: LegacyListItem,
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { FastFlag } from '@transferwise/icons';
|
|
2
2
|
import Button from '../button';
|
|
3
3
|
import AvatarView from '../avatarView';
|
|
4
|
-
import LegacyListItem, {
|
|
4
|
+
import LegacyListItem, { type LegacyListItemProps } from '.';
|
|
5
|
+
import List from '../list';
|
|
5
6
|
|
|
6
7
|
export default {
|
|
7
8
|
component: LegacyListItem,
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { render, screen } from '../test-utils';
|
|
2
|
+
import List from './List';
|
|
3
|
+
|
|
4
|
+
describe('List', () => {
|
|
5
|
+
it('should render content', () => {
|
|
6
|
+
render(
|
|
7
|
+
<List>
|
|
8
|
+
<li>Item 1</li>
|
|
9
|
+
<li>Item 2</li>
|
|
10
|
+
</List>,
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
expect(screen.getByText('Item 1')).toBeInTheDocument();
|
|
14
|
+
expect(screen.getByText('Item 2')).toBeInTheDocument();
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
describe('`as` prop', () => {
|
|
18
|
+
it('renders `ul` by default', () => {
|
|
19
|
+
render(<List>Content</List>);
|
|
20
|
+
expect(screen.getByRole('list')).toBeInstanceOf(HTMLUListElement);
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
it('renders as `ol`', () => {
|
|
24
|
+
render(<List as="ol">Content</List>);
|
|
25
|
+
expect(screen.getByRole('list')).toBeInstanceOf(HTMLOListElement);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it('renders as `ul`', () => {
|
|
29
|
+
render(<List as="ul">Content</List>);
|
|
30
|
+
expect(screen.getByRole('list')).toBeInstanceOf(HTMLUListElement);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
it('renders as `div`', () => {
|
|
34
|
+
render(
|
|
35
|
+
<List as="div" data-testid="list">
|
|
36
|
+
Content
|
|
37
|
+
</List>,
|
|
38
|
+
);
|
|
39
|
+
expect(screen.getByTestId('list')).toBeInstanceOf(HTMLDivElement);
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
it('accepts custom classname', () => {
|
|
44
|
+
render(<List className="custom-class">Content</List>);
|
|
45
|
+
expect(screen.getByRole('list')).toHaveClass('custom-class');
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
it('accepts CSS style', () => {
|
|
49
|
+
render(<List style={{ color: 'red' }}>Content</List>);
|
|
50
|
+
expect(screen.getByRole('list')).toHaveStyle({ color: 'red' });
|
|
51
|
+
});
|
|
52
|
+
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react-webpack5';
|
|
2
|
+
import LegacyListItem from '../legacylistItem';
|
|
3
|
+
import List from './List';
|
|
4
|
+
|
|
5
|
+
export default {
|
|
6
|
+
component: List,
|
|
7
|
+
title: 'Content/List',
|
|
8
|
+
tags: ['autodocs'],
|
|
9
|
+
} satisfies Meta<typeof List>;
|
|
10
|
+
|
|
11
|
+
type Story = StoryObj<typeof List>;
|
|
12
|
+
|
|
13
|
+
export const Basic: Story = {
|
|
14
|
+
render: (args) => (
|
|
15
|
+
<List {...args}>
|
|
16
|
+
<LegacyListItem title="First item" value="This is the first item." />
|
|
17
|
+
<LegacyListItem title="Second item" value="This is the second item." />
|
|
18
|
+
</List>
|
|
19
|
+
),
|
|
20
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { clsx } from 'clsx';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
|
|
4
|
+
export interface ListProps {
|
|
5
|
+
as?: 'ul' | 'ol' | 'div';
|
|
6
|
+
className?: string;
|
|
7
|
+
children?: React.ReactNode;
|
|
8
|
+
style?: React.CSSProperties;
|
|
9
|
+
id?: string;
|
|
10
|
+
[key: `data-${string}`]: string | number | boolean | undefined;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export default function List({ as: Element = 'ul', className, ...props }: ListProps) {
|
|
14
|
+
return <Element className={clsx('wds-list', 'list-unstyled', className)} {...props} />;
|
|
15
|
+
}
|
package/src/main.css
CHANGED
|
@@ -454,7 +454,8 @@
|
|
|
454
454
|
right: 0;
|
|
455
455
|
}
|
|
456
456
|
.np-avatar-view .np-avatar-view-content {
|
|
457
|
-
color:
|
|
457
|
+
color: #37517e;
|
|
458
|
+
color: var(--color-content-primary);
|
|
458
459
|
}
|
|
459
460
|
.np-avatar-view-interactive {
|
|
460
461
|
cursor: pointer;
|
|
@@ -462,6 +463,7 @@
|
|
|
462
463
|
.np-avatar-view-interactive .np-circle {
|
|
463
464
|
background-color: rgba(134,167,189,0.10196);
|
|
464
465
|
background-color: var(--color-background-neutral);
|
|
466
|
+
color: var(--color-interactive-primary);
|
|
465
467
|
}
|
|
466
468
|
.np-avatar-view-non-interactive .np-circle {
|
|
467
469
|
background-color: transparent;
|
package/src/switch/Switch.tsx
CHANGED
|
@@ -12,13 +12,15 @@ export type SwitchProps = CommonProps & {
|
|
|
12
12
|
'aria-label'?: string;
|
|
13
13
|
/** A reference to a label that describes the purpose of the switch. Ignored if aria-label is provided */
|
|
14
14
|
'aria-labelledby'?: string;
|
|
15
|
+
/** Identifies the element(s) that describes the element on which the attribute is set */
|
|
16
|
+
'aria-describedby'?: string;
|
|
15
17
|
/** Whether the switch is checked or not */
|
|
16
18
|
checked?: boolean;
|
|
17
19
|
disabled?: boolean;
|
|
18
20
|
/** ID to apply to the switch container */
|
|
19
21
|
id?: string;
|
|
20
22
|
/** Function called when the switch is toggled */
|
|
21
|
-
onClick: (event?: MouseEvent<
|
|
23
|
+
onClick: (event?: MouseEvent<HTMLButtonElement>) => void;
|
|
22
24
|
};
|
|
23
25
|
|
|
24
26
|
const Switch = (props: SwitchProps) => {
|
|
@@ -30,6 +32,7 @@ const Switch = (props: SwitchProps) => {
|
|
|
30
32
|
id = inputAttributes.id,
|
|
31
33
|
'aria-label': ariaLabel,
|
|
32
34
|
'aria-labelledby': ariaLabelledbyProp,
|
|
35
|
+
'aria-describedby': ariaDescribedbyProp,
|
|
33
36
|
onClick,
|
|
34
37
|
disabled,
|
|
35
38
|
} = props;
|
|
@@ -52,9 +55,10 @@ const Switch = (props: SwitchProps) => {
|
|
|
52
55
|
role="switch"
|
|
53
56
|
{...inputAttributes}
|
|
54
57
|
id={id}
|
|
55
|
-
aria-checked={checked}
|
|
58
|
+
aria-checked={Boolean(checked)}
|
|
56
59
|
aria-label={ariaLabel}
|
|
57
60
|
aria-labelledby={ariaLabelledby}
|
|
61
|
+
aria-describedby={ariaDescribedbyProp}
|
|
58
62
|
disabled={disabled}
|
|
59
63
|
onClick={!disabled ? onClick : undefined}
|
|
60
64
|
>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 400 288"><rect width="394" height="282" x="3" y="3" fill="#9FE870" stroke="#163300" stroke-width="6" rx="29"/><path fill="#163300" stroke="#163300" stroke-width="2" d="m271 74-50 138h-26l41-115v-1h-57l1 2 12 20-18 21-2 2h31l-7 20h-67l38-45 1-2h-2l-22-40h127Z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 288 400"><rect width="282" height="394" x="3" y="3" fill="#9FE870" stroke="#163300" stroke-width="6" rx="29"/><path fill="#163300" stroke="#163300" stroke-width="2" d="m216 131-49 137h-27l41-114 1-2h-57l1 2 12 20-19 21-1 2h31l-7 20H74l38-45 2-1h-2l-23-40h127Z"/></svg>
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var clsx = require('clsx');
|
|
4
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
-
|
|
6
|
-
function List({
|
|
7
|
-
className,
|
|
8
|
-
children
|
|
9
|
-
}) {
|
|
10
|
-
return /*#__PURE__*/jsxRuntime.jsx("ul", {
|
|
11
|
-
className: clsx.clsx(className, 'list-unstyled'),
|
|
12
|
-
children: children
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
exports.List = List;
|
|
17
|
-
//# sourceMappingURL=List.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"List.js","sources":["../../src/legacylistItem/List.tsx"],"sourcesContent":["import { clsx } from 'clsx';\n\nexport interface ListProps {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport function List({ className, children }: ListProps) {\n return <ul className={clsx(className, 'list-unstyled')}>{children}</ul>;\n}\n"],"names":["List","className","children","_jsx","clsx"],"mappings":";;;;;SAOgBA,IAAIA,CAAC;EAAEC,SAAS;AAAEC,EAAAA;AAAQ,CAAa,EAAA;AACrD,EAAA,oBAAOC,cAAA,CAAA,IAAA,EAAA;AAAIF,IAAAA,SAAS,EAAEG,SAAI,CAACH,SAAS,EAAE,eAAe,CAAE;AAAAC,IAAAA,QAAA,EAAEA;AAAQ,GAAK,CAAC;AACzE;;;;"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { clsx } from 'clsx';
|
|
2
|
-
import { jsx } from 'react/jsx-runtime';
|
|
3
|
-
|
|
4
|
-
function List({
|
|
5
|
-
className,
|
|
6
|
-
children
|
|
7
|
-
}) {
|
|
8
|
-
return /*#__PURE__*/jsx("ul", {
|
|
9
|
-
className: clsx(className, 'list-unstyled'),
|
|
10
|
-
children: children
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export { List };
|
|
15
|
-
//# sourceMappingURL=List.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"List.mjs","sources":["../../src/legacylistItem/List.tsx"],"sourcesContent":["import { clsx } from 'clsx';\n\nexport interface ListProps {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport function List({ className, children }: ListProps) {\n return <ul className={clsx(className, 'list-unstyled')}>{children}</ul>;\n}\n"],"names":["List","className","children","_jsx","clsx"],"mappings":";;;SAOgBA,IAAIA,CAAC;EAAEC,SAAS;AAAEC,EAAAA;AAAQ,CAAa,EAAA;AACrD,EAAA,oBAAOC,GAAA,CAAA,IAAA,EAAA;AAAIF,IAAAA,SAAS,EAAEG,IAAI,CAACH,SAAS,EAAE,eAAe,CAAE;AAAAC,IAAAA,QAAA,EAAEA;AAAQ,GAAK,CAAC;AACzE;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../src/legacylistItem/List.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,wBAAgB,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,SAAS,+BAEtD"}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
declare module '@storybook/react' {
|
|
2
|
-
interface Parameters {
|
|
3
|
-
/** Prefer using `storyConfig` for configuring variants */
|
|
4
|
-
variants?: (
|
|
5
|
-
| 'default'
|
|
6
|
-
| 'light'
|
|
7
|
-
| 'dark'
|
|
8
|
-
| 'bright-green'
|
|
9
|
-
| 'forest-green'
|
|
10
|
-
| 'rtl'
|
|
11
|
-
| (string & Record<string, unknown>)
|
|
12
|
-
)[];
|
|
13
|
-
/** Used by Chromatic */
|
|
14
|
-
chromatic?: ChromaticParameters;
|
|
15
|
-
viewport?: {
|
|
16
|
-
viewports?: Record<string, unknown>;
|
|
17
|
-
defaultViewport?: string;
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Derived from Chromatic's config type definitions
|
|
24
|
-
*
|
|
25
|
-
* @see https://github.com/chromaui/chromatic-cli/blob/main/storybook-addon.d.ts
|
|
26
|
-
*/
|
|
27
|
-
export interface ChromaticParameters {
|
|
28
|
-
/**
|
|
29
|
-
* Prefer using `storyConfig` for configuring viewports if possible.
|
|
30
|
-
*
|
|
31
|
-
* To set a viewport, specify one or more screen widths to the
|
|
32
|
-
* `chromatic.viewports` parameter. When left unspecified, Chromatic
|
|
33
|
-
* uses a default value of `[1200]`. Use `[414]` for 'Large mobile'
|
|
34
|
-
* viewport width.
|
|
35
|
-
*
|
|
36
|
-
* @default [1200]
|
|
37
|
-
*/
|
|
38
|
-
viewports?: [414] | [414, 1200];
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* You can omit stories entirely from Chromatic testing using the disable story parameter.
|
|
42
|
-
*/
|
|
43
|
-
disable?: boolean;
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Chromatic will pause CSS animations and reset them to their beginning state.
|
|
47
|
-
*
|
|
48
|
-
* Some animations are used to "animate in" visible elements. To specify that Chromatic should pause the
|
|
49
|
-
* animation at the end, use the `pauseAnimationAtEnd` story parameter.
|
|
50
|
-
*/
|
|
51
|
-
pauseAnimationAtEnd?: boolean;
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Use story-level delay to ensure a minimum amount of time (in milliseconds) has passed before Chromatic takes a
|
|
55
|
-
* screenshot.
|
|
56
|
-
*/
|
|
57
|
-
delay?: number;
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* The diffThreshold parameter allows you to fine tune the threshold for visual change between snapshots before
|
|
61
|
-
* they’re flagged by Chromatic. Sometimes you need assurance to the sub-pixel and other times you want to skip
|
|
62
|
-
* visual noise generated by non-deterministic rendering such as anti-aliasing.
|
|
63
|
-
*
|
|
64
|
-
* 0 is the most accurate. 1 is the least accurate.
|
|
65
|
-
*
|
|
66
|
-
* @default 0.063
|
|
67
|
-
*/
|
|
68
|
-
diffThreshold?: number;
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Modes for Chromatic testing.
|
|
72
|
-
*
|
|
73
|
-
* Specify the mode in which Chromatic should run tests. For example, 'light' for light mode,
|
|
74
|
-
* 'dark' for dark mode, or `rtl` for right to left content.
|
|
75
|
-
*/
|
|
76
|
-
modes?: object;
|
|
77
|
-
}
|