@nexus-cross/design-system 1.0.0 → 1.0.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 (82) hide show
  1. package/cursor-rules/nexus-project-setup.mdc +150 -150
  2. package/cursor-rules/nexus-ui-api.mdc +659 -316
  3. package/cursor-rules/nexus-ui-components.mdc +162 -96
  4. package/dist/chunks/chunk-55IEEVNR.js +7 -0
  5. package/dist/chunks/{chunk-D6FII7HW.js → chunk-BBLBTOP4.js} +8 -5
  6. package/dist/chunks/{chunk-5JHN4FCY.mjs → chunk-K2TBLM3F.mjs} +1 -4
  7. package/dist/chunks/{chunk-MTX7GD3H.js → chunk-PEIEVKD5.js} +1 -4
  8. package/dist/chunks/{chunk-54RBL7J4.mjs → chunk-UKRU46PH.mjs} +8 -5
  9. package/dist/chunks/chunk-XMG7ZEYY.mjs +5 -0
  10. package/dist/data-list.js +2 -2
  11. package/dist/data-list.mjs +1 -1
  12. package/dist/error-boundary.d.mts +1 -1
  13. package/dist/error-boundary.d.ts +1 -1
  14. package/dist/index.js +5 -5
  15. package/dist/index.mjs +2 -2
  16. package/dist/schemas/_all.json +870 -373
  17. package/dist/schemas/accordion.json +12 -12
  18. package/dist/schemas/avatar.json +9 -9
  19. package/dist/schemas/button.json +27 -9
  20. package/dist/schemas/carousel.json +6 -6
  21. package/dist/schemas/carouselButton.json +3 -3
  22. package/dist/schemas/carouselDots.json +2 -2
  23. package/dist/schemas/carouselSlide.json +3 -3
  24. package/dist/schemas/checkBox.json +28 -10
  25. package/dist/schemas/chip.json +13 -7
  26. package/dist/schemas/clientOnly.json +3 -3
  27. package/dist/schemas/countdown.json +8 -8
  28. package/dist/schemas/counter.json +13 -10
  29. package/dist/schemas/dataList.json +10 -10
  30. package/dist/schemas/divider.json +8 -5
  31. package/dist/schemas/drawer.json +22 -3
  32. package/dist/schemas/drawerClose.json +24 -0
  33. package/dist/schemas/drawerContent.json +7 -7
  34. package/dist/schemas/drawerDescription.json +20 -0
  35. package/dist/schemas/drawerTitle.json +20 -0
  36. package/dist/schemas/drawerTrigger.json +24 -0
  37. package/dist/schemas/ellipsis.json +9 -9
  38. package/dist/schemas/errorBoundary.json +4 -4
  39. package/dist/schemas/infiniteScroll.json +12 -12
  40. package/dist/schemas/marquee.json +10 -7
  41. package/dist/schemas/modalCall.json +81 -3
  42. package/dist/schemas/modalTemplate.json +28 -25
  43. package/dist/schemas/numberInput.json +32 -14
  44. package/dist/schemas/pagination.json +8 -8
  45. package/dist/schemas/popover.json +12 -12
  46. package/dist/schemas/radioGroup.json +17 -10
  47. package/dist/schemas/radioItem.json +12 -5
  48. package/dist/schemas/select.json +11 -11
  49. package/dist/schemas/selectItem.json +5 -5
  50. package/dist/schemas/skeleton.json +10 -7
  51. package/dist/schemas/spinner.json +11 -4
  52. package/dist/schemas/switch.json +18 -7
  53. package/dist/schemas/tab.json +15 -15
  54. package/dist/schemas/table.json +14 -14
  55. package/dist/schemas/tableRow.json +5 -5
  56. package/dist/schemas/tdColumn.json +17 -17
  57. package/dist/schemas/textArea.json +42 -9
  58. package/dist/schemas/textInput.json +55 -15
  59. package/dist/schemas/themeProvider.json +10 -10
  60. package/dist/schemas/toastOptions.json +81 -0
  61. package/dist/schemas/toaster.json +48 -3
  62. package/dist/schemas/tooltip.json +10 -10
  63. package/dist/schemas/virtualGrid.json +19 -16
  64. package/dist/schemas/virtualList.json +12 -9
  65. package/dist/schemas.d.mts +420 -56
  66. package/dist/schemas.d.ts +420 -56
  67. package/dist/schemas.js +502 -367
  68. package/dist/schemas.mjs +498 -368
  69. package/dist/styles/layer.js +2 -2
  70. package/dist/styles/layer.mjs +1 -1
  71. package/dist/styles.css +56 -45
  72. package/dist/styles.js +2 -2
  73. package/dist/styles.layered.css +56 -45
  74. package/dist/styles.mjs +1 -1
  75. package/dist/text-input.d.mts +1 -1
  76. package/dist/text-input.d.ts +1 -1
  77. package/dist/text-input.js +3 -3
  78. package/dist/text-input.mjs +1 -1
  79. package/package.json +8 -6
  80. package/scripts/setup-cursor-rules.cjs +6 -6
  81. package/dist/chunks/chunk-7AISZYWL.js +0 -7
  82. package/dist/chunks/chunk-V5OTJP6H.mjs +0 -5
@@ -15,17 +15,17 @@
15
15
  "properties": {
16
16
  "id": {
17
17
  "type": "string",
18
- "description": "고유 ID"
18
+ "description": "Unique ID"
19
19
  },
20
20
  "trigger": {
21
- "description": "트리거 내용 (ReactNode)"
21
+ "description": "Trigger content (ReactNode)"
22
22
  },
23
23
  "content": {
24
- "description": "펼침 내용 (ReactNode)"
24
+ "description": "Expandable content (ReactNode)"
25
25
  },
26
26
  "disabled": {
27
27
  "type": "boolean",
28
- "description": "비활성"
28
+ "description": "Disabled"
29
29
  },
30
30
  "className": {
31
31
  "type": "string"
@@ -42,7 +42,7 @@
42
42
  ],
43
43
  "additionalProperties": false
44
44
  },
45
- "description": "아코디언 항목 배열 (필수)"
45
+ "description": "Accordion item array (required)"
46
46
  },
47
47
  "type": {
48
48
  "type": "string",
@@ -51,12 +51,12 @@
51
51
  "multiple"
52
52
  ],
53
53
  "default": "single",
54
- "description": "단일/다중 열기"
54
+ "description": "Single/multiple open mode"
55
55
  },
56
56
  "collapsible": {
57
57
  "type": "boolean",
58
58
  "default": true,
59
- "description": "전부 접기 가능"
59
+ "description": "Allow collapsing all"
60
60
  },
61
61
  "value": {
62
62
  "anyOf": [
@@ -70,7 +70,7 @@
70
70
  }
71
71
  }
72
72
  ],
73
- "description": "제어 모드"
73
+ "description": "Controlled mode"
74
74
  },
75
75
  "defaultValue": {
76
76
  "anyOf": [
@@ -84,21 +84,21 @@
84
84
  }
85
85
  }
86
86
  ],
87
- "description": "비제어 초기값"
87
+ "description": "Uncontrolled initial value"
88
88
  },
89
89
  "onValueChange": {
90
- "description": "열린 항목 변경 콜백 (value: string | string[]) => void"
90
+ "description": "Open item change callback (value: string | string[]) => void"
91
91
  },
92
92
  "className": {
93
93
  "type": "string",
94
- "description": "Root 스타일"
94
+ "description": "Root style"
95
95
  }
96
96
  },
97
97
  "required": [
98
98
  "items"
99
99
  ],
100
100
  "additionalProperties": false,
101
- "description": "아코디언. items 배열 방식과 컴포저블 방식 모두 지원."
101
+ "description": "Accordion. Supports both items array and composable patterns."
102
102
  }
103
103
  },
104
104
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -111,14 +111,14 @@
111
111
  "properties": {
112
112
  "src": {
113
113
  "type": "string",
114
- "description": "이미지 URL"
114
+ "description": "Image URL"
115
115
  },
116
116
  "alt": {
117
117
  "type": "string",
118
- "description": "대체 텍스트"
118
+ "description": "Alt text"
119
119
  },
120
120
  "fallback": {
121
- "description": "이미지 로드 실패 표시 (ReactNode)"
121
+ "description": "Displayed on image load failure (ReactNode)"
122
122
  },
123
123
  "size": {
124
124
  "type": "string",
@@ -130,7 +130,7 @@
130
130
  "xl"
131
131
  ],
132
132
  "default": "md",
133
- "description": "크기"
133
+ "description": "Size"
134
134
  },
135
135
  "shape": {
136
136
  "type": "string",
@@ -139,21 +139,21 @@
139
139
  "square"
140
140
  ],
141
141
  "default": "circle",
142
- "description": "형태"
142
+ "description": "Shape"
143
143
  },
144
144
  "children": {
145
- "description": "커스텀 이미지 요소 (예: Next.js Image)"
145
+ "description": "Custom image element (e.g. Next.js Image)"
146
146
  },
147
147
  "onImageError": {
148
- "description": "이미지 로드 실패 콜백 () => void"
148
+ "description": "Image load error callback () => void"
149
149
  },
150
150
  "className": {
151
151
  "type": "string",
152
- "description": "스타일 오버라이드"
152
+ "description": "Style override"
153
153
  }
154
154
  },
155
155
  "additionalProperties": false,
156
- "description": "아바타. 이미지, 폴백 텍스트, children 지원."
156
+ "description": "Avatar. Supports image, fallback text, and children."
157
157
  }
158
158
  },
159
159
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -173,7 +173,7 @@
173
173
  "danger"
174
174
  ],
175
175
  "default": "primary",
176
- "description": "색상 테마 (primary=주요, secondary=보조, normal=중립, danger=위험)"
176
+ "description": "Color theme (primary=main, secondary=sub, normal=neutral, danger=danger)"
177
177
  },
178
178
  "variant": {
179
179
  "type": "string",
@@ -184,7 +184,7 @@
184
184
  "ghost"
185
185
  ],
186
186
  "default": "contained",
187
- "description": "시각 스타일 (contained=채움, outlined=테두리, subtle=연한배경, ghost=투명)"
187
+ "description": "Visual style (contained=filled, outlined=border, subtle=light bg, ghost=transparent)"
188
188
  },
189
189
  "size": {
190
190
  "type": "string",
@@ -195,7 +195,7 @@
195
195
  "sm"
196
196
  ],
197
197
  "default": "md",
198
- "description": "크기"
198
+ "description": "Size"
199
199
  },
200
200
  "radius": {
201
201
  "type": "string",
@@ -204,27 +204,45 @@
204
204
  "circle"
205
205
  ],
206
206
  "default": "default",
207
- "description": "모서리 (default=size radius, circle=pill 형태)"
207
+ "description": "Corner radius (default=size-based radius, circle=pill shape)"
208
208
  },
209
209
  "asChild": {
210
210
  "type": "boolean",
211
- "description": "true 자식 요소로 렌더링 (Slot 패턴)"
211
+ "description": "If true, renders as child element (Slot pattern)"
212
212
  },
213
213
  "detectDoubleClick": {
214
214
  "type": "boolean",
215
- "description": "500ms 더블 클릭 방지"
215
+ "description": "Prevent double click within 500ms"
216
216
  },
217
217
  "disabled": {
218
218
  "type": "boolean",
219
- "description": "비활성 (aria-disabled 자동)"
219
+ "description": "Disabled (auto aria-disabled)"
220
+ },
221
+ "children": {
222
+ "description": "Button content (ReactNode)"
223
+ },
224
+ "onClick": {
225
+ "description": "Click event handler"
226
+ },
227
+ "type": {
228
+ "type": "string",
229
+ "enum": [
230
+ "button",
231
+ "submit",
232
+ "reset"
233
+ ],
234
+ "description": "HTML button type (default: button)"
235
+ },
236
+ "style": {
237
+ "description": "Inline style (CSSProperties)"
220
238
  },
221
239
  "className": {
222
240
  "type": "string",
223
- "description": "스타일 오버라이드"
241
+ "description": "Style override"
224
242
  }
225
243
  },
226
244
  "additionalProperties": false,
227
- "description": "인터랙티브 버튼. semantic(색상)×variant(스타일) 2 시스템. asChild로 렌더링 요소 변경 가능."
245
+ "description": "Interactive button. semantic(color) x variant(style) 2-axis system. Rendering element changeable via asChild."
228
246
  }
229
247
  },
230
248
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -238,25 +256,25 @@
238
256
  "opts": {
239
257
  "type": "object",
240
258
  "additionalProperties": {},
241
- "description": "Embla 옵션 (loop, align )"
259
+ "description": "Embla options (loop, align, etc.)"
242
260
  },
243
261
  "plugins": {
244
262
  "type": "array",
245
- "description": "Embla 플러그인"
263
+ "description": "Embla plugins"
246
264
  },
