@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,9 +2,7 @@
2
2
 
3
3
  ## Introduction
4
4
 
5
- ButtonGroup is a layout component that visually and semantically groups related buttons into a single cohesive unit. It automatically handles border merging, spacing, and consistent styling across all child buttons, making it ideal for toolbars, action sets, and segmented controls.
6
-
7
- By applying shared props like `color`, `variant`, `size`, and `orientation` at the group level, you ensure visual consistency without having to repeat props on every individual button. ButtonGroup is built on top of Joy UI's ButtonGroup and inherits all of its capabilities.
5
+ ButtonGroup 컴포넌트는 관련된 버튼들을 그룹화하여 하나의 통합된 인터페이스로 표시합니다. 버튼들을 논리적으로 묶어서 시각적 일관성을 제공하고, 공간을 효율적으로 사용할 있게 해줍니다. 툴바, 액션 버튼 세트, 토글 그룹 등에 주로 사용됩니다.
8
6
 
9
7
  ```tsx
10
8
  <ButtonGroup {...args}>
@@ -30,17 +28,37 @@ import { ButtonGroup, Button } from '@ceed/ads';
30
28
  function MyComponent() {
31
29
  return (
32
30
  <ButtonGroup>
33
- <Button>First</Button>
34
- <Button>Second</Button>
35
- <Button>Third</Button>
31
+ <Button>첫번째</Button>
32
+ <Button>두번째</Button>
33
+ <Button>세번째</Button>
36
34
  </ButtonGroup>
37
35
  );
38
36
  }
39
37
  ```
40
38
 
41
- ## Colors
39
+ ## Examples
40
+
41
+ ### Basic Usage
42
42
 
43
- Apply a unified color theme to all buttons in the group using the `color` prop. Available colors are `primary`, `neutral`, `danger`, `success`, and `warning`.
43
+ 기본적인 ButtonGroup 사용법입니다.
44
+
45
+ ```tsx
46
+ <div style={{
47
+ display: 'flex',
48
+ gap: '2rem',
49
+ flexDirection: 'column'
50
+ }}>
51
+ <ButtonGroup>
52
+ <Button>첫번째</Button>
53
+ <Button>두번째</Button>
54
+ <Button>세번째</Button>
55
+ </ButtonGroup>
56
+ </div>
57
+ ```
58
+
59
+ ### Colors
60
+
61
+ 다양한 색상을 적용할 수 있습니다.
44
62
 
45
63
  ```tsx
46
64
  <div style={{
@@ -80,9 +98,9 @@ Apply a unified color theme to all buttons in the group using the `color` prop.
80
98
  </div>
81
99
  ```
82
100
 
83
- ## Variants
101
+ ### Variants
84
102
 
85
- ButtonGroup supports four visual variants: `solid`, `soft`, `outlined`, and `plain`. The variant prop propagates to all child buttons, ensuring a consistent look.
103
+ 다양한 스타일 변형을 제공합니다.
86
104
 
87
105
  ```tsx
88
106
  <div style={{
@@ -116,9 +134,9 @@ ButtonGroup supports four visual variants: `solid`, `soft`, `outlined`, and `pla
116
134
  </div>
117
135
  ```
118
136
 
119
- ## Sizes
137
+ ### Sizes
120
138
 
121
- Control the size of all buttons in the group with the `size` prop. Available sizes are `sm`, `md` (default), and `lg`.
139
+ 크기를 조절할 있습니다.
122
140
 
123
141
  ```tsx
