@ceed/cds 1.34.0 → 1.35.0

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 (120) hide show
  1. package/dist/components/Accordions/Accordions.d.ts +1 -0
  2. package/dist/components/Alert/Alert.d.ts +5 -5
  3. package/dist/components/Autocomplete/Autocomplete.d.ts +2 -2
  4. package/dist/components/Avatar/Avatar.d.ts +7 -17
  5. package/dist/components/Box/Box.d.ts +1 -0
  6. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +6 -5
  7. package/dist/components/Button/Button.d.ts +3 -2
  8. package/dist/components/Calendar/Calendar.d.ts +1 -0
  9. package/dist/components/Card/Card.d.ts +1 -0
  10. package/dist/components/Checkbox/Checkbox.d.ts +1 -0
  11. package/dist/components/Chip/Chip.d.ts +1 -0
  12. package/dist/components/Container/Container.d.ts +6 -1
  13. package/dist/components/CurrencyInput/CurrencyInput.d.ts +1 -1
  14. package/dist/components/DialogActions/DialogActions.d.ts +1 -0
  15. package/dist/components/DialogContent/DialogContent.d.ts +1 -0
  16. package/dist/components/DialogFrame/DialogFrame.d.ts +1 -1
  17. package/dist/components/DialogTitle/DialogTitle.d.ts +1 -0
  18. package/dist/components/Divider/Divider.d.ts +1 -0
  19. package/dist/components/Drawer/Drawer.d.ts +1 -0
  20. package/dist/components/Dropdown/Dropdown.d.ts +28 -1
  21. package/dist/components/FormControl/FormControl.d.ts +1 -0
  22. package/dist/components/FormHelperText/FormHelperText.d.ts +1 -0
  23. package/dist/components/FormLabel/FormLabel.d.ts +1 -0
  24. package/dist/components/Grid/Grid.d.ts +1 -0
  25. package/dist/components/IconButton/IconButton.d.ts +3 -2
  26. package/dist/components/IconMenuButton/IconMenuButton.d.ts +7 -6
  27. package/dist/components/InfoSign/InfoSign.d.ts +3 -2
  28. package/dist/components/Input/Input.d.ts +8 -22
  29. package/dist/components/InsetDrawer/InsetDrawer.d.ts +1 -0
  30. package/dist/components/Markdown/Markdown.d.ts +9 -24
  31. package/dist/components/Menu/Menu.d.ts +2 -1
  32. package/dist/components/MenuButton/MenuButton.d.ts +10 -8
  33. package/dist/components/Modal/Modal.d.ts +4 -2
  34. package/dist/components/NavigationGroup/NavigationGroup.d.ts +3 -2
  35. package/dist/components/NavigationItem/NavigationItem.d.ts +3 -2
  36. package/dist/components/Navigator/Navigator.d.ts +5 -4
  37. package/dist/components/Pagination/Pagination.d.ts +1 -1
  38. package/dist/components/Radio/Radio.d.ts +1 -0
  39. package/dist/components/RadioList/RadioList.d.ts +3 -2
  40. package/dist/components/SearchBar/SearchBar.d.ts +6 -5
  41. package/dist/components/SearchBar/index.d.ts +3 -2
  42. package/dist/components/Select/Select.d.ts +12 -10
  43. package/dist/components/Sheet/Sheet.d.ts +1 -0
  44. package/dist/components/Stack/Stack.d.ts +1 -0
  45. package/dist/components/Stepper/Stepper.d.ts +2 -1
  46. package/dist/components/Switch/Switch.d.ts +1 -0
  47. package/dist/components/Table/Table.d.ts +7 -5
  48. package/dist/components/Tabs/Tabs.d.ts +1 -0
  49. package/dist/components/Textarea/Textarea.d.ts +8 -20
  50. package/dist/components/Tooltip/Tooltip.d.ts +1 -0
  51. package/dist/components/Typography/Typography.d.ts +1 -0
  52. package/dist/components/Uploader/Uploader.d.ts +18 -17
  53. package/dist/components/data-display/Avatar.md +60 -72
  54. package/dist/components/data-display/Badge.md +197 -181
  55. package/dist/components/data-display/Chip.md +164 -142
  56. package/dist/components/data-display/DataTable.md +843 -338
  57. package/dist/components/data-display/InfoSign.md +1 -3
  58. package/dist/components/data-display/Markdown.md +93 -125
  59. package/dist/components/data-display/Table.md +1453 -1007
  60. package/dist/components/data-display/Typography.md +113 -116
  61. package/dist/components/feedback/Alert.md +80 -86
  62. package/dist/components/feedback/CircularProgress.md +32 -36
  63. package/dist/components/feedback/Dialog.md +25 -17
  64. package/dist/components/feedback/Modal.md +296 -264
  65. package/dist/components/feedback/Skeleton.md +125 -89
  66. package/dist/components/index.d.ts +63 -4
  67. package/dist/components/inputs/Autocomplete.md +191 -95
  68. package/dist/components/inputs/Button.md +83 -83
  69. package/dist/components/inputs/ButtonGroup.md +195 -185
  70. package/dist/components/inputs/Calendar.md +25 -28
  71. package/dist/components/inputs/Checkbox.md +11 -29
  72. package/dist/components/inputs/CurrencyInput.md +4 -4
  73. package/dist/components/inputs/DatePicker.md +229 -110
  74. package/dist/components/inputs/DateRangePicker.md +248 -137
  75. package/dist/components/inputs/FilterableCheckboxGroup.md +115 -55
  76. package/dist/components/inputs/FormControl.md +75 -69
  77. package/dist/components/inputs/IconButton.md +229 -205
  78. package/dist/components/inputs/Input.md +131 -98
  79. package/dist/components/inputs/MonthPicker.md +186 -84
  80. package/dist/components/inputs/MonthRangePicker.md +73 -49
  81. package/dist/components/inputs/PercentageInput.md +15 -31
  82. package/dist/components/inputs/RadioButton.md +320 -256
  83. package/dist/components/inputs/RadioList.md +66 -50
  84. package/dist/components/inputs/RadioTileGroup.md +287 -170
  85. package/dist/components/inputs/SearchBar.md +154 -55
  86. package/dist/components/inputs/Select.md +106 -95
  87. package/dist/components/inputs/Slider.md +153 -102
  88. package/dist/components/inputs/Switch.md +193 -138
  89. package/dist/components/inputs/Textarea.md +15 -20
  90. package/dist/components/inputs/Uploader/Uploader.md +68 -39
  91. package/dist/components/layout/Box.md +841 -662
  92. package/dist/components/layout/Container.md +3 -11
  93. package/dist/components/layout/Grid.md +480 -394
  94. package/dist/components/layout/Stack.md +739 -566
  95. package/dist/components/navigation/Breadcrumbs.md +4 -4
  96. package/dist/components/navigation/Drawer.md +34 -25
  97. package/dist/components/navigation/Dropdown.md +745 -408
  98. package/dist/components/navigation/IconMenuButton.md +14 -6
  99. package/dist/components/navigation/InsetDrawer.md +8 -13
  100. package/dist/components/navigation/Link.md +1 -2
  101. package/dist/components/navigation/Menu.md +623 -502
  102. package/dist/components/navigation/MenuButton.md +18 -10
  103. package/dist/components/navigation/NavigationGroup.md +19 -50
  104. package/dist/components/navigation/NavigationItem.md +6 -6
  105. package/dist/components/navigation/Navigator.md +26 -28
  106. package/dist/components/navigation/Pagination.md +86 -75
  107. package/dist/components/navigation/Stepper.md +2 -12
  108. package/dist/components/navigation/Tabs.md +48 -36
  109. package/dist/components/surfaces/Accordions.md +89 -172
  110. package/dist/components/surfaces/Card.md +1094 -709
  111. package/dist/components/surfaces/Divider.md +562 -412
  112. package/dist/components/surfaces/Sheet.md +700 -518
  113. package/dist/guides/ThemeProvider.md +8 -8
  114. package/dist/index.browser.js +4 -4
  115. package/dist/index.browser.js.map +4 -4
  116. package/dist/index.cjs +1079 -1052
  117. package/dist/index.d.ts +2 -1
  118. package/dist/index.js +725 -690
  119. package/framer/index.js +1 -1
  120. package/package.json +32 -35
