@ceed/ads 1.13.4 → 1.15.0-next.2

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 (70) hide show
  1. package/dist/Overview.md +11 -0
  2. package/dist/components/Menu/Menu.d.ts +2 -5
  3. package/dist/components/Stepper/Stepper.d.ts +6 -0
  4. package/dist/components/data-display/Avatar.md +428 -0
  5. package/dist/components/data-display/Badge.md +315 -0
  6. package/dist/components/data-display/Chip.md +301 -0
  7. package/dist/components/data-display/DataTable.md +452 -0
  8. package/dist/components/data-display/InfoSign.md +160 -0
  9. package/dist/components/data-display/Markdown.md +17 -0
  10. package/dist/components/data-display/Table.md +1330 -0
  11. package/dist/components/data-display/Tooltip.md +444 -0
  12. package/dist/components/data-display/Typography.md +271 -0
  13. package/dist/components/data-display/llms.txt +17 -0
  14. package/dist/components/feedback/Alert.md +663 -0
  15. package/dist/components/feedback/Dialog.md +33 -0
  16. package/dist/components/feedback/Modal.md +39 -0
  17. package/dist/components/feedback/llms.txt +11 -0
  18. package/dist/components/inputs/Autocomplete.md +103 -0
  19. package/dist/components/inputs/Button.md +334 -0
  20. package/dist/components/inputs/ButtonGroup.md +382 -0
  21. package/dist/components/inputs/Calendar.md +19 -0
  22. package/dist/components/inputs/Checkbox.md +649 -0
  23. package/dist/components/inputs/CurrencyInput.md +91 -0
  24. package/dist/components/inputs/DatePicker.md +67 -0
  25. package/dist/components/inputs/DateRangePicker.md +55 -0
  26. package/dist/components/inputs/FilterMenu.md +210 -0
  27. package/dist/components/inputs/IconButton.md +361 -0
  28. package/dist/components/inputs/Input.md +283 -0
  29. package/dist/components/inputs/MonthPicker.md +72 -0
  30. package/dist/components/inputs/MonthRangePicker.md +70 -0
  31. package/dist/components/inputs/PercentageInput.md +116 -0
  32. package/dist/components/inputs/RadioButton.md +350 -0
  33. package/dist/components/inputs/RadioTileGroup.md +418 -0
  34. package/dist/components/inputs/Select.md +56 -0
  35. package/dist/components/inputs/Switch.md +577 -0
  36. package/dist/components/inputs/Textarea.md +64 -0
  37. package/dist/components/inputs/Uploader/Uploader.md +238 -0
  38. package/dist/components/inputs/Uploader/llms.txt +9 -0
  39. package/dist/components/inputs/llms.txt +31 -0
  40. package/dist/components/layout/Box.md +997 -0
  41. package/dist/components/layout/Container.md +23 -0
  42. package/dist/components/layout/Grid.md +728 -0
  43. package/dist/components/layout/Stack.md +937 -0
  44. package/dist/components/layout/llms.txt +12 -0
  45. package/dist/components/llms.txt +14 -0
  46. package/dist/components/navigation/Breadcrumbs.md +51 -0
  47. package/dist/components/navigation/Dropdown.md +768 -0
  48. package/dist/components/navigation/IconMenuButton.md +35 -0
  49. package/dist/components/navigation/InsetDrawer.md +133 -0
  50. package/dist/components/navigation/Link.md +24 -0
  51. package/dist/components/navigation/Menu.md +957 -0
  52. package/dist/components/navigation/MenuButton.md +39 -0
  53. package/dist/components/navigation/NavigationGroup.md +17 -0
  54. package/dist/components/navigation/NavigationItem.md +17 -0
  55. package/dist/components/navigation/Navigator.md +17 -0
  56. package/dist/components/navigation/Pagination.md +17 -0
  57. package/dist/components/navigation/ProfileMenu.md +34 -0
  58. package/dist/components/navigation/Stepper.md +108 -0
  59. package/dist/components/navigation/Tabs.md +34 -0
  60. package/dist/components/navigation/llms.txt +22 -0
  61. package/dist/components/surfaces/Accordions.md +96 -0
  62. package/dist/components/surfaces/Card.md +786 -0
  63. package/dist/components/surfaces/Divider.md +762 -0
  64. package/dist/components/surfaces/Sheet.md +900 -0
  65. package/dist/components/surfaces/llms.txt +12 -0
  66. package/dist/index.cjs +22 -10
  67. package/dist/index.js +22 -10
  68. package/dist/llms.txt +75 -0
  69. package/framer/index.js +36 -36
  70. package/package.json +8 -4
