reshaped 3.8.0-canary.2 → 3.8.0-canary.20
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/dist/bundle.css +1 -1
- package/dist/bundle.d.ts +2 -1
- package/dist/bundle.js +11 -11
- package/dist/components/Accordion/AccordionControlled.js +1 -0
- package/dist/components/Actionable/Actionable.js +17 -3
- package/dist/components/Actionable/Actionable.module.css +1 -1
- package/dist/components/Actionable/Actionable.types.d.ts +15 -3
- package/dist/components/Actionable/tests/Actionable.stories.d.ts +13 -1
- package/dist/components/Actionable/tests/Actionable.stories.js +127 -7
- package/dist/components/Alert/tests/Alert.stories.d.ts +6 -5
- package/dist/components/Alert/tests/Alert.stories.js +15 -2
- package/dist/components/Autocomplete/Autocomplete.js +2 -2
- package/dist/components/Autocomplete/Autocomplete.types.d.ts +1 -1
- package/dist/components/Badge/Badge.module.css +1 -1
- package/dist/components/Badge/tests/Badge.stories.d.ts +5 -0
- package/dist/components/Badge/tests/Badge.stories.js +34 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.js +1 -0
- package/dist/components/Breadcrumbs/tests/Breadcrumbs.stories.d.ts +8 -4
- package/dist/components/Breadcrumbs/tests/Breadcrumbs.stories.js +57 -1
- package/dist/components/Button/Button.js +2 -2
- package/dist/components/Button/Button.module.css +1 -1
- package/dist/components/Button/Button.types.d.ts +1 -1
- package/dist/components/Button/tests/Button.stories.d.ts +54 -12
- package/dist/components/Button/tests/Button.stories.js +725 -588
- package/dist/components/Calendar/CalendarMonth.js +1 -0
- package/dist/components/Card/Card.d.ts +1 -1
- package/dist/components/Card/Card.module.css +1 -1
- package/dist/components/Card/tests/Card.stories.d.ts +29 -7
- package/dist/components/Card/tests/Card.stories.js +110 -65
- package/dist/components/Carousel/Carousel.js +1 -0
- package/dist/components/Carousel/Carousel.module.css +1 -1
- package/dist/components/Checkbox/Checkbox.module.css +1 -1
- package/dist/components/Checkbox/tests/Checkbox.stories.d.ts +20 -4
- package/dist/components/Checkbox/tests/Checkbox.stories.js +150 -79
- package/dist/components/CheckboxGroup/tests/CheckboxGroup.stories.d.ts +9 -2
- package/dist/components/CheckboxGroup/tests/CheckboxGroup.stories.js +67 -35
- package/dist/components/Container/tests/Container.stories.d.ts +2 -0
- package/dist/components/Container/tests/Container.stories.js +14 -0
- package/dist/components/ContextMenu/tests/ContextMenu.stories.d.ts +10 -1
- package/dist/components/ContextMenu/tests/ContextMenu.stories.js +57 -13
- package/dist/components/Dismissible/tests/Dismissible.stories.d.ts +5 -0
- package/dist/components/Dismissible/tests/Dismissible.stories.js +30 -1
- package/dist/components/Divider/tests/Divider.stories.d.ts +8 -3
- package/dist/components/Divider/tests/Divider.stories.js +71 -41
- package/dist/components/DropdownMenu/DropdownMenu.js +4 -4
- package/dist/components/DropdownMenu/DropdownMenu.types.d.ts +2 -2
- package/dist/components/DropdownMenu/tests/DropdownMenu.stories.d.ts +35 -6
- package/dist/components/DropdownMenu/tests/DropdownMenu.stories.js +222 -115
- package/dist/components/FileUpload/FileUpload.module.css +1 -1
- package/dist/components/Flyout/Flyout.module.css +1 -1
- package/dist/components/Flyout/Flyout.types.d.ts +7 -7
- package/dist/components/Flyout/FlyoutContent.js +4 -1
- package/dist/components/Flyout/FlyoutControlled.js +10 -3
- package/dist/components/Flyout/index.d.ts +1 -1
- package/dist/components/Flyout/tests/Flyout.stories.d.ts +8 -0
- package/dist/components/Flyout/tests/Flyout.stories.js +81 -33
- package/dist/components/Flyout/useFlyout.d.ts +1 -7
- package/dist/components/Flyout/useFlyout.js +5 -1
- package/dist/components/Flyout/utilities/calculatePosition.d.ts +3 -2
- package/dist/components/Flyout/utilities/calculatePosition.js +47 -22
- package/dist/components/Flyout/utilities/flyout.js +3 -2
- package/dist/components/Flyout/utilities/getPositionFallbacks.js +3 -3
- package/dist/components/Flyout/utilities/isFullyVisible.d.ts +0 -2
- package/dist/components/Flyout/utilities/isFullyVisible.js +5 -7
- package/dist/components/FormControl/FormControl.context.d.ts +1 -1
- package/dist/components/FormControl/tests/FormControl.stories.d.ts +2 -0
- package/dist/components/FormControl/tests/FormControl.stories.js +35 -0
- package/dist/components/Hidden/tests/Hidden.stories.d.ts +2 -0
- package/dist/components/Hidden/tests/Hidden.stories.js +9 -0
- package/dist/components/HiddenVisually/tests/HiddenVisually.stories.d.ts +2 -0
- package/dist/components/HiddenVisually/tests/HiddenVisually.stories.js +9 -0
- package/dist/components/Hotkey/tests/Hotkey.stories.d.ts +2 -0
- package/dist/components/Hotkey/tests/Hotkey.stories.js +15 -0
- package/dist/components/Icon/Icon.js +2 -2
- package/dist/components/Icon/Icon.types.d.ts +1 -1
- package/dist/components/Icon/tests/Icon.stories.d.ts +3 -0
- package/dist/components/Icon/tests/Icon.stories.js +29 -1
- package/dist/components/Link/Link.d.ts +1 -1
- package/dist/components/Link/Link.js +2 -2
- package/dist/components/Link/Link.types.d.ts +1 -1
- package/dist/components/Link/tests/Link.stories.d.ts +29 -6
- package/dist/components/Link/tests/Link.stories.js +141 -58
- package/dist/components/Loader/tests/Loader.stories.d.ts +11 -2
- package/dist/components/Loader/tests/Loader.stories.js +52 -25
- package/dist/components/MenuItem/MenuItem.js +2 -2
- package/dist/components/MenuItem/MenuItem.module.css +1 -1
- package/dist/components/MenuItem/MenuItem.types.d.ts +1 -1
- package/dist/components/MenuItem/tests/MenuItem.stories.d.ts +37 -7
- package/dist/components/MenuItem/tests/MenuItem.stories.js +218 -112
- package/dist/components/Modal/Modal.js +1 -1
- package/dist/components/Modal/Modal.module.css +1 -1
- package/dist/components/Modal/tests/Modal.stories.d.ts +49 -10
- package/dist/components/Modal/tests/Modal.stories.js +350 -210
- package/dist/components/Overlay/Overlay.js +2 -1
- package/dist/components/Overlay/tests/Overlay.stories.d.ts +15 -1
- package/dist/components/Overlay/tests/Overlay.stories.js +135 -1
- package/dist/components/Pagination/tests/Pagination.stories.d.ts +14 -1
- package/dist/components/Pagination/tests/Pagination.stories.js +93 -15
- package/dist/components/PinField/tests/PinField.stories.d.ts +1 -1
- package/dist/components/PinField/tests/PinField.stories.js +1 -1
- package/dist/components/Popover/Popover.js +2 -2
- package/dist/components/Popover/Popover.module.css +1 -1
- package/dist/components/Popover/Popover.types.d.ts +3 -1
- package/dist/components/Progress/tests/Progress.stories.d.ts +19 -4
- package/dist/components/Progress/tests/Progress.stories.js +85 -49
- package/dist/components/Radio/Radio.module.css +1 -1
- package/dist/components/Radio/tests/Radio.stories.d.ts +25 -4
- package/dist/components/Radio/tests/Radio.stories.js +147 -65
- package/dist/components/RadioGroup/tests/RadioGroup.stories.d.ts +9 -2
- package/dist/components/RadioGroup/tests/RadioGroup.stories.js +64 -38
- package/dist/components/Reshaped/Reshaped.css +1 -1
- package/dist/components/Scrim/tests/Scrim.stories.d.ts +10 -2
- package/dist/components/Scrim/tests/Scrim.stories.js +51 -31
- package/dist/components/ScrollArea/ScrollArea.module.css +1 -1
- package/dist/components/Select/Select.d.ts +8 -1
- package/dist/components/Select/Select.js +22 -48
- package/dist/components/Select/Select.module.css +1 -1
- package/dist/components/Select/Select.types.d.ts +83 -38
- package/dist/components/Select/SelectCustom.d.ts +3 -0
- package/dist/components/Select/SelectCustom.js +12 -0
- package/dist/components/Select/SelectCustomControlled.d.ts +4 -0
- package/dist/components/Select/SelectCustomControlled.js +105 -0
- package/dist/components/Select/SelectCustomUncontrolled.d.ts +4 -0
- package/dist/components/Select/SelectCustomUncontrolled.js +18 -0
- package/dist/components/Select/SelectEndContent.d.ts +3 -0
- package/dist/components/Select/SelectEndContent.js +12 -0
- package/dist/components/Select/SelectNative.d.ts +4 -0
- package/dist/components/Select/SelectNative.js +29 -0
- package/dist/components/Select/SelectOption.d.ts +4 -0
- package/dist/components/Select/SelectOption.js +13 -0
- package/dist/components/Select/SelectOptionGroup.d.ts +4 -0
- package/dist/components/Select/SelectOptionGroup.js +9 -0
- package/dist/components/Select/SelectRoot.d.ts +4 -0
- package/dist/components/Select/SelectRoot.js +21 -0
- package/dist/components/Select/SelectStartContent.d.ts +3 -0
- package/dist/components/Select/SelectStartContent.js +20 -0
- package/dist/components/Select/SelectTrigger.d.ts +4 -0
- package/dist/components/Select/SelectTrigger.js +16 -0
- package/dist/components/Select/tests/Select.stories.d.ts +38 -10
- package/dist/components/Select/tests/Select.stories.js +504 -175
- package/dist/components/Skeleton/tests/Skeleton.stories.d.ts +10 -2
- package/dist/components/Skeleton/tests/Skeleton.stories.js +46 -28
- package/dist/components/Slider/Slider.module.css +1 -1
- package/dist/components/Stepper/Stepper.js +2 -2
- package/dist/components/Stepper/Stepper.types.d.ts +2 -0
- package/dist/components/Stepper/tests/Stepper.stories.d.ts +18 -3
- package/dist/components/Stepper/tests/Stepper.stories.js +99 -47
- package/dist/components/Switch/Switch.module.css +1 -1
- package/dist/components/Switch/tests/Switch.stories.d.ts +10 -2
- package/dist/components/Switch/tests/Switch.stories.js +77 -23
- package/dist/components/Switch/tests/Switch.test.stories.d.ts +0 -10
- package/dist/components/Switch/tests/Switch.test.stories.js +0 -68
- package/dist/components/Table/Table.js +5 -3
- package/dist/components/Table/Table.module.css +1 -1
- package/dist/components/Table/tests/Table.stories.d.ts +25 -5
- package/dist/components/Table/tests/Table.stories.js +274 -177
- package/dist/components/Tabs/Tabs.module.css +1 -1
- package/dist/components/Tabs/TabsControlled.js +1 -0
- package/dist/components/Tabs/TabsList.js +3 -20
- package/dist/components/Text/Text.module.css +1 -1
- package/dist/components/TextArea/TextArea.module.css +1 -1
- package/dist/components/TextArea/tests/TextArea.stories.d.ts +41 -9
- package/dist/components/TextArea/tests/TextArea.stories.js +179 -93
- package/dist/components/TextField/TextField.js +11 -3
- package/dist/components/TextField/TextField.module.css +1 -1
- package/dist/components/TextField/TextField.types.d.ts +5 -1
- package/dist/components/TextField/tests/TextField.stories.d.ts +41 -11
- package/dist/components/TextField/tests/TextField.stories.js +209 -129
- package/dist/components/Theme/Theme.module.css +1 -1
- package/dist/components/Timeline/Timeline.js +2 -2
- package/dist/components/Timeline/tests/Timeline.stories.d.ts +10 -2
- package/dist/components/Timeline/tests/Timeline.stories.js +69 -45
- package/dist/components/Toast/ToastContainer.js +1 -0
- package/dist/components/Toast/ToastRegion.js +1 -0
- package/dist/components/Toast/tests/Toast.stories.d.ts +32 -8
- package/dist/components/Toast/tests/Toast.stories.js +111 -37
- package/dist/components/ToggleButton/ToggleButton.types.d.ts +5 -1
- package/dist/components/ToggleButton/ToggleButtonControlled.js +9 -2
- package/dist/components/ToggleButton/tests/ToggleButton.stories.d.ts +4 -0
- package/dist/components/ToggleButton/tests/ToggleButton.stories.js +10 -0
- package/dist/components/ToggleButtonGroup/ToggleButtonGroup.types.d.ts +10 -0
- package/dist/components/ToggleButtonGroup/ToggleButtonGroupControlled.js +6 -41
- package/dist/components/ToggleButtonGroup/tests/ToggleButtonGroup.stories.d.ts +1 -0
- package/dist/components/ToggleButtonGroup/tests/ToggleButtonGroup.stories.js +17 -0
- package/dist/components/Tooltip/Tooltip.js +1 -1
- package/dist/components/Tooltip/Tooltip.types.d.ts +2 -2
- package/dist/components/Tooltip/tests/Tooltip.stories.d.ts +18 -4
- package/dist/components/Tooltip/tests/Tooltip.stories.js +139 -107
- package/dist/components/View/View.js +11 -4
- package/dist/components/View/View.types.d.ts +1 -1
- package/dist/components/View/tests/View.stories.d.ts +4 -0
- package/dist/components/View/tests/View.stories.js +39 -0
- package/dist/components/_private/Expandable/Expandable.js +3 -1
- package/dist/components/_private/Portal/Portal.js +4 -1
- package/dist/hooks/_private/useIsDismissible.d.ts +1 -0
- package/dist/hooks/_private/useIsDismissible.js +6 -6
- package/dist/hooks/_private/usePrevious.js +1 -0
- package/dist/hooks/tests/useDrag.stories.js +1 -1
- package/dist/{components/Toast/tests/Toast.test.stories.d.ts → hooks/tests/useKeyboardArrowNavigation.stories.d.ts} +4 -5
- package/dist/hooks/tests/useKeyboardArrowNavigation.stories.js +128 -0
- package/dist/hooks/useKeyboardArrowNavigation.d.ts +9 -0
- package/dist/hooks/useKeyboardArrowNavigation.js +62 -0
- package/dist/hooks/useOnClickOutside.js +0 -2
- package/dist/hooks/useScrollLock.js +5 -3
- package/dist/index.d.ts +2 -1
- package/dist/index.js +1 -0
- package/dist/styles/resolvers/align/align.css +1 -1
- package/dist/styles/resolvers/aspectRatio/aspectRatio.css +1 -1
- package/dist/styles/resolvers/bleed/bleed.module.css +1 -1
- package/dist/styles/resolvers/justify/justify.css +1 -1
- package/dist/styles/resolvers/maxHeight/maxHeight.module.css +1 -1
- package/dist/styles/resolvers/maxWidth/maxWidth.module.css +1 -1
- package/dist/styles/resolvers/minHeight/minHeight.module.css +1 -1
- package/dist/styles/resolvers/minWidth/minWidth.module.css +1 -1
- package/dist/styles/resolvers/position/position.css +1 -1
- package/dist/styles/resolvers/textAlign/textAlign.css +1 -1
- package/dist/styles/resolvers/width/width.module.css +1 -1
- package/dist/utilities/a11y/focus.d.ts +21 -4
- package/dist/utilities/a11y/focus.js +4 -3
- package/dist/utilities/scroll/disable.js +2 -2
- package/dist/utilities/scroll/index.d.ts +1 -1
- package/dist/utilities/scroll/index.js +1 -1
- package/dist/utilities/scroll/lock.d.ts +1 -2
- package/dist/utilities/scroll/lock.js +16 -15
- package/dist/utilities/scroll/lockSafari.js +1 -0
- package/package.json +195 -201
- package/CHANGELOG-extra.md +0 -3
- package/CHANGELOG.md +0 -57
- package/dist/components/Actionable/tests/Actionable.test.stories.d.ts +0 -32
- package/dist/components/Actionable/tests/Actionable.test.stories.js +0 -130
- package/dist/components/Alert/tests/Alert.test.stories.d.ts +0 -15
- package/dist/components/Alert/tests/Alert.test.stories.js +0 -26
- package/dist/components/Badge/tests/Badge.test.stories.d.ts +0 -20
- package/dist/components/Badge/tests/Badge.test.stories.js +0 -46
- package/dist/components/Breadcrumbs/tests/Breadcrumbs.test.stories.d.ts +0 -23
- package/dist/components/Breadcrumbs/tests/Breadcrumbs.test.stories.js +0 -76
- package/dist/components/Button/tests/Button.test.stories.d.ts +0 -27
- package/dist/components/Button/tests/Button.test.stories.js +0 -112
- package/dist/components/Card/tests/Card.test.stories.d.ts +0 -35
- package/dist/components/Card/tests/Card.test.stories.js +0 -54
- package/dist/components/Checkbox/tests/Checkbox.test.stories.d.ts +0 -25
- package/dist/components/Checkbox/tests/Checkbox.test.stories.js +0 -104
- package/dist/components/CheckboxGroup/tests/CheckboxGroup.test.stories.d.ts +0 -22
- package/dist/components/CheckboxGroup/tests/CheckboxGroup.test.stories.js +0 -78
- package/dist/components/Container/tests/Container.test.stories.d.ts +0 -15
- package/dist/components/Container/tests/Container.test.stories.js +0 -26
- package/dist/components/ContextMenu/tests/ContextMenu.test.stories.d.ts +0 -25
- package/dist/components/ContextMenu/tests/ContextMenu.test.stories.js +0 -53
- package/dist/components/Dismissible/tests/Dismissible.test.stories.d.ts +0 -19
- package/dist/components/Dismissible/tests/Dismissible.test.stories.js +0 -42
- package/dist/components/Divider/tests/Divider.test.stories.d.ts +0 -18
- package/dist/components/Divider/tests/Divider.test.stories.js +0 -47
- package/dist/components/DropdownMenu/tests/DropdownMenu.test.stories.d.ts +0 -36
- package/dist/components/DropdownMenu/tests/DropdownMenu.test.stories.js +0 -117
- package/dist/components/FormControl/tests/FormControl.test.stories.d.ts +0 -20
- package/dist/components/FormControl/tests/FormControl.test.stories.js +0 -49
- package/dist/components/Hidden/tests/Hidden.test.stories.d.ts +0 -15
- package/dist/components/Hidden/tests/Hidden.test.stories.js +0 -20
- package/dist/components/HiddenVisually/tests/HiddenVisually.test.stories.d.ts +0 -15
- package/dist/components/HiddenVisually/tests/HiddenVisually.test.stories.js +0 -20
- package/dist/components/Hotkey/tests/Hotkey.test.stories.d.ts +0 -15
- package/dist/components/Hotkey/tests/Hotkey.test.stories.js +0 -26
- package/dist/components/Icon/tests/Icon.test.stories.d.ts +0 -16
- package/dist/components/Icon/tests/Icon.test.stories.js +0 -35
- package/dist/components/Link/tests/Link.test.stories.d.ts +0 -29
- package/dist/components/Link/tests/Link.test.stories.js +0 -87
- package/dist/components/Loader/tests/Loader.test.stories.d.ts +0 -16
- package/dist/components/Loader/tests/Loader.test.stories.js +0 -32
- package/dist/components/MenuItem/tests/MenuItem.test.stories.d.ts +0 -26
- package/dist/components/MenuItem/tests/MenuItem.test.stories.js +0 -100
- package/dist/components/Modal/tests/Modal.test.stories.d.ts +0 -31
- package/dist/components/Modal/tests/Modal.test.stories.js +0 -149
- package/dist/components/Overlay/tests/Overlay.test.stories.d.ts +0 -28
- package/dist/components/Overlay/tests/Overlay.test.stories.js +0 -148
- package/dist/components/Pagination/tests/Pagination.test.stories.d.ts +0 -23
- package/dist/components/Pagination/tests/Pagination.test.stories.js +0 -86
- package/dist/components/Progress/tests/Progress.test.stories.d.ts +0 -16
- package/dist/components/Progress/tests/Progress.test.stories.js +0 -35
- package/dist/components/Radio/tests/Radio.test.stories.d.ts +0 -30
- package/dist/components/Radio/tests/Radio.test.stories.js +0 -118
- package/dist/components/RadioGroup/tests/RadioGroup.test.stories.d.ts +0 -22
- package/dist/components/RadioGroup/tests/RadioGroup.test.stories.js +0 -78
- package/dist/components/Scrim/tests/Scrim.test.stories.d.ts +0 -15
- package/dist/components/Scrim/tests/Scrim.test.stories.js +0 -25
- package/dist/components/Select/tests/Select.test.stories.d.ts +0 -27
- package/dist/components/Select/tests/Select.test.stories.js +0 -132
- package/dist/components/Skeleton/tests/Skeleton.test.stories.d.ts +0 -15
- package/dist/components/Skeleton/tests/Skeleton.test.stories.js +0 -23
- package/dist/components/Stepper/tests/Stepper.test.stories.d.ts +0 -20
- package/dist/components/Stepper/tests/Stepper.test.stories.js +0 -28
- package/dist/components/Table/tests/Table.test.stories.d.ts +0 -24
- package/dist/components/Table/tests/Table.test.stories.js +0 -93
- package/dist/components/TextArea/tests/TextArea.test.stories.d.ts +0 -28
- package/dist/components/TextArea/tests/TextArea.test.stories.js +0 -99
- package/dist/components/TextField/tests/TextField.test.stories.d.ts +0 -28
- package/dist/components/TextField/tests/TextField.test.stories.js +0 -99
- package/dist/components/Timeline/tests/Timeline.test.stories.d.ts +0 -17
- package/dist/components/Timeline/tests/Timeline.test.stories.js +0 -32
- package/dist/components/Toast/tests/Toast.test.stories.js +0 -101
- package/dist/components/Tooltip/tests/Tooltip.test.stories.d.ts +0 -19
- package/dist/components/Tooltip/tests/Tooltip.test.stories.js +0 -40
- package/dist/components/View/tests/View.test.stories.d.ts +0 -24
- package/dist/components/View/tests/View.test.stories.js +0 -50
@@ -6,6 +6,8 @@ import Image from "../../Image/index.js";
|
|
6
6
|
import Text from "../../Text/index.js";
|
7
7
|
import Dismissible from "../../Dismissible/index.js";
|
8
8
|
import IconZap from "../../../icons/Zap.js";
|
9
|
+
import { expect, userEvent, waitFor, within } from "storybook/test";
|
10
|
+
import { sleep } from "../../../utilities/helpers.js";
|
9
11
|
export default {
|
10
12
|
title: "Components/Toast",
|
11
13
|
parameters: {
|
@@ -14,27 +16,6 @@ export default {
|
|
14
16
|
},
|
15
17
|
},
|
16
18
|
};
|
17
|
-
const Base = () => {
|
18
|
-
const toast = useToast();
|
19
|
-
return (<Button onClick={() => {
|
20
|
-
const id = toast.show({
|
21
|
-
icon: IconZap,
|
22
|
-
title: "Hey!",
|
23
|
-
text: "Event completed",
|
24
|
-
actionsSlot: [
|
25
|
-
<Button onClick={() => toast.hide(id)}>Undo</Button>,
|
26
|
-
<Button onClick={() => toast.hide(id)}>Show</Button>,
|
27
|
-
],
|
28
|
-
});
|
29
|
-
}}>
|
30
|
-
Show toast
|
31
|
-
</Button>);
|
32
|
-
};
|
33
|
-
export const base = () => (<Example>
|
34
|
-
<Example.Item title="title, children, icon, actions">
|
35
|
-
<Base />
|
36
|
-
</Example.Item>
|
37
|
-
</Example>);
|
38
19
|
const Size = () => {
|
39
20
|
const toast = useToast();
|
40
21
|
const props = {
|
@@ -67,7 +48,7 @@ const Size = () => {
|
|
67
48
|
</Example.Item>
|
68
49
|
</Example>);
|
69
50
|
};
|
70
|
-
export const size = () => <Size
|
51
|
+
export const size = { name: "size", render: () => <Size /> };
|
71
52
|
const Position = () => {
|
72
53
|
const toast = useToast();
|
73
54
|
return (<Example>
|
@@ -134,7 +115,7 @@ const Position = () => {
|
|
134
115
|
</Example.Item>
|
135
116
|
</Example>);
|
136
117
|
};
|
137
|
-
export const position = () => <Position
|
118
|
+
export const position = { name: "position", render: () => <Position /> };
|
138
119
|
const Color = () => {
|
139
120
|
const toast = useToast();
|
140
121
|
return (<Example>
|
@@ -236,7 +217,7 @@ const Color = () => {
|
|
236
217
|
</Example.Item>
|
237
218
|
</Example>);
|
238
219
|
};
|
239
|
-
export const color = () => <Color
|
220
|
+
export const color = { name: "color", render: () => <Color /> };
|
240
221
|
const Timeout = () => {
|
241
222
|
const toast = useToast();
|
242
223
|
return (<Example>
|
@@ -272,7 +253,7 @@ const Timeout = () => {
|
|
272
253
|
</Example.Item>
|
273
254
|
</Example>);
|
274
255
|
};
|
275
|
-
export const timeout = () => <Timeout
|
256
|
+
export const timeout = { name: "timeout", render: () => <Timeout /> };
|
276
257
|
const Expanded = () => {
|
277
258
|
const toast = useToast();
|
278
259
|
return (<Example>
|
@@ -288,7 +269,7 @@ const Expanded = () => {
|
|
288
269
|
</Example.Item>
|
289
270
|
</Example>);
|
290
271
|
};
|
291
|
-
export const regionOptions = () => <Expanded
|
272
|
+
export const regionOptions = { name: "expanded", render: () => <Expanded /> };
|
292
273
|
const Slots = () => {
|
293
274
|
const toast = useToast();
|
294
275
|
return (<Example>
|
@@ -323,7 +304,97 @@ const Slots = () => {
|
|
323
304
|
</Example.Item>
|
324
305
|
</Example>);
|
325
306
|
};
|
326
|
-
export const slots = () => <Slots
|
307
|
+
export const slots = { name: "slots", render: () => <Slots /> };
|
308
|
+
export const base = {
|
309
|
+
name: "base",
|
310
|
+
render: () => {
|
311
|
+
const toast = useToast();
|
312
|
+
return (<Button onClick={() => {
|
313
|
+
const id = toast.show({
|
314
|
+
title: "Title",
|
315
|
+
text: "Text",
|
316
|
+
children: "Children",
|
317
|
+
startSlot: "Slot",
|
318
|
+
actionsSlot: (<Button attributes={{ "data-testid": "trigger-id" }} onClick={() => toast.hide(id)}>
|
319
|
+
Trigger
|
320
|
+
</Button>),
|
321
|
+
});
|
322
|
+
}}>
|
323
|
+
Show toast
|
324
|
+
</Button>);
|
325
|
+
},
|
326
|
+
play: async ({ canvasElement }) => {
|
327
|
+
const canvas = within(canvasElement.ownerDocument.body);
|
328
|
+
const button = canvas.getAllByRole("button")[0];
|
329
|
+
await userEvent.click(button);
|
330
|
+
const title = canvas.getByText("Title");
|
331
|
+
const text = canvas.getByText("Text");
|
332
|
+
const children = canvas.getByText("Children");
|
333
|
+
const slot = canvas.getByText("Slot");
|
334
|
+
const action = canvas.getByTestId("trigger-id");
|
335
|
+
expect(title).toBeInTheDocument();
|
336
|
+
expect(text).toBeInTheDocument();
|
337
|
+
expect(children).toBeInTheDocument();
|
338
|
+
expect(slot).toBeInTheDocument();
|
339
|
+
expect(action).toBeInTheDocument();
|
340
|
+
await userEvent.click(action);
|
341
|
+
await sleep(600);
|
342
|
+
await waitFor(() => {
|
343
|
+
expect(title).not.toBeInTheDocument();
|
344
|
+
});
|
345
|
+
},
|
346
|
+
};
|
347
|
+
const NestedDemo = () => {
|
348
|
+
const toast = useToast();
|
349
|
+
return (<Button onClick={() => {
|
350
|
+
toast.show({
|
351
|
+
text: "Content",
|
352
|
+
});
|
353
|
+
}}>
|
354
|
+
Show toast
|
355
|
+
</Button>);
|
356
|
+
};
|
357
|
+
export const nested = {
|
358
|
+
name: "ToastProvider",
|
359
|
+
render: () => {
|
360
|
+
return (<div data-testid="test-container-id">
|
361
|
+
<ToastProvider>
|
362
|
+
<NestedDemo />
|
363
|
+
</ToastProvider>
|
364
|
+
</div>);
|
365
|
+
},
|
366
|
+
play: async ({ canvasElement }) => {
|
367
|
+
const canvas = within(canvasElement.ownerDocument.body);
|
368
|
+
const button = canvas.getAllByRole("button")[0];
|
369
|
+
await userEvent.click(button);
|
370
|
+
const container = canvas.getByTestId("test-container-id");
|
371
|
+
const toast = within(container).getByText("Content");
|
372
|
+
expect(toast).toBeInTheDocument();
|
373
|
+
},
|
374
|
+
};
|
375
|
+
export const className = {
|
376
|
+
name: "className, attributes",
|
377
|
+
render: () => {
|
378
|
+
const toast = useToast();
|
379
|
+
return (<Button onClick={() => {
|
380
|
+
const id = toast.show({
|
381
|
+
text: "Content",
|
382
|
+
attributes: { "data-testid": "test-id" },
|
383
|
+
className: "test-classname",
|
384
|
+
});
|
385
|
+
}}>
|
386
|
+
Show toast
|
387
|
+
</Button>);
|
388
|
+
},
|
389
|
+
play: async ({ canvasElement }) => {
|
390
|
+
const canvas = within(canvasElement.ownerDocument.body);
|
391
|
+
const button = canvas.getAllByRole("button")[0];
|
392
|
+
await userEvent.click(button);
|
393
|
+
const toast = canvas.getByTestId("test-id");
|
394
|
+
expect(toast).toBeInTheDocument();
|
395
|
+
expect(toast).toHaveClass("test-classname");
|
396
|
+
},
|
397
|
+
};
|
327
398
|
const Multiline = () => {
|
328
399
|
const toast = useToast();
|
329
400
|
return (<Button onClick={() => {
|
@@ -346,13 +417,16 @@ const Nested = () => {
|
|
346
417
|
</Button>
|
347
418
|
</View>);
|
348
419
|
};
|
349
|
-
export const edgeCases =
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
420
|
+
export const edgeCases = {
|
421
|
+
name: "test: edge cases",
|
422
|
+
render: () => (<Example>
|
423
|
+
<Example.Item title="Multiline, should support dynamic height">
|
424
|
+
<Multiline />
|
425
|
+
</Example.Item>
|
426
|
+
<Example.Item title="Nested ToastProvider">
|
427
|
+
<ToastProvider>
|
428
|
+
<Nested />
|
429
|
+
</ToastProvider>
|
430
|
+
</Example.Item>
|
431
|
+
</Example>),
|
432
|
+
};
|
@@ -1,9 +1,13 @@
|
|
1
1
|
import type { ButtonProps } from "../Button";
|
2
|
-
type BaseProps = Omit<ButtonProps, "variant" | "
|
2
|
+
type BaseProps = Omit<ButtonProps, "variant" | "highlighted"> & {
|
3
3
|
/** Component render variant
|
4
4
|
* @default "outline"
|
5
5
|
*/
|
6
6
|
variant?: ButtonProps["variant"];
|
7
|
+
/** Component color scheme when selected
|
8
|
+
* @default "neutral"
|
9
|
+
*/
|
10
|
+
selectedColor?: ButtonProps["color"];
|
7
11
|
/** Value of the toggle button, enables controlled mode for the ToggleButtonGroup */
|
8
12
|
value?: string;
|
9
13
|
/** Callback when the toggle button value changes */
|
@@ -3,9 +3,12 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import Button from "../Button/index.js";
|
4
4
|
import { useToggleButtonGroup } from "../ToggleButtonGroup/index.js";
|
5
5
|
const ToggleButtonControlled = (props) => {
|
6
|
-
const { variant = "outline", value, onChange, onClick, ...buttonProps } = props;
|
6
|
+
const { variant = "outline", selectedColor, value, onChange, onClick, color: buttonColor, ...buttonProps } = props;
|
7
7
|
const toggleButtonGroup = useToggleButtonGroup();
|
8
8
|
const checked = (value ? toggleButtonGroup?.value?.includes(value) : undefined) ?? props.checked;
|
9
|
+
const color = (checked && (selectedColor || toggleButtonGroup?.selectedColor)) ||
|
10
|
+
buttonColor ||
|
11
|
+
toggleButtonGroup?.color;
|
9
12
|
const handleClick = (event) => {
|
10
13
|
const changeArgs = { checked: !checked, value: value ?? "", event };
|
11
14
|
onClick?.(event);
|
@@ -16,7 +19,11 @@ const ToggleButtonControlled = (props) => {
|
|
16
19
|
onChange?.(changeArgs);
|
17
20
|
}
|
18
21
|
};
|
19
|
-
return (_jsx(Button, { ...buttonProps, variant: variant, onClick: handleClick, highlighted: checked, attributes: {
|
22
|
+
return (_jsx(Button, { ...buttonProps, color: color, variant: variant, onClick: handleClick, highlighted: checked, attributes: {
|
23
|
+
...buttonProps.attributes,
|
24
|
+
"aria-pressed": checked,
|
25
|
+
tabIndex: toggleButtonGroup?.value?.length ? (checked ? 0 : -1) : undefined,
|
26
|
+
} }));
|
20
27
|
};
|
21
28
|
ToggleButtonControlled.displayName = "ToggleButtonControlled";
|
22
29
|
export default ToggleButtonControlled;
|
@@ -14,6 +14,10 @@ export declare const variant: {
|
|
14
14
|
name: string;
|
15
15
|
render: () => import("react").JSX.Element;
|
16
16
|
};
|
17
|
+
export declare const selectedColor: {
|
18
|
+
name: string;
|
19
|
+
render: () => import("react").JSX.Element;
|
20
|
+
};
|
17
21
|
export declare const onChange: StoryObj<{
|
18
22
|
handleUncontrolledChange: Mock;
|
19
23
|
handleControlledChange: Mock;
|
@@ -21,6 +21,16 @@ export const variant = {
|
|
21
21
|
</Example.Item>
|
22
22
|
</Example>),
|
23
23
|
};
|
24
|
+
export const selectedColor = {
|
25
|
+
name: "selectedColor",
|
26
|
+
render: () => (<Example>
|
27
|
+
<Example.Item title="selectedColor: primary">
|
28
|
+
<ToggleButton selectedColor="primary" defaultChecked>
|
29
|
+
Button
|
30
|
+
</ToggleButton>
|
31
|
+
</Example.Item>
|
32
|
+
</Example>),
|
33
|
+
};
|
24
34
|
export const onChange = {
|
25
35
|
name: "checked, defaultChecked, onChange",
|
26
36
|
args: {
|
@@ -6,6 +6,14 @@ type BaseProps = {
|
|
6
6
|
* @default "single"
|
7
7
|
*/
|
8
8
|
selectionMode?: "single" | "multiple";
|
9
|
+
/** Component color scheme applied to each button
|
10
|
+
* @default "neutral"
|
11
|
+
*/
|
12
|
+
color?: ToggleButtonProps["color"];
|
13
|
+
/** Component color scheme for the selected button
|
14
|
+
* @default "neutral"
|
15
|
+
*/
|
16
|
+
selectedColor?: ToggleButtonProps["selectedColor"];
|
9
17
|
/** Callback when the toggle button group value changes */
|
10
18
|
onChange?: (args: {
|
11
19
|
value: string[];
|
@@ -27,6 +35,8 @@ export type UncontrolledProps = BaseProps & {
|
|
27
35
|
export type Props = ControlledProps | UncontrolledProps;
|
28
36
|
export type Context = {
|
29
37
|
onChange: ToggleButtonProps["onChange"];
|
38
|
+
selectedColor?: ToggleButtonProps["selectedColor"];
|
39
|
+
color?: ToggleButtonProps["color"];
|
30
40
|
value?: string[];
|
31
41
|
};
|
32
42
|
export {};
|
@@ -2,33 +2,11 @@
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
3
3
|
import React from "react";
|
4
4
|
import Button from "../Button/index.js";
|
5
|
-
import useHotkeys from "../../hooks/useHotkeys.js";
|
6
5
|
import Context from "./ToggleButtonGroup.context.js";
|
7
|
-
import
|
8
|
-
import ToggleButton from "../ToggleButton/index.js";
|
9
|
-
const ToggleButtonGroupItem = (props) => {
|
10
|
-
const { focusable, onFocus, ...buttonProps } = props;
|
11
|
-
return (_jsx(ToggleButton, { ...buttonProps, attributes: {
|
12
|
-
...buttonProps.attributes,
|
13
|
-
tabIndex: focusable ? 0 : -1,
|
14
|
-
onFocus,
|
15
|
-
} }));
|
16
|
-
};
|
6
|
+
import useKeyboardArrowNavigation from "../../hooks/useKeyboardArrowNavigation.js";
|
17
7
|
const ToggleButtonGroupControlled = (props) => {
|
18
|
-
const { onChange, value, selectionMode = "single", children, ...buttonGroupProps } = props;
|
19
|
-
const
|
20
|
-
let toggleButtonIndex = 0;
|
21
|
-
const renderedChildren = React.Children.map(children, (child) => {
|
22
|
-
if (!React.isValidElement(child) || child.type !== ToggleButton || !child.props) {
|
23
|
-
return child;
|
24
|
-
}
|
25
|
-
const boundIndex = toggleButtonIndex;
|
26
|
-
toggleButtonIndex += 1;
|
27
|
-
const focusable = focusableIndexRef.current === boundIndex;
|
28
|
-
return (_jsx(ToggleButtonGroupItem, { ...child.props, focusable: focusable, onFocus: () => {
|
29
|
-
focusableIndexRef.current = boundIndex;
|
30
|
-
} }));
|
31
|
-
});
|
8
|
+
const { onChange, value, selectionMode = "single", children, color, selectedColor, ...buttonGroupProps } = props;
|
9
|
+
const rootRef = React.useRef(null);
|
32
10
|
const handleChange = (args) => {
|
33
11
|
const { event, value: itemValue, checked } = args;
|
34
12
|
if (!itemValue)
|
@@ -45,23 +23,10 @@ const ToggleButtonGroupControlled = (props) => {
|
|
45
23
|
if (onChange)
|
46
24
|
onChange({ value: nextValue, event });
|
47
25
|
};
|
48
|
-
|
49
|
-
|
50
|
-
focusPreviousElement(hotkeysRef.current);
|
51
|
-
},
|
52
|
-
"ArrowRight, ArrowDown": () => {
|
53
|
-
focusNextElement(hotkeysRef.current);
|
54
|
-
},
|
55
|
-
Home: () => {
|
56
|
-
focusFirstElement(hotkeysRef.current);
|
57
|
-
},
|
58
|
-
End: () => {
|
59
|
-
focusLastElement(hotkeysRef.current);
|
60
|
-
},
|
61
|
-
}, [], {
|
62
|
-
preventDefault: true,
|
26
|
+
useKeyboardArrowNavigation({
|
27
|
+
ref: rootRef,
|
63
28
|
});
|
64
|
-
return (_jsx(Context.Provider, { value: { onChange: handleChange, value }, children: _jsx(Button.Group, { ...buttonGroupProps, attributes: { ref:
|
29
|
+
return (_jsx(Context.Provider, { value: { onChange: handleChange, value, selectedColor, color }, children: _jsx(Button.Group, { ...buttonGroupProps, attributes: { ref: rootRef, ...buttonGroupProps?.attributes }, children: children }) }));
|
65
30
|
};
|
66
31
|
ToggleButtonGroupControlled.displayName = "ToggleButtonGroupControlled";
|
67
32
|
export default ToggleButtonGroupControlled;
|
@@ -113,6 +113,23 @@ export const multiple = {
|
|
113
113
|
});
|
114
114
|
},
|
115
115
|
};
|
116
|
+
export const selectedColor = {
|
117
|
+
name: "color,selectedColor",
|
118
|
+
render: () => (<Example>
|
119
|
+
<Example.Item title="selectedColor: primary">
|
120
|
+
<ToggleButtonGroup selectedColor="primary" defaultValue={["2"]}>
|
121
|
+
<ToggleButton value="1">Button</ToggleButton>
|
122
|
+
<ToggleButton value="2">Button</ToggleButton>
|
123
|
+
</ToggleButtonGroup>
|
124
|
+
</Example.Item>
|
125
|
+
<Example.Item title="color: primary, selectedColor: critical">
|
126
|
+
<ToggleButtonGroup color="primary" selectedColor="critical" defaultValue={["2"]}>
|
127
|
+
<ToggleButton value="1">Button</ToggleButton>
|
128
|
+
<ToggleButton value="2">Button</ToggleButton>
|
129
|
+
</ToggleButtonGroup>
|
130
|
+
</Example.Item>
|
131
|
+
</Example>),
|
132
|
+
};
|
116
133
|
export const className = {
|
117
134
|
name: "className, attributes",
|
118
135
|
render: () => (<div data-testid="root">
|
@@ -7,7 +7,7 @@ import s from "./Tooltip.module.css";
|
|
7
7
|
const Tooltip = (props) => {
|
8
8
|
const { text, children, position = "bottom", color = "inverted", ...flyoutProps } = props;
|
9
9
|
if (!text)
|
10
|
-
return children({});
|
10
|
+
return children({ ref: null });
|
11
11
|
return (_jsxs(Flyout, { ...flyoutProps, position: position, triggerType: "hover", groupTimeouts: true, children: [_jsx(Flyout.Trigger, { children: children }), _jsx(Flyout.Content, { children: _jsx(Theme, { colorMode: color, children: _jsx(Text, { variant: "caption-1", className: s.root, children: text }) }) })] }));
|
12
12
|
};
|
13
13
|
Tooltip.displayName = "Tooltip";
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import React from "react";
|
2
|
-
import type { FlyoutProps,
|
2
|
+
import type { FlyoutProps, FlyoutTriggerAttributes } from "../Flyout";
|
3
3
|
export type Props = Pick<FlyoutProps, "id" | "position" | "onOpen" | "onClose" | "active" | "disabled" | "disableContentHover" | "containerRef" | "contentGap" | "contentShift" | "originCoordinates" | "contentAttributes" | "contentClassName"> & {
|
4
4
|
/** Node for inserting children */
|
5
|
-
children: (attributes:
|
5
|
+
children: (attributes: FlyoutTriggerAttributes) => React.ReactNode;
|
6
6
|
/** Text content for the tooltip */
|
7
7
|
text?: React.ReactNode;
|
8
8
|
/** Color of the tooltip
|
@@ -1,3 +1,5 @@
|
|
1
|
+
import { fn } from "storybook/test";
|
2
|
+
import { StoryObj } from "@storybook/react-vite";
|
1
3
|
declare const _default: {
|
2
4
|
title: string;
|
3
5
|
component: import("react").FC<import("./..").TooltipProps>;
|
@@ -8,7 +10,19 @@ declare const _default: {
|
|
8
10
|
};
|
9
11
|
};
|
10
12
|
export default _default;
|
11
|
-
export declare const position:
|
12
|
-
|
13
|
-
|
14
|
-
|
13
|
+
export declare const position: {
|
14
|
+
name: string;
|
15
|
+
render: () => import("react").JSX.Element;
|
16
|
+
};
|
17
|
+
export declare const color: {
|
18
|
+
name: string;
|
19
|
+
render: () => import("react").JSX.Element;
|
20
|
+
};
|
21
|
+
export declare const defaultActive: StoryObj<{
|
22
|
+
handleOpen: ReturnType<typeof fn>;
|
23
|
+
handleClose: ReturnType<typeof fn>;
|
24
|
+
}>;
|
25
|
+
export declare const edgeCases: {
|
26
|
+
name: string;
|
27
|
+
render: () => import("react").JSX.Element;
|
28
|
+
};
|