@ceed/ads 1.13.3 → 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 (71) hide show
  1. package/dist/Overview.md +11 -0
  2. package/dist/components/Input/Input.d.ts +9 -1
  3. package/dist/components/Menu/Menu.d.ts +2 -5
  4. package/dist/components/Stepper/Stepper.d.ts +6 -0
  5. package/dist/components/data-display/Avatar.md +428 -0
  6. package/dist/components/data-display/Badge.md +315 -0
  7. package/dist/components/data-display/Chip.md +301 -0
  8. package/dist/components/data-display/DataTable.md +452 -0
  9. package/dist/components/data-display/InfoSign.md +160 -0
  10. package/dist/components/data-display/Markdown.md +17 -0
  11. package/dist/components/data-display/Table.md +1330 -0
  12. package/dist/components/data-display/Tooltip.md +444 -0
  13. package/dist/components/data-display/Typography.md +271 -0
  14. package/dist/components/data-display/llms.txt +17 -0
  15. package/dist/components/feedback/Alert.md +663 -0
  16. package/dist/components/feedback/Dialog.md +33 -0
  17. package/dist/components/feedback/Modal.md +39 -0
  18. package/dist/components/feedback/llms.txt +11 -0
  19. package/dist/components/inputs/Autocomplete.md +103 -0
  20. package/dist/components/inputs/Button.md +334 -0
  21. package/dist/components/inputs/ButtonGroup.md +382 -0
  22. package/dist/components/inputs/Calendar.md +19 -0
  23. package/dist/components/inputs/Checkbox.md +649 -0
  24. package/dist/components/inputs/CurrencyInput.md +91 -0
  25. package/dist/components/inputs/DatePicker.md +67 -0
  26. package/dist/components/inputs/DateRangePicker.md +55 -0
  27. package/dist/components/inputs/FilterMenu.md +210 -0
  28. package/dist/components/inputs/IconButton.md +361 -0
  29. package/dist/components/inputs/Input.md +283 -0
  30. package/dist/components/inputs/MonthPicker.md +72 -0
  31. package/dist/components/inputs/MonthRangePicker.md +70 -0
  32. package/dist/components/inputs/PercentageInput.md +116 -0
  33. package/dist/components/inputs/RadioButton.md +350 -0
  34. package/dist/components/inputs/RadioTileGroup.md +418 -0
  35. package/dist/components/inputs/Select.md +56 -0
  36. package/dist/components/inputs/Switch.md +577 -0
  37. package/dist/components/inputs/Textarea.md +64 -0
  38. package/dist/components/inputs/Uploader/Uploader.md +238 -0
  39. package/dist/components/inputs/Uploader/llms.txt +9 -0
  40. package/dist/components/inputs/llms.txt +31 -0
  41. package/dist/components/layout/Box.md +997 -0
  42. package/dist/components/layout/Container.md +23 -0
  43. package/dist/components/layout/Grid.md +728 -0
  44. package/dist/components/layout/Stack.md +937 -0
  45. package/dist/components/layout/llms.txt +12 -0
  46. package/dist/components/llms.txt +14 -0
  47. package/dist/components/navigation/Breadcrumbs.md +51 -0
  48. package/dist/components/navigation/Dropdown.md +768 -0
  49. package/dist/components/navigation/IconMenuButton.md +35 -0
  50. package/dist/components/navigation/InsetDrawer.md +133 -0
  51. package/dist/components/navigation/Link.md +24 -0
  52. package/dist/components/navigation/Menu.md +957 -0
  53. package/dist/components/navigation/MenuButton.md +39 -0
  54. package/dist/components/navigation/NavigationGroup.md +17 -0
  55. package/dist/components/navigation/NavigationItem.md +17 -0
  56. package/dist/components/navigation/Navigator.md +17 -0
  57. package/dist/components/navigation/Pagination.md +17 -0
  58. package/dist/components/navigation/ProfileMenu.md +34 -0
  59. package/dist/components/navigation/Stepper.md +108 -0
  60. package/dist/components/navigation/Tabs.md +34 -0
  61. package/dist/components/navigation/llms.txt +22 -0
  62. package/dist/components/surfaces/Accordions.md +96 -0
  63. package/dist/components/surfaces/Card.md +786 -0
  64. package/dist/components/surfaces/Divider.md +762 -0
  65. package/dist/components/surfaces/Sheet.md +900 -0
  66. package/dist/components/surfaces/llms.txt +12 -0
  67. package/dist/index.cjs +47 -11
  68. package/dist/index.js +81 -45
  69. package/dist/llms.txt +75 -0
  70. package/framer/index.js +36 -36
  71. package/package.json +8 -4
