@ceed/cds 1.13.4 → 1.14.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 (68) 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 +404 -0
  5. package/dist/components/data-display/Badge.md +315 -0
  6. package/dist/components/data-display/Chip.md +290 -0
  7. package/dist/components/data-display/DataTable.md +452 -0
  8. package/dist/components/data-display/InfoSign.md +153 -0
  9. package/dist/components/data-display/Markdown.md +17 -0
  10. package/dist/components/data-display/Table.md +1331 -0
  11. package/dist/components/data-display/Tooltip.md +444 -0
  12. package/dist/components/data-display/Typography.md +268 -0
  13. package/dist/components/data-display/llms.txt +17 -0
  14. package/dist/components/feedback/Alert.md +647 -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 +380 -0
  21. package/dist/components/inputs/Calendar.md +19 -0
  22. package/dist/components/inputs/Checkbox.md +621 -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/IconButton.md +361 -0
  27. package/dist/components/inputs/Input.md +283 -0
  28. package/dist/components/inputs/MonthPicker.md +72 -0
  29. package/dist/components/inputs/MonthRangePicker.md +70 -0
  30. package/dist/components/inputs/PercentageInput.md +116 -0
  31. package/dist/components/inputs/RadioButton.md +350 -0
  32. package/dist/components/inputs/Select.md +56 -0
  33. package/dist/components/inputs/Switch.md +570 -0
  34. package/dist/components/inputs/Textarea.md +64 -0
  35. package/dist/components/inputs/Uploader/Uploader.md +238 -0
  36. package/dist/components/inputs/Uploader/llms.txt +9 -0
  37. package/dist/components/inputs/llms.txt +29 -0
  38. package/dist/components/layout/Box.md +998 -0
  39. package/dist/components/layout/Container.md +23 -0
  40. package/dist/components/layout/Grid.md +742 -0
  41. package/dist/components/layout/Stack.md +936 -0
  42. package/dist/components/layout/llms.txt +12 -0
  43. package/dist/components/llms.txt +14 -0
  44. package/dist/components/navigation/Breadcrumbs.md +51 -0
  45. package/dist/components/navigation/Drawer.md +27 -0
  46. package/dist/components/navigation/Dropdown.md +756 -0
  47. package/dist/components/navigation/IconMenuButton.md +35 -0
  48. package/dist/components/navigation/InsetDrawer.md +133 -0
  49. package/dist/components/navigation/Link.md +24 -0
  50. package/dist/components/navigation/Menu.md +957 -0
  51. package/dist/components/navigation/MenuButton.md +39 -0
  52. package/dist/components/navigation/NavigationGroup.md +17 -0
  53. package/dist/components/navigation/NavigationItem.md +17 -0
  54. package/dist/components/navigation/Navigator.md +17 -0
  55. package/dist/components/navigation/Pagination.md +17 -0
  56. package/dist/components/navigation/Stepper.md +108 -0
  57. package/dist/components/navigation/Tabs.md +34 -0
  58. package/dist/components/navigation/llms.txt +22 -0
  59. package/dist/components/surfaces/Accordions.md +96 -0
  60. package/dist/components/surfaces/Card.md +786 -0
  61. package/dist/components/surfaces/Divider.md +762 -0
  62. package/dist/components/surfaces/Sheet.md +892 -0
  63. package/dist/components/surfaces/llms.txt +12 -0
  64. package/dist/index.cjs +22 -10
  65. package/dist/index.js +22 -10
  66. package/dist/llms.txt +73 -0
  67. package/framer/index.js +35 -35
  68. package/package.json +8 -4