247
265
  "onApiChange": {
248
- "description": "Embla API 변경 콜백 (api: CarouselApi) => void"
266
+ "description": "Embla API change callback (api: CarouselApi) => void"
249
267
  },
250
268
  "children": {
251
- "description": "캐러셀 슬라이드 서브 컴포넌트 (ReactNode)"
269
+ "description": "Carousel slides and sub-components (ReactNode)"
252
270
  },
253
271
  "className": {
254
272
  "type": "string",
255
- "description": "스타일 오버라이드"
273
+ "description": "Style override"
256
274
  }
257
275
  },
258
276
  "additionalProperties": false,
259
- "description": "캐러셀. Embla Carousel 기반. CarouselSlide, CarouselPrev, CarouselNext, CarouselDots 서브 컴포넌트."
277
+ "description": "Carousel. Based on Embla Carousel. Sub-components: CarouselSlide, CarouselPrev, CarouselNext, CarouselDots."
260
278
  }
261
279
  },
262
280
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -269,14 +287,14 @@
269
287
  "properties": {
270
288
  "className": {
271
289
  "type": "string",
272
- "description": "슬라이드 스타일 (basis-1/3 등으로 복수 노출)"
290
+ "description": "Slide style (use basis-1/3 etc. for multi-slide view)"
273
291
  },
274
292
  "children": {
275
- "description": "슬라이드 내용 (ReactNode, 필수)"
293
+ "description": "Slide content (ReactNode, required)"
276
294
  }
277
295
  },
278
296
  "additionalProperties": false,
279
- "description": "캐러셀 슬라이드. Carousel 내부에서 사용."
297
+ "description": "Carousel slide. Used inside Carousel."
280
298
  }
281
299
  },
282
300
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -289,14 +307,14 @@
289
307
  "properties": {
290
308
  "className": {
291
309
  "type": "string",
292
- "description": "버튼 스타일 오버라이드"
310
+ "description": "Button style override"
293
311
  },
294
312
  "children": {
295
- "description": "커스텀 아이콘 (ReactNode, 기본: chevron)"
313
+ "description": "Custom icon (ReactNode, default: chevron)"
296
314
  }
297
315
  },
298
316
  "additionalProperties": false,
299
- "description": "CarouselPrev / CarouselNext. 이전/다음 내비게이션 버튼."
317
+ "description": "CarouselPrev / CarouselNext. Previous/next navigation buttons."
300
318
  }
301
319
  },
302
320
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -309,11 +327,11 @@
309
327
  "properties": {
310
328
  "className": {
311
329
  "type": "string",
312
- "description": "도트 컨테이너 스타일"
330
+ "description": "Dot container style"
313
331
  }
314
332
  },
315
333
  "additionalProperties": false,
316
- "description": "CarouselDots. 슬라이드 인디케이터 도트."
334
+ "description": "CarouselDots. Slide indicator dots."
317
335
  }
318
336
  },
319
337
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -331,7 +349,7 @@
331
349
  "md"
332
350
  ],
333
351
  "default": "md",
334
- "description": "크기"
352
+ "description": "Size"
335
353
  },
336
354
  "shape": {
337
355
  "type": "string",
@@ -340,37 +358,55 @@
340
358
  "round"
341
359
  ],
342
360
  "default": "square",
343
- "description": "형태"
361
+ "description": "Shape"
344
362
  },
345
363
  "checked": {
346
364
  "type": "boolean",
347
- "description": "체크 상태"
365
+ "description": "Checked state"
348
366
  },
349
367
  "indeterminate": {
350
368
  "type": "boolean",
351
- "description": "불확정 상태 (aria-checked=\"mixed\")"
369
+ "description": "Indeterminate state (aria-checked=\"mixed\")"
352
370
  },
353
371
  "disabled": {
354
372
  "type": "boolean",
355
- "description": "비활성"
373
+ "description": "Disabled"
356
374
  },
357
375
  "readOnly": {
358
376
  "type": "boolean",
359
- "description": "읽기 전용. 네이티브 input readOnly와 동일하게 체크 상태 변경 불가"
377
+ "description": "Read-only"
360
378
  },
361
379
  "label": {
362
- "description": "라벨 텍스트 (ReactNode)"
380
+ "description": "Label text (ReactNode)"
381
+ },
382
+ "children": {
383
+ "description": "Label alternative content (ReactNode)"
384
+ },
385
+ "name": {
386
+ "type": "string",
387
+ "description": "Form field name"
388
+ },
389
+ "id": {
390
+ "type": "string",
391
+ "description": "Element ID"
392
+ },
393
+ "value": {
394
+ "type": "string",
395
+ "description": "Value for form submission"
363
396
  },
364
397
  "onCheckedChange": {
365
- "description": "체크 상태 변경 콜백 (checked: boolean) => void"
398
+ "description": "Checked state change callback (checked: boolean) => void"
399
+ },
400
+ "onChange": {
401
+ "description": "Native change event handler"
366
402
  },
367
403
  "className": {
368
404
  "type": "string",
369
- "description": "스타일 오버라이드"
405
+ "description": "Style override"
370
406
  }
371
407
  },
372
408
  "additionalProperties": false,
373
- "description": "체크박스. 네이티브 input 기반, square/round 형태 지원."
409
+ "description": "Checkbox. Native input-based, supports square/round shapes."
374
410
  }
375
411
  },
376
412
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -390,7 +426,7 @@
390
426
  "accent"
391
427
  ],
392
428
  "default": "default",
393
- "description": "스타일"
429
+ "description": "Style"
394
430
  },
395
431
  "size": {
396
432
  "type": "string",
@@ -400,26 +436,32 @@
400
436
  "lg"
401
437
  ],
402
438
  "default": "md",
403
- "description": "크기"
439
+ "description": "Size"
404
440
  },
405
441
  "asChild": {
406
442
  "type": "boolean",
407
- "description": "true 자식 요소로 렌더링 (Slot 패턴)"
443
+ "description": "If true, renders as child element (Slot pattern)"
408
444
  },
409
445
  "disabled": {
410
446
  "type": "boolean",
411
- "description": "비활성 (aria-disabled 자동)"
447
+ "description": "Disabled (auto aria-disabled)"
448
+ },
449
+ "children": {
450
+ "description": "Chip content (ReactNode)"
412
451
  },
413
452
  "onClose": {
414
- "description": "닫기 버튼 클릭 콜백 () => void"
453
+ "description": "Close button click callback (e: MouseEvent) => void. Shows X button when provided"
454
+ },
455
+ "onClick": {
456
+ "description": "Click event handler"
415
457
  },
416
458
  "className": {
417
459
  "type": "string",
418
- "description": "스타일 오버라이드"
460
+ "description": "Style override"
419
461
  }
420
462
  },
421
463
  "additionalProperties": false,
422
- "description": "칩/태그/뱃지. onClose prop으로 닫기 버튼 표시."
464
+ "description": "Chip/tag/badge. Close button displayed via onClose prop."
423
465
  }
424
466
  },
425
467
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -431,14 +473,14 @@
431
473
  "type": "object",
432
474
  "properties": {
433
475
  "children": {
434
- "description": "클라이언트에서만 렌더링할 요소 (ReactNode, 필수)"
476
+ "description": "Element to render only on client (ReactNode, required)"
435
477
  },
436
478
  "fallback": {
437
- "description": "SSR 표시할 대체 UI (ReactNode, 기본: null)"
479
+ "description": "Fallback UI during SSR (ReactNode, default: null)"
438
480
  }
439
481
  },
440
482
  "additionalProperties": false,
441
- "description": "클라이언트 전용 렌더링. SSR 환경에서 hydration mismatch 방지."
483
+ "description": "Client-only rendering. Prevents hydration mismatch in SSR environments."
442
484
  }
443
485
  },
444
486
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -451,16 +493,16 @@
451
493
  "properties": {
452
494
  "endTimestamp": {
453
495
  "type": "number",
454
- "description": "종료 시각 (Unix ms, 필수)"
496
+ "description": "End time (Unix ms, required)"
455
497
  },
456
498
  "separator": {
457
499
  "default": ":",
458
- "description": "구분자 (ReactNode)"
500
+ "description": "Separator (ReactNode)"
459
501
  },
460
502
  "showDays": {
461
503
  "type": "boolean",
462
504
  "default": true,
463
- "description": " 단위 표시"
505
+ "description": "Show days unit"
464
506
  },
465
507
  "labels": {
466
508
  "type": "object",
@@ -479,24 +521,24 @@
479
521
  }
480
522
  },
481
523
  "additionalProperties": false,
482
- "description": "단위 라벨"
524
+ "description": "Unit labels"
483
525
  },
484
526
  "render": {
485
- "description": "커스텀 렌더 함수"
527
+ "description": "Custom render function"
486
528
  },
487
529
  "onEnd": {
488
- "description": "카운트다운 종료 콜백 () => void"
530
+ "description": "Countdown end callback () => void"
489
531
  },
490
532
  "className": {
491
533
  "type": "string",
492
- "description": "스타일 오버라이드"
534
+ "description": "Style override"
493
535
  }
494
536
  },
495
537
  "required": [
496
538
  "endTimestamp"
497
539
  ],
498
540
  "additionalProperties": false,
499
- "description": "카운트다운 타이머."
541
+ "description": "Countdown timer."
500
542
  }
501
543
  },
502
544
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -509,51 +551,54 @@
509
551
  "properties": {
510
552
  "endValue": {
511
553
  "type": "number",
512
- "description": "목표 (필수)"
554
+ "description": "Target value (required)"
513
555
  },
514
556
  "startValue": {
515
557
  "type": "number",
516
558
  "default": 0,
517
- "description": "시작 "
559
+ "description": "Start value"
518
560
  },
519
561
  "duration": {
520
562
  "type": "number",
521
563
  "default": 1500,
522
- "description": "애니메이션 시간 (ms)"
564
+ "description": "Animation duration (ms)"
523
565
  },
524
566
  "delay": {
525
567
  "type": "number",
526
568
  "default": 0,
527
- "description": "시작 지연 (ms)"
569
+ "description": "Start delay (ms)"
528
570
  },
529
571
  "separator": {
530
572
  "type": "boolean",
531
573
  "default": true,
532
- "description": " 단위 구분"
574
+ "description": "Thousands separator"
533
575
  },
534
576
  "digits": {
535
577
  "type": "number",
536
578
  "default": 0,
537
- "description": "소수 자릿수"
579
+ "description": "Decimal places"
538
580
  },
539
581
  "triggerOnView": {
540
582
  "type": "boolean",
541
583
  "default": false,
542
- "description": "뷰포트 진입 시작"
584
+ "description": "Start on viewport entry"
543
585
  },
544
586
  "onEnd": {
545
- "description": "카운트 완료 콜백 () => void"
587
+ "description": "Count complete callback () => void"
588
+ },
589
+ "style": {
590
+ "description": "Inline style (CSSProperties)"
546
591
  },
547
592
  "className": {
548
593
  "type": "string",
549
- "description": "스타일 오버라이드"
594
+ "description": "Style override"
550
595
  }
551
596
  },
552
597
  "required": [
553
598
  "endValue"
554
599
  ],
555
600
  "additionalProperties": false,
556
- "description": "숫자 카운트 애니메이션."
601
+ "description": "Number count animation."
557
602
  }
558
603
  },
559
604
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -573,43 +618,43 @@
573
618
  "type": "null"
574
619
  }
575
620
  ],
576
- "description": "렌더링할 데이터 배열. null이면 로딩 상태 (필수)"
621
+ "description": "Data array to render. null = loading state (required)"
577
622
  },
578
623
  "noDataMessage": {
579
- "description": " 배열일 표시할 메시지 (string | ReactElement)"
624
+ "description": "Message for empty array (string | ReactElement)"
580
625
  },
581
626
  "errorFallback": {
582
- "description": "에러 발생 표시할 fallback (ReactNode)"
627
+ "description": "Fallback on error (ReactNode)"
583
628
  },
584
629
  "loadingElement": {
585
- "description": "로딩 표시할 커스텀 요소 (기본: Spinner)"
630
+ "description": "Custom loading element (default: Spinner)"
586
631
  },
587
632
  "skeletonElement": {
588
- "description": "로딩 표시할 스켈레톤 요소 (ReactElement)"
633
+ "description": "Skeleton element during loading (ReactElement)"
589
634
  },
590
635
  "skeletonCount": {
591
636
  "type": "number",
592
637
  "default": 3,
593
- "description": "스켈레톤 반복 개수"
638
+ "description": "Skeleton repeat count"
594
639
  },
595
640
  "loading": {
596
641
  "type": "boolean",
597
642
  "default": false,
598
- "description": "강제 로딩 상태"
643
+ "description": "Force loading state"
599
644
  },
600
645
  "children": {
601
- "description": " 아이템 렌더 함수: ({ item, index }) => ReactNode (필수)"
646
+ "description": "Item render function: ({ item, index }) => ReactNode (required)"
602
647
  },
