@innovaccer/design-system 2.6.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 +10 -9
- package/.github/workflows/chromatic.yml +5 -0
- package/.github/workflows/pull_request.yml +1 -1
- package/.storybook/main.js +4 -0
- package/.vscode/settings.json +11 -0
- package/CHANGELOG.md +36 -0
- package/CONTRIBUTING.md +7 -1
- package/core/accessibility/utils/useAccessibilityProps.ts +4 -2
- package/core/common.type.tsx +22 -0
- package/core/components/atoms/_chip/__tests__/__snapshots__/_chip.test.tsx.snap +9 -9
- package/core/components/atoms/_chip/index.tsx +17 -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__/index.story.tsx +1 -1
- package/core/components/atoms/button/__stories__/variants/Appearance.story.tsx +2 -2
- package/core/components/atoms/button/__stories__/variants/Expanded.story.tsx +2 -2
- package/core/components/atoms/button/__stories__/variants/icon/IconLeft.story.tsx +2 -2
- package/core/components/atoms/button/__stories__/variants/icon/IconRight.story.tsx +2 -2
- 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 +5 -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/dropdown/Dropdown.tsx +18 -17
- package/core/components/atoms/dropdown/DropdownButton.tsx +2 -2
- package/core/components/atoms/dropdown/DropdownList.tsx +10 -5
- 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 +1 -1
- 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/index.tsx +1 -1
- 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 +3 -3
- package/core/components/atoms/input/Input.tsx +3 -3
- package/core/components/atoms/input/__stories__/InputWithCaption.story.tsx +62 -0
- package/core/components/atoms/input/__stories__/LabelPosition.story.tsx +38 -0
- 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/label/Label.tsx +1 -1
- package/core/components/atoms/legend/Legend.tsx +2 -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 +5 -5
- package/core/components/atoms/multiSlider/SliderUtils.tsx +1 -4
- package/core/components/atoms/multiSlider/index.tsx +3 -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 +2 -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 +7 -8
- 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/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 +0 -131
- package/core/components/css-utilities/Schema.tsx +1 -1
- package/core/components/css-utilities/Spacing/Schema.tsx +1 -1
- package/core/components/molecules/chipInput/__tests__/__snapshots__/ChipInput.test.tsx.snap +2 -2
- package/core/components/molecules/dropzone/Dropzone.tsx +3 -3
- package/core/components/molecules/dropzone/DropzoneBase.tsx +22 -38
- 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/__tests__/__snapshots__/EditableChipInput.test.tsx.snap +4 -4
- package/core/components/molecules/emptyState/EmptyState.tsx +4 -4
- package/core/components/molecules/emptyState/__stories__/pageNotLoadedWithSVG.story.tsx +26 -26
- package/core/components/molecules/fileList/FileListItem.tsx +1 -2
- package/core/components/molecules/fileUploader/FileUploaderItem.tsx +1 -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/modal/Modal.tsx +4 -6
- package/core/components/molecules/modal/__stories__/Confirmation.story.tsx +1 -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/tooltip/Tooltip.tsx +4 -4
- package/core/components/organisms/calendar/__stories__/variants/firstDayOfWeek.story.tsx +2 -2
- package/core/components/organisms/calendar/utility.ts +3 -3
- package/core/components/organisms/choiceList/ChoiceList.tsx +11 -11
- package/core/components/organisms/datePicker/DatePicker.tsx +1 -1
- package/core/components/organisms/datePicker/Trigger.tsx +1 -5
- 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 +16 -16
- package/core/components/organisms/grid/Cell.tsx +19 -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/__stories__/_common_/editableSchema.tsx +1 -3
- package/core/components/organisms/grid/__stories__/_common_/fetchData.ts +1 -1
- 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/inlineMessage/InlineMessage.tsx +2 -2
- package/core/components/organisms/inlineMessage/__tests__/InlineMessage.test.tsx +3 -2
- 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/table/Table.tsx +2 -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 +1 -1
- package/core/components/organisms/table/__stories__/StandardTable.story.tsx +1 -1
- package/core/components/organisms/table/__stories__/TableAsDescriptionList.story.tsx +1 -1
- package/core/components/organisms/table/__stories__/TableAsOptionList.story.tsx +1 -1
- package/core/components/organisms/table/__stories__/TightStory.story.tsx +1 -1
- package/core/components/organisms/table/__stories__/_common_/types.tsx +3 -0
- 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/withPagination.story.tsx +2 -2
- package/core/components/organisms/timePicker/TimePicker.tsx +3 -7
- package/core/components/organisms/verticalNav/__stories__/schema.tsx +0 -2
- package/core/components/organisms/verticalNav/__tests__/VerticalNav.test.tsx +1 -2
- package/core/global.d.ts +9 -0
- package/core/index.tsx +1 -1
- package/core/utils/__tests__/__snapshots__/TS.test.tsx.snap +18 -5
- package/core/utils/docPage/generateImports.tsx +2 -3
- package/core/utils/docPage/index.tsx +30 -20
- package/core/utils/docPage/sandbox.tsx +14 -7
- package/core/utils/overlayHelper.ts +7 -3
- package/core/utils/testHelper.ts +1 -1
- package/core/utils/types.tsx +1 -1
- package/css/dist/index.css +48 -30
- package/css/dist/index.css.map +1 -1
- package/css/src/components/button.css +5 -5
- package/css/src/components/calendar.css +1 -1
- package/css/src/components/chip.css +6 -4
- package/css/src/components/fullscreenModal.css +4 -3
- package/css/src/components/message.css +0 -5
- package/css/src/components/switch.css +23 -2
- package/css/src/components/toast.css +0 -5
- package/css/src/variables/index.css +5 -2
- package/dist/core/accessibility/utils/useAccessibilityProps.d.ts +4 -1
- 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/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 +2 -2
- package/dist/core/components/atoms/input/Input.d.ts +3 -3
- 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 +1 -2
- 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 +6 -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/choiceList/ChoiceList.d.ts +5 -6
- 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/dateRangePicker/withCustomPopover.story.d.ts +5 -1
- 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 +221 -245
- package/dist/index.js +225 -233
- 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 +20 -18
- 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/core/components/atoms/button/__stories__/variants/state/Success.story.tsx +0 -89
- 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/types/innovaccer-design-system/index.d.ts +0 -39
- package/types/innovaccer-design-system/innovaccer-design-system-tests.ts +0 -0
|
@@ -2,14 +2,14 @@ import * as React from 'react';
|
|
|
2
2
|
import classNames from 'classnames';
|
|
3
3
|
import { Icon, Text } from '@/index';
|
|
4
4
|
|
|
5
|
-
export type
|
|
5
|
+
export type DropDownButtonSize = 'tiny' | 'regular';
|
|
6
6
|
|
|
7
7
|
export interface TriggerProps {
|
|
8
8
|
/**
|
|
9
9
|
* Size of `Dropdown` trigger button
|
|
10
10
|
* @default "regular"
|
|
11
11
|
*/
|
|
12
|
-
triggerSize?:
|
|
12
|
+
triggerSize?: DropDownButtonSize;
|
|
13
13
|
/**
|
|
14
14
|
* Material icon name
|
|
15
15
|
*/
|
|
@@ -7,8 +7,8 @@ import Option, { OptionRendererProps, OptionSchema } from './option';
|
|
|
7
7
|
import classNames from 'classnames';
|
|
8
8
|
import Loading from './Loading';
|
|
9
9
|
import { BaseProps, extractBaseProps } from '@/utils/types';
|
|
10
|
+
import { ChangeEvent } from '@/common.type';
|
|
10
11
|
|
|
11
|
-
export type ChangeEvent = React.ChangeEvent<HTMLInputElement>;
|
|
12
12
|
export type DropdownAlign = 'left' | 'right';
|
|
13
13
|
export type OptionType = 'DEFAULT' | 'WITH_ICON' | 'WITH_META' | 'ICON_WITH_META';
|
|
14
14
|
|
|
@@ -33,9 +33,9 @@ interface PopoverOptions {
|
|
|
33
33
|
boundaryElement?: PopoverProps['boundaryElement'];
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
type
|
|
36
|
+
type TriggerAndOptionProps = TriggerProps & OptionRendererProps;
|
|
37
37
|
|
|
38
|
-
export interface DropdownListProps extends
|
|
38
|
+
export interface DropdownListProps extends TriggerAndOptionProps {
|
|
39
39
|
/**
|
|
40
40
|
* Aligns the `Dropdown` left/right
|
|
41
41
|
* @default "right"
|
|
@@ -141,6 +141,10 @@ export interface DropdownListProps extends ListProps {
|
|
|
141
141
|
* </pre>
|
|
142
142
|
*/
|
|
143
143
|
popoverOptions?: PopoverOptions;
|
|
144
|
+
/**
|
|
145
|
+
* Adds custom placeholder to searchBar
|
|
146
|
+
*/
|
|
147
|
+
searchPlaceholder?: string;
|
|
144
148
|
}
|
|
145
149
|
|
|
146
150
|
interface OptionsProps extends DropdownListProps, BaseProps {
|
|
@@ -207,6 +211,7 @@ const DropdownList = (props: OptionsProps) => {
|
|
|
207
211
|
cancelOptions,
|
|
208
212
|
toggleDropdown,
|
|
209
213
|
className,
|
|
214
|
+
searchPlaceholder = 'Search..',
|
|
210
215
|
} = props;
|
|
211
216
|
|
|
212
217
|
const baseProps = extractBaseProps(props);
|
|
@@ -410,7 +415,7 @@ const DropdownList = (props: OptionsProps) => {
|
|
|
410
415
|
name="Dropdown-search"
|
|
411
416
|
icon={'search'}
|
|
412
417
|
value={searchTerm}
|
|
413
|
-
placeholder={
|
|
418
|
+
placeholder={searchPlaceholder}
|
|
414
419
|
// TODO(a11y): research more on this.
|
|
415
420
|
// eslint-disable-next-line jsx-a11y/no-autofocus
|
|
416
421
|
autoFocus={true}
|
|
@@ -442,7 +447,7 @@ const DropdownList = (props: OptionsProps) => {
|
|
|
442
447
|
const label = selectAllLabel.trim() ? selectAllLabel.trim() : 'Select All';
|
|
443
448
|
|
|
444
449
|
return (
|
|
445
|
-
<div className={SelectAllClass} onMouseEnter={(
|
|
450
|
+
<div className={SelectAllClass} onMouseEnter={() => updateActiveOption(0, true)}>
|
|
446
451
|
<Checkbox
|
|
447
452
|
label={label}
|
|
448
453
|
onChange={onSelectAll}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import Dropdown from '../Dropdown';
|
|
3
|
+
import Label from '@/components/atoms/label';
|
|
4
|
+
|
|
5
|
+
const options = [
|
|
6
|
+
{
|
|
7
|
+
label: 'Male',
|
|
8
|
+
value: 'Male',
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
label: 'Female',
|
|
12
|
+
value: 'Female',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
label: 'Transgender',
|
|
16
|
+
value: 'Transgender',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
label: 'Others',
|
|
20
|
+
value: 'Others',
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
// CSF format story
|
|
25
|
+
export const customSearchPlaceholder = () => (
|
|
26
|
+
<div className="mb-10 w-25">
|
|
27
|
+
<Label withInput={true}>Gender</Label>
|
|
28
|
+
<Dropdown options={options} searchPlaceholder="Search Gender" withSearch={true} />
|
|
29
|
+
</div>
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
export default {
|
|
33
|
+
title: 'Components/Dropdown/Custom Search Placeholder',
|
|
34
|
+
component: Dropdown,
|
|
35
|
+
parameters: {
|
|
36
|
+
docs: {
|
|
37
|
+
docPage: {
|
|
38
|
+
title: 'Dropdown',
|
|
39
|
+
props: {
|
|
40
|
+
exclude: ['showHead'],
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
};
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { UncontrolledDropdownProps, ControlledDropdownProps } from '@/components/atoms/dropdown';
|
|
2
2
|
|
|
3
|
+
// TODO(eslint): Fix this
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3
5
|
export const Controlled = (_props: ControlledDropdownProps) => {};
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4
7
|
export const Uncontrolled = (_props: UncontrolledDropdownProps) => {};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import Dropdown from '../../Dropdown';
|
|
3
|
-
import {
|
|
3
|
+
import { DropDownButtonSize } from '../../DropdownButton';
|
|
4
4
|
import Text from '@/components/atoms/text';
|
|
5
5
|
import { storyOptions } from '../Options';
|
|
6
6
|
import { Uncontrolled, Controlled } from '../_common_/types';
|
|
7
7
|
|
|
8
8
|
// CSF format story
|
|
9
9
|
export const size = () => {
|
|
10
|
-
const sizes:
|
|
10
|
+
const sizes: DropDownButtonSize[] = ['tiny', 'regular'];
|
|
11
11
|
|
|
12
12
|
return (
|
|
13
13
|
<div className="d-flex">
|
|
@@ -352,7 +352,7 @@ describe('Dropdown component', () => {
|
|
|
352
352
|
|
|
353
353
|
describe('renders dropdown component onKeyDown Handler', () => {
|
|
354
354
|
const dropdownListId = 'DesignSystem-DropdownList-Wrapper';
|
|
355
|
-
keyDownEvents.forEach((action
|
|
355
|
+
keyDownEvents.forEach((action) => {
|
|
356
356
|
it(`checks for keyDown ${action} event with dropdownOpen set as true `, () => {
|
|
357
357
|
const { getByTestId } = render(
|
|
358
358
|
<Dropdown
|
|
@@ -458,3 +458,14 @@ describe('Dropdown component action buttons', () => {
|
|
|
458
458
|
expect(screen.queryByText('DesignSystem-Popover')).not.toBeInTheDocument();
|
|
459
459
|
});
|
|
460
460
|
});
|
|
461
|
+
|
|
462
|
+
describe('Dropdown component with search', () => {
|
|
463
|
+
it('check:prop searchPlaceholder', () => {
|
|
464
|
+
const { getByTestId } = render(
|
|
465
|
+
<Dropdown options={dropdownOptions} withSearch={true} searchPlaceholder="Custom search text" />
|
|
466
|
+
);
|
|
467
|
+
const dropdownTrigger = getByTestId(trigger);
|
|
468
|
+
fireEvent.click(dropdownTrigger);
|
|
469
|
+
expect(screen.getByPlaceholderText('Custom search text')).toBeInTheDocument();
|
|
470
|
+
});
|
|
471
|
+
});
|
|
@@ -4,7 +4,6 @@ import { Dropdown } from '@/index';
|
|
|
4
4
|
|
|
5
5
|
import { storyOptions, iconOptions, subInfoOptions, iconWithSubinfoOptions } from '../__stories__/Options';
|
|
6
6
|
|
|
7
|
-
const FunctionValue = jest.fn();
|
|
8
7
|
const trigger = 'DesignSystem-DropdownTrigger';
|
|
9
8
|
|
|
10
9
|
describe('renders loading states', () => {
|
|
@@ -8,8 +8,8 @@ import IconWithMetaOption from './IconWithMetaOption';
|
|
|
8
8
|
import { MetaList, Text } from '@/index';
|
|
9
9
|
import { MetaListProps, IconProps, TextProps } from '@/index.type';
|
|
10
10
|
import { OptionType } from '../DropdownList';
|
|
11
|
+
import { ChangeEvent } from '@/common.type';
|
|
11
12
|
|
|
12
|
-
export type ChangeEvent = React.ChangeEvent<HTMLInputElement>;
|
|
13
13
|
export type ClickEvent = React.MouseEvent<HTMLDivElement>;
|
|
14
14
|
|
|
15
15
|
export interface OptionRendererProps {
|
|
@@ -2,9 +2,9 @@ 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
|
|
7
|
-
export type Appearance = 'default' | 'subtle' | 'disabled' | 'white';
|
|
7
|
+
export type HeadingSize = 's' | 'm' | 'l' | 'xl' | 'xxl';
|
|
8
8
|
|
|
9
9
|
export interface HeadingProps extends BaseProps, BaseHtmlProps<HTMLHeadingElement> {
|
|
10
10
|
/**
|
|
@@ -14,11 +14,11 @@ export interface HeadingProps extends BaseProps, BaseHtmlProps<HTMLHeadingElemen
|
|
|
14
14
|
/**
|
|
15
15
|
* Color of `Heading`
|
|
16
16
|
*/
|
|
17
|
-
appearance:
|
|
17
|
+
appearance: HeadingAppearance;
|
|
18
18
|
/**
|
|
19
19
|
* size of `Heading`
|
|
20
20
|
*/
|
|
21
|
-
size:
|
|
21
|
+
size: HeadingSize;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
const sizeMap = {
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import Heading
|
|
2
|
+
import Heading 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
|
return (
|
|
9
10
|
<div className="Row">
|
|
10
11
|
{appearances.map((appear, ind) => {
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { render } from '@testing-library/react';
|
|
3
|
-
import Heading, { HeadingProps as Props,
|
|
3
|
+
import Heading, { HeadingProps as Props, HeadingSize } from '../Heading';
|
|
4
4
|
import { testHelper, filterUndefined, valueHelper, testMessageHelper } from '@/utils/testHelper';
|
|
5
|
+
import { HeadingAppearance } from '@/common.type';
|
|
5
6
|
|
|
6
|
-
const appearance:
|
|
7
|
-
const sizes:
|
|
7
|
+
const appearance: HeadingAppearance[] = ['default', 'subtle', 'disabled', 'white'];
|
|
8
|
+
const sizes: HeadingSize[] = ['s', 'm', 'l', 'xl', 'xxl'];
|
|
8
9
|
|
|
9
10
|
describe('Heading component', () => {
|
|
10
11
|
const mapper = {
|
|
@@ -3,7 +3,7 @@ import classNames from 'classnames';
|
|
|
3
3
|
import { BaseProps, extractBaseProps } from '@/utils/types';
|
|
4
4
|
import { useAccessibilityProps } from '@/accessibility/utils';
|
|
5
5
|
|
|
6
|
-
export type
|
|
6
|
+
export type IconAppearance =
|
|
7
7
|
| 'default'
|
|
8
8
|
| 'destructive'
|
|
9
9
|
| 'white'
|
|
@@ -55,7 +55,7 @@ export interface IconProps extends BaseProps {
|
|
|
55
55
|
/**
|
|
56
56
|
* Color of `Icon` // 'info' appearance will be deprecated soon.
|
|
57
57
|
*/
|
|
58
|
-
appearance?:
|
|
58
|
+
appearance?: IconAppearance;
|
|
59
59
|
/**
|
|
60
60
|
* Handler to be called when icon is clicked
|
|
61
61
|
*/
|
|
@@ -118,7 +118,7 @@ export const Icon = (props: IconProps) => {
|
|
|
118
118
|
);
|
|
119
119
|
}
|
|
120
120
|
return (
|
|
121
|
-
<i {...baseProps}
|
|
121
|
+
<i {...baseProps} className={iconClass} style={styles} {...accessibilityProps}>
|
|
122
122
|
{type ? `${name}_${type}` : name}
|
|
123
123
|
</i>
|
|
124
124
|
);
|
|
@@ -3,10 +3,10 @@ import classNames from 'classnames';
|
|
|
3
3
|
import { Tooltip, Icon, Text } from '@/index';
|
|
4
4
|
import { IconProps } from '@/index.type';
|
|
5
5
|
import { BaseHtmlProps, BaseProps, extractBaseProps } from '@/utils/types';
|
|
6
|
+
import { AutoComplete } from '@/common.type';
|
|
6
7
|
|
|
7
8
|
export type InputType = 'text' | 'password' | 'number' | 'email' | 'tel' | 'url';
|
|
8
|
-
export type
|
|
9
|
-
export type Size = 'tiny' | 'regular' | 'large';
|
|
9
|
+
export type InputSize = 'tiny' | 'regular' | 'large';
|
|
10
10
|
|
|
11
11
|
export interface InputProps extends BaseProps, BaseHtmlProps<HTMLInputElement> {
|
|
12
12
|
/**
|
|
@@ -35,7 +35,7 @@ export interface InputProps extends BaseProps, BaseHtmlProps<HTMLInputElement> {
|
|
|
35
35
|
* Size of the `Input`
|
|
36
36
|
* @default "regular"
|
|
37
37
|
*/
|
|
38
|
-
size?:
|
|
38
|
+
size?: InputSize;
|
|
39
39
|
/**
|
|
40
40
|
* Material icon name
|
|
41
41
|
*/
|
|
@@ -50,6 +50,67 @@ export const inputWithCaption = () => {
|
|
|
50
50
|
);
|
|
51
51
|
};
|
|
52
52
|
|
|
53
|
+
const customCode = `() => {
|
|
54
|
+
const [visibility, setVisibility] = React.useState(false);
|
|
55
|
+
const [visibility2, setVisibility2] = React.useState(false);
|
|
56
|
+
const [inputValue, setInputValue] = React.useState('Value');
|
|
57
|
+
const [secondInputValue, setSecondInputValue] = React.useState('Value');
|
|
58
|
+
return (
|
|
59
|
+
<div className="d-flex">
|
|
60
|
+
<div>
|
|
61
|
+
<Label htmlFor="password-1" withInput={true}>
|
|
62
|
+
Password
|
|
63
|
+
</Label>
|
|
64
|
+
<Input
|
|
65
|
+
id="password-1"
|
|
66
|
+
placeholder="Password"
|
|
67
|
+
value={inputValue}
|
|
68
|
+
type={visibility ? 'text' : 'password'}
|
|
69
|
+
onChange={(ev) => {
|
|
70
|
+
ev.persist();
|
|
71
|
+
setInputValue(ev.target.value);
|
|
72
|
+
}}
|
|
73
|
+
actionIcon={
|
|
74
|
+
<Icon
|
|
75
|
+
aria-label={visibility ? 'Show Password' : 'Hide Password'}
|
|
76
|
+
onClick={() => setVisibility((x) => !x)}
|
|
77
|
+
name={visibility ? 'visibility_on' : 'visibility_off'}
|
|
78
|
+
className="cursor-pointer"
|
|
79
|
+
/>
|
|
80
|
+
}
|
|
81
|
+
/>
|
|
82
|
+
<Caption withInput={true}>Create a string, unique password</Caption>
|
|
83
|
+
</div>
|
|
84
|
+
<div className="ml-6">
|
|
85
|
+
<Label htmlFor="password-2" withInput={true}>
|
|
86
|
+
Password
|
|
87
|
+
</Label>
|
|
88
|
+
<Input
|
|
89
|
+
id="password-2"
|
|
90
|
+
placeholder="Password"
|
|
91
|
+
value={secondInputValue}
|
|
92
|
+
type={visibility2 ? 'text' : 'password'}
|
|
93
|
+
onChange={(ev) => {
|
|
94
|
+
ev.persist();
|
|
95
|
+
setSecondInputValue(ev.target.value);
|
|
96
|
+
}}
|
|
97
|
+
actionIcon={
|
|
98
|
+
<Icon
|
|
99
|
+
aria-label={visibility ? 'Show Password' : 'Hide Password'}
|
|
100
|
+
onClick={() => setVisibility2((x) => !x)}
|
|
101
|
+
name={visibility2 ? 'visibility_on' : 'visibility_off'}
|
|
102
|
+
className="cursor-pointer"
|
|
103
|
+
/>
|
|
104
|
+
}
|
|
105
|
+
/>
|
|
106
|
+
<Caption withInput={true} error={true}>
|
|
107
|
+
Create a password with at least 8 characters
|
|
108
|
+
</Caption>
|
|
109
|
+
</div>
|
|
110
|
+
</div>
|
|
111
|
+
);
|
|
112
|
+
};`;
|
|
113
|
+
|
|
53
114
|
export default {
|
|
54
115
|
title: 'Components/Input/Input With Caption',
|
|
55
116
|
component: Input,
|
|
@@ -57,6 +118,7 @@ export default {
|
|
|
57
118
|
docs: {
|
|
58
119
|
docPage: {
|
|
59
120
|
title: 'Input',
|
|
121
|
+
customCode,
|
|
60
122
|
props: {
|
|
61
123
|
exclude: ['autocomplete'],
|
|
62
124
|
},
|
|
@@ -20,6 +20,43 @@ export const labelPosition = () => {
|
|
|
20
20
|
);
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
+
const customCode = `() => {
|
|
24
|
+
const [inputValue, setInputValue] = React.useState('Joy Lawson');
|
|
25
|
+
const [secondInputValue, setSecondInputValue] = React.useState('Joy Lawson');
|
|
26
|
+
return (
|
|
27
|
+
<div className="d-flex align-items-end">
|
|
28
|
+
<div>
|
|
29
|
+
<Label htmlFor="fullName" withInput={true}>
|
|
30
|
+
Full Name
|
|
31
|
+
</Label>
|
|
32
|
+
<Input
|
|
33
|
+
placeholder="Full name"
|
|
34
|
+
id="fullName"
|
|
35
|
+
value={inputValue}
|
|
36
|
+
onChange={(ev) => {
|
|
37
|
+
ev.persist();
|
|
38
|
+
setInputValue(ev.target.value);
|
|
39
|
+
}}
|
|
40
|
+
/>
|
|
41
|
+
</div>
|
|
42
|
+
<div className="d-flex align-items-center ml-9">
|
|
43
|
+
<Label htmlFor="fullName2" className="mr-6">
|
|
44
|
+
Full Name
|
|
45
|
+
</Label>
|
|
46
|
+
<Input
|
|
47
|
+
placeholder="Full name"
|
|
48
|
+
id="fullName2"
|
|
49
|
+
value={secondInputValue}
|
|
50
|
+
onChange={(ev) => {
|
|
51
|
+
ev.persist();
|
|
52
|
+
setSecondInputValue(ev.target.value);
|
|
53
|
+
}}
|
|
54
|
+
/>
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
);
|
|
58
|
+
};`;
|
|
59
|
+
|
|
23
60
|
export default {
|
|
24
61
|
title: 'Components/Input/Label Position',
|
|
25
62
|
component: Input,
|
|
@@ -27,6 +64,7 @@ export default {
|
|
|
27
64
|
docs: {
|
|
28
65
|
docPage: {
|
|
29
66
|
title: 'Input',
|
|
67
|
+
customCode,
|
|
30
68
|
props: {
|
|
31
69
|
exclude: ['autocomplete'],
|
|
32
70
|
},
|
|
@@ -44,6 +44,51 @@ export const controlledInput = () => {
|
|
|
44
44
|
</div>
|
|
45
45
|
);
|
|
46
46
|
};
|
|
47
|
+
|
|
48
|
+
const customCode = `() => {
|
|
49
|
+
const [visibility, setVisibility] = React.useState(false);
|
|
50
|
+
const [value, setValue] = React.useState('Value');
|
|
51
|
+
const handleParentChange = (event) => {
|
|
52
|
+
const updatedValue = event.target.value;
|
|
53
|
+
setValue(updatedValue);
|
|
54
|
+
};
|
|
55
|
+
const [value1, setValue1] = React.useState('Value');
|
|
56
|
+
const onChangeHandler = (event) => {
|
|
57
|
+
const updatedValue = event.target.value;
|
|
58
|
+
setValue1(updatedValue);
|
|
59
|
+
};
|
|
60
|
+
const onClearHandler = () => {
|
|
61
|
+
const updatedValue = '';
|
|
62
|
+
setValue1(updatedValue);
|
|
63
|
+
};
|
|
64
|
+
return (
|
|
65
|
+
<div className="d-flex">
|
|
66
|
+
<Input
|
|
67
|
+
name="input"
|
|
68
|
+
value={value}
|
|
69
|
+
type={visibility ? 'text' : 'password'}
|
|
70
|
+
placeholder="Placeholder"
|
|
71
|
+
actionIcon={
|
|
72
|
+
<Icon
|
|
73
|
+
onClick={() => setVisibility((x) => !x)}
|
|
74
|
+
name={visibility ? 'visibility_on' : 'visibility_off'}
|
|
75
|
+
aria-label={visibility ? 'Show Password' : 'Hide Password'}
|
|
76
|
+
className="cursor-pointer"
|
|
77
|
+
/>
|
|
78
|
+
}
|
|
79
|
+
onChange={handleParentChange}
|
|
80
|
+
/>
|
|
81
|
+
<Input
|
|
82
|
+
name="input"
|
|
83
|
+
value={value1}
|
|
84
|
+
type="text"
|
|
85
|
+
placeholder="PlaceHolder"
|
|
86
|
+
onChange={onChangeHandler}
|
|
87
|
+
onClear={onClearHandler}
|
|
88
|
+
/>
|
|
89
|
+
</div>
|
|
90
|
+
);
|
|
91
|
+
};`;
|
|
47
92
|
export default {
|
|
48
93
|
title: 'Components/Input/Variants/Controlled Input',
|
|
49
94
|
component: Input,
|
|
@@ -51,6 +96,7 @@ export default {
|
|
|
51
96
|
docs: {
|
|
52
97
|
docPage: {
|
|
53
98
|
title: 'Input',
|
|
99
|
+
customCode,
|
|
54
100
|
props: {
|
|
55
101
|
exclude: ['autocomplete'],
|
|
56
102
|
},
|
|
@@ -7,7 +7,7 @@ export const basic = () => {
|
|
|
7
7
|
return (
|
|
8
8
|
<div className="Row">
|
|
9
9
|
<div className="mr-9 mb-8 w-25">
|
|
10
|
-
<Input name="input"
|
|
10
|
+
<Input name="input" onChange={action('on-change')} onClear={action('on-clear')} />
|
|
11
11
|
<br />
|
|
12
12
|
<Text weight="strong">Default</Text>
|
|
13
13
|
</div>
|
|
@@ -24,7 +24,7 @@ export const basic = () => {
|
|
|
24
24
|
<Text weight="strong">Placeholder</Text>
|
|
25
25
|
</div>
|
|
26
26
|
<div className="mr-9 mb-8 w-25">
|
|
27
|
-
<Input name="input"
|
|
27
|
+
<Input name="input" onChange={action('on-change')} onClear={action('on-clear')} error={true} />
|
|
28
28
|
<br />
|
|
29
29
|
<Text weight="strong">Error</Text>
|
|
30
30
|
</div>
|
|
@@ -8,14 +8,13 @@ export const iconLeft = () => {
|
|
|
8
8
|
return (
|
|
9
9
|
<div className="Row">
|
|
10
10
|
<div className="mr-9 mb-8 w-25">
|
|
11
|
-
<Input name="input"
|
|
11
|
+
<Input name="input" onChange={action('on-change')} onClear={action('on-clear')} icon={icon} />
|
|
12
12
|
<br />
|
|
13
13
|
<Text weight="strong">Default</Text>
|
|
14
14
|
</div>
|
|
15
15
|
<div className="mr-9 mb-8 w-25">
|
|
16
16
|
<Input
|
|
17
17
|
name="input"
|
|
18
|
-
value=""
|
|
19
18
|
placeholder="Placeholder"
|
|
20
19
|
onChange={action('on-change')}
|
|
21
20
|
onClear={action('on-clear')}
|
|
@@ -26,14 +25,7 @@ export const iconLeft = () => {
|
|
|
26
25
|
<Text weight="strong">Placeholder</Text>
|
|
27
26
|
</div>
|
|
28
27
|
<div className="mr-9 mb-8 w-25">
|
|
29
|
-
<Input
|
|
30
|
-
name="input"
|
|
31
|
-
value="Value"
|
|
32
|
-
onChange={action('on-change')}
|
|
33
|
-
onClear={action('on-clear')}
|
|
34
|
-
error={true}
|
|
35
|
-
icon={icon}
|
|
36
|
-
/>
|
|
28
|
+
<Input name="input" onChange={action('on-change')} onClear={action('on-clear')} error={true} icon={icon} />
|
|
37
29
|
<br />
|
|
38
30
|
<Text weight="strong">Error</Text>
|
|
39
31
|
</div>
|
|
@@ -11,13 +11,7 @@ export const withLabel = () => {
|
|
|
11
11
|
<Label withInput={true} required={true}>
|
|
12
12
|
Full Name
|
|
13
13
|
</Label>
|
|
14
|
-
<Input
|
|
15
|
-
name="input"
|
|
16
|
-
value="Value"
|
|
17
|
-
onChange={action('on-change')}
|
|
18
|
-
onClear={action('on-clear')}
|
|
19
|
-
required={true}
|
|
20
|
-
/>
|
|
14
|
+
<Input name="input" onChange={action('on-change')} onClear={action('on-clear')} required={true} />
|
|
21
15
|
</div>
|
|
22
16
|
<br />
|
|
23
17
|
<Text weight="strong">No Caption</Text>
|
|
@@ -28,7 +22,6 @@ export const withLabel = () => {
|
|
|
28
22
|
</Label>
|
|
29
23
|
<Input
|
|
30
24
|
name="input"
|
|
31
|
-
value="Value"
|
|
32
25
|
type="password"
|
|
33
26
|
onChange={action('on-change')}
|
|
34
27
|
onClear={action('on-clear')}
|
|
@@ -44,7 +37,6 @@ export const withLabel = () => {
|
|
|
44
37
|
</Label>
|
|
45
38
|
<Input
|
|
46
39
|
name="input"
|
|
47
|
-
value="Value"
|
|
48
40
|
type="password"
|
|
49
41
|
onChange={action('on-change')}
|
|
50
42
|
onClear={action('on-clear')}
|
|
@@ -50,7 +50,7 @@ export const Label = (props: LabelProps) => {
|
|
|
50
50
|
'Label--disabled': disabled,
|
|
51
51
|
});
|
|
52
52
|
|
|
53
|
-
const renderInfo = (isRequired
|
|
53
|
+
const renderInfo = (isRequired = false, isOptional?: boolean) => {
|
|
54
54
|
if (isRequired) {
|
|
55
55
|
return <span className="Label-requiredIndicator" data-test="DesignSystem-Label--RequiredIndicator" />;
|
|
56
56
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import Text, {
|
|
2
|
+
import Text, { TextAppearance } from '@/components/atoms/text';
|
|
3
3
|
import classNames from 'classnames';
|
|
4
4
|
import { BaseProps, extractBaseProps } from '@/utils/types';
|
|
5
5
|
|
|
@@ -15,7 +15,7 @@ export interface LegendProps extends BaseProps {
|
|
|
15
15
|
/**
|
|
16
16
|
* Color of label
|
|
17
17
|
*/
|
|
18
|
-
labelAppearance?:
|
|
18
|
+
labelAppearance?: TextAppearance;
|
|
19
19
|
/**
|
|
20
20
|
* Size of Icon
|
|
21
21
|
*/
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { TextAppearance as LabelApperance } from '@/components/atoms/text';
|
|
3
3
|
import Legend from '../../Legend';
|
|
4
4
|
|
|
5
5
|
// CSF format story
|
|
6
6
|
export const labelAppearance = () => {
|
|
7
|
-
const appearances:
|
|
7
|
+
const appearances: LabelApperance[] = ['default', 'white', 'destructive', 'subtle', 'disabled'];
|
|
8
8
|
return (
|
|
9
9
|
<div>
|
|
10
10
|
{appearances.map((appearance, i) => {
|
|
@@ -4,8 +4,8 @@ import classNames from 'classnames';
|
|
|
4
4
|
import { BaseProps, OmitNativeProps } from '@/utils/types';
|
|
5
5
|
|
|
6
6
|
type LinkTarget = '_blank' | '_self' | '_parent' | '_top';
|
|
7
|
-
type
|
|
8
|
-
type
|
|
7
|
+
type LinkAppearance = 'default' | 'subtle';
|
|
8
|
+
type LinkSize = 'regular' | 'tiny';
|
|
9
9
|
|
|
10
10
|
export interface LinkProps extends BaseProps, OmitNativeProps<HTMLLinkElement, 'onClick'> {
|
|
11
11
|
/**
|
|
@@ -15,11 +15,11 @@ export interface LinkProps extends BaseProps, OmitNativeProps<HTMLLinkElement, '
|
|
|
15
15
|
/**
|
|
16
16
|
* Color of `Link`
|
|
17
17
|
*/
|
|
18
|
-
appearance:
|
|
18
|
+
appearance: LinkAppearance;
|
|
19
19
|
/**
|
|
20
20
|
* Size of `Link`
|
|
21
21
|
*/
|
|
22
|
-
size:
|
|
22
|
+
size: LinkSize;
|
|
23
23
|
/**
|
|
24
24
|
* Disables the `Link`, making it unable to be clicked
|
|
25
25
|
*/
|