@ceed/ads 1.29.0 → 1.30.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 (64) hide show
  1. package/dist/components/CurrencyInput/CurrencyInput.d.ts +1 -1
  2. package/dist/components/CurrencyInput/hooks/use-currency-setting.d.ts +2 -2
  3. package/dist/components/DataTable/hooks.d.ts +2 -1
  4. package/dist/components/DataTable/utils.d.ts +1 -0
  5. package/dist/components/ProfileMenu/ProfileMenu.d.ts +1 -1
  6. package/dist/components/SearchBar/SearchBar.d.ts +21 -0
  7. package/dist/components/SearchBar/index.d.ts +3 -0
  8. package/dist/components/data-display/Badge.md +39 -71
  9. package/dist/components/data-display/DataTable.md +1 -1
  10. package/dist/components/data-display/InfoSign.md +98 -74
  11. package/dist/components/data-display/Typography.md +97 -363
  12. package/dist/components/feedback/Dialog.md +62 -76
  13. package/dist/components/feedback/Modal.md +44 -259
  14. package/dist/components/feedback/llms.txt +0 -2
  15. package/dist/components/index.d.ts +2 -0
  16. package/dist/components/inputs/Autocomplete.md +107 -356
  17. package/dist/components/inputs/ButtonGroup.md +106 -115
  18. package/dist/components/inputs/Calendar.md +459 -98
  19. package/dist/components/inputs/CurrencyInput.md +5 -183
  20. package/dist/components/inputs/DatePicker.md +431 -108
  21. package/dist/components/inputs/DateRangePicker.md +492 -131
  22. package/dist/components/inputs/FilterMenu.md +19 -169
  23. package/dist/components/inputs/FilterableCheckboxGroup.md +23 -123
  24. package/dist/components/inputs/IconButton.md +88 -137
  25. package/dist/components/inputs/Input.md +0 -5
  26. package/dist/components/inputs/MonthPicker.md +422 -95
  27. package/dist/components/inputs/MonthRangePicker.md +466 -89
  28. package/dist/components/inputs/PercentageInput.md +16 -185
  29. package/dist/components/inputs/RadioButton.md +35 -163
  30. package/dist/components/inputs/RadioTileGroup.md +61 -150
  31. package/dist/components/inputs/SearchBar.md +44 -0
  32. package/dist/components/inputs/Select.md +326 -222
  33. package/dist/components/inputs/Switch.md +376 -136
  34. package/dist/components/inputs/Textarea.md +10 -213
  35. package/dist/components/inputs/Uploader/Uploader.md +66 -145
  36. package/dist/components/inputs/llms.txt +1 -3
  37. package/dist/components/navigation/Breadcrumbs.md +322 -80
  38. package/dist/components/navigation/Dropdown.md +221 -92
  39. package/dist/components/navigation/IconMenuButton.md +502 -40
  40. package/dist/components/navigation/InsetDrawer.md +738 -68
  41. package/dist/components/navigation/Link.md +298 -39
  42. package/dist/components/navigation/Menu.md +285 -92
  43. package/dist/components/navigation/MenuButton.md +448 -55
  44. package/dist/components/navigation/Pagination.md +338 -47
  45. package/dist/components/navigation/ProfileMenu.md +268 -45
  46. package/dist/components/navigation/Stepper.md +28 -160
  47. package/dist/components/navigation/Tabs.md +316 -57
  48. package/dist/components/surfaces/Sheet.md +334 -151
  49. package/dist/index.browser.js +15 -13
  50. package/dist/index.browser.js.map +4 -4
  51. package/dist/index.cjs +313 -291
  52. package/dist/index.d.ts +1 -1
  53. package/dist/index.js +450 -372
  54. package/dist/llms.txt +1 -8
  55. package/framer/index.js +1 -1
  56. package/package.json +16 -15
  57. package/dist/chunks/rehype-accent-FZRUD7VI.js +0 -39
  58. package/dist/components/feedback/CircularProgress.md +0 -257
  59. package/dist/components/feedback/Skeleton.md +0 -280
  60. package/dist/components/inputs/FormControl.md +0 -361
  61. package/dist/components/inputs/RadioList.md +0 -241
  62. package/dist/components/inputs/Slider.md +0 -334
  63. package/dist/guides/ThemeProvider.md +0 -116
  64. package/dist/guides/llms.txt +0 -9