603
648
  "className": {
604
649
  "type": "string",
605
- "description": "루트 요소 스타일"
650
+ "description": "Root element style"
606
651
  }
607
652
  },
608
653
  "required": [
609
654
  "list"
610
655
  ],
611
656
  "additionalProperties": false,
612
- "description": "데이터 리스트. list 상태에 따라 로딩/스켈레톤/빈 상태/데이터를 자동 처리. ErrorBoundary 내장."
657
+ "description": "Data list. Automatically handles loading/skeleton/empty/data states based on list. Built-in ErrorBoundary."
613
658
  }
614
659
  },
615
660
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -627,7 +672,7 @@
627
672
  "vertical"
628
673
  ],
629
674
  "default": "horizontal",
630
- "description": "방향"
675
+ "description": "Direction"
631
676
  },
632
677
  "variant": {
633
678
  "type": "string",
@@ -637,19 +682,22 @@
637
682
  "dotted"
638
683
  ],
639
684
  "default": "solid",
640
- "description": " 스타일"
685
+ "description": "Line style"
641
686
  },
642
687
  "color": {
643
688
  "type": "string",
644
- "description": "커스텀 색상 (CSS )"
689
+ "description": "Custom color (CSS value)"
690
+ },
691
+ "style": {
692
+ "description": "Inline style (CSSProperties)"
645
693
  },
646
694
  "className": {
647
695
  "type": "string",
648
- "description": "스타일 오버라이드"
696
+ "description": "Style override"
649
697
  }
650
698
  },
651
699
  "additionalProperties": false,
652
- "description": "구분선. 수평/수직 방향, 실선/점선/파선 지원."
700
+ "description": "Divider. Supports horizontal/vertical, solid/dashed/dotted."
653
701
  }
654
702
  },
655
703
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -669,14 +717,33 @@
669
717
  "right"
670
718
  ],
671
719
  "default": "bottom",
672
- "description": "방향"
720
+ "description": "Direction"
721
+ },
722
+ "open": {
723
+ "type": "boolean",
724
+ "description": "Open state (controlled mode)"
725
+ },
726
+ "onOpenChange": {
727
+ "description": "Open state change callback (open: boolean) => void"
728
+ },
729
+ "dismissible": {
730
+ "type": "boolean",
731
+ "description": "Allow close via swipe/outside click (default true)"
732
+ },
733
+ "modal": {
734
+ "type": "boolean",
735
+ "description": "Modal mode (default true). If false, background is interactive"
736
+ },
737
+ "shouldScaleBackground": {
738
+ "type": "boolean",
739
+ "description": "Background scale effect (default false)"
673
740
  },
674
741
  "children": {
675
- "description": "Drawer 하위 컴포넌트 (ReactNode)"
742
+ "description": "Drawer sub-components (ReactNode, required)"
676
743
  }
677
744
  },
678
745
  "additionalProperties": false,
679
- "description": "드로어/바텀시트. Vaul 기반. 합성 컴포넌트 패턴."
746
+ "description": "Drawer/bottom sheet. Based on Vaul. Compound component pattern."
680
747
  }
681
748
  },
682
749
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -696,7 +763,7 @@
696
763
  "right"
697
764
  ],
698
765
  "default": "bottom",
699
- "description": "방향 (Context 우선)"
766
+ "description": "Direction (Context takes priority)"
700
767
  },
701
768
  "blur": {
702
769
  "type": "string",
@@ -706,27 +773,115 @@
706
773
  "md"
707
774
  ],
708
775
  "default": "none",
709
- "description": "오버레이 블러"
776
+ "description": "Overlay blur"
710
777
  },
711
778
  "showHandle": {
712
779
  "type": "boolean",
713
780
  "default": true,
714
- "description": "핸들 표시"
781
+ "description": "Show handle bar"
715
782
  },
716
783
  "children": {
717
- "description": "컨텐츠 영역 (ReactNode)"
784
+ "description": "Content area (ReactNode)"
718
785
  },
719
786
  "overlayClassName": {
720
787
  "type": "string",
721
- "description": "오버레이 스타일"
788
+ "description": "Overlay style"
789
+ },
790
+ "className": {
791
+ "type": "string",
792
+ "description": "Panel style"
793
+ }
794
+ },
795
+ "additionalProperties": false,
796
+ "description": "Drawer.Content area."
797
+ }
798
+ },
799
+ "$schema": "http://json-schema.org/draft-07/schema#"
800
+ },
801
+ "drawerTrigger": {
802
+ "$ref": "#/definitions/drawerTriggerPropsSchema",
803
+ "definitions": {
804
+ "drawerTriggerPropsSchema": {
805
+ "type": "object",
806
+ "properties": {
807
+ "asChild": {
808
+ "type": "boolean",
809
+ "description": "Render as child element"
810
+ },
811
+ "children": {
812
+ "description": "Trigger element (ReactNode, required)"
813
+ },
814
+ "className": {
815
+ "type": "string",
816
+ "description": "Style override"
817
+ }
818
+ },
819
+ "additionalProperties": false,
820
+ "description": "Drawer open trigger."
821
+ }
822
+ },
823
+ "$schema": "http://json-schema.org/draft-07/schema#"
824
+ },
825
+ "drawerClose": {
826
+ "$ref": "#/definitions/drawerClosePropsSchema",
827
+ "definitions": {
828
+ "drawerClosePropsSchema": {
829
+ "type": "object",
830
+ "properties": {
831
+ "asChild": {
832
+ "type": "boolean",
833
+ "description": "Render as child element"
834
+ },
835
+ "children": {
836
+ "description": "Close element (ReactNode, required)"
837
+ },
838
+ "className": {
839
+ "type": "string",
840
+ "description": "Style override"
841
+ }
842
+ },
843
+ "additionalProperties": false,
844
+ "description": "Drawer close button."
845
+ }
846
+ },
847
+ "$schema": "http://json-schema.org/draft-07/schema#"
848
+ },
849
+ "drawerTitle": {
850
+ "$ref": "#/definitions/drawerTitlePropsSchema",
851
+ "definitions": {
852
+ "drawerTitlePropsSchema": {
853
+ "type": "object",
854
+ "properties": {
855
+ "children": {
856
+ "description": "Title text (ReactNode, required)"
857
+ },
858
+ "className": {
859
+ "type": "string",
860
+ "description": "Style override"
861
+ }
862
+ },
863
+ "additionalProperties": false,
864
+ "description": "Drawer title (required for accessibility)."
865
+ }
866
+ },
867
+ "$schema": "http://json-schema.org/draft-07/schema#"
868
+ },
869
+ "drawerDescription": {
870
+ "$ref": "#/definitions/drawerDescriptionPropsSchema",
871
+ "definitions": {
872
+ "drawerDescriptionPropsSchema": {
873
+ "type": "object",
874
+ "properties": {
875
+ "children": {
876
+ "description": "Description text (ReactNode, required)"
722
877
  },
723
878
  "className": {
724
879
  "type": "string",
725
- "description": "패널 스타일"
880
+ "description": "Style override"
726
881
  }
727
882
  },
728
883
  "additionalProperties": false,
729
- "description": "Drawer.Content 영역."
884
+ "description": "Drawer description."
730
885
  }
731
886
  },
732
887
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -739,43 +894,43 @@
739
894
  "properties": {
740
895
  "content": {
741
896
  "default": "",
742
- "description": "본문 (ReactNode)"
897
+ "description": "Body text (ReactNode)"
743
898
  },
744
899
  "lineClamp": {
745
900
  "type": "number",
746
901
  "default": 2,
747
- "description": " 제한"
902
+ "description": "Line clamp limit"
748
903
  },
749
904
  "triggerMore": {
750
905
  "default": "more",
751
- "description": "더보기 텍스트 (ReactNode)"
906
+ "description": "Show more text (ReactNode)"
752
907
  },
753
908
  "triggerLess": {
754
909
  "default": "less",
755
- "description": "접기 텍스트 (ReactNode)"
910
+ "description": "Show less text (ReactNode)"
756
911
  },
757
912
  "defaultShortened": {
758
913
  "type": "boolean",
759
914
  "default": true,
760
- "description": "초기 접힘 상태"
915
+ "description": "Initial collapsed state"
761
916
  },
762
917
  "observingEnvs": {
763
918
  "type": "array",
764
919
  "items": {
765
920
  "type": "boolean"
766
921
  },
767
- "description": "외부 조건 변경 리사이즈 재측정"
922
+ "description": "Re-measure on external condition change"
768
923
  },
769
924
  "onShowMoreLessClick": {
770
- "description": "더보기/접기 클릭 콜백 () => void"
925
+ "description": "Show more/less click callback () => void"
771
926
  },
772
927
  "className": {
773
928
  "type": "string",
774
- "description": "스타일 오버라이드"
929
+ "description": "Style override"
775
930
  }
776
931
  },
777
932
  "additionalProperties": false,
778
- "description": "텍스트 말줄임. 더보기/접기 토글 내장."
933
+ "description": "Text ellipsis. Built-in show more/less toggle."
779
934
  }
780
935
  },
781
936
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -787,17 +942,17 @@
787
942
  "type": "object",
788
943
  "properties": {
789
944
  "children": {
790
- "description": "감싸질 자식 요소 (ReactNode, 필수)"
945
+ "description": "Child elements to wrap (ReactNode, required)"
791
946
  },
792
947
  "fallback": {
793
- "description": "에러 발생 대체 UI (ReactNode)"
948
+ "description": "Fallback UI on error (ReactNode)"
794
949
  },
795
950
  "onError": {
796
- "description": "에러 발생 콜백 (error: Error, errorInfo: ErrorInfo) => void"
951
+ "description": "Error callback (error: Error, errorInfo: ErrorInfo) => void"
797
952
  }
798
953
  },
799
954
  "additionalProperties": false,
800
- "description": "에러 경계. 하위 컴포넌트 렌더링 에러를 잡아 fallback UI 표시."
955
+ "description": "Error boundary. Catches child component render errors and displays fallback UI."
801
956
  }
802
957
  },
803
958
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -817,52 +972,52 @@
817
972
  "type": "null"
818
973
  }
819
974
  ],
820
- "description": "현재 데이터 배열 (필수)"
975
+ "description": "Current data array (required)"
821
976
  },
822
977
  "totalCount": {
823
978
  "type": "number",
824
- "description": "전체 개수 (hasMore와 배타적 사용)"
979
+ "description": "Total count (mutually exclusive with hasMore)"
825
980
  },
826
981
  "hasMore": {
827
982
  "type": "boolean",
828
- "description": " 있는지 (totalCount와 배타적 사용)"
983
+ "description": "Has more items (mutually exclusive with totalCount)"
829
984
  },
830
985
  "tag": {
831
986
  "type": "string",
832
987
  "default": "div",
833
- "description": "children 래퍼 태그"
988
+ "description": "Children wrapper tag"
834
989
  },
835
990
  "rootMargin": {
836
991
  "type": "number",
837
992
  "default": 100,
838
- "description": "감지 마진 (px)"
993
+ "description": "Detection margin (px)"
839
994
  },
840
995
  "loading": {
841
996
  "type": "boolean",
842
- "description": "로딩 상태"
997
+ "description": "Loading state"
843
998
  },
844
999
  "loadingElement": {
845
- "description": "커스텀 로딩 요소"
1000
+ "description": "Custom loading element"
846
1001
  },
847
1002
  "handleLoadMore": {
848
- "description": "추가 로딩 콜백 () => void, 필수"
1003
+ "description": "Load more callback () => void, required"
849
1004
  },
850
1005
  "scrollTarget": {
851
- "description": "스크롤 대상 요소 (HTMLElement | Document | MutableRefObject)"
1006
+ "description": "Scroll target element (HTMLElement | Document | MutableRefObject)"
852
1007
  },
853
1008
  "children": {
854
- "description": "리스트 아이템 렌더링 (ReactNode, 필수)"
1009
+ "description": "List item rendering (ReactNode, required)"
855
1010
  },
856
1011
  "className": {
857
1012
  "type": "string",
858
- "description": "스타일 오버라이드"
1013
+ "description": "Style override"
859
1014
  }
860
1015
  },
861
1016
  "required": [
862
1017
  "list"
863
1018
  ],
864
1019
  "additionalProperties": false,
865
- "description": "무한 스크롤. IntersectionObserver 기반."
1020
+ "description": "Infinite scroll. Based on IntersectionObserver."
866
1021
  }
867
1022
  },
868
1023
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -882,33 +1037,36 @@
882
1037
  "down"
883
1038
  ],
884
1039
  "default": "left",
885
- "description": "방향"
1040
+ "description": "Direction"
886
1041
  },
887
1042
  "speed": {
888
1043
  "type": "number",
889
1044
  "default": 40,
890
- "description": "애니메이션 속도 ()"
1045
+ "description": "Animation speed (seconds)"
891
1046
  },
