@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.
Files changed (354) hide show
  1. package/.babelrc.json +1 -1
  2. package/README.md +22 -21
  3. package/dist/cjs/components/Alert/index.js +1 -1
  4. package/dist/cjs/components/Alert/index.js.map +1 -1
  5. package/dist/cjs/components/Button/index.js +1 -1
  6. package/dist/cjs/components/Button/index.js.map +1 -1
  7. package/dist/cjs/components/Checkbox/index.js +1 -1
  8. package/dist/cjs/components/Checkbox/index.js.map +1 -1
  9. package/dist/cjs/components/Chip/index.js +1 -1
  10. package/dist/cjs/components/Chip/index.js.map +1 -1
  11. package/dist/cjs/components/DataTable/index.js.map +1 -1
  12. package/dist/cjs/components/DatePicker/index.js.map +1 -1
  13. package/dist/cjs/components/Dialog/index.js +1 -1
  14. package/dist/cjs/components/Dialog/index.js.map +1 -1
  15. package/dist/cjs/components/Dropdown/index.js +1 -1
  16. package/dist/cjs/components/Dropdown/index.js.map +1 -1
  17. package/dist/cjs/components/FormLabel/index.js +1 -1
  18. package/dist/cjs/components/FormLabel/index.js.map +1 -1
  19. package/dist/cjs/components/Radio/index.js +1 -1
  20. package/dist/cjs/components/Radio/index.js.map +1 -1
  21. package/dist/cjs/components/RadioGroup/index.js.map +1 -1
  22. package/dist/cjs/components/TextField/index.js +1 -1
  23. package/dist/cjs/components/TextField/index.js.map +1 -1
  24. package/dist/cjs/components/Toggle/index.js +1 -1
  25. package/dist/cjs/components/Toggle/index.js.map +1 -1
  26. package/dist/cjs/components/ToggleButton/index.js +1 -1
  27. package/dist/cjs/components/ToggleButton/index.js.map +1 -1
  28. package/dist/cjs/components/Tooltip/index.js.map +1 -1
  29. package/dist/cjs/components/Typography/index.js.map +1 -1
  30. package/dist/cjs/index.js +1 -1
  31. package/dist/cjs/index.js.map +1 -1
  32. package/dist/components/Alert/Alert.js +8 -8
  33. package/dist/components/Alert/Alert.js.map +1 -1
  34. package/dist/components/Alert/Alert.styled.js +26 -26
  35. package/dist/components/Alert/Alert.styled.js.map +1 -1
  36. package/dist/components/Alert/Alert.utils.js +9 -9
  37. package/dist/components/Alert/Alert.utils.js.map +1 -1
  38. package/dist/components/Alert/index.js +1 -1
  39. package/dist/components/Button/Button.js +23 -17
  40. package/dist/components/Button/Button.js.map +1 -1
  41. package/dist/components/Button/Button.styled.js +88 -88
  42. package/dist/components/Button/Button.styled.js.map +1 -1
  43. package/dist/components/Button/index.js +1 -1
  44. package/dist/components/Button/utils/getButtonPaddingBySizeAndKind.js +9 -9
  45. package/dist/components/Button/utils/getButtonPaddingBySizeAndKind.js.map +1 -1
  46. package/dist/components/Button/utils/getHoverStyle.js +1 -1
  47. package/dist/components/Button/utils/getHoverStyle.js.map +1 -1
  48. package/dist/components/Button/utils/getIconButtonPaddingBySizeAndKind.js +6 -12
  49. package/dist/components/Button/utils/getIconButtonPaddingBySizeAndKind.js.map +1 -1
  50. package/dist/components/Checkbox/Checkbox.js +9 -9
  51. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  52. package/dist/components/Checkbox/index.js +1 -1
  53. package/dist/components/Chip/Chip.js +29 -26
  54. package/dist/components/Chip/Chip.js.map +1 -1
  55. package/dist/components/Chip/Chip.styled.js +52 -52
  56. package/dist/components/Chip/Chip.styled.js.map +1 -1
  57. package/dist/components/Chip/consts.js +5 -5
  58. package/dist/components/Chip/index.js +1 -1
  59. package/dist/components/DataTable/DataTable.js +1 -1
  60. package/dist/components/DataTable/index.js +1 -1
  61. package/dist/components/DatePicker/DatePicker.js +1 -1
  62. package/dist/components/DatePicker/index.js +1 -1
  63. package/dist/components/Dialog/Dialog.js +18 -18
  64. package/dist/components/Dialog/Dialog.js.map +1 -1
  65. package/dist/components/Dialog/Dialog.styled.js +90 -90
  66. package/dist/components/Dialog/Dialog.styled.js.map +1 -1
  67. package/dist/components/Dialog/components/DialogAction.js +6 -6
  68. package/dist/components/Dialog/index.js +1 -1
  69. package/dist/components/Dropdown/Dropdown.js +23 -21
  70. package/dist/components/Dropdown/Dropdown.js.map +1 -1
  71. package/dist/components/Dropdown/Dropdown.styled.js +85 -86
  72. package/dist/components/Dropdown/Dropdown.styled.js.map +1 -1
  73. package/dist/components/Dropdown/DropdownItem.js +14 -14
  74. package/dist/components/Dropdown/DropdownItem.js.map +1 -1
  75. package/dist/components/Dropdown/index.js +2 -2
  76. package/dist/components/Dropdown/index.js.map +1 -1
  77. package/dist/components/FormLabel/FormLabel.js +1 -1
  78. package/dist/components/FormLabel/FormLabel.styled.js +2 -2
  79. package/dist/components/FormLabel/FormLabel.styled.js.map +1 -1
  80. package/dist/components/FormLabel/index.js +1 -1
  81. package/dist/components/Radio/Radio.js +8 -8
  82. package/dist/components/Radio/Radio.js.map +1 -1
  83. package/dist/components/Radio/index.js +1 -1
  84. package/dist/components/RadioGroup/index.js +1 -1
  85. package/dist/components/TextField/TextField.js +8 -8
  86. package/dist/components/TextField/TextField.js.map +1 -1
  87. package/dist/components/TextField/TextField.style.js +112 -112
  88. package/dist/components/TextField/TextField.style.js.map +1 -1
  89. package/dist/components/TextField/TextFieldIcon.js +2 -2
  90. package/dist/components/TextField/TextFieldIcon.js.map +1 -1
  91. package/dist/components/TextField/index.js +1 -1
  92. package/dist/components/Toast/Toast.js +13 -13
  93. package/dist/components/Toast/Toast.js.map +1 -1
  94. package/dist/components/Toast/Toast.styled.js +26 -26
  95. package/dist/components/Toast/Toast.utils.js +3 -3
  96. package/dist/components/Toast/Toast.utils.js.map +1 -1
  97. package/dist/components/Toast/index.js +1 -1
  98. package/dist/components/Toggle/Toggle.js +3 -4
  99. package/dist/components/Toggle/Toggle.js.map +1 -1
  100. package/dist/components/Toggle/Toggle.styled.js +30 -30
  101. package/dist/components/Toggle/Toggle.styled.js.map +1 -1
  102. package/dist/components/Toggle/index.js +1 -1
  103. package/dist/components/ToggleButton/ToggleButton.js +6 -6
  104. package/dist/components/ToggleButton/ToggleButton.js.map +1 -1
  105. package/dist/components/ToggleButton/ToggleButton.styled.js +20 -20
  106. package/dist/components/ToggleButton/ToggleButton.styled.js.map +1 -1
  107. package/dist/components/ToggleButton/index.js +1 -1
  108. package/dist/components/ToggleButtonGroup/ToggleButtonGroup.js +2 -2
  109. package/dist/components/ToggleButtonGroup/ToggleButtonGroup.js.map +1 -1
  110. package/dist/components/ToggleButtonGroup/index.js +1 -1
  111. package/dist/components/Tooltip/Tooltip.js +1 -1
  112. package/dist/components/Tooltip/index.js +1 -1
  113. package/dist/components/Typography/Typography.js +1 -1
  114. package/dist/components/Typography/Typography.js.map +1 -1
  115. package/dist/components/Typography/index.js +1 -1
  116. package/dist/foundation/Elevation/index.js +27 -27
  117. package/dist/foundation/Elevation/utils.js +1 -1
  118. package/dist/foundation/Elevation/utils.js.map +1 -1
  119. package/dist/foundation/Typography/index.js +35 -35
  120. package/dist/foundation/Typography/index.js.map +1 -1
  121. package/dist/foundation/Typography/tokens.js +136 -136
  122. package/dist/foundation/Typography/tokens.js.map +1 -1
  123. package/dist/foundation/colors/base/blue.js +12 -12
  124. package/dist/foundation/colors/base/green.js +12 -12
  125. package/dist/foundation/colors/base/grey.js +28 -28
  126. package/dist/foundation/colors/base/index.js +11 -11
  127. package/dist/foundation/colors/base/lunitGreen.js +11 -11
  128. package/dist/foundation/colors/base/lunitTeal.js +12 -12
  129. package/dist/foundation/colors/base/magenta.js +12 -12
  130. package/dist/foundation/colors/base/opacity.js +4 -4
  131. package/dist/foundation/colors/base/orange.js +12 -12
  132. package/dist/foundation/colors/base/purple.js +12 -12
  133. package/dist/foundation/colors/base/red.js +12 -12
  134. package/dist/foundation/colors/base/yellow.js +12 -12
  135. package/dist/foundation/colors/index.js +119 -121
  136. package/dist/foundation/colors/index.js.map +1 -1
  137. package/dist/foundation/colors/token/component.js +184 -212
  138. package/dist/foundation/colors/token/component.js.map +1 -1
  139. package/dist/foundation/colors/token/core.js +112 -133
  140. package/dist/foundation/colors/token/core.js.map +1 -1
  141. package/dist/foundation/colors/token/index.js +2 -2
  142. package/dist/foundation/index.js +5 -5
  143. package/dist/index.js +20 -20
  144. package/dist/theme.js +6 -6
  145. package/dist/types/components/Alert/Alert.d.ts +2 -2
  146. package/dist/types/components/Alert/Alert.styled.d.ts +1 -2
  147. package/dist/types/components/Alert/Alert.types.d.ts +2 -2
  148. package/dist/types/components/Alert/Alert.utils.d.ts +1 -1
  149. package/dist/types/components/Alert/index.d.ts +1 -1
  150. package/dist/types/components/Button/Button.d.ts +1 -1
  151. package/dist/types/components/Button/Button.styled.d.ts +249 -265
  152. package/dist/types/components/Button/Button.types.d.ts +16 -16
  153. package/dist/types/components/Button/index.d.ts +1 -1
  154. package/dist/types/components/Button/utils/getButtonPaddingBySizeAndKind.d.ts +4 -4
  155. package/dist/types/components/Button/utils/getHoverStyle.d.ts +2 -1
  156. package/dist/types/components/Button/utils/getIconButtonPaddingBySizeAndKind.d.ts +4 -4
  157. package/dist/types/components/Checkbox/Checkbox.d.ts +1 -1
  158. package/dist/types/components/Checkbox/index.d.ts +1 -1
  159. package/dist/types/components/Chip/Chip.d.ts +1 -1
  160. package/dist/types/components/Chip/Chip.styled.d.ts +6 -79
  161. package/dist/types/components/Chip/Chip.types.d.ts +15 -14
  162. package/dist/types/components/Chip/index.d.ts +1 -1
  163. package/dist/types/components/DataTable/index.d.ts +1 -1
  164. package/dist/types/components/DatePicker/index.d.ts +1 -1
  165. package/dist/types/components/Dialog/Dialog.d.ts +11 -11
  166. package/dist/types/components/Dialog/Dialog.styled.d.ts +3 -4
  167. package/dist/types/components/Dialog/components/DialogAction.d.ts +2 -2
  168. package/dist/types/components/Dialog/index.d.ts +2 -2
  169. package/dist/types/components/Dropdown/Dropdown.d.ts +2 -2
  170. package/dist/types/components/Dropdown/Dropdown.styled.d.ts +4 -39
  171. package/dist/types/components/Dropdown/Dropdown.types.d.ts +5 -5
  172. package/dist/types/components/Dropdown/DropdownItem.d.ts +3 -3
  173. package/dist/types/components/Dropdown/index.d.ts +3 -3
  174. package/dist/types/components/FormLabel/FormLabel.d.ts +1 -1
  175. package/dist/types/components/FormLabel/index.d.ts +1 -1
  176. package/dist/types/components/Radio/Radio.d.ts +1 -1
  177. package/dist/types/components/Radio/index.d.ts +1 -1
  178. package/dist/types/components/RadioGroup/index.d.ts +1 -1
  179. package/dist/types/components/TextField/TextField.d.ts +2 -2
  180. package/dist/types/components/TextField/TextField.style.d.ts +3 -4
  181. package/dist/types/components/TextField/TextField.types.d.ts +6 -6
  182. package/dist/types/components/TextField/TextFieldIcon.d.ts +2 -2
  183. package/dist/types/components/TextField/index.d.ts +2 -2
  184. package/dist/types/components/Toast/Toast.d.ts +2 -2
  185. package/dist/types/components/Toast/Toast.types.d.ts +3 -3
  186. package/dist/types/components/Toast/Toast.utils.d.ts +1 -1
  187. package/dist/types/components/Toast/index.d.ts +2 -2
  188. package/dist/types/components/Toggle/Toggle.d.ts +1 -1
  189. package/dist/types/components/Toggle/Toggle.styled.d.ts +2 -2
  190. package/dist/types/components/Toggle/Toggle.types.d.ts +3 -3
  191. package/dist/types/components/Toggle/index.d.ts +1 -1
  192. package/dist/types/components/ToggleButton/ToggleButton.d.ts +1 -1
  193. package/dist/types/components/ToggleButton/ToggleButton.styled.d.ts +2 -34
  194. package/dist/types/components/ToggleButton/ToggleButton.types.d.ts +10 -10
  195. package/dist/types/components/ToggleButton/index.d.ts +1 -1
  196. package/dist/types/components/ToggleButtonGroup/ToggleButtonGroup.d.ts +1 -1
  197. package/dist/types/components/ToggleButtonGroup/index.d.ts +1 -1
  198. package/dist/types/components/Tooltip/index.d.ts +1 -1
  199. package/dist/types/components/Typography/Typography.d.ts +6 -6
  200. package/dist/types/components/Typography/index.d.ts +1 -1
  201. package/dist/types/components/index.d.ts +2 -2
  202. package/dist/types/foundation/Elevation/index.d.ts +22 -22
  203. package/dist/types/foundation/Typography/index.d.ts +78 -78
  204. package/dist/types/foundation/Typography/tokens.d.ts +69 -69
  205. package/dist/types/foundation/colors/base/index.d.ts +11 -11
  206. package/dist/types/foundation/colors/index.d.ts +13 -20
  207. package/dist/types/foundation/colors/token/component.d.ts +1 -1
  208. package/dist/types/foundation/colors/token/core.d.ts +1 -1
  209. package/dist/types/foundation/colors/token/index.d.ts +2 -2
  210. package/dist/types/foundation/colors/types.d.ts +0 -7
  211. package/dist/types/foundation/index.d.ts +4 -11
  212. package/dist/types/foundation/spacing.d.ts +1 -1
  213. package/dist/types/index.d.ts +20 -20
  214. package/dist/types/theme.d.ts +1 -1
  215. package/package.json +22 -26
  216. package/src/components/Alert/Alert.styled.ts +39 -49
  217. package/src/components/Alert/Alert.tsx +10 -16
  218. package/src/components/Alert/Alert.types.ts +2 -2
  219. package/src/components/Alert/Alert.utils.ts +13 -22
  220. package/src/components/Alert/index.ts +1 -1
  221. package/src/components/Button/Button.styled.ts +98 -101
  222. package/src/components/Button/Button.tsx +71 -69
  223. package/src/components/Button/Button.types.ts +19 -21
  224. package/src/components/Button/index.ts +1 -1
  225. package/src/components/Button/utils/getButtonPaddingBySizeAndKind.ts +13 -13
  226. package/src/components/Button/utils/getHoverStyle.ts +4 -2
  227. package/src/components/Button/utils/getIconButtonPaddingBySizeAndKind.ts +10 -19
  228. package/src/components/Checkbox/Checkbox.tsx +13 -25
  229. package/src/components/Checkbox/index.ts +1 -1
  230. package/src/components/Chip/Chip.styled.ts +69 -72
  231. package/src/components/Chip/Chip.tsx +33 -55
  232. package/src/components/Chip/Chip.types.ts +18 -24
  233. package/src/components/Chip/consts.ts +5 -5
  234. package/src/components/Chip/index.ts +1 -1
  235. package/src/components/DataTable/DataTable.tsx +2 -2
  236. package/src/components/DataTable/index.ts +1 -1
  237. package/src/components/DatePicker/DatePicker.tsx +2 -2
  238. package/src/components/DatePicker/index.ts +1 -1
  239. package/src/components/Dialog/Dialog.styled.ts +112 -114
  240. package/src/components/Dialog/Dialog.tsx +41 -46
  241. package/src/components/Dialog/components/DialogAction.tsx +8 -8
  242. package/src/components/Dialog/index.ts +3 -3
  243. package/src/components/Dropdown/Dropdown.styled.tsx +88 -89
  244. package/src/components/Dropdown/Dropdown.tsx +29 -30
  245. package/src/components/Dropdown/Dropdown.types.ts +6 -5
  246. package/src/components/Dropdown/DropdownItem.tsx +18 -29
  247. package/src/components/Dropdown/index.ts +3 -7
  248. package/src/components/FormLabel/FormLabel.styled.ts +3 -3
  249. package/src/components/FormLabel/FormLabel.tsx +3 -3
  250. package/src/components/FormLabel/index.ts +1 -1
  251. package/src/components/Radio/Radio.tsx +12 -29
  252. package/src/components/Radio/index.ts +1 -1
  253. package/src/components/RadioGroup/index.ts +1 -1
  254. package/src/components/TextField/TextField.style.ts +123 -132
  255. package/src/components/TextField/TextField.tsx +50 -62
  256. package/src/components/TextField/TextField.types.ts +7 -8
  257. package/src/components/TextField/TextFieldIcon.tsx +4 -7
  258. package/src/components/TextField/index.ts +2 -2
  259. package/src/components/Toast/Toast.styled.ts +26 -26
  260. package/src/components/Toast/Toast.tsx +14 -28
  261. package/src/components/Toast/Toast.types.ts +3 -8
  262. package/src/components/Toast/Toast.utils.ts +5 -8
  263. package/src/components/Toast/index.tsx +2 -2
  264. package/src/components/Toggle/Toggle.styled.ts +31 -32
  265. package/src/components/Toggle/Toggle.tsx +5 -11
  266. package/src/components/Toggle/Toggle.types.ts +3 -3
  267. package/src/components/Toggle/index.ts +1 -1
  268. package/src/components/ToggleButton/ToggleButton.styled.ts +47 -49
  269. package/src/components/ToggleButton/ToggleButton.tsx +91 -97
  270. package/src/components/ToggleButton/ToggleButton.types.ts +10 -10
  271. package/src/components/ToggleButton/index.ts +1 -1
  272. package/src/components/ToggleButtonGroup/ToggleButtonGroup.tsx +3 -8
  273. package/src/components/ToggleButtonGroup/index.tsx +1 -1
  274. package/src/components/Tooltip/Tooltip.tsx +2 -2
  275. package/src/components/Tooltip/index.ts +1 -1
  276. package/src/components/Typography/Typography.tsx +7 -10
  277. package/src/components/Typography/index.ts +1 -1
  278. package/src/components/index.ts +2 -2
  279. package/src/foundation/Elevation/index.ts +27 -27
  280. package/src/foundation/Elevation/utils.ts +14 -8
  281. package/src/foundation/Typography/index.ts +58 -57
  282. package/src/foundation/Typography/tokens.ts +138 -138
  283. package/src/foundation/colors/base/blue.ts +12 -12
  284. package/src/foundation/colors/base/green.ts +12 -12
  285. package/src/foundation/colors/base/grey.ts +28 -28
  286. package/src/foundation/colors/base/index.ts +11 -11
  287. package/src/foundation/colors/base/lunitGreen.ts +11 -11
  288. package/src/foundation/colors/base/lunitTeal.ts +12 -12
  289. package/src/foundation/colors/base/magenta.ts +12 -12
  290. package/src/foundation/colors/base/opacity.ts +4 -4
  291. package/src/foundation/colors/base/orange.ts +12 -12
  292. package/src/foundation/colors/base/purple.ts +12 -12
  293. package/src/foundation/colors/base/red.ts +12 -12
  294. package/src/foundation/colors/base/yellow.ts +12 -12
  295. package/src/foundation/colors/index.ts +119 -120
  296. package/src/foundation/colors/token/component.ts +185 -213
  297. package/src/foundation/colors/token/core.ts +113 -134
  298. package/src/foundation/colors/token/index.ts +2 -2
  299. package/src/foundation/colors/types.ts +0 -7
  300. package/src/foundation/index.ts +8 -8
  301. package/src/foundation/spacing.ts +1 -1
  302. package/src/index.ts +20 -20
  303. package/src/stories/GettingStarted.mdx +9 -15
  304. package/src/stories/components/Alert/Alert.stories.tsx +39 -46
  305. package/src/stories/components/Button/BasicButton.stories.tsx +68 -59
  306. package/src/stories/components/Button/ButtonDocs.mdx +17 -41
  307. package/src/stories/components/Button/Color.stories.tsx +28 -51
  308. package/src/stories/components/Button/IconButton.stories.tsx +40 -47
  309. package/src/stories/components/Button/Kind.stories.tsx +100 -213
  310. package/src/stories/components/CheckBox/BasicCheckbox.stories.tsx +52 -71
  311. package/src/stories/components/CheckBox/CheckboxDocs.mdx +6 -6
  312. package/src/stories/components/Chip/Chip.stories.tsx +75 -75
  313. package/src/stories/components/Chip/ChipDocs.mdx +12 -13
  314. package/src/stories/components/DataTable/DataTable.stories.tsx +4 -4
  315. package/src/stories/components/DatePicker/DatePicker.stories.tsx +4 -4
  316. package/src/stories/components/Dialog/Dialog.stories.tsx +103 -124
  317. package/src/stories/components/Dialog/DialogDocs.mdx +7 -13
  318. package/src/stories/components/Dropdown/Dropdown.stories.tsx +96 -82
  319. package/src/stories/components/Dropdown/DropdownDocs.mdx +275 -0
  320. package/src/stories/components/Dropdown/DropdownExamples.stories.tsx +40 -47
  321. package/src/stories/components/Dropdown/DropdownItem.stories.tsx +113 -98
  322. package/src/stories/components/SelectControl/RadioGroup.stories.tsx +17 -30
  323. package/src/stories/components/SelectControl/RadioStatus.stories.tsx +16 -23
  324. package/src/stories/components/SelectControl/Toggle.stories.tsx +33 -78
  325. package/src/stories/components/TextField/BasicTextField.stories.tsx +44 -60
  326. package/src/stories/components/TextField/TextFieldDocs.mdx +8 -12
  327. package/src/stories/components/TextField/TextFieldMulti.stories.tsx +39 -58
  328. package/src/stories/components/TextField/TextFieldSingle.stories.tsx +74 -121
  329. package/src/stories/components/TextField/TextFieldSize.stories.tsx +35 -56
  330. package/src/stories/components/Toast/Toast.stories.tsx +39 -49
  331. package/src/stories/components/ToggleButton/Basic.stories.tsx +237 -235
  332. package/src/stories/components/ToggleButton/ToggleButtonDocs.mdx +10 -14
  333. package/src/stories/components/ToggleButton/ToggleButtonKind.stories.tsx +144 -203
  334. package/src/stories/components/ToggleButton/WithIcon.stories.tsx +87 -107
  335. package/src/stories/components/Tooltip/Tooltip.stories.tsx +4 -4
  336. package/src/stories/foundation/Elevation/Elevation.stories.tsx +48 -73
  337. package/src/stories/foundation/Elevation/styled.ts +3 -3
  338. package/src/stories/foundation/Typography/Typography.mdx +9 -13
  339. package/src/stories/foundation/Typography/Typography.stories.tsx +25 -41
  340. package/src/stories/foundation/Typography/TypographyGroup.tsx +14 -25
  341. package/src/stories/foundation/Typography/const.ts +13 -19
  342. package/src/stories/foundation/colors/ColorSystem.tsx +42 -40
  343. package/src/stories/foundation/colors/Colors.stories.tsx +40 -41
  344. package/src/stories/foundation/colors/Docs.mdx +73 -77
  345. package/src/stories/foundation/colors/Mui.stories.tsx +6 -8
  346. package/src/stories/foundation/colors/Token.inComponent.stories.tsx +81 -71
  347. package/src/stories/foundation/colors/TokenPaletteTable.stories.tsx +7 -7
  348. package/src/stories/foundation/colors/TokenPaletteTable.tsx +23 -49
  349. package/src/stories/foundation/colors/styled.ts +26 -26
  350. package/src/theme.ts +6 -6
  351. package/src/types.d.ts +1 -1
  352. package/tsconfig.build.json +1 -5
  353. package/tsconfig.json +0 -1
  354. package/src/stories/components/ToggleButton/Group.stories.tsx +0 -221