@@ -5,18 +5,20 @@ Menu and MenuItem are the content layer of a dropdown menu system. Menu renders
5
5
  Menu is built on Joy UI's Menu component and supports sizes, placements, custom styling, and rich content inside menu items such as icons, links, and nested layouts.
6
6
 
7
7
  ```tsx
8
- <Box sx={{
9
- p: 2
10
- }}>
11
- <Dropdown>
12
- <MenuButton variant="outlined">메뉴 열기</MenuButton>
13
- <Menu>
14
- <MenuItem>첫 번째 옵션</MenuItem>
15
- <MenuItem>두 번째 옵션</MenuItem>
16
- <MenuItem>세 번째 옵션</MenuItem>
17
- </Menu>
18
- </Dropdown>
19
- </Box>
8
+ <Box
9
+ sx={{
10
+ p: 2
11
+ }}
12
+ >
13
+ <Dropdown>
14
+ <MenuButton variant="outlined">메뉴 열기</MenuButton>
15
+ <Menu>
16
+ <MenuItem>첫 번째 옵션</MenuItem>
17
+ <MenuItem>두 번째 옵션</MenuItem>
18
+ <MenuItem>세 번째 옵션</MenuItem>
19
+ </Menu>
20
+ </Dropdown>
21
+ </Box>
20
22
  ```
21
23
 
22
24
  | Field | Description | Default |
@@ -65,29 +67,29 @@ A standard menu with simple text items, optionally separated by dividers.
65
67
 
66
68
  ```tsx
67
69
  <Stack direction="row" spacing={3}>
68
- <Dropdown>
69
- <MenuButton variant="outlined">기본 메뉴</MenuButton>
70
- <Menu>
71
- <MenuItem>홈</MenuItem>
72
- <MenuItem>제품</MenuItem>
73
- <MenuItem>서비스</MenuItem>
74
- <MenuItem>문의</MenuItem>
75
- </Menu>
76
- </Dropdown>
70
+ <Dropdown>
71
+ <MenuButton variant="outlined">기본 메뉴</MenuButton>
72
+ <Menu>
73
+ <MenuItem>홈</MenuItem>
74
+ <MenuItem>제품</MenuItem>
75
+ <MenuItem>서비스</MenuItem>
76
+ <MenuItem>문의</MenuItem>
77
+ </Menu>
78
+ </Dropdown>
77
79
 
78
- <Dropdown>
79
- <MenuButton variant="soft">구분선 포함</MenuButton>
80
- <Menu>
81
- <MenuItem>새 파일</MenuItem>
82
- <MenuItem>열기</MenuItem>
83
- <ListDivider />
84
- <MenuItem>저장</MenuItem>
85
- <MenuItem>다른 이름으로 저장</MenuItem>
86
- <ListDivider />
87
- <MenuItem>종료</MenuItem>
88
- </Menu>
89
- </Dropdown>
90
- </Stack>
80
+ <Dropdown>
81
+ <MenuButton variant="soft">구분선 포함</MenuButton>
82
+ <Menu>
83
+ <MenuItem>새 파일</MenuItem>
84
+ <MenuItem>열기</MenuItem>
85
+ <ListDivider />
86
+ <MenuItem>저장</MenuItem>
87
+ <MenuItem>다른 이름으로 저장</MenuItem>
88
+ <ListDivider />
89
+ <MenuItem>종료</MenuItem>
90
+ </Menu>
91
+ </Dropdown>
92
+ </Stack>
91
93
  ```
92
94
 
93
95
  ### Menu Sizes
@@ -96,39 +98,39 @@ Menu supports `sm`, `md`, and `lg` sizes that affect the padding and font size o
96
98
 
