@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,22 @@
|
|
|
1
|
+
import { OverlayFooterProps } from '@/components/molecules/overlayFooter';
|
|
2
|
+
|
|
3
|
+
export type AccentAppearance =
|
|
4
|
+
| 'primary'
|
|
5
|
+
| 'secondary'
|
|
6
|
+
| 'alert'
|
|
7
|
+
| 'warning'
|
|
8
|
+
| 'success'
|
|
9
|
+
| 'accent1'
|
|
10
|
+
| 'accent2'
|
|
11
|
+
| 'accent3'
|
|
12
|
+
| 'accent4';
|
|
13
|
+
|
|
14
|
+
export type HeadingAppearance = 'default' | 'subtle' | 'disabled' | 'white';
|
|
15
|
+
export type MessageAppearance = 'default' | 'alert' | 'info' | 'success' | 'warning';
|
|
16
|
+
export type FileStatus = 'uploading' | 'completed' | 'error';
|
|
17
|
+
export type FooterOptions = {
|
|
18
|
+
actions: OverlayFooterProps['actions'];
|
|
19
|
+
};
|
|
20
|
+
export type AutoComplete = 'on' | 'off';
|
|
21
|
+
export type NumberRange = [number, number];
|
|
22
|
+
export type ChangeEvent = React.ChangeEvent<HTMLInputElement>;
|
|
@@ -44,7 +44,7 @@ exports[`Chip component
|
|
|
44
44
|
events_round
|
|
45
45
|
</i>
|
|
46
46
|
<span
|
|
47
|
-
class="Text Text--
|
|
47
|
+
class="Text Text--link Text--regular"
|
|
48
48
|
data-test="DesignSystem-GenericChip--Text"
|
|
49
49
|
>
|
|
50
50
|
ChipLabel
|
|
@@ -91,14 +91,14 @@ exports[`Chip component
|
|
|
91
91
|
data-test="DesignSystem-GenericChip--GenericChipWrapper"
|
|
92
92
|
>
|
|
93
93
|
<i
|
|
94
|
-
class="material-icons material-icons-round Icon Icon--
|
|
94
|
+
class="material-icons material-icons-round Icon Icon--info Chip-icon Chip-icon--left"
|
|
95
95
|
data-test="DesignSystem-GenericChip--Icon"
|
|
96
96
|
style="font-size: 16px; width: 16px;"
|
|
97
97
|
>
|
|
98
98
|
events_round
|
|
99
99
|
</i>
|
|
100
100
|
<span
|
|
101
|
-
class="Text Text--
|
|
101
|
+
class="Text Text--link Text--regular"
|
|
102
102
|
data-test="DesignSystem-GenericChip--Text"
|
|
103
103
|
>
|
|
104
104
|
ChipLabel
|
|
@@ -118,7 +118,7 @@ exports[`Chip component
|
|
|
118
118
|
data-test="DesignSystem-GenericChip--GenericChipWrapper"
|
|
119
119
|
>
|
|
120
120
|
<i
|
|
121
|
-
class="material-icons material-icons-round Icon
|
|
121
|
+
class="material-icons material-icons-round Icon Chip-icon Chip-icon--left"
|
|
122
122
|
data-test="DesignSystem-GenericChip--Icon"
|
|
123
123
|
style="font-size: 16px; width: 16px;"
|
|
124
124
|
>
|
|
@@ -131,9 +131,11 @@ exports[`Chip component
|
|
|
131
131
|
ChipLabel
|
|
132
132
|
</span>
|
|
133
133
|
<i
|
|
134
|
-
class="material-icons material-icons-round Icon
|
|
134
|
+
class="material-icons material-icons-round Icon Chip-icon Chip-icon--right cursor-pointer"
|
|
135
135
|
data-test="DesignSystem-GenericChip--clearButton"
|
|
136
|
+
role="button"
|
|
136
137
|
style="font-size: 16px; width: 16px;"
|
|
138
|
+
tabindex="0"
|
|
137
139
|
>
|
|
138
140
|
clear_round
|
|
139
141
|
</i>
|
|
@@ -159,7 +161,7 @@ exports[`Chip component
|
|
|
159
161
|
events_round
|
|
160
162
|
</i>
|
|
161
163
|
<span
|
|
162
|
-
class="Text Text--
|
|
164
|
+
class="Text Text--link Text--regular"
|
|
163
165
|
data-test="DesignSystem-GenericChip--Text"
|
|
164
166
|
>
|
|
165
167
|
ChipLabel
|
|
@@ -167,7 +169,9 @@ exports[`Chip component
|
|
|
167
169
|
<i
|
|
168
170
|
class="material-icons material-icons-round Icon Icon--info Chip-icon Chip-icon--right cursor-pointer"
|
|
169
171
|
data-test="DesignSystem-GenericChip--clearButton"
|
|
172
|
+
role="button"
|
|
170
173
|
style="font-size: 16px; width: 16px;"
|
|
174
|
+
tabindex="0"
|
|
171
175
|
>
|
|
172
176
|
clear_round
|
|
173
177
|
</i>
|
|
@@ -201,7 +205,9 @@ exports[`Chip component
|
|
|
201
205
|
<i
|
|
202
206
|
class="material-icons material-icons-round Icon Icon--disabled Chip-icon Chip-icon--right"
|
|
203
207
|
data-test="DesignSystem-GenericChip--clearButton"
|
|
208
|
+
role="button"
|
|
204
209
|
style="font-size: 16px; width: 16px;"
|
|
210
|
+
tabindex="0"
|
|
205
211
|
>
|
|
206
212
|
clear_round
|
|
207
213
|
</i>
|
|
@@ -220,22 +226,24 @@ exports[`Chip component
|
|
|
220
226
|
data-test="DesignSystem-GenericChip--GenericChipWrapper"
|
|
221
227
|
>
|
|
222
228
|
<i
|
|
223
|
-
class="material-icons material-icons-round Icon Icon--
|
|
229
|
+
class="material-icons material-icons-round Icon Icon--info Chip-icon Chip-icon--left"
|
|
224
230
|
data-test="DesignSystem-GenericChip--Icon"
|
|
225
231
|
style="font-size: 16px; width: 16px;"
|
|
226
232
|
>
|
|
227
233
|
events_round
|
|
228
234
|
</i>
|
|
229
235
|
<span
|
|
230
|
-
class="Text Text--
|
|
236
|
+
class="Text Text--link Text--regular"
|
|
231
237
|
data-test="DesignSystem-GenericChip--Text"
|
|
232
238
|
>
|
|
233
239
|
ChipLabel
|
|
234
240
|
</span>
|
|
235
241
|
<i
|
|
236
|
-
class="material-icons material-icons-round Icon Icon--
|
|
242
|
+
class="material-icons material-icons-round Icon Icon--info Chip-icon Chip-icon--right"
|
|
237
243
|
data-test="DesignSystem-GenericChip--clearButton"
|
|
244
|
+
role="button"
|
|
238
245
|
style="font-size: 16px; width: 16px;"
|
|
246
|
+
tabindex="0"
|
|
239
247
|
>
|
|
240
248
|
clear_round
|
|
241
249
|
</i>
|
|
@@ -4,6 +4,7 @@ import Icon from '@/components/atoms/icon';
|
|
|
4
4
|
import Text from '@/components/atoms/text';
|
|
5
5
|
import { Name } from '../chip/Chip';
|
|
6
6
|
import { BaseProps, extractBaseProps } from '@/utils/types';
|
|
7
|
+
import { IconProps, TextProps } from '@/index.type';
|
|
7
8
|
|
|
8
9
|
export interface GenericChipProps extends BaseProps {
|
|
9
10
|
label: string;
|
|
@@ -37,7 +38,22 @@ export const GenericChip = (props: GenericChipProps) => {
|
|
|
37
38
|
if (onClick) onClick();
|
|
38
39
|
};
|
|
39
40
|
|
|
41
|
+
const iconAppearance = classNames({
|
|
42
|
+
['disabled']: disabled && !selected,
|
|
43
|
+
['info']: selected,
|
|
44
|
+
['subtle']: !disabled && !selected && !clearButton && !icon,
|
|
45
|
+
['default']: !disabled && !selected && !clearButton && icon,
|
|
46
|
+
}) as IconProps['appearance'];
|
|
47
|
+
|
|
48
|
+
const textAppearance = classNames({
|
|
49
|
+
['disabled']: disabled && !selected,
|
|
50
|
+
['link']: selected,
|
|
51
|
+
['default']: !disabled && !selected,
|
|
52
|
+
}) as TextProps['appearance'];
|
|
53
|
+
|
|
40
54
|
return (
|
|
55
|
+
// TODO(a11y)
|
|
56
|
+
// eslint-disable-next-line
|
|
41
57
|
<div
|
|
42
58
|
data-test="DesignSystem-GenericChip--GenericChipWrapper"
|
|
43
59
|
{...baseProps}
|
|
@@ -48,18 +64,18 @@ export const GenericChip = (props: GenericChipProps) => {
|
|
|
48
64
|
<Icon
|
|
49
65
|
data-test="DesignSystem-GenericChip--Icon"
|
|
50
66
|
name={icon}
|
|
51
|
-
appearance={
|
|
67
|
+
appearance={iconAppearance}
|
|
52
68
|
className={iconClass('left')}
|
|
53
69
|
/>
|
|
54
70
|
)}
|
|
55
|
-
<Text data-test="DesignSystem-GenericChip--Text" appearance={
|
|
71
|
+
<Text data-test="DesignSystem-GenericChip--Text" appearance={textAppearance}>
|
|
56
72
|
{label}
|
|
57
73
|
</Text>
|
|
58
74
|
{clearButton && (
|
|
59
75
|
<Icon
|
|
60
76
|
data-test="DesignSystem-GenericChip--clearButton"
|
|
61
77
|
name="clear"
|
|
62
|
-
appearance={
|
|
78
|
+
appearance={iconAppearance}
|
|
63
79
|
className={iconClass('right')}
|
|
64
80
|
onClick={onCloseHandler}
|
|
65
81
|
/>
|
|
@@ -3,25 +3,15 @@ import classNames from 'classnames';
|
|
|
3
3
|
import { Text, Tooltip, Icon } from '@/index';
|
|
4
4
|
import { BaseProps, extractBaseProps } from '@/utils/types';
|
|
5
5
|
import { TooltipProps } from '@/index.type';
|
|
6
|
+
import { AccentAppearance } from '@/common.type';
|
|
6
7
|
|
|
7
|
-
export type
|
|
8
|
-
| 'primary'
|
|
9
|
-
| 'secondary'
|
|
10
|
-
| 'alert'
|
|
11
|
-
| 'warning'
|
|
12
|
-
| 'success'
|
|
13
|
-
| 'accent1'
|
|
14
|
-
| 'accent2'
|
|
15
|
-
| 'accent3'
|
|
16
|
-
| 'accent4';
|
|
17
|
-
|
|
18
|
-
export type Size = 'regular' | 'tiny';
|
|
8
|
+
export type AvatarSize = 'regular' | 'tiny';
|
|
19
9
|
|
|
20
10
|
export interface AvatarProps extends BaseProps {
|
|
21
11
|
/**
|
|
22
12
|
* Color of the `Avatar`
|
|
23
13
|
*/
|
|
24
|
-
appearance?:
|
|
14
|
+
appearance?: AccentAppearance;
|
|
25
15
|
/**
|
|
26
16
|
* **Only first 2 characters are rendered (SOON TO BE DEPRECATED)**
|
|
27
17
|
*/
|
|
@@ -45,7 +35,7 @@ export interface AvatarProps extends BaseProps {
|
|
|
45
35
|
/**
|
|
46
36
|
* Determines size of `Avatar`
|
|
47
37
|
*/
|
|
48
|
-
size:
|
|
38
|
+
size: AvatarSize;
|
|
49
39
|
}
|
|
50
40
|
|
|
51
41
|
const initialsLength = 2;
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import Avatar
|
|
2
|
+
import Avatar from '../../Avatar';
|
|
3
3
|
import Text from '@/components/atoms/text';
|
|
4
|
+
import { AccentAppearance } from '@/common.type';
|
|
4
5
|
|
|
5
6
|
// CSF format story
|
|
6
7
|
export const appearance = () => {
|
|
7
8
|
const weight = 'strong';
|
|
8
9
|
|
|
9
|
-
const appearances:
|
|
10
|
+
const appearances: AccentAppearance[] = [
|
|
10
11
|
'primary',
|
|
11
12
|
'secondary',
|
|
12
13
|
'alert',
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { render } from '@testing-library/react';
|
|
3
|
-
import Avatar, { AvatarProps as Props,
|
|
3
|
+
import Avatar, { AvatarProps as Props, AvatarSize } from '../Avatar';
|
|
4
|
+
import { AccentAppearance } from '@/common.type';
|
|
4
5
|
import { testHelper, filterUndefined, valueHelper, testMessageHelper } from '@/utils/testHelper';
|
|
5
6
|
|
|
6
|
-
const appearances:
|
|
7
|
+
const appearances: AccentAppearance[] = [
|
|
7
8
|
'primary',
|
|
8
9
|
'alert',
|
|
9
10
|
'warning',
|
|
@@ -14,7 +15,7 @@ const appearances: Appearance[] = [
|
|
|
14
15
|
'accent4',
|
|
15
16
|
];
|
|
16
17
|
|
|
17
|
-
const sizes:
|
|
18
|
+
const sizes: AvatarSize[] = ['regular', 'tiny'];
|
|
18
19
|
|
|
19
20
|
describe('Avatar component', () => {
|
|
20
21
|
const mapper = {
|
|
@@ -52,7 +53,11 @@ describe('Avatar component', () => {
|
|
|
52
53
|
|
|
53
54
|
describe('Avatar component', () => {
|
|
54
55
|
it('renders initials when firstName,lastName,children are given', () => {
|
|
55
|
-
const { getByTestId } = render(
|
|
56
|
+
const { getByTestId } = render(
|
|
57
|
+
<Avatar firstName="Design" lastName="System">
|
|
58
|
+
Hey
|
|
59
|
+
</Avatar>
|
|
60
|
+
);
|
|
56
61
|
expect(getByTestId('DesignSystem-Avatar').textContent).toMatch('He');
|
|
57
62
|
});
|
|
58
63
|
|
|
@@ -67,7 +72,7 @@ describe('Avatar component', () => {
|
|
|
67
72
|
});
|
|
68
73
|
|
|
69
74
|
it('renders initials when only children is given', () => {
|
|
70
|
-
const { getByTestId } = render(<Avatar
|
|
75
|
+
const { getByTestId } = render(<Avatar>Design System</Avatar>);
|
|
71
76
|
expect(getByTestId('DesignSystem-Avatar').textContent).toMatch('De');
|
|
72
77
|
});
|
|
73
78
|
|
|
@@ -84,7 +89,7 @@ describe('Avatar component', () => {
|
|
|
84
89
|
|
|
85
90
|
describe('Avatar component tagName', () => {
|
|
86
91
|
it('renders tagName', () => {
|
|
87
|
-
const { getByTestId } = render(<Avatar
|
|
92
|
+
const { getByTestId } = render(<Avatar>Design System</Avatar>);
|
|
88
93
|
expect(getByTestId('DesignSystem-Avatar').tagName).toMatch('SPAN');
|
|
89
94
|
});
|
|
90
95
|
});
|
|
@@ -99,7 +104,7 @@ describe('Avatar Component with overwrite class', () => {
|
|
|
99
104
|
describe('Avatar component with prop:appearance', () => {
|
|
100
105
|
appearances.forEach((color) => {
|
|
101
106
|
it(`should have the Avatar--${color} class when appearance=${color} `, () => {
|
|
102
|
-
const { getByTestId } = render(<Avatar
|
|
107
|
+
const { getByTestId } = render(<Avatar appearance={color}>Design</Avatar>);
|
|
103
108
|
expect(getByTestId('DesignSystem-Avatar')).toHaveClass(`Avatar--${color}`);
|
|
104
109
|
});
|
|
105
110
|
});
|
|
@@ -107,12 +112,12 @@ describe('Avatar component with prop:appearance', () => {
|
|
|
107
112
|
|
|
108
113
|
describe('Avatar component with prop:size', () => {
|
|
109
114
|
it('should have the Avatar--regular class when size is regular', () => {
|
|
110
|
-
const { getByTestId } = render(<Avatar
|
|
115
|
+
const { getByTestId } = render(<Avatar>Design</Avatar>);
|
|
111
116
|
expect(getByTestId('DesignSystem-Avatar')).toHaveClass('Avatar--regular');
|
|
112
117
|
});
|
|
113
118
|
|
|
114
119
|
it('should have the Avatar--tiny class when size is tiny', () => {
|
|
115
|
-
const { getByTestId } = render(<Avatar
|
|
120
|
+
const { getByTestId } = render(<Avatar size={'tiny'}>Design</Avatar>);
|
|
116
121
|
expect(getByTestId('DesignSystem-Avatar')).toHaveClass('Avatar--tiny');
|
|
117
122
|
});
|
|
118
123
|
});
|
|
@@ -4,15 +4,13 @@ import { BaseProps, extractBaseProps } from '@/utils/types';
|
|
|
4
4
|
import { Avatar, Popover, Text } from '@/index';
|
|
5
5
|
import { AvatarProps, PopoverProps } from '@/index.type';
|
|
6
6
|
|
|
7
|
-
export type Size = 'regular' | 'tiny';
|
|
8
|
-
|
|
9
7
|
interface AvatarData extends Record<string, any> {
|
|
10
8
|
firstName?: string;
|
|
11
9
|
lastName?: string;
|
|
12
10
|
appearance?: AvatarProps['appearance'];
|
|
13
11
|
}
|
|
14
12
|
|
|
15
|
-
interface
|
|
13
|
+
interface AvatarPopperProps {
|
|
16
14
|
popperRenderer?: (names: AvatarData[]) => JSX.Element;
|
|
17
15
|
appendToBody?: PopoverProps['appendToBody'];
|
|
18
16
|
dark?: PopoverProps['dark'];
|
|
@@ -48,7 +46,7 @@ export interface AvatarGroupProps extends BaseProps {
|
|
|
48
46
|
* **Popover for +x avatar**
|
|
49
47
|
*
|
|
50
48
|
* <pre className="DocPage-codeBlock">
|
|
51
|
-
*
|
|
49
|
+
* AvatarPopperProps: {
|
|
52
50
|
* popperRenderer?: (names: AvatarData[]) => JSX.Element;
|
|
53
51
|
* appendToBody?: boolean;
|
|
54
52
|
* dark?: boolean;
|
|
@@ -70,7 +68,7 @@ export interface AvatarGroupProps extends BaseProps {
|
|
|
70
68
|
* </pre>
|
|
71
69
|
*
|
|
72
70
|
*/
|
|
73
|
-
popoverOptions:
|
|
71
|
+
popoverOptions: AvatarPopperProps;
|
|
74
72
|
/**
|
|
75
73
|
* Position to place the tooltip on `Avatars` shown before +x
|
|
76
74
|
*/
|
|
@@ -1,23 +1,13 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import classNames from 'classnames';
|
|
3
3
|
import { BaseProps, extractBaseProps } from '@/utils/types';
|
|
4
|
-
|
|
5
|
-
export type Appearance =
|
|
6
|
-
| 'primary'
|
|
7
|
-
| 'secondary'
|
|
8
|
-
| 'alert'
|
|
9
|
-
| 'warning'
|
|
10
|
-
| 'success'
|
|
11
|
-
| 'accent1'
|
|
12
|
-
| 'accent2'
|
|
13
|
-
| 'accent3'
|
|
14
|
-
| 'accent4';
|
|
4
|
+
import { AccentAppearance } from '@/common.type';
|
|
15
5
|
|
|
16
6
|
export interface BadgeProps extends BaseProps {
|
|
17
7
|
/*
|
|
18
8
|
* Color of the `Badge`
|
|
19
9
|
*/
|
|
20
|
-
appearance:
|
|
10
|
+
appearance: AccentAppearance;
|
|
21
11
|
/**
|
|
22
12
|
* Makes `Badge` appearance subtle
|
|
23
13
|
*/
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { render } from '@testing-library/react';
|
|
3
|
-
import Badge, { BadgeProps as Props
|
|
3
|
+
import Badge, { BadgeProps as Props } from '../Badge';
|
|
4
4
|
import { testHelper, filterUndefined, valueHelper, testMessageHelper } from '@/utils/testHelper';
|
|
5
|
+
import { AccentAppearance } from '@/common.type';
|
|
5
6
|
|
|
6
|
-
const appearances:
|
|
7
|
+
const appearances: AccentAppearance[] = [
|
|
7
8
|
'primary',
|
|
8
9
|
'alert',
|
|
9
10
|
'warning',
|
|
@@ -35,14 +36,20 @@ describe('Badge component', () => {
|
|
|
35
36
|
|
|
36
37
|
describe('Badge component', () => {
|
|
37
38
|
it('renders children', () => {
|
|
38
|
-
const { getByTestId } = render(
|
|
39
|
+
const { getByTestId } = render(
|
|
40
|
+
<Badge subtle={true} appearance="secondary">
|
|
41
|
+
Badge
|
|
42
|
+
</Badge>
|
|
43
|
+
);
|
|
39
44
|
expect(getByTestId('DesignSystem-Badge').textContent).toMatch('Badge');
|
|
40
45
|
});
|
|
41
46
|
|
|
42
47
|
describe('Badge Component with overwrite class', () => {
|
|
43
48
|
it('overwrite badge class', () => {
|
|
44
49
|
const { getByTestId } = render(
|
|
45
|
-
<Badge className="BadgeClass"
|
|
50
|
+
<Badge className="BadgeClass" subtle={true} appearance="secondary">
|
|
51
|
+
Design
|
|
52
|
+
</Badge>
|
|
46
53
|
);
|
|
47
54
|
expect(getByTestId('DesignSystem-Badge')).toHaveClass('Badge BadgeClass');
|
|
48
55
|
});
|
|
@@ -50,7 +57,11 @@ describe('Badge component', () => {
|
|
|
50
57
|
|
|
51
58
|
describe('Badge component tagName', () => {
|
|
52
59
|
it('should have span element', () => {
|
|
53
|
-
const { getByTestId } = render(
|
|
60
|
+
const { getByTestId } = render(
|
|
61
|
+
<Badge subtle={true} appearance="secondary">
|
|
62
|
+
Design
|
|
63
|
+
</Badge>
|
|
64
|
+
);
|
|
54
65
|
expect(getByTestId('DesignSystem-Badge').tagName).toMatch('SPAN');
|
|
55
66
|
});
|
|
56
67
|
});
|
|
@@ -58,7 +69,7 @@ describe('Badge component', () => {
|
|
|
58
69
|
describe('Badge component with prop:appearance', () => {
|
|
59
70
|
appearances.forEach((appearance) => {
|
|
60
71
|
it(`should have the Badge--${appearance} class when appearance=${appearance} `, () => {
|
|
61
|
-
const { getByTestId } = render(<Badge
|
|
72
|
+
const { getByTestId } = render(<Badge appearance={appearance}>Design</Badge>);
|
|
62
73
|
expect(getByTestId('DesignSystem-Badge')).toHaveClass(`Badge--${appearance}`);
|
|
63
74
|
});
|
|
64
75
|
});
|
|
@@ -67,7 +78,11 @@ describe('Badge component', () => {
|
|
|
67
78
|
describe('Badge component with prop:subtle', () => {
|
|
68
79
|
appearances.forEach((appearance) => {
|
|
69
80
|
it(`should have the Badge--subtle-${appearance} class when appearance=${appearance} `, () => {
|
|
70
|
-
const { getByTestId } = render(
|
|
81
|
+
const { getByTestId } = render(
|
|
82
|
+
<Badge appearance={appearance} subtle={true}>
|
|
83
|
+
Design
|
|
84
|
+
</Badge>
|
|
85
|
+
);
|
|
71
86
|
expect(getByTestId('DesignSystem-Badge')).toHaveClass(`Badge--subtle-${appearance}`);
|
|
72
87
|
});
|
|
73
88
|
});
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { text } from '@storybook/addon-knobs';
|
|
3
|
-
import Badge
|
|
3
|
+
import Badge from '../../Badge';
|
|
4
4
|
import Text from '@/components/atoms/text';
|
|
5
|
+
import { AccentAppearance } from '@/common.type';
|
|
5
6
|
|
|
6
7
|
// CSF format story
|
|
7
8
|
export const appearance = () => {
|
|
@@ -10,7 +11,7 @@ export const appearance = () => {
|
|
|
10
11
|
|
|
11
12
|
const children = text('children', 'Badge');
|
|
12
13
|
|
|
13
|
-
const appearances:
|
|
14
|
+
const appearances: AccentAppearance[] = [
|
|
14
15
|
'primary',
|
|
15
16
|
'secondary',
|
|
16
17
|
'alert',
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { text } from '@storybook/addon-knobs';
|
|
3
|
-
import Badge
|
|
3
|
+
import Badge from '../../Badge';
|
|
4
4
|
import Text from '@/components/atoms/text';
|
|
5
|
+
import { AccentAppearance } from '@/common.type';
|
|
5
6
|
|
|
6
7
|
// CSF format story
|
|
7
8
|
export const subtle = () => {
|
|
@@ -10,7 +11,7 @@ export const subtle = () => {
|
|
|
10
11
|
|
|
11
12
|
const children = text('children', 'Badge');
|
|
12
13
|
|
|
13
|
-
const appearances:
|
|
14
|
+
const appearances: AccentAppearance[] = [
|
|
14
15
|
'primary',
|
|
15
16
|
'secondary',
|
|
16
17
|
'alert',
|
|
@@ -4,9 +4,9 @@ import classNames from 'classnames';
|
|
|
4
4
|
import { BaseProps, BaseHtmlProps } from '@/utils/types';
|
|
5
5
|
|
|
6
6
|
export type ButtonType = 'button' | 'submit' | 'reset';
|
|
7
|
-
export type
|
|
8
|
-
export type
|
|
9
|
-
export type
|
|
7
|
+
export type ButtonAppearance = 'basic' | 'primary' | 'success' | 'alert' | 'transparent';
|
|
8
|
+
export type ButtonSize = 'tiny' | 'regular' | 'large';
|
|
9
|
+
export type ButtonAlignment = 'left' | 'right';
|
|
10
10
|
|
|
11
11
|
export interface ButtonProps extends BaseProps, BaseHtmlProps<HTMLButtonElement> {
|
|
12
12
|
/**
|
|
@@ -17,12 +17,15 @@ export interface ButtonProps extends BaseProps, BaseHtmlProps<HTMLButtonElement>
|
|
|
17
17
|
* The size of `Button`
|
|
18
18
|
* @default "regular"
|
|
19
19
|
*/
|
|
20
|
-
size?:
|
|
20
|
+
size?: ButtonSize;
|
|
21
21
|
/**
|
|
22
22
|
* Color of the `Button`
|
|
23
|
+
*
|
|
24
|
+
* **'success' has been deprecated and all success button types will now be changed to primary button automatically**
|
|
25
|
+
*
|
|
23
26
|
* @default "basic"
|
|
24
27
|
*/
|
|
25
|
-
appearance?:
|
|
28
|
+
appearance?: ButtonAppearance;
|
|
26
29
|
/**
|
|
27
30
|
* Disables the `Button`, making it unable to be pressed
|
|
28
31
|
*/
|
|
@@ -54,7 +57,7 @@ export interface ButtonProps extends BaseProps, BaseHtmlProps<HTMLButtonElement>
|
|
|
54
57
|
* Align icon left or right
|
|
55
58
|
* @default "left"
|
|
56
59
|
*/
|
|
57
|
-
iconAlign?:
|
|
60
|
+
iconAlign?: ButtonAlignment;
|
|
58
61
|
/**
|
|
59
62
|
* Determines if size of icon is large
|
|
60
63
|
*
|
|
@@ -88,7 +91,7 @@ export interface ButtonProps extends BaseProps, BaseHtmlProps<HTMLButtonElement>
|
|
|
88
91
|
onMouseLeave?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
|
|
89
92
|
}
|
|
90
93
|
|
|
91
|
-
const sizeMapping: Record<
|
|
94
|
+
const sizeMapping: Record<ButtonSize, number> = {
|
|
92
95
|
tiny: 12,
|
|
93
96
|
regular: 16,
|
|
94
97
|
large: 20,
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import Button from '../Button';
|
|
3
3
|
|
|
4
|
-
export const AlertButton = () =>
|
|
4
|
+
export const AlertButton = () => (
|
|
5
|
+
<Button appearance="alert" aria-label="Delete">
|
|
6
|
+
Delete
|
|
7
|
+
</Button>
|
|
8
|
+
);
|
|
5
9
|
|
|
6
10
|
export default {
|
|
7
11
|
title: 'Components/Button/Alert Button',
|
|
@@ -11,6 +15,9 @@ export default {
|
|
|
11
15
|
docPage: {
|
|
12
16
|
title: 'Button',
|
|
13
17
|
description: 'Delete button',
|
|
18
|
+
a11yProps: `
|
|
19
|
+
**aria-label:** Add \`aria-label='Delete'\` to describe the action of button
|
|
20
|
+
`,
|
|
14
21
|
},
|
|
15
22
|
},
|
|
16
23
|
},
|
|
@@ -2,7 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import Button from '../Button';
|
|
3
3
|
|
|
4
4
|
export const BasicButton = () => (
|
|
5
|
-
<Button appearance="basic" size="regular">
|
|
5
|
+
<Button appearance="basic" size="regular" aria-label="Cancel">
|
|
6
6
|
Cancel
|
|
7
7
|
</Button>
|
|
8
8
|
);
|
|
@@ -15,6 +15,9 @@ export default {
|
|
|
15
15
|
docPage: {
|
|
16
16
|
title: 'Button',
|
|
17
17
|
description: 'Basic Button',
|
|
18
|
+
a11yProps: `
|
|
19
|
+
**aria-label:** Add \`aria-label='Cancel'\` to describe the action of button
|
|
20
|
+
`,
|
|
18
21
|
},
|
|
19
22
|
},
|
|
20
23
|
},
|
|
@@ -3,9 +3,9 @@ import Button from '@/components/atoms/button';
|
|
|
3
3
|
|
|
4
4
|
export const iconButtonGroup = () => (
|
|
5
5
|
<div className="d-inline-flex">
|
|
6
|
-
<Button size="tiny" icon="content_copy " className="mr-
|
|
7
|
-
<Button size="tiny" icon="content_paste" className="mr-
|
|
8
|
-
<Button size="tiny" icon="delete" tooltip="Delete" />
|
|
6
|
+
<Button size="tiny" icon="content_copy" aria-label="Copy" className="mr-4" tooltip="Copy" />
|
|
7
|
+
<Button size="tiny" icon="content_paste" aria-label="Paste" className="mr-4" tooltip="Paste" />
|
|
8
|
+
<Button size="tiny" icon="delete" aria-label="Delete" tooltip="Delete" />
|
|
9
9
|
</div>
|
|
10
10
|
);
|
|
11
11
|
|
|
@@ -17,6 +17,15 @@ export default {
|
|
|
17
17
|
docPage: {
|
|
18
18
|
title: 'Button',
|
|
19
19
|
description: 'A pattern using tiny icon buttons in a group.',
|
|
20
|
+
a11yProps: `
|
|
21
|
+
**aria-label:**
|
|
22
|
+
<br/>
|
|
23
|
+
- Add \`aria-label='Copy'\` on button with *copy* icon to describe the action of button.
|
|
24
|
+
<br/>
|
|
25
|
+
- Add \`aria-label='Paste'\` on button with *paste* icon to describe the action of button.
|
|
26
|
+
<br/>
|
|
27
|
+
- Add \`aria-label='Delete'\` on button with *delete* icon to describe the action of button.
|
|
28
|
+
`,
|
|
20
29
|
},
|
|
21
30
|
},
|
|
22
31
|
},
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import Button from '../Button';
|
|
3
3
|
|
|
4
|
-
export const iconButton = () =>
|
|
4
|
+
export const iconButton = () => (
|
|
5
|
+
<Button appearance="basic" icon="keyboard_arrow_right" aria-label="Next in rank" tooltip="Next in rank" />
|
|
6
|
+
);
|
|
5
7
|
|
|
6
8
|
export default {
|
|
7
9
|
title: 'Components/Button/Icon Button',
|
|
@@ -11,6 +13,9 @@ export default {
|
|
|
11
13
|
docPage: {
|
|
12
14
|
title: 'Button',
|
|
13
15
|
description: 'Secondary button with icon.',
|
|
16
|
+
a11yProps: `
|
|
17
|
+
**aria-label:** Add \`aria-label='Next in rank'\` to describe the action of button.
|
|
18
|
+
`,
|
|
14
19
|
},
|
|
15
20
|
},
|
|
16
21
|
},
|
|
@@ -2,7 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import Button from '../Button';
|
|
3
3
|
|
|
4
4
|
export const iconLeftButton = () => (
|
|
5
|
-
<Button icon="get_app" iconAlign="left">
|
|
5
|
+
<Button icon="get_app" iconAlign="left" aria-label="Download">
|
|
6
6
|
Download
|
|
7
7
|
</Button>
|
|
8
8
|
);
|
|
@@ -15,6 +15,9 @@ export default {
|
|
|
15
15
|
docPage: {
|
|
16
16
|
title: 'Button',
|
|
17
17
|
description: 'Secondary button with left aligned icon.',
|
|
18
|
+
a11yProps: `
|
|
19
|
+
**aria-label:** Add \`aria-label='Download'\` on button to indicate its purpose.
|
|
20
|
+
`,
|
|
18
21
|
},
|
|
19
22
|
},
|
|
20
23
|
},
|
|
@@ -2,7 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import Button from '../Button';
|
|
3
3
|
|
|
4
4
|
export const iconRightButton = () => (
|
|
5
|
-
<Button icon="arrow_forward" iconAlign="right">
|
|
5
|
+
<Button icon="arrow_forward" iconAlign="right" aria-label="Next in rank">
|
|
6
6
|
Next in rank
|
|
7
7
|
</Button>
|
|
8
8
|
);
|
|
@@ -15,6 +15,9 @@ export default {
|
|
|
15
15
|
docPage: {
|
|
16
16
|
title: 'Button',
|
|
17
17
|
description: 'Secondary button with right aligned icon.',
|
|
18
|
+
a11yProps: `
|
|
19
|
+
**aria-label:** Add \`aria-label='Next in rank'\` to describe the action of button.
|
|
20
|
+
`,
|
|
18
21
|
},
|
|
19
22
|
},
|
|
20
23
|
},
|