@lunit/design-system 2.1.0 → 2.2.3
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/.babelrc.json +1 -1
- package/README.md +22 -21
- package/dist/cjs/components/Alert/index.js +1 -1
- package/dist/cjs/components/Alert/index.js.map +1 -1
- package/dist/cjs/components/Button/index.js +1 -1
- package/dist/cjs/components/Button/index.js.map +1 -1
- package/dist/cjs/components/Checkbox/index.js +1 -1
- package/dist/cjs/components/Checkbox/index.js.map +1 -1
- package/dist/cjs/components/Chip/index.js +1 -1
- package/dist/cjs/components/Chip/index.js.map +1 -1
- package/dist/cjs/components/DataTable/index.js.map +1 -1
- package/dist/cjs/components/DatePicker/index.js.map +1 -1
- package/dist/cjs/components/Dialog/index.js +1 -1
- package/dist/cjs/components/Dialog/index.js.map +1 -1
- package/dist/cjs/components/Dropdown/index.js +1 -1
- package/dist/cjs/components/Dropdown/index.js.map +1 -1
- package/dist/cjs/components/FormLabel/index.js +1 -1
- package/dist/cjs/components/FormLabel/index.js.map +1 -1
- package/dist/cjs/components/Radio/index.js +1 -1
- package/dist/cjs/components/Radio/index.js.map +1 -1
- package/dist/cjs/components/RadioGroup/index.js.map +1 -1
- package/dist/cjs/components/TextField/index.js +1 -1
- package/dist/cjs/components/TextField/index.js.map +1 -1
- package/dist/cjs/components/Toggle/index.js +1 -1
- package/dist/cjs/components/Toggle/index.js.map +1 -1
- package/dist/cjs/components/ToggleButton/index.js +1 -1
- package/dist/cjs/components/ToggleButton/index.js.map +1 -1
- package/dist/cjs/components/Tooltip/index.js.map +1 -1
- package/dist/cjs/components/Typography/index.js.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/components/Alert/Alert.js +8 -8
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/Alert/Alert.styled.js +26 -26
- package/dist/components/Alert/Alert.styled.js.map +1 -1
- package/dist/components/Alert/Alert.utils.js +9 -9
- package/dist/components/Alert/Alert.utils.js.map +1 -1
- package/dist/components/Alert/index.js +1 -1
- package/dist/components/Button/Button.js +23 -17
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/Button/Button.styled.js +88 -88
- package/dist/components/Button/Button.styled.js.map +1 -1
- package/dist/components/Button/index.js +1 -1
- package/dist/components/Button/utils/getButtonPaddingBySizeAndKind.js +9 -9
- package/dist/components/Button/utils/getButtonPaddingBySizeAndKind.js.map +1 -1
- package/dist/components/Button/utils/getHoverStyle.js +1 -1
- package/dist/components/Button/utils/getHoverStyle.js.map +1 -1
- package/dist/components/Button/utils/getIconButtonPaddingBySizeAndKind.js +6 -12
- package/dist/components/Button/utils/getIconButtonPaddingBySizeAndKind.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.js +9 -9
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/Checkbox/index.js +1 -1
- package/dist/components/Chip/Chip.js +29 -26
- package/dist/components/Chip/Chip.js.map +1 -1
- package/dist/components/Chip/Chip.styled.js +52 -52
- package/dist/components/Chip/Chip.styled.js.map +1 -1
- package/dist/components/Chip/consts.js +5 -5
- package/dist/components/Chip/index.js +1 -1
- package/dist/components/DataTable/DataTable.js +1 -1
- package/dist/components/DataTable/index.js +1 -1
- package/dist/components/DatePicker/DatePicker.js +1 -1
- package/dist/components/DatePicker/index.js +1 -1
- package/dist/components/Dialog/Dialog.js +18 -18
- package/dist/components/Dialog/Dialog.js.map +1 -1
- package/dist/components/Dialog/Dialog.styled.js +90 -90
- package/dist/components/Dialog/Dialog.styled.js.map +1 -1
- package/dist/components/Dialog/components/DialogAction.js +6 -6
- package/dist/components/Dialog/index.js +1 -1
- package/dist/components/Dropdown/Dropdown.js +23 -21
- package/dist/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/components/Dropdown/Dropdown.styled.js +85 -86
- package/dist/components/Dropdown/Dropdown.styled.js.map +1 -1
- package/dist/components/Dropdown/DropdownItem.js +14 -14
- package/dist/components/Dropdown/DropdownItem.js.map +1 -1
- package/dist/components/Dropdown/index.js +2 -2
- package/dist/components/Dropdown/index.js.map +1 -1
- package/dist/components/FormLabel/FormLabel.js +1 -1
- package/dist/components/FormLabel/FormLabel.styled.js +2 -2
- package/dist/components/FormLabel/FormLabel.styled.js.map +1 -1
- package/dist/components/FormLabel/index.js +1 -1
- package/dist/components/Radio/Radio.js +8 -8
- package/dist/components/Radio/Radio.js.map +1 -1
- package/dist/components/Radio/index.js +1 -1
- package/dist/components/RadioGroup/index.js +1 -1
- package/dist/components/TextField/TextField.js +8 -8
- package/dist/components/TextField/TextField.js.map +1 -1
- package/dist/components/TextField/TextField.style.js +112 -112
- package/dist/components/TextField/TextField.style.js.map +1 -1
- package/dist/components/TextField/TextFieldIcon.js +2 -2
- package/dist/components/TextField/TextFieldIcon.js.map +1 -1
- package/dist/components/TextField/index.js +1 -1
- package/dist/components/Toast/Toast.js +13 -13
- package/dist/components/Toast/Toast.js.map +1 -1
- package/dist/components/Toast/Toast.styled.js +26 -26
- package/dist/components/Toast/Toast.utils.js +3 -3
- package/dist/components/Toast/Toast.utils.js.map +1 -1
- package/dist/components/Toast/index.js +1 -1
- package/dist/components/Toggle/Toggle.js +3 -4
- package/dist/components/Toggle/Toggle.js.map +1 -1
- package/dist/components/Toggle/Toggle.styled.js +30 -30
- package/dist/components/Toggle/Toggle.styled.js.map +1 -1
- package/dist/components/Toggle/index.js +1 -1
- package/dist/components/ToggleButton/ToggleButton.js +6 -6
- package/dist/components/ToggleButton/ToggleButton.js.map +1 -1
- package/dist/components/ToggleButton/ToggleButton.styled.js +20 -20
- package/dist/components/ToggleButton/ToggleButton.styled.js.map +1 -1
- package/dist/components/ToggleButton/index.js +1 -1
- package/dist/components/ToggleButtonGroup/ToggleButtonGroup.js +2 -2
- package/dist/components/ToggleButtonGroup/ToggleButtonGroup.js.map +1 -1
- package/dist/components/ToggleButtonGroup/index.js +1 -1
- package/dist/components/Tooltip/Tooltip.js +1 -1
- package/dist/components/Tooltip/index.js +1 -1
- package/dist/components/Typography/Typography.js +1 -1
- package/dist/components/Typography/Typography.js.map +1 -1
- package/dist/components/Typography/index.js +1 -1
- package/dist/foundation/Elevation/index.js +27 -27
- package/dist/foundation/Elevation/utils.js +1 -1
- package/dist/foundation/Elevation/utils.js.map +1 -1
- package/dist/foundation/Typography/index.js +35 -35
- package/dist/foundation/Typography/index.js.map +1 -1
- package/dist/foundation/Typography/tokens.js +136 -136
- package/dist/foundation/Typography/tokens.js.map +1 -1
- package/dist/foundation/colors/base/blue.js +12 -12
- package/dist/foundation/colors/base/green.js +12 -12
- package/dist/foundation/colors/base/grey.js +28 -28
- package/dist/foundation/colors/base/index.js +11 -11
- package/dist/foundation/colors/base/lunitGreen.js +11 -11
- package/dist/foundation/colors/base/lunitTeal.js +12 -12
- package/dist/foundation/colors/base/magenta.js +12 -12
- package/dist/foundation/colors/base/opacity.js +4 -4
- package/dist/foundation/colors/base/orange.js +12 -12
- package/dist/foundation/colors/base/purple.js +12 -12
- package/dist/foundation/colors/base/red.js +12 -12
- package/dist/foundation/colors/base/yellow.js +12 -12
- package/dist/foundation/colors/index.js +119 -121
- package/dist/foundation/colors/index.js.map +1 -1
- package/dist/foundation/colors/token/component.js +184 -212
- package/dist/foundation/colors/token/component.js.map +1 -1
- package/dist/foundation/colors/token/core.js +112 -133
- package/dist/foundation/colors/token/core.js.map +1 -1
- package/dist/foundation/colors/token/index.js +2 -2
- package/dist/foundation/index.js +5 -5
- package/dist/index.js +20 -20
- package/dist/theme.js +6 -6
- package/dist/types/components/Alert/Alert.d.ts +2 -2
- package/dist/types/components/Alert/Alert.styled.d.ts +1 -2
- package/dist/types/components/Alert/Alert.types.d.ts +2 -2
- package/dist/types/components/Alert/Alert.utils.d.ts +1 -1
- package/dist/types/components/Alert/index.d.ts +1 -1
- package/dist/types/components/Button/Button.d.ts +1 -1
- package/dist/types/components/Button/Button.styled.d.ts +249 -265
- package/dist/types/components/Button/Button.types.d.ts +16 -16
- package/dist/types/components/Button/index.d.ts +1 -1
- package/dist/types/components/Button/utils/getButtonPaddingBySizeAndKind.d.ts +4 -4
- package/dist/types/components/Button/utils/getHoverStyle.d.ts +2 -1
- package/dist/types/components/Button/utils/getIconButtonPaddingBySizeAndKind.d.ts +4 -4
- package/dist/types/components/Checkbox/Checkbox.d.ts +1 -1
- package/dist/types/components/Checkbox/index.d.ts +1 -1
- package/dist/types/components/Chip/Chip.d.ts +1 -1
- package/dist/types/components/Chip/Chip.styled.d.ts +6 -79
- package/dist/types/components/Chip/Chip.types.d.ts +15 -14
- package/dist/types/components/Chip/index.d.ts +1 -1
- package/dist/types/components/DataTable/index.d.ts +1 -1
- package/dist/types/components/DatePicker/index.d.ts +1 -1
- package/dist/types/components/Dialog/Dialog.d.ts +11 -11
- package/dist/types/components/Dialog/Dialog.styled.d.ts +3 -4
- package/dist/types/components/Dialog/components/DialogAction.d.ts +2 -2
- package/dist/types/components/Dialog/index.d.ts +2 -2
- package/dist/types/components/Dropdown/Dropdown.d.ts +2 -2
- package/dist/types/components/Dropdown/Dropdown.styled.d.ts +4 -39
- package/dist/types/components/Dropdown/Dropdown.types.d.ts +5 -5
- package/dist/types/components/Dropdown/DropdownItem.d.ts +3 -3
- package/dist/types/components/Dropdown/index.d.ts +3 -3
- package/dist/types/components/FormLabel/FormLabel.d.ts +1 -1
- package/dist/types/components/FormLabel/index.d.ts +1 -1
- package/dist/types/components/Radio/Radio.d.ts +1 -1
- package/dist/types/components/Radio/index.d.ts +1 -1
- package/dist/types/components/RadioGroup/index.d.ts +1 -1
- package/dist/types/components/TextField/TextField.d.ts +2 -2
- package/dist/types/components/TextField/TextField.style.d.ts +3 -4
- package/dist/types/components/TextField/TextField.types.d.ts +6 -6
- package/dist/types/components/TextField/TextFieldIcon.d.ts +2 -2
- package/dist/types/components/TextField/index.d.ts +2 -2
- package/dist/types/components/Toast/Toast.d.ts +2 -2
- package/dist/types/components/Toast/Toast.types.d.ts +3 -3
- package/dist/types/components/Toast/Toast.utils.d.ts +1 -1
- package/dist/types/components/Toast/index.d.ts +2 -2
- package/dist/types/components/Toggle/Toggle.d.ts +1 -1
- package/dist/types/components/Toggle/Toggle.styled.d.ts +2 -2
- package/dist/types/components/Toggle/Toggle.types.d.ts +3 -3
- package/dist/types/components/Toggle/index.d.ts +1 -1
- package/dist/types/components/ToggleButton/ToggleButton.d.ts +1 -1
- package/dist/types/components/ToggleButton/ToggleButton.styled.d.ts +2 -34
- package/dist/types/components/ToggleButton/ToggleButton.types.d.ts +10 -10
- package/dist/types/components/ToggleButton/index.d.ts +1 -1
- package/dist/types/components/ToggleButtonGroup/ToggleButtonGroup.d.ts +1 -1
- package/dist/types/components/ToggleButtonGroup/index.d.ts +1 -1
- package/dist/types/components/Tooltip/index.d.ts +1 -1
- package/dist/types/components/Typography/Typography.d.ts +6 -6
- package/dist/types/components/Typography/index.d.ts +1 -1
- package/dist/types/components/index.d.ts +2 -2
- package/dist/types/foundation/Elevation/index.d.ts +22 -22
- package/dist/types/foundation/Typography/index.d.ts +78 -78
- package/dist/types/foundation/Typography/tokens.d.ts +69 -69
- package/dist/types/foundation/colors/base/index.d.ts +11 -11
- package/dist/types/foundation/colors/index.d.ts +13 -20
- package/dist/types/foundation/colors/token/component.d.ts +1 -1
- package/dist/types/foundation/colors/token/core.d.ts +1 -1
- package/dist/types/foundation/colors/token/index.d.ts +2 -2
- package/dist/types/foundation/colors/types.d.ts +0 -7
- package/dist/types/foundation/index.d.ts +4 -11
- package/dist/types/foundation/spacing.d.ts +1 -1
- package/dist/types/index.d.ts +20 -20
- package/dist/types/theme.d.ts +1 -1
- package/package.json +22 -26
- package/src/components/Alert/Alert.styled.ts +39 -49
- package/src/components/Alert/Alert.tsx +10 -16
- package/src/components/Alert/Alert.types.ts +2 -2
- package/src/components/Alert/Alert.utils.ts +13 -22
- package/src/components/Alert/index.ts +1 -1
- package/src/components/Button/Button.styled.ts +98 -101
- package/src/components/Button/Button.tsx +71 -69
- package/src/components/Button/Button.types.ts +19 -21
- package/src/components/Button/index.ts +1 -1
- package/src/components/Button/utils/getButtonPaddingBySizeAndKind.ts +13 -13
- package/src/components/Button/utils/getHoverStyle.ts +4 -2
- package/src/components/Button/utils/getIconButtonPaddingBySizeAndKind.ts +10 -19
- package/src/components/Checkbox/Checkbox.tsx +13 -25
- package/src/components/Checkbox/index.ts +1 -1
- package/src/components/Chip/Chip.styled.ts +69 -72
- package/src/components/Chip/Chip.tsx +33 -55
- package/src/components/Chip/Chip.types.ts +18 -24
- package/src/components/Chip/consts.ts +5 -5
- package/src/components/Chip/index.ts +1 -1
- package/src/components/DataTable/DataTable.tsx +2 -2
- package/src/components/DataTable/index.ts +1 -1
- package/src/components/DatePicker/DatePicker.tsx +2 -2
- package/src/components/DatePicker/index.ts +1 -1
- package/src/components/Dialog/Dialog.styled.ts +112 -114
- package/src/components/Dialog/Dialog.tsx +41 -46
- package/src/components/Dialog/components/DialogAction.tsx +8 -8
- package/src/components/Dialog/index.ts +3 -3
- package/src/components/Dropdown/Dropdown.styled.tsx +88 -89
- package/src/components/Dropdown/Dropdown.tsx +29 -30
- package/src/components/Dropdown/Dropdown.types.ts +6 -5
- package/src/components/Dropdown/DropdownItem.tsx +18 -29
- package/src/components/Dropdown/index.ts +3 -7
- package/src/components/FormLabel/FormLabel.styled.ts +3 -3
- package/src/components/FormLabel/FormLabel.tsx +3 -3
- package/src/components/FormLabel/index.ts +1 -1
- package/src/components/Radio/Radio.tsx +12 -29
- package/src/components/Radio/index.ts +1 -1
- package/src/components/RadioGroup/index.ts +1 -1
- package/src/components/TextField/TextField.style.ts +123 -132
- package/src/components/TextField/TextField.tsx +50 -62
- package/src/components/TextField/TextField.types.ts +7 -8
- package/src/components/TextField/TextFieldIcon.tsx +4 -7
- package/src/components/TextField/index.ts +2 -2
- package/src/components/Toast/Toast.styled.ts +26 -26
- package/src/components/Toast/Toast.tsx +14 -28
- package/src/components/Toast/Toast.types.ts +3 -8
- package/src/components/Toast/Toast.utils.ts +5 -8
- package/src/components/Toast/index.tsx +2 -2
- package/src/components/Toggle/Toggle.styled.ts +31 -32
- package/src/components/Toggle/Toggle.tsx +5 -11
- package/src/components/Toggle/Toggle.types.ts +3 -3
- package/src/components/Toggle/index.ts +1 -1
- package/src/components/ToggleButton/ToggleButton.styled.ts +47 -49
- package/src/components/ToggleButton/ToggleButton.tsx +91 -97
- package/src/components/ToggleButton/ToggleButton.types.ts +10 -10
- package/src/components/ToggleButton/index.ts +1 -1
- package/src/components/ToggleButtonGroup/ToggleButtonGroup.tsx +3 -8
- package/src/components/ToggleButtonGroup/index.tsx +1 -1
- package/src/components/Tooltip/Tooltip.tsx +2 -2
- package/src/components/Tooltip/index.ts +1 -1
- package/src/components/Typography/Typography.tsx +7 -10
- package/src/components/Typography/index.ts +1 -1
- package/src/components/index.ts +2 -2
- package/src/foundation/Elevation/index.ts +27 -27
- package/src/foundation/Elevation/utils.ts +14 -8
- package/src/foundation/Typography/index.ts +58 -57
- package/src/foundation/Typography/tokens.ts +138 -138
- package/src/foundation/colors/base/blue.ts +12 -12
- package/src/foundation/colors/base/green.ts +12 -12
- package/src/foundation/colors/base/grey.ts +28 -28
- package/src/foundation/colors/base/index.ts +11 -11
- package/src/foundation/colors/base/lunitGreen.ts +11 -11
- package/src/foundation/colors/base/lunitTeal.ts +12 -12
- package/src/foundation/colors/base/magenta.ts +12 -12
- package/src/foundation/colors/base/opacity.ts +4 -4
- package/src/foundation/colors/base/orange.ts +12 -12
- package/src/foundation/colors/base/purple.ts +12 -12
- package/src/foundation/colors/base/red.ts +12 -12
- package/src/foundation/colors/base/yellow.ts +12 -12
- package/src/foundation/colors/index.ts +119 -120
- package/src/foundation/colors/token/component.ts +185 -213
- package/src/foundation/colors/token/core.ts +113 -134
- package/src/foundation/colors/token/index.ts +2 -2
- package/src/foundation/colors/types.ts +0 -7
- package/src/foundation/index.ts +8 -8
- package/src/foundation/spacing.ts +1 -1
- package/src/index.ts +20 -20
- package/src/stories/GettingStarted.mdx +9 -15
- package/src/stories/components/Alert/Alert.stories.tsx +39 -46
- package/src/stories/components/Button/BasicButton.stories.tsx +68 -59
- package/src/stories/components/Button/ButtonDocs.mdx +17 -41
- package/src/stories/components/Button/Color.stories.tsx +28 -51
- package/src/stories/components/Button/IconButton.stories.tsx +40 -47
- package/src/stories/components/Button/Kind.stories.tsx +100 -213
- package/src/stories/components/CheckBox/BasicCheckbox.stories.tsx +52 -71
- package/src/stories/components/CheckBox/CheckboxDocs.mdx +6 -6
- package/src/stories/components/Chip/Chip.stories.tsx +75 -75
- package/src/stories/components/Chip/ChipDocs.mdx +12 -13
- package/src/stories/components/DataTable/DataTable.stories.tsx +4 -4
- package/src/stories/components/DatePicker/DatePicker.stories.tsx +4 -4
- package/src/stories/components/Dialog/Dialog.stories.tsx +103 -124
- package/src/stories/components/Dialog/DialogDocs.mdx +7 -13
- package/src/stories/components/Dropdown/Dropdown.stories.tsx +96 -82
- package/src/stories/components/Dropdown/DropdownDocs.mdx +275 -0
- package/src/stories/components/Dropdown/DropdownExamples.stories.tsx +40 -47
- package/src/stories/components/Dropdown/DropdownItem.stories.tsx +113 -98
- package/src/stories/components/SelectControl/RadioGroup.stories.tsx +17 -30
- package/src/stories/components/SelectControl/RadioStatus.stories.tsx +16 -23
- package/src/stories/components/SelectControl/Toggle.stories.tsx +33 -78
- package/src/stories/components/TextField/BasicTextField.stories.tsx +44 -60
- package/src/stories/components/TextField/TextFieldDocs.mdx +8 -12
- package/src/stories/components/TextField/TextFieldMulti.stories.tsx +39 -58
- package/src/stories/components/TextField/TextFieldSingle.stories.tsx +74 -121
- package/src/stories/components/TextField/TextFieldSize.stories.tsx +35 -56
- package/src/stories/components/Toast/Toast.stories.tsx +39 -49
- package/src/stories/components/ToggleButton/Basic.stories.tsx +237 -235
- package/src/stories/components/ToggleButton/ToggleButtonDocs.mdx +10 -14
- package/src/stories/components/ToggleButton/ToggleButtonKind.stories.tsx +144 -203
- package/src/stories/components/ToggleButton/WithIcon.stories.tsx +87 -107
- package/src/stories/components/Tooltip/Tooltip.stories.tsx +4 -4
- package/src/stories/foundation/Elevation/Elevation.stories.tsx +48 -73
- package/src/stories/foundation/Elevation/styled.ts +3 -3
- package/src/stories/foundation/Typography/Typography.mdx +9 -13
- package/src/stories/foundation/Typography/Typography.stories.tsx +25 -41
- package/src/stories/foundation/Typography/TypographyGroup.tsx +14 -25
- package/src/stories/foundation/Typography/const.ts +13 -19
- package/src/stories/foundation/colors/ColorSystem.tsx +42 -40
- package/src/stories/foundation/colors/Colors.stories.tsx +40 -41
- package/src/stories/foundation/colors/Docs.mdx +73 -77
- package/src/stories/foundation/colors/Mui.stories.tsx +6 -8
- package/src/stories/foundation/colors/Token.inComponent.stories.tsx +81 -71
- package/src/stories/foundation/colors/TokenPaletteTable.stories.tsx +7 -7
- package/src/stories/foundation/colors/TokenPaletteTable.tsx +23 -49
- package/src/stories/foundation/colors/styled.ts +26 -26
- package/src/theme.ts +6 -6
- package/src/types.d.ts +1 -1
- package/tsconfig.build.json +1 -5
- package/tsconfig.json +0 -1
- package/src/stories/components/ToggleButton/Group.stories.tsx +0 -221
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import React, { useState } from
|
|
2
|
-
import { StoryFn, Meta, StoryObj } from
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { StoryFn, Meta, StoryObj } from '@storybook/react-webpack5';
|
|
3
3
|
|
|
4
|
-
import Dropdown, { DropdownItem } from
|
|
4
|
+
import Dropdown, { DropdownItem } from '@/components/Dropdown';
|
|
5
5
|
import {
|
|
6
6
|
Box,
|
|
7
7
|
SelectChangeEvent,
|
|
@@ -10,54 +10,54 @@ import {
|
|
|
10
10
|
TableCell,
|
|
11
11
|
TableHead,
|
|
12
12
|
TableRow,
|
|
13
|
-
} from
|
|
14
|
-
import Button from
|
|
13
|
+
} from '@mui/material';
|
|
14
|
+
import Button from '@/components/Button';
|
|
15
15
|
|
|
16
16
|
export default {
|
|
17
|
-
title:
|
|
17
|
+
title: 'Components/Dropdown',
|
|
18
18
|
component: Dropdown,
|
|
19
19
|
argTypes: {
|
|
20
20
|
size: {
|
|
21
21
|
control: {
|
|
22
|
-
type:
|
|
22
|
+
type: 'radio',
|
|
23
23
|
},
|
|
24
|
-
options: [
|
|
25
|
-
description:
|
|
24
|
+
options: ['small', 'medium', 'large'],
|
|
25
|
+
description: 'The size of the dropdown. Default is medium.',
|
|
26
26
|
},
|
|
27
27
|
select: {
|
|
28
28
|
control: {
|
|
29
|
-
type:
|
|
29
|
+
type: 'radio',
|
|
30
30
|
},
|
|
31
|
-
options: [
|
|
32
|
-
description:
|
|
31
|
+
options: ['single', 'multiple'],
|
|
32
|
+
description: 'The select type of the dropdown. Default is single.',
|
|
33
33
|
},
|
|
34
34
|
error: {
|
|
35
35
|
control: {
|
|
36
|
-
type:
|
|
36
|
+
type: 'radio',
|
|
37
37
|
},
|
|
38
38
|
options: [true, false],
|
|
39
|
-
description:
|
|
39
|
+
description: 'The error prop toggles the error state.',
|
|
40
40
|
},
|
|
41
41
|
disabled: {
|
|
42
42
|
control: {
|
|
43
|
-
type:
|
|
43
|
+
type: 'radio',
|
|
44
44
|
},
|
|
45
45
|
options: [true, false],
|
|
46
|
-
description:
|
|
46
|
+
description: 'If true, the text field will be disabled.',
|
|
47
47
|
},
|
|
48
48
|
},
|
|
49
49
|
} as Meta<typeof Dropdown>;
|
|
50
50
|
|
|
51
51
|
const dropdownContent = {
|
|
52
|
-
test1:
|
|
53
|
-
test2:
|
|
54
|
-
test3:
|
|
52
|
+
test1: 'Conquer cancer through AI',
|
|
53
|
+
test2: 'test item 2',
|
|
54
|
+
test3: 'test item 3',
|
|
55
55
|
};
|
|
56
56
|
|
|
57
57
|
const DropdownExampleTemplate: StoryFn<typeof Dropdown> = (args, context) => {
|
|
58
58
|
const classNameFromGlobal = context.globals.theme;
|
|
59
59
|
|
|
60
|
-
const [ex1selectedValue, setEx1SelectedValue] = useState<string>(
|
|
60
|
+
const [ex1selectedValue, setEx1SelectedValue] = useState<string>('');
|
|
61
61
|
const handleEx1SelectedValueChange = (event: SelectChangeEvent<unknown>) => {
|
|
62
62
|
const {
|
|
63
63
|
target: { value },
|
|
@@ -71,10 +71,10 @@ const DropdownExampleTemplate: StoryFn<typeof Dropdown> = (args, context) => {
|
|
|
71
71
|
} = event;
|
|
72
72
|
setEx2SelectedValue(
|
|
73
73
|
// On autofill we get a stringified value.
|
|
74
|
-
typeof value ===
|
|
74
|
+
typeof value === 'string' ? value.split(',') : (value as string[]),
|
|
75
75
|
);
|
|
76
76
|
};
|
|
77
|
-
const [ex3selectedValue, setEx3SelectedValue] = useState<string>(
|
|
77
|
+
const [ex3selectedValue, setEx3SelectedValue] = useState<string>('test1');
|
|
78
78
|
const handleEx3SelectedValueChange = (event: SelectChangeEvent<unknown>) => {
|
|
79
79
|
const {
|
|
80
80
|
target: { value },
|
|
@@ -91,13 +91,13 @@ const DropdownExampleTemplate: StoryFn<typeof Dropdown> = (args, context) => {
|
|
|
91
91
|
};
|
|
92
92
|
|
|
93
93
|
return (
|
|
94
|
-
<Table sx={{ maxWidth:
|
|
94
|
+
<Table sx={{ maxWidth: '1200px' }}>
|
|
95
95
|
<TableHead>
|
|
96
96
|
<TableRow>
|
|
97
|
-
<TableCell sx={{ typography:
|
|
97
|
+
<TableCell sx={{ typography: 'body2_14_medium', color: 'inherit' }}>
|
|
98
98
|
Using placeholder Example
|
|
99
99
|
</TableCell>
|
|
100
|
-
<TableCell sx={{ typography:
|
|
100
|
+
<TableCell sx={{ typography: 'body2_14_medium', color: 'inherit' }}>
|
|
101
101
|
Dropdown with Button Example
|
|
102
102
|
</TableCell>
|
|
103
103
|
</TableRow>
|
|
@@ -109,7 +109,7 @@ const DropdownExampleTemplate: StoryFn<typeof Dropdown> = (args, context) => {
|
|
|
109
109
|
{/* Example 1 (Placeholder with Single select) */}
|
|
110
110
|
<Dropdown
|
|
111
111
|
className={classNameFromGlobal}
|
|
112
|
-
sx={{ width:
|
|
112
|
+
sx={{ width: '200px' }}
|
|
113
113
|
value={ex1selectedValue}
|
|
114
114
|
onChange={handleEx1SelectedValueChange}
|
|
115
115
|
displayEmpty // to make the placeholder visible. Refer to the following URL: https://v5.mui.com/material-ui/api/select/#select-prop-displayEmpty
|
|
@@ -118,17 +118,14 @@ const DropdownExampleTemplate: StoryFn<typeof Dropdown> = (args, context) => {
|
|
|
118
118
|
return (
|
|
119
119
|
<Box
|
|
120
120
|
sx={{
|
|
121
|
-
color: (theme) =>
|
|
122
|
-
theme.palette.lunit_token.core.text_light,
|
|
121
|
+
color: (theme) => theme.palette.lunit_token.core.text_light,
|
|
123
122
|
}}
|
|
124
123
|
>
|
|
125
124
|
Placeholder Single
|
|
126
125
|
</Box>
|
|
127
126
|
);
|
|
128
127
|
}
|
|
129
|
-
return dropdownContent[
|
|
130
|
-
selected as keyof typeof dropdownContent
|
|
131
|
-
];
|
|
128
|
+
return dropdownContent[selected as keyof typeof dropdownContent];
|
|
132
129
|
}}
|
|
133
130
|
>
|
|
134
131
|
{Object.entries(dropdownContent).map(([key, text]) => (
|
|
@@ -141,7 +138,7 @@ const DropdownExampleTemplate: StoryFn<typeof Dropdown> = (args, context) => {
|
|
|
141
138
|
{/* Example 2 (Placeholder with Multiple select) */}
|
|
142
139
|
<Dropdown
|
|
143
140
|
className={classNameFromGlobal}
|
|
144
|
-
sx={{ width:
|
|
141
|
+
sx={{ width: '200px' }}
|
|
145
142
|
value={ex2selectedValue}
|
|
146
143
|
onChange={handleEx2SelectedValueChange}
|
|
147
144
|
select="multiple"
|
|
@@ -151,8 +148,7 @@ const DropdownExampleTemplate: StoryFn<typeof Dropdown> = (args, context) => {
|
|
|
151
148
|
return (
|
|
152
149
|
<Box
|
|
153
150
|
sx={{
|
|
154
|
-
color: (theme) =>
|
|
155
|
-
theme.palette.lunit_token.core.text_light,
|
|
151
|
+
color: (theme) => theme.palette.lunit_token.core.text_light,
|
|
156
152
|
}}
|
|
157
153
|
>
|
|
158
154
|
Placeholder multiple
|
|
@@ -160,11 +156,8 @@ const DropdownExampleTemplate: StoryFn<typeof Dropdown> = (args, context) => {
|
|
|
160
156
|
);
|
|
161
157
|
}
|
|
162
158
|
return (selected as string[])
|
|
163
|
-
.map(
|
|
164
|
-
|
|
165
|
-
dropdownContent[value as keyof typeof dropdownContent]
|
|
166
|
-
)
|
|
167
|
-
.join(", ");
|
|
159
|
+
.map((value) => dropdownContent[value as keyof typeof dropdownContent])
|
|
160
|
+
.join(', ');
|
|
168
161
|
}}
|
|
169
162
|
>
|
|
170
163
|
{Object.entries(dropdownContent).map(([key, text]) => (
|
|
@@ -176,7 +169,7 @@ const DropdownExampleTemplate: StoryFn<typeof Dropdown> = (args, context) => {
|
|
|
176
169
|
</TableCell>
|
|
177
170
|
<TableCell>
|
|
178
171
|
{/* Example 3 (Button dropdown) */}
|
|
179
|
-
<Box sx={{ position:
|
|
172
|
+
<Box sx={{ position: 'relative' }}>
|
|
180
173
|
<Button onClick={handleOpen}>Dropdown Button</Button>
|
|
181
174
|
<Dropdown
|
|
182
175
|
value={ex3selectedValue}
|
|
@@ -185,15 +178,15 @@ const DropdownExampleTemplate: StoryFn<typeof Dropdown> = (args, context) => {
|
|
|
185
178
|
onClose={handleClose}
|
|
186
179
|
onOpen={handleOpen}
|
|
187
180
|
sx={{
|
|
188
|
-
clip:
|
|
189
|
-
clipPath:
|
|
190
|
-
height:
|
|
191
|
-
overflow:
|
|
192
|
-
position:
|
|
181
|
+
clip: 'rect(0 0 0 0)',
|
|
182
|
+
clipPath: 'inset(50%)',
|
|
183
|
+
height: '1px',
|
|
184
|
+
overflow: 'hidden',
|
|
185
|
+
position: 'absolute',
|
|
193
186
|
bottom: 0,
|
|
194
187
|
left: 0,
|
|
195
|
-
whiteSpace:
|
|
196
|
-
width:
|
|
188
|
+
whiteSpace: 'nowrap',
|
|
189
|
+
width: '1px',
|
|
197
190
|
}}
|
|
198
191
|
>
|
|
199
192
|
{Object.entries(dropdownContent).map(([key, text]) => (
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import React, { useState } from
|
|
2
|
-
import { StoryFn, Meta, StoryObj } from
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { StoryFn, Meta, StoryObj } from '@storybook/react-webpack5';
|
|
3
|
+
import { within } from '@testing-library/react';
|
|
3
4
|
|
|
4
|
-
import Dropdown, {
|
|
5
|
-
DropdownDivider,
|
|
6
|
-
DropdownItem,
|
|
7
|
-
DropdownSubtitle,
|
|
8
|
-
} from "@/components/Dropdown";
|
|
5
|
+
import Dropdown, { DropdownDivider, DropdownItem, DropdownSubtitle } from '@/components/Dropdown';
|
|
9
6
|
import {
|
|
10
7
|
Box,
|
|
11
8
|
SelectChangeEvent,
|
|
@@ -14,13 +11,13 @@ import {
|
|
|
14
11
|
TableCell,
|
|
15
12
|
TableHead,
|
|
16
13
|
TableRow,
|
|
17
|
-
} from
|
|
18
|
-
import Demo from
|
|
19
|
-
import ViewfinderT1 from
|
|
20
|
-
import RulerT2 from
|
|
14
|
+
} from '@mui/material';
|
|
15
|
+
import Demo from '@lunit/design-system-icons/Demo';
|
|
16
|
+
import ViewfinderT1 from '@lunit/design-system-icons/ViewfinderT1';
|
|
17
|
+
import RulerT2 from '@lunit/design-system-icons/RulerT2';
|
|
21
18
|
|
|
22
19
|
export default {
|
|
23
|
-
title:
|
|
20
|
+
title: 'Components/Dropdown',
|
|
24
21
|
component: DropdownItem,
|
|
25
22
|
argTypes: {
|
|
26
23
|
leftIcon: {
|
|
@@ -28,51 +25,48 @@ export default {
|
|
|
28
25
|
description: `Use this prop when you want to add icon.
|
|
29
26
|
\n It is added to the left of the text criteria`,
|
|
30
27
|
table: {
|
|
31
|
-
defaultValue: { summary:
|
|
32
|
-
type: { summary:
|
|
28
|
+
defaultValue: { summary: 'undefined' },
|
|
29
|
+
type: { summary: 'JSX.Element' },
|
|
33
30
|
},
|
|
34
31
|
},
|
|
35
32
|
rightText: {
|
|
36
|
-
description:
|
|
33
|
+
description: 'Use this prop when you want to add text.',
|
|
37
34
|
table: {
|
|
38
|
-
defaultValue: { summary:
|
|
35
|
+
defaultValue: { summary: 'undefined' },
|
|
39
36
|
},
|
|
40
37
|
},
|
|
41
38
|
isFilledStyle: {
|
|
42
39
|
control: {
|
|
43
|
-
type:
|
|
40
|
+
type: 'radio',
|
|
44
41
|
},
|
|
45
42
|
options: [true, false],
|
|
46
|
-
description:
|
|
43
|
+
description: 'Only for GNB or few situations of single select type.',
|
|
47
44
|
table: {
|
|
48
|
-
defaultValue: { summary:
|
|
45
|
+
defaultValue: { summary: 'false' },
|
|
49
46
|
},
|
|
50
47
|
},
|
|
51
48
|
disabled: {
|
|
52
49
|
control: {
|
|
53
|
-
type:
|
|
50
|
+
type: 'radio',
|
|
54
51
|
},
|
|
55
52
|
options: [true, false],
|
|
56
|
-
description:
|
|
53
|
+
description: 'If true, the component will be disabled.',
|
|
57
54
|
table: {
|
|
58
|
-
defaultValue: { summary:
|
|
55
|
+
defaultValue: { summary: 'false' },
|
|
59
56
|
},
|
|
60
57
|
},
|
|
61
58
|
},
|
|
62
59
|
parameters: {
|
|
63
60
|
controls: {
|
|
64
|
-
include: [
|
|
61
|
+
include: ['leftIcon', 'rightText', 'isFilledStyle', 'disabled'],
|
|
65
62
|
},
|
|
66
63
|
},
|
|
67
64
|
} as Meta<typeof DropdownItem>;
|
|
68
65
|
|
|
69
|
-
const BasicDropdownItemTemplate: StoryFn<typeof DropdownItem> = (
|
|
70
|
-
args,
|
|
71
|
-
context
|
|
72
|
-
) => {
|
|
66
|
+
const BasicDropdownItemTemplate: StoryFn<typeof DropdownItem> = (args, context) => {
|
|
73
67
|
const classNameFromGlobal = context.globals.theme;
|
|
74
68
|
|
|
75
|
-
const [selectedValue, setSelectedValue] = useState<string>(
|
|
69
|
+
const [selectedValue, setSelectedValue] = useState<string>('test1');
|
|
76
70
|
const handleSelectedValueChange = (event: SelectChangeEvent<unknown>) => {
|
|
77
71
|
const {
|
|
78
72
|
target: { value },
|
|
@@ -86,16 +80,15 @@ const BasicDropdownItemTemplate: StoryFn<typeof DropdownItem> = (
|
|
|
86
80
|
className={classNameFromGlobal}
|
|
87
81
|
value={selectedValue}
|
|
88
82
|
onChange={handleSelectedValueChange}
|
|
89
|
-
sx={{ width:
|
|
90
|
-
open={true}
|
|
83
|
+
sx={{ width: '150px' }}
|
|
91
84
|
>
|
|
92
|
-
<DropdownItem value={
|
|
85
|
+
<DropdownItem value={'test1'} {...args}>
|
|
93
86
|
Conquer cancer through AI
|
|
94
87
|
</DropdownItem>
|
|
95
|
-
<DropdownItem value={
|
|
88
|
+
<DropdownItem value={'test2'} {...args}>
|
|
96
89
|
test item 2
|
|
97
90
|
</DropdownItem>
|
|
98
|
-
<DropdownItem value={
|
|
91
|
+
<DropdownItem value={'test3'} {...args}>
|
|
99
92
|
test item 3
|
|
100
93
|
</DropdownItem>
|
|
101
94
|
</Dropdown>
|
|
@@ -105,47 +98,59 @@ const BasicDropdownItemTemplate: StoryFn<typeof DropdownItem> = (
|
|
|
105
98
|
|
|
106
99
|
export const BasicDropdownItem: StoryObj<typeof DropdownItem> = {
|
|
107
100
|
render: BasicDropdownItemTemplate,
|
|
108
|
-
name:
|
|
101
|
+
name: 'Basic DropdownItem',
|
|
109
102
|
parameters: {
|
|
110
|
-
chromatic: {
|
|
103
|
+
chromatic: {
|
|
104
|
+
disableSnapshot: true,
|
|
105
|
+
delay: 500,
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
play: async ({ canvasElement, userEvent }) => {
|
|
109
|
+
// canvasElement를 사용하여 DOM 요소 찾기
|
|
110
|
+
const canvas = within(canvasElement);
|
|
111
|
+
const dropdownButton = await canvas.getByRole('combobox');
|
|
112
|
+
|
|
113
|
+
if (dropdownButton) {
|
|
114
|
+
await userEvent.click(dropdownButton);
|
|
115
|
+
|
|
116
|
+
// dropdown이 완전히 열릴 때까지 잠시 대기
|
|
117
|
+
await new Promise((resolve) => setTimeout(resolve, 200));
|
|
118
|
+
}
|
|
111
119
|
},
|
|
112
120
|
};
|
|
113
121
|
|
|
114
|
-
const DropdownItemSelectStyleTemplate: StoryFn<typeof DropdownItem> = (
|
|
115
|
-
args,
|
|
116
|
-
context
|
|
117
|
-
) => {
|
|
122
|
+
const DropdownItemSelectStyleTemplate: StoryFn<typeof DropdownItem> = (args, context) => {
|
|
118
123
|
const classNameFromGlobal = context.globals.theme;
|
|
119
124
|
|
|
120
|
-
const [selectedValue, setSelectedValue] = useState<string>(
|
|
125
|
+
const [selectedValue, setSelectedValue] = useState<string>('test1');
|
|
121
126
|
const handleSelectedValueChange = (event: SelectChangeEvent<unknown>) => {
|
|
122
127
|
const {
|
|
123
128
|
target: { value },
|
|
124
129
|
} = event;
|
|
125
130
|
setSelectedValue(value as string);
|
|
126
131
|
};
|
|
127
|
-
const [selectedValue2, setSelectedValue2] = useState<string[]>([
|
|
132
|
+
const [selectedValue2, setSelectedValue2] = useState<string[]>(['test1']);
|
|
128
133
|
const handleSelectedValueChange2 = (event: SelectChangeEvent<unknown>) => {
|
|
129
134
|
const {
|
|
130
135
|
target: { value },
|
|
131
136
|
} = event;
|
|
132
137
|
setSelectedValue2(
|
|
133
138
|
// On autofill we get a stringified value.
|
|
134
|
-
typeof value ===
|
|
139
|
+
typeof value === 'string' ? value.split(',') : (value as string[]),
|
|
135
140
|
);
|
|
136
141
|
};
|
|
137
142
|
|
|
138
143
|
return (
|
|
139
|
-
<Table sx={{ maxWidth:
|
|
144
|
+
<Table sx={{ maxWidth: '1200px' }}>
|
|
140
145
|
<TableHead>
|
|
141
146
|
<TableRow>
|
|
142
|
-
<TableCell sx={{ typography:
|
|
147
|
+
<TableCell sx={{ typography: 'body2_14_medium', color: 'inherit' }}>
|
|
143
148
|
Single select
|
|
144
149
|
</TableCell>
|
|
145
|
-
<TableCell sx={{ typography:
|
|
150
|
+
<TableCell sx={{ typography: 'body2_14_medium', color: 'inherit' }}>
|
|
146
151
|
Single select(Filled Style)
|
|
147
152
|
</TableCell>
|
|
148
|
-
<TableCell sx={{ typography:
|
|
153
|
+
<TableCell sx={{ typography: 'body2_14_medium', color: 'inherit' }}>
|
|
149
154
|
Multiple select
|
|
150
155
|
</TableCell>
|
|
151
156
|
</TableRow>
|
|
@@ -157,15 +162,15 @@ const DropdownItemSelectStyleTemplate: StoryFn<typeof DropdownItem> = (
|
|
|
157
162
|
className={classNameFromGlobal}
|
|
158
163
|
value={selectedValue}
|
|
159
164
|
onChange={handleSelectedValueChange}
|
|
160
|
-
sx={{ width:
|
|
165
|
+
sx={{ width: '150px' }}
|
|
161
166
|
>
|
|
162
|
-
<DropdownItem value={
|
|
167
|
+
<DropdownItem value={'test1'} {...args}>
|
|
163
168
|
Conquer cancer through AI
|
|
164
169
|
</DropdownItem>
|
|
165
|
-
<DropdownItem value={
|
|
170
|
+
<DropdownItem value={'test2'} {...args}>
|
|
166
171
|
test item 2
|
|
167
172
|
</DropdownItem>
|
|
168
|
-
<DropdownItem value={
|
|
173
|
+
<DropdownItem value={'test3'} {...args}>
|
|
169
174
|
test item 3
|
|
170
175
|
</DropdownItem>
|
|
171
176
|
</Dropdown>
|
|
@@ -175,15 +180,15 @@ const DropdownItemSelectStyleTemplate: StoryFn<typeof DropdownItem> = (
|
|
|
175
180
|
className={classNameFromGlobal}
|
|
176
181
|
value={selectedValue}
|
|
177
182
|
onChange={handleSelectedValueChange}
|
|
178
|
-
sx={{ width:
|
|
183
|
+
sx={{ width: '150px' }}
|
|
179
184
|
>
|
|
180
|
-
<DropdownItem value={
|
|
185
|
+
<DropdownItem value={'test1'} isFilledStyle {...args}>
|
|
181
186
|
Conquer cancer through AI
|
|
182
187
|
</DropdownItem>
|
|
183
|
-
<DropdownItem value={
|
|
188
|
+
<DropdownItem value={'test2'} isFilledStyle {...args}>
|
|
184
189
|
test item 2
|
|
185
190
|
</DropdownItem>
|
|
186
|
-
<DropdownItem value={
|
|
191
|
+
<DropdownItem value={'test3'} isFilledStyle {...args}>
|
|
187
192
|
test item 3
|
|
188
193
|
</DropdownItem>
|
|
189
194
|
</Dropdown>
|
|
@@ -194,15 +199,15 @@ const DropdownItemSelectStyleTemplate: StoryFn<typeof DropdownItem> = (
|
|
|
194
199
|
select="multiple"
|
|
195
200
|
value={selectedValue2}
|
|
196
201
|
onChange={handleSelectedValueChange2}
|
|
197
|
-
sx={{ width:
|
|
202
|
+
sx={{ width: '230px' }}
|
|
198
203
|
>
|
|
199
|
-
<DropdownItem value={
|
|
204
|
+
<DropdownItem value={'test1'} {...args}>
|
|
200
205
|
test item1
|
|
201
206
|
</DropdownItem>
|
|
202
|
-
<DropdownItem value={
|
|
207
|
+
<DropdownItem value={'test2'} {...args}>
|
|
203
208
|
test item 2
|
|
204
209
|
</DropdownItem>
|
|
205
|
-
<DropdownItem value={
|
|
210
|
+
<DropdownItem value={'test3'} {...args}>
|
|
206
211
|
test item 3
|
|
207
212
|
</DropdownItem>
|
|
208
213
|
</Dropdown>
|
|
@@ -215,7 +220,7 @@ const DropdownItemSelectStyleTemplate: StoryFn<typeof DropdownItem> = (
|
|
|
215
220
|
|
|
216
221
|
export const DropdownItemSelectStyle: StoryObj<typeof DropdownItem> = {
|
|
217
222
|
render: DropdownItemSelectStyleTemplate,
|
|
218
|
-
name:
|
|
223
|
+
name: 'DropdownItem : Style by Select Type',
|
|
219
224
|
parameters: {
|
|
220
225
|
controls: {
|
|
221
226
|
include: [],
|
|
@@ -224,13 +229,10 @@ export const DropdownItemSelectStyle: StoryObj<typeof DropdownItem> = {
|
|
|
224
229
|
},
|
|
225
230
|
};
|
|
226
231
|
|
|
227
|
-
const DropdownItemWithIconTextTemplate: StoryFn<typeof DropdownItem> = (
|
|
228
|
-
args,
|
|
229
|
-
context
|
|
230
|
-
) => {
|
|
232
|
+
const DropdownItemWithIconTextTemplate: StoryFn<typeof DropdownItem> = (args, context) => {
|
|
231
233
|
const classNameFromGlobal = context.globals.theme;
|
|
232
234
|
|
|
233
|
-
const [selectedValue, setSelectedValue] = useState<string>(
|
|
235
|
+
const [selectedValue, setSelectedValue] = useState<string>('test1');
|
|
234
236
|
const handleSelectedValueChange = (event: SelectChangeEvent<unknown>) => {
|
|
235
237
|
const {
|
|
236
238
|
target: { value },
|
|
@@ -244,11 +246,10 @@ const DropdownItemWithIconTextTemplate: StoryFn<typeof DropdownItem> = (
|
|
|
244
246
|
className={classNameFromGlobal}
|
|
245
247
|
value={selectedValue}
|
|
246
248
|
onChange={handleSelectedValueChange}
|
|
247
|
-
sx={{ width:
|
|
248
|
-
open={true}
|
|
249
|
+
sx={{ width: '150px' }}
|
|
249
250
|
>
|
|
250
251
|
<DropdownItem
|
|
251
|
-
value={
|
|
252
|
+
value={'test1'}
|
|
252
253
|
leftIcon={<Demo fontSize="small" />}
|
|
253
254
|
rightText="lunit"
|
|
254
255
|
{...args}
|
|
@@ -256,7 +257,7 @@ const DropdownItemWithIconTextTemplate: StoryFn<typeof DropdownItem> = (
|
|
|
256
257
|
Conquer cancer through AI
|
|
257
258
|
</DropdownItem>
|
|
258
259
|
<DropdownItem
|
|
259
|
-
value={
|
|
260
|
+
value={'test2'}
|
|
260
261
|
leftIcon={<RulerT2 fontSize="small" />}
|
|
261
262
|
rightText="design"
|
|
262
263
|
{...args}
|
|
@@ -264,7 +265,7 @@ const DropdownItemWithIconTextTemplate: StoryFn<typeof DropdownItem> = (
|
|
|
264
265
|
test item 2
|
|
265
266
|
</DropdownItem>
|
|
266
267
|
<DropdownItem
|
|
267
|
-
value={
|
|
268
|
+
value={'test3'}
|
|
268
269
|
leftIcon={<ViewfinderT1 fontSize="small" />}
|
|
269
270
|
rightText="system"
|
|
270
271
|
{...args}
|
|
@@ -278,22 +279,34 @@ const DropdownItemWithIconTextTemplate: StoryFn<typeof DropdownItem> = (
|
|
|
278
279
|
|
|
279
280
|
export const DropdownItemWithIconText: StoryObj<typeof DropdownItem> = {
|
|
280
281
|
render: DropdownItemWithIconTextTemplate,
|
|
281
|
-
name:
|
|
282
|
+
name: 'DropdownItem : With Left Icon, Right Text',
|
|
282
283
|
parameters: {
|
|
283
284
|
controls: {
|
|
284
285
|
include: [],
|
|
285
286
|
},
|
|
286
|
-
chromatic: {
|
|
287
|
+
chromatic: {
|
|
288
|
+
disableSnapshot: true,
|
|
289
|
+
delay: 500,
|
|
290
|
+
},
|
|
291
|
+
},
|
|
292
|
+
play: async ({ canvasElement, userEvent }) => {
|
|
293
|
+
// canvasElement를 사용하여 DOM 요소 찾기
|
|
294
|
+
const canvas = within(canvasElement);
|
|
295
|
+
const dropdownButton = await canvas.getByRole('combobox');
|
|
296
|
+
|
|
297
|
+
if (dropdownButton) {
|
|
298
|
+
await userEvent.click(dropdownButton);
|
|
299
|
+
|
|
300
|
+
// dropdown이 완전히 열릴 때까지 잠시 대기
|
|
301
|
+
await new Promise((resolve) => setTimeout(resolve, 200));
|
|
302
|
+
}
|
|
287
303
|
},
|
|
288
304
|
};
|
|
289
305
|
|
|
290
|
-
const DropdownItemDividerSubtitleTemplate: StoryFn<typeof DropdownItem> = (
|
|
291
|
-
args,
|
|
292
|
-
context
|
|
293
|
-
) => {
|
|
306
|
+
const DropdownItemDividerSubtitleTemplate: StoryFn<typeof DropdownItem> = (args, context) => {
|
|
294
307
|
const classNameFromGlobal = context.globals.theme;
|
|
295
308
|
|
|
296
|
-
const [selectedValue, setSelectedValue] = useState<string>(
|
|
309
|
+
const [selectedValue, setSelectedValue] = useState<string>('test1');
|
|
297
310
|
const handleSelectedValueChange = (event: SelectChangeEvent<unknown>) => {
|
|
298
311
|
const {
|
|
299
312
|
target: { value },
|
|
@@ -307,40 +320,27 @@ const DropdownItemDividerSubtitleTemplate: StoryFn<typeof DropdownItem> = (
|
|
|
307
320
|
className={classNameFromGlobal}
|
|
308
321
|
value={selectedValue}
|
|
309
322
|
onChange={handleSelectedValueChange}
|
|
310
|
-
sx={{ width:
|
|
311
|
-
open={true}
|
|
323
|
+
sx={{ width: '150px' }}
|
|
312
324
|
>
|
|
313
325
|
<DropdownSubtitle title="Subtitle 1" />
|
|
314
|
-
<DropdownItem
|
|
315
|
-
value={"test1"}
|
|
316
|
-
leftIcon={<Demo fontSize="small" />}
|
|
317
|
-
{...args}
|
|
318
|
-
>
|
|
326
|
+
<DropdownItem value={'test1'} leftIcon={<Demo fontSize="small" />} {...args}>
|
|
319
327
|
Conquer cancer through AI
|
|
320
328
|
</DropdownItem>
|
|
321
|
-
<DropdownItem
|
|
322
|
-
value={"test2"}
|
|
323
|
-
leftIcon={<RulerT2 fontSize="small" />}
|
|
324
|
-
{...args}
|
|
325
|
-
>
|
|
329
|
+
<DropdownItem value={'test2'} leftIcon={<RulerT2 fontSize="small" />} {...args}>
|
|
326
330
|
test item 2
|
|
327
331
|
</DropdownItem>
|
|
328
|
-
<DropdownItem
|
|
329
|
-
value={"test3"}
|
|
330
|
-
leftIcon={<ViewfinderT1 fontSize="small" />}
|
|
331
|
-
{...args}
|
|
332
|
-
>
|
|
332
|
+
<DropdownItem value={'test3'} leftIcon={<ViewfinderT1 fontSize="small" />} {...args}>
|
|
333
333
|
test item 3
|
|
334
334
|
</DropdownItem>
|
|
335
335
|
<DropdownDivider />
|
|
336
336
|
<DropdownSubtitle title="Subtitle 2" />
|
|
337
|
-
<DropdownItem value={
|
|
337
|
+
<DropdownItem value={'test4'} {...args}>
|
|
338
338
|
Example 1
|
|
339
339
|
</DropdownItem>
|
|
340
|
-
<DropdownItem value={
|
|
340
|
+
<DropdownItem value={'test5'} {...args}>
|
|
341
341
|
Example 2
|
|
342
342
|
</DropdownItem>
|
|
343
|
-
<DropdownItem value={
|
|
343
|
+
<DropdownItem value={'test6'} {...args}>
|
|
344
344
|
Example 3
|
|
345
345
|
</DropdownItem>
|
|
346
346
|
</Dropdown>
|
|
@@ -350,11 +350,26 @@ const DropdownItemDividerSubtitleTemplate: StoryFn<typeof DropdownItem> = (
|
|
|
350
350
|
|
|
351
351
|
export const DropdownItemDividerSubtitle: StoryObj<typeof DropdownItem> = {
|
|
352
352
|
render: DropdownItemDividerSubtitleTemplate,
|
|
353
|
-
name:
|
|
353
|
+
name: 'DropdownItem : Divider, Subtitle',
|
|
354
354
|
parameters: {
|
|
355
355
|
controls: {
|
|
356
356
|
include: [],
|
|
357
357
|
},
|
|
358
|
-
chromatic: {
|
|
358
|
+
chromatic: {
|
|
359
|
+
disableSnapshot: true,
|
|
360
|
+
delay: 500,
|
|
361
|
+
},
|
|
362
|
+
},
|
|
363
|
+
play: async ({ canvasElement, userEvent }) => {
|
|
364
|
+
// canvasElement를 사용하여 DOM 요소 찾기
|
|
365
|
+
const canvas = within(canvasElement);
|
|
366
|
+
const dropdownButton = await canvas.getByRole('combobox');
|
|
367
|
+
|
|
368
|
+
if (dropdownButton) {
|
|
369
|
+
await userEvent.click(dropdownButton);
|
|
370
|
+
|
|
371
|
+
// dropdown이 완전히 열릴 때까지 잠시 대기
|
|
372
|
+
await new Promise((resolve) => setTimeout(resolve, 200));
|
|
373
|
+
}
|
|
359
374
|
},
|
|
360
375
|
};
|