892
1047
  "pauseOnHover": {
893
1048
  "type": "boolean",
894
1049
  "default": false,
895
- "description": "호버 일시정지"
1050
+ "description": "Pause on hover"
896
1051
  },
897
1052
  "gap": {
898
1053
  "type": "number",
899
1054
  "default": 16,
900
- "description": "아이템 간격 (px)"
1055
+ "description": "Item gap (px)"
901
1056
  },
902
1057
  "children": {
903
- "description": "반복 표시할 콘텐츠 (ReactNode, 필수)"
1058
+ "description": "Content to repeat (ReactNode, required)"
1059
+ },
1060
+ "style": {
1061
+ "description": "Inline style (CSSProperties)"
904
1062
  },
905
1063
  "className": {
906
1064
  "type": "string",
907
- "description": "스타일 오버라이드"
1065
+ "description": "Style override"
908
1066
  }
909
1067
  },
910
1068
  "additionalProperties": false,
911
- "description": "마퀴 (흐르는 텍스트/요소)."
1069
+ "description": "Marquee (scrolling text/elements)."
912
1070
  }
913
1071
  },
914
1072
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -920,10 +1078,10 @@
920
1078
  "type": "object",
921
1079
  "properties": {
922
1080
  "title": {
923
- "description": "헤더 제목 (ReactNode)"
1081
+ "description": "Header title (ReactNode)"
924
1082
  },
925
1083
  "desc": {
926
- "description": "헤더 설명 (ReactNode)"
1084
+ "description": "Header description (ReactNode)"
927
1085
  },
928
1086
  "layout": {
929
1087
  "type": "string",
@@ -937,101 +1095,104 @@
937
1095
  "draggable"
938
1096
  ],
939
1097
  "default": "default",
940
- "description": "레이아웃"
1098
+ "description": "Layout"
941
1099
  },
942
1100
  "showDim": {
943
1101
  "type": "boolean",
944
1102
  "default": true,
945
- "description": " 배경 표시"
1103
+ "description": "Show dim overlay"
946
1104
  },
947
1105
  "dimClose": {
948
1106
  "type": "boolean",
949
1107
  "default": true,
950
- "description": " 클릭 닫기"
1108
+ "description": "Close on dim click"
951
1109
  },
952
1110
  "hideHeader": {
953
1111
  "type": "boolean",
954
1112
  "default": false,
955
- "description": "헤더 숨김"
1113
+ "description": "Hide header"
956
1114
  },
957
1115
  "hideFooter": {
958
1116
  "type": "boolean",
959
1117
  "default": true,
960
- "description": "푸터 숨김"
1118
+ "description": "Hide footer"
961
1119
  },
962
1120
  "footer": {
963
- "description": "커스텀 푸터 (ReactElement)"
1121
+ "description": "Custom footer (ReactElement)"
964
1122
  },
965
1123
  "animation": {
966
1124
  "type": "object",
967
1125
  "properties": {
968
1126
  "name": {
969
1127
  "type": "string",
970
- "description": "애니메이션 이름"
1128
+ "description": "Animation name"
971
1129
  },
972
1130
  "mobile": {
973
1131
  "type": "string",
974
- "description": "모바일용 애니메이션 이름"
1132
+ "description": "Mobile animation name"
975
1133
  },
976
1134
  "delay": {
977
1135
  "type": "number",
978
- "description": "지연 (ms)"
1136
+ "description": "Delay (ms)"
979
1137
  },
980
1138
  "duration": {
981
1139
  "type": "number",
982
- "description": "지속 시간 (ms)"
1140
+ "description": "Duration (ms)"
983
1141
  },
984
1142
  "timingFunc": {
985
1143
  "type": "string",
986
- "description": "타이밍 함수"
1144
+ "description": "Timing function"
987
1145
  },
988
1146
  "leaveTimingFunc": {
989
1147
  "type": "string",
990
- "description": "퇴장 타이밍 함수"
1148
+ "description": "Exit timing function"
991
1149
  }
992
1150
  },
993
1151
  "additionalProperties": false,
994
- "description": "모달 애니메이션 (ModalTemplatePropsType)"
1152
+ "description": "Modal animation"
995
1153
  },
996
1154
  "enableDrag": {
997
1155
  "type": "boolean",
998
1156
  "default": true,
999
- "description": "드래그 활성화 (바텀시트·드래그 가능 레이아웃)"
1157
+ "description": "Enable drag (bottom-sheet/draggable layouts)"
1000
1158
  },
1001
1159
  "dragPersistKey": {
1002
1160
  "type": "string",
1003
- "description": "드래그 위치 저장 "
1161
+ "description": "Drag position persistence key"
1162
+ },
1163
+ "close": {
1164
+ "description": "Modal close function (isAnimation?: boolean) => void (auto-injected)"
1004
1165
  },
1005
1166
  "children": {
1006
- "description": "모달 본문 (ReactNode, 필수)"
1167
+ "description": "Modal body (ReactNode, required)"
1007
1168
  },
1008
1169
  "className": {
1009
1170
  "type": "string",
1010
- "description": "루트 래퍼 스타일"
1171
+ "description": "Root wrapper style"
1011
1172
  },
1012
1173
  "innerClassName": {
1013
1174
  "type": "string",
1014
- "description": "모달 본체 스타일"
1175
+ "description": "Modal body style"
1015
1176
  },
1016
1177
  "bodyClassName": {
1017
1178
  "type": "string",
1018
- "description": "바디 영역 스타일"
1179
+ "description": "Body area style"
1019
1180
  },
1020
1181
  "footerClassName": {
1021
1182
  "type": "string",
1022
- "description": "푸터 영역 스타일"
1183
+ "description": "Footer area style"
1023
1184
  },
1024
1185
  "dimClassName": {
1025
1186
  "type": "string",
1026
- "description": " 배경 스타일"
1187
+ "description": "Dim overlay style"
1027
1188
  },
1028
1189
  "headerClassName": {
1029
1190
  "type": "string",
1030
- "description": "헤더 영역 스타일"
1191
+ "description": "Header area style"
1031
1192
  }
1032
1193
  },
1033
1194
  "additionalProperties": false,
1034
- "description": "모달 템플릿. 모든 모달 컴포넌트는 반드시 ModalTemplate으로 감싸야 한다."
1195
+ "description": "Modal template. All modal components must be wrapped with ModalTemplate."
1035
1196
  }
1036
1197
  },
1037
1198
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1043,16 +1204,94 @@
1043
1204
  "type": "object",
1044
1205
  "properties": {
1045
1206
  "component": {
1046
- "description": "모달 컴포넌트 (필수)"
1207
+ "description": "Modal component (required). Automatically receives close/resolve as props"
1047
1208
  },
1048
1209
  "props": {
1049
1210
  "type": "object",
1050
1211
  "additionalProperties": {},
1051
- "description": "컴포넌트에 전달할 props"
1212
+ "description": "Props to pass to component"
1213
+ },
1214
+ "id": {
1215
+ "type": "string",
1216
+ "description": "Modal ID (used for duplicate check)"
1217
+ },
1218
+ "layout": {
1219
+ "type": "string",
1220
+ "enum": [
1221
+ "default",
1222
+ "bottom-sheet",
1223
+ "slide-left",
1224
+ "slide-right",
1225
+ "full-page",
1226
+ "full-page-reverse",
1227
+ "draggable"
1228
+ ],
1229
+ "description": "Layout"
1230
+ },
1231
+ "animation": {
1232
+ "type": "object",
1233
+ "properties": {
1234
+ "name": {
1235
+ "type": "string",
1236
+ "description": "Animation name"
1237
+ },
1238
+ "mobile": {
1239
+ "type": "string",
1240
+ "description": "Mobile animation name"
1241
+ },
1242
+ "delay": {
1243
+ "type": "number",
1244
+ "description": "Delay (ms)"
1245
+ },
1246
+ "duration": {
1247
+ "type": "number",
1248
+ "description": "Duration (ms)"
1249
+ },
1250
+ "timingFunc": {
1251
+ "type": "string",
1252
+ "description": "Timing function"
1253
+ },
1254
+ "leaveTimingFunc": {
1255
+ "type": "string",
1256
+ "description": "Exit timing function"
1257
+ }
1258
+ },
1259
+ "additionalProperties": false,
1260
+ "description": "Modal animation"
1261
+ },
1262
+ "scrollEnable": {
1263
+ "type": "boolean",
1264
+ "description": "Allow background scroll"
1265
+ },
1266
+ "isToggle": {
1267
+ "type": "boolean",
1268
+ "description": "Toggle mode (close on re-call of same modal)"
1269
+ },
1270
+ "isAlone": {
1271
+ "type": "boolean",
1272
+ "description": "Alone mode (close all existing modals before opening)"
1273
+ },
1274
+ "duplicateCheck": {
1275
+ "type": "boolean",
1276
+ "description": "Prevent duplicate opening of same component"
1277
+ },
1278
+ "disableEscapeKeyPress": {
1279
+ "type": "boolean",
1280
+ "description": "Disable close via ESC key"
1281
+ },
1282
+ "componentName": {
1283
+ "type": "string",
1284
+ "description": "Modal identifier name (used for duplicate check, modal search)"
1285
+ },
1286
+ "onOpen": {
1287
+ "description": "Callback when modal opens"
1288
+ },
1289
+ "onClose": {
1290
+ "description": "Callback when modal closes"
1052
1291
  }
1053
1292
  },
1054
1293
  "additionalProperties": false,
1055
- "description": "modal() 함수 호출 형태. component close/resolve 자동으로 props로 받는다."
1294
+ "description": "modal() function call options. component automatically receives close/resolve as props."
1056
1295
  }
1057
1296
  },
1058
1297
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1068,7 +1307,7 @@
1068
1307
  "number",
1069
1308
  "string"
1070
1309
  ],
1071
- "description": "현재 "
1310
+ "description": "Current value"
1072
1311
  },
1073
1312
  "size": {
1074
1313
  "type": "string",
@@ -1079,57 +1318,75 @@
1079
1318
  "xl"
1080
1319
  ],
1081
1320
  "default": "md",
1082
- "description": "크기"
1321
+ "description": "Size"
1083
1322
  },
1084
1323
  "error": {
1085
1324
  "type": "boolean",
1086
- "description": "에러 상태"
1325
+ "description": "Error state"
1087
1326
  },
1088
1327
  "min": {
1089
1328
  "type": "number",
1090
- "description": "최소값"
1329
+ "description": "Minimum value"
1091
1330
  },
1092
1331
  "max": {
1093
1332
  "type": "number",
1094
- "description": "최대값"
1333
+ "description": "Maximum value"
1095
1334
  },
1096
1335
  "step": {
1097
1336
  "type": "number",
1098
1337
  "default": 1,
1099
- "description": "증감 단위"
1338
+ "description": "Step increment"
1100
1339
  },
1101
1340
  "digit": {
1102
1341
  "type": "number",
1103
1342
  "default": 0,
1104
- "description": "소수 자릿수"
1343
+ "description": "Decimal places"
1105
1344
  },
1106
1345
  "hideButtons": {
1107
1346
  "type": "boolean",
1108
1347
  "default": false,
1109
- "description": "기본 스핀 버튼 숨김. numberInputBind 외부 버튼에 이벤트 부착 시 사용"
1348
+ "description": "Hide default spin buttons. Use with numberInputBind for external button event binding"
1110
1349
  },
1111
1350
  "disabled": {
1112
1351
  "type": "boolean",
1113
- "description": "비활성"
1352
+ "description": "Disabled"
1114
1353
  },
1115
1354
  "readOnly": {
1116
1355
  "type": "boolean",
1117
- "description": "읽기 전용. 입력·스핀 버튼으로 값 변경 불가(스핀 버튼은 숨김)"
1356
+ "description": "Read-only (includes hiding spin buttons)"
1118
1357
  },
1119
1358
  "placeholder": {
1120
1359
  "type": "string",
1121
- "description": "플레이스홀더"
1360
+ "description": "Placeholder"
1361
+ },
1362
+ "name": {
1363
+ "type": "string",
1364
+ "description": "Form field name"
1365
+ },
1366
+ "id": {
1367
+ "type": "string",
1368
+ "description": "Element ID"
1369
+ },
1370
+ "autoFocus": {
1371
+ "type": "boolean",
1372
+ "description": "Auto focus"
1122
1373
  },
1123
1374
  "onValueChange": {
1124
- "description": " 변경 콜백 (value: number | undefined) => void"
1375
+ "description": "Value change callback (value: number | undefined) => void"
1376
+ },
1377
+ "onBlur": {
1378
+ "description": "Blur callback"
1379
+ },
1380
+ "onFocus": {
1381
+ "description": "Focus callback"
1125
1382
  },
1126
1383
  "className": {
1127
1384
  "type": "string",
1128
- "description": "스타일 오버라이드"
1385
+ "description": "Style override"
1129
1386
  }
1130
1387
  },
