@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
|
@@ -2,18 +2,18 @@ import * as React from 'react';
|
|
|
2
2
|
import classNames from 'classnames';
|
|
3
3
|
import { BaseProps, extractBaseProps } from '@/utils/types';
|
|
4
4
|
|
|
5
|
-
export type
|
|
6
|
-
export type
|
|
5
|
+
export type SpinnerAppearance = 'primary' | 'secondary' | 'white';
|
|
6
|
+
export type SpinnerSize = 'small' | 'medium' | 'large';
|
|
7
7
|
|
|
8
8
|
export interface SpinnerProps extends BaseProps {
|
|
9
9
|
/**
|
|
10
10
|
* Color of `Spinner`
|
|
11
11
|
*/
|
|
12
|
-
appearance:
|
|
12
|
+
appearance: SpinnerAppearance;
|
|
13
13
|
/**
|
|
14
14
|
* Size of `Spinner`
|
|
15
15
|
*/
|
|
16
|
-
size:
|
|
16
|
+
size: SpinnerSize;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
export const Spinner = (props: SpinnerProps) => {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import Spinner, {
|
|
2
|
+
import Spinner, { SpinnerAppearance } from '../../Spinner';
|
|
3
3
|
import Text from '@/components/atoms/text';
|
|
4
4
|
|
|
5
5
|
// CSF format story
|
|
6
6
|
export const appearance = () => {
|
|
7
|
-
const appearances:
|
|
7
|
+
const appearances: SpinnerAppearance[] = ['primary', 'secondary', 'white'];
|
|
8
8
|
return (
|
|
9
9
|
<div className="d-flex">
|
|
10
10
|
{appearances.map((appear, ind) => {
|
|
@@ -2,8 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import Text from '@/components/atoms/text';
|
|
3
3
|
import classNames from 'classnames';
|
|
4
4
|
import { BaseProps, extractBaseProps } from '@/utils/types';
|
|
5
|
-
|
|
6
|
-
export type Appearance = 'info' | 'alert' | 'warning' | 'success' | 'default';
|
|
5
|
+
import { MessageAppearance } from '@/common.type';
|
|
7
6
|
|
|
8
7
|
export interface StatusHintProps extends BaseProps {
|
|
9
8
|
/**
|
|
@@ -13,7 +12,7 @@ export interface StatusHintProps extends BaseProps {
|
|
|
13
12
|
/**
|
|
14
13
|
* Color of Icon
|
|
15
14
|
*/
|
|
16
|
-
appearance:
|
|
15
|
+
appearance: MessageAppearance;
|
|
17
16
|
/**
|
|
18
17
|
* Handler to be called when `Status Hint` is clicked
|
|
19
18
|
*/
|
|
@@ -46,6 +45,8 @@ export const StatusHint = (props: StatusHintProps) => {
|
|
|
46
45
|
});
|
|
47
46
|
|
|
48
47
|
return (
|
|
48
|
+
// TODO(a11y): fix accessibility
|
|
49
|
+
/* eslint-disable */
|
|
49
50
|
<div
|
|
50
51
|
data-test="DesignSystem-StatusHint"
|
|
51
52
|
{...baseProps}
|
|
@@ -54,6 +55,7 @@ export const StatusHint = (props: StatusHintProps) => {
|
|
|
54
55
|
onMouseEnter={(e) => onMouseEnter && onMouseEnter(e)}
|
|
55
56
|
onMouseLeave={(e) => onMouseLeave && onMouseLeave(e)}
|
|
56
57
|
>
|
|
58
|
+
{/* eslint-enable */}
|
|
57
59
|
<span data-test="DesignSystem-StatusHint--Icon" className={StatusHintIconClass} />
|
|
58
60
|
<Text data-test="DesignSystem-StatusHint--Text" weight={'medium'}>
|
|
59
61
|
{children}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import StatusHint
|
|
2
|
+
import StatusHint from '../../StatusHint';
|
|
3
|
+
import { MessageAppearance } from '@/common.type';
|
|
3
4
|
|
|
4
5
|
// CSF format story
|
|
5
6
|
export const appearance = () => {
|
|
6
|
-
const appearances:
|
|
7
|
+
const appearances: MessageAppearance[] = ['info', 'success', 'alert', 'warning', 'default'];
|
|
7
8
|
|
|
8
9
|
return (
|
|
9
10
|
<div>
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { render } from '@testing-library/react';
|
|
3
|
-
import StatusHint, { StatusHintProps as IProps
|
|
3
|
+
import StatusHint, { StatusHintProps as IProps } from '../StatusHint';
|
|
4
4
|
import { testHelper, filterUndefined, valueHelper, testMessageHelper } from '@/utils/testHelper';
|
|
5
|
+
import { MessageAppearance } from '@/common.type';
|
|
5
6
|
|
|
6
7
|
const label = 'StatusHint';
|
|
7
|
-
const appearances:
|
|
8
|
+
const appearances: MessageAppearance[] = ['default', 'alert', 'info', 'warning', 'success'];
|
|
8
9
|
|
|
9
10
|
describe('StatusHint component', () => {
|
|
10
11
|
const mapper = {
|
|
@@ -2,8 +2,8 @@ import * as React from 'react';
|
|
|
2
2
|
import GenericText from '../_text';
|
|
3
3
|
import classNames from 'classnames';
|
|
4
4
|
import { BaseHtmlProps, BaseProps } from '@/utils/types';
|
|
5
|
+
import { HeadingAppearance } from '@/common.type';
|
|
5
6
|
|
|
6
|
-
export type Appearance = 'default' | 'subtle' | 'disabled' | 'white';
|
|
7
7
|
export interface SubheadingProps extends BaseProps, BaseHtmlProps<HTMLHeadingElement> {
|
|
8
8
|
/**
|
|
9
9
|
* Text to be rendered
|
|
@@ -13,7 +13,7 @@ export interface SubheadingProps extends BaseProps, BaseHtmlProps<HTMLHeadingEle
|
|
|
13
13
|
/**
|
|
14
14
|
* Color of `Subheading`
|
|
15
15
|
*/
|
|
16
|
-
appearance:
|
|
16
|
+
appearance: HeadingAppearance;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
export const Subheading = (props: SubheadingProps) => {
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import Subheading
|
|
2
|
+
import Subheading from '../../index';
|
|
3
3
|
import Text from '@/components/atoms/text';
|
|
4
|
+
import { HeadingAppearance } from '@/common.type';
|
|
4
5
|
|
|
5
6
|
// CSF format story
|
|
6
7
|
export const appearance = () => {
|
|
7
|
-
const appearances:
|
|
8
|
+
const appearances: HeadingAppearance[] = ['default', 'subtle', 'disabled', 'white'];
|
|
8
9
|
|
|
9
10
|
return (
|
|
10
11
|
<div className="d-flex">
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { render } from '@testing-library/react';
|
|
3
|
-
import Subheading, { SubheadingProps as Props
|
|
3
|
+
import Subheading, { SubheadingProps as Props } from '../Subheading';
|
|
4
4
|
import { testHelper, filterUndefined, valueHelper, testMessageHelper } from '@/utils/testHelper';
|
|
5
|
+
import { HeadingAppearance } from '@/common.type';
|
|
5
6
|
|
|
6
|
-
const appearance:
|
|
7
|
+
const appearance: HeadingAppearance[] = ['default', 'subtle', 'disabled', 'white'];
|
|
7
8
|
|
|
8
9
|
const mapper = {
|
|
9
10
|
appearance: valueHelper(appearance, { required: true, iterate: true }),
|
|
@@ -1,24 +1,26 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import classNames from 'classnames';
|
|
3
3
|
import { OmitNativeProps, BaseProps } from '@/utils/types';
|
|
4
|
+
import { isSpaceKey } from '@/accessibility/utils';
|
|
5
|
+
import { ChangeEvent } from '@/common.type';
|
|
4
6
|
|
|
5
|
-
export type
|
|
6
|
-
export type
|
|
7
|
+
export type SwitchSize = 'regular' | 'tiny' | 'large';
|
|
8
|
+
export type SwitchAppearance = 'primary' | 'alert' | 'success' | 'warning';
|
|
7
9
|
|
|
8
|
-
type
|
|
10
|
+
type KeyboardEvent = React.KeyboardEvent<HTMLInputElement>;
|
|
9
11
|
|
|
10
12
|
export interface SwitchProps extends BaseProps, OmitNativeProps<HTMLInputElement, 'onChange'> {
|
|
11
13
|
/**
|
|
12
14
|
* Size of `Switch`
|
|
13
15
|
* @default "regular"
|
|
14
16
|
*/
|
|
15
|
-
size?:
|
|
17
|
+
size?: SwitchSize;
|
|
16
18
|
/**
|
|
17
19
|
* Color of `Switch`
|
|
18
20
|
*
|
|
19
21
|
* **Soon to be deprecated**
|
|
20
22
|
*/
|
|
21
|
-
appearance?:
|
|
23
|
+
appearance?: SwitchAppearance;
|
|
22
24
|
/**
|
|
23
25
|
* Default value of checked (Used in case of uncontrolled `Switch`)
|
|
24
26
|
*/
|
|
@@ -42,7 +44,7 @@ export interface SwitchProps extends BaseProps, OmitNativeProps<HTMLInputElement
|
|
|
42
44
|
/**
|
|
43
45
|
* Callback function called when `Switch` is toggled
|
|
44
46
|
*/
|
|
45
|
-
onChange?: (event:
|
|
47
|
+
onChange?: (event: ChangeEvent | KeyboardEvent, selected: boolean) => void;
|
|
46
48
|
}
|
|
47
49
|
|
|
48
50
|
/**
|
|
@@ -87,9 +89,11 @@ export const Switch = React.forwardRef<HTMLInputElement, SwitchProps>((props, re
|
|
|
87
89
|
['Switch-wrapper--checkedDisabled']: checked && disabled,
|
|
88
90
|
});
|
|
89
91
|
|
|
90
|
-
const onChangeHandler = (event:
|
|
91
|
-
if (
|
|
92
|
-
|
|
92
|
+
const onChangeHandler = (event: ChangeEvent | KeyboardEvent) => {
|
|
93
|
+
if (event.type == 'change' || isSpaceKey(event as React.KeyboardEvent<HTMLElement>)) {
|
|
94
|
+
if (checkedProp === undefined) setChecked(!checked);
|
|
95
|
+
if (onChange) onChange(event, !checked);
|
|
96
|
+
}
|
|
93
97
|
};
|
|
94
98
|
|
|
95
99
|
return (
|
|
@@ -105,6 +109,7 @@ export const Switch = React.forwardRef<HTMLInputElement, SwitchProps>((props, re
|
|
|
105
109
|
name={name}
|
|
106
110
|
value={value}
|
|
107
111
|
className="Switch-input"
|
|
112
|
+
onKeyUp={onChangeHandler}
|
|
108
113
|
/>
|
|
109
114
|
<span className={SwitchWrapper} />
|
|
110
115
|
</div>
|
|
@@ -2,7 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import Switch from '../index';
|
|
3
3
|
|
|
4
4
|
// CSF format story
|
|
5
|
-
export const defaultSwitch = () => <Switch defaultChecked={true} size="regular" />;
|
|
5
|
+
export const defaultSwitch = () => <Switch aria-label="Default Checked Switch" defaultChecked={true} size="regular" />;
|
|
6
6
|
|
|
7
7
|
export default {
|
|
8
8
|
title: 'Components/Switch/Default Switch',
|
|
@@ -11,6 +11,9 @@ export default {
|
|
|
11
11
|
docs: {
|
|
12
12
|
docPage: {
|
|
13
13
|
title: 'Switch',
|
|
14
|
+
a11yProps: `
|
|
15
|
+
**aria-label:** Add \`aria-label='Default Checked Switch'\` to describe the action of switch.
|
|
16
|
+
`,
|
|
14
17
|
},
|
|
15
18
|
},
|
|
16
19
|
},
|
|
@@ -2,7 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import Switch from '../index';
|
|
3
3
|
|
|
4
4
|
// CSF format story
|
|
5
|
-
export const offState = () => <Switch defaultChecked={false} size="regular" />;
|
|
5
|
+
export const offState = () => <Switch aria-label="Off State Switch" defaultChecked={false} size="regular" />;
|
|
6
6
|
|
|
7
7
|
export default {
|
|
8
8
|
title: 'Components/Switch/Off State',
|
|
@@ -11,6 +11,9 @@ export default {
|
|
|
11
11
|
docs: {
|
|
12
12
|
docPage: {
|
|
13
13
|
title: 'Switch',
|
|
14
|
+
a11yProps: `
|
|
15
|
+
**aria-label:** Add \`aria-label='Off State Switch'\` to describe the action of switch.
|
|
16
|
+
`,
|
|
14
17
|
},
|
|
15
18
|
},
|
|
16
19
|
},
|
|
@@ -3,6 +3,7 @@ import { select, boolean } from '@storybook/addon-knobs';
|
|
|
3
3
|
import { action } from '@storybook/addon-actions';
|
|
4
4
|
import { updateKnob } from '@/utils/storybookEventEmitter';
|
|
5
5
|
import Switch from '../index';
|
|
6
|
+
import { Label } from '@/index';
|
|
6
7
|
|
|
7
8
|
// CSF format story
|
|
8
9
|
export const all = () => {
|
|
@@ -18,13 +19,35 @@ export const all = () => {
|
|
|
18
19
|
};
|
|
19
20
|
|
|
20
21
|
return (
|
|
21
|
-
<
|
|
22
|
-
<
|
|
23
|
-
|
|
22
|
+
<form>
|
|
23
|
+
<Label htmlFor="vaccination-status">Have you been vaccinated ?</Label>
|
|
24
|
+
<div>
|
|
25
|
+
<Switch id="vaccination-status" disabled={disabled} checked={checked} size={size} onChange={onChangeHandler} />
|
|
26
|
+
</div>
|
|
27
|
+
</form>
|
|
24
28
|
);
|
|
25
29
|
};
|
|
26
30
|
|
|
27
31
|
export default {
|
|
28
32
|
title: 'Components/Switch/All',
|
|
29
33
|
component: Switch,
|
|
34
|
+
parameters: {
|
|
35
|
+
docs: {
|
|
36
|
+
docPage: {
|
|
37
|
+
a11yProps: `
|
|
38
|
+
**htmlFor:**
|
|
39
|
+
<br/>
|
|
40
|
+
-Add \`htmlFor='vaccination-status'\` to label to programmatically associated it with switch
|
|
41
|
+
which has \`id='vaccination-status'\`.
|
|
42
|
+
<br/>
|
|
43
|
+
-This means that,a screen reader will read out the label when the user is focused on the switch,
|
|
44
|
+
making it easier for an assistive technology user to understand
|
|
45
|
+
what data should be entered.
|
|
46
|
+
<br/>
|
|
47
|
+
-When a user clicks or touches/taps a label, the browser passes the focus to its associated switch. That increased hit
|
|
48
|
+
area for focusing the input provides an advantage to anyone trying to activate it.
|
|
49
|
+
`,
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
},
|
|
30
53
|
};
|
|
@@ -12,7 +12,7 @@ export const size = () => {
|
|
|
12
12
|
return (
|
|
13
13
|
<div key={ind} className="mr-9">
|
|
14
14
|
<div className="h-50">
|
|
15
|
-
<Switch defaultChecked={true} size={SwitchSize} />
|
|
15
|
+
<Switch aria-label={`Switch ${SwitchSize}`} defaultChecked={true} size={SwitchSize} />
|
|
16
16
|
</div>
|
|
17
17
|
<br />
|
|
18
18
|
<Text weight="strong">{SwitchSize.charAt(0).toUpperCase() + SwitchSize.slice(1)}</Text>
|
|
@@ -30,6 +30,15 @@ export default {
|
|
|
30
30
|
docs: {
|
|
31
31
|
docPage: {
|
|
32
32
|
title: 'Switch',
|
|
33
|
+
a11yProps: `
|
|
34
|
+
**aria-label:**
|
|
35
|
+
<br/>
|
|
36
|
+
- Add \`aria-label='Switch tiny'\` on switch with *Tiny* text to describe the action of switch.
|
|
37
|
+
<br/>
|
|
38
|
+
- Add \`aria-label='Switch regular'\` on switch with *regular* text to describe the action of switch.
|
|
39
|
+
<br/>
|
|
40
|
+
- Add \`aria-label='Switch large'\` on switch with *Large* text to describe the action of switch.
|
|
41
|
+
`,
|
|
33
42
|
},
|
|
34
43
|
},
|
|
35
44
|
},
|
|
@@ -7,12 +7,12 @@ export const state = () => {
|
|
|
7
7
|
return (
|
|
8
8
|
<div className="d-flex">
|
|
9
9
|
<div className="mr-9">
|
|
10
|
-
<Switch defaultChecked={true} disabled={false} />
|
|
10
|
+
<Switch aria-label="Switch enabled" defaultChecked={true} disabled={false} />
|
|
11
11
|
<br />
|
|
12
12
|
<Text weight="strong">Enabled</Text>
|
|
13
13
|
</div>
|
|
14
14
|
<div>
|
|
15
|
-
<Switch disabled={true} defaultChecked={true} />
|
|
15
|
+
<Switch aria-label="Switch disabled" disabled={true} defaultChecked={true} />
|
|
16
16
|
<br />
|
|
17
17
|
<Text weight="strong">Disabled</Text>
|
|
18
18
|
</div>
|
|
@@ -27,6 +27,13 @@ export default {
|
|
|
27
27
|
docs: {
|
|
28
28
|
docPage: {
|
|
29
29
|
title: 'Switch',
|
|
30
|
+
a11yProps: `
|
|
31
|
+
**aria-label:**
|
|
32
|
+
<br/>
|
|
33
|
+
- Add \`aria-label='Switch enabled'\` on switch with *Enabled* text to describe the action of switch.
|
|
34
|
+
<br/>
|
|
35
|
+
- Add \`aria-label='Switch disabled'\` on switch with *Disabled* text to describe the action of switch.
|
|
36
|
+
`,
|
|
30
37
|
},
|
|
31
38
|
},
|
|
32
39
|
},
|
|
@@ -3,8 +3,8 @@ import GenericText from '../_text';
|
|
|
3
3
|
import classNames from 'classnames';
|
|
4
4
|
import { BaseHtmlProps, BaseProps } from '@/utils/types';
|
|
5
5
|
|
|
6
|
-
export type
|
|
7
|
-
export type
|
|
6
|
+
export type TextSize = 'small' | 'regular' | 'large';
|
|
7
|
+
export type TextAppearance = 'default' | 'white' | 'destructive' | 'subtle' | 'disabled' | 'success' | 'link';
|
|
8
8
|
|
|
9
9
|
export interface TextProps extends BaseProps, BaseHtmlProps<HTMLSpanElement> {
|
|
10
10
|
/**
|
|
@@ -22,11 +22,11 @@ export interface TextProps extends BaseProps, BaseHtmlProps<HTMLSpanElement> {
|
|
|
22
22
|
/**
|
|
23
23
|
* Color of `Text`
|
|
24
24
|
*/
|
|
25
|
-
appearance:
|
|
25
|
+
appearance: TextAppearance;
|
|
26
26
|
/**
|
|
27
27
|
* Size of `Text`
|
|
28
28
|
*/
|
|
29
|
-
size:
|
|
29
|
+
size: TextSize;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
export const Text = (props: TextProps) => {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import Text, {
|
|
2
|
+
import Text, { TextAppearance } from '../../index';
|
|
3
3
|
|
|
4
4
|
// CSF format story
|
|
5
5
|
export const appearance = () => {
|
|
6
|
-
const appearances:
|
|
6
|
+
const appearances: TextAppearance[] = ['default', 'white', 'destructive', 'subtle', 'disabled', 'success', 'link'];
|
|
7
7
|
return (
|
|
8
8
|
<div className="d-flex">
|
|
9
9
|
{appearances.map((appear, ind) => {
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import Text, { TextProps as Props,
|
|
2
|
+
import Text, { TextProps as Props, TextAppearance, Size } from '../Text';
|
|
3
3
|
import { render } from '@testing-library/react';
|
|
4
4
|
import { testHelper, filterUndefined, valueHelper, testMessageHelper } from '@/utils/testHelper';
|
|
5
|
-
import { _isEqual } from '../../dropdown/utility';
|
|
6
5
|
|
|
7
6
|
const sizes: Size[] = ['small', 'regular', 'large'];
|
|
8
|
-
const appearances:
|
|
7
|
+
const appearances: TextAppearance[] = ['default', 'white', 'destructive', 'disabled', 'subtle', 'success', 'link'];
|
|
9
8
|
const weight = ['strong', 'medium'];
|
|
10
9
|
const BooleanValue = [true, false];
|
|
11
10
|
const StringValue = 'Sample String';
|
|
@@ -6,15 +6,19 @@ export const textareaWithCaption = () => {
|
|
|
6
6
|
|
|
7
7
|
return (
|
|
8
8
|
<>
|
|
9
|
-
<Label withInput={true}
|
|
9
|
+
<Label withInput={true} htmlFor="notes">
|
|
10
|
+
Confirmation Notes
|
|
11
|
+
</Label>
|
|
10
12
|
<Textarea
|
|
11
|
-
name="
|
|
13
|
+
name="notes"
|
|
12
14
|
className="w-50"
|
|
13
15
|
value={value}
|
|
14
16
|
onChange={(e) => {
|
|
15
17
|
setValue(e.target.value);
|
|
16
18
|
}}
|
|
17
19
|
placeholder="Enter your comments here"
|
|
20
|
+
aria-labelledby="Confirmation Notes"
|
|
21
|
+
id="notes"
|
|
18
22
|
/>
|
|
19
23
|
<Caption withInput={true}>This note will be automatically pinned for export.</Caption>
|
|
20
24
|
</>
|
|
@@ -26,13 +30,15 @@ const customCode = `() => {
|
|
|
26
30
|
|
|
27
31
|
return (
|
|
28
32
|
<>
|
|
29
|
-
<Label withInput={true}>Confirmation Notes</Label>
|
|
33
|
+
<Label withInput={true} htmlFor="notes">Confirmation Notes</Label>
|
|
30
34
|
<Textarea
|
|
31
35
|
name="Textarea"
|
|
32
36
|
className="w-50"
|
|
33
37
|
value={value}
|
|
34
38
|
onChange={e => { setValue(e.target.value); }}
|
|
35
39
|
placeholder="Enter your comments here"
|
|
40
|
+
aria-labelledby="Confirmation Notes"
|
|
41
|
+
id="notes"
|
|
36
42
|
/>
|
|
37
43
|
<Caption withInput={true}>This note will be automatically pinned for export.</Caption>
|
|
38
44
|
</>
|
|
@@ -3,8 +3,16 @@ import { Textarea, Label } from '@/index';
|
|
|
3
3
|
|
|
4
4
|
export const defaultTextarea = () => (
|
|
5
5
|
<>
|
|
6
|
-
<Label withInput={true}>
|
|
7
|
-
|
|
6
|
+
<Label withInput={true} htmlFor="comments">
|
|
7
|
+
Comments
|
|
8
|
+
</Label>
|
|
9
|
+
<Textarea
|
|
10
|
+
name="comments"
|
|
11
|
+
id="comments"
|
|
12
|
+
aria-labelledby="Comments"
|
|
13
|
+
className="w-25"
|
|
14
|
+
placeholder="Enter your comments here"
|
|
15
|
+
/>
|
|
8
16
|
</>
|
|
9
17
|
);
|
|
10
18
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import classNames from 'classnames';
|
|
3
3
|
import Text from '@/components/atoms/text';
|
|
4
|
-
import {
|
|
4
|
+
import { MessageAppearance } from '@/common.type';
|
|
5
5
|
|
|
6
6
|
export interface Props {
|
|
7
|
-
appearance:
|
|
7
|
+
appearance: MessageAppearance;
|
|
8
8
|
label: string;
|
|
9
9
|
onClick?: (e: React.MouseEvent) => void;
|
|
10
10
|
}
|
|
@@ -5,8 +5,7 @@ import Text from '@/components/atoms/text';
|
|
|
5
5
|
import Icon from '@/components/atoms/icon';
|
|
6
6
|
import ActionButton from './ActionButton';
|
|
7
7
|
import { BaseProps, extractBaseProps } from '@/utils/types';
|
|
8
|
-
|
|
9
|
-
export type Appearance = 'default' | 'info' | 'success' | 'alert' | 'warning';
|
|
8
|
+
import { MessageAppearance } from '@/common.type';
|
|
10
9
|
|
|
11
10
|
export type Action = {
|
|
12
11
|
/**
|
|
@@ -25,9 +24,13 @@ export interface ToastProps extends BaseProps {
|
|
|
25
24
|
*/
|
|
26
25
|
title: string;
|
|
27
26
|
/**
|
|
28
|
-
* Color of `Toast`
|
|
27
|
+
* Color of the `Toast`
|
|
28
|
+
*
|
|
29
|
+
* ** `'default'` has been deprecated, backward compatibility supported**
|
|
30
|
+
*
|
|
31
|
+
* @default "info"
|
|
29
32
|
*/
|
|
30
|
-
appearance:
|
|
33
|
+
appearance: MessageAppearance;
|
|
31
34
|
/**
|
|
32
35
|
* Message to be rendered inside `Toast`
|
|
33
36
|
*/
|
|
@@ -50,7 +53,9 @@ export interface ToastProps extends BaseProps {
|
|
|
50
53
|
}
|
|
51
54
|
|
|
52
55
|
export const Toast = (props: ToastProps) => {
|
|
53
|
-
const {
|
|
56
|
+
const { title, message, actions, onClose, className } = props;
|
|
57
|
+
let { appearance } = props;
|
|
58
|
+
appearance = appearance === 'default' ? 'info' : appearance;
|
|
54
59
|
|
|
55
60
|
const baseProps = extractBaseProps(props);
|
|
56
61
|
|
|
@@ -132,7 +137,7 @@ export const Toast = (props: ToastProps) => {
|
|
|
132
137
|
|
|
133
138
|
Toast.displayName = 'Toast';
|
|
134
139
|
Toast.defaultProps = {
|
|
135
|
-
appearance: '
|
|
140
|
+
appearance: 'info',
|
|
136
141
|
};
|
|
137
142
|
|
|
138
143
|
export default Toast;
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { text } from '@storybook/addon-knobs';
|
|
3
3
|
import { action } from '@storybook/addon-actions';
|
|
4
4
|
import Toast from '../Toast';
|
|
5
5
|
|
|
6
6
|
// CSF format story
|
|
7
7
|
export const all = () => {
|
|
8
|
-
const appearance = select('appearance', ['default', 'info', 'success', 'alert', 'warning'], undefined);
|
|
9
|
-
|
|
10
8
|
const title = text('title', 'Sample toast');
|
|
11
9
|
|
|
12
10
|
const message = text('message', '');
|
|
@@ -31,9 +29,7 @@ export const all = () => {
|
|
|
31
29
|
});
|
|
32
30
|
}
|
|
33
31
|
|
|
34
|
-
return (
|
|
35
|
-
<Toast appearance={appearance} title={title} message={message} onClose={action('on-close clicked')} {...props} />
|
|
36
|
-
);
|
|
32
|
+
return <Toast title={title} message={message} onClose={action('on-close clicked')} {...props} />;
|
|
37
33
|
};
|
|
38
34
|
|
|
39
35
|
export default {
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import Toast
|
|
2
|
+
import Toast from '../../Toast';
|
|
3
|
+
import { MessageAppearance } from '@/common.type';
|
|
3
4
|
|
|
4
5
|
// CSF format story
|
|
5
6
|
export const appearance = () => {
|
|
6
|
-
const appearances:
|
|
7
|
+
const appearances: MessageAppearance[] = ['info', 'success', 'alert', 'warning'];
|
|
7
8
|
return (
|
|
8
9
|
<div className="d-flex">
|
|
9
10
|
{appearances.map((appear, ind) => {
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { text } from '@storybook/addon-knobs';
|
|
3
|
-
import Toast
|
|
3
|
+
import Toast from '../../Toast';
|
|
4
|
+
import { MessageAppearance } from '@/common.type';
|
|
4
5
|
|
|
5
6
|
// CSF format story
|
|
6
7
|
export const toastWithDescription = () => {
|
|
7
|
-
const appearances:
|
|
8
|
+
const appearances: MessageAppearance[] = ['info', 'success', 'alert', 'warning'];
|
|
8
9
|
|
|
9
10
|
const message = text('message', 'Outreach was sent');
|
|
10
11
|
return (
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { text } from '@storybook/addon-knobs';
|
|
3
3
|
import { action } from '@storybook/addon-actions';
|
|
4
|
-
import Toast
|
|
4
|
+
import Toast from '../../Toast';
|
|
5
|
+
import { MessageAppearance } from '@/common.type';
|
|
5
6
|
|
|
6
7
|
// CSF format story
|
|
7
8
|
export const toastWithAction = () => {
|
|
8
|
-
const appearances:
|
|
9
|
+
const appearances: MessageAppearance[] = ['info', 'success', 'alert', 'warning'];
|
|
9
10
|
|
|
10
11
|
const message = text('message', 'Outreach was sent');
|
|
11
12
|
|
|
@@ -3,7 +3,7 @@ import { render } from '@testing-library/react';
|
|
|
3
3
|
import { testHelper, filterUndefined, valueHelper, arrayHelper, testMessageHelper } from '@/utils/testHelper';
|
|
4
4
|
import Toast, { ToastProps as Props } from '../Toast';
|
|
5
5
|
|
|
6
|
-
const appearance = ['
|
|
6
|
+
const appearance = ['info', 'success', 'alert', 'warning'];
|
|
7
7
|
const StringValue = 'Sample string';
|
|
8
8
|
const FunctionValue = jest.fn();
|
|
9
9
|
const Actions = [
|