97
99
  ```tsx
98
100
  <Stack direction="row" spacing={3}>
99
- <Dropdown>
100
- <MenuButton size="sm" variant="outlined">
101
- Small Menu
102
- </MenuButton>
103
- <Menu size="sm">
104
- <MenuItem>작은 아이템 1</MenuItem>
105
- <MenuItem>작은 아이템 2</MenuItem>
106
- <MenuItem>작은 아이템 3</MenuItem>
107
- </Menu>
108
- </Dropdown>
101
+ <Dropdown>
102
+ <MenuButton size="sm" variant="outlined">
103
+ Small Menu
104
+ </MenuButton>
105
+ <Menu size="sm">
106
+ <MenuItem>작은 아이템 1</MenuItem>
107
+ <MenuItem>작은 아이템 2</MenuItem>
108
+ <MenuItem>작은 아이템 3</MenuItem>
109
+ </Menu>
110
+ </Dropdown>
109
111
 
110
- <Dropdown>
111
- <MenuButton size="md" variant="outlined">
112
- Medium Menu
113
- </MenuButton>
114
- <Menu size="md">
115
- <MenuItem>중간 아이템 1</MenuItem>
116
- <MenuItem>중간 아이템 2</MenuItem>
117
- <MenuItem>중간 아이템 3</MenuItem>
118
- </Menu>
119
- </Dropdown>
112
+ <Dropdown>
113
+ <MenuButton size="md" variant="outlined">
114
+ Medium Menu
115
+ </MenuButton>
116
+ <Menu size="md">
117
+ <MenuItem>중간 아이템 1</MenuItem>
118
+ <MenuItem>중간 아이템 2</MenuItem>
119
+ <MenuItem>중간 아이템 3</MenuItem>
120
+ </Menu>
121
+ </Dropdown>
120
122
 
121
- <Dropdown>
122
- <MenuButton size="lg" variant="outlined">
123
- Large Menu
124
- </MenuButton>
125
- <Menu size="lg">
126
- <MenuItem>큰 아이템 1</MenuItem>
127
- <MenuItem>큰 아이템 2</MenuItem>
128
- <MenuItem>큰 아이템 3</MenuItem>
129
- </Menu>
130
- </Dropdown>
131
- </Stack>
123
+ <Dropdown>
124
+ <MenuButton size="lg" variant="outlined">
125
+ Large Menu
126
+ </MenuButton>
127
+ <Menu size="lg">
128
+ <MenuItem>큰 아이템 1</MenuItem>
129
+ <MenuItem>큰 아이템 2</MenuItem>
130
+ <MenuItem>큰 아이템 3</MenuItem>
131
+ </Menu>
132
+ </Dropdown>
133
+ </Stack>
132
134
  ```
133
135
 
134
136
  ### MenuItem States
@@ -137,17 +139,17 @@ MenuItems can be `selected`, `disabled`, or colored with semantic colors like `p
137
139
 
138
140
  ```tsx
139
141
  <Dropdown>
140
- <MenuButton variant="outlined">다양한 상태</MenuButton>
141
- <Menu>
142
- <MenuItem>일반 아이템</MenuItem>
143
- <MenuItem selected>선택된 아이템</MenuItem>
144
- <MenuItem disabled>비활성 아이템</MenuItem>
145
- <MenuItem color="primary">Primary 색상</MenuItem>
146
- <MenuItem color="danger">Danger 색상</MenuItem>
147
- <MenuItem color="success">Success 색상</MenuItem>
148
- <MenuItem color="warning">Warning 색상</MenuItem>
149
- </Menu>
150
- </Dropdown>
142
+ <MenuButton variant="outlined">다양한 상태</MenuButton>
143
+ <Menu>
144
+ <MenuItem>일반 아이템</MenuItem>
145
+ <MenuItem selected>선택된 아이템</MenuItem>
146
+ <MenuItem disabled>비활성 아이템</MenuItem>
147
+ <MenuItem color="primary">Primary 색상</MenuItem>
148
+ <MenuItem color="danger">Danger 색상</MenuItem>
149
+ <MenuItem color="success">Success 색상</MenuItem>
150
+ <MenuItem color="warning">Warning 색상</MenuItem>
151
+ </Menu>
152
+ </Dropdown>
151
153
  ```
152
154
 
153
155
  ### MenuItem with Icons
@@ -156,41 +158,53 @@ Add icons before item text to improve scannability. Use consistent icon sizing w
156
158
 
157
159
  ```tsx
158
160
  <Dropdown>
159
- <MenuButton variant="outlined" startDecorator={<PersonIcon />} endDecorator={<ExpandMoreIcon />}>
160
- 아이콘 메뉴
161
- </MenuButton>
162
- <Menu>
163
- <MenuItem>
164
- <PersonIcon sx={{
165
- mr: 1.5,
166
- fontSize: 'lg'
167
- }} />
168
- 프로필 보기
169
- </MenuItem>
170
- <MenuItem>
171
- <SettingsIcon sx={{
172
- mr: 1.5,
173
- fontSize: 'lg'
174
- }} />
175
- 설정
176
- </MenuItem>
177
- <MenuItem>
178
- <BookmarkIcon sx={{
179
- mr: 1.5,
180
- fontSize: 'lg'
181
- }} />
182
- 북마크
183
- </MenuItem>
184
- <ListDivider />
185
- <MenuItem>
186
- <LogoutIcon sx={{
187
- mr: 1.5,
188
- fontSize: 'lg'
189
- }} />
190
- 로그아웃
191
- </MenuItem>
192
- </Menu>
193
- </Dropdown>
161
+ <MenuButton
162
+ variant="outlined"
163
+ startDecorator={<PersonIcon />}
164
+ endDecorator={<ExpandMoreIcon />}
165
+ >
166
+ 아이콘 메뉴
167
+ </MenuButton>
168
+ <Menu>
169
+ <MenuItem>
170
+ <PersonIcon
171
+ sx={{
172
+ mr: 1.5,
173
+ fontSize: "lg"
174
+ }}
175
+ />
176
+ 프로필 보기
177
+ </MenuItem>
178
+ <MenuItem>
179
+ <SettingsIcon
180
+ sx={{
181
+ mr: 1.5,
182
+ fontSize: "lg"
183
+ }}
184
+ />
185
+ 설정
186
+ </MenuItem>
187
+ <MenuItem>
188
+ <BookmarkIcon
189
+ sx={{
190
+ mr: 1.5,
191
+ fontSize: "lg"
192
+ }}
193
+ />
194
+ 북마크
195
+ </MenuItem>
196
+ <ListDivider />
197
+ <MenuItem>
198
+ <LogoutIcon
199
+ sx={{
200
+ mr: 1.5,
201
+ fontSize: "lg"
202
+ }}
203
+ />
204
+ 로그아웃
205
+ </MenuItem>
206
+ </Menu>
207
+ </Dropdown>
194
208
  ```
195
209
 
196
210
  ### Actions Menu
@@ -199,41 +213,49 @@ Build action menus for CRUD operations. Use `color="danger"` to highlight destru
199
213
 
200
214
  ```tsx
201
215
  <Dropdown>