1131
1388
  "additionalProperties": false,
1132
- "description": "숫자 입력. 누르면 가속 증감. ref로 increment/decrement 메서드 노출. numberInputBind(ref, direction) 함수로 외부 버튼에 동일한 가속 이벤트 바인딩 가능."
1389
+ "description": "Number input. Accelerated increment on long press. Exposes increment/decrement methods via ref. numberInputBind(ref, direction) binds same acceleration to external buttons."
1133
1390
  }
1134
1391
  },
1135
1392
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1142,20 +1399,20 @@
1142
1399
  "properties": {
1143
1400
  "currentPage": {
1144
1401
  "type": "number",
1145
- "description": "현재 페이지 (1부터, 필수)"
1402
+ "description": "Current page (1-based, required)"
1146
1403
  },
1147
1404
  "totalPages": {
1148
1405
  "type": "number",
1149
- "description": "전체 페이지 (필수)"
1406
+ "description": "Total page count (required)"
1150
1407
  },
1151
1408
  "siblingCount": {
1152
1409
  "type": "number",
1153
1410
  "default": 1,
1154
- "description": "현재 페이지 양옆 표시 개수"
1411
+ "description": "Number of pages shown on each side of current"
1155
1412
  },
1156
1413
  "showEdges": {
1157
1414
  "type": "boolean",
1158
- "description": "첫/끝 페이지 항상 표시"
1415
+ "description": "Always show first/last page"
1159
1416
  },
1160
1417
  "size": {
1161
1418
  "type": "string",
@@ -1164,14 +1421,14 @@
1164
1421
  "md"
1165
1422
  ],
1166
1423
  "default": "md",
1167
- "description": "크기"
1424
+ "description": "Size"
1168
1425
  },
1169
1426
  "onPageChange": {
1170
- "description": "페이지 변경 콜백 (page: number) => void, 필수"
1427
+ "description": "Page change callback (page: number) => void, required"
1171
1428
  },
1172
1429
  "className": {
1173
1430
  "type": "string",
1174
- "description": "<nav> 스타일"
1431
+ "description": "<nav> style"
1175
1432
  }
1176
1433
  },
1177
1434
  "required": [
@@ -1179,7 +1436,7 @@
1179
1436
  "totalPages"
1180
1437
  ],
1181
1438
  "additionalProperties": false,
1182
- "description": "페이지네이션. 이전/다음 + 번호 버튼."
1439
+ "description": "Pagination. Previous/next + page number buttons."
1183
1440
  }
1184
1441
  },
1185
1442
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1191,7 +1448,7 @@
1191
1448
  "type": "object",
1192
1449
  "properties": {
1193
1450
  "trigger": {
1194
- "description": "트리거 요소 (ReactNode, 필수)"
1451
+ "description": "Trigger element (ReactNode, required)"
1195
1452
  },
1196
1453
  "side": {
1197
1454
  "type": "string",
@@ -1202,7 +1459,7 @@
1202
1459
  "left"
1203
1460
  ],
1204
1461
  "default": "bottom",
1205
- "description": "위치"
1462
+ "description": "Position"
1206
1463
  },
1207
1464
  "align": {
1208
1465
  "type": "string",
@@ -1212,41 +1469,41 @@
1212
1469
  "end"
1213
1470
  ],
1214
1471
  "default": "center",
1215
- "description": "정렬"
1472
+ "description": "Alignment"
1216
1473
  },
1217
1474
  "sideOffset": {
1218
1475
  "type": "number",
1219
1476
  "default": 4,
1220
- "description": "위치 오프셋 (px)"
1477
+ "description": "Position offset (px)"
1221
1478
  },
1222
1479
  "alignOffset": {
1223
1480
  "type": "number",
1224
- "description": "정렬 오프셋 (px)"
1481
+ "description": "Alignment offset (px)"
1225
1482
  },
1226
1483
  "open": {
1227
1484
  "type": "boolean",
1228
- "description": "제어 모드"
1485
+ "description": "Controlled mode"
1229
1486
  },
1230
1487
  "onOpenChange": {
1231
- "description": "열림/닫힘 상태 변경 콜백 (open: boolean) => void"
1488
+ "description": "Open/close state change callback (open: boolean) => void"
1232
1489
  },
1233
1490
  "onClickTrigger": {
1234
- "description": "트리거 요소 클릭 호출되는 콜백. PopoverPrimitive.Trigger onClick에 전달됨."
1491
+ "description": "Callback on trigger element click. Passed to PopoverPrimitive.Trigger onClick."
1235
1492
  },
1236
1493
  "children": {
1237
- "description": "팝오버 본문 (ReactNode)"
1494
+ "description": "Popover body (ReactNode)"
1238
1495
  },
1239
1496
  "className": {
1240
1497
  "type": "string",
1241
- "description": "Content 스타일"
1498
+ "description": "Content style"
1242
1499
  },
1243
1500
  "arrowClassName": {
1244
1501
  "type": "string",
1245
- "description": "Arrow 스타일"
1502
+ "description": "Arrow style"
1246
1503
  }
1247
1504
  },
1248
1505
  "additionalProperties": false,
1249
- "description": "팝오버. Radix Popover 기반."
1506
+ "description": "Popover. Based on Radix Popover."
1250
1507
  }
1251
1508
  },
1252
1509
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1259,15 +1516,15 @@
1259
1516
  "properties": {
1260
1517
  "name": {
1261
1518
  "type": "string",
1262
- "description": "form name (필수)"
1519
+ "description": "Form name (required)"
1263
1520
  },
1264
1521
  "value": {
1265
1522
  "type": "string",
1266
- "description": "선택된 (제어)"
1523
+ "description": "Selected value (controlled)"
1267
1524
  },
1268
1525
  "defaultValue": {
1269
1526
  "type": "string",
1270
- "description": "초기값 (비제어)"
1527
+ "description": "Initial value (uncontrolled)"
1271
1528
  },
1272
1529
  "size": {
1273
1530
  "type": "string",
@@ -1276,7 +1533,7 @@
1276
1533
  "md"
1277
1534
  ],
1278
1535
  "default": "md",
1279
- "description": "크기"
1536
+ "description": "Size"
1280
1537
  },
1281
1538
  "orientation": {
1282
1539
  "type": "string",
@@ -1285,29 +1542,36 @@
1285
1542
  "vertical"
1286
1543
  ],
1287
1544
  "default": "vertical",
1288
- "description": "배치 방향"
1545
+ "description": "Layout direction"
1289
1546
  },
1290
1547
  "disabled": {
1291
1548
  "type": "boolean",
1292
- "description": "비활성"
1549
+ "description": "Disabled"
1550
+ },
1551
+ "children": {
1552
+ "description": "RadioItem list (ReactNode, required)"
1293
1553
  },
1294
1554
  "aria-label": {
1295
1555
  "type": "string",
1296
- "description": "접근성 라벨"
1556
+ "description": "Accessibility label"
1557
+ },
1558
+ "aria-labelledby": {
1559
+ "type": "string",
1560
+ "description": "Accessibility label reference ID"
1297
1561
  },
1298
1562
  "onValueChange": {
1299
- "description": " 변경 콜백 (value: string) => void"
1563
+ "description": "Value change callback (value: string) => void"
1300
1564
  },
1301
1565
  "className": {
1302
1566
  "type": "string",
1303
- "description": "스타일 오버라이드"
1567
+ "description": "Style override"
1304
1568
  }
1305
1569
  },
1306
1570
  "required": [
1307
1571
  "name"
1308
1572
  ],
1309
1573
  "additionalProperties": false,
1310
- "description": "라디오 그룹. RadioItem과 함께 사용."
1574
+ "description": "Radio group. Used with RadioItem."
1311
1575
  }
1312
1576
  },
1313
1577
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1320,7 +1584,7 @@
1320
1584
  "properties": {
1321
1585
  "value": {
1322
1586
  "type": "string",
1323
- "description": "항목 (필수)"
1587
+ "description": "Item value (required)"
1324
1588
  },
1325
1589
  "size": {
1326
1590
  "type": "string",
@@ -1328,21 +1592,28 @@
1328
1592
  "sm",
1329
1593
  "md"
1330
1594
  ],
1331
- "description": "크기 (그룹보다 우선)"
1595
+ "description": "Size (overrides group)"
1332
1596
  },
1333
1597
  "label": {
1334
- "description": "라벨 텍스트 (ReactNode)"
1598
+ "description": "Label text (ReactNode)"
1599
+ },
1600
+ "children": {
1601
+ "description": "Label alternative content (ReactNode)"
1335
1602
  },
1336
1603
  "disabled": {
1337
1604
  "type": "boolean",
1338
- "description": "비활성"
1605
+ "description": "Disabled"
1606
+ },
1607
+ "className": {
1608
+ "type": "string",
1609
+ "description": "Style override"
1339
1610
  }
1340
1611
  },
1341
1612
  "required": [
1342
1613
  "value"
1343
1614
  ],
1344
1615
  "additionalProperties": false,
1345
- "description": "RadioGroup 개별 옵션."
1616
+ "description": "Individual option within RadioGroup."
1346
1617
  }
1347
1618
  },
1348
1619
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1355,11 +1626,11 @@
1355
1626
  "properties": {
1356
1627
  "value": {
1357
1628
  "type": "string",
1358
- "description": "선택된 "
1629
+ "description": "Selected value"
1359
1630
  },
1360
1631
  "placeholder": {
1361
1632
  "type": "string",
1362
- "description": "플레이스홀더"
1633
+ "description": "Placeholder"
1363
1634
  },
1364
1635
  "variant": {
1365
1636
  "type": "string",
@@ -1368,7 +1639,7 @@
1368
1639
  "outline"
1369
1640
  ],
1370
1641
  "default": "default",
1371
- "description": "트리거 스타일"
1642
+ "description": "Trigger style"
1372
1643
  },
1373
1644
  "size": {
1374
1645
  "type": "string",
@@ -1379,32 +1650,32 @@
1379
1650
  "full"
1380
1651
  ],
1381
1652
  "default": "full",
1382
- "description": "너비"
1653
+ "description": "Width"
1383
1654
  },
1384
1655
  "disabled": {
1385
1656
  "type": "boolean",
1386
- "description": "비활성"
1657
+ "description": "Disabled"
1387
1658
  },
1388
1659
  "onValueChange": {
1389
- "description": " 변경 콜백 (value: string) => void"
1660
+ "description": "Value change callback (value: string) => void"
1390
1661
  },
1391
1662
  "displayComponent": {
1392
- "description": "트리거에 커스텀 표시 (ReactNode)"
1663
+ "description": "Custom display in trigger (ReactNode)"
1393
1664
  },
1394
1665
  "children": {
1395
- "description": "SelectItem 목록 (ReactNode, 필수)"
1666
+ "description": "SelectItem list (ReactNode, required)"
1396
1667
  },
1397
1668
  "className": {
1398
1669
  "type": "string",
1399
- "description": "래퍼 스타일"
1670
+ "description": "Wrapper style"
1400
1671
  },
1401
1672
  "triggerClassName": {
1402
1673
  "type": "string",
1403
- "description": "트리거 스타일 오버라이드"
1674
+ "description": "Trigger style override"
1404
1675
  }
1405
1676
  },
1406
1677
  "additionalProperties": false,
1407
- "description": "드롭다운 선택. Radix Select 기반. SelectItem과 함께 사용."
1678
+ "description": "Dropdown select. Based on Radix Select. Used with SelectItem."
1408
1679
  }
1409
1680
  },
1410
1681
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1417,25 +1688,25 @@
1417
1688
  "properties": {
1418
1689
  "value": {
1419
1690
  "type": "string",
1420
- "description": "항목 "
1691
+ "description": "Item value"
1421
1692
  },
1422
1693
  "children": {
1423
- "description": "항목 내용 (ReactNode, 필수)"
1694
+ "description": "Item content (ReactNode, required)"
1424
1695
  },
1425
1696
  "disabled": {
1426
1697
  "type": "boolean",
1427
- "description": "비활성"
1698
+ "description": "Disabled"
1428
1699
  },
1429
1700
  "className": {
1430
1701
  "type": "string",
1431
- "description": "스타일 오버라이드"
1702
+ "description": "Style override"
1432
1703
  }
1433
1704
  },
1434
1705
  "required": [
1435
1706
  "value"
1436
1707
  ],
1437
1708
  "additionalProperties": false,
1438
- "description": "Select 개별 옵션."
1709
+ "description": "Individual option within Select."
1439
1710
  }
1440
1711
  },
1441
1712
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1453,37 +1724,40 @@
1453
1724
  "span"
1454
1725
  ],
1455
1726
  "default": "div",
1456
- "description": "렌더링 태그"
1727
+ "description": "Rendered tag"
1457
1728
  },
1458
1729
  "circle": {
1459
1730
  "type": "boolean",
1460
1731
  "default": false,
1461
- "description": "원형 스켈레톤 (rounded-full)"
1732
+ "description": "Circle skeleton (rounded-full)"
1462
1733
  },