@@ -2,12 +2,6 @@
2
2
 
3
3
  ## Introduction
4
4
 
5
- CurrencyInput is a specialized numeric input for entering monetary values. It automatically formats numbers with the appropriate currency symbol, thousand separators, and decimal places based on the selected currency (USD or KRW). It supports features like maximum value validation, minor unit conversion, and controlled/uncontrolled modes.
6
-
7
- > **Tip: Use built-in form props**
8
- >
9
- > This component supports `label` and `helperText` props directly. Use these instead of wrapping with FormControl + FormLabel + FormHelperText for simpler forms.
10
-
11
5
  ```tsx
12
6
  <CurrencyInput
13
7
  name="currency-input"
@@ -31,42 +25,8 @@ CurrencyInput is a specialized numeric input for entering monetary values. It au
31
25
  | useMinorUnit | — | — |
32
26
  | onChange | — | — |
33
27
 
34
- ## Usage
35
-
36
- ```tsx
37
- import { CurrencyInput } from '@ceed/ads';
38
-
39
- function MyComponent() {
40
- const [amount, setAmount] = React.useState(0);
41
-
42
- return (
43
- <CurrencyInput
44
- label="Price"
45
- currency="USD"
46
- value={amount}
47
- onChange={(e) => setAmount(e.target.value)}
48
- />
49
- );
50
- }
51
- ```
52
-
53
- ## Currency Formats
54
-
55
- ### USD (Default)
56
-
57
- US Dollar format with `$` symbol, comma thousand separators, and 2 decimal places.
58
-
59
- ```tsx
60
- <CurrencyInput
61
- name="currency-input"
62
- defaultValue={1000}
63
- />
64
- ```
65
-
66
28
  ### KRW
67
29
 
68
- Korean Won format with `₩` symbol, comma thousand separators, and no decimal places.
69
-
70
30
  ```tsx
71
31
  <CurrencyInput
72
32
  name="currency-input"
@@ -75,13 +35,7 @@ Korean Won format with `₩` symbol, comma thousand separators, and no decimal p
75
35
  />
76
36
  ```
77
37
 
78
- ```tsx
79
- <CurrencyInput currency="KRW" value={50000} />
80
- ```
81
-
82
- ## Sizes
83
-
84
- CurrencyInput supports three sizes: `sm`, `md` (default), and `lg`.
38
+ ### Sizes
85
39
 
86
40
  ```tsx
87
41
  <Stack gap={2}>
@@ -91,9 +45,7 @@ CurrencyInput supports three sizes: `sm`, `md` (default), and `lg`.
91
45
  </Stack>
92
46
  ```
93
47
 
94
- ## Form Features
95
-
96
- ### With Label
48
+ ### WithLabel
97
49
 
98
50
  ```tsx
99
51
  <CurrencyInput
@@ -103,11 +55,7 @@ CurrencyInput supports three sizes: `sm`, `md` (default), and `lg`.
103
55
  />
104
56
  ```
105
57
 
106
- ```tsx
107
- <CurrencyInput label="Total Amount" />
108
- ```
109
-
110
- ### With Helper Text
58
+ ### WithHelperText
111
59
 
112
60
  ```tsx
113
61
  <CurrencyInput
@@ -118,11 +66,7 @@ CurrencyInput supports three sizes: `sm`, `md` (default), and `lg`.
118
66
  />
119
67
  ```
120
68
 
121
- ```tsx
122
- <CurrencyInput label="Price" helperText="Enter the item price in USD." />
123
- ```
124
-
125
- ### Error State
69
+ ### Error
126
70
 
127
71
  ```tsx
128
72
  <CurrencyInput
@@ -134,13 +78,7 @@ CurrencyInput supports three sizes: `sm`, `md` (default), and `lg`.
134
78
  />
135
79
  ```
136
80
 
137
- ```tsx
138
- <CurrencyInput label="Amount" error helperText="Amount is required." />
139
- ```
140
-
141
- ## Price Limit
142
-
143
- Set the `max` prop to enforce a maximum value. When the entered value exceeds the limit, the input automatically displays an error state with a formatted limit message.
81
+ ### PriceLimitError
144
82
 
145
83
  ```tsx
146
84
  <CurrencyInput
@@ -151,119 +89,3 @@ Set the `max` prop to enforce a maximum value. When the entered value exceeds th
151
89
  max={1000000}