124
142
  <div style={{
@@ -147,9 +165,9 @@ Control the size of all buttons in the group with the `size` prop. Available siz
147
165
  </div>
148
166
  ```
149
167
 
150
- ## Orientations
168
+ ### Orientations
151
169
 
152
- Buttons can be arranged horizontally (default) or vertically. Use `orientation="vertical"` for stacked layouts such as side panels or narrow containers.
170
+ 수평(horizontal) 또는 수직(vertical) 방향으로 배치할 있습니다.
153
171
 
154
172
  ```tsx
155
173
  <div style={{
@@ -177,9 +195,9 @@ Buttons can be arranged horizontally (default) or vertically. Use `orientation="
177
195
  </div>
178
196
  ```
179
197
 
180
- ## With Icons
198
+ ### With Icons
181
199
 
182
- Combine text labels with icons using the `startDecorator` prop on individual buttons for a richer, more descriptive interface.
200
+ 아이콘과 함께 사용할 있습니다.
183
201
 
184
202
  ```tsx
185
203
  <div style={{
@@ -201,9 +219,49 @@ Combine text labels with icons using the `startDecorator` prop on individual but
201
219
  </div>
202
220
  ```
203
221
 
204
- ## States
222
+ ### Action Groups
223
+
224
+ 실제 사용 사례별 액션 그룹들입니다.
225
+
226
+ ```tsx
227
+ <div style={{
228
+ display: 'flex',
229
+ gap: '2rem',
230
+ flexDirection: 'column'
231
+ }}>
232
+ <div>
233
+ <h4>File Actions</h4>
234
+ <ButtonGroup variant="outlined">
235
+ <Button onClick={() => alert('Save')}>저장</Button>
236
+ <Button onClick={() => alert('Save As')}>다른 이름으로 저장</Button>
237
+ <Button onClick={() => alert('Export')}>내보내기</Button>
238
+ </ButtonGroup>
239
+ </div>
240
+
241
+ <div>
242
+ <h4>Text Formatting</h4>
243
+ <ButtonGroup size="sm" variant="soft">
244
+ <Button>B</Button>
245
+ <Button>I</Button>
246
+ <Button>U</Button>
247
+ <Button>S</Button>
248
+ </ButtonGroup>
249
+ </div>
250
+
251
+ <div>
252
+ <h4>View Options</h4>
253
+ <ButtonGroup color="neutral" variant="outlined">
254
+ <Button>목록</Button>
255
+ <Button>격자</Button>
256
+ <Button>타일</Button>
257
+ </ButtonGroup>
258
+ </div>
259
+ </div>
260
+ ```
261
+
262
+ ### States
205
263
 
206
- ButtonGroup supports disabled states at the group level (affecting all children) or on individual buttons for mixed-state scenarios.
264
+ 다양한 상태를 표현할 있습니다.
207
265
 
208
266
  ```tsx
209
267
  <div style={{
@@ -240,9 +298,9 @@ ButtonGroup supports disabled states at the group level (affecting all children)
240
298
  </div>
241
299
  ```
242
300
 
243
- ## Toggle Group
301
+ ### Toggle Group
244
302
 
245
- By dynamically switching the `variant` prop on individual buttons based on selection state, you can create a segmented toggle control for exclusive selection patterns.
303
+ 선택 상태를 토글할 있는 버튼 그룹입니다.
246
304
 
247
305
  ```tsx
248
306
  <div>
@@ -267,125 +325,58 @@ By dynamically switching the `variant` prop on individual buttons based on selec
267
325
  ### Toolbar Actions
268
326
 
269
327
  ```tsx
270
- import { ButtonGroup, Button } from '@ceed/ads';
271
- import SaveIcon from '@mui/icons-material/Save';
272
- import UndoIcon from '@mui/icons-material/Undo';
273
- import RedoIcon from '@mui/icons-material/Redo';
274
-
275
328
  <ButtonGroup variant="outlined">
276
- <Button startDecorator={<SaveIcon />}>Save</Button>
277
- <Button startDecorator={<UndoIcon />}>Undo</Button>
278
- <Button startDecorator={<RedoIcon />}>Redo</Button>
329
+ <Button startDecorator={<SaveIcon />}>저장</Button>
330
+ <Button startDecorator={<UndoIcon />}>실행 취소</Button>
331
+ <Button startDecorator={<RedoIcon />}>다시 실행</Button>
279
332
  </ButtonGroup>
280
333
  ```
281
334
 
282
- ### View Switcher
335
+ ### Text Formatting
283
336
 
284
337
  ```tsx
285
- const [view, setView] = useState('list');
286
-
287
- <ButtonGroup variant="outlined" color="neutral">
288
- <Button
289
- variant={view === 'list' ? 'solid' : 'outlined'}
290
- onClick={() => setView('list')}
291
- >
292
- List
293
- </Button>
294
- <Button
295
- variant={view === 'grid' ? 'solid' : 'outlined'}
296
- onClick={() => setView('grid')}
297
- >
298
- Grid
299
- </Button>
300
- <Button
301
- variant={view === 'card' ? 'solid' : 'outlined'}
302
- onClick={() => setView('card')}
303
- >
304
- Card
305
- </Button>
338
+ <ButtonGroup size="sm" variant="soft">
339
+ <Button onClick={() => format('bold')}>B</Button>
340
+ <Button onClick={() => format('italic')}>I</Button>
341
+ <Button onClick={() => format('underline')}>U</Button>
306
342
  </ButtonGroup>
307
343
  ```
308
344
 
309
- ### Pagination Controls
345
+ ### View Controls
310
346
 
311
347
  ```tsx
312
- <ButtonGroup variant="outlined" size="sm">
313
- <Button disabled={page === 1} onClick={() => setPage(page - 1)}>
314
- Previous
315
- </Button>
316
- <Button disabled>{page}</Button>
317
- <Button onClick={() => setPage(page + 1)}>
318
- Next
319
- </Button>
348
+ <ButtonGroup color="neutral">
349
+ <Button onClick={() => setView('list')}>목록</Button>
350
+ <Button onClick={() => setView('grid')}>격자</Button>
351
+ <Button onClick={() => setView('card')}>카드</Button>
320
352
  </ButtonGroup>
321
353
  ```
322
354
 
323
- ## Best Practices
324
-
325
- 1. **Group only related actions together.** Each ButtonGroup should represent a logically connected set of operations.
355
+ ### Pagination
326
356
 
327
357
  ```tsx
328
- // ✅ Related file operations grouped together
329
358
  <ButtonGroup variant="outlined">
330
- <Button>Save</Button>
331
- <Button>Save As</Button>
332
- <Button>Export</Button>
333
- </ButtonGroup>
334
-
335
- // ❌ Unrelated actions mixed in one group
336
- <ButtonGroup>
337
- <Button>Save</Button>
338
- <Button>Delete Account</Button>
339
- <Button>Help</Button>
359
+ <Button disabled={page === 1} onClick={() => setPage(page - 1)}>
360
+ 이전
361
+ </Button>
362
+ <Button onClick={() => setPage(page + 1)}>
363
+ 다음
364
+ </Button>
340
365
  </ButtonGroup>
341
366
  ```
342
367
 
343
- 2. **Keep the button count between 2 and 5.** Too many buttons reduce clarity and overwhelm users.
344
-
345
- ```tsx
346
- // ✅ Concise group
347
- <ButtonGroup>
348
- <Button>Bold</Button>
349
- <Button>Italic</Button>
350
- <Button>Underline</Button>
351
- </ButtonGroup>
352
-
353
- // ❌ Too many options in a single group
354
- <ButtonGroup>
355
- <Button>Bold</Button>
356
- <Button>Italic</Button>
357
- <Button>Underline</Button>
358
- <Button>Strikethrough</Button>
359
- <Button>Superscript</Button>
360
- <Button>Subscript</Button>
361
- <Button>Code</Button>
362
- </ButtonGroup>
363
- ```
368
+ ## Best Practices
364
369
 
365
- 3. **Use consistent variant and color across the group.** Avoid overriding individual button styles unless implementing toggle selection.
370
+ 1. **관련성**: 논리적으로 관련된 버튼들만 그룹화하세요.
366
371
 
367
- ```tsx
368
- // ✅ Consistent styling via group props
369
- <ButtonGroup variant="outlined" color="neutral">
370
- <Button>A</Button>
371
- <Button>B</Button>
372
- </ButtonGroup>
372
+ 2. **일관성**: 그룹 내의 모든 버튼은 동일한 variant, size, color를 사용하는 것이 좋습니다.
373
373
 
374
- // Mixed styles with no semantic reason
375
- <ButtonGroup>
376
- <Button variant="solid">A</Button>
377
- <Button variant="outlined">B</Button>
378
- <Button variant="plain">C</Button>
379
- </ButtonGroup>
380
- ```
374
+ 3. **적절한 개수**: 너무 많은 버튼을 그룹에 포함하지 마세요. 일반적으로 2-5개가 적당합니다.
381
375
 
382
- 4. **Clearly indicate the active state in toggle groups.** Use a distinct variant (e.g., `solid` vs `outlined`) so users can immediately see which option is selected.
376
+ 4. **명확한 레이블**: 버튼의 기능을 명확하게 있는 레이블을 사용하세요.
383
377
 
384
- 5. **Consider vertical orientation for narrow layouts.** On mobile or in sidebars, `orientation="vertical"` prevents horizontal overflow and improves usability.
378
+ 5. **접근성**: 키보드 탐색이 가능하도록 하고, 스크린 리더를 위한 적절한 레이블을 제공하세요.
385
379
 
386
- ## Accessibility
380
+ 6. **상태 관리**: 토글 그룹으로 사용할 때는 현재 선택된 상태를 시각적으로 명확히 표시하세요.
387
381
 
388
- - **Keyboard navigation**: All buttons within the group are focusable and navigable using the `Tab` key. Each button is a standard focusable element that responds to `Enter` and `Space`.
389
- - **ARIA grouping**: Wrap the ButtonGroup in a container with `role="group"` and an `aria-label` when the group represents a distinct set of controls (e.g., text formatting toolbar).
390
- - **Disabled state**: When the entire group is disabled, all child buttons receive `aria-disabled="true"` automatically, preventing interaction and communicating the state to assistive technologies.
391
- - **Toggle groups**: When using ButtonGroup as a toggle, consider adding `aria-pressed` to each button to communicate the selection state to screen readers.
382
+ 7. **반응형 디자인**: 작은 화면에서는 vertical orientation을 고려하거나 적절한 줄바꿈을 제공하세요.