@@ -1,7 +1,7 @@
1
- import React, { useState } from "react";
2
- import { StoryFn, Meta, StoryObj } from "@storybook/react";
1
+ import React, { useState } from 'react';
2
+ import { StoryFn, Meta, StoryObj } from '@storybook/react-webpack5';
3
3
 
4
- import Dropdown, { DropdownItem } from "@/components/Dropdown";
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 "@mui/material";
14
- import Button from "@/components/Button";
13
+ } from '@mui/material';
14
+ import Button from '@/components/Button';
15
15
 
16
16
  export default {
17
- title: "Components/Dropdown",
17
+ title: 'Components/Dropdown',
18
18
  component: Dropdown,
19
19
  argTypes: {
20
20
  size: {
21
21
  control: {
22
- type: "radio",
22
+ type: 'radio',
23
23
  },
24
- options: ["small", "medium", "large"],
25
- description: "The size of the dropdown. Default is medium.",
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: "radio",
29
+ type: 'radio',
30
30
  },
31
- options: ["single", "multiple"],
32
- description: "The select type of the dropdown. Default is single.",
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: "radio",
36
+ type: 'radio',
37
37
  },
38
38
  options: [true, false],
39
- description: "The error prop toggles the error state.",
39
+ description: 'The error prop toggles the error state.',
40
40
  },
