@innovaccer/design-system 2.5.0 → 2.7.0-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/.eslintrc.json +54 -0
- package/.github/workflows/chromatic.yml +5 -0
- package/.github/workflows/main.yml +2 -2
- package/.github/workflows/pull_request.yml +2 -2
- package/.github/workflows/test.yml +1 -1
- package/.husky/commit-msg +4 -0
- package/.prettierrc +2 -2
- package/.storybook/main.js +4 -0
- package/.vscode/settings.json +11 -0
- package/CHANGELOG.md +78 -0
- package/CONTRIBUTING.md +180 -98
- 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 +33 -0
- package/core/common.type.tsx +22 -0
- package/core/components/atoms/_chip/__tests__/__snapshots__/_chip.test.tsx.snap +17 -9
- package/core/components/atoms/_chip/index.tsx +19 -3
- package/core/components/atoms/avatar/Avatar.tsx +4 -14
- package/core/components/atoms/avatar/__stories__/variants/Appearance.story.tsx +3 -2
- package/core/components/atoms/avatar/__tests__/Avatar.test.tsx +14 -9
- package/core/components/atoms/avatarGroup/AvatarGroup.tsx +3 -5
- package/core/components/atoms/badge/Badge.tsx +2 -12
- package/core/components/atoms/badge/__tests__/Badge.test.tsx +22 -7
- package/core/components/atoms/badge/_stories_/variants/Appearance.story.tsx +3 -2
- package/core/components/atoms/badge/_stories_/variants/Subtle.story.tsx +3 -2
- package/core/components/atoms/button/Button.tsx +10 -7
- 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 +12 -2
- package/core/components/atoms/button/__stories__/variants/Appearance.story.tsx +6 -2
- package/core/components/atoms/button/__stories__/variants/Expanded.story.tsx +6 -2
- 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 +6 -2
- package/core/components/atoms/button/__stories__/variants/icon/IconRight.story.tsx +6 -2
- 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/Transparent.story.tsx +13 -17
- package/core/components/atoms/button/__tests__/Button.test.tsx +1 -1
- package/core/components/atoms/button/__tests__/__snapshots__/Button.test.tsx.snap +0 -137
- package/core/components/atoms/card/__stories__/empty.story.tsx +1 -1
- package/core/components/atoms/card/__stories__/nested.story.tsx +1 -1
- package/core/components/atoms/card/__stories__/scroll.story.tsx +1 -1
- package/core/components/atoms/checkbox/Checkbox.tsx +8 -9
- package/core/components/atoms/checkbox/__stories__/variants/Size.story.tsx +2 -2
- package/core/components/atoms/chip/Chip.tsx +3 -2
- package/core/components/atoms/chip/__stories__/variants/Selection.story.tsx +17 -0
- package/core/components/atoms/chip/__stories__/variants/Type.story.tsx +2 -2
- package/core/components/atoms/chip/__tests__/Chip.test.tsx +7 -0
- package/core/components/atoms/chipGroup/__tests__/__snapshots__/chipGroup.test.tsx.snap +11 -5
- package/core/components/atoms/chipGroup/__tests__/chipGroup.test.tsx +2 -2
- package/core/components/atoms/chipGroup/_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/Dropdown.tsx +18 -17
- package/core/components/atoms/dropdown/DropdownButton.tsx +2 -2
- package/core/components/atoms/dropdown/DropdownList.tsx +18 -7
- package/core/components/atoms/dropdown/Loading.tsx +1 -1
- package/core/components/atoms/dropdown/__stories__/CustomSearchPlaceholder.story.tsx +45 -0
- package/core/components/atoms/dropdown/__stories__/_common_/types.tsx +3 -0
- package/core/components/atoms/dropdown/__stories__/variants/Size.story.tsx +2 -2
- package/core/components/atoms/dropdown/__stories__/variants/controlledDropdown/MultiSelect.story.tsx +28 -18
- package/core/components/atoms/dropdown/__tests__/Dropdown.test.tsx +12 -1
- package/core/components/atoms/dropdown/__tests__/Loading.test.tsx +0 -1
- 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/dropdown/option/index.tsx +1 -1
- package/core/components/atoms/editable/Editable.tsx +3 -0
- package/core/components/atoms/heading/Heading.tsx +4 -4
- package/core/components/atoms/heading/__stories__/variants/Appearance.story.tsx +3 -2
- package/core/components/atoms/heading/__tests__/Heading.test.tsx +4 -3
- package/core/components/atoms/icon/Icon.tsx +16 -5
- 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 +17 -7
- package/core/components/atoms/input/__stories__/BasicInput.story.tsx +2 -1
- package/core/components/atoms/input/__stories__/InputWithCaption.story.tsx +91 -9
- package/core/components/atoms/input/__stories__/InputWithLabel.story.tsx +11 -3
- package/core/components/atoms/input/__stories__/LabelPosition.story.tsx +46 -4
- package/core/components/atoms/input/__stories__/RequiredVsOptional.story.tsx +12 -8
- package/core/components/atoms/input/__stories__/variants/controlledInput.story.tsx +46 -0
- package/core/components/atoms/input/__stories__/variants/types/BasicInput.story.tsx +2 -2
- package/core/components/atoms/input/__stories__/variants/types/IconLeft.story.tsx +2 -10
- package/core/components/atoms/input/__stories__/variants/types/WithLabel.story.tsx +1 -9
- package/core/components/atoms/input/__tests__/__snapshots__/Input.test.tsx.snap +19 -0
- package/core/components/atoms/label/Label.tsx +1 -1
- package/core/components/atoms/legend/Legend.tsx +5 -2
- package/core/components/atoms/legend/__stories__/variants/labelAppearance.story.tsx +2 -2
- package/core/components/atoms/link/Link.tsx +4 -4
- package/core/components/atoms/message/Message.tsx +12 -12
- package/core/components/atoms/message/__stories__/index.story.tsx +1 -1
- package/core/components/atoms/message/__stories__/variants/Appearance.story.tsx +1 -1
- package/core/components/atoms/message/__stories__/variants/AppearanceTitle.story.tsx +1 -1
- package/core/components/atoms/message/__tests__/Message.test.tsx +1 -6
- package/core/components/atoms/message/__tests__/__snapshots__/Message.test.tsx.snap +0 -45
- package/core/components/atoms/metaList/__tests__/MetaList.test.tsx +2 -2
- package/core/components/atoms/metricInput/MetricInput.tsx +17 -7
- 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/SliderUtils.tsx +1 -4
- package/core/components/atoms/multiSlider/index.tsx +9 -4
- package/core/components/atoms/outsideClick/OutsideClick.tsx +1 -2
- package/core/components/atoms/paragraph/Paragraph.tsx +2 -2
- package/core/components/atoms/paragraph/__stories__/variants/Appearance.story.tsx +2 -2
- package/core/components/atoms/paragraph/__tests__/Paragraph.test.tsx +2 -2
- package/core/components/atoms/pills/Pills.tsx +2 -12
- package/core/components/atoms/pills/__stories__/variants/Appearance.story.tsx +3 -2
- package/core/components/atoms/pills/__stories__/variants/Subtle.story.tsx +3 -2
- package/core/components/atoms/pills/__tests__/Pills.test.tsx +3 -2
- package/core/components/atoms/placeholderImage/PlaceholderImage.tsx +2 -2
- package/core/components/atoms/placeholderImage/__stories__/variants/Size.story.tsx +2 -2
- package/core/components/atoms/placeholderParagraph/PlaceholderParagraph.tsx +2 -2
- package/core/components/atoms/placeholderParagraph/__stories__/variants/Size.story.tsx +2 -2
- package/core/components/atoms/popperWrapper/PopperWrapper.tsx +2 -6
- package/core/components/atoms/progressRing/ProgressRing.tsx +2 -2
- package/core/components/atoms/progressRing/__stories__/variants/Size.story.tsx +1 -1
- package/core/components/atoms/radio/Radio.tsx +4 -5
- package/core/components/atoms/rangeSlider/RangeSlider.tsx +1 -2
- package/core/components/atoms/rangeSlider/__stories__/index.story.tsx +1 -2
- package/core/components/atoms/rangeSlider/__stories__/variants/Controlled.story.tsx +1 -2
- package/core/components/atoms/rangeSlider/__stories__/variants/CustomLabels.story.tsx +1 -2
- package/core/components/atoms/spinner/Spinner.tsx +4 -4
- package/core/components/atoms/spinner/__stories__/variants/Appearance.story.tsx +2 -2
- package/core/components/atoms/spinner/__stories__/variants/Size.story.tsx +1 -1
- package/core/components/atoms/statusHint/StatusHint.tsx +5 -3
- package/core/components/atoms/statusHint/__stories__/variants/Appearance.story.tsx +3 -2
- package/core/components/atoms/statusHint/__tests__/StatusHint.test.tsx +3 -2
- package/core/components/atoms/subheading/Subheading.tsx +2 -2
- package/core/components/atoms/subheading/__stories__/variants/Appearance.story.tsx +3 -2
- package/core/components/atoms/subheading/__tests__/Subheading.test.tsx +3 -2
- package/core/components/atoms/switchInput/Switch.tsx +14 -9
- 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/text/Text.tsx +4 -4
- package/core/components/atoms/text/__stories__/variants/Appearance.story.tsx +2 -2
- package/core/components/atoms/text/__tests__/Text.test.tsx +2 -3
- 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/ActionButton.tsx +2 -2
- package/core/components/atoms/toast/Toast.tsx +11 -6
- package/core/components/atoms/toast/__stories__/index.story.tsx +2 -6
- package/core/components/atoms/toast/__stories__/variants/Appearance.story.tsx +3 -2
- package/core/components/atoms/toast/__stories__/variants/ToastMessage.story.tsx +3 -2
- package/core/components/atoms/toast/__stories__/variants/ToastWithAction.story.tsx +3 -2
- package/core/components/atoms/toast/__tests__/Toast.test.tsx +1 -1
- package/core/components/atoms/toast/__tests__/__snapshots__/Toast.test.tsx.snap +24 -125
- package/core/components/css-utilities/Schema.tsx +1 -1
- package/core/components/css-utilities/Spacing/Schema.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 +14 -2
- package/core/components/molecules/dropzone/Dropzone.tsx +6 -3
- package/core/components/molecules/dropzone/DropzoneBase.tsx +22 -38
- package/core/components/molecules/dropzone/FileSelectorUtils.tsx +1 -1
- package/core/components/molecules/dropzone/__stories__/index.story.tsx +151 -41
- package/core/components/molecules/dropzone/__tests__/Dropzone.test.tsx +2 -2
- package/core/components/molecules/dropzone/utils.tsx +6 -4
- 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 +12 -4
- 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 +9 -5
- package/core/components/molecules/emptyState/__stories__/pageNotLoadedWithSVG.story.tsx +26 -26
- package/core/components/molecules/fileList/FileListItem.tsx +3 -2
- package/core/components/molecules/fileUploader/FileUploaderItem.tsx +3 -2
- package/core/components/molecules/fileUploader/FileUploaderStatus.tsx +1 -1
- package/core/components/molecules/fileUploader/__stories__/_common_/types.tsx +3 -0
- package/core/components/molecules/fileUploader/__stories__/index.story.tsx +3 -222
- package/core/components/molecules/fullscreenModal/FullscreenModal.tsx +5 -7
- package/core/components/molecules/inputMask/InputMask.tsx +212 -146
- package/core/components/molecules/inputMask/__stories__/index.story.tsx +24 -0
- package/core/components/molecules/inputMask/__tests__/__snapshots__/InputMask.test.tsx.snap +1 -0
- package/core/components/molecules/modal/Modal.tsx +4 -6
- package/core/components/molecules/modal/__stories__/Confirmation.story.tsx +1 -1
- package/core/components/molecules/pagination/__tests__/__snapshots__/Pagination.test.tsx.snap +5 -1
- package/core/components/molecules/placeholder/Placeholder.tsx +2 -2
- package/core/components/molecules/popover/Popover.tsx +2 -9
- package/core/components/molecules/sidesheet/Sidesheet.tsx +5 -7
- package/core/components/molecules/sidesheet/__stories__/variants/CustomHeader.story.tsx +172 -0
- 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/tooltip/Tooltip.tsx +4 -4
- 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/__stories__/variants/firstDayOfWeek.story.tsx +2 -2
- package/core/components/organisms/calendar/__tests__/Calendar.test.tsx +27 -0
- package/core/components/organisms/calendar/utility.ts +3 -3
- package/core/components/organisms/choiceList/ChoiceList.tsx +12 -12
- package/core/components/organisms/datePicker/DatePicker.tsx +31 -16
- package/core/components/organisms/datePicker/Trigger.tsx +1 -5
- package/core/components/organisms/datePicker/__tests__/__snapshots__/DatePicker.test.tsx.snap +4518 -4479
- package/core/components/organisms/dateRangePicker/DateRangePicker.tsx +9 -10
- package/core/components/organisms/dateRangePicker/SingleInputTrigger.tsx +0 -1
- package/core/components/organisms/dateRangePicker/Trigger.tsx +2 -2
- package/core/components/organisms/dateRangePicker/__stories__/variants/monthsInView.story.tsx +2 -2
- package/core/components/organisms/dateRangePicker/__tests__/__snapshots__/DateRangePicker.test.tsx.snap +112 -40
- package/core/components/organisms/grid/Cell.tsx +23 -19
- package/core/components/organisms/grid/Grid.tsx +3 -4
- package/core/components/organisms/grid/GridBody.tsx +0 -1
- package/core/components/organisms/grid/GridContext.ts +1 -1
- package/core/components/organisms/grid/GridRow.tsx +4 -0
- package/core/components/organisms/grid/__stories__/_common_/editableSchema.tsx +1 -3
- package/core/components/organisms/grid/__stories__/_common_/fetchData.ts +3 -3
- package/core/components/organisms/grid/__stories__/_common_/loaderSchema.ts +0 -2
- package/core/components/organisms/grid/__stories__/_common_/schema.tsx +1 -3
- package/core/components/organisms/grid/__stories__/_common_/simpleLoaderSchema.ts +0 -2
- package/core/components/organisms/grid/__stories__/_common_/statusSchema.ts +0 -2
- package/core/components/organisms/horizontalNav/HorizontalNav.tsx +2 -0
- package/core/components/organisms/inlineMessage/InlineMessage.tsx +5 -7
- package/core/components/organisms/inlineMessage/__tests__/InlineMessage.test.tsx +3 -2
- package/core/components/organisms/inlineMessage/__tests__/__snapshots__/InlineMessage.test.tsx.snap +30 -40
- package/core/components/organisms/list/__stories__/_common_/types.tsx +3 -0
- package/core/components/organisms/list/__stories__/index.story.tsx +0 -16
- package/core/components/organisms/navigation/VerticalNavigation.tsx +4 -0
- package/core/components/organisms/table/Table.tsx +3 -2
- package/core/components/organisms/table/__stories__/CompressedTable.story.tsx +1 -1
- package/core/components/organisms/table/__stories__/DataTable.story.tsx +1 -1
- package/core/components/organisms/table/__stories__/NestedTableWithNestedCard.story.tsx +1 -1
- package/core/components/organisms/table/__stories__/PinnedColumn.story.tsx +1 -1
- package/core/components/organisms/table/__stories__/ResourceTable.story.tsx +4 -3
- package/core/components/organisms/table/__stories__/Selection.story.tsx +2 -2
- package/core/components/organisms/table/__stories__/StandardTable.story.tsx +1 -1
- package/core/components/organisms/table/__stories__/TableAsDescriptionList.story.tsx +2 -2
- package/core/components/organisms/table/__stories__/TableAsOptionList.story.tsx +2 -2
- package/core/components/organisms/table/__stories__/TightStory.story.tsx +1 -1
- package/core/components/organisms/table/__stories__/_common_/types.tsx +3 -0
- package/core/components/organisms/table/__stories__/syncTable.story.tsx +14 -6
- package/core/components/organisms/table/__stories__/variants/showHead.story.tsx +2 -2
- package/core/components/organisms/table/__stories__/variants/showMenu.story.tsx +2 -2
- package/core/components/organisms/table/__stories__/variants/size.story.tsx +2 -2
- package/core/components/organisms/table/__stories__/variants/type.story.tsx +2 -2
- package/core/components/organisms/table/__stories__/variants/withCheckbox.story.tsx +2 -2
- package/core/components/organisms/table/__stories__/variants/withHeader.story.tsx +0 -2
- package/core/components/organisms/table/__stories__/variants/withPagination.story.tsx +2 -2
- package/core/components/organisms/timePicker/TimePicker.tsx +4 -8
- 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/organisms/verticalNav/__stories__/schema.tsx +0 -2
- package/core/components/organisms/verticalNav/__tests__/VerticalNav.test.tsx +1 -2
- 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/global.d.ts +9 -0
- package/core/index.tsx +2 -1
- package/core/index.type.tsx +1 -0
- package/core/utils/Keys.ts +4 -0
- package/core/utils/__tests__/__snapshots__/TS.test.tsx.snap +562 -541
- package/core/utils/docPage/generateImports.tsx +2 -3
- package/core/utils/docPage/index.tsx +52 -37
- package/core/utils/docPage/sandbox.tsx +14 -7
- package/core/utils/overlayHelper.ts +7 -3
- package/core/utils/testHelper.ts +2 -2
- package/core/utils/types.tsx +1 -1
- package/core/utils/validators.ts +37 -34
- package/css/dist/index.css +1550 -1415
- 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 +95 -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 +20 -17
- 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/fullscreenModal.css +4 -3
- 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 +64 -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 +66 -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 +51 -56
- 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 +6 -3
- 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 +18 -0
- package/dist/core/common.type.d.ts +12 -0
- package/dist/core/components/atoms/avatar/Avatar.d.ts +4 -4
- package/dist/core/components/atoms/avatarGroup/AvatarGroup.d.ts +2 -3
- package/dist/core/components/atoms/badge/Badge.d.ts +2 -2
- package/dist/core/components/atoms/button/Button.d.ts +6 -6
- package/dist/core/components/atoms/checkbox/Checkbox.d.ts +3 -3
- package/dist/core/components/atoms/chip/Chip.d.ts +2 -2
- 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/dropdown/Dropdown.d.ts +18 -17
- package/dist/core/components/atoms/dropdown/DropdownButton.d.ts +2 -2
- package/dist/core/components/atoms/dropdown/DropdownList.d.ts +4 -3
- package/dist/core/components/atoms/dropdown/option/index.d.ts +1 -1
- package/dist/core/components/atoms/heading/Heading.d.ts +4 -4
- package/dist/core/components/atoms/icon/Icon.d.ts +5 -3
- package/dist/core/components/atoms/input/Input.d.ts +4 -4
- package/dist/core/components/atoms/legend/Legend.d.ts +2 -2
- package/dist/core/components/atoms/link/Link.d.ts +4 -4
- package/dist/core/components/atoms/message/Message.d.ts +2 -2
- package/dist/core/components/atoms/metricInput/MetricInput.d.ts +3 -3
- package/dist/core/components/atoms/multiSlider/SliderUtils.d.ts +1 -1
- package/dist/core/components/atoms/multiSlider/index.d.ts +3 -3
- package/dist/core/components/atoms/paragraph/Paragraph.d.ts +2 -2
- package/dist/core/components/atoms/pills/Pills.d.ts +2 -2
- package/dist/core/components/atoms/placeholderImage/PlaceholderImage.d.ts +2 -2
- package/dist/core/components/atoms/placeholderParagraph/PlaceholderParagraph.d.ts +2 -2
- package/dist/core/components/atoms/popperWrapper/PopperWrapper.d.ts +51 -51
- package/dist/core/components/atoms/progressRing/ProgressRing.d.ts +2 -2
- package/dist/core/components/atoms/radio/Radio.d.ts +4 -4
- package/dist/core/components/atoms/rangeSlider/RangeSlider.d.ts +1 -1
- package/dist/core/components/atoms/spinner/Spinner.d.ts +4 -4
- package/dist/core/components/atoms/statusHint/StatusHint.d.ts +2 -2
- package/dist/core/components/atoms/subheading/Subheading.d.ts +2 -2
- package/dist/core/components/atoms/switchInput/Switch.d.ts +7 -6
- package/dist/core/components/atoms/text/Text.d.ts +4 -4
- package/dist/core/components/atoms/toast/ActionButton.d.ts +2 -2
- package/dist/core/components/atoms/toast/Toast.d.ts +2 -2
- package/dist/core/components/molecules/dropzone/Dropzone.d.ts +3 -3
- package/dist/core/components/molecules/dropzone/DropzoneBase.d.ts +1 -1
- package/dist/core/components/molecules/dropzone/utils.d.ts +5 -3
- package/dist/core/components/molecules/emptyState/EmptyState.d.ts +4 -4
- package/dist/core/components/molecules/fileList/FileListItem.d.ts +1 -1
- package/dist/core/components/molecules/fileUploader/FileUploaderItem.d.ts +1 -1
- package/dist/core/components/molecules/fileUploader/FileUploaderStatus.d.ts +1 -1
- package/dist/core/components/molecules/fullscreenModal/FullscreenModal.d.ts +4 -7
- package/dist/core/components/molecules/inputMask/InputMask.d.ts +10 -2
- package/dist/core/components/molecules/modal/Modal.d.ts +3 -6
- package/dist/core/components/molecules/placeholder/Placeholder.d.ts +2 -2
- package/dist/core/components/molecules/popover/Popover.d.ts +0 -1
- package/dist/core/components/molecules/sidesheet/Sidesheet.d.ts +3 -6
- package/dist/core/components/molecules/tooltip/Tooltip.d.ts +3 -3
- package/dist/core/components/organisms/calendar/Calendar.d.ts +31 -0
- package/dist/core/components/organisms/choiceList/ChoiceList.d.ts +5 -6
- package/dist/core/components/organisms/datePicker/DatePicker.d.ts +2 -0
- package/dist/core/components/organisms/dateRangePicker/DateRangePicker.d.ts +24 -0
- package/dist/core/components/organisms/grid/Cell.d.ts +1 -1
- package/dist/core/components/organisms/grid/Grid.d.ts +3 -3
- package/dist/core/components/organisms/grid/GridContext.d.ts +1 -1
- package/dist/core/components/organisms/inlineMessage/InlineMessage.d.ts +2 -2
- package/dist/core/components/organisms/table/Table.d.ts +2 -2
- package/dist/core/components/patterns/datePicker/datePickerWithPresets.story.d.ts +15 -0
- package/dist/core/components/patterns/dateRangePicker/withCustomPopover.story.d.ts +5 -1
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.type.d.ts +1 -0
- package/dist/core/utils/docPage/generateImports.d.ts +1 -1
- package/dist/core/utils/overlayHelper.d.ts +1 -1
- package/dist/core/utils/types.d.ts +1 -1
- package/dist/index.esm.js +1039 -729
- package/dist/index.js +532 -371
- 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/dts.config.js +11 -2
- package/package.json +32 -27
- package/tsconfig.json +3 -16
- package/tsconfig.type.json +2 -1
- package/types/index.d.ts +2217 -0
- package/types/{innovaccer-design-system/tsconfig.json → tsconfig.json} +1 -1
- package/types/{innovaccer-design-system/tslint.json → tslint.json} +0 -0
- package/types/types-tests.tsx +936 -0
- package/.husky/prepare-commit-msg +0 -6
- package/core/components/atoms/button/__stories__/variants/state/Success.story.tsx +0 -99
- package/core/components/atoms/message/__stories__/default.story.tsx +0 -16
- package/core/components/atoms/toast/__stories__/DefaultToast.story.tsx +0 -16
- package/core/components/molecules/dropzone/__stories__/variants/DropzoneWithFileList.story.tsx +0 -176
- package/core/components/molecules/fileUploader/__stories__/variants/FileUploaderList.story.tsx +0 -80
- package/tslint.json +0 -30
- package/types/innovaccer-design-system/index.d.ts +0 -39
- package/types/innovaccer-design-system/innovaccer-design-system-tests.ts +0 -0
|
@@ -28,40 +28,9 @@ exports[`Toast component
|
|
|
28
28
|
</h5>
|
|
29
29
|
<i
|
|
30
30
|
class="material-icons material-icons-round Icon Icon--white Toast-icon Toast-icon--right Toast-icon--alert"
|
|
31
|
+
role="button"
|
|
31
32
|
style="font-size: 16px; width: 16px;"
|
|
32
|
-
|
|
33
|
-
close_round
|
|
34
|
-
</i>
|
|
35
|
-
</div>
|
|
36
|
-
</div>
|
|
37
|
-
</div>
|
|
38
|
-
</div>
|
|
39
|
-
</body>
|
|
40
|
-
`;
|
|
41
|
-
|
|
42
|
-
exports[`Toast component
|
|
43
|
-
title: "Sample Toast", appearance: "default", onClose: "[Function]"
|
|
44
|
-
1`] = `
|
|
45
|
-
<body>
|
|
46
|
-
<div>
|
|
47
|
-
<div
|
|
48
|
-
class="Toast Toast--default"
|
|
49
|
-
>
|
|
50
|
-
<div
|
|
51
|
-
class="Toast-body"
|
|
52
|
-
>
|
|
53
|
-
<div
|
|
54
|
-
class="Toast-title"
|
|
55
|
-
>
|
|
56
|
-
<h5
|
|
57
|
-
class="Heading Heading--s Heading--white Toast-heading Toast-heading--default"
|
|
58
|
-
data-test="DesignSystem-Heading"
|
|
59
|
-
>
|
|
60
|
-
Sample Toast
|
|
61
|
-
</h5>
|
|
62
|
-
<i
|
|
63
|
-
class="material-icons material-icons-round Icon Icon--white Toast-icon Toast-icon--right Toast-icon--default"
|
|
64
|
-
style="font-size: 16px; width: 16px;"
|
|
33
|
+
tabindex="0"
|
|
65
34
|
>
|
|
66
35
|
close_round
|
|
67
36
|
</i>
|
|
@@ -100,7 +69,9 @@ exports[`Toast component
|
|
|
100
69
|
</h5>
|
|
101
70
|
<i
|
|
102
71
|
class="material-icons material-icons-round Icon Icon--white Toast-icon Toast-icon--right Toast-icon--info"
|
|
72
|
+
role="button"
|
|
103
73
|
style="font-size: 16px; width: 16px;"
|
|
74
|
+
tabindex="0"
|
|
104
75
|
>
|
|
105
76
|
close_round
|
|
106
77
|
</i>
|
|
@@ -139,7 +110,9 @@ exports[`Toast component
|
|
|
139
110
|
</h5>
|
|
140
111
|
<i
|
|
141
112
|
class="material-icons material-icons-round Icon Icon--white Toast-icon Toast-icon--right Toast-icon--success"
|
|
113
|
+
role="button"
|
|
142
114
|
style="font-size: 16px; width: 16px;"
|
|
115
|
+
tabindex="0"
|
|
143
116
|
>
|
|
144
117
|
close_round
|
|
145
118
|
</i>
|
|
@@ -178,7 +151,9 @@ exports[`Toast component
|
|
|
178
151
|
</h5>
|
|
179
152
|
<i
|
|
180
153
|
class="material-icons material-icons-round Icon Icon--default Toast-icon Toast-icon--right Toast-icon--warning"
|
|
154
|
+
role="button"
|
|
181
155
|
style="font-size: 16px; width: 16px;"
|
|
156
|
+
tabindex="0"
|
|
182
157
|
>
|
|
183
158
|
close_round
|
|
184
159
|
</i>
|
|
@@ -217,7 +192,9 @@ exports[`Toast component
|
|
|
217
192
|
</h5>
|
|
218
193
|
<i
|
|
219
194
|
class="material-icons material-icons-round Icon Icon--white Toast-icon Toast-icon--right Toast-icon--alert"
|
|
195
|
+
role="button"
|
|
220
196
|
style="font-size: 16px; width: 16px;"
|
|
197
|
+
tabindex="0"
|
|
221
198
|
>
|
|
222
199
|
close_round
|
|
223
200
|
</i>
|
|
@@ -262,7 +239,9 @@ exports[`Toast component
|
|
|
262
239
|
</h5>
|
|
263
240
|
<i
|
|
264
241
|
class="material-icons material-icons-round Icon Icon--white Toast-icon Toast-icon--right Toast-icon--alert"
|
|
242
|
+
role="button"
|
|
265
243
|
style="font-size: 16px; width: 16px;"
|
|
244
|
+
tabindex="0"
|
|
266
245
|
>
|
|
267
246
|
close_round
|
|
268
247
|
</i>
|
|
@@ -293,98 +272,6 @@ exports[`Toast component
|
|
|
293
272
|
</body>
|
|
294
273
|
`;
|
|
295
274
|
|
|
296
|
-
exports[`Toast component
|
|
297
|
-
title: "Sample Toast", message: "Sample string", appearance: "default", onClose: "[Function]"
|
|
298
|
-
1`] = `
|
|
299
|
-
<body>
|
|
300
|
-
<div>
|
|
301
|
-
<div
|
|
302
|
-
class="Toast Toast--withMessage Toast--default"
|
|
303
|
-
>
|
|
304
|
-
<div
|
|
305
|
-
class="Toast-body"
|
|
306
|
-
>
|
|
307
|
-
<div
|
|
308
|
-
class="Toast-title Toast-title--withMessage"
|
|
309
|
-
>
|
|
310
|
-
<h5
|
|
311
|
-
class="Heading Heading--s Heading--white Toast-heading Toast-heading--default"
|
|
312
|
-
data-test="DesignSystem-Heading"
|
|
313
|
-
>
|
|
314
|
-
Sample Toast
|
|
315
|
-
</h5>
|
|
316
|
-
<i
|
|
317
|
-
class="material-icons material-icons-round Icon Icon--white Toast-icon Toast-icon--right Toast-icon--default"
|
|
318
|
-
style="font-size: 16px; width: 16px;"
|
|
319
|
-
>
|
|
320
|
-
close_round
|
|
321
|
-
</i>
|
|
322
|
-
</div>
|
|
323
|
-
<span
|
|
324
|
-
class="Text Text--white Text--regular Toast-text Toast-text--default"
|
|
325
|
-
data-test="DesignSystem-Text"
|
|
326
|
-
>
|
|
327
|
-
Sample string
|
|
328
|
-
</span>
|
|
329
|
-
</div>
|
|
330
|
-
</div>
|
|
331
|
-
</div>
|
|
332
|
-
</body>
|
|
333
|
-
`;
|
|
334
|
-
|
|
335
|
-
exports[`Toast component
|
|
336
|
-
title: "Sample Toast", message: "Sample string", appearance: "default", onClose: "[Function]", actions: [{"label":"Action 1","onClick":"[Function]"}]
|
|
337
|
-
1`] = `
|
|
338
|
-
<body>
|
|
339
|
-
<div>
|
|
340
|
-
<div
|
|
341
|
-
class="Toast Toast--withMessage Toast--default"
|
|
342
|
-
>
|
|
343
|
-
<div
|
|
344
|
-
class="Toast-body"
|
|
345
|
-
>
|
|
346
|
-
<div
|
|
347
|
-
class="Toast-title Toast-title--withMessage"
|
|
348
|
-
>
|
|
349
|
-
<h5
|
|
350
|
-
class="Heading Heading--s Heading--white Toast-heading Toast-heading--default"
|
|
351
|
-
data-test="DesignSystem-Heading"
|
|
352
|
-
>
|
|
353
|
-
Sample Toast
|
|
354
|
-
</h5>
|
|
355
|
-
<i
|
|
356
|
-
class="material-icons material-icons-round Icon Icon--white Toast-icon Toast-icon--right Toast-icon--default"
|
|
357
|
-
style="font-size: 16px; width: 16px;"
|
|
358
|
-
>
|
|
359
|
-
close_round
|
|
360
|
-
</i>
|
|
361
|
-
</div>
|
|
362
|
-
<span
|
|
363
|
-
class="Text Text--white Text--regular Toast-text Toast-text--default"
|
|
364
|
-
data-test="DesignSystem-Text"
|
|
365
|
-
>
|
|
366
|
-
Sample string
|
|
367
|
-
</span>
|
|
368
|
-
<div
|
|
369
|
-
class="Toast-actions"
|
|
370
|
-
>
|
|
371
|
-
<button
|
|
372
|
-
class="Button Button--tiny Toast-actionButton Toast-actionButton--default"
|
|
373
|
-
>
|
|
374
|
-
<span
|
|
375
|
-
class="Text Text--white Text--regular"
|
|
376
|
-
data-test="DesignSystem-Text"
|
|
377
|
-
>
|
|
378
|
-
Action 1
|
|
379
|
-
</span>
|
|
380
|
-
</button>
|
|
381
|
-
</div>
|
|
382
|
-
</div>
|
|
383
|
-
</div>
|
|
384
|
-
</div>
|
|
385
|
-
</body>
|
|
386
|
-
`;
|
|
387
|
-
|
|
388
275
|
exports[`Toast component
|
|
389
276
|
title: "Sample Toast", message: "Sample string", appearance: "info", onClose: "[Function]"
|
|
390
277
|
1`] = `
|
|
@@ -413,7 +300,9 @@ exports[`Toast component
|
|
|
413
300
|
</h5>
|
|
414
301
|
<i
|
|
415
302
|
class="material-icons material-icons-round Icon Icon--white Toast-icon Toast-icon--right Toast-icon--info"
|
|
303
|
+
role="button"
|
|
416
304
|
style="font-size: 16px; width: 16px;"
|
|
305
|
+
tabindex="0"
|
|
417
306
|
>
|
|
418
307
|
close_round
|
|
419
308
|
</i>
|
|
@@ -458,7 +347,9 @@ exports[`Toast component
|
|
|
458
347
|
</h5>
|
|
459
348
|
<i
|
|
460
349
|
class="material-icons material-icons-round Icon Icon--white Toast-icon Toast-icon--right Toast-icon--info"
|
|
350
|
+
role="button"
|
|
461
351
|
style="font-size: 16px; width: 16px;"
|
|
352
|
+
tabindex="0"
|
|
462
353
|
>
|
|
463
354
|
close_round
|
|
464
355
|
</i>
|
|
@@ -517,7 +408,9 @@ exports[`Toast component
|
|
|
517
408
|
</h5>
|
|
518
409
|
<i
|
|
519
410
|
class="material-icons material-icons-round Icon Icon--white Toast-icon Toast-icon--right Toast-icon--success"
|
|
411
|
+
role="button"
|
|
520
412
|
style="font-size: 16px; width: 16px;"
|
|
413
|
+
tabindex="0"
|
|
521
414
|
>
|
|
522
415
|
close_round
|
|
523
416
|
</i>
|
|
@@ -562,7 +455,9 @@ exports[`Toast component
|
|
|
562
455
|
</h5>
|
|
563
456
|
<i
|
|
564
457
|
class="material-icons material-icons-round Icon Icon--white Toast-icon Toast-icon--right Toast-icon--success"
|
|
458
|
+
role="button"
|
|
565
459
|
style="font-size: 16px; width: 16px;"
|
|
460
|
+
tabindex="0"
|
|
566
461
|
>
|
|
567
462
|
close_round
|
|
568
463
|
</i>
|
|
@@ -621,7 +516,9 @@ exports[`Toast component
|
|
|
621
516
|
</h5>
|
|
622
517
|
<i
|
|
623
518
|
class="material-icons material-icons-round Icon Icon--default Toast-icon Toast-icon--right Toast-icon--warning"
|
|
519
|
+
role="button"
|
|
624
520
|
style="font-size: 16px; width: 16px;"
|
|
521
|
+
tabindex="0"
|
|
625
522
|
>
|
|
626
523
|
close_round
|
|
627
524
|
</i>
|
|
@@ -666,7 +563,9 @@ exports[`Toast component
|
|
|
666
563
|
</h5>
|
|
667
564
|
<i
|
|
668
565
|
class="material-icons material-icons-round Icon Icon--default Toast-icon Toast-icon--right Toast-icon--warning"
|
|
566
|
+
role="button"
|
|
669
567
|
style="font-size: 16px; width: 16px;"
|
|
568
|
+
tabindex="0"
|
|
670
569
|
>
|
|
671
570
|
close_round
|
|
672
571
|
</i>
|
|
@@ -33,11 +33,14 @@ export const Box = (props: InternalBoxProps) => {
|
|
|
33
33
|
className
|
|
34
34
|
);
|
|
35
35
|
|
|
36
|
+
/* TODO(a11y): fix accessibility */
|
|
37
|
+
/* eslint-disable */
|
|
36
38
|
return (
|
|
37
39
|
<div {...baseProps} className={MessageClass} onClick={onClick} data-test="DesignSystem-ChatMessage--Box">
|
|
38
40
|
{children}
|
|
39
41
|
</div>
|
|
40
42
|
);
|
|
43
|
+
/* eslint-enable */
|
|
41
44
|
};
|
|
42
45
|
|
|
43
46
|
Box.displayName = 'Box';
|
|
@@ -190,6 +190,8 @@ export const ChipInput = (props: ChipInputProps) => {
|
|
|
190
190
|
});
|
|
191
191
|
|
|
192
192
|
return (
|
|
193
|
+
/* TODO(a11y): fix accessibility */
|
|
194
|
+
/* eslint-disable */
|
|
193
195
|
<div data-test="DesignSystem-ChipInput" {...baseProps} className={ChipInputClass} onClick={onClickHandler}>
|
|
194
196
|
<div className="ChipInput-wrapper">
|
|
195
197
|
{chips && chips.length > 0 && chipComponents}
|
|
@@ -206,6 +208,7 @@ export const ChipInput = (props: ChipInputProps) => {
|
|
|
206
208
|
onChange={onInputChangeHandler}
|
|
207
209
|
onKeyDown={onKeyDownHandler}
|
|
208
210
|
/>
|
|
211
|
+
{/* eslint-enable */}
|
|
209
212
|
</div>
|
|
210
213
|
{chips.length > 0 && (
|
|
211
214
|
<Icon
|
|
@@ -23,9 +23,11 @@ exports[`ChipInput component
|
|
|
23
23
|
1020
|
|
24
24
|
</span>
|
|
25
25
|
<i
|
|
26
|
-
class="material-icons material-icons-round Icon
|
|
26
|
+
class="material-icons material-icons-round Icon Chip-icon Chip-icon--right cursor-pointer"
|
|
27
27
|
data-test="DesignSystem-GenericChip--clearButton"
|
|
28
|
+
role="button"
|
|
28
29
|
style="font-size: 16px; width: 16px;"
|
|
30
|
+
tabindex="0"
|
|
29
31
|
>
|
|
30
32
|
clear_round
|
|
31
33
|
</i>
|
|
@@ -41,9 +43,11 @@ exports[`ChipInput component
|
|
|
41
43
|
80
|
|
42
44
|
</span>
|
|
43
45
|
<i
|
|
44
|
-
class="material-icons material-icons-round Icon
|
|
46
|
+
class="material-icons material-icons-round Icon Chip-icon Chip-icon--right cursor-pointer"
|
|
45
47
|
data-test="DesignSystem-GenericChip--clearButton"
|
|
48
|
+
role="button"
|
|
46
49
|
style="font-size: 16px; width: 16px;"
|
|
50
|
+
tabindex="0"
|
|
47
51
|
>
|
|
48
52
|
clear_round
|
|
49
53
|
</i>
|
|
@@ -58,7 +62,9 @@ exports[`ChipInput component
|
|
|
58
62
|
<i
|
|
59
63
|
class="material-icons material-icons-round Icon Icon--subtle ChipInput-icon"
|
|
60
64
|
data-test="DesignSystem-ChipInput--Icon"
|
|
65
|
+
role="button"
|
|
61
66
|
style="font-size: 16px; width: 16px;"
|
|
67
|
+
tabindex="0"
|
|
62
68
|
>
|
|
63
69
|
close_round
|
|
64
70
|
</i>
|
|
@@ -92,7 +98,9 @@ exports[`ChipInput component
|
|
|
92
98
|
<i
|
|
93
99
|
class="material-icons material-icons-round Icon Icon--disabled Chip-icon Chip-icon--right"
|
|
94
100
|
data-test="DesignSystem-GenericChip--clearButton"
|
|
101
|
+
role="button"
|
|
95
102
|
style="font-size: 16px; width: 16px;"
|
|
103
|
+
tabindex="0"
|
|
96
104
|
>
|
|
97
105
|
clear_round
|
|
98
106
|
</i>
|
|
@@ -110,7 +118,9 @@ exports[`ChipInput component
|
|
|
110
118
|
<i
|
|
111
119
|
class="material-icons material-icons-round Icon Icon--disabled Chip-icon Chip-icon--right"
|
|
112
120
|
data-test="DesignSystem-GenericChip--clearButton"
|
|
121
|
+
role="button"
|
|
113
122
|
style="font-size: 16px; width: 16px;"
|
|
123
|
+
tabindex="0"
|
|
114
124
|
>
|
|
115
125
|
clear_round
|
|
116
126
|
</i>
|
|
@@ -126,7 +136,9 @@ exports[`ChipInput component
|
|
|
126
136
|
<i
|
|
127
137
|
class="material-icons material-icons-round Icon Icon--subtle ChipInput-icon"
|
|
128
138
|
data-test="DesignSystem-ChipInput--Icon"
|
|
139
|
+
role="button"
|
|
129
140
|
style="font-size: 16px; width: 16px;"
|
|
141
|
+
tabindex="0"
|
|
130
142
|
>
|
|
131
143
|
close_round
|
|
132
144
|
</i>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import * as React from 'react';
|
|
2
2
|
import classNames from 'classnames';
|
|
3
3
|
import { Icon, Text } from '@/index';
|
|
4
4
|
import DropzoneBase, { DropzoneBaseProps } from './DropzoneBase';
|
|
@@ -7,7 +7,7 @@ import DropzoneError from './DropzoneError';
|
|
|
7
7
|
import { BaseProps, extractBaseProps } from '@/utils/types';
|
|
8
8
|
import { fileErrorMessages } from './FileErrors';
|
|
9
9
|
|
|
10
|
-
export type
|
|
10
|
+
export type DropZoneType = 'standard' | 'compressed' | 'tight';
|
|
11
11
|
|
|
12
12
|
export interface DropzoneProps extends BaseProps, DropzoneBaseProps {
|
|
13
13
|
/**
|
|
@@ -17,7 +17,7 @@ export interface DropzoneProps extends BaseProps, DropzoneBaseProps {
|
|
|
17
17
|
/**
|
|
18
18
|
* Size of `Dropzone`
|
|
19
19
|
*/
|
|
20
|
-
type:
|
|
20
|
+
type: DropZoneType;
|
|
21
21
|
/**
|
|
22
22
|
* Description of maximum size in `FileUploader`
|
|
23
23
|
*/
|
|
@@ -70,6 +70,8 @@ export const Dropzone = (props: DropzoneProps) => {
|
|
|
70
70
|
<Text size="large" weight="strong" className="mr-2" appearance={disabled ? 'disabled' : 'default'}>
|
|
71
71
|
Drag your files here or
|
|
72
72
|
</Text>
|
|
73
|
+
{/* TODO(a11y): fix accessibility */}
|
|
74
|
+
{/* eslint-disable */}
|
|
73
75
|
<span className="cursor-pointer" onClick={open}>
|
|
74
76
|
<Text size="large" weight="strong" appearance={disabled ? 'disabled' : 'link'}>
|
|
75
77
|
browse files
|
|
@@ -77,6 +79,7 @@ export const Dropzone = (props: DropzoneProps) => {
|
|
|
77
79
|
</span>
|
|
78
80
|
<input {...getInputProps()} />
|
|
79
81
|
</span>
|
|
82
|
+
{/* eslint-enable */}
|
|
80
83
|
{formatLabel && <Text appearance={disabled ? 'disabled' : 'subtle'}>{formatLabel}</Text>}
|
|
81
84
|
{sizeLabel && <Text appearance={disabled ? 'disabled' : 'subtle'}>{sizeLabel}</Text>}
|
|
82
85
|
{sampleFileLink && <div className="mt-5">{sampleFileLink}</div>}
|
|
@@ -106,7 +106,7 @@ export interface DropzoneBaseProps extends BaseProps {
|
|
|
106
106
|
* @param {FileRejection[]} fileRejections
|
|
107
107
|
* @param {(DragEvent|Event)} event
|
|
108
108
|
*/
|
|
109
|
-
onDropRejected?: (event: DragEvent | Event, rejectedFiles: FileRejection[]) =>
|
|
109
|
+
onDropRejected?: (event: DragEvent | Event, rejectedFiles: FileRejection[]) => void;
|
|
110
110
|
|
|
111
111
|
/**
|
|
112
112
|
* Custom validation function
|
|
@@ -149,8 +149,8 @@ export const DropzoneBase = (props: DropzoneBaseProps) => {
|
|
|
149
149
|
validator,
|
|
150
150
|
} = props;
|
|
151
151
|
|
|
152
|
-
const rootRef = useRef(null);
|
|
153
|
-
const inputRef = useRef(null);
|
|
152
|
+
const rootRef = useRef<HTMLDivElement>(null);
|
|
153
|
+
const inputRef = useRef<HTMLInputElement>(null);
|
|
154
154
|
|
|
155
155
|
const [state, dispatch] = useReducer(reducer, initialState);
|
|
156
156
|
const { isFocused, isFileDialogActive, draggedFiles } = state;
|
|
@@ -158,9 +158,9 @@ export const DropzoneBase = (props: DropzoneBaseProps) => {
|
|
|
158
158
|
const openFileDialog = useCallback(() => {
|
|
159
159
|
if (inputRef.current) {
|
|
160
160
|
dispatch({ type: 'openDialog' });
|
|
161
|
-
|
|
162
|
-
inputRef.current.value =
|
|
163
|
-
|
|
161
|
+
|
|
162
|
+
inputRef.current.value = '';
|
|
163
|
+
|
|
164
164
|
inputRef.current.click();
|
|
165
165
|
}
|
|
166
166
|
}, [dispatch]);
|
|
@@ -169,10 +169,9 @@ export const DropzoneBase = (props: DropzoneBaseProps) => {
|
|
|
169
169
|
if (isFileDialogActive) {
|
|
170
170
|
setTimeout(() => {
|
|
171
171
|
if (inputRef.current) {
|
|
172
|
-
// @ts-ignore
|
|
173
172
|
const { files } = inputRef.current;
|
|
174
173
|
|
|
175
|
-
if (!files.length) {
|
|
174
|
+
if (!files || !files.length) {
|
|
176
175
|
dispatch({ type: 'closeDialog' });
|
|
177
176
|
|
|
178
177
|
if (typeof onFileDialogCancel === 'function') {
|
|
@@ -193,7 +192,6 @@ export const DropzoneBase = (props: DropzoneBaseProps) => {
|
|
|
193
192
|
// Cb to open the file dialog when SPACE/ENTER occurs on the dropzone
|
|
194
193
|
const onKeyDownCb = useCallback(
|
|
195
194
|
(event) => {
|
|
196
|
-
// @ts-ignore
|
|
197
195
|
if (!rootRef.current || !rootRef.current.isEqualNode(event.target)) {
|
|
198
196
|
return;
|
|
199
197
|
}
|
|
@@ -215,11 +213,11 @@ export const DropzoneBase = (props: DropzoneBaseProps) => {
|
|
|
215
213
|
dispatch({ type: 'blur' });
|
|
216
214
|
}, []);
|
|
217
215
|
|
|
218
|
-
const dragTargetsRef = useRef([]);
|
|
216
|
+
const dragTargetsRef = useRef<HTMLElement[]>([]);
|
|
219
217
|
|
|
220
|
-
const onDocumentDrop = (event:
|
|
221
|
-
//
|
|
222
|
-
if (rootRef.current && rootRef.current.contains(event.target)) {
|
|
218
|
+
const onDocumentDrop = (event: DragEvent) => {
|
|
219
|
+
// Not every event target type is element so we have to check if it is.
|
|
220
|
+
if (event.target instanceof HTMLDivElement && rootRef.current && rootRef.current.contains(event.target)) {
|
|
223
221
|
return;
|
|
224
222
|
}
|
|
225
223
|
event.preventDefault();
|
|
@@ -245,7 +243,6 @@ export const DropzoneBase = (props: DropzoneBaseProps) => {
|
|
|
245
243
|
event.preventDefault();
|
|
246
244
|
event.persist();
|
|
247
245
|
|
|
248
|
-
// @ts-ignore
|
|
249
246
|
dragTargetsRef.current = [...dragTargetsRef.current, event.target];
|
|
250
247
|
|
|
251
248
|
if (isEvtWithFiles(event)) {
|
|
@@ -294,11 +291,7 @@ export const DropzoneBase = (props: DropzoneBaseProps) => {
|
|
|
294
291
|
event.preventDefault();
|
|
295
292
|
event.persist();
|
|
296
293
|
|
|
297
|
-
const targets = dragTargetsRef.current.filter(
|
|
298
|
-
// @ts-ignore
|
|
299
|
-
(target) => rootRef.current && rootRef.current.contains(target)
|
|
300
|
-
);
|
|
301
|
-
// @ts-ignore
|
|
294
|
+
const targets = dragTargetsRef.current.filter((target) => rootRef.current && rootRef.current.contains(target));
|
|
302
295
|
const targetIdx = targets.indexOf(event.target);
|
|
303
296
|
if (targetIdx !== -1) {
|
|
304
297
|
targets.splice(targetIdx, 1);
|
|
@@ -336,7 +329,10 @@ export const DropzoneBase = (props: DropzoneBaseProps) => {
|
|
|
336
329
|
}
|
|
337
330
|
|
|
338
331
|
const acceptedFiles: File[] = [];
|
|
339
|
-
const fileRejections:
|
|
332
|
+
const fileRejections: {
|
|
333
|
+
file: File;
|
|
334
|
+
errors: FileError[];
|
|
335
|
+
}[] = [];
|
|
340
336
|
|
|
341
337
|
files.forEach((file: File) => {
|
|
342
338
|
const [accepted, acceptError] = fileAccepted(file, accept);
|
|
@@ -351,8 +347,8 @@ export const DropzoneBase = (props: DropzoneBaseProps) => {
|
|
|
351
347
|
if (customErrors) {
|
|
352
348
|
errors = errors.concat(customErrors);
|
|
353
349
|
}
|
|
354
|
-
|
|
355
|
-
fileRejections.push({ file, errors:
|
|
350
|
+
const filteredErrors = errors.filter((e) => e) as Array<FileError>;
|
|
351
|
+
fileRejections.push({ file, errors: filteredErrors });
|
|
356
352
|
}
|
|
357
353
|
});
|
|
358
354
|
|
|
@@ -380,18 +376,10 @@ export const DropzoneBase = (props: DropzoneBaseProps) => {
|
|
|
380
376
|
[multiple, accept, minSize, maxSize, getFilesFromEvent, onDrop, onDropAccepted, onDropRejected]
|
|
381
377
|
);
|
|
382
378
|
|
|
383
|
-
const
|
|
379
|
+
const composeDragHandler = (fn: (event: DragEvent) => void) => {
|
|
384
380
|
return disabled ? null : fn;
|
|
385
381
|
};
|
|
386
382
|
|
|
387
|
-
const composeKeyboardHandler = (_fn: any) => {
|
|
388
|
-
return null;
|
|
389
|
-
};
|
|
390
|
-
|
|
391
|
-
const composeDragHandler = (fn: any) => {
|
|
392
|
-
return composeHandler(fn);
|
|
393
|
-
};
|
|
394
|
-
|
|
395
383
|
const getRootProps = useMemo(
|
|
396
384
|
() =>
|
|
397
385
|
({
|
|
@@ -406,10 +394,6 @@ export const DropzoneBase = (props: DropzoneBaseProps) => {
|
|
|
406
394
|
onDropCallback,
|
|
407
395
|
...rest
|
|
408
396
|
}: any = {}) => ({
|
|
409
|
-
onKeyDown: composeKeyboardHandler(composeEventHandlers(onKeyDown, onKeyDownCb)),
|
|
410
|
-
onFocus: composeKeyboardHandler(composeEventHandlers(onFocus, onFocusCb)),
|
|
411
|
-
onBlur: composeKeyboardHandler(composeEventHandlers(onBlur, onBlurCb)),
|
|
412
|
-
// onClick: composeHandler(composeEventHandlers(onClick, onClickCb)),
|
|
413
397
|
onDragEnter: composeDragHandler(composeEventHandlers(onDragEnterCallback, onDragEnterCb)),
|
|
414
398
|
onDragOver: composeDragHandler(composeEventHandlers(onDragOverCallback, onDragOverCb)),
|
|
415
399
|
onDragLeave: composeDragHandler(composeEventHandlers(onDragLeaveCallback, onDragLeaveCb)),
|
|
@@ -432,8 +416,8 @@ export const DropzoneBase = (props: DropzoneBaseProps) => {
|
|
|
432
416
|
multiple,
|
|
433
417
|
type: 'file',
|
|
434
418
|
style: { display: 'none' },
|
|
435
|
-
onChange:
|
|
436
|
-
onClick:
|
|
419
|
+
onChange: composeDragHandler(composeEventHandlers(onChange, onDropCb)),
|
|
420
|
+
onClick: composeDragHandler(composeEventHandlers(onClick, onInputElementClick)),
|
|
437
421
|
autoComplete: 'off',
|
|
438
422
|
tabIndex: -1,
|
|
439
423
|
[refKey]: inputRef,
|
|
@@ -463,7 +447,7 @@ export const DropzoneBase = (props: DropzoneBaseProps) => {
|
|
|
463
447
|
draggedFiles,
|
|
464
448
|
fileError,
|
|
465
449
|
isFocused: isFocused && !disabled,
|
|
466
|
-
open:
|
|
450
|
+
open: composeDragHandler(openFileDialog),
|
|
467
451
|
};
|
|
468
452
|
};
|
|
469
453
|
|