@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
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Divider, Row, Column, Card, CardBody, Radio, Heading } from '@/index';
|
|
3
|
+
|
|
4
|
+
export const HeaderDividerInCard = () => {
|
|
5
|
+
return (
|
|
6
|
+
<Row>
|
|
7
|
+
<Column size="6">
|
|
8
|
+
<Card className="pb-6" shadow="none">
|
|
9
|
+
<CardBody className="p-0">
|
|
10
|
+
<Row className="p-4">
|
|
11
|
+
<Heading size="s">Section 1</Heading>
|
|
12
|
+
</Row>
|
|
13
|
+
|
|
14
|
+
<Divider appearance="header" />
|
|
15
|
+
|
|
16
|
+
<div className="px-4 pt-4">
|
|
17
|
+
<Heading size="s">1. Little interest or pleasure in doing things.</Heading>
|
|
18
|
+
<br />
|
|
19
|
+
<Column className="px-4">
|
|
20
|
+
<Radio defaultChecked={true} label="Not at all" name="section" size="regular" value="Not at all" />
|
|
21
|
+
<Radio label="Several Days" name="section" size="regular" value="Several Days" />
|
|
22
|
+
<Radio label="More than half the days" name="section" size="regular" value="More than half days" />
|
|
23
|
+
</Column>
|
|
24
|
+
</div>
|
|
25
|
+
</CardBody>
|
|
26
|
+
</Card>
|
|
27
|
+
</Column>
|
|
28
|
+
</Row>
|
|
29
|
+
);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export default {
|
|
33
|
+
title: 'Components/Divider/Header Divider In Card',
|
|
34
|
+
component: Divider,
|
|
35
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Divider, Row, Column, Card, CardBody, Heading, Input, Text } from '@/index';
|
|
3
|
+
|
|
4
|
+
export const IndentedDivider = () => {
|
|
5
|
+
return (
|
|
6
|
+
<Row>
|
|
7
|
+
<Column size="6">
|
|
8
|
+
<Heading size="m">Select assessment</Heading>
|
|
9
|
+
<Card>
|
|
10
|
+
<CardBody className="p-0">
|
|
11
|
+
<Row className="p-6">
|
|
12
|
+
<Column size={8}>
|
|
13
|
+
<Input className="w-25" icon="search" name="input" placeholder="Search" />
|
|
14
|
+
</Column>
|
|
15
|
+
</Row>
|
|
16
|
+
|
|
17
|
+
<Divider appearance="header" />
|
|
18
|
+
|
|
19
|
+
<div className="pl-6">
|
|
20
|
+
<div className="py-6">
|
|
21
|
+
<Text>Functional Assessment - Initial</Text>
|
|
22
|
+
</div>
|
|
23
|
+
<Divider />
|
|
24
|
+
|
|
25
|
+
<div className="py-6">
|
|
26
|
+
<Text>Functional Assessment - Discharge</Text>
|
|
27
|
+
</div>
|
|
28
|
+
<Divider />
|
|
29
|
+
|
|
30
|
+
<div className="py-6">
|
|
31
|
+
<Text>Social Influence of Health</Text>
|
|
32
|
+
</div>
|
|
33
|
+
<Divider />
|
|
34
|
+
|
|
35
|
+
<div className="py-6">
|
|
36
|
+
<Text>Social Determinants of Health</Text>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
</CardBody>
|
|
40
|
+
</Card>
|
|
41
|
+
</Column>
|
|
42
|
+
</Row>
|
|
43
|
+
);
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export default {
|
|
47
|
+
title: 'Components/Divider/Indented Divider',
|
|
48
|
+
component: Divider,
|
|
49
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Divider, Row, Column, Card, CardBody, Text, Heading, Radio } from '@/index';
|
|
3
|
+
|
|
4
|
+
export const VerticalDivider = () => {
|
|
5
|
+
return (
|
|
6
|
+
<Row>
|
|
7
|
+
<Column size="8">
|
|
8
|
+
<Card shadow="none">
|
|
9
|
+
<CardBody className="p-0">
|
|
10
|
+
<Row>
|
|
11
|
+
<Column className="p-6">
|
|
12
|
+
<Text appearance="disabled">MSSP - Track 3</Text>
|
|
13
|
+
<br />
|
|
14
|
+
<Text small={true}>Medicare</Text>
|
|
15
|
+
<br />
|
|
16
|
+
<div className="pt-6">
|
|
17
|
+
<Text appearance="disabled" small={true}>
|
|
18
|
+
Subscriber
|
|
19
|
+
</Text>
|
|
20
|
+
<br />
|
|
21
|
+
<Text appearance="disabled">LAWSON, JOY (Self)</Text>
|
|
22
|
+
<br />
|
|
23
|
+
<Text weight="medium">ZGP123456789</Text>
|
|
24
|
+
</div>
|
|
25
|
+
</Column>
|
|
26
|
+
|
|
27
|
+
<Divider vertical={true} />
|
|
28
|
+
|
|
29
|
+
<Column className="p-6">
|
|
30
|
+
<div>
|
|
31
|
+
<Heading size="s">1. Little interest or pleasure in doing things.</Heading>
|
|
32
|
+
<br />
|
|
33
|
+
<Column className="px-4">
|
|
34
|
+
<Radio defaultChecked={true} label="Not at all" name="section" size="regular" value="Not at all" />
|
|
35
|
+
<Radio label="Several Days" name="section" size="regular" value="Several Days" />
|
|
36
|
+
<Radio label="More than half the days" name="section" size="regular" value="More than half days" />
|
|
37
|
+
</Column>
|
|
38
|
+
</div>
|
|
39
|
+
</Column>
|
|
40
|
+
</Row>
|
|
41
|
+
</CardBody>
|
|
42
|
+
</Card>
|
|
43
|
+
</Column>
|
|
44
|
+
</Row>
|
|
45
|
+
);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export default {
|
|
49
|
+
title: 'Components/Divider/Vertical Divider',
|
|
50
|
+
component: Divider,
|
|
51
|
+
};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Divider, Row, Column, Card, CardBody, Text, Heading } from '@/index';
|
|
3
|
+
|
|
4
|
+
export const All = () => {
|
|
5
|
+
return (
|
|
6
|
+
<Row>
|
|
7
|
+
<Column size="10">
|
|
8
|
+
<Card shadow="none">
|
|
9
|
+
<CardBody className="p-0">
|
|
10
|
+
<Row className="py-4 px-6">
|
|
11
|
+
<Heading>Assessment Report</Heading>
|
|
12
|
+
</Row>
|
|
13
|
+
|
|
14
|
+
<Divider appearance="header" />
|
|
15
|
+
<Row>
|
|
16
|
+
<Column>
|
|
17
|
+
<div className="p-6">
|
|
18
|
+
<Heading size="s">Select Assessment</Heading>
|
|
19
|
+
</div>
|
|
20
|
+
<Divider />
|
|
21
|
+
<div className="pl-6">
|
|
22
|
+
<div className="py-4">
|
|
23
|
+
<Text>Functional Assessment - Initial</Text>
|
|
24
|
+
</div>
|
|
25
|
+
<Divider />
|
|
26
|
+
|
|
27
|
+
<div className="py-4">
|
|
28
|
+
<Text>Social Influence of Health</Text>
|
|
29
|
+
</div>
|
|
30
|
+
<Divider />
|
|
31
|
+
|
|
32
|
+
<div className="py-4">
|
|
33
|
+
<Text>Social Determinants of Health</Text>
|
|
34
|
+
</div>
|
|
35
|
+
<Divider />
|
|
36
|
+
|
|
37
|
+
<div className="py-4">
|
|
38
|
+
<Text>Functional Assessment - Discharge</Text>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
</Column>
|
|
42
|
+
<Divider vertical={true} />
|
|
43
|
+
|
|
44
|
+
<Column>
|
|
45
|
+
<div className="p-6">
|
|
46
|
+
<Text appearance="disabled">MSSP - Track 3</Text>
|
|
47
|
+
<br />
|
|
48
|
+
<Text small={true}>Medicare</Text>
|
|
49
|
+
<br />
|
|
50
|
+
<div className="pt-6">
|
|
51
|
+
<Text appearance="disabled" small={true}>
|
|
52
|
+
Subscriber
|
|
53
|
+
</Text>
|
|
54
|
+
<br />
|
|
55
|
+
<Text appearance="disabled">LAWSON, JOY (Self)</Text>
|
|
56
|
+
<br />
|
|
57
|
+
<Text weight="medium">ZGP123456789</Text>
|
|
58
|
+
</div>
|
|
59
|
+
</div>
|
|
60
|
+
<Divider />
|
|
61
|
+
<Row className="p-6">
|
|
62
|
+
<Column>
|
|
63
|
+
<Text appearance="disabled" small={true}>
|
|
64
|
+
Last attr:
|
|
65
|
+
</Text>
|
|
66
|
+
<Text className="ml-3" small={true}>
|
|
67
|
+
04/19
|
|
68
|
+
</Text>
|
|
69
|
+
</Column>
|
|
70
|
+
<Column>
|
|
71
|
+
<Text appearance="disabled" small={true}>
|
|
72
|
+
Plan ID:
|
|
73
|
+
</Text>
|
|
74
|
+
<Text className="ml-3" small={true}>
|
|
75
|
+
040
|
|
76
|
+
</Text>
|
|
77
|
+
</Column>
|
|
78
|
+
</Row>
|
|
79
|
+
</Column>
|
|
80
|
+
</Row>
|
|
81
|
+
</CardBody>
|
|
82
|
+
</Card>
|
|
83
|
+
</Column>
|
|
84
|
+
</Row>
|
|
85
|
+
);
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
export default {
|
|
89
|
+
title: 'Components/Divider/All',
|
|
90
|
+
component: Divider,
|
|
91
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Divider, Row, Column, Text } from '@/index';
|
|
3
|
+
|
|
4
|
+
export const HorizontalDivider = () => {
|
|
5
|
+
return (
|
|
6
|
+
<div>
|
|
7
|
+
<Row>
|
|
8
|
+
<Column className="p-6">
|
|
9
|
+
<Divider />
|
|
10
|
+
<br />
|
|
11
|
+
<Text weight="strong">Default Divider</Text>
|
|
12
|
+
</Column>
|
|
13
|
+
|
|
14
|
+
<Column className="p-6">
|
|
15
|
+
<Divider appearance="header" />
|
|
16
|
+
<br />
|
|
17
|
+
<Text weight="strong">Header Divider</Text>
|
|
18
|
+
</Column>
|
|
19
|
+
</Row>
|
|
20
|
+
</div>
|
|
21
|
+
);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export default {
|
|
25
|
+
title: 'Components/Divider/variants/Horizontal Divider',
|
|
26
|
+
component: Divider,
|
|
27
|
+
};
|
|
@@ -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
|
+
`;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { debounce } from 'throttle-debounce';
|
|
3
|
-
import DropdownList, { DropdownListProps, SelectAll, Selected
|
|
4
|
-
import { OptionSchema
|
|
3
|
+
import DropdownList, { DropdownListProps, SelectAll, Selected } from './DropdownList';
|
|
4
|
+
import { OptionSchema } from './option';
|
|
5
5
|
import {
|
|
6
6
|
getSearchedOptions,
|
|
7
7
|
getSelectAll,
|
|
@@ -12,11 +12,12 @@ import {
|
|
|
12
12
|
_isSelectAllPresent,
|
|
13
13
|
} from './utility';
|
|
14
14
|
import { BaseProps } from '@/utils/types';
|
|
15
|
+
import { ChangeEvent } from '@/common.type';
|
|
15
16
|
|
|
16
17
|
type fetchOptionsFunction = (searchTerm: string) => Promise<{
|
|
17
18
|
searchTerm?: string;
|
|
18
19
|
count: number;
|
|
19
|
-
options:
|
|
20
|
+
options: OptionSchema[];
|
|
20
21
|
}>;
|
|
21
22
|
|
|
22
23
|
export type EventType =
|
|
@@ -33,7 +34,7 @@ interface ControlledProps {
|
|
|
33
34
|
* Array of selected options <br/>
|
|
34
35
|
* **Denotes `Controlled Dropdown`**
|
|
35
36
|
*/
|
|
36
|
-
selected?:
|
|
37
|
+
selected?: OptionSchema[];
|
|
37
38
|
/**
|
|
38
39
|
* Callback function to handle different event types in controlled dropdown <br/>
|
|
39
40
|
* **Event type here refers to `clicking on option` / `clicking on Clear, Cancel or Apply button`** <br/>
|
|
@@ -49,7 +50,7 @@ interface ControlledProps {
|
|
|
49
50
|
* | 'apply-selected' | Array of previously selected options | Array of recently selected options |
|
|
50
51
|
* | 'cancel-selected' | Array of previously selected options | Array of recently selected options |
|
|
51
52
|
*/
|
|
52
|
-
onUpdate?: (type: EventType, options?:
|
|
53
|
+
onUpdate?: (type: EventType, options?: OptionSchema | OptionSchema[], recentSelected?: OptionSchema[]) => void;
|
|
53
54
|
}
|
|
54
55
|
|
|
55
56
|
interface SyncProps {
|
|
@@ -79,7 +80,7 @@ interface SyncProps {
|
|
|
79
80
|
* | disabled | Disables the option, making it unable to be pressed | |
|
|
80
81
|
* | group | Defines group to which the option belongs | |
|
|
81
82
|
*/
|
|
82
|
-
options:
|
|
83
|
+
options: OptionSchema[];
|
|
83
84
|
/**
|
|
84
85
|
* <pre style="font-family: monospace; font-size: 13px; background: #f8f8f8">
|
|
85
86
|
* Adds loaders inside `Dropdown` when waiting for an action to complete.
|
|
@@ -114,7 +115,7 @@ interface TriggerProps {
|
|
|
114
115
|
/**
|
|
115
116
|
* Callback function to change the label of trigger when options are selected
|
|
116
117
|
*/
|
|
117
|
-
customLabel?: (selected: number, totalOptions?: number, selectedOptions?:
|
|
118
|
+
customLabel?: (selected: number, totalOptions?: number, selectedOptions?: OptionSchema[]) => string;
|
|
118
119
|
/**
|
|
119
120
|
* Adds custom trigger
|
|
120
121
|
*/
|
|
@@ -206,7 +207,7 @@ export type DropdownProps = ControlledDropdownProps & UncontrolledDropdownProps;
|
|
|
206
207
|
interface DropdownState {
|
|
207
208
|
async: boolean;
|
|
208
209
|
searchInit: boolean;
|
|
209
|
-
options:
|
|
210
|
+
options: OptionSchema[];
|
|
210
211
|
loading?: boolean;
|
|
211
212
|
optionsApplied: boolean;
|
|
212
213
|
open?: boolean;
|
|
@@ -215,9 +216,9 @@ interface DropdownState {
|
|
|
215
216
|
searchedOptionsLength: number;
|
|
216
217
|
triggerLabel: string;
|
|
217
218
|
selectAll: SelectAll;
|
|
218
|
-
selected:
|
|
219
|
-
tempSelected:
|
|
220
|
-
previousSelected:
|
|
219
|
+
selected: OptionSchema[];
|
|
220
|
+
tempSelected: OptionSchema[];
|
|
221
|
+
previousSelected: OptionSchema[];
|
|
221
222
|
}
|
|
222
223
|
|
|
223
224
|
/**
|
|
@@ -326,7 +327,7 @@ export class Dropdown extends React.Component<DropdownProps, DropdownState> {
|
|
|
326
327
|
}
|
|
327
328
|
}
|
|
328
329
|
|
|
329
|
-
getDisabledOptions = (options:
|
|
330
|
+
getDisabledOptions = (options: OptionSchema[] = []) => {
|
|
330
331
|
return options.filter((option) => option.disabled);
|
|
331
332
|
};
|
|
332
333
|
|
|
@@ -342,7 +343,7 @@ export class Dropdown extends React.Component<DropdownProps, DropdownState> {
|
|
|
342
343
|
});
|
|
343
344
|
};
|
|
344
345
|
|
|
345
|
-
getUnSelectedOptions = (options:
|
|
346
|
+
getUnSelectedOptions = (options: OptionSchema[], init: boolean) => {
|
|
346
347
|
if (options.length) {
|
|
347
348
|
if (!init) {
|
|
348
349
|
return options.filter(
|
|
@@ -362,7 +363,7 @@ export class Dropdown extends React.Component<DropdownProps, DropdownState> {
|
|
|
362
363
|
return options;
|
|
363
364
|
};
|
|
364
365
|
|
|
365
|
-
getSelectedOptions = (options:
|
|
366
|
+
getSelectedOptions = (options: OptionSchema[], init: boolean) => {
|
|
366
367
|
const { selected = [] } = this.props;
|
|
367
368
|
if (options.length) {
|
|
368
369
|
if (!init) return this.state.tempSelected;
|
|
@@ -493,7 +494,7 @@ export class Dropdown extends React.Component<DropdownProps, DropdownState> {
|
|
|
493
494
|
return label;
|
|
494
495
|
};
|
|
495
496
|
|
|
496
|
-
updateSelectedOptions = (selectedArray:
|
|
497
|
+
updateSelectedOptions = (selectedArray: OptionSchema[], isSingleSelect: boolean, isControlled?: boolean) => {
|
|
497
498
|
const { optionsLength, previousSelected, selected, loading, open } = this.state;
|
|
498
499
|
|
|
499
500
|
const { onChange, withCheckbox, showApplyButton, closeOnSelect, name, onPopperToggle } = this.props;
|
|
@@ -528,7 +529,7 @@ export class Dropdown extends React.Component<DropdownProps, DropdownState> {
|
|
|
528
529
|
}
|
|
529
530
|
};
|
|
530
531
|
|
|
531
|
-
onOptionSelect = (option:
|
|
532
|
+
onOptionSelect = (option: OptionSchema) => {
|
|
532
533
|
const { onUpdate, selected } = this.props;
|
|
533
534
|
|
|
534
535
|
if (_isControlled(selected)) {
|
|
@@ -539,7 +540,7 @@ export class Dropdown extends React.Component<DropdownProps, DropdownState> {
|
|
|
539
540
|
this.updateSelectedOptions([option], true);
|
|
540
541
|
};
|
|
541
542
|
|
|
542
|
-
onSelect = (option:
|
|
543
|
+
onSelect = (option: OptionSchema, checked: boolean) => {
|
|
543
544
|
const { onUpdate, selected, showApplyButton } = this.props;
|
|
544
545
|
|
|
545
546
|
if (_isControlled(selected) && !showApplyButton) {
|
|
@@ -2,14 +2,14 @@ import * as React from 'react';
|
|
|
2
2
|
import classNames from 'classnames';
|
|
3
3
|
import { Icon, Text } from '@/index';
|
|
4
4
|
|
|
5
|
-
export type
|
|
5
|
+
export type DropDownButtonSize = 'tiny' | 'regular';
|
|
6
6
|
|
|
7
7
|
export interface TriggerProps {
|
|
8
8
|
/**
|
|
9
9
|
* Size of `Dropdown` trigger button
|
|
10
10
|
* @default "regular"
|
|
11
11
|
*/
|
|
12
|
-
triggerSize?:
|
|
12
|
+
triggerSize?: DropDownButtonSize;
|
|
13
13
|
/**
|
|
14
14
|
* Material icon name
|
|
15
15
|
*/
|
|
@@ -7,8 +7,8 @@ import Option, { OptionRendererProps, OptionSchema } from './option';
|
|
|
7
7
|
import classNames from 'classnames';
|
|
8
8
|
import Loading from './Loading';
|
|
9
9
|
import { BaseProps, extractBaseProps } from '@/utils/types';
|
|
10
|
+
import { ChangeEvent } from '@/common.type';
|
|
10
11
|
|
|
11
|
-
export type ChangeEvent = React.ChangeEvent<HTMLInputElement>;
|
|
12
12
|
export type DropdownAlign = 'left' | 'right';
|
|
13
13
|
export type OptionType = 'DEFAULT' | 'WITH_ICON' | 'WITH_META' | 'ICON_WITH_META';
|
|
14
14
|
|
|
@@ -33,9 +33,9 @@ interface PopoverOptions {
|
|
|
33
33
|
boundaryElement?: PopoverProps['boundaryElement'];
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
type
|
|
36
|
+
type TriggerAndOptionProps = TriggerProps & OptionRendererProps;
|
|
37
37
|
|
|
38
|
-
export interface DropdownListProps extends
|
|
38
|
+
export interface DropdownListProps extends TriggerAndOptionProps {
|
|
39
39
|
/**
|
|
40
40
|
* Aligns the `Dropdown` left/right
|
|
41
41
|
* @default "right"
|
|
@@ -141,6 +141,10 @@ export interface DropdownListProps extends ListProps {
|
|
|
141
141
|
* </pre>
|
|
142
142
|
*/
|
|
143
143
|
popoverOptions?: PopoverOptions;
|
|
144
|
+
/**
|
|
145
|
+
* Adds custom placeholder to searchBar
|
|
146
|
+
*/
|
|
147
|
+
searchPlaceholder?: string;
|
|
144
148
|
}
|
|
145
149
|
|
|
146
150
|
interface OptionsProps extends DropdownListProps, BaseProps {
|
|
@@ -207,6 +211,7 @@ const DropdownList = (props: OptionsProps) => {
|
|
|
207
211
|
cancelOptions,
|
|
208
212
|
toggleDropdown,
|
|
209
213
|
className,
|
|
214
|
+
searchPlaceholder = 'Search..',
|
|
210
215
|
} = props;
|
|
211
216
|
|
|
212
217
|
const baseProps = extractBaseProps(props);
|
|
@@ -410,7 +415,9 @@ const DropdownList = (props: OptionsProps) => {
|
|
|
410
415
|
name="Dropdown-search"
|
|
411
416
|
icon={'search'}
|
|
412
417
|
value={searchTerm}
|
|
413
|
-
placeholder={
|
|
418
|
+
placeholder={searchPlaceholder}
|
|
419
|
+
// TODO(a11y): research more on this.
|
|
420
|
+
// eslint-disable-next-line jsx-a11y/no-autofocus
|
|
414
421
|
autoFocus={true}
|
|
415
422
|
onChange={searchHandler}
|
|
416
423
|
onClear={searchClearHandler}
|
|
@@ -440,7 +447,7 @@ const DropdownList = (props: OptionsProps) => {
|
|
|
440
447
|
const label = selectAllLabel.trim() ? selectAllLabel.trim() : 'Select All';
|
|
441
448
|
|
|
442
449
|
return (
|
|
443
|
-
<div className={SelectAllClass} onMouseEnter={(
|
|
450
|
+
<div className={SelectAllClass} onMouseEnter={() => updateActiveOption(0, true)}>
|
|
444
451
|
<Checkbox
|
|
445
452
|
label={label}
|
|
446
453
|
onChange={onSelectAll}
|
|
@@ -567,7 +574,7 @@ const DropdownList = (props: OptionsProps) => {
|
|
|
567
574
|
event.preventDefault();
|
|
568
575
|
dropdownOpen ? focusOption('up', optionClass) : onToggleDropdown(!dropdownOpen);
|
|
569
576
|
break;
|
|
570
|
-
case 'Enter':
|
|
577
|
+
case 'Enter': {
|
|
571
578
|
const activeElement = document.activeElement;
|
|
572
579
|
if (dropdownOpen && (inputRef.current === activeElement || dropdownTriggerRef.current === activeElement)) {
|
|
573
580
|
event.preventDefault();
|
|
@@ -578,7 +585,8 @@ const DropdownList = (props: OptionsProps) => {
|
|
|
578
585
|
}
|
|
579
586
|
if (!dropdownOpen) onToggleDropdown(!dropdownOpen);
|
|
580
587
|
break;
|
|
581
|
-
|
|
588
|
+
}
|
|
589
|
+
case 'Tab': {
|
|
582
590
|
if (!showApplyButton && dropdownOpen) {
|
|
583
591
|
event.preventDefault();
|
|
584
592
|
onToggleDropdown(false, 'onClick');
|
|
@@ -608,12 +616,15 @@ const DropdownList = (props: OptionsProps) => {
|
|
|
608
616
|
}
|
|
609
617
|
|
|
610
618
|
break;
|
|
619
|
+
}
|
|
611
620
|
default:
|
|
612
621
|
break;
|
|
613
622
|
}
|
|
614
623
|
};
|
|
615
624
|
|
|
616
625
|
return (
|
|
626
|
+
//TODO(a11y)
|
|
627
|
+
//eslint-disable-next-line
|
|
617
628
|
<div {...baseProps} className={dropdownClass} ref={triggerRef} onKeyDown={onkeydown}>
|
|
618
629
|
<Popover
|
|
619
630
|
onToggle={onToggleDropdown}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import Dropdown from '../Dropdown';
|
|
3
|
+
import Label from '@/components/atoms/label';
|
|
4
|
+
|
|
5
|
+
const options = [
|
|
6
|
+
{
|
|
7
|
+
label: 'Male',
|
|
8
|
+
value: 'Male',
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
label: 'Female',
|
|
12
|
+
value: 'Female',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
label: 'Transgender',
|
|
16
|
+
value: 'Transgender',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
label: 'Others',
|
|
20
|
+
value: 'Others',
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
// CSF format story
|
|
25
|
+
export const customSearchPlaceholder = () => (
|
|
26
|
+
<div className="mb-10 w-25">
|
|
27
|
+
<Label withInput={true}>Gender</Label>
|
|
28
|
+
<Dropdown options={options} searchPlaceholder="Search Gender" withSearch={true} />
|
|
29
|
+
</div>
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
export default {
|
|
33
|
+
title: 'Components/Dropdown/Custom Search Placeholder',
|
|
34
|
+
component: Dropdown,
|
|
35
|
+
parameters: {
|
|
36
|
+
docs: {
|
|
37
|
+
docPage: {
|
|
38
|
+
title: 'Dropdown',
|
|
39
|
+
props: {
|
|
40
|
+
exclude: ['showHead'],
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
};
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { UncontrolledDropdownProps, ControlledDropdownProps } from '@/components/atoms/dropdown';
|
|
2
2
|
|
|
3
|
+
// TODO(eslint): Fix this
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3
5
|
export const Controlled = (_props: ControlledDropdownProps) => {};
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4
7
|
export const Uncontrolled = (_props: UncontrolledDropdownProps) => {};
|