@strapi/design-system 1.3.0-beta.1 → 1.3.0-beta.2
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/Accordion.development.js +775 -0
- package/Accordion.js +9 -0
- package/Accordion.production.js +1 -0
- package/Alert.development.js +562 -0
- package/Alert.js +9 -0
- package/Alert.production.js +1 -0
- package/Avatar.development.js +485 -0
- package/Avatar.js +9 -0
- package/Avatar.production.js +1 -0
- package/Badge.development.js +494 -0
- package/Badge.js +9 -0
- package/Badge.production.js +1 -0
- package/BaseButton.development.js +285 -0
- package/BaseButton.js +9 -0
- package/BaseButton.production.js +1 -0
- package/BaseCheckbox.development.js +434 -0
- package/BaseCheckbox.js +9 -0
- package/BaseCheckbox.production.js +1 -0
- package/BaseLink.development.js +273 -0
- package/BaseLink.js +9 -0
- package/BaseLink.production.js +1 -0
- package/BaseRadio.development.js +321 -0
- package/BaseRadio.js +9 -0
- package/BaseRadio.production.js +1 -0
- package/Box.development.js +341 -0
- package/Box.js +9 -0
- package/Box.production.js +1 -0
- package/Breadcrumbs.development.js +518 -0
- package/Breadcrumbs.js +9 -0
- package/Breadcrumbs.production.js +1 -0
- package/Button.development.js +573 -0
- package/Button.js +9 -0
- package/Button.production.js +1 -0
- package/Card.development.js +746 -0
- package/Card.js +9 -0
- package/Card.production.js +1 -0
- package/CarouselInput.development.js +898 -0
- package/CarouselInput.js +9 -0
- package/CarouselInput.production.js +1 -0
- package/Checkbox.development.js +722 -0
- package/Checkbox.js +9 -0
- package/Checkbox.production.js +1 -0
- package/Combobox.development.js +934 -0
- package/Combobox.js +9 -0
- package/Combobox.production.js +1 -0
- package/DatePicker.development.js +1323 -0
- package/DatePicker.js +9 -0
- package/DatePicker.production.js +1 -0
- package/DateTimePicker.development.js +1622 -0
- package/DateTimePicker.js +9 -0
- package/DateTimePicker.production.js +1 -0
- package/Dialog.development.js +741 -0
- package/Dialog.js +9 -0
- package/Dialog.production.js +1 -0
- package/DismissibleLayer.development.js +218 -0
- package/DismissibleLayer.js +9 -0
- package/DismissibleLayer.production.js +1 -0
- package/Divider.development.js +398 -0
- package/Divider.js +9 -0
- package/Divider.production.js +1 -0
- package/EmptyStateLayout.development.js +425 -0
- package/EmptyStateLayout.js +9 -0
- package/EmptyStateLayout.production.js +1 -0
- package/Field.development.js +614 -0
- package/Field.js +9 -0
- package/Field.production.js +1 -0
- package/Flex.development.js +377 -0
- package/Flex.js +9 -0
- package/Flex.production.js +1 -0
- package/FocusTrap.development.js +341 -0
- package/FocusTrap.js +9 -0
- package/FocusTrap.production.js +1 -0
- package/Grid.development.js +422 -0
- package/Grid.js +9 -0
- package/Grid.production.js +1 -0
- package/Icon.development.js +376 -0
- package/Icon.js +9 -0
- package/Icon.production.js +1 -0
- package/IconButton.development.js +684 -0
- package/IconButton.js +9 -0
- package/IconButton.production.js +1 -0
- package/KeyboardNavigable.development.js +454 -0
- package/KeyboardNavigable.js +9 -0
- package/KeyboardNavigable.production.js +1 -0
- package/Layout.development.js +626 -0
- package/Layout.js +9 -0
- package/Layout.production.js +1 -0
- package/Link.development.js +492 -0
- package/Link.js +9 -0
- package/Link.production.js +1 -0
- package/LinkButton.development.js +573 -0
- package/LinkButton.js +9 -0
- package/LinkButton.production.js +1 -0
- package/LiveRegions.development.js +147 -0
- package/LiveRegions.js +9 -0
- package/LiveRegions.production.js +1 -0
- package/Loader.development.js +309 -0
- package/Loader.js +9 -0
- package/Loader.production.js +1 -0
- package/Main.development.js +410 -0
- package/Main.js +9 -0
- package/Main.production.js +1 -0
- package/MainNav.development.js +957 -0
- package/MainNav.js +9 -0
- package/MainNav.production.js +1 -0
- package/ModalLayout.development.js +895 -0
- package/ModalLayout.js +9 -0
- package/ModalLayout.production.js +1 -0
- package/NumberInput.development.js +733 -0
- package/NumberInput.js +9 -0
- package/NumberInput.production.js +1 -0
- package/Pagination.development.js +587 -0
- package/Pagination.js +9 -0
- package/Pagination.production.js +1 -0
- package/Popover.development.js +481 -0
- package/Popover.js +9 -0
- package/Popover.production.js +1 -0
- package/Portal.development.js +212 -0
- package/Portal.js +9 -0
- package/Portal.production.js +1 -0
- package/ProgressBar.development.js +273 -0
- package/ProgressBar.js +9 -0
- package/ProgressBar.production.js +1 -0
- package/Radio.development.js +518 -0
- package/Radio.js +9 -0
- package/Radio.production.js +1 -0
- package/RawTable.development.js +549 -0
- package/RawTable.js +9 -0
- package/RawTable.production.js +1 -0
- package/Searchbar.development.js +696 -0
- package/Searchbar.js +9 -0
- package/Searchbar.production.js +1 -0
- package/Select.development.js +1063 -0
- package/Select.js +9 -0
- package/Select.production.js +1 -0
- package/SimpleMenu.development.js +821 -0
- package/SimpleMenu.js +9 -0
- package/SimpleMenu.production.js +1 -0
- package/Stack.development.js +434 -0
- package/Stack.js +9 -0
- package/Stack.production.js +1 -0
- package/Status.development.js +494 -0
- package/Status.js +9 -0
- package/Status.production.js +1 -0
- package/SubNav.development.js +1123 -0
- package/SubNav.js +9 -0
- package/SubNav.production.js +1 -0
- package/Switch.development.js +434 -0
- package/Switch.js +9 -0
- package/Switch.production.js +1 -0
- package/Table.development.js +741 -0
- package/Table.js +9 -0
- package/Table.production.js +1 -0
- package/Tabs.development.js +590 -0
- package/Tabs.js +9 -0
- package/Tabs.production.js +1 -0
- package/Tag.development.js +494 -0
- package/Tag.js +9 -0
- package/Tag.production.js +1 -0
- package/TextButton.development.js +517 -0
- package/TextButton.js +9 -0
- package/TextButton.production.js +1 -0
- package/TextInput.development.js +662 -0
- package/TextInput.js +9 -0
- package/TextInput.production.js +1 -0
- package/Textarea.development.js +674 -0
- package/Textarea.js +9 -0
- package/Textarea.production.js +1 -0
- package/ThemeProvider.development.js +300 -0
- package/ThemeProvider.js +9 -0
- package/ThemeProvider.production.js +1 -0
- package/TimePicker.development.js +1098 -0
- package/TimePicker.js +9 -0
- package/TimePicker.production.js +1 -0
- package/ToggleCheckbox.development.js +542 -0
- package/ToggleCheckbox.js +9 -0
- package/ToggleCheckbox.production.js +1 -0
- package/ToggleInput.development.js +745 -0
- package/ToggleInput.js +9 -0
- package/ToggleInput.production.js +1 -0
- package/Tooltip.development.js +588 -0
- package/Tooltip.js +9 -0
- package/Tooltip.production.js +1 -0
- package/Typography.development.js +276 -0
- package/Typography.js +9 -0
- package/Typography.production.js +1 -0
- package/VisuallyHidden.development.js +146 -0
- package/VisuallyHidden.js +9 -0
- package/VisuallyHidden.production.js +1 -0
- package/index.development.js +4338 -0
- package/index.js +9 -0
- package/index.production.js +1 -0
- package/package.json +2 -2
- package/themes.development.js +254 -0
- package/themes.js +9 -0
- package/themes.production.js +1 -0
- package/v2/Breadcrumbs.development.js +906 -0
- package/v2/Breadcrumbs.js +9 -0
- package/v2/Breadcrumbs.production.js +1 -0
- package/v2/Link.development.js +505 -0
- package/v2/Link.js +9 -0
- package/v2/Link.production.js +1 -0
- package/v2/LinkButton.development.js +586 -0
- package/v2/LinkButton.js +9 -0
- package/v2/LinkButton.production.js +1 -0
- package/v2/MainNav.development.js +970 -0
- package/v2/MainNav.js +9 -0
- package/v2/MainNav.production.js +1 -0
- package/v2/Pagination.development.js +600 -0
- package/v2/Pagination.js +9 -0
- package/v2/Pagination.production.js +1 -0
- package/v2/SimpleMenu.development.js +834 -0
- package/v2/SimpleMenu.js +9 -0
- package/v2/SimpleMenu.production.js +1 -0
- package/v2/SubNav.development.js +1136 -0
- package/v2/SubNav.js +9 -0
- package/v2/SubNav.production.js +1 -0
- package/v2/index.development.js +1740 -0
- package/v2/index.js +9 -0
- package/v2/index.production.js +1 -0
- package/v2/package.json +81 -0
- package/.eslintignore +0 -3
- package/.eslintrc.js +0 -38
- package/.prettierrc.js +0 -7
- package/.storybook/components/Theme.js +0 -28
- package/.storybook/main.js +0 -13
- package/.storybook/manager.js +0 -12
- package/.storybook/preview.js +0 -42
- package/.storybook/utils/createCustomTheme.js +0 -26
- package/LICENSE +0 -20
- package/__mocks__/fileMock.js +0 -1
- package/__mocks__/styleMock.js +0 -1
- package/babel.config.js +0 -5
- package/createIndexFiles.js +0 -34
- package/global-setup.js +0 -4
- package/jest.config.js +0 -17
- package/playwright.config.js +0 -39
- package/src/Accordion/Accordion.js +0 -148
- package/src/Accordion/Accordion.stories.mdx +0 -327
- package/src/Accordion/AccordionContent.js +0 -26
- package/src/Accordion/AccordionContext.js +0 -5
- package/src/Accordion/AccordionGroup.js +0 -114
- package/src/Accordion/AccordionToggle.js +0 -192
- package/src/Accordion/__tests__/Accordion.e2e.js +0 -32
- package/src/Accordion/__tests__/AccordionKeyboard.e2e.js +0 -73
- package/src/Accordion/index.js +0 -4
- package/src/Accordion/utils.js +0 -15
- package/src/Alert/Alert.js +0 -144
- package/src/Alert/Alert.stories.mdx +0 -135
- package/src/Alert/__tests__/Alert.e2e.js +0 -39
- package/src/Alert/index.js +0 -1
- package/src/Alert/utils.js +0 -35
- package/src/Avatar/Avatar.js +0 -110
- package/src/Avatar/Avatar.stories.mdx +0 -67
- package/src/Avatar/AvatarGroup.js +0 -9
- package/src/Avatar/__tests__/Avatar.e2e.js +0 -23
- package/src/Avatar/__tests__/Avatar.spec.js +0 -153
- package/src/Avatar/constants.js +0 -2
- package/src/Avatar/index.js +0 -2
- package/src/Badge/Badge.js +0 -41
- package/src/Badge/Badge.stories.mdx +0 -57
- package/src/Badge/__tests__/Badge.e2e.js +0 -23
- package/src/Badge/index.js +0 -1
- package/src/BaseButton/BaseButton.js +0 -46
- package/src/BaseButton/BaseButton.stories.mdx +0 -32
- package/src/BaseButton/__tests__/BaseButton.e2e.js +0 -23
- package/src/BaseButton/index.js +0 -1
- package/src/BaseCheckbox/BaseCheckbox.js +0 -133
- package/src/BaseCheckbox/BaseCheckbox.stories.mdx +0 -107
- package/src/BaseCheckbox/__tests__/BaseCheckbox.e2e.js +0 -94
- package/src/BaseCheckbox/assets/checkmark-black.svg +0 -6
- package/src/BaseCheckbox/assets/checkmark.svg +0 -6
- package/src/BaseCheckbox/index.js +0 -1
- package/src/BaseCheckbox/utils.js +0 -7
- package/src/BaseLink/BaseLink.js +0 -38
- package/src/BaseLink/BaseLink.stories.mdx +0 -34
- package/src/BaseLink/__tests__/BaseLink.e2e.js +0 -23
- package/src/BaseLink/__tests__/BaseLink.spec.js +0 -26
- package/src/BaseLink/index.js +0 -1
- package/src/BaseRadio/BaseRadio.js +0 -69
- package/src/BaseRadio/BaseRadio.stories.mdx +0 -110
- package/src/BaseRadio/RadioGroup.js +0 -36
- package/src/BaseRadio/__tests__/BaseRadio.e2e.js +0 -90
- package/src/BaseRadio/context.js +0 -3
- package/src/BaseRadio/index.js +0 -2
- package/src/BaseRadio/utils.js +0 -30
- package/src/Box/Box.js +0 -104
- package/src/Box/Box.stories.mdx +0 -57
- package/src/Box/BoxProps.js +0 -99
- package/src/Box/__tests__/Box.e2e.js +0 -23
- package/src/Box/__tests__/Box.spec.js +0 -36
- package/src/Box/index.js +0 -1
- package/src/Breadcrumbs/Breadcrumbs.js +0 -58
- package/src/Breadcrumbs/Breadcrumbs.stories.mdx +0 -47
- package/src/Breadcrumbs/__tests__/Breadcrumbs.e2e.js +0 -23
- package/src/Breadcrumbs/index.js +0 -1
- package/src/Button/Button.js +0 -138
- package/src/Button/Button.stories.mdx +0 -216
- package/src/Button/__tests__/Button.e2e.js +0 -89
- package/src/Button/__tests__/utils.spec.js +0 -19
- package/src/Button/constants.js +0 -12
- package/src/Button/index.js +0 -1
- package/src/Button/utils.js +0 -170
- package/src/Card/Card.js +0 -35
- package/src/Card/Card.stories.mdx +0 -202
- package/src/Card/CardAction.js +0 -13
- package/src/Card/CardAsset.js +0 -49
- package/src/Card/CardBadge.js +0 -18
- package/src/Card/CardBody.js +0 -11
- package/src/Card/CardCheckbox.js +0 -14
- package/src/Card/CardContent.js +0 -16
- package/src/Card/CardContext.js +0 -5
- package/src/Card/CardHeader.js +0 -12
- package/src/Card/CardTimer.js +0 -23
- package/src/Card/CardTitle.js +0 -12
- package/src/Card/__tests__/Card.e2e.js +0 -164
- package/src/Card/index.js +0 -10
- package/src/Card/story-assets/first.jpg +0 -0
- package/src/CarouselInput/Carousel.js +0 -138
- package/src/CarouselInput/Carousel.stories.mdx +0 -149
- package/src/CarouselInput/CarouselActions.js +0 -6
- package/src/CarouselInput/CarouselImage.js +0 -39
- package/src/CarouselInput/CarouselInput.js +0 -80
- package/src/CarouselInput/CarouselSlide.js +0 -32
- package/src/CarouselInput/__tests__/CarouselImage.e2e.js +0 -15
- package/src/CarouselInput/__tests__/CarouselInput.e2e.js +0 -48
- package/src/CarouselInput/index.js +0 -5
- package/src/CarouselInput/story-assets/first.jpg +0 -0
- package/src/Checkbox/Checkbox.js +0 -63
- package/src/Checkbox/Checkbox.stories.mdx +0 -190
- package/src/Checkbox/__tests__/Checkbox.e2e.js +0 -96
- package/src/Checkbox/index.js +0 -1
- package/src/Combobox/Combobox.js +0 -421
- package/src/Combobox/Combobox.stories.mdx +0 -191
- package/src/Combobox/ComboboxList.js +0 -22
- package/src/Combobox/ComboboxOption.js +0 -36
- package/src/Combobox/__tests__/Combobox.e2e.js +0 -133
- package/src/Combobox/__tests__/utils.spec.js +0 -94
- package/src/Combobox/components.js +0 -69
- package/src/Combobox/index.js +0 -2
- package/src/Combobox/utils.js +0 -97
- package/src/DatePicker/DatePicker.js +0 -132
- package/src/DatePicker/DatePicker.stories.mdx +0 -172
- package/src/DatePicker/DatePickerCalendar.js +0 -134
- package/src/DatePicker/DatePickerTd.js +0 -51
- package/src/DatePicker/DatePickerTh.js +0 -39
- package/src/DatePicker/__tests__/DatePicker.e2e.js +0 -94
- package/src/DatePicker/__tests__/DatePicker.spec.js +0 -40
- package/src/DatePicker/compareDates.js +0 -9
- package/src/DatePicker/components.js +0 -45
- package/src/DatePicker/index.js +0 -1
- package/src/DatePicker/utils/formatDate.js +0 -5
- package/src/DatePicker/utils/generateWeeks.js +0 -58
- package/src/DatePicker/utils/getDayOfWeek.js +0 -24
- package/src/DatePicker/utils/getMonths.js +0 -10
- package/src/DatePicker/utils/getYears.js +0 -19
- package/src/DatePicker/utils/index.js +0 -5
- package/src/DatePicker/utils/tests/generateWeeks.spec.js +0 -136
- package/src/DatePicker/utils/tests/getMonths.spec.js +0 -21
- package/src/DatePicker/utils/tests/getYears.spec.js +0 -21
- package/src/DateTimePicker/DateTimePicker.js +0 -151
- package/src/DateTimePicker/DateTimePicker.stories.mdx +0 -114
- package/src/DateTimePicker/DateTimePickerProps.js +0 -85
- package/src/DateTimePicker/__tests__/DateTimePicker.e2e.js +0 -103
- package/src/DateTimePicker/__tests__/DateTimePicker.spec.js +0 -89
- package/src/DateTimePicker/__tests__/__snapshots__/DateTimePicker.spec.js.snap +0 -448
- package/src/DateTimePicker/__tests__/parseDate.test.js +0 -10
- package/src/DateTimePicker/index.js +0 -1
- package/src/DateTimePicker/parseDate.js +0 -11
- package/src/Dialog/Dialog.js +0 -86
- package/src/Dialog/Dialog.stories.mdx +0 -78
- package/src/Dialog/DialogBody.js +0 -36
- package/src/Dialog/DialogFooter.js +0 -38
- package/src/Dialog/__tests__/Dialog.e2e.js +0 -20
- package/src/Dialog/__tests__/Dialog.spec.js +0 -28
- package/src/Dialog/index.js +0 -3
- package/src/DismissibleLayer/DismissibleLayer.js +0 -87
- package/src/DismissibleLayer/DismissibleLayer.stories.mdx +0 -50
- package/src/DismissibleLayer/__test__/DimissibleLayer.spec.js +0 -44
- package/src/DismissibleLayer/index.js +0 -1
- package/src/Divider/Divider.js +0 -26
- package/src/Divider/Divider.stories.mdx +0 -55
- package/src/Divider/__tests__/Divider.e2e.js +0 -23
- package/src/Divider/index.js +0 -1
- package/src/EmptyStateLayout/EmptyStateLayout.js +0 -48
- package/src/EmptyStateLayout/EmptyStateLayout.stories.mdx +0 -87
- package/src/EmptyStateLayout/__tests__/EmptyStateLayout.e2e.js +0 -31
- package/src/EmptyStateLayout/index.js +0 -1
- package/src/EmptyStateLayout/story-assets/Illo.js +0 -51
- package/src/Field/Field.js +0 -29
- package/src/Field/Field.stories.mdx +0 -237
- package/src/Field/FieldAction.js +0 -25
- package/src/Field/FieldContext.js +0 -4
- package/src/Field/FieldError.js +0 -17
- package/src/Field/FieldHint.js +0 -17
- package/src/Field/FieldInput.js +0 -129
- package/src/Field/FieldLabel.js +0 -50
- package/src/Field/__tests__/Field.e2e.js +0 -61
- package/src/Field/index.js +0 -7
- package/src/Flex/Flex.js +0 -26
- package/src/Flex/Flex.stories.mdx +0 -45
- package/src/Flex/FlexProps.js +0 -41
- package/src/Flex/__tests__/Flex.e2e.js +0 -23
- package/src/Flex/index.js +0 -1
- package/src/FocusTrap/ExampleComponent.js +0 -71
- package/src/FocusTrap/FocusTrap.js +0 -83
- package/src/FocusTrap/FocusTrap.stories.mdx +0 -32
- package/src/FocusTrap/__tests__/FocusTrap.e2e.js +0 -126
- package/src/FocusTrap/index.js +0 -1
- package/src/Grid/Grid.js +0 -30
- package/src/Grid/Grid.stories.mdx +0 -112
- package/src/Grid/GridContext.js +0 -5
- package/src/Grid/GridItem.js +0 -40
- package/src/Grid/__tests__/Grid.e2e.js +0 -23
- package/src/Grid/index.js +0 -2
- package/src/Icon/Icon.js +0 -27
- package/src/Icon/Icon.stories.mdx +0 -41
- package/src/Icon/__tests__/Icon.e2e.js +0 -21
- package/src/Icon/index.js +0 -1
- package/src/IconButton/IconButton.js +0 -175
- package/src/IconButton/IconButton.stories.mdx +0 -153
- package/src/IconButton/__tests__/IconButton.e2e.js +0 -57
- package/src/IconButton/index.js +0 -1
- package/src/KeyboardNavigable/KeyboardNavigable.js +0 -96
- package/src/KeyboardNavigable/index.js +0 -1
- package/src/Layout/ActionLayout.js +0 -40
- package/src/Layout/ContentLayout.js +0 -15
- package/src/Layout/GridLayout.js +0 -12
- package/src/Layout/GridLayout.stories.mdx +0 -36
- package/src/Layout/HeaderLayout.js +0 -170
- package/src/Layout/HeaderLayout.stories.mdx +0 -175
- package/src/Layout/Layout.js +0 -31
- package/src/Layout/Layout.stories.mdx +0 -240
- package/src/Layout/TwoColsLayout.js +0 -26
- package/src/Layout/TwoColsLayout.stories.mdx +0 -46
- package/src/Layout/__tests__/GridLayout.e2e.js +0 -23
- package/src/Layout/__tests__/HeaderLayout.e2e.js +0 -83
- package/src/Layout/__tests__/Layout.e2e.js +0 -23
- package/src/Layout/__tests__/TwoColsLayout.e2e.js +0 -23
- package/src/Layout/index.js +0 -6
- package/src/Link/Link.js +0 -105
- package/src/Link/Link.stories.mdx +0 -57
- package/src/Link/__tests__/Link.e2e.js +0 -23
- package/src/Link/index.js +0 -1
- package/src/LinkButton/LinkButton.js +0 -113
- package/src/LinkButton/LinkButton.stories.mdx +0 -153
- package/src/LinkButton/__tests__/LinkButton.e2e.js +0 -89
- package/src/LinkButton/index.js +0 -1
- package/src/LiveRegions/LiveRegions.js +0 -13
- package/src/LiveRegions/LiveRegions.stories.mdx +0 -76
- package/src/LiveRegions/StoryComponent.js +0 -26
- package/src/LiveRegions/__tests__/LiveRegions.spec.js +0 -200
- package/src/LiveRegions/constants.js +0 -5
- package/src/LiveRegions/index.js +0 -1
- package/src/LiveRegions/useNotifyAT.js +0 -39
- package/src/Loader/Loader.js +0 -40
- package/src/Loader/Loader.stories.mdx +0 -48
- package/src/Loader/__tests__/Loader.e2e.js +0 -23
- package/src/Loader/assets/loader.svg +0 -3
- package/src/Loader/index.js +0 -1
- package/src/Main/Main.js +0 -24
- package/src/Main/SkipToContent.js +0 -29
- package/src/Main/index.js +0 -2
- package/src/MainNav/MainNav.js +0 -31
- package/src/MainNav/MainNav.stories.mdx +0 -197
- package/src/MainNav/MainNavContext.js +0 -5
- package/src/MainNav/NavBrand.js +0 -76
- package/src/MainNav/NavCondense.js +0 -44
- package/src/MainNav/NavLink.js +0 -143
- package/src/MainNav/NavSection.js +0 -53
- package/src/MainNav/NavSections.js +0 -20
- package/src/MainNav/NavUser.js +0 -53
- package/src/MainNav/__tests__/MainNav.e2e.js +0 -23
- package/src/MainNav/index.js +0 -7
- package/src/MainNav/strapi-img.png +0 -0
- package/src/ModalLayout/ModalBody.js +0 -12
- package/src/ModalLayout/ModalContext.js +0 -4
- package/src/ModalLayout/ModalFooter.js +0 -37
- package/src/ModalLayout/ModalHeader.js +0 -35
- package/src/ModalLayout/ModalLayout.js +0 -58
- package/src/ModalLayout/ModalLayout.stories.mdx +0 -100
- package/src/ModalLayout/__tests__/ModalLayout.e2e.js +0 -19
- package/src/ModalLayout/__tests__/ModalLayout.spec.js +0 -596
- package/src/ModalLayout/index.js +0 -4
- package/src/NumberInput/NumberInput.js +0 -253
- package/src/NumberInput/NumberInput.stories.mdx +0 -319
- package/src/NumberInput/__tests__/NumberInput.e2e.js +0 -194
- package/src/NumberInput/index.js +0 -1
- package/src/Pagination/Pagination.js +0 -37
- package/src/Pagination/Pagination.stories.mdx +0 -97
- package/src/Pagination/PaginationContext.js +0 -4
- package/src/Pagination/__tests__/Pagination.e2e.js +0 -23
- package/src/Pagination/assets/next.svg +0 -3
- package/src/Pagination/assets/previous.svg +0 -3
- package/src/Pagination/components.js +0 -147
- package/src/Pagination/index.js +0 -2
- package/src/Popover/Popover.js +0 -167
- package/src/Popover/Popover.stories.mdx +0 -167
- package/src/Popover/__tests__/Popover.e2e.js +0 -48
- package/src/Popover/__tests__/Popover.spec.js +0 -153
- package/src/Popover/index.js +0 -1
- package/src/Portal/Portal.js +0 -25
- package/src/Portal/Portal.stories.mdx +0 -33
- package/src/Portal/__tests__/Portal.e2e.js +0 -23
- package/src/Portal/index.js +0 -1
- package/src/ProgressBar/ProgressBar.js +0 -57
- package/src/ProgressBar/ProgressBar.stories.mdx +0 -47
- package/src/ProgressBar/__tests__/ProgressBar.e2e.js +0 -41
- package/src/ProgressBar/index.js +0 -1
- package/src/Radio/Radio.js +0 -25
- package/src/Radio/Radio.stories.mdx +0 -66
- package/src/Radio/__tests__/Radio.e2e.js +0 -66
- package/src/Radio/__tests__/Radio.spec.js +0 -56
- package/src/Radio/index.js +0 -2
- package/src/RawTable/RawCell.js +0 -182
- package/src/RawTable/RawTable.js +0 -123
- package/src/RawTable/RawTable.stories.mdx +0 -258
- package/src/RawTable/RawTableContext.js +0 -10
- package/src/RawTable/RawTbody.js +0 -18
- package/src/RawTable/RawThead.js +0 -15
- package/src/RawTable/RawTr.js +0 -20
- package/src/RawTable/__tests__/RawTable.e2e.js +0 -344
- package/src/RawTable/focusFocusable.js +0 -7
- package/src/RawTable/index.js +0 -5
- package/src/Searchbar/SearchForm.js +0 -3
- package/src/Searchbar/Searchbar.js +0 -103
- package/src/Searchbar/Searchbar.stories.mdx +0 -115
- package/src/Searchbar/__tests__/Searchbar.e2e.js +0 -52
- package/src/Searchbar/index.js +0 -2
- package/src/Select/MultiSelectNested.js +0 -31
- package/src/Select/OptGroup.js +0 -27
- package/src/Select/Option.js +0 -123
- package/src/Select/Select.js +0 -318
- package/src/Select/Select.stories.mdx +0 -362
- package/src/Select/SelectButton.js +0 -77
- package/src/Select/SelectList.js +0 -113
- package/src/Select/SelectTags.js +0 -50
- package/src/Select/__tests__/Select.e2e.js +0 -238
- package/src/Select/__tests__/Select.spec.js +0 -1020
- package/src/Select/components.js +0 -51
- package/src/Select/constants.js +0 -6
- package/src/Select/hooks/useButtonRef.js +0 -31
- package/src/Select/hooks/useListRef.js +0 -35
- package/src/Select/index.js +0 -5
- package/src/Select/utils.js +0 -27
- package/src/SimpleMenu/SimpleMenu.js +0 -252
- package/src/SimpleMenu/SimpleMenu.stories.mdx +0 -220
- package/src/SimpleMenu/__tests__/SimpleMenu.e2e.js +0 -98
- package/src/SimpleMenu/__tests__/SimpleMenu.spec.js +0 -48
- package/src/SimpleMenu/index.js +0 -1
- package/src/SimpleMenu/utils.js +0 -12
- package/src/Stack/Stack.js +0 -75
- package/src/Stack/Stack.stories.mdx +0 -66
- package/src/Stack/__tests__/Stack.e2e.js +0 -43
- package/src/Stack/index.js +0 -1
- package/src/Status/Status.js +0 -76
- package/src/Status/Status.stories.mdx +0 -80
- package/src/Status/__tests__/Status.e2e.js +0 -23
- package/src/Status/__tests__/Status.spec.js +0 -48
- package/src/Status/index.js +0 -1
- package/src/SubNav/SubNav.js +0 -25
- package/src/SubNav/SubNav.stories.mdx +0 -234
- package/src/SubNav/SubNavHeader.js +0 -122
- package/src/SubNav/SubNavLink.js +0 -92
- package/src/SubNav/SubNavLinkSection.js +0 -75
- package/src/SubNav/SubNavSection.js +0 -75
- package/src/SubNav/SubNavSectionLabel.js +0 -67
- package/src/SubNav/SubNavSections.js +0 -20
- package/src/SubNav/__tests__/SubNav.e2e.js +0 -23
- package/src/SubNav/index.js +0 -6
- package/src/Switch/Switch.js +0 -97
- package/src/Switch/Switch.stories.mdx +0 -76
- package/src/Switch/__tests__/Switch.e2e.js +0 -33
- package/src/Switch/index.js +0 -1
- package/src/Table/Cell.js +0 -49
- package/src/Table/TFooter.js +0 -58
- package/src/Table/Table.js +0 -96
- package/src/Table/Table.stories.mdx +0 -330
- package/src/Table/Tbody.js +0 -13
- package/src/Table/Thead.js +0 -11
- package/src/Table/Tr.js +0 -28
- package/src/Table/__tests__/Table.e2e.js +0 -41
- package/src/Table/index.js +0 -6
- package/src/Tabs/TabGroup.js +0 -46
- package/src/Tabs/TabPanels.js +0 -32
- package/src/Tabs/Tabs.js +0 -227
- package/src/Tabs/Tabs.stories.mdx +0 -211
- package/src/Tabs/TabsContext.js +0 -5
- package/src/Tabs/__tests__/Tabs.e2e.js +0 -253
- package/src/Tabs/components.js +0 -66
- package/src/Tabs/index.js +0 -3
- package/src/Tabs/useTabsFocus.js +0 -28
- package/src/Tag/Tag.js +0 -72
- package/src/Tag/Tag.stories.mdx +0 -47
- package/src/Tag/__tests__/Tag.e2e.js +0 -37
- package/src/Tag/index.js +0 -1
- package/src/TextButton/TextButton.js +0 -102
- package/src/TextButton/TextButton.stories.mdx +0 -71
- package/src/TextButton/__tests__/TextButton.e2e.js +0 -23
- package/src/TextButton/index.js +0 -1
- package/src/TextInput/TextInput.js +0 -67
- package/src/TextInput/TextInput.stories.mdx +0 -228
- package/src/TextInput/__tests__/TextInput.e2e.js +0 -73
- package/src/TextInput/index.js +0 -1
- package/src/Textarea/Textarea.js +0 -74
- package/src/Textarea/Textarea.stories.mdx +0 -105
- package/src/Textarea/TextareaInput.js +0 -77
- package/src/Textarea/__tests__/Textarea.e2e.js +0 -37
- package/src/Textarea/index.js +0 -1
- package/src/ThemeProvider/ThemeProvider.js +0 -193
- package/src/ThemeProvider/hooks.js +0 -5
- package/src/ThemeProvider/index.js +0 -2
- package/src/TimePicker/TimePicker.js +0 -128
- package/src/TimePicker/TimePicker.stories.mdx +0 -171
- package/src/TimePicker/__tests__/TimePicker.e2e.js +0 -37
- package/src/TimePicker/__tests__/TimePicker.spec.js +0 -2099
- package/src/TimePicker/index.js +0 -1
- package/src/ToggleCheckbox/ToggleCheckbox.js +0 -169
- package/src/ToggleCheckbox/ToggleCheckbox.stories.mdx +0 -96
- package/src/ToggleCheckbox/__tests__/ToggleCheckbox.e2e.js +0 -59
- package/src/ToggleCheckbox/index.js +0 -1
- package/src/ToggleInput/ToggleInput.js +0 -89
- package/src/ToggleInput/ToggleInput.stories.mdx +0 -171
- package/src/ToggleInput/__tests__/ToggleInput.e2e.js +0 -109
- package/src/ToggleInput/index.js +0 -1
- package/src/Tooltip/Tooltip.js +0 -72
- package/src/Tooltip/Tooltip.stories.mdx +0 -127
- package/src/Tooltip/__tests__/Tooltip.e2e.js +0 -33
- package/src/Tooltip/__tests__/Tooltip.spec.js +0 -306
- package/src/Tooltip/hooks/useTooltipHandlers.js +0 -39
- package/src/Tooltip/hooks/useTooltipLayout.js +0 -21
- package/src/Tooltip/index.js +0 -1
- package/src/Tooltip/utils/__tests__/positionTooltip.spec.js +0 -114
- package/src/Tooltip/utils/positionTooltip.js +0 -83
- package/src/Typography/Typography.js +0 -24
- package/src/Typography/Typography.stories.mdx +0 -86
- package/src/Typography/TypographyProps.js +0 -30
- package/src/Typography/__tests__/Typography.e2e.js +0 -25
- package/src/Typography/__tests__/Typography.spec.js +0 -32
- package/src/Typography/__tests__/__snapshots__/Typography.spec.js.snap +0 -103
- package/src/Typography/constants.js +0 -9
- package/src/Typography/index.js +0 -1
- package/src/Typography/utils.js +0 -69
- package/src/VisuallyHidden/VisuallyHidden.js +0 -12
- package/src/VisuallyHidden/index.js +0 -1
- package/src/helpers/__tests__/useId.spec.js +0 -39
- package/src/helpers/escapeSelector.js +0 -1
- package/src/helpers/genId.js +0 -2
- package/src/helpers/getDefaultLocale.js +0 -33
- package/src/helpers/getFocusableNodes.js +0 -35
- package/src/helpers/handleResponsiveValues.js +0 -34
- package/src/helpers/keyboardKeys.js +0 -17
- package/src/helpers/setOpacity.js +0 -4
- package/src/helpers/setTabIndexOnFirstItem.js +0 -7
- package/src/helpers/useElementOnScreen.js +0 -27
- package/src/helpers/useId.js +0 -8
- package/src/helpers/useIntersection.js +0 -31
- package/src/helpers/useLockScroll.js +0 -14
- package/src/helpers/usePrevious.js +0 -9
- package/src/helpers/useResizeObserver.js +0 -22
- package/src/index.js +0 -65
- package/src/themes/ColorButton.js +0 -24
- package/src/themes/Theme.stories.mdx +0 -227
- package/src/themes/__tests__/extendTheme.spec.js +0 -119
- package/src/themes/colors.js +0 -46
- package/src/themes/common-theme.js +0 -19
- package/src/themes/darkTheme/dark-colors.js +0 -49
- package/src/themes/darkTheme/dark-shadows.js +0 -10
- package/src/themes/darkTheme/index.js +0 -9
- package/src/themes/extendTheme.js +0 -60
- package/src/themes/index.js +0 -4
- package/src/themes/lightTheme/index.js +0 -9
- package/src/themes/lightTheme/light-colors.js +0 -49
- package/src/themes/lightTheme/light-shadows.js +0 -10
- package/src/themes/sizes.js +0 -10
- package/src/themes/utils.js +0 -50
- package/src/v2/Breadcrumbs/Breadcrumbs.js +0 -45
- package/src/v2/Breadcrumbs/Breadcrumbs.stories.mdx +0 -129
- package/src/v2/Breadcrumbs/Crumb.js +0 -30
- package/src/v2/Breadcrumbs/CrumbLink.js +0 -33
- package/src/v2/Breadcrumbs/CrumbSimpleMenu.js +0 -30
- package/src/v2/Breadcrumbs/Divider.js +0 -16
- package/src/v2/Breadcrumbs/__tests__/Breadcrumbs.e2e.js +0 -47
- package/src/v2/Breadcrumbs/__tests__/Breadcrumbs.spec.js +0 -47
- package/src/v2/Breadcrumbs/index.js +0 -4
- package/src/v2/Link/Link.js +0 -79
- package/src/v2/Link/Link.stories.mdx +0 -113
- package/src/v2/Link/__tests__/Link.e2e.js +0 -23
- package/src/v2/Link/index.js +0 -1
- package/src/v2/LinkButton/LinkButton.js +0 -105
- package/src/v2/LinkButton/LinkButton.stories.mdx +0 -153
- package/src/v2/LinkButton/__tests__/LinkButton.e2e.js +0 -89
- package/src/v2/LinkButton/index.js +0 -1
- package/src/v2/MainNav/MainNav.js +0 -31
- package/src/v2/MainNav/MainNav.stories.mdx +0 -197
- package/src/v2/MainNav/MainNavContext.js +0 -5
- package/src/v2/MainNav/NavBrand.js +0 -79
- package/src/v2/MainNav/NavCondense.js +0 -44
- package/src/v2/MainNav/NavLink.js +0 -143
- package/src/v2/MainNav/NavSection.js +0 -53
- package/src/v2/MainNav/NavSections.js +0 -20
- package/src/v2/MainNav/NavUser.js +0 -53
- package/src/v2/MainNav/__tests__/MainNav.e2e.js +0 -23
- package/src/v2/MainNav/index.js +0 -7
- package/src/v2/MainNav/strapi-img.png +0 -0
- package/src/v2/Pagination/Pagination.js +0 -37
- package/src/v2/Pagination/Pagination.stories.mdx +0 -97
- package/src/v2/Pagination/PaginationContext.js +0 -4
- package/src/v2/Pagination/__tests__/Pagination.e2e.js +0 -23
- package/src/v2/Pagination/assets/next.svg +0 -3
- package/src/v2/Pagination/assets/previous.svg +0 -3
- package/src/v2/Pagination/components.js +0 -136
- package/src/v2/Pagination/index.js +0 -2
- package/src/v2/SimpleMenu/SimpleMenu.js +0 -252
- package/src/v2/SimpleMenu/SimpleMenu.stories.mdx +0 -220
- package/src/v2/SimpleMenu/__tests__/SimpleMenu.e2e.js +0 -100
- package/src/v2/SimpleMenu/__tests__/SimpleMenu.spec.js +0 -48
- package/src/v2/SimpleMenu/index.js +0 -1
- package/src/v2/SimpleMenu/utils.js +0 -12
- package/src/v2/SubNav/SubNav.js +0 -25
- package/src/v2/SubNav/SubNav.stories.mdx +0 -234
- package/src/v2/SubNav/SubNavHeader.js +0 -122
- package/src/v2/SubNav/SubNavLink.js +0 -95
- package/src/v2/SubNav/SubNavLinkSection.js +0 -75
- package/src/v2/SubNav/SubNavSection.js +0 -75
- package/src/v2/SubNav/SubNavSectionLabel.js +0 -67
- package/src/v2/SubNav/SubNavSections.js +0 -20
- package/src/v2/SubNav/__tests__/SubNav.e2e.js +0 -23
- package/src/v2/SubNav/index.js +0 -6
- package/src/v2/index.js +0 -7
- package/test-bundler.js +0 -35
- package/tests/check-exports.spec.js +0 -36
- package/webpack.config.js +0 -84
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
<!--- TextInput.stories.mdx --->
|
|
2
|
-
|
|
3
|
-
import { useState } from 'react';
|
|
4
|
-
import { Meta, Story, Canvas } from '@storybook/addon-docs';
|
|
5
|
-
import { ArgsTable } from '@storybook/addon-docs';
|
|
6
|
-
import Information from '@strapi/icons/Information';
|
|
7
|
-
import { TextInput } from './TextInput';
|
|
8
|
-
import { Box } from '../Box';
|
|
9
|
-
import { Tooltip } from '../Tooltip';
|
|
10
|
-
|
|
11
|
-
<Meta title="Design System/Components/TextInput" component={TextInput} />
|
|
12
|
-
|
|
13
|
-
# TextInput
|
|
14
|
-
|
|
15
|
-
TextInputs are inputs that allow users to add or edit text. They support several text formats including numbers.
|
|
16
|
-
|
|
17
|
-
**Best practices**
|
|
18
|
-
|
|
19
|
-
- Icons are always on the right side within the input (writing area) itself, never on the left side.
|
|
20
|
-
- Labels should be clear and concise. A few words only and without punctuation.
|
|
21
|
-
- Use description line as a help to give more details about the required action.
|
|
22
|
-
- Unless users need a lot of space to write their content, the input should take 1 column space instead of two.
|
|
23
|
-
- Make sure to use the placeholder feature whenever clarification are helpful on how to use the input.
|
|
24
|
-
- Make sure to use to define the input as required whenever it is absolutely mandatory.
|
|
25
|
-
- If a single line is not enough for the amount of text required, use TextArea component.
|
|
26
|
-
- The error message will replace the description line. The two of them cannot be on top of each other.
|
|
27
|
-
- The error message can be customized, make sure to write actionable information within it to help resolve an issue.
|
|
28
|
-
|
|
29
|
-
[View source](https://github.com/strapi/design-system/tree/main/packages/strapi-design-system/src/TextInput)
|
|
30
|
-
|
|
31
|
-
## Imports
|
|
32
|
-
|
|
33
|
-
```js
|
|
34
|
-
import { TextInput } from '@strapi/design-system/TextInput';
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## Usage
|
|
38
|
-
|
|
39
|
-
TextInputs are always found in forms. They give users the possibility to add or edit text.
|
|
40
|
-
|
|
41
|
-
### TextInput Base
|
|
42
|
-
|
|
43
|
-
In addition of plain text, TextInputs can also include a placeholder and a description line.
|
|
44
|
-
|
|
45
|
-
<Canvas>
|
|
46
|
-
<Story name="base">
|
|
47
|
-
{() => {
|
|
48
|
-
const [content, setContent] = useState('');
|
|
49
|
-
return (
|
|
50
|
-
<Box padding={10}>
|
|
51
|
-
<TextInput
|
|
52
|
-
placeholder="This is a content placeholder"
|
|
53
|
-
label="Content"
|
|
54
|
-
name="content"
|
|
55
|
-
hint="Description line"
|
|
56
|
-
error={content.length > 5 ? 'Content is too long' : undefined}
|
|
57
|
-
onChange={(e) => setContent(e.target.value)}
|
|
58
|
-
value={content}
|
|
59
|
-
labelAction={
|
|
60
|
-
<Tooltip description="Content of the tooltip">
|
|
61
|
-
<button
|
|
62
|
-
aria-label="Information about the email"
|
|
63
|
-
style={{ border: 'none', padding: 0, background: 'transparent' }}
|
|
64
|
-
>
|
|
65
|
-
<Information aria-hidden={true} />
|
|
66
|
-
</button>
|
|
67
|
-
</Tooltip>
|
|
68
|
-
}
|
|
69
|
-
/>
|
|
70
|
-
</Box>
|
|
71
|
-
);
|
|
72
|
-
}}
|
|
73
|
-
</Story>
|
|
74
|
-
</Canvas>
|
|
75
|
-
|
|
76
|
-
### Disabled TextInput
|
|
77
|
-
|
|
78
|
-
Depending on the permissions a user have or the status of an action, a TextInput can be unreachable or unavailable yet.
|
|
79
|
-
|
|
80
|
-
<Canvas>
|
|
81
|
-
<Story name="disabled">
|
|
82
|
-
<Box padding={10}>
|
|
83
|
-
<TextInput
|
|
84
|
-
placeholder="This is a content placeholder"
|
|
85
|
-
label="Content"
|
|
86
|
-
name="content"
|
|
87
|
-
hint="Description line"
|
|
88
|
-
onChange={() => {}}
|
|
89
|
-
value={'Disabled ontent'}
|
|
90
|
-
disabled
|
|
91
|
-
labelAction={
|
|
92
|
-
<Tooltip description="Content of the tooltip">
|
|
93
|
-
<button
|
|
94
|
-
aria-label="Information about the email"
|
|
95
|
-
style={{ border: 'none', padding: 0, background: 'transparent' }}
|
|
96
|
-
>
|
|
97
|
-
<Information aria-hidden={true} />
|
|
98
|
-
</button>
|
|
99
|
-
</Tooltip>
|
|
100
|
-
}
|
|
101
|
-
/>
|
|
102
|
-
</Box>
|
|
103
|
-
</Story>
|
|
104
|
-
</Canvas>
|
|
105
|
-
|
|
106
|
-
### TextInput size S
|
|
107
|
-
|
|
108
|
-
TODO
|
|
109
|
-
|
|
110
|
-
<Canvas>
|
|
111
|
-
<Story name="size S">
|
|
112
|
-
<Box padding={10}>
|
|
113
|
-
<TextInput
|
|
114
|
-
placeholder="This is a content placeholder"
|
|
115
|
-
label="Content"
|
|
116
|
-
name="content"
|
|
117
|
-
hint="Description line"
|
|
118
|
-
onChange={() => {}}
|
|
119
|
-
value={'size S input'}
|
|
120
|
-
size="S"
|
|
121
|
-
labelAction={
|
|
122
|
-
<Tooltip description="Content of the tooltip">
|
|
123
|
-
<button
|
|
124
|
-
aria-label="Information about the email"
|
|
125
|
-
style={{ border: 'none', padding: 0, background: 'transparent' }}
|
|
126
|
-
>
|
|
127
|
-
<Information aria-hidden={true} />
|
|
128
|
-
</button>
|
|
129
|
-
</Tooltip>
|
|
130
|
-
}
|
|
131
|
-
/>
|
|
132
|
-
</Box>
|
|
133
|
-
</Story>
|
|
134
|
-
</Canvas>
|
|
135
|
-
|
|
136
|
-
### TextInput with error
|
|
137
|
-
|
|
138
|
-
TextInputs can display error. The error message is customizable and replaced the description line below the writing area.
|
|
139
|
-
|
|
140
|
-
<Canvas>
|
|
141
|
-
<Story name="with error">
|
|
142
|
-
<Box padding={10}>
|
|
143
|
-
<TextInput
|
|
144
|
-
placeholder="This is a content placeholder"
|
|
145
|
-
label="Content"
|
|
146
|
-
name="content"
|
|
147
|
-
hint="Description line"
|
|
148
|
-
error={'Content is too long'}
|
|
149
|
-
onChange={() => {}}
|
|
150
|
-
value={'content'}
|
|
151
|
-
labelAction={
|
|
152
|
-
<Tooltip description="Content of the tooltip">
|
|
153
|
-
<button
|
|
154
|
-
aria-label="Information about the email"
|
|
155
|
-
style={{ border: 'none', padding: 0, background: 'transparent' }}
|
|
156
|
-
>
|
|
157
|
-
<Information aria-hidden={true} />
|
|
158
|
-
</button>
|
|
159
|
-
</Tooltip>
|
|
160
|
-
}
|
|
161
|
-
/>
|
|
162
|
-
</Box>
|
|
163
|
-
</Story>
|
|
164
|
-
</Canvas>
|
|
165
|
-
|
|
166
|
-
### Password TextInput
|
|
167
|
-
|
|
168
|
-
Password TextInputs are specific. They offer the possibility to have unreadable content. By clicking on the eye icon on the right side, it is possible to actually read the password.
|
|
169
|
-
|
|
170
|
-
<Canvas>
|
|
171
|
-
<Story name="password">
|
|
172
|
-
<Box padding={10}>
|
|
173
|
-
<TextInput
|
|
174
|
-
placeholder="This is a password placeholder"
|
|
175
|
-
type="password"
|
|
176
|
-
label="Password"
|
|
177
|
-
name="password"
|
|
178
|
-
hint="Description line"
|
|
179
|
-
onChange={() => {}}
|
|
180
|
-
value={'content'}
|
|
181
|
-
labelAction={
|
|
182
|
-
<Tooltip description="Content of the tooltip">
|
|
183
|
-
<button
|
|
184
|
-
aria-label="Information about the email"
|
|
185
|
-
style={{ border: 'none', padding: 0, background: 'transparent' }}
|
|
186
|
-
>
|
|
187
|
-
<Information aria-hidden={true} />
|
|
188
|
-
</button>
|
|
189
|
-
</Tooltip>
|
|
190
|
-
}
|
|
191
|
-
/>
|
|
192
|
-
</Box>
|
|
193
|
-
</Story>
|
|
194
|
-
</Canvas>
|
|
195
|
-
|
|
196
|
-
### TextInput without label
|
|
197
|
-
|
|
198
|
-
TextInputs can be used without a label.
|
|
199
|
-
|
|
200
|
-
<Canvas>
|
|
201
|
-
<Story name="withoutLabel">
|
|
202
|
-
<Box padding={10}>
|
|
203
|
-
<TextInput
|
|
204
|
-
placeholder="This is a password placeholder"
|
|
205
|
-
type="password"
|
|
206
|
-
aria-label="Password"
|
|
207
|
-
name="password"
|
|
208
|
-
hint="Description line"
|
|
209
|
-
onChange={() => {}}
|
|
210
|
-
value={'content'}
|
|
211
|
-
labelAction={
|
|
212
|
-
<Tooltip description="Content of the tooltip">
|
|
213
|
-
<button
|
|
214
|
-
aria-label="Information about the email"
|
|
215
|
-
style={{ border: 'none', padding: 0, background: 'transparent' }}
|
|
216
|
-
>
|
|
217
|
-
<Information aria-hidden={true} />
|
|
218
|
-
</button>
|
|
219
|
-
</Tooltip>
|
|
220
|
-
}
|
|
221
|
-
/>
|
|
222
|
-
</Box>
|
|
223
|
-
</Story>
|
|
224
|
-
</Canvas>
|
|
225
|
-
|
|
226
|
-
## Props
|
|
227
|
-
|
|
228
|
-
<ArgsTable of={TextInput} />
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { injectAxe, checkA11y } from 'axe-playwright';
|
|
2
|
-
|
|
3
|
-
import { test } from '@playwright/test';
|
|
4
|
-
|
|
5
|
-
test.describe.parallel('TextInput', () => {
|
|
6
|
-
test.describe('light mode', () => {
|
|
7
|
-
test.describe('base', () => {
|
|
8
|
-
test('triggers axe on the document', async ({ page }) => {
|
|
9
|
-
await page.goto('/iframe.html?id=design-system-components-textinput--base&viewMode=story');
|
|
10
|
-
await injectAxe(page);
|
|
11
|
-
await checkA11y(page);
|
|
12
|
-
});
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
test.describe('password', () => {
|
|
16
|
-
test('triggers axe on the document', async ({ page }) => {
|
|
17
|
-
await page.goto('/iframe.html?id=design-system-components-textinput--password&viewMode=story');
|
|
18
|
-
await injectAxe(page);
|
|
19
|
-
await checkA11y(page);
|
|
20
|
-
});
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
test.describe('disabled', () => {
|
|
24
|
-
test('triggers axe on the document', async ({ page }) => {
|
|
25
|
-
await page.goto('/iframe.html?id=design-system-components-textinput--disabled&viewMode=story');
|
|
26
|
-
await injectAxe(page);
|
|
27
|
-
await checkA11y(page);
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
test.describe('with error', () => {
|
|
32
|
-
test('triggers axe on the document', async ({ page }) => {
|
|
33
|
-
await page.goto('/iframe.html?id=design-system-components-textinput--with-error&viewMode=story');
|
|
34
|
-
await injectAxe(page);
|
|
35
|
-
await checkA11y(page);
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
test.describe('dark mode', () => {
|
|
41
|
-
test.describe('base', () => {
|
|
42
|
-
test('triggers axe on the document', async ({ page }) => {
|
|
43
|
-
await page.goto('/iframe.html?id=design-system-components-textinput--base&viewMode=story&theme=dark');
|
|
44
|
-
await injectAxe(page);
|
|
45
|
-
await checkA11y(page);
|
|
46
|
-
});
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
test.describe('password', () => {
|
|
50
|
-
test('triggers axe on the document', async ({ page }) => {
|
|
51
|
-
await page.goto('/iframe.html?id=design-system-components-textinput--password&viewMode=story&theme=dark');
|
|
52
|
-
await injectAxe(page);
|
|
53
|
-
await checkA11y(page);
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
test.describe('disabled', () => {
|
|
58
|
-
test('triggers axe on the document', async ({ page }) => {
|
|
59
|
-
await page.goto('/iframe.html?id=design-system-components-textinput--disabled&viewMode=story&theme=dark');
|
|
60
|
-
await injectAxe(page);
|
|
61
|
-
await checkA11y(page);
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
test.describe('with error', () => {
|
|
66
|
-
test('triggers axe on the document', async ({ page }) => {
|
|
67
|
-
await page.goto('/iframe.html?id=design-system-components-textinput--with-error&viewMode=story&theme=dark');
|
|
68
|
-
await injectAxe(page);
|
|
69
|
-
await checkA11y(page);
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
});
|
package/src/TextInput/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './TextInput';
|
package/src/Textarea/Textarea.js
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import PropTypes from 'prop-types';
|
|
3
|
-
import { Field, FieldLabel, FieldHint, FieldError } from '../Field';
|
|
4
|
-
import { TextareaInput } from './TextareaInput';
|
|
5
|
-
import { Stack } from '../Stack';
|
|
6
|
-
import { Flex } from '../Flex';
|
|
7
|
-
import styled from 'styled-components';
|
|
8
|
-
import { useId } from '../helpers/useId';
|
|
9
|
-
|
|
10
|
-
const TextareaWrapper = styled.div`
|
|
11
|
-
& textarea {
|
|
12
|
-
// TODO: remove when we'll have fonts in the theme
|
|
13
|
-
height: ${80 / 16}rem;
|
|
14
|
-
line-height: ${20 / 16}rem;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
& textarea::placeholder {
|
|
18
|
-
font-weight: 400;
|
|
19
|
-
font-size: ${14 / 16}rem;
|
|
20
|
-
line-height: 1.43;
|
|
21
|
-
color: ${({ theme }) => theme.colors.neutral500};
|
|
22
|
-
opacity: 1;
|
|
23
|
-
}
|
|
24
|
-
`;
|
|
25
|
-
|
|
26
|
-
export const Textarea = React.forwardRef(
|
|
27
|
-
({ name, hint, error, label, children, labelAction, id, required, ...props }, ref) => {
|
|
28
|
-
const generatedId = useId('textarea', id);
|
|
29
|
-
|
|
30
|
-
return (
|
|
31
|
-
<TextareaWrapper>
|
|
32
|
-
<Field name={name} hint={hint} error={error} id={generatedId}>
|
|
33
|
-
<Stack spacing={1}>
|
|
34
|
-
{label && (
|
|
35
|
-
<Flex>
|
|
36
|
-
<FieldLabel required={required} action={labelAction}>
|
|
37
|
-
{label}
|
|
38
|
-
</FieldLabel>
|
|
39
|
-
</Flex>
|
|
40
|
-
)}
|
|
41
|
-
<TextareaInput ref={ref} as="textarea" value={children} {...props} />
|
|
42
|
-
<FieldHint />
|
|
43
|
-
<FieldError />
|
|
44
|
-
</Stack>
|
|
45
|
-
</Field>
|
|
46
|
-
</TextareaWrapper>
|
|
47
|
-
);
|
|
48
|
-
},
|
|
49
|
-
);
|
|
50
|
-
|
|
51
|
-
Textarea.displayName = 'Textarea';
|
|
52
|
-
|
|
53
|
-
Textarea.defaultProps = {
|
|
54
|
-
'aria-label': undefined,
|
|
55
|
-
label: undefined,
|
|
56
|
-
labelAction: undefined,
|
|
57
|
-
error: undefined,
|
|
58
|
-
hint: undefined,
|
|
59
|
-
id: undefined,
|
|
60
|
-
children: '',
|
|
61
|
-
required: false,
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
Textarea.propTypes = {
|
|
65
|
-
'aria-label': PropTypes.string,
|
|
66
|
-
children: PropTypes.string,
|
|
67
|
-
error: PropTypes.string,
|
|
68
|
-
hint: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.arrayOf(PropTypes.node)]),
|
|
69
|
-
id: PropTypes.string,
|
|
70
|
-
label: PropTypes.string,
|
|
71
|
-
labelAction: PropTypes.element,
|
|
72
|
-
name: PropTypes.string.isRequired,
|
|
73
|
-
required: PropTypes.bool,
|
|
74
|
-
};
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
<!--- Textarea.stories.mdx --->
|
|
2
|
-
|
|
3
|
-
import { useState } from 'react';
|
|
4
|
-
import { Meta, Story, Canvas } from '@storybook/addon-docs';
|
|
5
|
-
import { ArgsTable } from '@storybook/addon-docs';
|
|
6
|
-
import Information from '@strapi/icons/Information';
|
|
7
|
-
import { Textarea } from './Textarea';
|
|
8
|
-
import { Tooltip } from '../Tooltip';
|
|
9
|
-
import { Box } from '../Box';
|
|
10
|
-
|
|
11
|
-
<Meta title="Design System/Components/Textarea" component={Textarea} />
|
|
12
|
-
|
|
13
|
-
# Textarea
|
|
14
|
-
|
|
15
|
-
TextAreas are inputs that allow users to add or edit text. They support long text formats.
|
|
16
|
-
|
|
17
|
-
**Best practices**
|
|
18
|
-
|
|
19
|
-
- Icons are always on the right side within the input (writing area) itself, never on the left side.
|
|
20
|
-
- Labels should be clear and concise. A few words only and without punctuation.
|
|
21
|
-
- Use description line as a help to give more details about the required action.
|
|
22
|
-
- Make sure to use the placeholder feature whenever clarification are helpful on how to use the input.
|
|
23
|
-
- Make sure to use to define the input as required whenever it is absolutely mandatory.
|
|
24
|
-
- The error message will replace the description line. The two of them cannot be on top of each other.
|
|
25
|
-
- The error message can be customized, make sure to write actionable information within it to help resolve an issue.
|
|
26
|
-
|
|
27
|
-
[View source](https://github.com/strapi/design-system/tree/main/packages/strapi-design-system/src/Textarea)
|
|
28
|
-
|
|
29
|
-
## Imports
|
|
30
|
-
|
|
31
|
-
```js
|
|
32
|
-
import { Textarea } from '@strapi/design-system/Textarea';
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## Usage
|
|
36
|
-
|
|
37
|
-
<Canvas>
|
|
38
|
-
<Story name="base">
|
|
39
|
-
{() => {
|
|
40
|
-
const [content, setContent] = useState('');
|
|
41
|
-
return (
|
|
42
|
-
<Box padding={10}>
|
|
43
|
-
<Textarea
|
|
44
|
-
placeholder="This is a content placeholder"
|
|
45
|
-
label="Content"
|
|
46
|
-
name="content"
|
|
47
|
-
hint="Description line"
|
|
48
|
-
error={content.length < 5 ? 'Content is too short' : undefined}
|
|
49
|
-
onChange={(e) => setContent(e.target.value)}
|
|
50
|
-
labelAction={
|
|
51
|
-
<Tooltip description="Content of the tooltip" position="right">
|
|
52
|
-
<button
|
|
53
|
-
aria-label="Information about the email"
|
|
54
|
-
style={{ border: 'none', padding: 0, background: 'transparent' }}
|
|
55
|
-
>
|
|
56
|
-
<Information aria-hidden={true} />
|
|
57
|
-
</button>
|
|
58
|
-
</Tooltip>
|
|
59
|
-
}
|
|
60
|
-
>
|
|
61
|
-
{content}
|
|
62
|
-
</Textarea>
|
|
63
|
-
</Box>
|
|
64
|
-
);
|
|
65
|
-
}}
|
|
66
|
-
</Story>
|
|
67
|
-
</Canvas>
|
|
68
|
-
|
|
69
|
-
## Disabled state
|
|
70
|
-
|
|
71
|
-
<Canvas>
|
|
72
|
-
<Story name="disabled">
|
|
73
|
-
{() => {
|
|
74
|
-
const [content, setContent] = useState('');
|
|
75
|
-
return (
|
|
76
|
-
<Box padding={10}>
|
|
77
|
-
<Textarea
|
|
78
|
-
placeholder="This is a content placeholder"
|
|
79
|
-
label="Content"
|
|
80
|
-
name="content"
|
|
81
|
-
hint="Description line"
|
|
82
|
-
disabled
|
|
83
|
-
onChange={(e) => setContent(e.target.value)}
|
|
84
|
-
labelAction={
|
|
85
|
-
<Tooltip description="Content of the tooltip" position="right">
|
|
86
|
-
<button
|
|
87
|
-
aria-label="Information about the email"
|
|
88
|
-
style={{ border: 'none', padding: 0, background: 'transparent' }}
|
|
89
|
-
>
|
|
90
|
-
<Information aria-hidden={true} />
|
|
91
|
-
</button>
|
|
92
|
-
</Tooltip>
|
|
93
|
-
}
|
|
94
|
-
>
|
|
95
|
-
{content}
|
|
96
|
-
</Textarea>
|
|
97
|
-
</Box>
|
|
98
|
-
);
|
|
99
|
-
}}
|
|
100
|
-
</Story>
|
|
101
|
-
</Canvas>
|
|
102
|
-
|
|
103
|
-
## Props
|
|
104
|
-
|
|
105
|
-
<ArgsTable of={Textarea} />
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import React, { forwardRef } from 'react';
|
|
2
|
-
import styled from 'styled-components';
|
|
3
|
-
import PropTypes from 'prop-types';
|
|
4
|
-
import { useField } from '../Field';
|
|
5
|
-
import { inputFocusStyle } from '../themes/utils';
|
|
6
|
-
|
|
7
|
-
const TextareaWrapper = styled.div`
|
|
8
|
-
border: 1px solid ${({ theme, hasError }) => (hasError ? theme.colors.danger600 : theme.colors.neutral200)};
|
|
9
|
-
border-radius: ${({ theme }) => theme.borderRadius};
|
|
10
|
-
|
|
11
|
-
padding-left: ${({ theme, hasLeftAction }) => (hasLeftAction ? 0 : theme.spaces[4])};
|
|
12
|
-
padding-right: ${({ theme, hasRightAction }) => (hasRightAction ? 0 : theme.spaces[4])};
|
|
13
|
-
padding-top: ${({ theme }) => `${theme.spaces[3]}`};
|
|
14
|
-
padding-bottom: ${({ theme }) => `${theme.spaces[3]}`};
|
|
15
|
-
|
|
16
|
-
background: ${({ theme, disabled }) => (disabled ? theme.colors.neutral150 : theme.colors.neutral0)};
|
|
17
|
-
${inputFocusStyle()}
|
|
18
|
-
`;
|
|
19
|
-
|
|
20
|
-
const Textarea = styled.textarea`
|
|
21
|
-
display: block;
|
|
22
|
-
width: 100%;
|
|
23
|
-
font-weight: 400;
|
|
24
|
-
font-size: ${14 / 16}rem;
|
|
25
|
-
border: none;
|
|
26
|
-
color: ${({ theme, disabled }) => (disabled ? theme.colors.neutral600 : theme.colors.neutral800)};
|
|
27
|
-
resize: none;
|
|
28
|
-
background: inherit;
|
|
29
|
-
|
|
30
|
-
::placeholder {
|
|
31
|
-
color: ${({ theme }) => theme.colors.neutral500};
|
|
32
|
-
opacity: 1;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
&:focus-within {
|
|
36
|
-
outline: none;
|
|
37
|
-
}
|
|
38
|
-
`;
|
|
39
|
-
|
|
40
|
-
export const TextareaInput = forwardRef(({ disabled, ...props }, ref) => {
|
|
41
|
-
const { id, error, hint, name } = useField();
|
|
42
|
-
|
|
43
|
-
let ariaDescription;
|
|
44
|
-
|
|
45
|
-
if (error) {
|
|
46
|
-
ariaDescription = `${id}-error`;
|
|
47
|
-
} else if (hint) {
|
|
48
|
-
ariaDescription = `${id}-hint`;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
const hasError = Boolean(error);
|
|
52
|
-
|
|
53
|
-
return (
|
|
54
|
-
<TextareaWrapper hasError={hasError} disabled={disabled}>
|
|
55
|
-
<Textarea
|
|
56
|
-
id={id}
|
|
57
|
-
name={name}
|
|
58
|
-
ref={ref}
|
|
59
|
-
aria-describedby={ariaDescription}
|
|
60
|
-
aria-invalid={hasError}
|
|
61
|
-
disabled={disabled}
|
|
62
|
-
hasError={hasError}
|
|
63
|
-
{...props}
|
|
64
|
-
/>
|
|
65
|
-
</TextareaWrapper>
|
|
66
|
-
);
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
TextareaInput.displayName = 'TextareaInput';
|
|
70
|
-
|
|
71
|
-
TextareaInput.defaultProps = {
|
|
72
|
-
disabled: false,
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
TextareaInput.propTypes = {
|
|
76
|
-
disabled: PropTypes.bool,
|
|
77
|
-
};
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { injectAxe, checkA11y } from 'axe-playwright';
|
|
2
|
-
|
|
3
|
-
import { test } from '@playwright/test';
|
|
4
|
-
|
|
5
|
-
test.describe.parallel('Textarea', () => {
|
|
6
|
-
test.describe('light mode', () => {
|
|
7
|
-
test('base A11y', async ({ page }) => {
|
|
8
|
-
// This is the URL of the Storybook Iframe
|
|
9
|
-
await page.goto('/iframe.html?id=design-system-components-textarea--base&viewMode=story');
|
|
10
|
-
await injectAxe(page);
|
|
11
|
-
await checkA11y(page);
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
test('disabled A11y', async ({ page }) => {
|
|
15
|
-
// This is the URL of the Storybook Iframe
|
|
16
|
-
await page.goto('/iframe.html?id=design-system-components-textarea--base&viewMode=story');
|
|
17
|
-
await injectAxe(page);
|
|
18
|
-
await checkA11y(page);
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
test.describe('dark mode', () => {
|
|
23
|
-
test('base A11y', async ({ page }) => {
|
|
24
|
-
// This is the URL of the Storybook Iframe
|
|
25
|
-
await page.goto('/iframe.html?id=design-system-components-textarea--disabled&viewMode=story&theme=dark');
|
|
26
|
-
await injectAxe(page);
|
|
27
|
-
await checkA11y(page);
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
test('disabled A11y', async ({ page }) => {
|
|
31
|
-
// This is the URL of the Storybook Iframe
|
|
32
|
-
await page.goto('/iframe.html?id=design-system-components-textarea--disabled&viewMode=story&theme=dark');
|
|
33
|
-
await injectAxe(page);
|
|
34
|
-
await checkA11y(page);
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
});
|
package/src/Textarea/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './Textarea';
|