41
41
  disabled: {
42
42
  control: {
43
- type: "radio",
43
+ type: 'radio',
44
44
  },
45
45
  options: [true, false],
46
- description: "If true, the text field will be disabled.",
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: "Conquer cancer through AI",
53
- test2: "test item 2",
54
- test3: "test item 3",
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 === "string" ? value.split(",") : (value as string[])
74
+ typeof value === 'string' ? value.split(',') : (value as string[]),
75
75
  );
76
76
  };
77
- const [ex3selectedValue, setEx3SelectedValue] = useState<string>("test1");
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: "1200px" }}>
94
+ <Table sx={{ maxWidth: '1200px' }}>
95
95
  <TableHead>
96
96
  <TableRow>
97
- <TableCell sx={{ typography: "body2_14_medium", color: "inherit" }}>
97
+ <TableCell sx={{ typography: 'body2_14_medium', color: 'inherit' }}>
98
98
  Using placeholder Example
99
99
  </TableCell>
100
- <TableCell sx={{ typography: "body2_14_medium", color: "inherit" }}>
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: "200px" }}
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: "200px" }}
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
- (value) =>
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: "relative" }}>
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: "rect(0 0 0 0)",
189
- clipPath: "inset(50%)",
190
- height: "1px",
191
- overflow: "hidden",
192
- position: "absolute",
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: "nowrap",
196
- width: "1px",
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 "react";
2
- import { StoryFn, Meta, StoryObj } from "@storybook/react";
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 "@mui/material";
18
- import Demo from "@lunit/design-system-icons/Demo";
19
- import ViewfinderT1 from "@lunit/design-system-icons/ViewfinderT1";
20
- import RulerT2 from "@lunit/design-system-icons/RulerT2";
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: "Components/Dropdown",
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: "undefined" },
32
- type: { summary: "JSX.Element" },
28
+ defaultValue: { summary: 'undefined' },
29
+ type: { summary: 'JSX.Element' },
33
30
  },