202
- <MenuButton variant="plain" size="sm">
203
- 작업
204
- </MenuButton>
205
- <Menu>
206
- <MenuItem>
207
- <EditIcon sx={{
208
- mr: 1,
209
- fontSize: 'md'
210
- }} />
211
- 편집
212
- </MenuItem>
213
- <MenuItem>
214
- <CopyIcon sx={{
215
- mr: 1,
216
- fontSize: 'md'
217
- }} />
218
- 복사
219
- </MenuItem>
220
- <MenuItem>
221
- <ShareIcon sx={{
222
- mr: 1,
223
- fontSize: 'md'
224
- }} />
225
- 공유
226
- </MenuItem>
227
- <ListDivider />
228
- <MenuItem color="danger">
229
- <DeleteIcon sx={{
230
- mr: 1,
231
- fontSize: 'md'
232
- }} />
233
- <Typography color="danger">삭제</Typography>
234
- </MenuItem>
235
- </Menu>
236
- </Dropdown>
216
+ <MenuButton variant="plain" size="sm">
217
+ 작업
218
+ </MenuButton>
219
+ <Menu>
220
+ <MenuItem>
221
+ <EditIcon
222
+ sx={{
223
+ mr: 1,
224
+ fontSize: "md"
225
+ }}
226
+ />
227
+ 편집
228
+ </MenuItem>
229
+ <MenuItem>
230
+ <CopyIcon
231
+ sx={{
232
+ mr: 1,
233
+ fontSize: "md"
234
+ }}
235
+ />
236
+ 복사
237
+ </MenuItem>
238
+ <MenuItem>
239
+ <ShareIcon
240
+ sx={{
241
+ mr: 1,
242
+ fontSize: "md"
243
+ }}
244
+ />
245
+ 공유
246
+ </MenuItem>
247
+ <ListDivider />
248
+ <MenuItem color="danger">
249
+ <DeleteIcon
250
+ sx={{
251
+ mr: 1,
252
+ fontSize: "md"
253
+ }}
254
+ />
255
+ <Typography color="danger">삭제</Typography>
256
+ </MenuItem>
257
+ </Menu>
258
+ </Dropdown>
237
259
  ```
238
260
 
239
261
  ### Clickable Menu Items
@@ -242,17 +264,17 @@ Attach `onClick` handlers to menu items to respond to user selections.
242
264
 
243
265
  ```tsx
244
266
  <Stack spacing={2}>
245
- <Typography level="body-sm">상태: {message}</Typography>
267
+ <Typography level="body-sm">상태: {message}</Typography>
246
268
 
247
- <Dropdown>
248
- <MenuButton variant="outlined">클릭 이벤트</MenuButton>
249
- <Menu>
250
- <MenuItem onClick={() => setMessage('홈을 클릭했습니다')}>홈</MenuItem>
251
- <MenuItem onClick={() => setMessage('프로필을 클릭했습니다')}>프로필</MenuItem>
252
- <MenuItem onClick={() => setMessage('설정을 클릭했습니다')}>설정</MenuItem>
253
- </Menu>
254
- </Dropdown>
255
- </Stack>
269
+ <Dropdown>
270
+ <MenuButton variant="outlined">클릭 이벤트</MenuButton>
271
+ <Menu>
272
+ <MenuItem onClick={() => setMessage("홈을 클릭했습니다")}>홈</MenuItem>
273
+ <MenuItem onClick={() => setMessage("프로필을 클릭했습니다")}>프로필</MenuItem>
274
+ <MenuItem onClick={() => setMessage("설정을 클릭했습니다")}>설정</MenuItem>
275
+ </Menu>
276
+ </Dropdown>
277
+ </Stack>
256
278
  ```
257
279
 
258
280
  ### Menu as Links
@@ -261,22 +283,22 @@ Use the `component="a"` prop on MenuItem to render items as anchor links for nav
261
283
 
262
284
  ```tsx
263
285
  <Dropdown>
264
- <MenuButton variant="outlined">링크 메뉴</MenuButton>
265
- <Menu>
266
- <MenuItem component="a" href="#home">
267
- 홈 (링크)
268
- </MenuItem>
269
- <MenuItem component="a" href="#about">
270
- 회사소개 (링크)
271
- </MenuItem>
272
- <MenuItem component="a" href="#products">
273
- 제품 (링크)
274
- </MenuItem>
275
- <MenuItem component="a" href="https://example.com" target="_blank" rel="noopener noreferrer">
276
- 외부 링크
277
- </MenuItem>
278
- </Menu>
279
- </Dropdown>
286
+ <MenuButton variant="outlined">링크 메뉴</MenuButton>
287
+ <Menu>
288
+ <MenuItem component="a" href="#home">
289
+ 홈 (링크)
290
+ </MenuItem>
291
+ <MenuItem component="a" href="#about">
292
+ 회사소개 (링크)
293
+ </MenuItem>
294
+ <MenuItem component="a" href="#products">
295
+ 제품 (링크)
296
+ </MenuItem>
297
+ <MenuItem component="a" href="https://example.com" target="_blank" rel="noopener noreferrer">
298
+ 외부 링크
299
+ </MenuItem>
300
+ </Menu>
301
+ </Dropdown>
280
302
  ```
281
303
 
282
304
  ### Profile Menu
@@ -285,137 +307,162 @@ Combine custom Box content (user info header) with standard MenuItem entries for
285
307
 
286
308
  ```tsx
287
309
  <Dropdown>
288
- <MenuButton variant="plain" color="neutral" startDecorator={<Avatar size="sm" variant="soft" color="primary">
289
-
290
- </Avatar>} endDecorator={<ExpandMoreIcon />} sx={{
291
- gap: 1,
292
- padding: 1
293
- }}>
294
- 김철수
295
- </MenuButton>
296
- <Menu sx={{
297
- minWidth: 240
298
- }}>
299
- {/* 사용자 정보 헤더 */}
300
- <Box sx={{
301
- px: 2,
302
- py: 1.5,
303
- borderBottom: '1px solid',
304
- borderColor: 'divider'
305
- }}>
306
- <Stack direction="row" spacing={2} alignItems="center">
307
- <Avatar size="md" variant="soft" color="primary">
308
- 김철수
309
- </Avatar>
310
- <Stack spacing={0}>
311
- <Typography level="title-sm" fontWeight="bold">
310
+ <MenuButton
311
+ variant="plain"
312
+ color="neutral"
313
+ startDecorator={
314
+ <Avatar size="sm" variant="soft" color="primary">
315
+
316
+ </Avatar>
317
+ }
318
+ endDecorator={<ExpandMoreIcon />}
319
+ sx={{
320
+ gap: 1,
321
+ padding: 1
322
+ }}
323
+ >
312
324
  김철수