1463
1734
  "width": {
1464
1735
  "type": [
1465
1736
  "string",
1466
1737
  "number"
1467
1738
  ],
1468
- "description": "너비 (예: '100px', '50%', 200)"
1739
+ "description": "Width (e.g. '100px', '50%', 200)"
1469
1740
  },
1470
1741
  "height": {
1471
1742
  "type": [
1472
1743
  "string",
1473
1744
  "number"
1474
1745
  ],
1475
- "description": "높이 (예: '16px', 40)"
1746
+ "description": "Height (e.g. '16px', 40)"
1476
1747
  },
1477
1748
  "children": {
1478
- "description": "내부 콘텐츠 (로딩 완료 표시, 실제 크기 유지용)"
1749
+ "description": "Inner content (shown when loaded, maintains actual size)"
1750
+ },
1751
+ "style": {
1752
+ "description": "Inline style (CSSProperties)"
1479
1753
  },
1480
1754
  "className": {
1481
1755
  "type": "string",
1482
- "description": "스타일 오버라이드"
1756
+ "description": "Style override"
1483
1757
  }
1484
1758
  },
1485
1759
  "additionalProperties": false,
1486
- "description": "스켈레톤 로딩 플레이스홀더. className으로 크기/모양 조절. children 있으면 투명하게 감싸서 실제 크기 유지."
1760
+ "description": "Skeleton loading placeholder. Size/shape via className. With children, wraps transparently to maintain actual size."
1487
1761
  }
1488
1762
  },
1489
1763
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1497,20 +1771,27 @@
1497
1771
  "size": {
1498
1772
  "type": "number",
1499
1773
  "default": 20,
1500
- "description": "px 크기"
1774
+ "description": "Size in px"
1775
+ },
1776
+ "color": {
1777
+ "type": "string",
1778
+ "description": "Color (CSS color value, default currentColor)"
1501
1779
  },
1502
1780
  "aria-label": {
1503
1781
  "type": "string",
1504
1782
  "default": "Loading",
1505
- "description": "접근성 라벨"
1783
+ "description": "Accessibility label"
1784
+ },
1785
+ "style": {
1786
+ "description": "Inline style (CSSProperties)"
1506
1787
  },
1507
1788
  "className": {
1508
1789
  "type": "string",
1509
- "description": "색상 오버라이드"
1790
+ "description": "Color override etc."
1510
1791
  }
1511
1792
  },
1512
1793
  "additionalProperties": false,
1513
- "description": "로딩 인디케이터. SVG 기반. role=\"status\" 내장."
1794
+ "description": "Loading indicator. SVG-based. Built-in role=\"status\"."
1514
1795
  }
1515
1796
  },
1516
1797
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1528,30 +1809,41 @@
1528
1809
  "md"
1529
1810
  ],
1530
1811
  "default": "md",
1531
- "description": "크기"
1812
+ "description": "Size"
1532
1813
  },
1533
1814
  "checked": {
1534
1815
  "type": "boolean",
1535
- "description": "on/off 상태"
1816
+ "description": "On/off state"
1536
1817
  },
1537
1818
  "disabled": {
1538
1819
  "type": "boolean",
1539
- "description": "비활성"
1820
+ "description": "Disabled"
1540
1821
  },
1541
1822
  "readOnly": {
1542
1823
  "type": "boolean",
1543
- "description": "읽기 전용. 네이티브 input readOnly와 동일하게 on/off 상태 변경 불가"
1824
+ "description": "Read-only"
1825
+ },
1826
+ "name": {
1827
+ "type": "string",
1828
+ "description": "Form field name"
1829
+ },
1830
+ "id": {
1831
+ "type": "string",
1832
+ "description": "Element ID"
1544
1833
  },
1545
1834
  "onCheckedChange": {
1546
- "description": "토글 상태 변경 콜백 (checked: boolean) => void"
1835
+ "description": "Toggle state change callback (checked: boolean) => void"
1836
+ },
1837
+ "onChange": {
1838
+ "description": "Native change event handler (ChangeEvent)"
1547
1839
  },
1548
1840
  "className": {
1549
1841
  "type": "string",
1550
- "description": "스타일 오버라이드"
1842
+ "description": "Style override"
1551
1843
  }
1552
1844
  },
1553
1845
  "additionalProperties": false,
1554
- "description": "토글 스위치. 네이티브 checkbox 기반, role=\"switch\"."
1846
+ "description": "Toggle switch. Native checkbox-based, role=\"switch\"."
1555
1847
  }
1556
1848
  },
1557
1849
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1569,17 +1861,17 @@
1569
1861
  "properties": {
1570
1862
  "key": {
1571
1863
  "type": "string",
1572
- "description": " 고유 "
1864
+ "description": "Tab unique key"
1573
1865
  },
1574
1866
  "label": {
1575
- "description": " 라벨 (ReactNode)"
1867
+ "description": "Tab label (ReactNode)"
1576
1868
  },
1577
1869
  "children": {
1578
- "description": " 패널 내용 (ReactNode)"
1870
+ "description": "Tab panel content (ReactNode)"
1579
1871
  },
1580
1872
  "disabled": {
1581
1873
  "type": "boolean",
1582
- "description": "비활성"
1874
+ "description": "Disabled"
1583
1875
  }
1584
1876
  },
1585
1877
  "required": [
@@ -1587,15 +1879,15 @@
1587
1879
  ],
1588
1880
  "additionalProperties": false
1589
1881
  },
1590
- "description": " 항목 배열 (필수)"
1882
+ "description": "Tab item array (required)"
1591
1883
  },
1592
1884
  "activeKey": {
1593
1885
  "type": "string",
1594
- "description": "제어 모드 활성 "
1886
+ "description": "Controlled mode active key"
1595
1887
  },
1596
1888
  "defaultActiveKey": {
1597
1889
  "type": "string",
1598
- "description": "비제어 초기 "
1890
+ "description": "Uncontrolled initial key"
1599
1891
  },
1600
1892
  "variant": {
1601
1893
  "type": "string",
@@ -1604,7 +1896,7 @@
1604
1896
  "pill"
1605
1897
  ],
1606
1898
  "default": "line",
1607
- "description": "스타일"
1899
+ "description": "Style"
1608
1900
  },
1609
1901
  "size": {
1610
1902
  "type": "string",
@@ -1613,34 +1905,34 @@
1613
1905
  "md"
1614
1906
  ],
1615
1907
  "default": "md",
1616
- "description": "크기"
1908
+ "description": "Size"
1617
1909
  },
1618
1910
  "destroyInactive": {
1619
1911
  "type": "boolean",
1620
1912
  "default": false,
1621
- "description": "비활성 패널 언마운트"
1913
+ "description": "Unmount inactive panels"
1622
1914
  },
1623
1915
  "onTabChange": {
1624
- "description": " 변경 콜백 (key: string) => void"
1916
+ "description": "Tab change callback (key: string) => void"
1625
1917
  },
1626
1918
  "className": {
1627
1919
  "type": "string",
1628
- "description": "루트 스타일"
1920
+ "description": "Root style"
1629
1921
  },
1630
1922
  "tabListClassName": {
1631
1923
  "type": "string",
1632
- "description": " 리스트 스타일"
1924
+ "description": "Tab list style"
1633
1925
  },
1634
1926
  "tabPanelClassName": {
1635
1927
  "type": "string",
1636
- "description": " 패널 스타일"
1928
+ "description": "Tab panel style"
1637
1929
  }
1638
1930
  },
1639
1931
  "required": [
1640
1932
  "items"
1641
1933
  ],
1642
1934
  "additionalProperties": false,
1643
- "description": " 네비게이션. line/pill 변형."
1935
+ "description": "Tab navigation. line/pill variants."
1644
1936
  }
1645
1937
  },
1646
1938
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1660,18 +1952,18 @@
1660
1952
  "type": "null"
1661
1953
  }
1662
1954
  ],
1663
- "description": "데이터 배열. null/undefined이면 로딩 상태 (필수)"
1955
+ "description": "Data array. null/undefined = loading state (required)"
1664
1956
  },
1665
1957
  "children": {
1666
- "description": " 렌더 함수 ({ item, index }) => ReactNode (필수)"
1958
+ "description": "Row render function ({ item, index }) => ReactNode (required)"
1667
1959
  },
1668
1960
  "hideThead": {
1669
1961
  "type": "boolean",
1670
- "description": "테이블 헤더 숨김"
1962
+ "description": "Hide table header"
1671
1963
  },
1672
1964
  "loading": {
1673
1965
  "type": "boolean",
1674
- "description": "로딩 상태 강제"
1966
+ "description": "Force loading state"
1675
1967
  },
1676
1968
  "loadingType": {
1677
1969
  "type": "string",
@@ -1680,42 +1972,42 @@
1680
1972
  "skeleton"
1681
1973
  ],
1682
1974
  "default": "skeleton",
1683
- "description": "로딩 표시 방식"
1975
+ "description": "Loading display type"
1684
1976
  },
1685
1977
  "loadingElement": {
1686
- "description": "커스텀 로딩 요소 (ReactElement)"
1978
+ "description": "Custom loading element (ReactElement)"
1687
1979
  },
1688
1980
  "skeletonCount": {
1689
1981
  "type": "number",
1690
1982
  "default": 10,
1691
- "description": "스켈레톤 "
1983
+ "description": "Skeleton row count"
1692
1984
  },
1693
1985
  "noDataMsg": {
1694
- "description": "데이터 없을 메시지 (ReactElement | string)"
1986
+ "description": "No data message (ReactElement | string)"
1695
1987
  },
1696
1988
  "notification": {
1697
- "description": "테이블 상단 알림 영역 (ReactNode)"
1989
+ "description": "Table top notification area (ReactNode)"
1698
1990
  },
1699
1991
  "sortUpElement": {
1700
- "description": "오름차순 정렬 아이콘 (ReactElement)"
1992
+ "description": "Ascending sort icon (ReactElement)"
1701
1993
  },
1702
1994
  "sortDownElement": {
1703
- "description": "내림차순 정렬 아이콘 (ReactElement)"
1995
+ "description": "Descending sort icon (ReactElement)"
1704
1996
  },
1705
1997
  "className": {
1706
1998
  "type": "string",
1707
- "description": "테이블 래퍼 스타일"
1999
+ "description": "Table wrapper style"
1708
2000
  },
1709
2001
  "theadClassName": {
1710
2002
  "type": "string",
1711
- "description": "헤더 스타일"
2003
+ "description": "Header row style"
1712
2004
  }
1713
2005
  },
1714
2006
  "required": [
1715
2007
  "list"
1716
2008
  ],
1717
2009
  "additionalProperties": false,
1718
- "description": "테이블. TdColumn으로 컬럼 정의, TableRow 래핑. 정렬/스켈레톤 로딩 내장."
2010
+ "description": "Table. Column definitions via TdColumn, row wrapping via TableRow. Built-in sorting/skeleton loading."
1719
2011
  }
1720
2012
  },
1721
2013
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1733,21 +2025,21 @@
1733
2025
  "accent"
1734
2026
  ],
1735
2027
  "default": "default",
1736
- "description": " 스타일"
2028
+ "description": "Row style"
1737
2029
  },
1738
2030
  "className": {
1739
2031
  "type": "string",
1740
- "description": "스타일 오버라이드"
2032
+ "description": "Style override"
1741
2033
  },
1742
2034
  "children": {
1743
- "description": "TdColumn 목록 (ReactNode, 필수)"
2035
+ "description": "TdColumn list (ReactNode, required)"
1744
2036
  },
1745
2037
  "onClick": {
1746
- "description": " 클릭 콜백 (e: MouseEvent) => void"
2038
+ "description": "Row click callback (e: MouseEvent) => void"
1747
2039
  }
1748
2040
  },
1749
2041
  "additionalProperties": false,
1750
- "description": "테이블 행. Table 내부에서 사용."
2042
+ "description": "Table row. Used inside Table."
1751
2043
  }
1752
2044
  },
1753
2045
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1759,21 +2051,21 @@
1759
2051
  "type": "object",
1760
2052
  "properties": {
1761
2053
  "label": {
1762
- "description": "헤더 라벨 (ReactElement | string)"
2054
+ "description": "Header label (ReactElement | string)"
1763
2055
  },
1764
2056
  "fieldId": {
1765
2057
  "type": [
1766
2058
  "string",
1767
2059
  "null"
1768
2060
  ],
1769
- "description": "컬럼 식별자 (정렬 키, 필수)"
2061
+ "description": "Column identifier (sort key, required)"
1770
2062
  },
1771
2063
  "size": {
1772
2064
  "type": [
1773
2065
  "number",
1774
2066
  "string"
1775
2067
  ],
1776
- "description": "컬럼 너비 (number → px, string → CSS)"
2068
+ "description": "Column width (number → px, string → CSS value)"
1777
2069
  },
1778
2070
  "align": {
1779
2071
  "type": "string",
@@ -1783,7 +2075,7 @@
1783
2075
  "right"
1784
2076
  ],
1785
2077
  "default": "left",
1786
- "description": "텍스트 정렬"
2078
+ "description": "Text alignment"
1787
2079
  },
