@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,47 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { render } from '@testing-library/react';
|
|
3
|
-
import { ThemeProvider } from '../../../ThemeProvider';
|
|
4
|
-
import { lightTheme } from '../../../themes';
|
|
5
|
-
import { Breadcrumbs } from '../Breadcrumbs';
|
|
6
|
-
import { Crumb } from '../Crumb';
|
|
7
|
-
|
|
8
|
-
describe('Breadcrumb', () => {
|
|
9
|
-
it('should render only one crumb without any separator', async () => {
|
|
10
|
-
const { container } = render(
|
|
11
|
-
<ThemeProvider theme={lightTheme}>
|
|
12
|
-
<Breadcrumbs>
|
|
13
|
-
<Crumb>First</Crumb>
|
|
14
|
-
{undefined && <Crumb>Second</Crumb>}
|
|
15
|
-
</Breadcrumbs>
|
|
16
|
-
</ThemeProvider>,
|
|
17
|
-
);
|
|
18
|
-
|
|
19
|
-
const crumbList = container.querySelectorAll('li');
|
|
20
|
-
// The divider is a span as well as the crumb text.
|
|
21
|
-
// In this case, only one crumb should be rendered without any divider
|
|
22
|
-
const spanList = container.querySelectorAll('span');
|
|
23
|
-
|
|
24
|
-
expect(crumbList.length).toEqual(1);
|
|
25
|
-
expect(spanList.length).toEqual(1);
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
it('should render two crumbs with only one separator', async () => {
|
|
29
|
-
const { container } = render(
|
|
30
|
-
<ThemeProvider theme={lightTheme}>
|
|
31
|
-
<Breadcrumbs>
|
|
32
|
-
<Crumb>First</Crumb>
|
|
33
|
-
<Crumb>Second</Crumb>
|
|
34
|
-
</Breadcrumbs>
|
|
35
|
-
</ThemeProvider>,
|
|
36
|
-
);
|
|
37
|
-
|
|
38
|
-
const crumbList = container.querySelectorAll('li');
|
|
39
|
-
|
|
40
|
-
// The divider is a span as well as the crumb text which means:
|
|
41
|
-
// 2 spans for the crumb texts + 1 for the divider
|
|
42
|
-
const spanList = container.querySelectorAll('span');
|
|
43
|
-
|
|
44
|
-
expect(crumbList.length).toEqual(2);
|
|
45
|
-
expect(spanList.length).toEqual(3);
|
|
46
|
-
});
|
|
47
|
-
});
|
package/src/v2/Link/Link.js
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import PropTypes from 'prop-types';
|
|
3
|
-
import styled from 'styled-components';
|
|
4
|
-
import ExternalLink from '@strapi/icons/ExternalLink';
|
|
5
|
-
import { Typography } from '../../Typography';
|
|
6
|
-
import { Box } from '../../Box';
|
|
7
|
-
import { buttonFocusStyle } from '../../themes/utils';
|
|
8
|
-
import { BaseLink } from '../../BaseLink';
|
|
9
|
-
|
|
10
|
-
const LinkWrapper = styled(BaseLink)`
|
|
11
|
-
display: inline-flex;
|
|
12
|
-
align-items: center;
|
|
13
|
-
text-decoration: none;
|
|
14
|
-
pointer-events: ${({ disabled }) => (disabled ? 'none' : undefined)};
|
|
15
|
-
|
|
16
|
-
svg path {
|
|
17
|
-
fill: ${({ disabled, theme }) => (disabled ? theme.colors.neutral600 : theme.colors.primary600)};
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
svg {
|
|
21
|
-
font-size: ${10 / 16}rem;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
&:hover,
|
|
25
|
-
&:active {
|
|
26
|
-
color: ${({ theme }) => theme.colors.primary800};
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
${buttonFocusStyle};
|
|
30
|
-
`;
|
|
31
|
-
|
|
32
|
-
const IconWrapper = styled(Box)`
|
|
33
|
-
display: flex;
|
|
34
|
-
`;
|
|
35
|
-
|
|
36
|
-
export const Link = React.forwardRef(({ children, href, disabled, startIcon, endIcon, ...props }, ref) => {
|
|
37
|
-
return (
|
|
38
|
-
<LinkWrapper ref={ref} href={href} disabled={disabled} {...props}>
|
|
39
|
-
{startIcon && (
|
|
40
|
-
<IconWrapper as="span" aria-hidden={true} paddingRight={2}>
|
|
41
|
-
{startIcon}
|
|
42
|
-
</IconWrapper>
|
|
43
|
-
)}
|
|
44
|
-
|
|
45
|
-
<Typography textColor={disabled ? 'neutral600' : 'primary600'}>{children}</Typography>
|
|
46
|
-
|
|
47
|
-
{endIcon && (
|
|
48
|
-
<IconWrapper as="span" aria-hidden={true} paddingLeft={2}>
|
|
49
|
-
{endIcon}
|
|
50
|
-
</IconWrapper>
|
|
51
|
-
)}
|
|
52
|
-
|
|
53
|
-
{href && !endIcon && (
|
|
54
|
-
<IconWrapper as="span" aria-hidden={true} paddingLeft={2}>
|
|
55
|
-
<ExternalLink />
|
|
56
|
-
</IconWrapper>
|
|
57
|
-
)}
|
|
58
|
-
</LinkWrapper>
|
|
59
|
-
);
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
Link.displayName = 'Link';
|
|
63
|
-
|
|
64
|
-
Link.defaultProps = {
|
|
65
|
-
as: undefined,
|
|
66
|
-
href: undefined,
|
|
67
|
-
disabled: false,
|
|
68
|
-
startIcon: undefined,
|
|
69
|
-
endIcon: undefined,
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
Link.propTypes = {
|
|
73
|
-
as: PropTypes.elementType,
|
|
74
|
-
children: PropTypes.node.isRequired,
|
|
75
|
-
disabled: PropTypes.bool,
|
|
76
|
-
endIcon: PropTypes.element,
|
|
77
|
-
href: PropTypes.string,
|
|
78
|
-
startIcon: PropTypes.element,
|
|
79
|
-
};
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
<!--- Link.stories.mdx --->
|
|
2
|
-
|
|
3
|
-
import { Meta, Story, Canvas } from '@storybook/addon-docs';
|
|
4
|
-
import { ArgsTable } from '@storybook/addon-docs';
|
|
5
|
-
import { Link } from './Link';
|
|
6
|
-
import { Stack } from '../../Stack';
|
|
7
|
-
import Strapi from '@strapi/icons/Strapi';
|
|
8
|
-
|
|
9
|
-
<Meta title="Design System/Components/v2/Link" component={Link} />
|
|
10
|
-
|
|
11
|
-
# Link
|
|
12
|
-
|
|
13
|
-
Links are used to send users to another page or an anchor. They are used for external navigation.
|
|
14
|
-
|
|
15
|
-
**Best practices**
|
|
16
|
-
|
|
17
|
-
- Use TextButton component if an action needs to be triggered within the admin panel (ex: Opening a modal ).
|
|
18
|
-
- Clicking on a Link most of the time opens a new tab.
|
|
19
|
-
- Links should always be used with an icon. If it is an external link, use the ExternalLink icon accordingly.
|
|
20
|
-
- Links text should be concise and describe their purpose. Users need to know exactly what they are about to do.
|
|
21
|
-
- Use capital letters.
|
|
22
|
-
|
|
23
|
-
[View source](https://github.com/strapi/design-system/tree/main/packages/strapi-design-system/src/v2/Link)
|
|
24
|
-
|
|
25
|
-
## Imports
|
|
26
|
-
|
|
27
|
-
```js
|
|
28
|
-
import { Link } from '@strapi/design-system/v2/Link';
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## Usage
|
|
32
|
-
|
|
33
|
-
Links are used for external navigation. Moreover, they should be associated with an icon to indicate its external navigation purpose.
|
|
34
|
-
|
|
35
|
-
### Base
|
|
36
|
-
|
|
37
|
-
The simplest representation of the Link component.
|
|
38
|
-
|
|
39
|
-
<Canvas>
|
|
40
|
-
<Story name="base">
|
|
41
|
-
<Stack spacing={5}>
|
|
42
|
-
<Link isExternal href="https://strapi.io/">
|
|
43
|
-
External link
|
|
44
|
-
</Link>
|
|
45
|
-
</Stack>
|
|
46
|
-
</Story>
|
|
47
|
-
</Canvas>
|
|
48
|
-
|
|
49
|
-
### Disabled link
|
|
50
|
-
|
|
51
|
-
Depending on the permissions a user have or the status of an action, a link can be unreachable or unavailable yet.
|
|
52
|
-
|
|
53
|
-
<Canvas>
|
|
54
|
-
<Story name="disabled">
|
|
55
|
-
<Stack spacing={5}>
|
|
56
|
-
<Link isExternal href="https://strapi.io/" disabled>
|
|
57
|
-
Disabled link
|
|
58
|
-
</Link>
|
|
59
|
-
</Stack>
|
|
60
|
-
</Story>
|
|
61
|
-
</Canvas>
|
|
62
|
-
|
|
63
|
-
### Start & end icons
|
|
64
|
-
|
|
65
|
-
Display icons on the left or right side.
|
|
66
|
-
|
|
67
|
-
<Canvas>
|
|
68
|
-
<Story name="icons">
|
|
69
|
-
<Stack spacing={5}>
|
|
70
|
-
<div>
|
|
71
|
-
<Link isExternal href="https://strapi.io/" startIcon={<Strapi />}>
|
|
72
|
-
Strapi
|
|
73
|
-
</Link>
|
|
74
|
-
</div>
|
|
75
|
-
<div>
|
|
76
|
-
<Link isExternal href="https://strapi.io/" endIcon={<Strapi />}>
|
|
77
|
-
Strapi
|
|
78
|
-
</Link>
|
|
79
|
-
</div>
|
|
80
|
-
</Stack>
|
|
81
|
-
</Story>
|
|
82
|
-
</Canvas>
|
|
83
|
-
|
|
84
|
-
### Usage with other routing libraries
|
|
85
|
-
|
|
86
|
-
To use the Link component with a routing library (e.g. react-router-dom), you'll need to pass the `NavLink` component to the `as` prop in order to replace the default HTML anchor `<a />`.
|
|
87
|
-
You'll now be able to pass all `NavLink` props.
|
|
88
|
-
|
|
89
|
-
```jsx
|
|
90
|
-
import { Link } from '@strapi/design-system/Link';
|
|
91
|
-
import { NavLink } from 'react-router-dom';
|
|
92
|
-
|
|
93
|
-
<Link as={NavLink} to="/home">
|
|
94
|
-
Home
|
|
95
|
-
</Link>;
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
#### NextJS usage
|
|
99
|
-
|
|
100
|
-
For NextJS, you'll need to wrap the `Link` with the `NextLink` component
|
|
101
|
-
|
|
102
|
-
```jsx
|
|
103
|
-
import { Link } from '@strapi/design-system/Link';
|
|
104
|
-
import NextLink from 'next/link';
|
|
105
|
-
|
|
106
|
-
<NextLink href="/home" passHref>
|
|
107
|
-
<Link>Home</Link>
|
|
108
|
-
</NextLink>;
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
## Props
|
|
112
|
-
|
|
113
|
-
<ArgsTable of={Link} />
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { injectAxe, checkA11y } from 'axe-playwright';
|
|
2
|
-
|
|
3
|
-
import { test } from '@playwright/test';
|
|
4
|
-
|
|
5
|
-
test.describe.parallel('Link', () => {
|
|
6
|
-
test.describe('light mode', () => {
|
|
7
|
-
test('triggers axe on the document', async ({ page }) => {
|
|
8
|
-
// This is the URL of the Storybook Iframe
|
|
9
|
-
await page.goto('/iframe.html?id=design-system-components-v2-link--base&viewMode=story');
|
|
10
|
-
await injectAxe(page);
|
|
11
|
-
await checkA11y(page);
|
|
12
|
-
});
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
test.describe('dark mode', () => {
|
|
16
|
-
test('triggers axe on the document', async ({ page }) => {
|
|
17
|
-
// This is the URL of the Storybook Iframe
|
|
18
|
-
await page.goto('/iframe.html?id=design-system-components-v2-link--base&viewMode=story&theme=dark');
|
|
19
|
-
await injectAxe(page);
|
|
20
|
-
await checkA11y(page);
|
|
21
|
-
});
|
|
22
|
-
});
|
|
23
|
-
});
|
package/src/v2/Link/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './Link';
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import styled from 'styled-components';
|
|
3
|
-
import PropTypes from 'prop-types';
|
|
4
|
-
import { Typography } from '../../Typography';
|
|
5
|
-
import { Box } from '../../Box';
|
|
6
|
-
import { getDisabledStyle, getHoverStyle, getActiveStyle, getVariantStyle } from '../../Button/utils';
|
|
7
|
-
import { VARIANTS, BUTTON_SIZES } from '../../Button/constants';
|
|
8
|
-
import { BaseButtonWrapper } from '../../BaseButton';
|
|
9
|
-
import { BaseLink } from '../../BaseLink';
|
|
10
|
-
|
|
11
|
-
const LinkWrapper = styled(BaseButtonWrapper)`
|
|
12
|
-
padding: ${({ theme, size }) => `${size === 'S' ? theme.spaces[2] : '10px'} ${theme.spaces[4]}`};
|
|
13
|
-
background: ${({ theme }) => theme.colors.buttonPrimary600};
|
|
14
|
-
border: 1px solid ${({ theme }) => theme.colors.buttonPrimary600};
|
|
15
|
-
border-radius: ${({ theme }) => theme.borderRadius};
|
|
16
|
-
${Box} {
|
|
17
|
-
display: flex;
|
|
18
|
-
align-items: center;
|
|
19
|
-
}
|
|
20
|
-
${Typography} {
|
|
21
|
-
color: ${({ theme }) => theme.colors.buttonNeutral0};
|
|
22
|
-
}
|
|
23
|
-
&[aria-disabled='true'] {
|
|
24
|
-
${getDisabledStyle}
|
|
25
|
-
&:active {
|
|
26
|
-
${getDisabledStyle}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
&:hover {
|
|
30
|
-
${getHoverStyle}
|
|
31
|
-
}
|
|
32
|
-
&:active {
|
|
33
|
-
${getActiveStyle}
|
|
34
|
-
}
|
|
35
|
-
${getVariantStyle}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
Link specific properties
|
|
39
|
-
*/
|
|
40
|
-
display: inline-flex;
|
|
41
|
-
text-decoration: none;
|
|
42
|
-
pointer-events: ${({ disabled }) => (disabled ? 'none' : undefined)};
|
|
43
|
-
`;
|
|
44
|
-
|
|
45
|
-
export const LinkButton = React.forwardRef(
|
|
46
|
-
({ variant, startIcon, endIcon, disabled, children, size, as, ...props }, ref) => {
|
|
47
|
-
return (
|
|
48
|
-
<LinkWrapper ref={ref} aria-disabled={disabled} size={size} variant={variant} {...props} as={as || BaseLink}>
|
|
49
|
-
{startIcon && (
|
|
50
|
-
<Box aria-hidden={true} paddingRight={2}>
|
|
51
|
-
{startIcon}
|
|
52
|
-
</Box>
|
|
53
|
-
)}
|
|
54
|
-
|
|
55
|
-
{size === 'S' ? (
|
|
56
|
-
<Typography variant="pi" fontWeight="bold">
|
|
57
|
-
{children}
|
|
58
|
-
</Typography>
|
|
59
|
-
) : (
|
|
60
|
-
<Typography fontWeight="bold">{children}</Typography>
|
|
61
|
-
)}
|
|
62
|
-
|
|
63
|
-
{endIcon && (
|
|
64
|
-
<Box aria-hidden={true} paddingLeft={2}>
|
|
65
|
-
{endIcon}
|
|
66
|
-
</Box>
|
|
67
|
-
)}
|
|
68
|
-
</LinkWrapper>
|
|
69
|
-
);
|
|
70
|
-
},
|
|
71
|
-
);
|
|
72
|
-
|
|
73
|
-
LinkButton.displayName = 'LinkButton';
|
|
74
|
-
|
|
75
|
-
LinkButton.defaultProps = {
|
|
76
|
-
as: BaseLink,
|
|
77
|
-
disabled: false,
|
|
78
|
-
startIcon: undefined,
|
|
79
|
-
endIcon: undefined,
|
|
80
|
-
size: 'S',
|
|
81
|
-
variant: 'default',
|
|
82
|
-
onClick: undefined,
|
|
83
|
-
href: undefined,
|
|
84
|
-
to: undefined,
|
|
85
|
-
};
|
|
86
|
-
LinkButton.propTypes = {
|
|
87
|
-
as: PropTypes.elementType,
|
|
88
|
-
children: PropTypes.node.isRequired,
|
|
89
|
-
disabled: PropTypes.bool,
|
|
90
|
-
endIcon: PropTypes.element,
|
|
91
|
-
href: (props) => {
|
|
92
|
-
if (!props.disabled && !props.to && !props.href) {
|
|
93
|
-
return new Error('href must be defined');
|
|
94
|
-
}
|
|
95
|
-
},
|
|
96
|
-
onClick: PropTypes.func,
|
|
97
|
-
size: PropTypes.oneOf(BUTTON_SIZES),
|
|
98
|
-
startIcon: PropTypes.element,
|
|
99
|
-
to: (props) => {
|
|
100
|
-
if (!props.disabled && !props.href && !props.to) {
|
|
101
|
-
return new Error('to must be defined');
|
|
102
|
-
}
|
|
103
|
-
},
|
|
104
|
-
variant: PropTypes.oneOf(VARIANTS),
|
|
105
|
-
};
|
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
<!--- LinkButton.stories.mdx --->
|
|
2
|
-
|
|
3
|
-
import { Meta, Story, Canvas } from '@storybook/addon-docs';
|
|
4
|
-
import { ArgsTable } from '@storybook/addon-docs';
|
|
5
|
-
import Information from '@strapi/icons/Information';
|
|
6
|
-
import Write from '@strapi/icons/Write';
|
|
7
|
-
import { LinkButton } from './LinkButton';
|
|
8
|
-
import { Box } from '../../Box';
|
|
9
|
-
import { Flex } from '../../Flex';
|
|
10
|
-
|
|
11
|
-
<Meta title="Design System/Components/v2/LinkButton" component={LinkButton} />
|
|
12
|
-
|
|
13
|
-
# LinkButton
|
|
14
|
-
|
|
15
|
-
LinkButtons are a way to perform actions that links to a different page component that will stay within one page. They help interact with its content via a single click. According to their style, specific labels and icons, they help understand the most important actions to take.
|
|
16
|
-
|
|
17
|
-
The difference with the `Button` component will be that the action of the LinkButton redirects to a different page.
|
|
18
|
-
The difference with the `Link` is the style.
|
|
19
|
-
|
|
20
|
-
Best practices
|
|
21
|
-
|
|
22
|
-
- A link button should have a relevant and clear label.
|
|
23
|
-
- Be positioned in consistent locations in the interface.
|
|
24
|
-
- If there are no primary action on a screen yet, this might be the one to look for.
|
|
25
|
-
- Prefer to have not more than two buttons side to side.
|
|
26
|
-
- To navigate to another page in your browser (use Link component instead).
|
|
27
|
-
|
|
28
|
-
[View source](https://github.com/strapi/design-system/tree/main/packages/strapi-design-system/src/v2/LinkButton)
|
|
29
|
-
|
|
30
|
-
## Imports
|
|
31
|
-
|
|
32
|
-
```js
|
|
33
|
-
import { LinkButton } from '@strapi/design-system/v2/LinkButton';
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
## Usage
|
|
37
|
-
|
|
38
|
-
The most common LinkButton component used in the interface (primary action). It can have different variants and meaning.
|
|
39
|
-
|
|
40
|
-
Use the `to` parameter to redirect using the router's routes, `href` parameter for an external url.
|
|
41
|
-
|
|
42
|
-
<Canvas>
|
|
43
|
-
<Story name="base">
|
|
44
|
-
<Box paddingBottom={2}>
|
|
45
|
-
<LinkButton variant="default" isExternal href="https://strapi.io/">
|
|
46
|
-
Default
|
|
47
|
-
</LinkButton>
|
|
48
|
-
</Box>
|
|
49
|
-
</Story>
|
|
50
|
-
</Canvas>
|
|
51
|
-
|
|
52
|
-
### LinkButton sizes
|
|
53
|
-
|
|
54
|
-
Main actions usually use a L LinkButton (top of a screen, footer of a modal, ...). For subsidiary action, a S LinkButton suits more (filters, configure the view, ...).
|
|
55
|
-
|
|
56
|
-
Use the size prop to change the size of the button. You can set the value to S or L.
|
|
57
|
-
|
|
58
|
-
<Canvas>
|
|
59
|
-
<Story name="sizes">
|
|
60
|
-
<Flex>
|
|
61
|
-
<Box paddingRight={1}>
|
|
62
|
-
<LinkButton size="S" to="/">
|
|
63
|
-
Small
|
|
64
|
-
</LinkButton>
|
|
65
|
-
</Box>
|
|
66
|
-
<LinkButton size="L" to="/">
|
|
67
|
-
Large
|
|
68
|
-
</LinkButton>
|
|
69
|
-
</Flex>
|
|
70
|
-
</Story>
|
|
71
|
-
</Canvas>
|
|
72
|
-
|
|
73
|
-
### LinkButton variants
|
|
74
|
-
|
|
75
|
-
Use the variant prop to change the visual style of the LinkButton. You can set the value to default, secondary, tertiary, success, danger, success-light, or danger-light.
|
|
76
|
-
|
|
77
|
-
<Canvas>
|
|
78
|
-
<Story name="variants">
|
|
79
|
-
<Flex>
|
|
80
|
-
{['default', 'secondary', 'tertiary', 'success', 'danger', 'success-light', 'danger-light'].map((variant) => (
|
|
81
|
-
<Box key={variant} paddingRight={2}>
|
|
82
|
-
<LinkButton variant={variant} to="/">
|
|
83
|
-
{variant}
|
|
84
|
-
</LinkButton>
|
|
85
|
-
</Box>
|
|
86
|
-
))}
|
|
87
|
-
</Flex>
|
|
88
|
-
</Story>
|
|
89
|
-
</Canvas>
|
|
90
|
-
|
|
91
|
-
### LinkButton with icon
|
|
92
|
-
|
|
93
|
-
A LinkButton can be associated with an icon to give more impact. You can add start and end icons to the Button component using the startIcon and endIcon props respectively.
|
|
94
|
-
|
|
95
|
-
<Canvas>
|
|
96
|
-
<Story name="icons">
|
|
97
|
-
<Flex>
|
|
98
|
-
<Box paddingRight={1}>
|
|
99
|
-
<LinkButton startIcon={<Information />} to="/">
|
|
100
|
-
Information
|
|
101
|
-
</LinkButton>
|
|
102
|
-
</Box>
|
|
103
|
-
<LinkButton variant="secondary" endIcon={<Write />} to="/">
|
|
104
|
-
Write content
|
|
105
|
-
</LinkButton>
|
|
106
|
-
</Flex>
|
|
107
|
-
</Story>
|
|
108
|
-
</Canvas>
|
|
109
|
-
|
|
110
|
-
### LinkButton disabled
|
|
111
|
-
|
|
112
|
-
For all actions that cannot be performed yet, you can use the disabled state.
|
|
113
|
-
|
|
114
|
-
<Canvas>
|
|
115
|
-
<Story name="disabled">
|
|
116
|
-
<Box paddingRight={1}>
|
|
117
|
-
<LinkButton disabled to="/" startIcon={<Information />}>
|
|
118
|
-
Information
|
|
119
|
-
</LinkButton>
|
|
120
|
-
</Box>
|
|
121
|
-
</Story>
|
|
122
|
-
</Canvas>
|
|
123
|
-
|
|
124
|
-
### Usage with other routing libraries
|
|
125
|
-
|
|
126
|
-
To use the LinkButton component with a routing library (e.g. react-router-dom), you'll need to pass the `NavLink` component to the `as` prop in order to replace the default HTML anchor `<a />`.
|
|
127
|
-
You'll now be able to pass all `NavLink` props.
|
|
128
|
-
|
|
129
|
-
```jsx
|
|
130
|
-
import { LinkButton } from '@strapi/design-system/LinkButton';
|
|
131
|
-
import { NavLink } from 'react-router-dom';
|
|
132
|
-
|
|
133
|
-
<LinkButton as={NavLink} to="/home">
|
|
134
|
-
Home
|
|
135
|
-
</LinkButton>;
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
#### NextJS usage
|
|
139
|
-
|
|
140
|
-
For NextJS, you'll need to wrap the `LinkButton` with the `NextLink` component
|
|
141
|
-
|
|
142
|
-
```jsx
|
|
143
|
-
import { LinkButton } from '@strapi/design-system/LinkButton';
|
|
144
|
-
import NextLink from 'next/link';
|
|
145
|
-
|
|
146
|
-
<NextLink href="/home" passHref>
|
|
147
|
-
<LinkButton>Home</LinkButton>
|
|
148
|
-
</NextLink>;
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
## Props
|
|
152
|
-
|
|
153
|
-
<ArgsTable of={LinkButton} />
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { injectAxe, checkA11y } from 'axe-playwright';
|
|
2
|
-
|
|
3
|
-
import { test } from '@playwright/test';
|
|
4
|
-
|
|
5
|
-
test.describe.parallel('LinkButton', () => {
|
|
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-v2-linkbutton--base&viewMode=story');
|
|
10
|
-
await injectAxe(page);
|
|
11
|
-
await checkA11y(page);
|
|
12
|
-
});
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
test.describe('sizes', () => {
|
|
16
|
-
test('triggers axe on the document', async ({ page }) => {
|
|
17
|
-
await page.goto('/iframe.html?id=design-system-components-v2-linkbutton--sizes&viewMode=story');
|
|
18
|
-
await injectAxe(page);
|
|
19
|
-
await checkA11y(page);
|
|
20
|
-
});
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
test.describe('variants', () => {
|
|
24
|
-
test('triggers axe on the document', async ({ page }) => {
|
|
25
|
-
await page.goto('/iframe.html?id=design-system-components-v2-linkbutton--variants&viewMode=story');
|
|
26
|
-
await injectAxe(page);
|
|
27
|
-
await checkA11y(page);
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
test.describe('icons', () => {
|
|
32
|
-
test('triggers axe on the document', async ({ page }) => {
|
|
33
|
-
await page.goto('/iframe.html?id=design-system-components-v2-linkbutton--icons&viewMode=story');
|
|
34
|
-
await injectAxe(page);
|
|
35
|
-
await checkA11y(page);
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
test.describe('disabled', () => {
|
|
40
|
-
test('triggers axe on the document', async ({ page }) => {
|
|
41
|
-
await page.goto('/iframe.html?id=design-system-components-v2-linkbutton--disabled&viewMode=story');
|
|
42
|
-
await injectAxe(page);
|
|
43
|
-
await checkA11y(page);
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
test.describe('dark mode', () => {
|
|
49
|
-
test.describe('base', () => {
|
|
50
|
-
test('triggers axe on the document', async ({ page }) => {
|
|
51
|
-
await page.goto('/iframe.html?id=design-system-components-v2-linkbutton--base&viewMode=story&theme=dark');
|
|
52
|
-
await injectAxe(page);
|
|
53
|
-
await checkA11y(page);
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
test.describe('sizes', () => {
|
|
58
|
-
test('triggers axe on the document', async ({ page }) => {
|
|
59
|
-
await page.goto('/iframe.html?id=design-system-components-v2-linkbutton--sizes&viewMode=story&theme=dark');
|
|
60
|
-
await injectAxe(page);
|
|
61
|
-
await checkA11y(page);
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
test.describe('variants', () => {
|
|
66
|
-
test('triggers axe on the document', async ({ page }) => {
|
|
67
|
-
await page.goto('/iframe.html?id=design-system-components-v2-linkbutton--variants&viewMode=story&theme=dark');
|
|
68
|
-
await injectAxe(page);
|
|
69
|
-
await checkA11y(page);
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
test.describe('icons', () => {
|
|
74
|
-
test('triggers axe on the document', async ({ page }) => {
|
|
75
|
-
await page.goto('/iframe.html?id=design-system-components-v2-linkbutton--icons&viewMode=story&theme=dark');
|
|
76
|
-
await injectAxe(page);
|
|
77
|
-
await checkA11y(page);
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
test.describe('disabled', () => {
|
|
82
|
-
test('triggers axe on the document', async ({ page }) => {
|
|
83
|
-
await page.goto('/iframe.html?id=design-system-components-v2-linkbutton--disabled&viewMode=story&theme=dark');
|
|
84
|
-
await injectAxe(page);
|
|
85
|
-
await checkA11y(page);
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './LinkButton';
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import styled from 'styled-components';
|
|
3
|
-
import PropTypes from 'prop-types';
|
|
4
|
-
import { Grid } from '../../Grid';
|
|
5
|
-
import { MainNavContext } from './MainNavContext';
|
|
6
|
-
|
|
7
|
-
const MainNavWrapper = styled(Grid)`
|
|
8
|
-
width: ${({ condensed }) => (condensed ? 'max-content' : `${224 / 16}rem`)};
|
|
9
|
-
background: ${({ theme }) => theme.colors.neutral0};
|
|
10
|
-
position: sticky;
|
|
11
|
-
top: 0;
|
|
12
|
-
height: 100vh;
|
|
13
|
-
z-index: 2;
|
|
14
|
-
border-right: 1px solid ${({ theme }) => theme.colors.neutral150};
|
|
15
|
-
`;
|
|
16
|
-
|
|
17
|
-
export const MainNav = ({ condensed, ...props }) => {
|
|
18
|
-
return (
|
|
19
|
-
<MainNavContext.Provider value={condensed}>
|
|
20
|
-
<MainNavWrapper as="nav" condensed={condensed} {...props} />
|
|
21
|
-
</MainNavContext.Provider>
|
|
22
|
-
);
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
MainNav.defaultProps = {
|
|
26
|
-
condensed: false,
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
MainNav.propTypes = {
|
|
30
|
-
condensed: PropTypes.bool,
|
|
31
|
-
};
|