313
- </Typography>
314
- <Typography level="body-xs" color="neutral">
315
- kim@example.com
316
- </Typography>
317
- </Stack>
318
- </Stack>
319
- </Box>
320
-
321
- {/* 메뉴 항목들 */}
322
- <MenuItem>
323
- <PersonIcon sx={{
324
- mr: 1.5
325
- }} />내 프로필
326
- </MenuItem>
327
- <MenuItem>
328
- <BookmarkIcon sx={{
329
- mr: 1.5
330
- }} />
331
- 저장된 항목
332
- </MenuItem>
333
- <MenuItem>
334
- <SettingsIcon sx={{
335
- mr: 1.5
336
- }} />
337
- 계정 설정
338
- </MenuItem>
339
-
340
- <ListDivider />
341
-
342
- <MenuItem>
343
- <LogoutIcon sx={{
344
- mr: 1.5
345
- }} />
346
- 로그아웃
347
- </MenuItem>
348
- </Menu>
349
- </Dropdown>
350
- ```
351
-
352
- ### Menu Placements
325
+ </MenuButton>
326
+ <Menu
327
+ sx={{
328
+ minWidth: 240
329
+ }}
330
+ >
331
+ {/* 사용자 정보 헤더 */}
332
+ <Box
333
+ sx={{
334
+ px: 2,
335
+ py: 1.5,
336
+ borderBottom: "1px solid",
337
+ borderColor: "divider"
338
+ }}
339
+ >
340
+ <Stack direction="row" spacing={2} alignItems="center">
341
+ <Avatar size="md" variant="soft" color="primary">
342
+ 김철수
343
+ </Avatar>
344
+ <Stack spacing={0}>
345
+ <Typography level="title-sm" fontWeight="bold">
346
+ 김철수
347
+ </Typography>
348
+ <Typography level="body-xs" color="neutral">
349
+ kim@example.com
350
+ </Typography>
351
+ </Stack>
352
+ </Stack>
353
+ </Box>
354
+
355
+ {/* 메뉴 항목들 */}
356
+ <MenuItem>
357
+ <PersonIcon
358
+ sx={{
359
+ mr: 1.5
360
+ }}
361
+ />
362
+ 내 프로필
363
+ </MenuItem>
364
+ <MenuItem>
365
+ <BookmarkIcon
366
+ sx={{
367
+ mr: 1.5
368
+ }}
369
+ />
370
+ 저장된 항목
371
+ </MenuItem>
372
+ <MenuItem>
373
+ <SettingsIcon
374
+ sx={{
375
+ mr: 1.5
376
+ }}
377
+ />
378
+ 계정 설정
379
+ </MenuItem>
353
380
 
354
- Control the position of the menu panel relative to the trigger using the `placement` prop. Supported values include `top-start`, `top`, `top-end`, `bottom-start`, `bottom`, and `bottom-end`.
381
+ <ListDivider />
355
382
 
356
- ```tsx
357
- <Stack spacing={4} alignItems="center" sx={{
358
- mt: 6,
359
- mb: 6
360
- }}>
361
- <Stack direction="row" spacing={2}>
362
- <Dropdown>
363
- <MenuButton variant="outlined">Top Start</MenuButton>
364
- <Menu placement="top-start">
365
- <MenuItem>위쪽 시작</MenuItem>
366
- <MenuItem>옵션 2</MenuItem>
367
- <MenuItem>옵션 3</MenuItem>
383
+ <MenuItem>
384
+ <LogoutIcon
385
+ sx={{
386
+ mr: 1.5
387
+ }}
388
+ />
389
+ 로그아웃
390
+ </MenuItem>
368
391
  </Menu>
369
392
  </Dropdown>
393
+ ```
370
394
 
371
- <Dropdown>
372
- <MenuButton variant="outlined">Top</MenuButton>
373
- <Menu placement="top">
374
- <MenuItem>위쪽 중앙</MenuItem>
375
- <MenuItem>옵션 2</MenuItem>
376
- <MenuItem>옵션 3</MenuItem>
377
- </Menu>
378
- </Dropdown>
395
+ ### Menu Placements
379
396
 
380
- <Dropdown>
381
- <MenuButton variant="outlined">Top End</MenuButton>
382
- <Menu placement="top-end">
383
- <MenuItem>위쪽 끝</MenuItem>
384
- <MenuItem>옵션 2</MenuItem>
385
- <MenuItem>옵션 3</MenuItem>
386
- </Menu>
387
- </Dropdown>
388
- </Stack>
389
-
390
- <Stack direction="row" spacing={2}>
391
- <Dropdown>
392
- <MenuButton variant="outlined">Bottom Start</MenuButton>
393
- <Menu placement="bottom-start">
394
- <MenuItem>아래쪽 시작</MenuItem>
395
- <MenuItem>옵션 2</MenuItem>
396
- <MenuItem>옵션 3</MenuItem>
397
- </Menu>
398
- </Dropdown>
397
+ Control the position of the menu panel relative to the trigger using the `placement` prop. Supported values include `top-start`, `top`, `top-end`, `bottom-start`, `bottom`, and `bottom-end`.
399
398
 
400
- <Dropdown>
401
- <MenuButton variant="outlined">Bottom</MenuButton>
402
- <Menu placement="bottom">
403
- <MenuItem>아래쪽 중앙</MenuItem>
404
- <MenuItem>옵션 2</MenuItem>
405
- <MenuItem>옵션 3</MenuItem>
406
- </Menu>
407
- </Dropdown>
399
+ ```tsx
400
+ <Stack
401
+ spacing={4}
402
+ alignItems="center"
403
+ sx={{
404
+ mt: 6,
405
+ mb: 6
406
+ }}
407
+ >
408
+ <Stack direction="row" spacing={2}>
409
+ <Dropdown>
410
+ <MenuButton variant="outlined">Top Start</MenuButton>
411
+ <Menu placement="top-start">
412
+ <MenuItem>위쪽 시작</MenuItem>
413
+ <MenuItem>옵션 2</MenuItem>
414
+ <MenuItem>옵션 3</MenuItem>
415
+ </Menu>
416
+ </Dropdown>
417
+
418
+ <Dropdown>
419
+ <MenuButton variant="outlined">Top</MenuButton>
420
+ <Menu placement="top">
421
+ <MenuItem>위쪽 중앙</MenuItem>
422
+ <MenuItem>옵션 2</MenuItem>
423
+ <MenuItem>옵션 3</MenuItem>
424
+ </Menu>
425
+ </Dropdown>
426
+
427
+ <Dropdown>
428
+ <MenuButton variant="outlined">Top End</MenuButton>
429
+ <Menu placement="top-end">
430
+ <MenuItem>위쪽 끝</MenuItem>
431
+ <MenuItem>옵션 2</MenuItem>
432
+ <MenuItem>옵션 3</MenuItem>
433
+ </Menu>
434
+ </Dropdown>
435
+ </Stack>
408
436
 