@@ -0,0 +1,91 @@
1
+ # CurrencyInput
2
+
3
+ ## Introduction
4
+
5
+ ```tsx
6
+ <CurrencyInput
7
+ name="currency-input"
8
+ defaultValue={1000}
9
+ />
10
+ ```
11
+
12
+ | Field | Description | Default |
13
+ | ------------ | ----------- | ---------------- |
14
+ | size | — | — |
15
+ | name | — | "currency-input" |
16
+ | value | — | — |
17
+ | defaultValue | — | 1000 |
18
+ | currency | — | — |
19
+ | label | — | — |
20
+ | helperText | — | — |
21
+ | required | — | — |
22
+ | error | — | — |
23
+ | disabled | — | — |
24
+ | max | — | — |
25
+ | useMinorUnit | — | — |
26
+ | onChange | — | — |
27
+
28
+ ### KRW
29
+
30
+ ```tsx
31
+ <CurrencyInput
32
+ name="currency-input"
33
+ defaultValue={1000}
34
+ currency="KRW"
35
+ />
36
+ ```
37
+
38
+ ### Sizes
39
+
40
+ ```tsx
41
+ <Stack gap={2}>
42
+ <CurrencyInput size="sm" label="Small" defaultValue={1000} />
43
+ <CurrencyInput size="md" label="Medium" defaultValue={1000} />
44
+ <CurrencyInput size="lg" label="Large" defaultValue={1000} />
45
+ </Stack>
46
+ ```
47
+
48
+ ### WithLabel
49
+
50
+ ```tsx
51
+ <CurrencyInput
52
+ name="currency-input"
53
+ defaultValue={1000}
54
+ label="Currency Input"
55
+ />
56
+ ```
57
+
58
+ ### WithHelperText
59
+
60
+ ```tsx
61
+ <CurrencyInput
62
+ name="currency-input"
63
+ defaultValue={1000}
64
+ label="Currency Input"
65
+ helperText="Please enter a currency"
66
+ />
67
+ ```
68
+
69
+ ### Error
70
+
71
+ ```tsx
72
+ <CurrencyInput
73
+ name="currency-input"
74
+ defaultValue={1000}
75
+ label="Currency Input"
76
+ helperText="Please enter a currency"
77
+ error
78
+ />
79
+ ```
80
+
81
+ ### PriceLimitError
82
+
83
+ ```tsx
84
+ <CurrencyInput
85
+ name="currency-input"
86
+ defaultValue={10000000}
87
+ label="Currency Input"
88
+ helperText="Please enter a currency"
89
+ max={1000000}
90
+ />
91
+ ```
@@ -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,210 @@
1
+ # FilterMenu
2
+
3
+ ## Introduction
4
+
5
+ FilterMenu는 다양한 필터 타입을 지원하는 모달 형태의 필터 컴포넌트입니다. 여러 종류의 필터를 조합하여 복잡한 필터링 UI를 쉽게 구성할 수 있습니다.
6
+
7
+ ```tsx
8
+ <FilterMenu {...args} defaultValues={values} onChange={newValues => {
9
+ setValues(newValues);
10
+ args.onChange!(newValues);
11
+ }} />
12
+ ```
13
+
14
+ | Field | Description | Default |
15
+ | ---------------------------- | ----------- | ------- |
16
+ | Controls resolved at runtime | — | — |
17
+
18
+ ## Usage
19
+
20
+ ```tsx
21
+ import { FilterMenu } from '@ceed/ads';
22
+
23
+ function MyComponent() {
24
+ const [filterValues, setFilterValues] = useState({});
25
+
26
+ const filters = [
27
+ {
28
+ id: 'status',
29
+ type: 'checkbox-group',
30
+ label: 'Status',
31
+ options: [
32
+ { label: 'Active', value: 'active' },
33
+ { label: 'Inactive', value: 'inactive' },
34
+ ],
35
+ },
36
+ {
37
+ id: 'priority',
38
+ type: 'radio-group',
39
+ label: 'Priority',
40
+ options: [
41
+ { label: 'High', value: 'high' },
42
+ { label: 'Medium', value: 'medium' },
43
+ { label: 'Low', value: 'low' },
44
+ ],
45
+ },
46
+ {
47
+ id: 'dateRange',
48
+ type: 'date-range',
49
+ label: 'Date Range',
50
+ displayFormat: 'MM/DD/YYYY',
51
+ },
52
+ ];
53
+
54
+ return <FilterMenu filters={filters} values={filterValues} onChange={setFilterValues} useReset />;
55
+ }
56
+ ```
57
+
58
+ ## Filter Types
59
+
60
+ FilterMenu는 다음과 같은 필터 타입을 지원합니다:
61
+
62
+ ### Checkbox Group
63
+
64
+ 다중 선택이 가능한 체크박스 그룹 필터입니다.
65
+
66
+ ```tsx
67
+ {
68
+ id: 'status',
69
+ type: 'checkbox-group',
70
+ label: 'Status',
71
+ options: [
72
+ { label: 'Active', value: 'active' },
73
+ { label: 'Inactive', value: 'inactive' },
74
+ ],
75
+ }
76
+ ```
77
+
78
+ ### Radio Group
79
+
80
+ 단일 선택이 가능한 라디오 버튼 그룹 필터입니다.
81
+
82
+ ```tsx
83
+ {
84
+ id: 'priority',
85
+ type: 'radio-group',
86
+ label: 'Priority',
87
+ options: [
88
+ { label: 'High', value: 'high' },
89
+ { label: 'Medium', value: 'medium' },
90
+ { label: 'Low', value: 'low' },
91
+ ],
92
+ }
93
+ ```
94
+
95
+ ### Date Range
96
+
97
+ 날짜 범위를 선택할 수 있는 필터입니다.
98
+
99
+ ```tsx
100
+ {
101
+ id: 'dateRange',
102
+ type: 'date-range',
103
+ label: 'Date Range',
104
+ displayFormat: 'MM/DD/YYYY',
105
+ inputReadOnly: true,
106
+ hideClearButton: true,
107
+ }
108
+ ```
109
+
110
+ ### Currency Input
111
+
112
+ 단일 통화 값을 입력할 수 있는 필터입니다.
113
+
114
+ ```tsx
115
+ {
116
+ id: 'amount',
117
+ type: 'currency-input',
118
+ label: 'Amount',
119
+ currency: 'USD',
120
+ useMinorUnit: true,
121
+ }
122
+ ```
123
+
124
+ ### Currency Range
125
+
126
+ 통화 범위를 입력할 수 있는 필터입니다.
127
+
128
+ ```tsx
129
+ {
130
+ id: 'amountRange',
131
+ type: 'currency-range',
132
+ label: 'Amount Range',
133
+ currency: 'USD',
134
+ useMinorUnit: true,
135
+ }
136
+ ```
137
+
138
+ ### Percentage Input
139
+
140
+ 단일 퍼센트 값을 입력할 수 있는 필터입니다.
141
+
142
+ ```tsx
143
+ {
144
+ id: 'percentage',
145
+ type: 'percentage-input',
146
+ label: 'Percentage',
147
+ useMinorUnit: true,
148
+ maxDecimalScale: 2,
149
+ placeholder: 'Enter percentage',
150
+ }
151
+ ```
152
+
153
+ ### Percentage Range
154
+
155
+ 퍼센트 범위를 입력할 수 있는 필터입니다.
156
+
157
+ ```tsx
158
+ {
159
+ id: 'percentageRange',
160
+ type: 'percentage-range',
161
+ label: 'Percentage Range',
162
+ useMinorUnit: true,
163
+ maxDecimalScale: 2,
164
+ }
165
+ ```
166
+
167
+ ### Autocomplete
168
+
169
+ 자동완성을 지원하는 선택 필터입니다.
170
+
171
+ ```tsx
172
+ {
173
+ id: 'category',
174
+ type: 'autocomplete',
175
+ label: 'Category',
176
+ options: ['Category 1', 'Category 2', 'Category 3'],
177
+ placeholder: 'Select a category',
178
+ }
179
+ ```
180
+
181
+ ## Examples
182
+
183
+ ### Controlled Mode
184
+
185
+ ```tsx
186
+ <FilterMenu {...args} defaultValues={values} onChange={newValues => {
187
+ setValues(newValues);
188
+ args.onChange!(newValues);
189
+ }} />
190
+ ```
191
+
192
+ ### Uncontrolled Mode
193
+
194
+ ```tsx
195
+ <FilterMenu />
196
+ ```
197
+
198
+ ## Best Practices
199
+
200
+ 1. **필터 ID 관리**: 각 필터의 `id`는 고유해야 하며, 상태 관리의 키로 사용됩니다.
201
+
202
+ 2. **타입 안전성**: TypeScript를 사용할 때 FilterItem 타입을 활용하여 타입 안전성을 보장하세요.
203
+
204
+ 3. **Reset vs Clear**:
205
+ - `useReset`: 여러 필터가 있을 때 모든 필터를 초기화
206
+ - `useClear`: 단일 필터만 있을 때 해당 필터를 초기화
207
+
208
+ 4. **상태 관리**: 제어 모드(`values` prop 사용) 또는 비제어 모드(`defaultValues` prop 사용) 중 하나를 선택하여 사용하세요.
209
+
210
+ 5. **접근성**: 각 필터에는 적절한 `label`을 제공하여 접근성을 보장하세요.