1788
2080
  "textOverflow": {
1789
2081
  "type": "string",
@@ -1794,34 +2086,34 @@
1794
2086
  "break-all"
1795
2087
  ],
1796
2088
  "default": "truncate",
1797
- "description": "텍스트 넘침 처리"
2089
+ "description": "Text overflow handling"
1798
2090
  },
1799
2091
  "highlightKey": {
1800
2092
  "type": [
1801
2093
  "string",
1802
2094
  "null"
1803
2095
  ],
1804
- "description": "호버 하이라이트 그룹 "
2096
+ "description": "Hover highlight group key"
1805
2097
  },
1806
2098
  "colSpan": {
1807
2099
  "type": "number",
1808
- "description": " 병합"
2100
+ "description": "Column span"
1809
2101
  },
1810
2102
  "rowSpan": {
1811
2103
  "type": "number",
1812
- "description": " 병합"
2104
+ "description": "Row span"
1813
2105
  },
1814
2106
  "thColSpan": {
1815
2107
  "type": "number",
1816
- "description": "헤더 colSpan (<th>)"
2108
+ "description": "Header colSpan (<th>)"
1817
2109
  },
1818
2110
  "thRowSpan": {
1819
2111
  "type": "number",
1820
- "description": "헤더 rowSpan (<th>)"
2112
+ "description": "Header rowSpan (<th>)"
1821
2113
  },
1822
2114
  "enableSorting": {
1823
2115
  "type": "boolean",
1824
- "description": "정렬 활성화"
2116
+ "description": "Enable sorting"
1825
2117
  },
1826
2118
  "order": {
1827
2119
  "type": "string",
@@ -1830,31 +2122,31 @@
1830
2122
  "asc",
1831
2123
  ""
1832
2124
  ],
1833
- "description": "현재 정렬 방향"
2125
+ "description": "Current sort direction"
1834
2126
  },
1835
2127
  "sortValue": {
1836
2128
  "type": [
1837
2129
  "string",
1838
2130
  "number"
1839
2131
  ],
1840
- "description": "정렬 기준 "
2132
+ "description": "Sort criterion value"
1841
2133
  },
1842
2134
  "handleClickSort": {
1843
- "description": "정렬 클릭 콜백 ({ index, fieldId, order }) => void"
2135
+ "description": "Sort click callback ({ index, fieldId, order }) => void"
1844
2136
  },
1845
2137
  "children": {
1846
- "description": " 내용 (ReactNode, 필수)"
2138
+ "description": "Cell content (ReactNode, required)"
1847
2139
  },
1848
2140
  "className": {
1849
2141
  "type": "string",
1850
- "description": "스타일 오버라이드"
2142
+ "description": "Style override"
1851
2143
  }
1852
2144
  },
1853
2145
  "required": [
1854
2146
  "fieldId"
1855
2147
  ],
1856
2148
  "additionalProperties": false,
1857
- "description": "테이블 셀/컬럼 정의. TableRow 내부에서 사용."
2149
+ "description": "Table cell/column definition. Used inside TableRow."
1858
2150
  }
1859
2151
  },
1860
2152
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1867,38 +2159,71 @@
1867
2159
  "properties": {
1868
2160
  "error": {
1869
2161
  "type": "boolean",
1870
- "description": "에러 상태 (aria-invalid 자동)"
2162
+ "description": "Error state (auto aria-invalid)"
1871
2163
  },
1872
2164
  "showCount": {
1873
2165
  "type": "boolean",
1874
- "description": "글자 표시 (maxLength 필요)"
2166
+ "description": "Show character count (requires maxLength)"
1875
2167
  },
1876
2168
  "maxLength": {
1877
2169
  "type": "number",
1878
- "description": "최대 글자 "
2170
+ "description": "Maximum character count"
1879
2171
  },
1880
2172
  "placeholder": {
1881
2173
  "type": "string",
1882
- "description": "플레이스홀더"
2174
+ "description": "Placeholder"
1883
2175
  },
1884
2176
  "rows": {
1885
2177
  "type": "number",
1886
- "description": "표시 "
2178
+ "description": "Visible row count"
1887
2179
  },
1888
2180
  "disabled": {
1889
2181
  "type": "boolean",
1890
- "description": "비활성"
2182
+ "description": "Disabled"
2183
+ },
2184
+ "readOnly": {
2185
+ "type": "boolean",
2186
+ "description": "Read-only"
2187
+ },
2188
+ "value": {
2189
+ "type": "string",
2190
+ "description": "Input value (controlled mode)"
2191
+ },
2192
+ "defaultValue": {
2193
+ "type": "string",
2194
+ "description": "Initial value (uncontrolled mode)"
2195
+ },
2196
+ "name": {
2197
+ "type": "string",
2198
+ "description": "Form field name"
2199
+ },
2200
+ "id": {
2201
+ "type": "string",
2202
+ "description": "Element ID"
2203
+ },
2204
+ "autoFocus": {
2205
+ "type": "boolean",
2206
+ "description": "Auto focus"
1891
2207
  },
1892
2208
  "onValueChange": {
1893
- "description": " 변경 콜백 (value: string) => void"
2209
+ "description": "Value change callback (value: string) => void"
2210
+ },
2211
+ "onChange": {
2212
+ "description": "Native change event handler"
2213
+ },
2214
+ "onBlur": {
2215
+ "description": "Blur callback"
2216
+ },
2217
+ "onFocus": {
2218
+ "description": "Focus callback"
1894
2219
  },
1895
2220
  "className": {
1896
2221
  "type": "string",
1897
- "description": "스타일 오버라이드"
2222
+ "description": "Style override"
1898
2223
  }
1899
2224
  },
1900
2225
  "additionalProperties": false,
1901
- "description": "여러 텍스트 입력. 글자 수 카운터 내장."
2226
+ "description": "Multi-line text input. Built-in character counter."
1902
2227
  }
1903
2228
  },
1904
2229
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1912,60 +2237,100 @@
1912
2237
  "size": {
1913
2238
  "type": "string",
1914
2239
  "enum": [
1915
- "sm",
1916
2240
  "md",
1917
2241
  "lg",
1918
2242
  "xl"
1919
2243
  ],
1920
2244
  "default": "md",
1921
- "description": "크기"
2245
+ "description": "Size"
1922
2246
  },
1923
2247
  "error": {
1924
2248
  "type": "boolean",
1925
- "description": "에러 상태 (aria-invalid 자동)"
2249
+ "description": "Error state (auto aria-invalid)"
1926
2250
  },
1927
2251
  "prefixIcon": {
1928
- "description": "앞쪽 아이콘 (ReactNode)"
2252
+ "description": "Prefix icon (ReactNode)"
1929
2253
  },
1930
2254
  "suffixIcon": {
1931
- "description": "뒤쪽 아이콘 (ReactNode)"
2255
+ "description": "Suffix icon (ReactNode)"
1932
2256
  },
1933
2257
  "label": {
1934
- "description": "입력 필드 라벨 (ReactNode)"
2258
+ "description": "Label above input field (ReactNode)"
1935
2259
  },
1936
2260
  "description": {
1937
- "description": "입력 필드 아래 설명 텍스트 (ReactNode, error 빨간색)"
2261
+ "description": "Description below input field (ReactNode, red on error)"
1938
2262
  },
1939
2263
  "showCount": {
1940
2264
  "type": "boolean",
1941
- "description": "글자 카운트 표시 (maxLength 필요)"
2265
+ "description": "Show character count (requires maxLength)"
1942
2266
  },
1943
2267
  "maxLength": {
1944
2268
  "type": "number",
1945
- "description": "최대 글자 "
2269
+ "description": "Maximum character count"
1946
2270
  },
1947
2271
  "clearable": {
1948
2272
  "type": "boolean",
1949
- "description": "X 버튼으로 입력값 초기화"
2273
+ "description": "Clear input via X button"
1950
2274
  },
1951
2275
  "placeholder": {
1952
2276
  "type": "string",
1953
- "description": "플레이스홀더"
2277
+ "description": "Placeholder"
1954
2278
  },
1955
2279
  "disabled": {
1956
2280
  "type": "boolean",
1957
- "description": "비활성"
2281
+ "description": "Disabled"
2282
+ },
2283
+ "readOnly": {
2284
+ "type": "boolean",
2285
+ "description": "Read-only"
2286
+ },
2287
+ "value": {
2288
+ "type": "string",
2289
+ "description": "Input value (controlled mode)"
2290
+ },
2291
+ "defaultValue": {
2292
+ "type": "string",
2293
+ "description": "Initial value (uncontrolled mode)"
2294
+ },
2295
+ "type": {
2296
+ "type": "string",
2297
+ "description": "Input type (text, password, email, url, etc.)"
2298
+ },
2299
+ "name": {
2300
+ "type": "string",
2301
+ "description": "Form field name"
2302
+ },
2303
+ "id": {
2304
+ "type": "string",
2305
+ "description": "Element ID (for label htmlFor binding)"
2306
+ },
2307
+ "autoFocus": {
2308
+ "type": "boolean",
2309
+ "description": "Auto focus"
2310
+ },
2311
+ "autoComplete": {
2312
+ "type": "string",
2313
+ "description": "Autocomplete hint (on, off, email, etc.)"
1958
2314
  },
1959
2315
  "onValueChange": {
1960
- "description": " 변경 콜백 (value: string) => void"
2316
+ "description": "Value change callback (value: string) => void"
2317
+ },
2318
+ "onChange": {
2319
+ "description": "Native change event handler"
2320
+ },
2321
+ "onBlur": {
2322
+ "description": "Blur callback"
2323
+ },
2324
+ "onFocus": {
2325
+ "description": "Focus callback"
1961
2326
  },
1962
2327
  "className": {
1963
2328
  "type": "string",
1964
- "description": "스타일 오버라이드"
2329
+ "description": "Style override"
1965
2330
  }
1966
2331
  },
1967
2332
  "additionalProperties": false,
1968
- "description": "텍스트 입력 필드. label, description, prefix/suffix 아이콘, clearable, 글자 수 카운트 지원."
2333
+ "description": "Text input field. Supports label, description, prefix/suffix icons, clearable, character counter."
1969
2334
  }
1970
2335
  },
1971
2336
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1977,22 +2342,22 @@
1977
2342
  "type": "object",
1978
2343
  "properties": {
1979
2344
  "children": {
1980
- "description": " 루트 요소 (ReactNode, 필수)"
2345
+ "description": "App root element (ReactNode, required)"
1981
2346
  },
1982
2347
  "defaultTheme": {
1983
2348
  "type": "string",
1984
- "description": "기본 테마 (예: \"dark\", \"light\")"
2349
+ "description": "Default theme (e.g. \"dark\", \"light\")"
1985
2350
  },
1986
2351
  "storageKey": {
1987
2352
  "type": "string",
1988
- "description": "localStorage 저장 (기본: \"theme\")"
2353
+ "description": "localStorage storage key (default: \"theme\")"
1989
2354
  },
1990
2355
  "themes": {
1991
2356
  "type": "array",
1992
2357
  "items": {
1993
2358
  "type": "string"
1994
2359
  },
1995
- "description": "사용 가능한 테마 목록 (기본: [\"light\", \"dark\"])"
2360
+ "description": "Available theme list (default: [\"light\", \"dark\"])"
1996
2361
  },
1997
2362
  "attribute": {
1998
2363
  "anyOf": [
@@ -2006,23 +2371,23 @@
2006
2371
  }
2007
2372
  }
2008
2373
  ],
2009
- "description": "테마 적용 HTML 속성 (기본: \"data-theme\")"
2374
+ "description": "Theme HTML attribute (default: \"data-theme\")"
2010
2375
  },
2011
2376
  "enableSystem": {
2012
2377
  "type": "boolean",
2013
- "description": "시스템 테마 감지 활성화"
2378
+ "description": "Enable system theme detection"
2014
2379
  },
2015
2380
  "disableTransitionOnChange": {
2016
2381
  "type": "boolean",
2017
- "description": "테마 전환 트랜지션 비활성화"
2382
+ "description": "Disable transitions on theme change"
2018
2383
  },
2019
2384
  "forcedTheme": {
2020
2385
  "type": "string",
2021
- "description": "강제 테마 (사용자 변경 불가)"
2386
+ "description": "Forced theme (user cannot change)"
2022
2387
  },
2023
2388
  "enableColorScheme": {
2024
2389
  "type": "boolean",
2025
- "description": "color-scheme CSS 속성 자동 설정"
2390
+ "description": "Auto-set color-scheme CSS property"
2026
2391
  },