34
31
  },
35
32
  rightText: {
36
- description: "Use this prop when you want to add text.",
33
+ description: 'Use this prop when you want to add text.',
37
34
  table: {
38
- defaultValue: { summary: "undefined" },
35
+ defaultValue: { summary: 'undefined' },
39
36
  },
40
37
  },
41
38
  isFilledStyle: {
42
39
  control: {
43
- type: "radio",
40
+ type: 'radio',
44
41
  },
45
42
  options: [true, false],
46
- description: "Only for GNB or few situations of single select type.",
43
+ description: 'Only for GNB or few situations of single select type.',
47
44
  table: {
48
- defaultValue: { summary: "false" },
45
+ defaultValue: { summary: 'false' },
49
46
  },
50
47
  },
51
48
  disabled: {
52
49
  control: {
53
- type: "radio",
50
+ type: 'radio',
54
51
  },
55
52
  options: [true, false],
56
- description: "If true, the component will be disabled.",
53
+ description: 'If true, the component will be disabled.',
57
54
  table: {
58
- defaultValue: { summary: "false" },
55
+ defaultValue: { summary: 'false' },
59
56
  },
60
57
  },
61
58
  },
62
59
  parameters: {
63
60
  controls: {
64
- include: ["leftIcon", "rightText", "isFilledStyle", "disabled"],
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>("test1");
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: "150px" }}
90
- open={true}
83
+ sx={{ width: '150px' }}
91
84
  >