@@ -0,0 +1,315 @@
1
+ # Badge
2
+
3
+ ## Introduction
4
+
5
+ Badge 컴포넌트는 다른 UI 요소 위에 작은 카운트, 상태, 또는 레이블을 표시하는 데 사용됩니다. 주로 알림 수, 상태 표시기, 또는 새로운 콘텐츠를 나타내는 데 활용됩니다.
6
+
7
+ ```tsx
8
+ <Badge {...args}>
9
+ <IconButton>
10
+ <NotificationsIcon />
11
+ </IconButton>
12
+ </Badge>
13
+ ```
14
+
15
+ | Field | Description | Default |
16
+ | ------------ | ------------------- | --------- |
17
+ | badgeContent | 배지에 표시될 내용 | 4 |
18
+ | color | 배지 색상 | "primary" |
19
+ | variant | 배지 스타일 변형 | "solid" |
20
+ | size | 배지 크기 | "md" |
21
+ | invisible | 배지 숨김 여부 | — |
22
+ | showZero | 0일 때 표시 여부 | — |
23
+ | max | 최대 표시 숫자 (99 → 99+) | — |
24
+
25
+ ## Usage
26
+
27
+ ```tsx
28
+ import { Badge, IconButton } from '@ceed/ads';
29
+ import { NotificationsIcon } from '@mui/icons-material';
30
+
31
+ function MyComponent() {
32
+ return (
33
+ <Badge badgeContent={4} color="danger">
34
+ <IconButton>
35
+ <NotificationsIcon />
36
+ </IconButton>
37
+ </Badge>
38
+ );
39
+ }
40
+ ```
41
+
42
+ ## Examples
43
+
44
+ ### Basic Usage
45
+
46
+ 기본적인 Badge 사용법입니다.
47
+
48
+ ```tsx
49
+ <div style={{
50
+ display: 'flex',
51
+ gap: '2rem'
52
+ }}>
53
+ <Badge badgeContent={4}>
54
+ <IconButton>
55
+ <NotificationsIcon />
56
+ </IconButton>
57
+ </Badge>
58
+
59
+ <Badge badgeContent={100} max={99}>
60
+ <IconButton>
61
+ <EmailIcon />
62
+ </IconButton>
63
+ </Badge>
64
+
65
+ <Badge badgeContent="NEW">
66
+ <IconButton>
67
+ <NotificationsIcon />
68
+ </IconButton>
69
+ </Badge>
70
+ </div>
71
+ ```
72
+
73
+ ### Colors
74
+
75
+ 다양한 색상을 적용할 수 있습니다.
76
+
77
+ ```tsx
78
+ <div style={{
79
+ display: 'flex',
80
+ gap: '2rem'
81
+ }}>
82
+ <Badge badgeContent={4} color="primary">
83
+ <IconButton>
84
+ <NotificationsIcon />
85
+ </IconButton>
86
+ </Badge>
87
+
88
+ <Badge badgeContent={4} color="neutral">
89
+ <IconButton>
90
+ <NotificationsIcon />
91
+ </IconButton>
92
+ </Badge>
93
+
94
+ <Badge badgeContent={4} color="danger">
95
+ <IconButton>
96
+ <NotificationsIcon />
97
+ </IconButton>
98
+ </Badge>
99
+
100
+ <Badge badgeContent={4} color="success">
101
+ <IconButton>
102
+ <NotificationsIcon />
103
+ </IconButton>
104
+ </Badge>
105
+
106
+ <Badge badgeContent={4} color="warning">
107
+ <IconButton>
108
+ <NotificationsIcon />
109
+ </IconButton>
110
+ </Badge>
111
+ </div>
112
+ ```
113
+
114
+ ### Variants
115
+
116
+ 다양한 스타일 변형을 제공합니다.
117
+
118
+ ```tsx
119
+ <div style={{
120
+ display: 'flex',
121
+ gap: '2rem'
122
+ }}>
123
+ <Badge badgeContent={4} variant="solid">
124
+ <IconButton>
125
+ <NotificationsIcon />
126
+ </IconButton>
127
+ </Badge>
128
+
129
+ <Badge badgeContent={4} variant="soft">
130
+ <IconButton>
131
+ <NotificationsIcon />
132
+ </IconButton>
133
+ </Badge>
134
+
135
+ <Badge badgeContent={4} variant="outlined">
136
+ <IconButton>
137
+ <NotificationsIcon />
138
+ </IconButton>
139
+ </Badge>
140
+
141
+ <Badge badgeContent={4} variant="plain">
142
+ <IconButton>
143
+ <NotificationsIcon />
144
+ </IconButton>
145
+ </Badge>
146
+ </div>
147
+ ```
148
+
149
+ ### Sizes
150
+
151
+ 크기를 조절할 수 있습니다.
152
+
153
+ ```tsx
154
+ <div style={{
155
+ display: 'flex',
156
+ gap: '2rem',
157
+ alignItems: 'center'
158
+ }}>
159
+ <Badge badgeContent={4} size="sm">
160
+ <IconButton size="sm">
161
+ <NotificationsIcon />
162
+ </IconButton>
163
+ </Badge>
164
+
165
+ <Badge badgeContent={4} size="md">
166
+ <IconButton size="md">
167
+ <NotificationsIcon />
168
+ </IconButton>
169
+ </Badge>
170
+
171
+ <Badge badgeContent={4} size="lg">
172
+ <IconButton size="lg">
173
+ <NotificationsIcon />
174
+ </IconButton>
175
+ </Badge>
176
+ </div>
177
+ ```
178
+
179
+ ### With Avatar
180
+
181
+ 아바타와 함께 사용할 수 있습니다.
182
+
183
+ ```tsx
184
+ <div style={{
185
+ display: 'flex',
186
+ gap: '2rem'
187
+ }}>
188
+ <Badge badgeContent={4} color="danger">
189
+ <Avatar src="https://i.pravatar.cc/40?img=1" />
190
+ </Badge>
191
+
192
+ <Badge badgeContent="●" color="success">
193
+ <Avatar src="https://i.pravatar.cc/40?img=2" />
194
+ </Badge>
195
+ </div>
196
+ ```
197
+
198
+ ### Dot Badge
199
+
200
+ 내용 없이 점으로만 표시할 수 있습니다.
201
+
202
+ ```tsx
203
+ <div style={{
204
+ display: 'flex',
205
+ gap: '2rem'
206
+ }}>
207
+ <Badge variant="solid" color="danger">
208
+ <IconButton>
209
+ <NotificationsIcon />
210
+ </IconButton>
211
+ </Badge>
212
+
213
+ <Badge variant="solid" color="success">
214
+ <Avatar src="https://i.pravatar.cc/40?img=3" />
215
+ </Badge>
216
+ </div>
217
+ ```
218
+
219
+ ### Max Count
220
+
221
+ 최대 카운트를 설정하여 숫자가 넘을 때 '+' 표시를 할 수 있습니다.
222
+
223
+ ```tsx
224
+ <div style={{
225
+ display: 'flex',
226
+ gap: '2rem'
227
+ }}>
228
+ <Badge badgeContent={99}>
229
+ <IconButton>
230
+ <NotificationsIcon />
231
+ </IconButton>
232
+ </Badge>
233
+
234
+ <Badge badgeContent={100} max={99}>
235
+ <IconButton>
236
+ <NotificationsIcon />
237
+ </IconButton>
238
+ </Badge>
239
+
240
+ <Badge badgeContent={1000} max={999}>
241
+ <IconButton>
242
+ <NotificationsIcon />
243
+ </IconButton>
244
+ </Badge>
245
+ </div>
246
+ ```
247
+
248
+ ### Show Zero
249
+
250
+ 기본적으로 0일 때는 숨겨지지만, showZero 옵션으로 표시할 수 있습니다.
251
+
252
+ ```tsx
253
+ <div style={{
254
+ display: 'flex',
255
+ gap: '2rem'
256
+ }}>
257
+ <div>
258
+ <p>Default (0 숨김)</p>
259
+ <Badge badgeContent={0}>
260
+ <IconButton>
261
+ <NotificationsIcon />
262
+ </IconButton>
263
+ </Badge>
264
+ </div>
265
+
266
+ <div>
267
+ <p>Show zero</p>
268
+ <Badge badgeContent={0} showZero>
269
+ <IconButton>
270
+ <NotificationsIcon />
271
+ </IconButton>
272
+ </Badge>
273
+ </div>
274
+ </div>
275
+ ```
276
+
277
+ ## Common Use Cases
278
+
279
+ ### Notification Count
280
+
281
+ ```tsx
282
+ <Badge badgeContent={unreadCount} color="danger">
283
+ <IconButton>
284
+ <NotificationsIcon />
285
+ </IconButton>
286
+ </Badge>
287
+ ```
288
+
289
+ ### Status Indicator
290
+
291
+ ```tsx
292
+ <Badge color="success" variant="solid">
293
+ <Avatar src="/user-avatar.jpg" />
294
+ </Badge>
295
+ ```
296
+
297
+ ### New Items
298
+
299
+ ```tsx
300
+ <Badge badgeContent="NEW" color="warning">
301
+ <Button>메뉴</Button>
302
+ </Badge>
303
+ ```
304
+
305
+ ## Best Practices
306
+
307
+ 1. **의미 있는 색상**: 색상은 의미를 가지도록 사용하세요 (빨간색은 중요한 알림, 초록색은 성공 상태 등).
308
+
309
+ 2. **적절한 콘텐츠**: 너무 긴 텍스트는 피하고, 숫자나 짧은 텍스트를 사용하세요.
310
+
311
+ 3. **대비**: Badge의 색상이 배경과 충분한 대비를 가지도록 하세요.
312
+
313
+ 4. **접근성**: 시각적 정보만으로 의존하지 않고, 스크린 리더를 위한 적절한 레이블을 제공하세요.
314
+
315
+ 5. **일관성**: 애플리케이션 전체에서 Badge 사용 패턴을 일관되게 유지하세요.
@@ -0,0 +1,301 @@
1
+ # Chip
2
+
3
+ ## Introduction
4
+
5
+ Chip 컴포넌트는 입력, 속성, 액션을 컴팩트하게 표현하는 UI 요소입니다. 태그, 필터, 연락처, 카테고리 등을 나타내는 데 주로 사용됩니다. 텍스트, 아이콘, 아바타와 함께 사용할 수 있으며, 클릭하거나 삭제할 수 있는 인터랙티브한 기능을 제공합니다.
6
+
7
+ ```tsx
8
+ <Chip {...args} />
9
+ ```
10
+
11
+ | Field | Description | Default |
12
+ | -------- | ----------- | --------- |
13
+ | children | Chip 내용 | "Chip" |
14
+ | color | Chip 색상 | "primary" |
15
+ | variant | Chip 스타일 변형 | "solid" |
16
+ | size | Chip 크기 | "md" |
17
+ | disabled | 비활성화 상태 | — |
18
+
19
+ ## Usage
20
+
21
+ ```tsx
22
+ import { Chip } from '@ceed/ads';
23
+
24
+ function MyComponent() {
25
+ return (
26
+ <div>
27
+ <Chip>Basic Chip</Chip>
28
+ <Chip clickable onClick={() => console.log('clicked')}>
29
+ Clickable Chip
30
+ </Chip>
31
+ <Chip
32
+ endDecorator={<CloseIcon />}
33
+ onClick={() => console.log('delete')}
34
+ >
35
+ Deletable Chip
36
+ </Chip>
37
+ </div>
38
+ );
39
+ }
40
+ ```
41
+
42
+ ## Examples
43
+
44
+ ### Basic Usage
45
+
46
+ 기본적인 Chip 사용법입니다.
47
+
48
+ ```tsx
49
+ <div style={{
50
+ display: 'flex',
51
+ gap: '1rem',
52
+ flexWrap: 'wrap'
53
+ }}>
54
+ <Chip>Basic Chip</Chip>
55
+ <Chip disabled>Disabled</Chip>
56
+ <Chip onClick={() => alert('Clicked!')}>Clickable</Chip>
57
+ </div>
58
+ ```
59
+
60
+ ### Colors
61
+
62
+ 다양한 색상을 적용할 수 있습니다.
63
+
64
+ ```tsx
65
+ <div style={{
66
+ display: 'flex',
67
+ gap: '1rem',
68
+ flexWrap: 'wrap'
69
+ }}>
70
+ <Chip color="primary">Primary</Chip>
71
+ <Chip color="neutral">Neutral</Chip>
72
+ <Chip color="danger">Danger</Chip>
73
+ <Chip color="success">Success</Chip>
74
+ <Chip color="warning">Warning</Chip>
75
+ </div>
76
+ ```
77
+
78
+ ### Variants
79
+
80
+ 다양한 스타일 변형을 제공합니다.
81
+
82
+ ```tsx
83
+ <div style={{
84
+ display: 'flex',
85
+ gap: '1rem',
86
+ flexWrap: 'wrap'
87
+ }}>
88
+ <Chip variant="solid">Solid</Chip>
89
+ <Chip variant="soft">Soft</Chip>
90
+ <Chip variant="outlined">Outlined</Chip>
91
+ <Chip variant="plain">Plain</Chip>
92
+ </div>
93
+ ```
94
+
95
+ ### Sizes
96
+
97
+ 크기를 조절할 수 있습니다.
98
+
99
+ ```tsx
100
+ <div style={{
101
+ display: 'flex',
102
+ gap: '1rem',
103
+ alignItems: 'center',
104
+ flexWrap: 'wrap'
105
+ }}>
106
+ <Chip size="sm">Small</Chip>
107
+ <Chip size="md">Medium</Chip>
108
+ <Chip size="lg">Large</Chip>
109
+ </div>
110
+ ```
111
+
112
+ ### With Icons
113
+
114
+ 아이콘과 함께 사용할 수 있습니다.
115
+
116
+ ```tsx
117
+ <div style={{
118
+ display: 'flex',
119
+ gap: '1rem',
120
+ flexWrap: 'wrap'
121
+ }}>
122
+ <Chip startDecorator={<Add />}>Add Item</Chip>
123
+ <Chip endDecorator={<Close />}>Remove</Chip>
124
+ <Chip startDecorator={<Done />} color="success">
125
+ Completed
126
+ </Chip>
127
+ </div>
128
+ ```
129
+
130
+ ### With Avatar
131
+
132
+ 아바타와 함께 사용하여 사용자를 나타낼 수 있습니다.
133
+
134
+ ```tsx
135
+ <div style={{
136
+ display: 'flex',
137
+ gap: '1rem',
138
+ flexWrap: 'wrap'
139
+ }}>
140
+ <Chip startDecorator={<Avatar size="sm" src="https://i.pravatar.cc/40?img=1" />}>John Doe</Chip>
141
+ <Chip startDecorator={<Avatar size="sm" src="https://i.pravatar.cc/40?img=2" />}>Jane Smith</Chip>
142
+ </div>
143
+ ```
144
+
145
+ ### Deletable
146
+
147
+ 삭제 기능을 가진 Chip입니다. 클릭하면 목록에서 제거됩니다.
148
+
149
+ ```tsx
150
+ <div style={{
151
+ display: 'flex',
152
+ gap: '1rem',
153
+ flexWrap: 'wrap'
154
+ }}>
155
+ {chips.map(chip => <Chip key={chip} endDecorator={<Close />} onClick={() => handleDelete(chip)} variant="outlined">
156
+ {chip}
157
+ </Chip>)}
158
+ </div>
159
+ ```
160
+
161
+ ### Clickable
162
+
163
+ 클릭 가능한 Chip으로 필터나 탭으로 사용할 수 있습니다.
164
+
165
+ ```tsx
166
+ <div style={{
167
+ display: 'flex',
168
+ gap: '1rem',
169
+ flexWrap: 'wrap'
170
+ }}>
171
+ <Chip onClick={() => alert('Filter: All')}>All</Chip>
172
+ <Chip onClick={() => alert('Filter: Active')} color="success">
173
+ Active
174
+ </Chip>
175
+ <Chip onClick={() => alert('Filter: Completed')} color="neutral">
176
+ Completed
177
+ </Chip>
178
+ </div>
179
+ ```
180
+
181
+ ### Clickable Actions
182
+
183
+ 클릭하여 다양한 액션을 수행할 수 있습니다.
184
+
185
+ ```tsx
186
+ <div style={{
187
+ display: 'flex',
188
+ gap: '1rem',
189
+ flexWrap: 'wrap'
190
+ }}>
191
+ <Chip onClick={() => window.open('#', '_blank')}>Home</Chip>
192
+ <Chip onClick={() => window.open('#', '_blank')} variant="outlined">
193
+ About
194
+ </Chip>
195
+ <Chip onClick={() => window.open('#', '_blank')} variant="soft">
196
+ Contact
197
+ </Chip>
198
+ </div>
199
+ ```
200
+
201
+ ### States
202
+
203
+ 다양한 상태를 표현할 수 있습니다.
204
+
205
+ ```tsx
206
+ <div style={{
207
+ display: 'flex',
208
+ gap: '1rem',
209
+ flexWrap: 'wrap'
210
+ }}>
211
+ <div>
212
+ <h4>Normal</h4>
213
+ <div style={{
214
+ display: 'flex',
215
+ gap: '0.5rem',
216
+ flexWrap: 'wrap'
217
+ }}>
218
+ <Chip>Default</Chip>
219
+ <Chip onClick={() => {}}>Clickable</Chip>
220
+ <Chip endDecorator={<Close />}>Deletable</Chip>
221
+ </div>
222
+ </div>
223
+ <div>
224
+ <h4>Disabled</h4>
225
+ <div style={{
226
+ display: 'flex',
227
+ gap: '0.5rem',
228
+ flexWrap: 'wrap'
229
+ }}>
230
+ <Chip disabled>Default</Chip>
231
+ <Chip disabled onClick={() => {}}>
232
+ Clickable
233
+ </Chip>
234
+ <Chip disabled endDecorator={<Close />}>
235
+ Deletable
236
+ </Chip>
237
+ </div>
238
+ </div>
239
+ </div>
240
+ ```
241
+
242
+ ## Common Use Cases
243
+
244
+ ### Tags
245
+
246
+ ```tsx
247
+ <div style={{ display: 'flex', gap: '0.5rem' }}>
248
+ <Chip variant="outlined">React</Chip>
249
+ <Chip variant="outlined">TypeScript</Chip>
250
+ <Chip variant="outlined">JavaScript</Chip>
251
+ </div>
252
+ ```
253
+
254
+ ### Status Indicators
255
+
256
+ ```tsx
257
+ <Chip color="success" startDecorator={<CheckIcon />}>
258
+ Completed
259
+ </Chip>
260
+ <Chip color="warning" startDecorator={<ClockIcon />}>
261
+ In Progress
262
+ </Chip>
263
+ ```
264
+
265
+ ### Filter Controls
266
+
267
+ ```tsx
268
+ <Chip
269
+ clickable
270
+ variant={isActive ? 'solid' : 'outlined'}
271
+ onClick={() => setFilter('all')}
272
+ >
273
+ All Items
274
+ </Chip>
275
+ ```
276
+
277
+ ### Contact Pills
278
+
279
+ ```tsx
280
+ <Chip
281
+ startDecorator={<Avatar size="sm" />}
282
+ endDecorator={<CloseIcon />}
283
+ onDelete={() => removeContact(id)}
284
+ >
285
+ John Doe
286
+ </Chip>
287
+ ```
288
+
289
+ ## Best Practices
290
+
291
+ 1. **적절한 크기**: 콘텐츠에 맞는 적절한 크기를 선택하세요. 긴 텍스트는 피하고 간결하게 표현하세요.
292
+
293
+ 2. **일관된 스타일**: 같은 맥락에서는 일관된 variant와 color를 사용하세요.
294
+
295
+ 3. **명확한 액션**: clickable이나 deletable 기능을 사용할 때는 사용자에게 명확한 피드백을 제공하세요.
296
+
297
+ 4. **접근성**: 키보드 탐색이 가능하도록 하고, 스크린 리더를 위한 적절한 레이블을 제공하세요.
298
+
299
+ 5. **적절한 간격**: 여러 Chip을 나열할 때는 적절한 간격을 두어 가독성을 높이세요.
300
+
301
+ 6. **색상 의미**: 색상은 의미를 가지도록 사용하세요 (성공은 초록색, 경고는 주황색 등).