409
- <Dropdown>
410
- <MenuButton variant="outlined">Bottom End</MenuButton>
411
- <Menu placement="bottom-end">
412
- <MenuItem>아래쪽 끝</MenuItem>
413
- <MenuItem>옵션 2</MenuItem>
414
- <MenuItem>옵션 3</MenuItem>
415
- </Menu>
416
- </Dropdown>
417
- </Stack>
418
- </Stack>
437
+ <Stack direction="row" spacing={2}>
438
+ <Dropdown>
439
+ <MenuButton variant="outlined">Bottom Start</MenuButton>
440
+ <Menu placement="bottom-start">
441
+ <MenuItem>아래쪽 시작</MenuItem>
442
+ <MenuItem>옵션 2</MenuItem>
443
+ <MenuItem>옵션 3</MenuItem>
444
+ </Menu>
445
+ </Dropdown>
446
+
447
+ <Dropdown>
448
+ <MenuButton variant="outlined">Bottom</MenuButton>
449
+ <Menu placement="bottom">
450
+ <MenuItem>아래쪽 중앙</MenuItem>
451
+ <MenuItem>옵션 2</MenuItem>
452
+ <MenuItem>옵션 3</MenuItem>
453
+ </Menu>
454
+ </Dropdown>
455
+
456
+ <Dropdown>
457
+ <MenuButton variant="outlined">Bottom End</MenuButton>
458
+ <Menu placement="bottom-end">
459
+ <MenuItem>아래쪽 끝</MenuItem>
460
+ <MenuItem>옵션 2</MenuItem>
461
+ <MenuItem>옵션 3</MenuItem>
462
+ </Menu>
463
+ </Dropdown>
464
+ </Stack>
465
+ </Stack>
419
466
  ```
420
467
 
421
468
  ### Long Scrollable Menu
@@ -424,16 +471,23 @@ For menus with many items, apply `maxHeight` and `overflow: 'auto'` through the
424
471
 
425
472
  ```tsx
426
473
  <Dropdown>
427
- <MenuButton variant="outlined">긴 메뉴 (스크롤)</MenuButton>
428
- <Menu sx={{
429
- maxHeight: 300,
430
- overflow: 'auto'
431
- }}>
432
- {Array.from({
433
- length: 30
434
- }, (_, index) => <MenuItem key={index}>메뉴 항목 {index + 1}</MenuItem>)}
435
- </Menu>
436
- </Dropdown>
474
+ <MenuButton variant="outlined">긴 메뉴 (스크롤)</MenuButton>
475
+ <Menu
476
+ sx={{
477
+ maxHeight: 300,
478
+ overflow: "auto"
479
+ }}
480
+ >
481
+ {Array.from(
482
+ {
483
+ length: 30
484
+ },
485
+ (_, index) => (
486
+ <MenuItem key={index}>메뉴 항목 {index + 1}</MenuItem>
487
+ )
488
+ )}
489
+ </Menu>
490
+ </Dropdown>
437
491
  ```
438
492
 
439
493
  ### Custom Styled Menu
@@ -442,62 +496,86 @@ Customize the menu panel appearance with border-radius, shadows, borders, and cu
442
496
 
443
497
  ```tsx
444
498
  <Stack direction="row" spacing={3}>
445
- <Dropdown>
446
- <MenuButton variant="soft" color="primary">
447
- 둥근 메뉴
448
- </MenuButton>
449
- <Menu sx={{
450
- borderRadius: 'lg',
451
- boxShadow: 'lg',
452
- border: '2px solid',
453
- borderColor: 'primary.200',
454
- p: 0.5
455
- }}>
456
- <MenuItem sx={{
457
- borderRadius: 'md',
458
- my: 0.25
459
- }}>둥근 아이템 1</MenuItem>
460
- <MenuItem sx={{
461
- borderRadius: 'md',
462
- my: 0.25
463
- }}>둥근 아이템 2</MenuItem>
464
- <MenuItem sx={{
465
- borderRadius: 'md',
466
- my: 0.25
467
- }}>둥근 아이템 3</MenuItem>
468
- </Menu>
469
- </Dropdown>
499
+ <Dropdown>
500
+ <MenuButton variant="soft" color="primary">
501
+ 둥근 메뉴
502
+ </MenuButton>
503
+ <Menu
504
+ sx={{
505
+ borderRadius: "lg",
506
+ boxShadow: "lg",
507
+ border: "2px solid",
508
+ borderColor: "primary.200",
509
+ p: 0.5
510
+ }}
511
+ >
512
+ <MenuItem
513
+ sx={{
514
+ borderRadius: "md",
515
+ my: 0.25
516
+ }}
517
+ >
518
+ 둥근 아이템 1
519
+ </MenuItem>
520
+ <MenuItem
521
+ sx={{
522
+ borderRadius: "md",
523
+ my: 0.25
524
+ }}
525
+ >
526
+ 둥근 아이템 2
527
+ </MenuItem>
528
+ <MenuItem
529
+ sx={{
530
+ borderRadius: "md",
531
+ my: 0.25
532
+ }}
533
+ >
534
+ 둥근 아이템 3
535
+ </MenuItem>
536
+ </Menu>
537
+ </Dropdown>
470
538
 
471
- <Dropdown>
472
- <MenuButton variant="outlined">그림자 메뉴</MenuButton>
473
- <Menu sx={{
474
- boxShadow: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',
475
- border: 'none',
476
- borderRadius: 'xl'
477
- }}>
478
- <MenuItem sx={{
479
- px: 3,
480
- py: 1.5
481
- }}>
482
- <StarIcon sx={{
483
- mr: 2,
484
- color: 'warning.500'
485
- }} />
486
- 특별한 아이템 1
487
- </MenuItem>
488
- <MenuItem sx={{
489
- px: 3,
490
- py: 1.5
491
- }}>
492
- <StarIcon sx={{
493
- mr: 2,
494
- color: 'warning.500'
495
- }} />
496
- 특별한 아이템 2
497
- </MenuItem>
498
- </Menu>
499
- </Dropdown>
500
- </Stack>
539
+ <Dropdown>
540
+ <MenuButton variant="outlined">그림자 메뉴</MenuButton>
541
+ <Menu
542
+ sx={{
543
+ boxShadow: "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)",
544
+ border: "none",
545
+ borderRadius: "xl"
546
+ }}
547
+ >
548
+ <MenuItem
549
+ sx={{
550
+ px: 3,
551
+ py: 1.5
552
+ }}
553
+ >
554
+ <StarIcon
555
+ sx={{
556
+ mr: 2,
557
+ color: "warning.500"
558
+ }}
559
+ />
560
+ 특별한 아이템 1
561
+ </MenuItem>
562
+ <MenuItem
563
+ sx={{
564
+ px: 3,
565
+ py: 1.5
566
+ }}
567
+ >
568
+ <StarIcon
569
+ sx={{
570
+ mr: 2,
571
+ color: "warning.500"
572
+ }}
573
+ />
574
+ 특별한 아이템 2
575
+ </MenuItem>
576
+ </Menu>
577
+ </Dropdown>
578
+ </Stack>
501
579
  ```
502
580
 
503
581
  ### Menu in Card
@@ -505,59 +583,75 @@ Customize the menu panel appearance with border-radius, shadows, borders, and cu
505
583
  Embed a Dropdown menu inside cards or other container components for contextual actions.
506
584
 
507
585
  ```tsx