92
- <DropdownItem value={"test1"} {...args}>
85
+ <DropdownItem value={'test1'} {...args}>
93
86
  Conquer cancer through AI
94
87
  </DropdownItem>
95
- <DropdownItem value={"test2"} {...args}>
88
+ <DropdownItem value={'test2'} {...args}>
96
89
  test item 2
97
90
  </DropdownItem>
98
- <DropdownItem value={"test3"} {...args}>
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: "Basic DropdownItem",
101
+ name: 'Basic DropdownItem',
109
102
  parameters: {
110
- chromatic: { disableSnapshot: true },
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>("test1");
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[]>(["test1"]);
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 === "string" ? value.split(",") : (value as string[])
139
+ typeof value === 'string' ? value.split(',') : (value as string[]),
135
140
  );
136
141
  };
137
142
 
138
143
  return (
139
- <Table sx={{ maxWidth: "1200px" }}>
144
+ <Table sx={{ maxWidth: '1200px' }}>
140
145
  <TableHead>
141
146
  <TableRow>
142
- <TableCell sx={{ typography: "body2_14_medium", color: "inherit" }}>
147
+ <TableCell sx={{ typography: 'body2_14_medium', color: 'inherit' }}>
143
148
  Single select
144
149
  </TableCell>
145
- <TableCell sx={{ typography: "body2_14_medium", color: "inherit" }}>
150
+ <TableCell sx={{ typography: 'body2_14_medium', color: 'inherit' }}>
146
151
  Single select(Filled Style)
147
152
  </TableCell>
148
- <TableCell sx={{ typography: "body2_14_medium", color: "inherit" }}>
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: "150px" }}
165
+ sx={{ width: '150px' }}
161
166
  >
