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