@ceed/ads 1.13.4 → 1.15.0-next.1

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,418 @@
1
+ # RadioTileGroup
2
+
3
+ RadioTileGroup 컴포넌트는 타일 형태의 라디오 옵션을 표시하는 컴포넌트입니다. 각 옵션이 타일 형태로 나타나며, 사용자가 선택할 수 있습니다.
4
+
5
+ ```tsx
6
+ <RadioTileGroup
7
+ options={simpleOptions}
8
+ useIndicator
9
+ />
10
+ ```
11
+
12
+ | Field | Description | Default |
13
+ | ------------ | ----------- | ------------- |
14
+ | options | — | simpleOptions |
15
+ | value | — | — |
16
+ | defaultValue | — | — |
17
+ | onChange | — | — |
18
+ | name | — | — |
19
+ | disabled | — | — |
20
+ | className | — | — |
21
+ | useIndicator | — | — |
22
+ | textAlign | — | — |
23
+ | size | — | — |
24
+ | flex | — | — |
25
+ | columns | — | — |
26
+ | label | — | — |
27
+ | helperText | — | — |
28
+ | error | — | — |
29
+ | required | — | — |
30
+
31
+ ## 기본형
32
+
33
+ RadioTileGroup의 기본 형태입니다. 필수 속성 값으로 `options`를 받으며, 각 옵션은 `value`와 `label`을 포함해야 합니다.
34
+
35
+ ```tsx
36
+ <RadioTileGroup
37
+ options={simpleOptions}
38
+ useIndicator
39
+ />
40
+ ```
41
+
42
+ `label`과 `helperText`를 함께 사용하면 아래와 같은 모습입니다.
43
+
44
+ ```tsx
45
+ <RadioTileGroup
46
+ options={simpleOptions}
47
+ useIndicator
48
+ label="Select an option"
49
+ helperText="This is helper text for the RadioTileGroup"
50
+ />
51
+ ```
52
+
53
+ ## 필수 값 표시
54
+
55
+ `required` 속성을 사용하여 필수 입력 필드임을 표시할 수 있습니다.
56
+
57
+ ```tsx
58
+ <RadioTileGroup
59
+ options={simpleOptions}
60
+ useIndicator
61
+ label="Select an option"
62
+ helperText="This field is required"
63
+ required
64
+ />
65
+ ```
66
+
67
+ ## 레이아웃 옵션
68
+
69
+ ### Flex
70
+
71
+ `flex` 속성을 활성화하면 RadioTileGroup이 사용 가능한 공간을 균등하게 채웁니다.
72
+
73
+ ```tsx
74
+ <RadioTileGroup
75
+ options={simpleOptions}
76
+ useIndicator
77
+ flex
78
+ />
79
+ ```
80
+
81
+ ### Columns
82
+
83
+ `columns` 속성을 사용하여 타일을 특정 열 수로 배치할 수 있습니다.
84
+
85
+ ```tsx
86
+ <RadioTileGroup
87
+ options={simpleOptions}
88
+ useIndicator
89
+ columns={2}
90
+ />
91
+ ```
92
+
93
+ ### Flex와 Columns 함께 사용
94
+
95
+ `flex`와 `columns` 속성을 함께 사용하여 타일이 균등하게 공간을 채우면서 특정 열 수로 배치할 수 있습니다.
96
+
97
+ ```tsx
98
+ <Box sx={{
99
+ width: '100%',
100
+ maxWidth: 700
101
+ }}>
102
+ <Typography level="body-md" sx={{
103
+ mb: 2
104
+ }}>
105
+ Flex with Columns
106
+ </Typography>
107
+ <RadioTileGroup options={optionsWithIcons} onChange={handleChange} value={selectedValue} flex={true} columns={3} size="md" useIndicator={true} label="Flex with Columns Example" helperText="Items stretch to fill available space and are arranged in 3 columns" />
108
+ </Box>
109
+ ```
110
+
111
+ ### 수직 레이아웃
112
+
113
+ `columns: 1`로 설정하면 타일이 수직으로 쌓이는 레이아웃을 만들 수 있습니다.
114
+
115
+ ```tsx
116
+ <Box sx={{
117
+ width: '100%',
118
+ maxWidth: 400
119
+ }}>
120
+ <Typography level="body-md" sx={{
121
+ mb: 2
122
+ }}>
123
+ Vertical Layout (columns: 1)
124
+ </Typography>
125
+ <RadioTileGroup options={pricingOptions} onChange={handleChange} value={selectedValue} columns={1} size="md" useIndicator={true} label="Subscription Plans" helperText="Select your preferred subscription plan" />
126
+ </Box>
127
+ ```
128
+
129
+ ## 정렬 옵션
130
+
131
+ `textAlign` 속성을 사용하여 타일 내부의 콘텐츠 정렬 방식을 설정할 수 있습니다. 기본값은 `center`이며, `start`로 설정하면 텍스트가 왼쪽으로 정렬됩니다.
132
+
133
+ ```tsx
134
+ <Box sx={{
135
+ display: 'flex',
136
+ flexDirection: 'column',
137
+ gap: 4,
138
+ width: '100%',
139
+ maxWidth: 700
140
+ }}>
141
+ <Box>
142
+ <Typography level="body-md" sx={{
143
+ mb: 2
144
+ }}>
145
+ Center Alignment (default)
146
+ </Typography>
147
+ <RadioTileGroup options={simpleOptions} textAlign="center" useIndicator={true} />
148
+ </Box>
149
+ <Box>
150
+ <Typography level="body-md" sx={{
151
+ mb: 2
152
+ }}>
153
+ Start Alignment
154
+ </Typography>
155
+ <RadioTileGroup options={simpleOptions} textAlign="start" useIndicator={true} />
156
+ </Box>
157
+ </Box>
158
+ ```
159
+
160
+ ## Size
161
+
162
+ RadioTileGroup은 세 가지 크기를 지원합니다: `sm`, `md`, `lg`. 기본값은 `sm`입니다.
163
+
164
+ ```tsx
165
+ <Box sx={{
166
+ display: 'flex',
167
+ flexDirection: 'column',
168
+ gap: 4,
169
+ width: '100%',
170
+ maxWidth: 700
171
+ }}>
172
+ <Box>
173
+ <Typography level="body-md" sx={{
174
+ mb: 2
175
+ }}>
176
+ Size: sm (default)
177
+ </Typography>
178
+ <RadioTileGroup options={simpleOptions} size="sm" useIndicator={true} />
179
+ </Box>
180
+ <Box>
181
+ <Typography level="body-md" sx={{
182
+ mb: 2
183
+ }}>
184
+ Size: md
185
+ </Typography>
186
+ <RadioTileGroup options={simpleOptions} size="md" useIndicator={true} />
187
+ </Box>
188
+ <Box>
189
+ <Typography level="body-md" sx={{
190
+ mb: 2
191
+ }}>
192
+ Size: lg
193
+ </Typography>
194
+ <RadioTileGroup options={simpleOptions} size="lg" useIndicator={true} />
195
+ </Box>
196
+ </Box>
197
+ ```
198
+
199
+ ## 아이콘 사용
200
+
201
+ 각 옵션에 `startDecorator` 속성을 사용하여 아이콘을 추가할 수 있습니다.
202
+
203
+ ```tsx
204
+ <RadioTileGroup
205
+ options={[{
206
+ value: 'home',
207
+ label: 'Home',
208
+ startDecorator: <HomeIcon fontSize="large" />
209
+ }, {
210
+ value: 'office',
211
+ label: 'Office',
212
+ startDecorator: <BusinessIcon fontSize="large" />
213
+ }, {
214
+ value: 'shipping',
215
+ label: 'Shipping',
216
+ startDecorator: <LocalShippingIcon fontSize="large" />
217
+ }]}
218
+ useIndicator
219
+ />
220
+ ```
221
+
222
+ ## 상태 관리
223
+
224
+ ### Controlled Component
225
+
226
+ RadioTileGroup은 상태 관리를 위한 제어 컴포넌트(Controlled Component)로 사용할 수 있습니다.
227
+
228
+ ```tsx
229
+ <Box sx={{
230
+ width: '100%',
231
+ maxWidth: 500
232
+ }}>
233
+ <Typography level="body-md" sx={{
234
+ mb: 1
235
+ }}>
236
+ Selected value: {selectedValue}
237
+ </Typography>
238
+ <RadioTileGroup options={simpleOptions} value={selectedValue} onChange={handleChange} />
239
+ </Box>
240
+ ```
241
+
242
+ ### Uncontrolled Component
243
+
244
+ 또한 비제어 컴포넌트(Uncontrolled Component)로도 사용 가능합니다.
245
+
246
+ ```tsx
247
+ <Box sx={{
248
+ display: 'flex',
249
+ flexDirection: 'column',
250
+ gap: 4
251
+ }}>
252
+ <Box sx={{
253
+ width: '100%',
254
+ maxWidth: 500
255
+ }}>
256
+ <Typography level="body-md" sx={{
257
+ mb: 2
258
+ }}>
259
+ Uncontrolled Example (with Indicator)
260
+ </Typography>
261
+ <RadioTileGroup options={simpleOptions} defaultValue="option2" useIndicator={true} onChange={event => console.log(`Selected value: ${event.target.value}`)} />
262
+ </Box>
263
+ <Box sx={{
264
+ width: '100%',
265
+ maxWidth: 500
266
+ }}>
267
+ <Typography level="body-md" sx={{
268
+ mb: 2
269
+ }}>
270
+ Uncontrolled Example (without Indicator)
271
+ </Typography>
272
+ <RadioTileGroup options={simpleOptions} defaultValue="option3" useIndicator={false} onChange={event => console.log(`Selected value: ${event.target.value}`)} />
273
+ </Box>
274
+ </Box>
275
+ ```
276
+
277
+ ## 비활성화 상태
278
+
279
+ ### 전체 비활성화
280
+
281
+ `disabled` 속성을 사용하여 모든 옵션을 비활성화할 수 있습니다.
282
+
283
+ ```tsx
284
+ <RadioTileGroup
285
+ options={simpleOptions}
286
+ disabled
287
+ />
288
+ ```
289
+
290
+ ### 개별 옵션 비활성화
291
+
292
+ 각 옵션별로 `disabled` 속성을 설정하여 특정 옵션만 비활성화할 수 있습니다.
293
+
294
+ ```tsx
295
+ <RadioTileGroup
296
+ options={[{
297
+ value: 'option1',
298
+ label: 'Option 1'
299
+ }, {
300
+ value: 'option2',
301
+ label: 'Option 2',
302
+ disabled: true
303
+ }, {
304
+ value: 'option3',
305
+ label: 'Option 3'
306
+ }]}
307
+ />
308
+ ```
309
+
310
+ ## 상태 표시
311
+
312
+ ### 오류 상태
313
+
314
+ `error` 속성을 사용하여 오류 상태를 표시할 수 있습니다.
315
+
316
+ ```tsx
317
+ <RadioTileGroup
318
+ options={simpleOptions}
319
+ useIndicator
320
+ label="Select an option"
321
+ helperText="Please select a valid option"
322
+ error
323
+ />
324
+ ```
325
+
326
+ ### 필수 값 검증 예제
327
+
328
+ `required` 속성과 함께 오류 상태를 활용하여 필수 값 검증을 할 수 있습니다. 아래는 폼 제출 시 유효성 검사를 포함한 예제입니다.
329
+
330
+ ```tsx
331
+ <Stack spacing={2} sx={{
332
+ width: '100%',
333
+ maxWidth: 500
334
+ }}>
335
+ <RadioTileGroup options={simpleOptions} value={selectedValue} onChange={handleChange} label="Choose your preferred option" helperText={error ? 'Please select an option' : 'This selection is required'} error={error} useIndicator={true} required={true} />
336
+ <Box sx={{
337
+ display: 'flex',
338
+ justifyContent: 'flex-end'
339
+ }}>
340
+ <Button onClick={handleSubmit}>Submit</Button>
341
+ </Box>
342
+ </Stack>
343
+ ```
344
+
345
+ ## 활용 사례
346
+
347
+ ### 배송 방법 선택
348
+
349
+ RadioTileGroup은 배송 방법을 시각적으로 선택할 수 있는 인터페이스로 활용할 수 있습니다. 각 타일에 아이콘과 함께 배송 방법 정보를 표시하여 사용자가 직관적으로 선택할 수 있도록 합니다.
350
+
351
+ ```tsx
352
+ <Box sx={{
353
+ width: '100%',
354
+ maxWidth: 700
355
+ }}>
356
+ <RadioTileGroup label="배송 방법 선택" helperText="배송 방법에 따라 배송비가 달라질 수 있습니다." options={[{
357
+ value: 'standard',
358
+ label: '일반 배송',
359
+ startDecorator: <HomeIcon />
360
+ }, {
361
+ value: 'express',
362
+ label: '빠른 배송',
363
+ startDecorator: <LocalShippingIcon />
364
+ }, {
365
+ value: 'business',
366
+ label: '기업 배송',
367
+ startDecorator: <BusinessIcon />
368
+ }]} onChange={handleChange} value={selectedValue} size="md" useIndicator={true} />
369
+ </Box>
370
+ ```
371
+
372
+ ### 설문조사
373
+
374
+ 설문조사나 선호도 조사에서 다양한 선택지를 제공하는 데 활용할 수 있습니다. 각 타일에 선택지를 시각적으로 표현하여 사용자가 직관적으로 응답할 수 있도록 합니다.
375
+
376
+ ```tsx
377
+ <Box sx={{
378
+ width: '100%',
379
+ maxWidth: 700
380
+ }}>
381
+ <RadioTileGroup label="선호하는 운동 유형을 선택해주세요" options={[{
382
+ value: 'cardio',
383
+ label: '유산소 운동',
384
+ startDecorator: <DirectionsRunIcon />
385
+ }, {
386
+ value: 'strength',
387
+ label: '근력 운동',
388
+ startDecorator: <FitnessCenterIcon />
389
+ }, {
390
+ value: 'flexibility',
391
+ label: '유연성 운동',
392
+ startDecorator: <SelfImprovementIcon />
393
+ }, {
394
+ value: 'balance',
395
+ label: '균형 운동',
396
+ startDecorator: <BalanceIcon />
397
+ }]} onChange={handleChange} value={selectedValue} columns={2} size="md" />
398
+ </Box>
399
+ ```
400
+
401
+ ### 폼 검증과 함께 사용
402
+
403
+ 폼 검증 기능과 함께 사용하여 사용자가 필수 항목을 선택했는지 확인할 수 있습니다.
404
+
405
+ ```tsx
406
+ <Stack spacing={2} sx={{
407
+ width: '100%',
408
+ maxWidth: 500
409
+ }}>
410
+ <RadioTileGroup options={simpleOptions} value={selectedValue} onChange={handleChange} label="Choose your preferred option" helperText={error ? 'Please select an option' : 'This selection is required'} error={error} useIndicator={true} required={true} />
411
+ <Box sx={{
412
+ display: 'flex',
413
+ justifyContent: 'flex-end'
414
+ }}>
415
+ <Button onClick={handleSubmit}>Submit</Button>
416
+ </Box>
417
+ </Stack>
418
+ ```
@@ -0,0 +1,56 @@
1
+ # Select
2
+
3
+ ## Introduction
4
+
5
+ ```tsx
6
+ <Select options={options} />
7
+ ```
8
+
9
+ | Field | Description | Default |
10
+ | -------------- | ----------- | ------- |
11
+ | variant | — | — |
12
+ | color | — | — |
13
+ | size | — | — |
14
+ | autoFocus | — | — |
15
+ | placeholder | — | — |
16
+ | startDecorator | — | — |
17
+ | endDecorator | — | — |
18
+ | error | — | — |
19
+ | helperText | — | — |
20
+ | value | — | — |
21
+ | defaultValue | — | — |
22
+ | onChange | — | — |
23
+ | options | — | options |
24
+
25
+ ### Variants
26
+
27
+ ```tsx
28
+ <Stack spacing={4}>
29
+ <Select defaultValue="dog" options={options} />
30
+ <Select defaultValue="dog" variant="plain" options={options} />
31
+ <Select defaultValue="dog" variant="soft" options={options} />
32
+ <Select defaultValue="dog" variant="solid" options={options} />
33
+ </Stack>
34
+ ```
35
+
36
+ ### Sizes
37
+
38
+ ```tsx
39
+ <Stack spacing={4}>
40
+ <Select defaultValue="dog" size="sm" options={options} />
41
+ <Select defaultValue="dog" size="md" options={options} />
42
+ <Select defaultValue="dog" size="lg" options={options} />
43
+ </Stack>
44
+ ```
45
+
46
+ ### Colors
47
+
48
+ ```tsx
49
+ <Stack spacing={4}>
50
+ <Select defaultValue="dog" color="primary" options={options} />
51
+ <Select defaultValue="dog" color="neutral" options={options} />
52
+ <Select defaultValue="dog" color="success" options={options} />
53
+ <Select defaultValue="dog" color="danger" options={options} />
54
+ <Select defaultValue="dog" color="warning" options={options} />
55
+ </Stack>
56
+ ```