162
- <DropdownItem value={"test1"} {...args}>
167
+ <DropdownItem value={'test1'} {...args}>
163
168
  Conquer cancer through AI
164
169
  </DropdownItem>
165
- <DropdownItem value={"test2"} {...args}>
170
+ <DropdownItem value={'test2'} {...args}>
166
171
  test item 2
167
172
  </DropdownItem>
168
- <DropdownItem value={"test3"} {...args}>
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: "150px" }}
183
+ sx={{ width: '150px' }}
179
184
  >
180
- <DropdownItem value={"test1"} isFilledStyle {...args}>
185
+ <DropdownItem value={'test1'} isFilledStyle {...args}>
181
186
  Conquer cancer through AI
182
187
  </DropdownItem>
183
- <DropdownItem value={"test2"} isFilledStyle {...args}>
188
+ <DropdownItem value={'test2'} isFilledStyle {...args}>
184
189
  test item 2
185
190
  </DropdownItem>
186
- <DropdownItem value={"test3"} isFilledStyle {...args}>
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: "230px" }}
202
+ sx={{ width: '230px' }}
198
203
  >
199
- <DropdownItem value={"test1"} {...args}>
204
+ <DropdownItem value={'test1'} {...args}>
200
205
  test item1
201
206
  </DropdownItem>