508
- <Sheet variant="outlined" sx={{
509
- maxWidth: 400,
510
- p: 3,
511
- borderRadius: 'lg'
512
- }}>
513
- <Stack direction="row" justifyContent="space-between" alignItems="flex-start">
514
- <Stack spacing={1}>
515
- <Typography level="title-lg">프로젝트 카드</Typography>
516
- <Typography level="body-sm" color="neutral">
517
- 카드에는 메뉴가 포함되어 있습니다.
518
- </Typography>
519
- <Typography level="body-xs" color="neutral">
520
- 2024.01.15 생성
521
- </Typography>
522
- </Stack>
523
-
524
- <Dropdown>
525
- <MenuButton variant="plain" color="neutral" size="sm" sx={{
526
- minHeight: 'auto',
527
- p: 1
528
- }}>
529
-
530
- </MenuButton>
531
- <Menu placement="bottom-end">
532
- <MenuItem>
533
- <EditIcon sx={{
534
- mr: 1
535
- }} />
536
- 편집
537
- </MenuItem>
538
- <MenuItem>
539
- <CopyIcon sx={{
540
- mr: 1
541
- }} />
542
- 복제
543
- </MenuItem>
544
- <MenuItem>
545
- <ShareIcon sx={{
546
- mr: 1
547
- }} />
548
- 공유
549
- </MenuItem>
550
- <ListDivider />
551
- <MenuItem color="danger">
552
- <DeleteIcon sx={{
553
- mr: 1
554
- }} />
555
- 삭제
556
- </MenuItem>
557
- </Menu>
558
- </Dropdown>
559
- </Stack>
560
- </Sheet>
586
+ <Sheet
587
+ variant="outlined"
588
+ sx={{
589
+ maxWidth: 400,
590
+ p: 3,
591
+ borderRadius: "lg"
592
+ }}
593
+ >
594
+ <Stack direction="row" justifyContent="space-between" alignItems="flex-start">
595
+ <Stack spacing={1}>
596
+ <Typography level="title-lg">프로젝트 카드</Typography>
597
+ <Typography level="body-sm" color="neutral">
598
+ 카드에는 메뉴가 포함되어 있습니다.
599
+ </Typography>
600
+ <Typography level="body-xs" color="neutral">
601
+ 2024.01.15 생성
602
+ </Typography>
603
+ </Stack>
604
+
605
+ <Dropdown>
606
+ <MenuButton
607
+ variant="plain"
608
+ color="neutral"
609
+ size="sm"
610
+ sx={{
611
+ minHeight: "auto",
612
+ p: 1
613
+ }}
614
+ >
615
+
616
+ </MenuButton>
617
+ <Menu placement="bottom-end">
618
+ <MenuItem>
619
+ <EditIcon
620
+ sx={{
621
+ mr: 1
622
+ }}
623
+ />
624
+ 편집
625
+ </MenuItem>
626
+ <MenuItem>
627
+ <CopyIcon
628
+ sx={{
629
+ mr: 1
630
+ }}
631
+ />
632
+ 복제
633
+ </MenuItem>
634
+ <MenuItem>
635
+ <ShareIcon
636
+ sx={{
637
+ mr: 1
638
+ }}
639
+ />
640
+ 공유
641
+ </MenuItem>
642
+ <ListDivider />
643
+ <MenuItem color="danger">
644
+ <DeleteIcon
645
+ sx={{
646
+ mr: 1
647
+ }}
648
+ />
649
+ 삭제
650
+ </MenuItem>
651
+ </Menu>
652
+ </Dropdown>
653
+ </Stack>
654
+ </Sheet>
561
655
  ```
562
656
 
563
657
  ### Nested Content
@@ -566,84 +660,100 @@ Menu can contain non-MenuItem elements like Box, Typography, and progress indica
566
660
 
567
661
  ```tsx
568
662
  <Dropdown>