2027
2392
  "nonce": {
2028
2393
  "type": "string",
@@ -2030,7 +2395,88 @@
2030
2395
  }
2031
2396
  },
2032
2397
  "additionalProperties": false,
2033
- "description": "테마 제공자. next-themes 기반. useTheme() 훅으로 테마 상태 접근."
2398
+ "description": "Theme provider. Based on next-themes. Access theme state via useTheme() hook."
2399
+ }
2400
+ },
2401
+ "$schema": "http://json-schema.org/draft-07/schema#"
2402
+ },
2403
+ "toastOptions": {
2404
+ "$ref": "#/definitions/toastOptionsSchema",
2405
+ "definitions": {
2406
+ "toastOptionsSchema": {
2407
+ "type": "object",
2408
+ "properties": {
2409
+ "description": {
2410
+ "description": "Toast subtitle (ReactNode)"
2411
+ },
2412
+ "duration": {
2413
+ "type": "number",
2414
+ "description": "Auto-dismiss duration (ms). Default 4000"
2415
+ },
2416
+ "icon": {
2417
+ "description": "Custom icon (ReactNode)"
2418
+ },
2419
+ "action": {
2420
+ "description": "Action button. { label: ReactNode, onClick: () => void }"
2421
+ },
2422
+ "cancel": {
2423
+ "description": "Cancel button. { label: ReactNode, onClick: () => void }"
2424
+ },
2425
+ "closeButton": {
2426
+ "type": "boolean",
2427
+ "description": "Show close (X) button"
2428
+ },
2429
+ "dismissible": {
2430
+ "type": "boolean",
2431
+ "description": "Allow dismiss via swipe/click"
2432
+ },
2433
+ "richColors": {
2434
+ "type": "boolean",
2435
+ "description": "Apply strong colors for success/error/warning/info"
2436
+ },
2437
+ "invert": {
2438
+ "type": "boolean",
2439
+ "description": "Invert colors (dark↔light)"
2440
+ },
2441
+ "position": {
2442
+ "type": "string",
2443
+ "enum": [
2444
+ "top-left",
2445
+ "top-center",
2446
+ "top-right",
2447
+ "bottom-left",
2448
+ "bottom-center",
2449
+ "bottom-right"
2450
+ ],
2451
+ "description": "Individual position for this toast"
2452
+ },
2453
+ "onDismiss": {
2454
+ "description": "Dismiss callback (toast: ToastT) => void"
2455
+ },
2456
+ "onAutoClose": {
2457
+ "description": "Auto-close callback (toast: ToastT) => void"
2458
+ },
2459
+ "className": {
2460
+ "type": "string",
2461
+ "description": "Toast custom class"
2462
+ },
2463
+ "style": {
2464
+ "description": "Toast inline style (CSSProperties)"
2465
+ },
2466
+ "unstyled": {
2467
+ "type": "boolean",
2468
+ "description": "Remove default styles (for custom styling)"
2469
+ },
2470
+ "id": {
2471
+ "type": [
2472
+ "string",
2473
+ "number"
2474
+ ],
2475
+ "description": "Toast ID (for deduplication or updates)"
2476
+ }
2477
+ },
2478
+ "additionalProperties": false,
2479
+ "description": "toast() call options. Used as toast(message, options). Fully customizable via toast.custom(jsx)."
2034
2480
  }
2035
2481
  },
2036
2482
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -2052,16 +2498,61 @@
2052
2498
  "bottom-right"
2053
2499
  ],
2054
2500
  "default": "top-center",
2055
- "description": "토스트 위치"
2501
+ "description": "Default toast position"
2056
2502
  },
2057
2503
  "unstyled": {
2058
2504
  "type": "boolean",
2059
2505
  "default": false,
2060
- "description": "기본 스타일 제거 (커스텀 스타일링 )"
2506
+ "description": "Remove default styles (for custom styling)"
2507
+ },
2508
+ "theme": {
2509
+ "type": "string",
2510
+ "enum": [
2511
+ "light",
2512
+ "dark",
2513
+ "system"
2514
+ ],
2515
+ "description": "Theme setting"
2516
+ },
2517
+ "richColors": {
2518
+ "type": "boolean",
2519
+ "description": "Apply strong colors for success/error/warning/info"
2520
+ },
2521
+ "expand": {
2522
+ "type": "boolean",
2523
+ "description": "Always show toasts in expanded state"
2524
+ },
2525
+ "duration": {
2526
+ "type": "number",
2527
+ "description": "Global auto-dismiss duration (ms). Default 4000"
2528
+ },
2529
+ "visibleToasts": {
2530
+ "type": "number",
2531
+ "description": "Maximum visible toasts at once"
2532
+ },
2533
+ "closeButton": {
2534
+ "type": "boolean",
2535
+ "description": "Show close button on all toasts"
2536
+ },
2537
+ "gap": {
2538
+ "type": "number",
2539
+ "description": "Gap between toasts (px)"
2540
+ },
2541
+ "offset": {
2542
+ "description": "Offset from screen edge. string | number | { top, right, bottom, left }"
2543
+ },
2544
+ "dir": {
2545
+ "type": "string",
2546
+ "enum": [
2547
+ "ltr",
2548
+ "rtl",
2549
+ "auto"
2550
+ ],
2551
+ "description": "Text direction"
2061
2552
  }
2062
2553
  },
2063
2554
  "additionalProperties": false,
2064
- "description": "Toaster 설정. 루트에 배치. toast() 함수로 알림 표시. sonner 기반."
2555
+ "description": "Toaster config. Place once at app root. Display notifications via toast(). Based on sonner."
2065
2556
  }
2066
2557
  },
2067
2558
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -2073,10 +2564,10 @@
2073
2564
  "type": "object",
2074
2565
  "properties": {
2075
2566
  "children": {
2076
- "description": "트리거 요소 (ReactNode, 필수)"
2567
+ "description": "Trigger element (ReactNode, required)"
2077
2568
  },
2078
2569
  "content": {
2079
- "description": "툴팁 내용 (ReactNode, 필수)"
2570
+ "description": "Tooltip content (ReactNode, required)"
2080
2571
  },
2081
2572
  "variant": {
2082
2573
  "type": "string",
@@ -2085,7 +2576,7 @@
2085
2576
  "light"
2086
2577
  ],
2087
2578
  "default": "dark",
2088
- "description": "스타일"
2579
+ "description": "Style"
2089
2580
  },
2090
2581
  "side": {
2091
2582
  "type": "string",
@@ -2096,7 +2587,7 @@
2096
2587
  "left"
2097
2588
  ],
2098
2589
  "default": "top",
2099
- "description": "위치"
2590
+ "description": "Position"
2100
2591
  },
2101
2592
  "align": {
2102
2593
  "type": "string",
@@ -2106,29 +2597,29 @@
2106
2597
  "end"
2107
2598
  ],
2108
2599
  "default": "center",
2109
- "description": "정렬"
2600
+ "description": "Alignment"
2110
2601
  },
2111
2602
  "delayDuration": {
2112
2603
  "type": "number",
2113
2604
  "default": 200,
2114
- "description": "표시 지연 (ms)"
2605
+ "description": "Show delay (ms)"
2115
2606
  },
2116
2607
  "disabled": {
2117
2608
  "type": "boolean",
2118
2609
  "default": false,
2119
- "description": "비활성"
2610
+ "description": "Disabled"
2120
2611
  },
2121
2612
  "className": {
2122
2613
  "type": "string",
2123
- "description": "Content 스타일"
2614
+ "description": "Content style"
2124
2615
  },
2125
2616
  "triggerClassName": {
2126
2617
  "type": "string",
2127
- "description": "Trigger 스타일"
2618
+ "description": "Trigger style"
2128
2619
  }
2129
2620
  },
2130
2621
  "additionalProperties": false,
2131
- "description": "툴팁. Radix Tooltip 기반. Provider 내장."
2622
+ "description": "Tooltip. Based on Radix Tooltip. Built-in Provider."
2132
2623
  }
2133
2624
  },
2134
2625
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -2141,7 +2632,7 @@
2141
2632
  "properties": {
2142
2633
  "items": {
2143
2634
  "type": "array",
2144
- "description": "데이터 배열 (필수)"
2635
+ "description": "Data array (required)"
2145
2636
  },
2146
2637
  "estimateSize": {
2147
2638
  "anyOf": [
@@ -2150,39 +2641,42 @@
2150
2641
  },
2151
2642
  {}
2152
2643
  ],
2153
- "description": "예상 아이템 높이 (number 또는 함수, 필수)"
2644
+ "description": "Estimated item height (number or (index) => number, required)"
2154
2645
  },
2155
2646
  "renderItem": {
2156
- "description": "아이템 렌더러 (필수)"
2647
+ "description": "Item renderer (item, index, virtualItem) => ReactNode (required)"
2157
2648
  },
2158
2649
  "overscan": {
2159
2650
  "type": "number",
2160
2651
  "default": 5,
2161
- "description": "오버스캔 "
2652
+ "description": "Overscan count"
2162
2653
  },
2163
2654
  "gap": {
2164
2655
  "type": "number",
2165
2656
  "default": 0,
2166
- "description": "아이템 간격 (px)"
2657
+ "description": "Item gap (px)"
2167
2658
  },
2168
2659
  "className": {
2169
2660
  "type": "string",
2170
- "description": "스크롤 컨테이너 스타일"
2661
+ "description": "Scroll container style"
2662
+ },
2663
+ "style": {
2664
+ "description": "Inline style (CSSProperties)"
2171
2665
  },
2172
2666
  "endReachedThreshold": {
2173
2667
  "type": "number",
2174
2668
  "default": 200,
2175
- "description": " 감지 임계값 (px)"
2669
+ "description": "End detection threshold (px)"
2176
2670
  },
2177
2671
  "onEndReached": {
2178
- "description": " 도달 콜백 () => void"
2672
+ "description": "End reached callback () => void"
2179
2673
  }
2180
2674
  },
2181
2675
  "required": [
2182
2676
  "items"
2183
2677
  ],
2184
2678
  "additionalProperties": false,
2185
- "description": "가상 스크롤 리스트. @tanstack/react-virtual 기반."
2679
+ "description": "Virtual scroll list. Based on @tanstack/react-virtual."
2186
2680
  }
2187
2681
  },
2188
2682
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -2195,7 +2689,11 @@
2195
2689
  "properties": {
2196
2690
  "items": {
2197
2691
  "type": "array",
2198
- "description": "데이터 배열 (필수)"
2692
+ "description": "Data array (required)"
2693
+ },
2694
+ "columns": {
2695
+ "type": "number",
2696
+ "description": "Column count (required)"
2199
2697
  },
2200
2698
  "estimateSize": {
2201
2699
  "anyOf": [
@@ -2204,36 +2702,35 @@
2204
2702
  },
2205
2703
  {}
2206
2704
  ],
2207
- "description": "예상 아이템 높이 (필수)"
2208
- },
2209
- "columns": {
2210
- "type": "number",
2211
- "description": "열 수 (필수)"
2705
+ "description": "Estimated item height (required)"
2212
2706
  },
2213
2707
  "renderItem": {
2214
- "description": "아이템 렌더러 (필수)"
2708
+ "description": "Item renderer (item, index) => ReactNode (required)"
2215
2709
  },
2216
2710
  "overscan": {
2217
2711
  "type": "number",
2218
2712
  "default": 3,
2219
- "description": "오버스캔 "
2713
+ "description": "Overscan count"
2220
2714
  },
2221
2715
  "gap": {
2222
2716
  "type": "number",
2223
2717
  "default": 0,
2224
- "description": "아이템 간격 (px)"
2718
+ "description": "Item gap (px)"
2719
+ },
2720
+ "className": {
2721
+ "type": "string",
2722
+ "description": "Scroll container style"
2723
+ },
2724
+ "style": {
2725
+ "description": "Inline style (CSSProperties)"
2225
2726
  },
2226
2727
  "endReachedThreshold": {
2227
2728
  "type": "number",
2228
2729
  "default": 200,
2229
- "description": " 감지 임계값 (px)"
2730
+ "description": "End detection threshold (px)"
2230
2731
  },
2231
2732
  "onEndReached": {
2232
- "description": " 도달 콜백 () => void"
2233
- },
2234
- "className": {
2235
- "type": "string",
2236
- "description": "스크롤 컨테이너 스타일"
2733
+ "description": "End reached callback () => void"
2237
2734
  }
2238
2735
  },
2239
2736
  "required": [
@@ -2241,7 +2738,7 @@
2241
2738
  "columns"
2242
2739
  ],
2243
2740
  "additionalProperties": false,
2244
- "description": "가상 스크롤 그리드. @tanstack/react-virtual 기반."
2741
+ "description": "Virtual scroll grid. Based on @tanstack/react-virtual."
2245
2742
  }
2246
2743
  },
2247
2744
  "$schema": "http://json-schema.org/draft-07/schema#"