@innovaccer/design-system 2.5.0-4 → 2.6.0
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/.all-contributorsrc +1 -1
- package/.eslintrc.json +53 -0
- package/.github/workflows/jira.yml +1 -2
- package/.github/workflows/main.yml +2 -2
- package/.github/workflows/pull_request.yml +1 -1
- package/.github/workflows/test.yml +1 -1
- package/.husky/commit-msg +4 -0
- package/.prettierrc +2 -2
- package/CHANGELOG.md +38 -88
- package/CONTRIBUTING.md +173 -97
- package/README.md +1 -1
- package/commitlint.config.js +1 -0
- package/core/accessibility/utils/index.ts +5 -0
- package/core/accessibility/utils/isEnterKey.ts +5 -0
- package/core/accessibility/utils/isSpaceKey.ts +5 -0
- package/core/accessibility/utils/useAccessibilityProps.ts +31 -0
- package/core/components/atoms/_chip/__tests__/__snapshots__/_chip.test.tsx.snap +8 -0
- package/core/components/atoms/_chip/index.tsx +2 -0
- package/core/components/atoms/button/__stories__/Alert.story.tsx +8 -1
- package/core/components/atoms/button/__stories__/Cancel.story.tsx +4 -1
- package/core/components/atoms/button/__stories__/IconButtonGroup.story.tsx +12 -3
- package/core/components/atoms/button/__stories__/IconButtonSecondary.story.tsx +6 -1
- package/core/components/atoms/button/__stories__/IconLeftSecondary.story.tsx +4 -1
- package/core/components/atoms/button/__stories__/IconRightSecondary.story.tsx +4 -1
- package/core/components/atoms/button/__stories__/IconTransparent.story.tsx +4 -1
- package/core/components/atoms/button/__stories__/LabelButtonGroup.story.tsx +14 -3
- package/core/components/atoms/button/__stories__/LargeIconExpanded.story.tsx +4 -1
- package/core/components/atoms/button/__stories__/LoadingPrimary.story.tsx +4 -1
- package/core/components/atoms/button/__stories__/Primary.story.tsx +5 -2
- package/core/components/atoms/button/__stories__/SplitButton.story.tsx +6 -1
- package/core/components/atoms/button/__stories__/Transparent.story.tsx +8 -1
- package/core/components/atoms/button/__stories__/index.story.tsx +11 -1
- package/core/components/atoms/button/__stories__/variants/Appearance.story.tsx +4 -0
- package/core/components/atoms/button/__stories__/variants/Expanded.story.tsx +4 -0
- package/core/components/atoms/button/__stories__/variants/Size.story.tsx +4 -0
- package/core/components/atoms/button/__stories__/variants/icon/Icon.story.tsx +15 -0
- package/core/components/atoms/button/__stories__/variants/icon/IconLeft.story.tsx +4 -0
- package/core/components/atoms/button/__stories__/variants/icon/IconRight.story.tsx +4 -0
- package/core/components/atoms/button/__stories__/variants/state/Alert.story.tsx +7 -17
- package/core/components/atoms/button/__stories__/variants/state/Basic.story.tsx +9 -17
- package/core/components/atoms/button/__stories__/variants/state/Primary.story.tsx +7 -17
- package/core/components/atoms/button/__stories__/variants/state/Success.story.tsx +7 -17
- package/core/components/atoms/button/__stories__/variants/state/Transparent.story.tsx +13 -17
- package/core/components/atoms/chipGroup/__tests__/__snapshots__/chipGroup.test.tsx.snap +6 -0
- package/core/components/atoms/collapsible/__stories__/index.story.tsx +2 -2
- package/core/components/atoms/collapsible/__tests__/__snapshots__/Collapsible.test.tsx.snap +8 -0
- package/core/components/atoms/divider/Divider.tsx +44 -0
- package/core/components/atoms/divider/__stories__/BasicDividerInCard.story.tsx +74 -0
- package/core/components/atoms/divider/__stories__/HeaderDividerInCard.story.tsx +35 -0
- package/core/components/atoms/divider/__stories__/IndentedDivider.story.tsx +49 -0
- package/core/components/atoms/divider/__stories__/Vertical.story.tsx +51 -0
- package/core/components/atoms/divider/__stories__/index.story.tsx +91 -0
- package/core/components/atoms/divider/__stories__/variants/HorizontalDivider.story.tsx +27 -0
- package/core/components/atoms/divider/__tests__/Divider.test.tsx +50 -0
- package/core/components/atoms/divider/__tests__/__snapshots__/Divider.test.tsx.snap +53 -0
- package/core/components/atoms/divider/index.tsx +2 -0
- package/core/components/atoms/dropdown/DropdownList.tsx +8 -2
- package/core/components/atoms/dropdown/__stories__/variants/controlledDropdown/MultiSelect.story.tsx +27 -17
- package/core/components/atoms/dropdown/option/DefaultOption.tsx +3 -0
- package/core/components/atoms/dropdown/option/IconOption.tsx +3 -0
- package/core/components/atoms/dropdown/option/IconWithMetaOption.tsx +3 -0
- package/core/components/atoms/dropdown/option/MetaOption.tsx +3 -0
- package/core/components/atoms/editable/Editable.tsx +3 -0
- package/core/components/atoms/icon/Icon.tsx +14 -3
- package/core/components/atoms/icon/__stories__/variants/Image.story.tsx +6 -1
- package/core/components/atoms/icon/__tests__/__snapshots__/Icon.test.tsx.snap +74 -0
- package/core/components/atoms/input/Input.tsx +14 -4
- package/core/components/atoms/input/__stories__/BasicInput.story.tsx +2 -1
- package/core/components/atoms/input/__stories__/InputWithCaption.story.tsx +29 -9
- package/core/components/atoms/input/__stories__/InputWithLabel.story.tsx +11 -3
- package/core/components/atoms/input/__stories__/LabelPosition.story.tsx +8 -4
- package/core/components/atoms/input/__stories__/RequiredVsOptional.story.tsx +12 -8
- package/core/components/atoms/input/__tests__/__snapshots__/Input.test.tsx.snap +19 -0
- package/core/components/atoms/legend/Legend.tsx +3 -0
- package/core/components/atoms/message/__stories__/CustomDescription.tsx +25 -0
- package/core/components/atoms/metricInput/MetricInput.tsx +12 -2
- package/core/components/atoms/metricInput/__stories__/DefaultMetric.story.tsx +8 -2
- package/core/components/atoms/metricInput/__stories__/WithPrefix.story.tsx +6 -2
- package/core/components/atoms/metricInput/__stories__/index.story.tsx +1 -0
- package/core/components/atoms/metricInput/__stories__/variants/Controlled.story.tsx +2 -0
- package/core/components/atoms/metricInput/__stories__/variants/Size.story.tsx +2 -2
- package/core/components/atoms/metricInput/__stories__/withSuffix.story.tsx +6 -2
- package/core/components/atoms/metricInput/__tests__/__snapshots__/MetricInput.test.tsx.snap +20 -4
- package/core/components/atoms/multiSlider/Handle.tsx +3 -0
- package/core/components/atoms/multiSlider/index.tsx +6 -0
- package/core/components/atoms/outsideClick/__stories__/index.story.tsx +1 -1
- package/core/components/atoms/statusHint/StatusHint.tsx +3 -0
- package/core/components/atoms/switchInput/Switch.tsx +10 -4
- package/core/components/atoms/switchInput/__stories__/DefaultSwitch.story.tsx +4 -1
- package/core/components/atoms/switchInput/__stories__/OffState.story.tsx +4 -1
- package/core/components/atoms/switchInput/__stories__/index.story.tsx +26 -3
- package/core/components/atoms/switchInput/__stories__/variants/Size.story.tsx +10 -1
- package/core/components/atoms/switchInput/__stories__/variants/State.story.tsx +9 -2
- package/core/components/atoms/textarea/__stories__/TextareaWithCaption.story.tsx +9 -3
- package/core/components/atoms/textarea/__stories__/defaultTextarea.story.tsx +10 -2
- package/core/components/atoms/textarea/__stories__/index.story.tsx +1 -0
- package/core/components/atoms/textarea/__stories__/variants/Disable.story.tsx +1 -0
- package/core/components/atoms/toast/__tests__/__snapshots__/Toast.test.tsx.snap +30 -0
- package/core/components/css-utilities/Align/Align.story.tsx +1 -1
- package/core/components/css-utilities/Background/Background.story.tsx +1 -1
- package/core/components/css-utilities/Border/Border.story.tsx +1 -1
- package/core/components/css-utilities/Display/Display.story.tsx +1 -1
- package/core/components/css-utilities/Flex/Flex.story.tsx +1 -1
- package/core/components/css-utilities/Miscellaneous/Miscellaneous.story.tsx +1 -1
- package/core/components/css-utilities/Overflow/Overflow.story.tsx +1 -1
- package/core/components/css-utilities/Position/Position.story.tsx +1 -1
- package/core/components/css-utilities/Sizing/Sizing.story.tsx +1 -1
- package/core/components/css-utilities/Spacing/Spacing.story.tsx +1 -1
- package/core/components/molecules/chatMessage/Box.tsx +3 -0
- package/core/components/molecules/chipInput/ChipInput.tsx +3 -0
- package/core/components/molecules/chipInput/__tests__/__snapshots__/ChipInput.test.tsx.snap +12 -0
- package/core/components/molecules/dropzone/Dropzone.tsx +3 -0
- package/core/components/molecules/dropzone/FileSelectorUtils.tsx +1 -1
- package/core/components/molecules/editableChipInput/EditableChipInput.tsx +9 -5
- package/core/components/molecules/editableChipInput/__stories__/Uncontrolled.story.tsx +1 -1
- package/core/components/molecules/editableChipInput/__tests__/__snapshots__/EditableChipInput.test.tsx.snap +8 -0
- package/core/components/molecules/editableDropdown/EditableDropdown.tsx +2 -2
- package/core/components/molecules/editableInput/EditableInput.tsx +13 -4
- package/core/components/molecules/emptyState/EmptyState.tsx +5 -1
- package/core/components/molecules/fileList/FileListItem.tsx +2 -0
- package/core/components/molecules/fileUploader/FileUploaderItem.tsx +2 -0
- package/core/components/molecules/fileUploader/__stories__/index.story.tsx +156 -21
- package/core/components/molecules/inputMask/InputMask.tsx +1 -1
- package/core/components/molecules/inputMask/__tests__/__snapshots__/InputMask.test.tsx.snap +1 -0
- package/core/components/molecules/pagination/__tests__/__snapshots__/Pagination.test.tsx.snap +5 -1
- package/core/components/molecules/stepper/Step.tsx +2 -0
- package/core/components/molecules/tabs/Tabs.tsx +2 -0
- package/core/components/molecules/tabs/TabsWrapper.tsx +2 -0
- package/core/components/molecules/tabs/__stories__/CustomLabels.story.tsx +1 -1
- package/core/components/molecules/verificationCodeInput/VerificationCodeInput.tsx +8 -4
- package/core/components/molecules/verificationCodeInput/__stories__/index.story.tsx +3 -1
- package/core/components/molecules/verificationCodeInput/__tests__/__snapshots__/VerificationCodeInput.test.tsx.snap +1 -0
- package/core/components/organisms/calendar/Calendar.tsx +130 -8
- package/core/components/organisms/calendar/__tests__/Calendar.test.tsx +27 -0
- package/core/components/organisms/choiceList/ChoiceList.tsx +1 -1
- package/core/components/organisms/datePicker/DatePicker.tsx +30 -15
- package/core/components/organisms/datePicker/__tests__/DatePicker.test.tsx +136 -46
- package/core/components/organisms/datePicker/__tests__/__snapshots__/DatePicker.test.tsx.snap +4388 -1857
- package/core/components/organisms/dateRangePicker/__tests__/__snapshots__/DateRangePicker.test.tsx.snap +112 -40
- package/core/components/organisms/grid/Cell.tsx +4 -0
- package/core/components/organisms/grid/GridRow.tsx +4 -0
- package/core/components/organisms/grid/__stories__/_common_/fetchData.ts +2 -2
- package/core/components/organisms/horizontalNav/HorizontalNav.tsx +2 -0
- package/core/components/organisms/inlineMessage/InlineMessage.tsx +3 -5
- package/core/components/organisms/inlineMessage/__tests__/__snapshots__/InlineMessage.test.tsx.snap +30 -40
- package/core/components/organisms/navigation/VerticalNavigation.tsx +4 -0
- package/core/components/organisms/table/Table.tsx +1 -0
- package/core/components/organisms/table/__stories__/NestedTableWithNestedCard.story.tsx +4 -1
- package/core/components/organisms/table/__stories__/ResourceTable.story.tsx +3 -2
- package/core/components/organisms/table/__stories__/Selection.story.tsx +2 -2
- package/core/components/organisms/table/__stories__/TableAsDescriptionList.story.tsx +1 -1
- package/core/components/organisms/table/__stories__/TableAsOptionList.story.tsx +1 -1
- package/core/components/organisms/table/__stories__/syncTable.story.tsx +14 -6
- package/core/components/organisms/table/__stories__/variants/nestedRows.story.tsx +5 -2
- package/core/components/organisms/table/__stories__/variants/withHeader.story.tsx +0 -2
- package/core/components/organisms/timePicker/TimePicker.tsx +1 -1
- package/core/components/organisms/timePicker/__tests__/__snapshots__/TimePicker.test.tsx.snap +14 -2
- package/core/components/organisms/verticalNav/MenuItem.tsx +2 -0
- package/core/components/patterns/datePicker/datePickerWithPresets.story.tsx +126 -0
- package/core/components/patterns/dateRangePicker/withCustomPopover.story.tsx +8 -8
- package/core/components/patterns/forms/CreatePassword.story.tsx +1 -1
- package/core/components/patterns/forms/VerificationCodeInput.story.tsx +2 -2
- package/core/components/patterns/table/Table with Header/tableWithHeader.story.jsx +7 -7
- package/core/index.tsx +1 -0
- package/core/index.type.tsx +1 -0
- package/core/utils/Keys.ts +4 -0
- package/core/utils/__tests__/__snapshots__/TS.test.tsx.snap +544 -536
- package/core/utils/docPage/index.tsx +22 -17
- package/core/utils/testHelper.ts +1 -1
- package/core/utils/validators.ts +37 -34
- package/css/dist/index.css +1523 -1402
- package/css/dist/index.css.map +1 -1
- package/css/src/components/Legend.css +7 -7
- package/css/src/components/ProgressBar.css +1 -1
- package/css/src/components/avatarGroup.css +1 -1
- package/css/src/components/backdrop.css +12 -6
- package/css/src/components/badge.css +52 -52
- package/css/src/components/button.css +99 -94
- package/css/src/components/calendar.css +137 -126
- package/css/src/components/card.css +0 -1
- package/css/src/components/cardSubdued.css +3 -5
- package/css/src/components/chat.css +1 -1
- package/css/src/components/checkbox.css +71 -70
- package/css/src/components/chip.css +14 -13
- package/css/src/components/chipGroup.css +5 -5
- package/css/src/components/chipInput.css +1 -1
- package/css/src/components/choiceList.css +4 -4
- package/css/src/components/dateRangePicker.css +13 -13
- package/css/src/components/divider.css +20 -0
- package/css/src/components/dropdown.css +61 -61
- package/css/src/components/dropdownButton.css +36 -36
- package/css/src/components/dropzone.css +16 -20
- package/css/src/components/editableChipInput.css +10 -9
- package/css/src/components/editableDropdown.css +1 -1
- package/css/src/components/editableInput.css +1 -1
- package/css/src/components/emptyState.css +15 -15
- package/css/src/components/fileList.css +44 -45
- package/css/src/components/grid.css +217 -199
- package/css/src/components/horizontalNav.css +0 -1
- package/css/src/components/icon.css +1 -7
- package/css/src/components/inlineMessage.css +2 -1
- package/css/src/components/input.css +62 -62
- package/css/src/components/link.css +1 -1
- package/css/src/components/list.css +10 -10
- package/css/src/components/message.css +69 -70
- package/css/src/components/metaList.css +26 -26
- package/css/src/components/metricInput.css +3 -4
- package/css/src/components/modal.css +1 -1
- package/css/src/components/navigation.css +3 -3
- package/css/src/components/pageHeader.css +1 -2
- package/css/src/components/pagination.css +36 -36
- package/css/src/components/pills.css +19 -19
- package/css/src/components/placeholder.css +10 -5
- package/css/src/components/popover.css +2 -2
- package/css/src/components/progressRing.css +1 -1
- package/css/src/components/radio.css +74 -74
- package/css/src/components/slider.css +5 -5
- package/css/src/components/statusHints.css +15 -15
- package/css/src/components/switch.css +45 -41
- package/css/src/components/table.css +15 -15
- package/css/src/components/tabs.css +53 -53
- package/css/src/components/textarea.css +1 -1
- package/css/src/components/toast.css +53 -53
- package/css/src/components/verificationCodeInput.css +5 -6
- package/css/src/components/verticalNav.css +1 -2
- package/css/src/core/base.css +3 -0
- package/css/src/core/typography.css +1 -1
- package/css/src/core/utilities.css +1 -1
- package/css/src/tokens/index.css +63 -63
- package/css/src/utils/align.css +1 -1
- package/css/src/utils/background.css +1 -1
- package/css/src/utils/cursor.css +1 -1
- package/css/src/utils/display.css +1 -1
- package/css/src/utils/flex.css +1 -1
- package/css/src/utils/grid.css +1 -1
- package/css/src/utils/overflow.css +1 -1
- package/css/src/utils/position.css +1 -1
- package/css/src/utils/spacing.css +1 -1
- package/css/src/utils/utility.css +13 -13
- package/css/src/variables/index.css +1 -1
- package/dist/core/accessibility/utils/index.d.ts +4 -0
- package/dist/core/accessibility/utils/isEnterKey.d.ts +3 -0
- package/dist/core/accessibility/utils/isSpaceKey.d.ts +3 -0
- package/dist/core/accessibility/utils/useAccessibilityProps.d.ts +15 -0
- package/dist/core/components/atoms/divider/Divider.d.ts +15 -0
- package/dist/core/components/atoms/divider/index.d.ts +2 -0
- package/dist/core/components/atoms/icon/Icon.d.ts +3 -1
- package/dist/core/components/atoms/input/Input.d.ts +1 -1
- package/dist/core/components/atoms/popperWrapper/PopperWrapper.d.ts +50 -49
- package/dist/core/components/atoms/switchInput/Switch.d.ts +2 -1
- package/dist/core/components/organisms/calendar/Calendar.d.ts +31 -0
- package/dist/core/components/organisms/datePicker/DatePicker.d.ts +2 -0
- package/dist/core/components/patterns/datePicker/datePickerWithPresets.story.d.ts +15 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.type.d.ts +1 -0
- package/dist/index.esm.js +829 -495
- package/dist/index.js +313 -144
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.br +0 -0
- package/dist/index.umd.js.gz +0 -0
- package/package.json +17 -14
- package/.husky/prepare-commit-msg +0 -6
- package/tslint.json +0 -30
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { render } from '@testing-library/react';
|
|
3
|
+
import { testHelper, filterUndefined, valueHelper, testMessageHelper } from '@/utils/testHelper';
|
|
4
|
+
import { Divider } from '@/index';
|
|
5
|
+
import { DividerProps as Props } from '@/index.type';
|
|
6
|
+
|
|
7
|
+
const appearance = ['basic', 'header'];
|
|
8
|
+
const booleanValue = [true, false];
|
|
9
|
+
|
|
10
|
+
const testFunc = (props: Record<string, any>): void => {
|
|
11
|
+
const attr = filterUndefined(props) as Props;
|
|
12
|
+
|
|
13
|
+
it(testMessageHelper(attr), () => {
|
|
14
|
+
const { baseElement } = render(<Divider {...attr} />);
|
|
15
|
+
expect(baseElement).toMatchSnapshot();
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
describe('Divider component snapshots', () => {
|
|
20
|
+
const mapper: Record<string, any> = {
|
|
21
|
+
vertical: valueHelper(booleanValue, { required: true, iterate: true }),
|
|
22
|
+
appearance: valueHelper(appearance, { required: true, iterate: true }),
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
testHelper(mapper, testFunc);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
describe('Divider component with orientation:horizontal', () => {
|
|
29
|
+
it('test for horizontal divider type:Basic', () => {
|
|
30
|
+
const { getByTestId } = render(<Divider />);
|
|
31
|
+
expect(getByTestId('DesignSystem-Divider')).toHaveClass('Divider');
|
|
32
|
+
expect(getByTestId('DesignSystem-Divider')).toHaveClass('Divider--horizontal');
|
|
33
|
+
expect(getByTestId('DesignSystem-Divider')).toHaveClass('Divider--basic');
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it('test for horizontal divider type:Header', () => {
|
|
37
|
+
const { getByTestId } = render(<Divider appearance="header" />);
|
|
38
|
+
expect(getByTestId('DesignSystem-Divider')).toHaveClass('Divider');
|
|
39
|
+
expect(getByTestId('DesignSystem-Divider')).toHaveClass('Divider--horizontal');
|
|
40
|
+
expect(getByTestId('DesignSystem-Divider')).toHaveClass('Divider--header');
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
describe('Divider component with orientation:vertical', () => {
|
|
45
|
+
it('test for Vertical divider', () => {
|
|
46
|
+
const { getByTestId } = render(<Divider vertical={true} />);
|
|
47
|
+
expect(getByTestId('DesignSystem-Divider')).toHaveClass('Divider--vertical');
|
|
48
|
+
expect(getByTestId('DesignSystem-Divider')).toHaveClass('Divider');
|
|
49
|
+
});
|
|
50
|
+
});
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`Divider component snapshots
|
|
4
|
+
vertical: false, appearance: "basic"
|
|
5
|
+
1`] = `
|
|
6
|
+
<body>
|
|
7
|
+
<div>
|
|
8
|
+
<hr
|
|
9
|
+
class="Divider Divider--horizontal Divider--basic"
|
|
10
|
+
data-test="DesignSystem-Divider"
|
|
11
|
+
/>
|
|
12
|
+
</div>
|
|
13
|
+
</body>
|
|
14
|
+
`;
|
|
15
|
+
|
|
16
|
+
exports[`Divider component snapshots
|
|
17
|
+
vertical: false, appearance: "header"
|
|
18
|
+
1`] = `
|
|
19
|
+
<body>
|
|
20
|
+
<div>
|
|
21
|
+
<hr
|
|
22
|
+
class="Divider Divider--horizontal Divider--header"
|
|
23
|
+
data-test="DesignSystem-Divider"
|
|
24
|
+
/>
|
|
25
|
+
</div>
|
|
26
|
+
</body>
|
|
27
|
+
`;
|
|
28
|
+
|
|
29
|
+
exports[`Divider component snapshots
|
|
30
|
+
vertical: true, appearance: "basic"
|
|
31
|
+
1`] = `
|
|
32
|
+
<body>
|
|
33
|
+
<div>
|
|
34
|
+
<hr
|
|
35
|
+
class="Divider Divider--vertical Divider--basic"
|
|
36
|
+
data-test="DesignSystem-Divider"
|
|
37
|
+
/>
|
|
38
|
+
</div>
|
|
39
|
+
</body>
|
|
40
|
+
`;
|
|
41
|
+
|
|
42
|
+
exports[`Divider component snapshots
|
|
43
|
+
vertical: true, appearance: "header"
|
|
44
|
+
1`] = `
|
|
45
|
+
<body>
|
|
46
|
+
<div>
|
|
47
|
+
<hr
|
|
48
|
+
class="Divider Divider--vertical"
|
|
49
|
+
data-test="DesignSystem-Divider"
|
|
50
|
+
/>
|
|
51
|
+
</div>
|
|
52
|
+
</body>
|
|
53
|
+
`;
|
|
@@ -411,6 +411,8 @@ const DropdownList = (props: OptionsProps) => {
|
|
|
411
411
|
icon={'search'}
|
|
412
412
|
value={searchTerm}
|
|
413
413
|
placeholder={'Search..'}
|
|
414
|
+
// TODO(a11y): research more on this.
|
|
415
|
+
// eslint-disable-next-line jsx-a11y/no-autofocus
|
|
414
416
|
autoFocus={true}
|
|
415
417
|
onChange={searchHandler}
|
|
416
418
|
onClear={searchClearHandler}
|
|
@@ -567,7 +569,7 @@ const DropdownList = (props: OptionsProps) => {
|
|
|
567
569
|
event.preventDefault();
|
|
568
570
|
dropdownOpen ? focusOption('up', optionClass) : onToggleDropdown(!dropdownOpen);
|
|
569
571
|
break;
|
|
570
|
-
case 'Enter':
|
|
572
|
+
case 'Enter': {
|
|
571
573
|
const activeElement = document.activeElement;
|
|
572
574
|
if (dropdownOpen && (inputRef.current === activeElement || dropdownTriggerRef.current === activeElement)) {
|
|
573
575
|
event.preventDefault();
|
|
@@ -578,7 +580,8 @@ const DropdownList = (props: OptionsProps) => {
|
|
|
578
580
|
}
|
|
579
581
|
if (!dropdownOpen) onToggleDropdown(!dropdownOpen);
|
|
580
582
|
break;
|
|
581
|
-
|
|
583
|
+
}
|
|
584
|
+
case 'Tab': {
|
|
582
585
|
if (!showApplyButton && dropdownOpen) {
|
|
583
586
|
event.preventDefault();
|
|
584
587
|
onToggleDropdown(false, 'onClick');
|
|
@@ -608,12 +611,15 @@ const DropdownList = (props: OptionsProps) => {
|
|
|
608
611
|
}
|
|
609
612
|
|
|
610
613
|
break;
|
|
614
|
+
}
|
|
611
615
|
default:
|
|
612
616
|
break;
|
|
613
617
|
}
|
|
614
618
|
};
|
|
615
619
|
|
|
616
620
|
return (
|
|
621
|
+
//TODO(a11y)
|
|
622
|
+
//eslint-disable-next-line
|
|
617
623
|
<div {...baseProps} className={dropdownClass} ref={triggerRef} onKeyDown={onkeydown}>
|
|
618
624
|
<Popover
|
|
619
625
|
onToggle={onToggleDropdown}
|
package/core/components/atoms/dropdown/__stories__/variants/controlledDropdown/MultiSelect.story.tsx
CHANGED
|
@@ -34,7 +34,7 @@ export const multiSelect = () => {
|
|
|
34
34
|
|
|
35
35
|
const onSelectLessThan50 = (type: EventType, option?: any) => {
|
|
36
36
|
switch (type) {
|
|
37
|
-
case 'select-all':
|
|
37
|
+
case 'select-all': {
|
|
38
38
|
const selectedDisabledArray = selectedLessThan50.filter((item) => item.disabled);
|
|
39
39
|
const selectedOptions = [
|
|
40
40
|
...dropdownOptions.slice(0, 50).filter((item) => !item.disabled),
|
|
@@ -42,41 +42,51 @@ export const multiSelect = () => {
|
|
|
42
42
|
];
|
|
43
43
|
|
|
44
44
|
setSelectedLessThan50(selectedOptions);
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
case 'deselect-all': {
|
|
47
48
|
const selectedArr = selectedLessThan50.filter((item) => item.disabled);
|
|
48
49
|
setSelectedLessThan50(selectedArr);
|
|
49
|
-
|
|
50
|
-
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
case 'select-option': {
|
|
51
53
|
setSelectedLessThan50(selectedLessThan50.concat(option));
|
|
52
|
-
|
|
53
|
-
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
case 'deselect-option': {
|
|
54
57
|
const selectedArray = selectedLessThan50.slice();
|
|
55
58
|
const index = selectedArray.findIndex((item) => item.value === option.value);
|
|
56
59
|
selectedArray.splice(index, 1);
|
|
57
60
|
setSelectedLessThan50(selectedArray);
|
|
58
|
-
|
|
59
|
-
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
default: {
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
60
66
|
}
|
|
61
67
|
};
|
|
62
68
|
|
|
63
69
|
const onSelectMoreThan50 = (type: EventType, option?: any) => {
|
|
64
70
|
switch (type) {
|
|
65
|
-
case 'select-option':
|
|
71
|
+
case 'select-option': {
|
|
66
72
|
setSelectedMoreThan50(selectedMoreThan50.concat(option));
|
|
67
|
-
|
|
68
|
-
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
case 'deselect-option': {
|
|
69
76
|
const selectedArray = selectedMoreThan50.slice();
|
|
70
77
|
const index = selectedArray.findIndex((item) => item.value === option.value);
|
|
71
78
|
selectedArray.splice(index, 1);
|
|
72
79
|
setSelectedMoreThan50(selectedArray);
|
|
73
|
-
|
|
74
|
-
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
case 'clear-all': {
|
|
75
83
|
const selectedArr = selectedMoreThan50.filter((item) => item.disabled);
|
|
76
84
|
setSelectedMoreThan50(selectedArr);
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
default: {
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
80
90
|
}
|
|
81
91
|
};
|
|
82
92
|
|
|
@@ -8,6 +8,8 @@ const DefaultOption = (props: OptionTypeProps) => {
|
|
|
8
8
|
const { label, disabled } = optionData;
|
|
9
9
|
|
|
10
10
|
return (
|
|
11
|
+
// TODO(a11y): fix accessibility
|
|
12
|
+
/* eslint-disable */
|
|
11
13
|
<div
|
|
12
14
|
className={className}
|
|
13
15
|
onClick={onClickHandler}
|
|
@@ -15,6 +17,7 @@ const DefaultOption = (props: OptionTypeProps) => {
|
|
|
15
17
|
data-test={dataTest}
|
|
16
18
|
data-disabled={disabled}
|
|
17
19
|
>
|
|
20
|
+
{/* eslint-enable */}
|
|
18
21
|
<div className={'Option-label'}>
|
|
19
22
|
<Text className={textClassName} appearance={appearance}>
|
|
20
23
|
{label}
|
|
@@ -14,6 +14,8 @@ const IconOption = (props: OptionTypeProps) => {
|
|
|
14
14
|
});
|
|
15
15
|
|
|
16
16
|
return (
|
|
17
|
+
// TODO(a11y): fix accessibility
|
|
18
|
+
/* eslint-disable */
|
|
17
19
|
<div
|
|
18
20
|
className={OptionClass}
|
|
19
21
|
onClick={onClickHandler}
|
|
@@ -21,6 +23,7 @@ const IconOption = (props: OptionTypeProps) => {
|
|
|
21
23
|
data-test={dataTest}
|
|
22
24
|
data-disabled={disabled}
|
|
23
25
|
>
|
|
26
|
+
{/* eslint-enable */}
|
|
24
27
|
{icon && (
|
|
25
28
|
<Icon className="Option-icon mr-4" data-test={`${dataTest}--Icon`} name={icon} appearance={appearance} />
|
|
26
29
|
)}
|
|
@@ -23,6 +23,8 @@ const IconWithMetaOption = (props: OptionTypeProps) => {
|
|
|
23
23
|
});
|
|
24
24
|
|
|
25
25
|
return (
|
|
26
|
+
// TODO(a11y): fix accessibility
|
|
27
|
+
/* eslint-disable */
|
|
26
28
|
<div
|
|
27
29
|
className={OptionClass}
|
|
28
30
|
onClick={onClickHandler}
|
|
@@ -30,6 +32,7 @@ const IconWithMetaOption = (props: OptionTypeProps) => {
|
|
|
30
32
|
data-test={dataTest}
|
|
31
33
|
data-disabled={disabled}
|
|
32
34
|
>
|
|
35
|
+
{/* eslint-enable */}
|
|
33
36
|
{icon && (
|
|
34
37
|
<Icon data-test={`${dataTest}--Icon`} className="Option-icon mr-4" name={icon} appearance={appearance} />
|
|
35
38
|
)}
|
|
@@ -17,6 +17,8 @@ const MetaOption = (props: OptionTypeProps) => {
|
|
|
17
17
|
const { subInfo, label, disabled } = optionData;
|
|
18
18
|
|
|
19
19
|
return (
|
|
20
|
+
// TODO(a11y): fix accessibility
|
|
21
|
+
/* eslint-disable */
|
|
20
22
|
<div
|
|
21
23
|
className={className}
|
|
22
24
|
onClick={onClickHandler}
|
|
@@ -24,6 +26,7 @@ const MetaOption = (props: OptionTypeProps) => {
|
|
|
24
26
|
data-test={dataTest}
|
|
25
27
|
data-disabled={disabled}
|
|
26
28
|
>
|
|
29
|
+
{/* eslint-enable */}
|
|
27
30
|
<div className={'Option-label'}>
|
|
28
31
|
<Text className={textClassName} appearance={appearance}>
|
|
29
32
|
{label}
|
|
@@ -22,12 +22,15 @@ export const Editable = (props: EditableProps) => {
|
|
|
22
22
|
|
|
23
23
|
return (
|
|
24
24
|
<div data-test="DesignSystem-Editable" {...baseProps} className={EditableClass}>
|
|
25
|
+
{/* TODO(a11y): fix accessibility */}
|
|
26
|
+
{/* eslint-disable */}
|
|
25
27
|
<div
|
|
26
28
|
data-test="DesignSystem-EditableWrapper"
|
|
27
29
|
onClick={() => onChange('edit')}
|
|
28
30
|
onMouseEnter={() => !editing && onChange('hover')}
|
|
29
31
|
onMouseLeave={() => !editing && onChange('default')}
|
|
30
32
|
>
|
|
33
|
+
{/* eslint-enable */}
|
|
31
34
|
{children}
|
|
32
35
|
</div>
|
|
33
36
|
</div>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import classNames from 'classnames';
|
|
3
3
|
import { BaseProps, extractBaseProps } from '@/utils/types';
|
|
4
|
+
import { useAccessibilityProps } from '@/accessibility/utils';
|
|
4
5
|
|
|
5
6
|
export type Appearance =
|
|
6
7
|
| 'default'
|
|
@@ -58,15 +59,25 @@ export interface IconProps extends BaseProps {
|
|
|
58
59
|
/**
|
|
59
60
|
* Handler to be called when icon is clicked
|
|
60
61
|
*/
|
|
61
|
-
onClick?: (e: React.MouseEvent<HTMLElement
|
|
62
|
+
onClick?: (e: React.MouseEvent<HTMLElement>) => void;
|
|
63
|
+
/**
|
|
64
|
+
* Handler to be called when key is pressed on icon
|
|
65
|
+
*/
|
|
66
|
+
onKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;
|
|
62
67
|
/**
|
|
63
68
|
* DOM node to be passed as child to the component
|
|
64
69
|
*/
|
|
65
70
|
children?: React.ReactNode;
|
|
71
|
+
/**
|
|
72
|
+
* The tabindex global attribute indicates that its element can be focused, and
|
|
73
|
+
* where it participates in sequential keyboard navigation.
|
|
74
|
+
*/
|
|
75
|
+
tabIndex?: React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>['tabIndex'];
|
|
66
76
|
}
|
|
67
77
|
|
|
68
78
|
export const Icon = (props: IconProps) => {
|
|
69
|
-
const { appearance, className, name, size,
|
|
79
|
+
const { appearance, className, name, size, children } = props;
|
|
80
|
+
const accessibilityProps = useAccessibilityProps(props);
|
|
70
81
|
|
|
71
82
|
const baseProps = extractBaseProps(props);
|
|
72
83
|
|
|
@@ -107,7 +118,7 @@ export const Icon = (props: IconProps) => {
|
|
|
107
118
|
);
|
|
108
119
|
}
|
|
109
120
|
return (
|
|
110
|
-
<i {...baseProps} className={iconClass} style={styles}
|
|
121
|
+
<i {...baseProps} role="alert" className={iconClass} style={styles} {...accessibilityProps}>
|
|
111
122
|
{type ? `${name}_${type}` : name}
|
|
112
123
|
</i>
|
|
113
124
|
);
|
|
@@ -4,7 +4,12 @@ import { Icon } from '@/index';
|
|
|
4
4
|
export const image = () => {
|
|
5
5
|
return (
|
|
6
6
|
<Icon size={50}>
|
|
7
|
-
<img
|
|
7
|
+
<img
|
|
8
|
+
alt="Innovaccer logo"
|
|
9
|
+
src="https://innovaccer.com/static/image/site-logo/innovaccer-logo-black.svg"
|
|
10
|
+
width="150"
|
|
11
|
+
height="150"
|
|
12
|
+
/>
|
|
8
13
|
</Icon>
|
|
9
14
|
);
|
|
10
15
|
};
|