202
- <DropdownItem value={"test2"} {...args}>
207
+ <DropdownItem value={'test2'} {...args}>
203
208
  test item 2
204
209
  </DropdownItem>
205
- <DropdownItem value={"test3"} {...args}>
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: "DropdownItem : Style by Select Type",
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>("test1");
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: "150px" }}
248
- open={true}
249
+ sx={{ width: '150px' }}
249
250
  >
250
251
  <DropdownItem
251
- value={"test1"}
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={"test2"}
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={"test3"}
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: "DropdownItem : With Left Icon, Right Text",
282
+ name: 'DropdownItem : With Left Icon, Right Text',
282
283
  parameters: {
283
284
  controls: {
284
285
  include: [],
285
286
  },
286
- chromatic: { disableSnapshot: true },
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>("test1");
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: "150px" }}
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={"test4"} {...args}>
337
+ <DropdownItem value={'test4'} {...args}>
338
338
  Example 1
339
339
  </DropdownItem>
340
- <DropdownItem value={"test5"} {...args}>
340
+ <DropdownItem value={'test5'} {...args}>
341
341
  Example 2
342
342
  </DropdownItem>
343
- <DropdownItem value={"test6"} {...args}>
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: "DropdownItem : Divider, Subtitle",
353
+ name: 'DropdownItem : Divider, Subtitle',
354
354
  parameters: {
355
355
  controls: {
356
356
  include: [],
357
357
  },
358
- chromatic: { disableSnapshot: true },
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
  };