152
90
  />
153
91
  ```
154
-
155
- ```tsx
156
- <CurrencyInput
157
- currency="USD"
158
- max={1000000}
159
- value={10000000}
160
- />
161
- ```
162
-
163
- ## Minor Unit Mode
164
-
165
- When `useMinorUnit` is true, the component converts between display values and minor units (e.g., cents for USD). This is useful when your API stores amounts in the smallest currency unit.
166
-
167
- ```tsx
168
- // Display shows "$10.00", but onChange returns 1000 (cents)
169
- <CurrencyInput currency="USD" useMinorUnit value={1000} />
170
-
171
- // Display shows "₩10,000", onChange returns 10000 (no conversion for KRW)
172
- <CurrencyInput currency="KRW" useMinorUnit value={10000} />
173
- ```
174
-
175
- ## Common Use Cases
176
-
177
- ### Product Price Editor
178
-
179
- ```tsx
180
- function ProductPriceEditor() {
181
- const [priceUSD, setPriceUSD] = React.useState(0);
182
- const [priceKRW, setPriceKRW] = React.useState(0);
183
-
184
- return (
185
- <Stack gap={2}>
186
- <CurrencyInput
187
- label="USD Price"
188
- currency="USD"
189
- value={priceUSD}
190
- onChange={(e) => setPriceUSD(e.target.value)}
191
- max={99999.99}
192
- />
193
- <CurrencyInput
194
- label="KRW Price"
195
- currency="KRW"
196
- value={priceKRW}
197
- onChange={(e) => setPriceKRW(e.target.value)}
198
- max={99999999}
199
- />
200
- </Stack>
201
- );
202
- }
203
- ```
204
-
205
- ### Invoice Line Item
206
-
207
- ```tsx
208
- function InvoiceLineItem({ item, onChange }) {
209
- return (
210
- <Stack direction="row" gap={2} alignItems="flex-end">
211
- <Input label="Description" value={item.description} />
212
- <CurrencyInput
213
- label="Unit Price"
214
- currency="USD"
215
- value={item.unitPrice}
216
- onChange={(e) => onChange({ ...item, unitPrice: e.target.value })}
217
- />
218
- <Input label="Qty" type="number" value={item.quantity} sx={{ width: 80 }} />
219
- </Stack>
220
- );
221
- }
222
- ```
223
-
224
- ### Budget Limit Input
225
-
226
- ```tsx
227
- function BudgetSetting() {
228
- const [budget, setBudget] = React.useState(50000);
229
-
230
- return (
231
- <CurrencyInput
232
- label="Monthly Budget"
233
- helperText="Set the maximum monthly spending limit."
234
- currency="USD"
235
- value={budget}
236
- onChange={(e) => setBudget(e.target.value)}
237
- max={1000000}
238
- />
239
- );
240
- }
241
- ```
242
-
243
- ## Best Practices
244
-
245
- 1. **Choose the right currency**: Always set the `currency` prop explicitly. USD uses 2 decimal places while KRW uses none.
246
-
247
- ```tsx
248
- // ✅ Explicit currency
249
- <CurrencyInput currency="USD" />
250
- <CurrencyInput currency="KRW" />
251
-
252
- // ❌ Relying on default — may confuse users expecting KRW
253
- <CurrencyInput />
254
- ```
255
-
256
- 2. **Set max limits**: Use `max` to prevent unreasonable values. The component displays a helpful error message when the limit is exceeded.
257
-
258
- 3. **Use `useMinorUnit` for API integration**: When your backend stores amounts in minor units (cents, etc.), enable `useMinorUnit` to avoid manual conversion.
259
-
260
- 4. **Use built-in label and helperText**: Prefer the component's own `label` and `helperText` props over wrapping with FormControl.
261
-
262
- 5. **Handle negative values carefully**: CurrencyInput supports negative values. If negatives are not valid for your use case, validate in `onChange`.
263
-
264
- ## Accessibility
265
-
266
- - The input has `role="textbox"` with proper labeling via the `label` prop.
267
- - Error states are communicated via `aria-invalid` and associated error messages.
268
- - The currency symbol serves as a visual indicator; ensure labels also mention the currency for screen readers.
269
- - Keyboard input is fully supported — users can type numbers, and formatting is applied automatically.