@@ -0,0 +1,67 @@
1
+ # DatePicker
2
+
3
+ ## Introduction
4
+
5
+ ```tsx
6
+ <DatePicker onChange={fn()} />
7
+ ```
8
+
9
+ | Field | Description | Default |
10
+ | --------------- | ----------- | ------- |
11
+ | size | — | — |
12
+ | name | — | — |
13
+ | required | — | — |
14
+ | format | — | — |
15
+ | displayFormat | — | — |
16
+ | label | — | — |
17
+ | helperText | — | — |
18
+ | error | — | — |
19
+ | inputReadOnly | — | — |
20
+ | readOnly | — | — |
21
+ | hideClearButton | — | — |
22
+ | value | — | — |
23
+ | defaultValue | — | — |
24
+ | minDate | — | — |
25
+ | maxDate | — | — |
26
+ | disableFuture | — | — |
27
+ | disablePast | — | — |
28
+
29
+ ### Sizes
30
+
31
+ ```tsx
32
+ <Stack gap={2}>
33
+ <DatePicker {...args} size="sm" />
34
+ <DatePicker {...args} size="md" />
35
+ <DatePicker {...args} size="lg" />
36
+ </Stack>
37
+ ```
38
+
39
+ ### WithLabel
40
+
41
+ ```tsx
42
+ <DatePicker
43
+ onChange={fn()}
44
+ label="Date"
45
+ />
46
+ ```
47
+
48
+ ### WithHelperText
49
+
50
+ ```tsx
51
+ <DatePicker
52
+ onChange={fn()}
53
+ label="Date"
54
+ helperText="Please select a date"
55
+ />
56
+ ```
57
+
58
+ ### Error
59
+
60
+ ```tsx
61
+ <DatePicker
62
+ onChange={fn()}
63
+ label="Date"
64
+ helperText="Please select a date"
65
+ error
66
+ />
67
+ ```
@@ -0,0 +1,55 @@
1
+ # DateRangePicker
2
+
3
+ ## Introduction
4
+
5
+ ```tsx
6
+ <DateRangePicker onChange={onChange} />
7
+ ```
8
+
9
+ | Field | Description | Default |
10
+ | --------------- | ----------- | ------- |
11
+ | name | — | — |
12
+ | value | — | — |
13
+ | defaultValue | — | — |
14
+ | disabled | — | — |
15
+ | required | — | — |
16
+ | label | — | — |
17
+ | error | — | — |
18
+ | helperText | — | — |
19
+ | minDate | — | — |
20
+ | maxDate | — | — |
21
+ | disableFuture | — | — |
22
+ | disablePast | — | — |
23
+ | format | — | — |
24
+ | displayFormat | — | — |
25
+ | inputReadOnly | — | — |
26
+ | hideClearButton | — | — |
27
+ | size | — | — |
28
+
29
+ ### Sizes
30
+
31
+ ```tsx
32
+ <Stack gap={2}>
33
+ <DateRangePicker size="sm" />
34
+ <DateRangePicker size="md" />
35
+ <DateRangePicker size="lg" />
36
+ </Stack>
37
+ ```
38
+
39
+ ### Disabled
40
+
41
+ ```tsx
42
+ <DateRangePicker
43
+ onChange={onChange}
44
+ disabled
45
+ />
46
+ ```
47
+
48
+ ### WithLabel
49
+
50
+ ```tsx
51
+ <DateRangePicker
52
+ onChange={onChange}
53
+ label="Date Range"
54
+ />
55
+ ```
@@ -0,0 +1,361 @@
1
+ # IconButton
2
+
3
+ ## Introduction
4
+
5
+ IconButton 컴포넌트는 아이콘만으로 구성된 버튼입니다. 공간 효율적이며, 직관적인 액션을 제공하는 UI 요소로 주로 툴바, 헤더, 카드 등에서 사용됩니다. 텍스트 없이도 의미를 전달할 수 있는 명확한 아이콘과 함께 사용하세요.
6
+
7
+ ```tsx
8
+ <IconButton {...args} />
9
+ ```
10
+
11
+ | Field | Description | Default |
12
+ | -------- | ----------- | --------- |
13
+ | children | 아이콘 요소 | \<Add /> |
14
+ | color | 버튼 색상 | "primary" |
15
+ | variant | 버튼 스타일 변형 | "solid" |
16
+ | size | 버튼 크기 | "md" |
17
+ | disabled | 비활성화 상태 | — |
18
+ | loading | 로딩 상태 | — |
19
+
20
+ ## Usage
21
+
22
+ ```tsx
23
+ import { IconButton } from '@ceed/cds';
24
+ import AddIcon from '@mui/icons-material/Add';
25
+
26
+ function MyComponent() {
27
+ return (
28
+ <div>
29
+ <IconButton onClick={() => console.log('clicked')}>
30
+ <AddIcon />
31
+ </IconButton>
32
+
33
+ <IconButton color="danger" onClick={() => console.log('delete')}>
34
+ <DeleteIcon />
35
+ </IconButton>
36
+
37
+ <IconButton disabled>
38
+ <EditIcon />
39
+ </IconButton>
40
+ </div>
41
+ );
42
+ }
43
+ ```
44
+
45
+ ## Examples
46
+
47
+ ### Basic Usage
48
+
49
+ 기본적인 IconButton 사용법입니다.
50
+
51
+ ```tsx
52
+ <div style={{
53
+ display: 'flex',
54
+ gap: '1rem',
55
+ alignItems: 'center'
56
+ }}>
57
+ <IconButton>
58
+ <Add />
59
+ </IconButton>
60
+ <IconButton>
61
+ <Edit />
62
+ </IconButton>
63
+ <IconButton>
64
+ <Delete />
65
+ </IconButton>
66
+ <IconButton>
67
+ <Settings />
68
+ </IconButton>
69
+ </div>
70
+ ```
71
+
72
+ ### Colors
73
+
74
+ 다양한 색상을 적용할 수 있습니다.
75
+
76
+ ```tsx
77
+ <div style={{
78
+ display: 'flex',
79
+ gap: '1rem',
80
+ alignItems: 'center'
81
+ }}>
82
+ <IconButton color="primary">
83
+ <Add />
84
+ </IconButton>
85
+ <IconButton color="neutral">
86
+ <Edit />
87
+ </IconButton>
88
+ <IconButton color="danger">
89
+ <Delete />
90
+ </IconButton>
91
+ <IconButton color="success">
92
+ <FavoriteIcon />
93
+ </IconButton>
94
+ <IconButton color="warning">
95
+ <Settings />
96
+ </IconButton>
97
+ </div>
98
+ ```
99
+
100
+ ### Variants
101
+
102
+ 다양한 스타일 변형을 제공합니다.
103
+
104
+ ```tsx
105
+ <div style={{
106
+ display: 'flex',
107
+ gap: '1rem',
108
+ alignItems: 'center'
109
+ }}>
110
+ <IconButton variant="solid">
111
+ <Add />
112
+ </IconButton>
113
+ <IconButton variant="soft">
114
+ <Add />
115
+ </IconButton>
116
+ <IconButton variant="outlined">
117
+ <Add />
118
+ </IconButton>
119
+ <IconButton variant="plain">
120
+ <Add />
121
+ </IconButton>
122
+ </div>
123
+ ```
124
+
125
+ ### Sizes
126
+
127
+ 크기를 조절할 수 있습니다.
128
+
129
+ ```tsx
130
+ <div style={{
131
+ display: 'flex',
132
+ gap: '1rem',
133
+ alignItems: 'center'
134
+ }}>
135
+ <IconButton size="sm">
136
+ <Add />
137
+ </IconButton>
138
+ <IconButton size="md">
139
+ <Add />
140
+ </IconButton>
141
+ <IconButton size="lg">
142
+ <Add />
143
+ </IconButton>
144
+ </div>
145
+ ```
146
+
147
+ ### States
148
+
149
+ 다양한 상태를 표현할 수 있습니다.
150
+
151
+ ```tsx
152
+ <div style={{
153
+ display: 'flex',
154
+ gap: '2rem',
155
+ alignItems: 'center'
156
+ }}>
157
+ <div>
158
+ <h4>Normal</h4>
159
+ <div style={{
160
+ display: 'flex',
161
+ gap: '1rem',
162
+ alignItems: 'center'
163
+ }}>
164
+ <IconButton>
165
+ <Add />
166
+ </IconButton>
167
+ <IconButton color="danger">
168
+ <Delete />
169
+ </IconButton>
170
+ </div>
171
+ </div>
172
+ <div>
173
+ <h4>Disabled</h4>
174
+ <div style={{
175
+ display: 'flex',
176
+ gap: '1rem',
177
+ alignItems: 'center'
178
+ }}>
179
+ <IconButton disabled>
180
+ <Add />
181
+ </IconButton>
182
+ <IconButton disabled color="danger">
183
+ <Delete />
184
+ </IconButton>
185
+ </div>
186
+ </div>
187
+ <div>
188
+ <h4>Loading</h4>
189
+ <div style={{
190
+ display: 'flex',
191
+ gap: '1rem',
192
+ alignItems: 'center'
193
+ }}>
194
+ <IconButton loading>
195
+ <Add />
196
+ </IconButton>
197
+ <IconButton loading color="danger">
198
+ <Delete />
199
+ </IconButton>
200
+ </div>
201
+ </div>
202
+ </div>
203
+ ```
204
+
205
+ ### With Badge
206
+
207
+ Badge와 함께 사용하여 알림 수나 상태를 표시할 수 있습니다.
208
+
209
+ ```tsx
210
+ <div style={{
211
+ display: 'flex',
212
+ gap: '1rem',
213
+ alignItems: 'center'
214
+ }}>
215
+ <Badge badgeContent={4} color="danger">
216
+ <IconButton>
217
+ <Settings />
218
+ </IconButton>
219
+ </Badge>
220
+ <Badge badgeContent="99+" color="warning">
221
+ <IconButton color="neutral">
222
+ <MoreVertIcon />
223
+ </IconButton>
224
+ </Badge>
225
+ <Badge variant="solid" color="success">
226
+ <IconButton color="primary">
227
+ <FavoriteIcon />
228
+ </IconButton>
229
+ </Badge>
230
+ </div>
231
+ ```
232
+
233
+ ### With Tooltip
234
+
235
+ Tooltip과 함께 사용하여 버튼의 기능을 설명할 수 있습니다.
236
+
237
+ ```tsx
238
+ <div style={{
239
+ display: 'flex',
240
+ gap: '1rem',
241
+ alignItems: 'center'
242
+ }}>
243
+ <Tooltip title="새 항목 추가">
244
+ <IconButton>
245
+ <Add />
246
+ </IconButton>
247
+ </Tooltip>
248
+ <Tooltip title="편집">
249
+ <IconButton color="neutral">
250
+ <Edit />
251
+ </IconButton>
252
+ </Tooltip>
253
+ <Tooltip title="삭제">
254
+ <IconButton color="danger">
255
+ <Delete />
256
+ </IconButton>
257
+ </Tooltip>
258
+ <Tooltip title="공유">
259
+ <IconButton color="success">
260
+ <ShareIcon />
261
+ </IconButton>
262
+ </Tooltip>
263
+ </div>
264
+ ```
265
+
266
+ ### Action Buttons
267
+
268
+ 실제 액션을 수행하는 버튼들의 예제입니다.
269
+
270
+ ```tsx
271
+ <div style={{
272
+ display: 'flex',
273
+ gap: '1rem',
274
+ alignItems: 'center'
275
+ }}>
276
+ <IconButton onClick={() => alert('Add clicked!')} title="Add new item">
277
+ <Add />
278
+ </IconButton>
279
+ <IconButton onClick={() => alert('Edit clicked!')} color="neutral" title="Edit item">
280
+ <Edit />
281
+ </IconButton>
282
+ <IconButton onClick={() => alert('Delete clicked!')} color="danger" title="Delete item">
283
+ <Delete />
284
+ </IconButton>
285
+ <IconButton onClick={() => alert('Share clicked!')} color="success" title="Share item">
286
+ <ShareIcon />
287
+ </IconButton>
288
+ <IconButton onClick={() => alert('Settings clicked!')} color="neutral" variant="outlined" title="Settings">
289
+ <Settings />
290
+ </IconButton>
291
+ </div>
292
+ ```
293
+
294
+ ## Common Use Cases
295
+
296
+ ### Toolbar Actions
297
+
298
+ ```tsx
299
+ <div style={{ display: 'flex', gap: '0.5rem' }}>
300
+ <IconButton onClick={handleAdd} title="Add item">
301
+ <AddIcon />
302
+ </IconButton>
303
+ <IconButton onClick={handleEdit} color="neutral" title="Edit">
304
+ <EditIcon />
305
+ </IconButton>
306
+ <IconButton onClick={handleDelete} color="danger" title="Delete">
307
+ <DeleteIcon />
308
+ </IconButton>
309
+ </div>
310
+ ```
311
+
312
+ ### Navigation
313
+
314
+ ```tsx
315
+ <IconButton onClick={() => router.back()} variant="outlined">
316
+ <ArrowBackIcon />
317
+ </IconButton>
318
+ ```
319
+
320
+ ### Settings & More Options
321
+
322
+ ```tsx
323
+ <IconButton onClick={handleSettings} color="neutral">
324
+ <SettingsIcon />
325
+ </IconButton>
326
+ <IconButton onClick={handleMoreOptions}>
327
+ <MoreVertIcon />
328
+ </IconButton>
329
+ ```
330
+
331
+ ### Social Actions
332
+
333
+ ```tsx
334
+ <IconButton onClick={handleLike} color="danger">
335
+ <FavoriteIcon />
336
+ </IconButton>
337
+ <IconButton onClick={handleShare} color="primary">
338
+ <ShareIcon />
339
+ </IconButton>
340
+ ```
341
+
342
+ ## Best Practices
343
+
344
+ 1. **명확한 아이콘**: 사용자가 쉽게 이해할 수 있는 명확하고 직관적인 아이콘을 사용하세요.
345
+
346
+ 2. **적절한 크기**: 터치 인터페이스를 고려하여 최소 44px 이상의 터치 영역을 확보하세요.
347
+
348
+ 3. **접근성**:
349
+ - `title` 속성이나 `aria-label`을 제공하여 스크린 리더 사용자를 위한 설명을 추가하세요.
350
+ - Tooltip과 함께 사용하여 기능을 명확히 설명하세요.
351
+
352
+ 4. **일관된 스타일**: 같은 맥락에서는 일관된 variant와 색상을 사용하세요.
353
+
354
+ 5. **의미 있는 색상**:
355
+ - 빨간색(danger): 삭제, 취소 등의 위험한 액션
356
+ - 초록색(success): 저장, 승인 등의 긍정적인 액션
357
+ - 회색(neutral): 일반적인 액션
358
+
359
+ 6. **피드백 제공**: 클릭 시 명확한 피드백을 제공하여 사용자가 액션이 실행되었음을 알 수 있도록 하세요.
360
+
361
+ 7. **로딩 상태**: 비동기 작업 시 `loading` prop을 사용하여 사용자에게 진행 상황을 알려주세요.