569
- <MenuButton variant="outlined">복합 콘텐츠</MenuButton>
570
- <Menu sx={{
571
- minWidth: 280
572
- }}>
573
- {/* 사용자 정보 섹션 */}
574
- <Box sx={{
575
- px: 2,
576
- py: 2
577
- }}>
578
- <Stack direction="row" spacing={2} alignItems="center">
579
- <Avatar variant="soft" color="primary">
580
- A
581
- </Avatar>
582
- <Stack>
583
- <Typography level="title-sm">Admin 사용자</Typography>
584
- <Typography level="body-xs" color="neutral">
585
- admin@example.com
586
- </Typography>
587
- </Stack>
588
- </Stack>
589
- </Box>
590
-
591
- <ListDivider />
592
-
593
- {/* 일반 메뉴 항목들 */}
594
- <MenuItem>
595
- <PersonIcon sx={{
596
- mr: 1.5
597
- }} />
598
- 프로필 관리
599
- </MenuItem>
600
- <MenuItem>
601
- <SettingsIcon sx={{
602
- mr: 1.5
603
- }} />
604
- 시스템 설정
605
- </MenuItem>
606
-
607
- <ListDivider />
608
-
609
- {/* 상태 정보 */}
610
- <Box sx={{
611
- px: 2,
612
- py: 1.5
613
- }}>
614
- <Stack spacing={1}>
615
- <Stack direction="row" justifyContent="space-between">
616
- <Typography level="body-xs" color="neutral">
617
- 저장 공간
618
- </Typography>
619
- <Typography level="body-xs">75%</Typography>
620
- </Stack>
621
- <Box sx={{
622
- height: 4,
623
- bgcolor: 'neutral.200',
624
- borderRadius: 'sm',
625
- position: 'relative'
626
- }}>
627
- <Box sx={{
628
- width: '75%',
629
- height: '100%',
630
- bgcolor: 'primary.500',
631
- borderRadius: 'sm'
632
- }} />
633
- </Box>
634
- </Stack>
635
- </Box>
636
-
637
- <ListDivider />
638
-
639
- <MenuItem>
640
- <LogoutIcon sx={{
641
- mr: 1.5
642
- }} />
643
- 로그아웃
644
- </MenuItem>
645
- </Menu>
646
- </Dropdown>
663
+ <MenuButton variant="outlined">복합 콘텐츠</MenuButton>
664
+ <Menu
665
+ sx={{
666
+ minWidth: 280
667
+ }}
668
+ >
669
+ {/* 사용자 정보 섹션 */}
670
+ <Box
671
+ sx={{
672
+ px: 2,
673
+ py: 2
674
+ }}
675
+ >
676
+ <Stack direction="row" spacing={2} alignItems="center">
677
+ <Avatar variant="soft" color="primary">
678
+ A
679
+ </Avatar>
680
+ <Stack>
681
+ <Typography level="title-sm">Admin 사용자</Typography>
682
+ <Typography level="body-xs" color="neutral">
683
+ admin@example.com
684
+ </Typography>
685
+ </Stack>
686
+ </Stack>
687
+ </Box>
688
+
689
+ <ListDivider />
690
+
691
+ {/* 일반 메뉴 항목들 */}
692
+ <MenuItem>
693
+ <PersonIcon
694
+ sx={{
695
+ mr: 1.5
696
+ }}
697
+ />
698
+ 프로필 관리
699
+ </MenuItem>
700
+ <MenuItem>
701
+ <SettingsIcon
702
+ sx={{
703
+ mr: 1.5
704
+ }}
705
+ />
706
+ 시스템 설정
707
+ </MenuItem>
708
+
709
+ <ListDivider />
710
+
711
+ {/* 상태 정보 */}
712
+ <Box
713
+ sx={{
714
+ px: 2,
715
+ py: 1.5
716
+ }}
717
+ >
718
+ <Stack spacing={1}>
719
+ <Stack direction="row" justifyContent="space-between">
720
+ <Typography level="body-xs" color="neutral">
721
+ 저장 공간
722
+ </Typography>
723
+ <Typography level="body-xs">75%</Typography>
724
+ </Stack>
725
+ <Box
726
+ sx={{
727
+ height: 4,
728
+ bgcolor: "neutral.200",
729
+ borderRadius: "sm",
730
+ position: "relative"
731
+ }}
732
+ >
733
+ <Box
734
+ sx={{
735
+ width: "75%",
736
+ height: "100%",
737
+ bgcolor: "primary.500",
738
+ borderRadius: "sm"
739
+ }}
740
+ />
741
+ </Box>
742
+ </Stack>
743
+ </Box>
744
+
745
+ <ListDivider />
746
+
747
+ <MenuItem>
748
+ <LogoutIcon
749
+ sx={{
750
+ mr: 1.5
751
+ }}
752
+ />
753
+ 로그아웃
754
+ </MenuItem>
755
+ </Menu>
756
+ </Dropdown>
647
757
  ```
648
758
 
649
759
  ## Common Use Cases
@@ -652,7 +762,9 @@ Menu can contain non-MenuItem elements like Box, Typography, and progress indica
652
762
 
653
763
  ```tsx
654
764
  <Dropdown>
655
- <MenuButton variant="plain" size="sm">Actions</MenuButton>
765
+ <MenuButton variant="plain" size="sm">
766
+ Actions
767
+ </MenuButton>
656
768
  <Menu>
657
769
  <MenuItem onClick={handleEdit}>
658
770
  <EditIcon sx={{ mr: 1 }} />
@@ -677,11 +789,19 @@ Menu can contain non-MenuItem elements like Box, Typography, and progress indica
677
789
  <Dropdown>
678
790
  <MenuButton>Navigate</MenuButton>
679
791
  <Menu>
680
- <MenuItem component="a" href="/home">Home</MenuItem>
681
- <MenuItem component="a" href="/products">Products</MenuItem>
682
- <MenuItem component="a" href="/services">Services</MenuItem>
792
+ <MenuItem component="a" href="/home">
793
+ Home
794
+ </MenuItem>
795
+ <MenuItem component="a" href="/products">
796
+ Products
797
+ </MenuItem>
798
+ <MenuItem component="a" href="/services">
799
+ Services
800
+ </MenuItem>
683
801
  <ListDivider />
684
- <MenuItem component="a" href="/contact">Contact</MenuItem>
802
+ <MenuItem component="a" href="/contact">
803
+ Contact
804
+ </MenuItem>
685
805
  </Menu>
686
806
  </Dropdown>
687
807
  ```
@@ -690,16 +810,15 @@ Menu can contain non-MenuItem elements like Box, Typography, and progress indica
690
810
 
691
811
  ```tsx
692
812
  <Dropdown>
693
- <MenuButton
694
- startDecorator={<Avatar size="sm" src="/avatar.jpg" />}
695
- endDecorator={<ExpandMoreIcon />}
696
- >
813
+ <MenuButton startDecorator={<Avatar size="sm" src="/avatar.jpg" />} endDecorator={<ExpandMoreIcon />}>
697
814
  Username
698
815
  </MenuButton>
699
816
  <Menu>
700
817
  <Box sx={{ px: 2, py: 1.5 }}>
701
818
  <Typography level="title-sm">Username</Typography>
702
- <Typography level="body-xs" color="neutral">user@example.com</Typography>
819
+ <Typography level="body-xs" color="neutral">
820
+ user@example.com
821
+ </Typography>
703
822
  </Box>
704
823
  <ListDivider />
705
824
  <MenuItem>
@@ -741,13 +860,15 @@ Menu can contain non-MenuItem elements like Box, Typography, and progress indica
741
860
  - **Use ListDivider to group related items.** Logical grouping helps users scan the menu faster. Place destructive actions (like Delete) in their own group at the bottom.
742
861
 
743
862
  ```tsx
744
- {/* ✅ Good: Grouped actions with divider */}
863
+ {
864
+ /* ✅ Good: Grouped actions with divider */
865
+ }
745
866
  <Menu>
746
867
  <MenuItem>Edit</MenuItem>
747
868
  <MenuItem>Duplicate</MenuItem>
748
869
  <ListDivider />
749
870
  <MenuItem color="danger">Delete</MenuItem>
750
- </Menu>
871
+ </Menu>;
751
872
  ```
752
873
 
753
874
  - **Keep icon sizing consistent.** When using icons in menu items, apply the same `fontSize` and `mr` (margin-right) to all icons so items align cleanly.