@krds.ui/react 0.0.0-stage → 0.1.0

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 (96) hide show
  1. package/LICENSE +16 -0
  2. package/README.md +125 -2
  3. package/dist/img/component/icon/head_ico_font_sample.svg +3 -0
  4. package/dist/img/component/icon/head_ico_font_sample_white.svg +3 -0
  5. package/dist/img/component/icon/ico_all.svg +3 -0
  6. package/dist/img/component/icon/ico_angle.svg +3 -0
  7. package/dist/img/component/icon/ico_angle_disabled.svg +3 -0
  8. package/dist/img/component/icon/ico_angle_disabled_inverse.svg +3 -0
  9. package/dist/img/component/icon/ico_angle_inverse.svg +3 -0
  10. package/dist/img/component/icon/ico_arrow_dropdown.svg +3 -0
  11. package/dist/img/component/icon/ico_blog.svg +6 -0
  12. package/dist/img/component/icon/ico_bread_home.svg +3 -0
  13. package/dist/img/component/icon/ico_calendar.svg +3 -0
  14. package/dist/img/component/icon/ico_call.svg +3 -0
  15. package/dist/img/component/icon/ico_checkbox.svg +5 -0
  16. package/dist/img/component/icon/ico_checkbox_checked.svg +5 -0
  17. package/dist/img/component/icon/ico_close.svg +3 -0
  18. package/dist/img/component/icon/ico_complete_fill.svg +4 -0
  19. package/dist/img/component/icon/ico_delete.svg +3 -0
  20. package/dist/img/component/icon/ico_delete_fill.svg +4 -0
  21. package/dist/img/component/icon/ico_download.svg +3 -0
  22. package/dist/img/component/icon/ico_ellipsis.svg +3 -0
  23. package/dist/img/component/icon/ico_email.svg +3 -0
  24. package/dist/img/component/icon/ico_error_fill.svg +4 -0
  25. package/dist/img/component/icon/ico_expand.svg +3 -0
  26. package/dist/img/component/icon/ico_facebook.svg +3 -0
  27. package/dist/img/component/icon/ico_faq.svg +3 -0
  28. package/dist/img/component/icon/ico_file.svg +3 -0
  29. package/dist/img/component/icon/ico_file_figma.svg +13 -0
  30. package/dist/img/component/icon/ico_file_html.svg +13 -0
  31. package/dist/img/component/icon/ico_file_hwp.svg +13 -0
  32. package/dist/img/component/icon/ico_file_pdf.svg +13 -0
  33. package/dist/img/component/icon/ico_file_sketch.svg +13 -0
  34. package/dist/img/component/icon/ico_file_xd.svg +16 -0
  35. package/dist/img/component/icon/ico_filter.svg +5 -0
  36. package/dist/img/component/icon/ico_flag.svg +29 -0
  37. package/dist/img/component/icon/ico_flow_arrow.svg +3 -0
  38. package/dist/img/component/icon/ico_foldable.svg +3 -0
  39. package/dist/img/component/icon/ico_global.svg +3 -0
  40. package/dist/img/component/icon/ico_go.svg +3 -0
  41. package/dist/img/component/icon/ico_go_top.svg +5 -0
  42. package/dist/img/component/icon/ico_help.svg +4 -0
  43. package/dist/img/component/icon/ico_help_fill.svg +4 -0
  44. package/dist/img/component/icon/ico_information.svg +5 -0
  45. package/dist/img/component/icon/ico_information_fill.svg +4 -0
  46. package/dist/img/component/icon/ico_information_fill_high_contrast.svg +5 -0
  47. package/dist/img/component/icon/ico_instagram.svg +3 -0
  48. package/dist/img/component/icon/ico_join.svg +3 -0
  49. package/dist/img/component/icon/ico_like.svg +3 -0
  50. package/dist/img/component/icon/ico_login.svg +3 -0
  51. package/dist/img/component/icon/ico_login_certify_go.svg +4 -0
  52. package/dist/img/component/icon/ico_login_certify_type_01.svg +3 -0
  53. package/dist/img/component/icon/ico_login_certify_type_02.svg +3 -0
  54. package/dist/img/component/icon/ico_login_certify_type_03.svg +3 -0
  55. package/dist/img/component/icon/ico_login_certify_type_04.svg +5 -0
  56. package/dist/img/component/icon/ico_login_certify_type_05.svg +3 -0
  57. package/dist/img/component/icon/ico_login_certify_type_06.svg +3 -0
  58. package/dist/img/component/icon/ico_logo_krds.svg +10 -0
  59. package/dist/img/component/icon/ico_logo_krds_high_contrast.svg +10 -0
  60. package/dist/img/component/icon/ico_logout.svg +3 -0
  61. package/dist/img/component/icon/ico_more.svg +3 -0
  62. package/dist/img/component/icon/ico_my.svg +3 -0
  63. package/dist/img/component/icon/ico_notice_fill.svg +5 -0
  64. package/dist/img/component/icon/ico_notice_fill_blue.svg +5 -0
  65. package/dist/img/component/icon/ico_notice_fill_high_contrast.svg +5 -0
  66. package/dist/img/component/icon/ico_plus.svg +3 -0
  67. package/dist/img/component/icon/ico_print.svg +3 -0
  68. package/dist/img/component/icon/ico_pw_visible_off.svg +3 -0
  69. package/dist/img/component/icon/ico_pw_visible_on.svg +5 -0
  70. package/dist/img/component/icon/ico_reset.svg +3 -0
  71. package/dist/img/component/icon/ico_sch.svg +3 -0
  72. package/dist/img/component/icon/ico_sch_plus.svg +3 -0
  73. package/dist/img/component/icon/ico_scrap.svg +3 -0
  74. package/dist/img/component/icon/ico_setting.svg +3 -0
  75. package/dist/img/component/icon/ico_share.svg +3 -0
  76. package/dist/img/component/icon/ico_sns_x.svg +3 -0
  77. package/dist/img/component/icon/ico_step_done.svg +3 -0
  78. package/dist/img/component/icon/ico_success_fill.svg +4 -0
  79. package/dist/img/component/icon/ico_swiper_play.svg +3 -0
  80. package/dist/img/component/icon/ico_swiper_stop.svg +3 -0
  81. package/dist/img/component/icon/ico_switch_off.svg +6 -0
  82. package/dist/img/component/icon/ico_switch_on.svg +5 -0
  83. package/dist/img/component/icon/ico_tooltip.svg +3 -0
  84. package/dist/img/component/icon/ico_upload.svg +3 -0
  85. package/dist/img/component/icon/ico_urgent_badge_danger.svg +5 -0
  86. package/dist/img/component/icon/ico_urgent_badge_info.svg +7 -0
  87. package/dist/img/component/icon/ico_urgent_badge_ok.svg +5 -0
  88. package/dist/img/component/icon/ico_view_mode.svg +3 -0
  89. package/dist/img/component/icon/ico_warning_fill.svg +9 -0
  90. package/dist/img/component/icon/ico_youtube.svg +3 -0
  91. package/dist/index.css +1 -0
  92. package/dist/index.js +5208 -0
  93. package/dist/index.js.map +1 -0
  94. package/dist/types/index.d.ts +2266 -0
  95. package/package.json +106 -4
  96. package/style.d.ts +5 -0
@@ -0,0 +1,2266 @@
1
+ import { AnchorHTMLAttributes } from 'react';
2
+ import { ButtonHTMLAttributes } from 'react';
3
+ import { ComponentPropsWithoutRef } from 'react';
4
+ import { ComponentPropsWithRef } from 'react';
5
+ import { ComponentType } from 'react';
6
+ import { default as default_2 } from 'react';
7
+ import { ElementType } from 'react';
8
+ import { ForwardRefExoticComponent } from 'react';
9
+ import { HTMLAttributes } from 'react';
10
+ import { InputHTMLAttributes } from 'react';
11
+ import { JSX as JSX_2 } from 'react';
12
+ import { Key } from 'react';
13
+ import { PropsWithChildren } from 'react';
14
+ import { ReactNode } from 'react';
15
+ import { RefAttributes } from 'react';
16
+ import { SelectHTMLAttributes } from 'react';
17
+ import { TextareaHTMLAttributes } from 'react';
18
+
19
+ export declare const Accordion: ForwardRefExoticComponent<AccordionProps & RefAttributes<HTMLDivElement>> & {
20
+ Root: ForwardRefExoticComponent<AccordionProps & RefAttributes<HTMLDivElement>>;
21
+ Item: ForwardRefExoticComponent< AccordionItemProps & RefAttributes<HTMLDivElement>>;
22
+ Header: ForwardRefExoticComponent< AccordionHeaderProps & RefAttributes<HTMLHeadingElement>>;
23
+ Panel: ForwardRefExoticComponent< AccordionPanelProps & RefAttributes<HTMLDivElement>>;
24
+ };
25
+
26
+ declare interface AccordionHeaderProps extends Omit<HTMLAttributes<HTMLElement>, 'onClick'> {
27
+ /** 헤더 제목 */
28
+ children: ReactNode;
29
+ /** 커스텀 클릭 핸들러 */
30
+ onClick?: () => void;
31
+ }
32
+
33
+ /**
34
+ * KRDS AccordionItem Component ( Pattern)
35
+ * @param value 아이템 값 (고유 식별자)
36
+ * @param children 자식 컴포넌트들 (Header와 Panel)
37
+ */
38
+ export declare const AccordionItem: ForwardRefExoticComponent<AccordionItemProps & RefAttributes<HTMLDivElement>>;
39
+
40
+ export declare interface AccordionItemProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
41
+ /** 아이템 값 (고유 식별자) */
42
+ value: string;
43
+ /** 자식 컴포넌트들 (Header와 Panel) */
44
+ children: ReactNode;
45
+ }
46
+
47
+ declare interface AccordionPanelProps extends HTMLAttributes<HTMLDivElement> {
48
+ /** 패널 내용 */
49
+ children: ReactNode;
50
+ }
51
+
52
+ export declare interface AccordionProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
53
+ /** 아코디언 스타일 변형 */
54
+ variant?: AccordionVariant;
55
+ /** 다중 선택 허용 여부 (false일 경우 한 번에 하나만 열림) */
56
+ allowMultiple?: boolean;
57
+ /** 열린 아이템 값 배열 (제어 상태) */
58
+ value?: string[];
59
+ /** 열린 아이템 변경 핸들러 */
60
+ onChange?: (values: string[]) => void;
61
+ /** 초기 열린 아이템 값 배열 (비제어 상태) */
62
+ defaultValue?: string[];
63
+ /** 자식 컴포넌트들 */
64
+ children: ReactNode;
65
+ }
66
+
67
+ declare type AccordionVariant = 'default' | 'line';
68
+
69
+ /**
70
+ * KRDS Badge 컴포넌트
71
+ * @param variant 배지 종류 ('outline' | 'filled' | 'light')
72
+ * @param color 배지 색상 ('primary' | 'secondary' | 'gray' | 'point' | 'danger' | 'warning' | 'success' | 'information' | 'disabled')
73
+ * @param size 배지 크기 ('small' | 'medium' | 'large')
74
+ * @param rounded 배지 모양 원형 여부
75
+ * @param children 배지 내용
76
+ * @param className 추가 커스텀 클래스
77
+ */
78
+ export declare const Badge: ForwardRefExoticComponent<BadgeProps & RefAttributes<HTMLSpanElement>>;
79
+
80
+ declare type BadgeColor = 'primary' | 'secondary' | 'gray' | 'point' | 'danger' | 'warning' | 'success' | 'information' | 'disabled';
81
+
82
+ export declare interface BadgeProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'size'> {
83
+ variant?: BadgeVariant;
84
+ color?: BadgeColor;
85
+ size?: BadgeSize;
86
+ rounded?: boolean;
87
+ children: React.ReactNode;
88
+ }
89
+
90
+ declare type BadgeSize = 'small' | 'medium' | 'large';
91
+
92
+ declare type BadgeVariant = 'outline' | 'filled' | 'light';
93
+
94
+ declare interface BaseTagProps {
95
+ /** 태그 텍스트 */
96
+ children: ReactNode;
97
+ /** 커스텀 클래스명 */
98
+ className?: string;
99
+ }
100
+
101
+ /**
102
+ * KRDS Breadcrumb Component
103
+ * @param items 브레드크럼 아이템 목록 ('home' | 'link' | 'disabled')
104
+ * @param className 추가 클래스명
105
+ * @param ariaLabel 접근성 레이블
106
+ */
107
+ export declare const Breadcrumb: default_2.ForwardRefExoticComponent<BreadcrumbProps & default_2.RefAttributes<HTMLElement>>;
108
+
109
+ declare interface BreadcrumbItem {
110
+ /** 링크 텍스트 */
111
+ text: string;
112
+ /** 링크 URL */
113
+ href: string;
114
+ /** 비활성화 여부 */
115
+ disabled?: boolean;
116
+ }
117
+
118
+ export declare interface BreadcrumbProps extends HTMLAttributes<HTMLElement> {
119
+ /** 브레드크럼 아이템 목록 */
120
+ items: BreadcrumbItem[];
121
+ /** 추가 클래스명 */
122
+ className?: string;
123
+ /** 접근성 레이블 */
124
+ ariaLabel?: string;
125
+ }
126
+
127
+ export declare const Button: PolymorphicButtonComponent;
128
+
129
+ declare type ButtonOwnProps = {
130
+ variant?: ButtonVariant;
131
+ size?: ButtonSize;
132
+ children?: ReactNode;
133
+ className?: string;
134
+ disabled?: boolean;
135
+ role?: string;
136
+ };
137
+
138
+ export declare type ButtonProps<T extends ElementType = 'button'> = ButtonOwnProps & {
139
+ as?: T;
140
+ } & Omit<ComponentPropsWithRef<T>, keyof ButtonOwnProps>;
141
+
142
+ declare type ButtonSize = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';
143
+
144
+ declare type ButtonVariant = 'primary' | 'secondary' | 'tertiary' | 'text' | 'link' | 'icon';
145
+
146
+ /**
147
+ * KRDS Calendar Component
148
+ * @param mode 달력 모드 ('single' | 'range')
149
+ * @param position 달력 위치 ('top' | 'bottom')
150
+ * @param value 현재 선택된 날짜 (단일 선택)
151
+ * @param defaultValue 기본 선택된 날짜 (단일 선택)
152
+ * @param startDate 범위 선택 시작 날짜
153
+ * @param endDate 범위 선택 종료 날짜
154
+ * @param defaultStartDate 기본 범위 선택 시작 날짜
155
+ * @param defaultEndDate 기본 범위 선택 종료 날짜
156
+ * @param disabledDates 비활성화할 날짜 배열
157
+ * @param eventDates 이벤트가 있는 날짜 배열
158
+ * @param isOpen 달력 열림 상태
159
+ * @param defaultIsOpen 기본 달력 열림 상태
160
+ * @param label 입력 필드 레이블
161
+ * @param placeholder 입력 필드 placeholder
162
+ * @param disabled 비활성화 여부
163
+ * @param readOnly 읽기 전용 여부
164
+ */
165
+ export declare const Calendar: ForwardRefExoticComponent<CalendarProps & RefAttributes<HTMLDivElement>>;
166
+
167
+ declare type CalendarMode = 'single' | 'range';
168
+
169
+ declare type CalendarPosition = 'top' | 'bottom';
170
+
171
+ export declare interface CalendarProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
172
+ /**
173
+ * 달력 모드 ('single' | 'range')
174
+ */
175
+ mode?: CalendarMode;
176
+ /**
177
+ * 달력 위치 ('top' | 'bottom')
178
+ */
179
+ position?: CalendarPosition;
180
+ /**
181
+ * 현재 선택된 날짜 (단일 선택 모드)
182
+ */
183
+ value?: string;
184
+ /**
185
+ * 기본 선택된 날짜 (단일 선택 모드)
186
+ */
187
+ defaultValue?: string;
188
+ /**
189
+ * 범위 선택 시작 날짜
190
+ */
191
+ startDate?: string;
192
+ /**
193
+ * 범위 선택 종료 날짜
194
+ */
195
+ endDate?: string;
196
+ /**
197
+ * 기본 범위 선택 시작 날짜
198
+ */
199
+ defaultStartDate?: string;
200
+ /**
201
+ * 기본 범위 선택 종료 날짜
202
+ */
203
+ defaultEndDate?: string;
204
+ /**
205
+ * 비활성화할 날짜 배열 (YYYY.MM.DD 형식)
206
+ */
207
+ disabledDates?: string[];
208
+ /**
209
+ * 이벤트가 있는 날짜 배열 (YYYY.MM.DD 형식)
210
+ */
211
+ eventDates?: string[];
212
+ /**
213
+ * 달력이 열려있는지 여부
214
+ */
215
+ isOpen?: boolean;
216
+ /**
217
+ * 기본 달력 열림 상태
218
+ */
219
+ defaultIsOpen?: boolean;
220
+ /**
221
+ * 달력 열림/닫힘 상태 변경 콜백
222
+ */
223
+ onOpenChange?: (isOpen: boolean) => void;
224
+ /**
225
+ * 날짜 선택 변경 콜백 (단일 선택)
226
+ */
227
+ onChange?: (value: string) => void;
228
+ /**
229
+ * 범위 선택 변경 콜백
230
+ */
231
+ onRangeChange?: (startDate: string, endDate: string) => void;
232
+ /**
233
+ * 년도 변경 콜백
234
+ */
235
+ onYearChange?: (year: number) => void;
236
+ /**
237
+ * 월 변경 콜백
238
+ */
239
+ onMonthChange?: (month: number) => void;
240
+ /**
241
+ * 오늘 버튼 클릭 콜백
242
+ */
243
+ onTodayClick?: () => void;
244
+ /**
245
+ * 확인 버튼 클릭 콜백
246
+ */
247
+ onConfirm?: () => void;
248
+ /**
249
+ * 취소 버튼 클릭 콜백
250
+ */
251
+ onCancel?: () => void;
252
+ /**
253
+ * 입력 필드 레이블
254
+ */
255
+ label?: string;
256
+ /**
257
+ * 입력 필드 ID
258
+ */
259
+ inputId?: string;
260
+ /**
261
+ * 입력 필드 placeholder (단일 선택)
262
+ */
263
+ placeholder?: string;
264
+ /**
265
+ * 시작 날짜 입력 필드 placeholder
266
+ */
267
+ startPlaceholder?: string;
268
+ /**
269
+ * 종료 날짜 입력 필드 placeholder
270
+ */
271
+ endPlaceholder?: string;
272
+ /**
273
+ * 시작 날짜 입력 필드 title
274
+ */
275
+ startTitle?: string;
276
+ /**
277
+ * 종료 날짜 입력 필드 title
278
+ */
279
+ endTitle?: string;
280
+ /**
281
+ * 달력 열기 버튼 aria-label
282
+ */
283
+ openButtonLabel?: string;
284
+ /**
285
+ * 이전 달 버튼 aria-label
286
+ */
287
+ prevButtonLabel?: string;
288
+ /**
289
+ * 다음 달 버튼 aria-label
290
+ */
291
+ nextButtonLabel?: string;
292
+ /**
293
+ * 년도 선택 버튼 aria-label
294
+ */
295
+ yearSelectLabel?: string;
296
+ /**
297
+ * 월 선택 버튼 aria-label
298
+ */
299
+ monthSelectLabel?: string;
300
+ /**
301
+ * 오늘 버튼 텍스트
302
+ */
303
+ todayButtonText?: string;
304
+ /**
305
+ * 취소 버튼 텍스트
306
+ */
307
+ cancelButtonText?: string;
308
+ /**
309
+ * 확인 버튼 텍스트
310
+ */
311
+ confirmButtonText?: string;
312
+ /**
313
+ * 비활성화 여부
314
+ */
315
+ disabled?: boolean;
316
+ /**
317
+ * 읽기 전용 여부
318
+ */
319
+ readOnly?: boolean;
320
+ }
321
+
322
+ /**
323
+ * KRDS Checkbox Component
324
+ * @param size 체크박스 크기 ('medium' | 'large')
325
+ * @param checked 체크박스 선택 상태
326
+ * @param disabled 체크박스 비활성화 상태
327
+ * @param label 체크박스 레이블 텍스트
328
+ * @param description 추가 설명 텍스트
329
+ * @param className 사용자 정의 클래스명
330
+ */
331
+ export declare const Checkbox: default_2.ForwardRefExoticComponent<CheckboxProps & default_2.RefAttributes<HTMLInputElement>>;
332
+
333
+ /**
334
+ * KRDS CheckboxChip Component
335
+ * @param size 체크박스 칩 크기 ('small' | 'medium' | 'large')
336
+ * @param checked 체크박스 선택 상태
337
+ * @param disabled 체크박스 비활성화 상태
338
+ * @param className 사용자 정의 클래스명
339
+ */
340
+ export declare const CheckboxChip: default_2.ForwardRefExoticComponent<CheckboxChipProps & default_2.RefAttributes<HTMLInputElement>>;
341
+
342
+ export declare interface CheckboxChipProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'defaultValue'> {
343
+ /** 체크박스 크기 */
344
+ size?: CheckboxChipSize;
345
+ /** 비제어 상태에서 사용할 초기 체크 상태 */
346
+ defaultValue?: boolean;
347
+ }
348
+
349
+ declare type CheckboxChipSize = 'small' | 'medium' | 'large';
350
+
351
+ /**
352
+ * KRDS CheckboxGroup Component
353
+ * @param column 레이아웃 방향 (true: 세로, false: 가로)
354
+ * @param className 사용자 정의 클래스명
355
+ */
356
+ export declare const CheckboxGroup: default_2.FC<CheckboxGroupProps>;
357
+
358
+ export declare interface CheckboxGroupProps {
359
+ /** 그룹 내 체크박스들 */
360
+ children: React.ReactNode;
361
+ /** 세로 배치 여부 */
362
+ column?: boolean;
363
+ /** 추가 CSS 클래스 */
364
+ className?: string;
365
+ }
366
+
367
+ export declare interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'defaultValue'> {
368
+ /** 체크박스 크기 */
369
+ size?: CheckboxSize;
370
+ /** 추가 설명 텍스트 */
371
+ description?: string;
372
+ /** 비제어 상태에서 사용할 초기 체크 상태 */
373
+ defaultValue?: boolean;
374
+ /** 레이블 텍스트 (children이 없을 경우 사용) */
375
+ label?: string;
376
+ }
377
+
378
+ declare type CheckboxSize = 'medium' | 'large';
379
+
380
+ /**
381
+ * KRDS CoachMark Component
382
+ * @param title 코치 마크 제목
383
+ * @param description 코치 마크 설명
384
+ * @param currentStep 현재 단계
385
+ * @param totalSteps 총 단계 수
386
+ * @param onSkip 그만보기 버튼 클릭 핸들러
387
+ * @param onPrevious 이전으로 버튼 클릭 핸들러
388
+ * @param onNext 다음으로 버튼 클릭 핸들러
389
+ * @param children 코치 마크 내용
390
+ * @param isVisible 코치 마크 표시 여부
391
+ */
392
+ export declare const CoachMark: ForwardRefExoticComponent<Omit<CoachMarkProps, "ref"> & RefAttributes<HTMLDivElement>>;
393
+
394
+ export declare interface CoachMarkProps extends Omit<ComponentPropsWithRef<'div'>, 'children'> {
395
+ /** 코치 마크 제목 */
396
+ title?: string;
397
+ /** 코치 마크 설명 */
398
+ description?: string;
399
+ /** 현재 단계 */
400
+ currentStep?: number;
401
+ /** 총 단계 수 */
402
+ totalSteps?: number;
403
+ /** 그만보기 버튼 클릭 핸들러 */
404
+ onSkip?: () => void;
405
+ /** 이전으로 버튼 클릭 핸들러 */
406
+ onPrevious?: () => void;
407
+ /** 다음으로 버튼 클릭 핸들러 */
408
+ onNext?: () => void;
409
+ /** 코치 마크 내용 */
410
+ children?: ReactNode;
411
+ /** 코치 마크 표시 여부 */
412
+ isVisible?: boolean;
413
+ }
414
+
415
+ /**
416
+ * KRDS ContextualHelp Component
417
+ * @param label 도움말 라벨 텍스트
418
+ * @param title 팝오버 제목
419
+ * @param children 팝오버 내용
420
+ * @param position 팝오버 위치 ('top' | 'bottom')
421
+ * @param alignment 팝오버 정렬 ('left' | 'center' | 'right')
422
+ * @param open 팝오버 열림/닫힘 상태
423
+ * @param defaultOpen 기본 팝오버 열림/닫힘 상태
424
+ * @param onOpenChange 팝오버 상태 변경 핸들러
425
+ * @param className 사용자 정의 클래스명
426
+ */
427
+ export declare const ContextualHelp: ForwardRefExoticComponent<ContextualHelpProps & RefAttributes<HTMLDivElement>>;
428
+
429
+ declare type ContextualHelpAlignment = 'left' | 'center' | 'right';
430
+
431
+ declare type ContextualHelpPosition = 'top' | 'bottom';
432
+
433
+ export declare interface ContextualHelpProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
434
+ /** 도움말 라벨 텍스트 */
435
+ label?: string;
436
+ /** 팝오버 제목 */
437
+ title: string;
438
+ /** 팝오버 내용 */
439
+ children: ReactNode;
440
+ /** 팝오버 위치 ('top' | 'bottom') */
441
+ position?: ContextualHelpPosition;
442
+ /** 팝오버 정렬 ('left' | 'center' | 'right') */
443
+ alignment?: ContextualHelpAlignment;
444
+ /** 팝오버 열림/닫힘 상태 (제어모드) */
445
+ open?: boolean;
446
+ /** 기본 팝오버 열림/닫힘 상태 (비제어모드) */
447
+ defaultOpen?: boolean;
448
+ /** 팝오버 상태 변경 핸들러 */
449
+ onOpenChange?: (open: boolean) => void;
450
+ /** 사용자 정의 클래스명 */
451
+ className?: string;
452
+ }
453
+
454
+ export declare const CriticalAlert: ForwardRefExoticComponent<CriticalAlertsProps & RefAttributes<HTMLDivElement>>;
455
+
456
+ export declare interface CriticalAlertItemProps {
457
+ /**
458
+ * alert의 종류
459
+ */
460
+ variant: CriticalAlertVariant;
461
+ /**
462
+ * alert의 내용
463
+ */
464
+ message: string;
465
+ /**
466
+ * 상세보기 링크 URL
467
+ */
468
+ href?: string;
469
+ /**
470
+ * 상세보기 링크 텍스트
471
+ */
472
+ linkText?: string;
473
+ }
474
+
475
+ export declare interface CriticalAlertsProps extends HTMLAttributes<HTMLDivElement> {
476
+ /**
477
+ * alert 목록
478
+ */
479
+ alerts: CriticalAlertItemProps[];
480
+ }
481
+
482
+ export declare type CriticalAlertVariant = 'danger' | 'ok' | 'info';
483
+
484
+ /**
485
+ * KRDS DateInput Component
486
+ * @param value 제어 상태일 때 입력된 값
487
+ * @param defaultValue 비제어 상태일 때의 초기 값
488
+ * @param onChange 입력 값이 변경될 때 호출되는 콜백
489
+ * @param label 레이블
490
+ * @param hint 도움말 텍스트
491
+ * @param error 에러 메시지
492
+ * @param success 성공 메시지
493
+ * @param information 정보 메시지
494
+ * @param size 입력 필드 크기 ('small' | 'medium' | 'large')
495
+ * @param isCalendarOpen 달력 열림 상태
496
+ * @param calendarPosition 달력 위치 ('top' | 'bottom')
497
+ * @param disabledDates 비활성화할 날짜 배열
498
+ * @param eventDates 이벤트가 있는 날짜 배열
499
+ * @param disabled disabled 상태
500
+ * @param readOnly readOnly 상태
501
+ */
502
+ export declare const DateInput: ForwardRefExoticComponent<DateInputProps & RefAttributes<HTMLInputElement>>;
503
+
504
+ export declare interface DateInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'value' | 'defaultValue' | 'size' | 'type'> {
505
+ /** 입력 값이 변경될 때 호출되는 콜백 */
506
+ onChange?: (value: string) => void;
507
+ /** 레이블 */
508
+ label?: string;
509
+ /** 도움말 텍스트 */
510
+ hint?: string;
511
+ /** 에러 메시지 */
512
+ error?: string;
513
+ /** 성공 메시지 */
514
+ success?: string;
515
+ /** 정보 메시지 */
516
+ information?: string;
517
+ /** 입력 필드 크기 ('small' | 'medium' | 'large') */
518
+ size?: 'small' | 'medium' | 'large';
519
+ /** 제어 상태일 때 입력된 값 */
520
+ value?: string;
521
+ /** 비제어 상태일 때의 초기 값 */
522
+ defaultValue?: string;
523
+ /** 달력이 열려있는지 여부 */
524
+ isCalendarOpen?: boolean;
525
+ /** 기본 달력 열림 상태 */
526
+ defaultIsCalendarOpen?: boolean;
527
+ /** 달력 열림/닫힘 상태 변경 콜백 */
528
+ onCalendarOpenChange?: (isOpen: boolean) => void;
529
+ /** 달력 위치 ('top' | 'bottom') */
530
+ calendarPosition?: 'top' | 'bottom';
531
+ /** 비활성화할 날짜 배열 (YYYY.MM.DD 형식) */
532
+ disabledDates?: string[];
533
+ /** 이벤트가 있는 날짜 배열 (YYYY.MM.DD 형식) */
534
+ eventDates?: string[];
535
+ /** 년도 변경 콜백 */
536
+ onYearChange?: (year: number) => void;
537
+ /** 월 변경 콜백 */
538
+ onMonthChange?: (month: number) => void;
539
+ /** 오늘 버튼 클릭 콜백 */
540
+ onTodayClick?: () => void;
541
+ /** 확인 버튼 클릭 콜백 */
542
+ onConfirm?: () => void;
543
+ /** 취소 버튼 클릭 콜백 */
544
+ onCancel?: () => void;
545
+ /** 달력 열기 버튼 aria-label */
546
+ openButtonLabel?: string;
547
+ /** 이전 달 버튼 aria-label */
548
+ prevButtonLabel?: string;
549
+ /** 다음 달 버튼 aria-label */
550
+ nextButtonLabel?: string;
551
+ /** 년도 선택 버튼 aria-label */
552
+ yearSelectLabel?: string;
553
+ /** 월 선택 버튼 aria-label */
554
+ monthSelectLabel?: string;
555
+ /** 오늘 버튼 텍스트 */
556
+ todayButtonText?: string;
557
+ /** 취소 버튼 텍스트 */
558
+ cancelButtonText?: string;
559
+ /** 확인 버튼 텍스트 */
560
+ confirmButtonText?: string;
561
+ }
562
+
563
+ declare interface DeletableTagProps extends BaseTagProps, Omit<HTMLAttributes<HTMLSpanElement>, 'children'> {
564
+ /** 태그 타입 */
565
+ variant?: 'deletable';
566
+ /** 삭제 버튼 클릭 핸들러 */
567
+ onDelete?: () => void;
568
+ /** 삭제 버튼 비활성화 */
569
+ deleteDisabled?: boolean;
570
+ }
571
+
572
+ declare interface DesktopBanner {
573
+ badgeText?: string;
574
+ buttonText: string;
575
+ onButtonClick: () => void;
576
+ children?: ReactNode;
577
+ }
578
+
579
+ declare interface DesktopLeafItem {
580
+ id?: string;
581
+ label: string;
582
+ href?: string;
583
+ isExternal?: boolean;
584
+ asButton?: boolean;
585
+ description?: string;
586
+ onClick?: () => void;
587
+ }
588
+
589
+ declare interface DesktopMainDropdown {
590
+ type: 'dropdown';
591
+ id?: string;
592
+ label: string;
593
+ isDropdownTrigger?: boolean;
594
+ mainListClassName?: string;
595
+ sections: DesktopSubSection[];
596
+ }
597
+
598
+ declare type DesktopMainItem = DesktopMainDropdown | DesktopMainLink;
599
+
600
+ declare interface DesktopMainLink {
601
+ type: 'link';
602
+ id?: string;
603
+ label: string;
604
+ href?: string;
605
+ isExternal?: boolean;
606
+ renderAsButton?: boolean;
607
+ onClick?: () => void;
608
+ }
609
+
610
+ declare interface DesktopMenuConfig {
611
+ items: DesktopMainItem[];
612
+ }
613
+
614
+ declare interface DesktopSubLink {
615
+ type: 'link';
616
+ id?: string;
617
+ label: string;
618
+ href: string;
619
+ isExternal?: boolean;
620
+ onClick?: () => void;
621
+ }
622
+
623
+ declare interface DesktopSubMenu {
624
+ type: 'menu';
625
+ id?: string;
626
+ label: string;
627
+ href?: string;
628
+ isExternal?: boolean;
629
+ quickLinkLabel?: string;
630
+ quickLinkHref?: string;
631
+ quickLinkExternal?: boolean;
632
+ layout?: 'default' | 'between' | 'single-list';
633
+ items: DesktopLeafItem[];
634
+ banner?: DesktopBanner;
635
+ }
636
+
637
+ declare type DesktopSubSection = DesktopSubMenu | DesktopSubLink;
638
+
639
+ /**
640
+ * KRDS Disclosure Component
641
+ * @param buttonText 토글 버튼 텍스트
642
+ * @param children 확장 가능한 콘텐츠
643
+ * @param defaultExpanded 초기 확장 상태
644
+ * @param expanded 제어된 확장 상태
645
+ * @param onToggle 확장 상태 변경 콜백
646
+ * @param className 커스텀 클래스명
647
+ */
648
+ export declare const Disclosure: ForwardRefExoticComponent<Omit<DisclosureProps, "ref"> & RefAttributes<HTMLDivElement>>;
649
+
650
+ export declare type DisclosureProps = {
651
+ /** 토글 버튼 텍스트 */
652
+ buttonText: string;
653
+ /** 확장 가능한 콘텐츠 */
654
+ children: ReactNode;
655
+ /** 초기 확장 상태 */
656
+ defaultExpanded?: boolean;
657
+ /** 제어된 확장 상태 */
658
+ expanded?: boolean;
659
+ /** 확장 상태 변경 시 호출되는 콜백 */
660
+ onToggle?: (expanded: boolean) => void;
661
+ /** 커스텀 클래스명 */
662
+ className?: string;
663
+ } & Omit<ComponentPropsWithRef<'div'>, 'children' | 'className' | 'onToggle'>;
664
+
665
+ declare interface DropdownItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {
666
+ /**
667
+ * 아이템 활성 상태
668
+ */
669
+ isActive?: boolean;
670
+ }
671
+
672
+ declare interface DropdownProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onClick' | 'onChange' | 'content'> {
673
+ /**
674
+ * 드롭다운 열림 상태 (controlled)
675
+ */
676
+ isOpen?: boolean;
677
+ /**
678
+ * 기본 드롭다운 열림 상태 (uncontrolled)
679
+ */
680
+ defaultOpen?: boolean;
681
+ /**
682
+ * 드롭다운 상태 변경 시 호출되는 콜백 함수
683
+ */
684
+ onOpenChange?: (isOpen: boolean) => void;
685
+ /**
686
+ * 드롭다운 버튼 텍스트 또는 콘텐츠
687
+ */
688
+ buttonText: ReactNode;
689
+ /**
690
+ * 드롭다운 버튼 클래스명
691
+ */
692
+ buttonClassName?: string;
693
+ /**
694
+ * 드롭다운 메뉴 콘텐츠 (리스트 아이템)
695
+ */
696
+ children?: ReactNode;
697
+ /**
698
+ * 커스텀 드롭다운 콘텐츠
699
+ */
700
+ content?: ReactNode;
701
+ /**
702
+ * 사용자 정의 클래스명
703
+ */
704
+ className?: string;
705
+ }
706
+
707
+ export declare interface FileItem {
708
+ id: string;
709
+ name: string;
710
+ size: number;
711
+ type: string;
712
+ status: 'ready' | 'uploading' | 'completed' | 'error';
713
+ errorMessage?: string;
714
+ onDownload?: () => void;
715
+ onPreview?: () => void;
716
+ deletable?: boolean;
717
+ }
718
+
719
+ /**
720
+ * KRDS FileUpload Component
721
+ * @param title 타이틀 영역 제목
722
+ * @param description 컨텐츠 영역 설명
723
+ * @param uploadText 업로드 영역 안내 텍스트
724
+ * @param maxFiles 최대 파일 개수
725
+ * @param maxFileSize 최대 파일 크기 (bytes)
726
+ * @param acceptedFileTypes 허용된 파일 확장자 배열
727
+ * @param files 파일 목록
728
+ * @param onFilesChange 파일 목록 변경 핸들러
729
+ * @param onFileUpload 파일 업로드 핸들러
730
+ * @param onFileDelete 파일 삭제 핸들러
731
+ * @param onAllFilesDelete 전체 파일 삭제 핸들러
732
+ * @param disabled 비활성화 상태
733
+ * @param allowDelete 파일 삭제 허용 여부
734
+ * @param className 커스텀 클래스명
735
+ */
736
+ export declare const FileUpload: default_2.ForwardRefExoticComponent<Omit<FileUploadProps, "ref"> & default_2.RefAttributes<HTMLDivElement>>;
737
+
738
+ export declare interface FileUploadProps extends Omit<ComponentPropsWithRef<'div'>, 'onChange'> {
739
+ title?: string;
740
+ description?: string;
741
+ uploadText?: string;
742
+ maxFiles?: number;
743
+ maxFileSize?: number;
744
+ acceptedFileTypes?: string[];
745
+ files?: FileItem[];
746
+ onFilesChange?: (files: FileItem[]) => void;
747
+ onFileUpload?: (file: File) => Promise<void>;
748
+ onFileDelete?: (fileId: string) => void;
749
+ onAllFilesDelete?: () => void;
750
+ disabled?: boolean;
751
+ allowDelete?: boolean;
752
+ className?: string;
753
+ children?: ReactNode;
754
+ }
755
+
756
+ export declare type FileUploadSize = 'small' | 'medium' | 'large';
757
+
758
+ /**
759
+ * KRDS Footer Component
760
+ * @param quickLinks 퀵 링크 목록
761
+ * @param address 주소
762
+ * @param contacts 연락처 목록
763
+ * @param logo 메인 로고 설정
764
+ * @param links 링크 목록
765
+ * @param socialLinks 소셜 미디어 링크 목록
766
+ * @param bottomLinks 하단 링크 목록
767
+ * @param copyright 저작권 텍스트
768
+ * @param identifierText 식별자 텍스트 (하위 호환성)
769
+ * @param identifier 식별자 설정 (identifierText보다 우선)
770
+ * @param defaultLinkTarget 모든 링크의 기본 타겟 설정
771
+ * @param hideQuickLinks 퀵 링크 섹션 숨김 여부
772
+ * @param hideIdentifier 식별자 섹션 숨김 여부
773
+ */
774
+ export declare const Footer: ForwardRefExoticComponent<Omit<FooterProps, "ref"> & RefAttributes<HTMLElement>>;
775
+
776
+ export declare interface FooterBottomLink extends FooterLinkBase {
777
+ text: string;
778
+ isHighlighted?: boolean;
779
+ }
780
+
781
+ declare interface FooterContact {
782
+ title: string;
783
+ description: string;
784
+ }
785
+
786
+ declare interface FooterIdentifier {
787
+ logo?: FooterLogo;
788
+ text: string;
789
+ }
790
+
791
+ export declare interface FooterLink extends FooterLinkBase {
792
+ text: string;
793
+ }
794
+
795
+ declare interface FooterLinkBase {
796
+ href: string;
797
+ target?: '_blank' | '_self' | '_parent' | '_top';
798
+ rel?: string;
799
+ }
800
+
801
+ declare interface FooterLogo {
802
+ src?: string;
803
+ alt: string;
804
+ width?: number | string;
805
+ height?: number | string;
806
+ href?: string;
807
+ target?: '_blank' | '_self' | '_parent' | '_top';
808
+ }
809
+
810
+ export declare interface FooterProps extends Omit<ComponentPropsWithRef<'footer'>, 'children'> {
811
+ quickLinks?: FooterQuickLink[];
812
+ address?: string;
813
+ contacts?: FooterContact[];
814
+ links?: FooterLink[];
815
+ socialLinks?: FooterSocialLink[];
816
+ bottomLinks?: FooterBottomLink[];
817
+ logo?: FooterLogo;
818
+ copyright?: string;
819
+ identifierText?: string;
820
+ identifier?: FooterIdentifier;
821
+ defaultLinkTarget?: '_blank' | '_self';
822
+ hideQuickLinks?: boolean;
823
+ hideIdentifier?: boolean;
824
+ }
825
+
826
+ export declare interface FooterQuickLink {
827
+ title: string;
828
+ onClick?: () => void;
829
+ }
830
+
831
+ export declare interface FooterSocialLink extends FooterLinkBase {
832
+ platform: string;
833
+ icon?: ReactNode;
834
+ label?: string;
835
+ }
836
+
837
+ export declare const Header: typeof HeaderComponent & HeaderComponentSubmodules;
838
+
839
+ export declare interface HeaderBrandingProps extends ComponentPropsWithoutRef<'div'> {
840
+ /** 로고 링크 URL */
841
+ logoHref?: string;
842
+ /** 로고 클릭 핸들러 */
843
+ onLogoClick?: () => void;
844
+ /** 로고 이미지 대체 텍스트 */
845
+ logoAltText?: string;
846
+ /** 자식 컴포넌트들 (주로 Navi) */
847
+ children?: ReactNode;
848
+ }
849
+
850
+ declare const HeaderComponent: ForwardRefExoticComponent<Omit<HeaderProps, "ref"> & RefAttributes<HTMLElement>>;
851
+
852
+ declare interface HeaderComponentSubmodules {
853
+ Container: ForwardRefExoticComponent<ComponentPropsWithoutRef<'div'> & RefAttributes<HTMLDivElement>>;
854
+ Utilities: ComponentType<HeaderUtilitiesProps>;
855
+ Utility: ForwardRefExoticComponent<HeaderUtilityProps & RefAttributes<HTMLLIElement>> & {
856
+ Dropdown: ComponentType<HeaderUtilityDropdownProps>;
857
+ DropdownItem: ComponentType<DropdownItemProps>;
858
+ };
859
+ Branding: ComponentType<HeaderBrandingProps>;
860
+ Navi: ComponentType<HeaderNaviProps>;
861
+ NaviButton: {
862
+ Search: ForwardRefExoticComponent<HeaderNaviButtonSearchProps & RefAttributes<HTMLButtonElement>>;
863
+ Login: ForwardRefExoticComponent<HeaderNaviButtonLoginProps & RefAttributes<HTMLAnchorElement | HTMLButtonElement>>;
864
+ Join: ForwardRefExoticComponent<HeaderNaviButtonJoinProps & RefAttributes<HTMLButtonElement>>;
865
+ MyGov: ForwardRefExoticComponent<HeaderMyGovProps & RefAttributes<HTMLButtonElement>>;
866
+ Logout: ForwardRefExoticComponent<HeaderNaviButtonLogoutProps & RefAttributes<HTMLButtonElement>>;
867
+ };
868
+ MainMenu: ForwardRefExoticComponent<HeaderMainMenuProps & RefAttributes<HTMLElement>>;
869
+ }
870
+
871
+ export declare interface HeaderMainMenuProps extends Omit<MainMenuProps, 'mobileTrigger' | 'mobileTriggerPortalId' | 'desktopPortalId' | 'mobilePortalId' | 'mobileTriggerContainerElement'> {
872
+ /** 커스텀 모바일 트리거 */
873
+ mobileTrigger?: ReactNode;
874
+ /** 모바일 트리거 props */
875
+ mobileTriggerProps?: MobileTriggerProps;
876
+ /** 전체 메뉴 버튼 레이블 */
877
+ allMenuButtonLabel?: string;
878
+ }
879
+
880
+ export declare type HeaderMyGovMenuItem = (HeaderMyGovMenuItemBase & {
881
+ href: string;
882
+ } & Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'children' | 'className' | 'href'>) | (HeaderMyGovMenuItemBase & {
883
+ href?: undefined;
884
+ } & Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'className'>);
885
+
886
+ declare type HeaderMyGovMenuItemBase = {
887
+ key?: Key;
888
+ label: ReactNode;
889
+ className?: string;
890
+ };
891
+
892
+ export declare interface HeaderMyGovProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'className' | 'name'> {
893
+ /** 마이GOV 버튼 레이블 */
894
+ label?: ReactNode;
895
+ /** 사용자 이름 */
896
+ name: ReactNode;
897
+ /** 남은 시간 표시 (예: "29:30") */
898
+ remainingTime?: ReactNode;
899
+ /** 남은 시간 레이블 */
900
+ remainingTimeLabel?: ReactNode;
901
+ /** 시간 연장 버튼 레이블 */
902
+ extendTimeLabel?: ReactNode;
903
+ /** 시간 연장 버튼 클릭 핸들러 */
904
+ onExtendTime?: () => void;
905
+ /** 드롭다운 메뉴 아이템들 */
906
+ items?: HeaderMyGovMenuItem[];
907
+ /** 컨테이너 커스텀 클래스 */
908
+ className?: string;
909
+ /** 버튼 커스텀 클래스 */
910
+ buttonClassName?: string;
911
+ /** 드롭다운 고유 ID */
912
+ dropdownId?: string;
913
+ }
914
+
915
+ export declare type HeaderNaviButtonJoinProps = ButtonHTMLAttributes<HTMLButtonElement> & {
916
+ /** 회원가입 버튼 레이블 */
917
+ label?: ReactNode;
918
+ };
919
+
920
+ export declare type HeaderNaviButtonLoginProps = ({
921
+ /** 로그인 링크 URL (지정 시 <a> 태그로 렌더링) */
922
+ href: string;
923
+ /** 로그인 버튼 레이블 */
924
+ label?: ReactNode;
925
+ } & AnchorHTMLAttributes<HTMLAnchorElement>) | ({
926
+ href?: undefined;
927
+ /** 로그인 버튼 레이블 */
928
+ label?: ReactNode;
929
+ } & ButtonHTMLAttributes<HTMLButtonElement>);
930
+
931
+ export declare interface HeaderNaviButtonLogoutProps extends ButtonHTMLAttributes<HTMLButtonElement> {
932
+ /** 로그아웃 버튼 내용 */
933
+ children?: ReactNode;
934
+ }
935
+
936
+ export declare interface HeaderNaviButtonSearchProps extends Omit<ComponentPropsWithoutRef<'button'>, 'children'> {
937
+ /** 검색 버튼 레이블 */
938
+ label?: ReactNode;
939
+ /** 검색 버튼 title 속성 */
940
+ title?: string;
941
+ }
942
+
943
+ export declare interface HeaderNaviProps extends ComponentPropsWithoutRef<'div'> {
944
+ /** NaviButton 컴포넌트들 */
945
+ children?: ReactNode;
946
+ }
947
+
948
+ export declare interface HeaderProps extends ComponentPropsWithRef<'header'> {
949
+ /** 자식 컴포넌트들 */
950
+ children?: ReactNode;
951
+ /** 모바일 메뉴 트리거 Portal ID */
952
+ mobileMenuTriggerPortalId?: string;
953
+ /** 데스크톱 메뉴 Portal ID */
954
+ desktopMenuPortalId?: string;
955
+ /** 모바일 메뉴 Portal ID */
956
+ mobileMenuPortalId?: string;
957
+ }
958
+
959
+ export declare type HeaderUtilitiesProps = ComponentPropsWithoutRef<'div'> & {
960
+ /** 유틸리티 아이템들 */
961
+ children?: ReactNode;
962
+ };
963
+
964
+ export declare interface HeaderUtilityDropdownProps extends Omit<DropdownProps, 'buttonText' | 'children' | 'className'> {
965
+ /** 드롭다운 고유 ID */
966
+ id?: string;
967
+ /** 드롭다운 버튼 레이블 */
968
+ label?: ReactNode;
969
+ /** 드롭다운 버튼 텍스트 (label 별칭) */
970
+ buttonText?: ReactNode;
971
+ /** 드롭다운 아이템들 */
972
+ children: ReactNode;
973
+ /** 드롭다운 컨테이너 커스텀 클래스 */
974
+ dropdownClassName?: string;
975
+ /** 드롭다운 아이템 커스텀 클래스 */
976
+ itemClassName?: string;
977
+ }
978
+
979
+ export declare interface HeaderUtilityProps extends ComponentPropsWithoutRef<'li'> {
980
+ /** 자식 컴포넌트 */
981
+ children?: ReactNode;
982
+ }
983
+
984
+ export declare interface HelpContent {
985
+ title: string;
986
+ description?: ReactNode;
987
+ links?: HelpLink[];
988
+ }
989
+
990
+ export declare interface HelpLink {
991
+ label: string;
992
+ href: string;
993
+ icon?: string;
994
+ iconPosition?: 'left' | 'right';
995
+ external?: boolean;
996
+ }
997
+
998
+ /**
999
+ * KRDS HelpPanel Component
1000
+ * @param isOpen 도움말 패널 열림 상태
1001
+ * @param defaultOpen 비제어 상태에서 사용할 초기 열림 상태
1002
+ * @param onOpenChange 도움말 패널 열림/닫힘 상태 변경 핸들러
1003
+ * @param className 사용자 정의 클래스명
1004
+ */
1005
+ export declare const HelpPanel: default_2.ForwardRefExoticComponent<HelpPanelProps & default_2.RefAttributes<HTMLDivElement>>;
1006
+
1007
+ export declare interface HelpPanelCloseProps extends HTMLAttributes<HTMLButtonElement> {
1008
+ /** 닫기 버튼 텍스트 */
1009
+ children?: React.ReactNode;
1010
+ }
1011
+
1012
+ export declare interface HelpPanelContentProps extends HTMLAttributes<HTMLDivElement> {
1013
+ /** 도움말 패널 내용 */
1014
+ children?: React.ReactNode;
1015
+ /** 스크린 리더 전용 제목 */
1016
+ srOnlyTitle?: string;
1017
+ }
1018
+
1019
+ export declare interface HelpPanelProps extends HTMLAttributes<HTMLDivElement> {
1020
+ /** 도움말 패널 열림 상태 */
1021
+ isOpen?: boolean;
1022
+ /** 비제어 상태에서 사용할 초기 열림 상태 */
1023
+ defaultOpen?: boolean;
1024
+ /** 도움말 패널 열림/닫힘 상태 변경 핸들러 */
1025
+ onOpenChange?: (isOpen: boolean) => void;
1026
+ /** 도움말 패널 내용 */
1027
+ children?: React.ReactNode;
1028
+ }
1029
+
1030
+ export declare interface HelpPanelTriggerProps extends HTMLAttributes<HTMLButtonElement> {
1031
+ /** 트리거 버튼 텍스트 */
1032
+ children?: React.ReactNode;
1033
+ }
1034
+
1035
+ /**
1036
+ * KRDS Identifier 컴포넌트
1037
+ * @param logoAlt 로고 alt 텍스트
1038
+ * @param text 식별자 텍스트
1039
+ * @param className 추가 커스텀 클래스
1040
+ */
1041
+ export declare const Identifier: ForwardRefExoticComponent<IdentifierProps & RefAttributes<HTMLDivElement>>;
1042
+
1043
+ export declare interface IdentifierProps extends HTMLAttributes<HTMLDivElement> {
1044
+ /** 로고 alt 텍스트 */
1045
+ logoAlt?: string;
1046
+ /** 식별자 텍스트 */
1047
+ text?: string;
1048
+ }
1049
+
1050
+ /**
1051
+ * KRDS InPageNavigation Component
1052
+ * @param caption 페이지 구성 설명 텍스트
1053
+ * @param title 페이지 제목
1054
+ * @param items 네비게이션 아이템 목록
1055
+ * @param actionText 액션 버튼 텍스트
1056
+ * @param onActionClick 액션 버튼 클릭 핸들러
1057
+ * @param infoText 추가 정보 텍스트 (HTML 태그 지원)
1058
+ * @param scrollDown 스크롤 시 상단 위치 조정 여부
1059
+ * @param scrollContainerRef 스크롤 컨테이너 참조
1060
+ */
1061
+ export declare const InPageNavigation: ForwardRefExoticComponent<Omit<InPageNavigationProps, "ref"> & RefAttributes<HTMLDivElement>>;
1062
+
1063
+ export declare interface InPageNavigationProps extends ComponentPropsWithRef<'div'> {
1064
+ /** 페이지 구성 설명 텍스트 */
1065
+ caption?: string;
1066
+ /** 페이지 제목 */
1067
+ title?: string;
1068
+ /** 네비게이션 아이템 목록 */
1069
+ items?: NavigationItem[];
1070
+ /** 액션 버튼 텍스트 */
1071
+ actionText?: string;
1072
+ /** 액션 버튼 클릭 핸들러 */
1073
+ onActionClick?: () => void;
1074
+ /** 추가 정보 텍스트 (HTML 태그 지원) */
1075
+ infoText?: ReactNode;
1076
+ /** 스크롤 시 상단 위치 조정 여부 */
1077
+ scrollDown?: boolean;
1078
+ /** 스크롤 컨테이너 참조 */
1079
+ scrollContainerRef?: React.RefObject<HTMLElement | null>;
1080
+ }
1081
+
1082
+ export declare interface LanguageOption {
1083
+ value: string;
1084
+ label: string;
1085
+ external?: boolean;
1086
+ href?: string;
1087
+ }
1088
+
1089
+ export declare const LanguageSwitcher: default_2.ForwardRefExoticComponent<LanguageSwitcherProps & default_2.RefAttributes<HTMLDivElement>> & {
1090
+ Root: default_2.ForwardRefExoticComponent<LanguageSwitcherProps & default_2.RefAttributes<HTMLDivElement>>;
1091
+ Trigger: default_2.ForwardRefExoticComponent<{
1092
+ label?: string;
1093
+ className?: string;
1094
+ } & default_2.RefAttributes<HTMLButtonElement>>;
1095
+ Menu: default_2.ForwardRefExoticComponent<LanguageSwitcherMenuProps & default_2.RefAttributes<HTMLDivElement>>;
1096
+ Current: ({ label, className }: LanguageSwitcherCurrentProps) => default_2.JSX.Element;
1097
+ OptionList: ({ className, ...props }: LanguageSwitcherOptionListProps) => default_2.JSX.Element;
1098
+ OptionItem: ({ value, label, href, external, className, ...props }: LanguageSwitcherOptionItemProps) => default_2.JSX.Element;
1099
+ };
1100
+
1101
+ declare type LanguageSwitcherCurrentProps = HTMLAttributes<HTMLDivElement> & {
1102
+ label?: string;
1103
+ };
1104
+
1105
+ declare type LanguageSwitcherMenuProps = HTMLAttributes<HTMLDivElement>;
1106
+
1107
+ declare type LanguageSwitcherOptionItemProps = HTMLAttributes<HTMLLIElement> & {
1108
+ value: string;
1109
+ label: string;
1110
+ href?: string;
1111
+ external?: boolean;
1112
+ };
1113
+
1114
+ declare type LanguageSwitcherOptionListProps = HTMLAttributes<HTMLUListElement>;
1115
+
1116
+ export declare interface LanguageSwitcherProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
1117
+ value?: string;
1118
+ defaultValue?: string;
1119
+ onChange?: (value: string, option: LanguageOption) => void;
1120
+ options?: LanguageOption[];
1121
+ className?: string;
1122
+ open?: boolean;
1123
+ defaultOpen?: boolean;
1124
+ onOpenChange?: (open: boolean) => void;
1125
+ closeOnClickOutside?: boolean;
1126
+ }
1127
+
1128
+ /**
1129
+ * KRDS Link 컴포넌트
1130
+ * @param variant 링크 스타일 타입 ('default' | 'basic')
1131
+ * @param underline 밑줄 표시 여부 ('always' | 'hover' | 'none')
1132
+ * @param preserveColorOnHover hover 시 컬러 유지 여부
1133
+ * @param icon 외부 링크 아이콘 또는 커스텀 아이콘
1134
+ * @param external 외부 링크 여부
1135
+ * @param size 링크 크기 ('xsmall' | 'small' | 'medium' | 'large' | 'xlarge')
1136
+ * @param disabled 비활성화 여부
1137
+ * @param children 링크 텍스트 내용
1138
+ * @param className 사용자 정의 클래스명
1139
+ */
1140
+ export declare const Link: ForwardRefExoticComponent<LinkProps & RefAttributes<HTMLAnchorElement>>;
1141
+
1142
+ declare interface LinkProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'size'> {
1143
+ /** 링크 스타일 타입 ('default' | 'basic') */
1144
+ variant?: LinkVariant;
1145
+ /** 밑줄 표시 여부 ('always' | 'hover' | 'none') */
1146
+ underline?: LinkUnderline;
1147
+ /** hover 시 컬러 유지 여부 (pure 클래스) */
1148
+ preserveColorOnHover?: boolean;
1149
+ /** 외부 링크 아이콘 또는 커스텀 아이콘 */
1150
+ icon?: ReactNode;
1151
+ /** 외부 링크 여부 (rel, target 자동 설정) */
1152
+ external?: boolean;
1153
+ /** 링크 크기 ('xsmall' | 'small' | 'medium' | 'large' | 'xlarge') */
1154
+ size?: LinkSize;
1155
+ /** 비활성화 여부 */
1156
+ disabled?: boolean;
1157
+ /** 링크 텍스트 내용 */
1158
+ children?: ReactNode;
1159
+ /** 사용자 정의 클래스명 */
1160
+ className?: string;
1161
+ }
1162
+
1163
+ declare type LinkSize = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';
1164
+
1165
+ declare interface LinkTagProps extends BaseTagProps, Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'children'> {
1166
+ /** 태그 타입 */
1167
+ variant: 'link';
1168
+ /** 링크 URL */
1169
+ href: string;
1170
+ }
1171
+
1172
+ declare type LinkUnderline = 'always' | 'hover' | 'none';
1173
+
1174
+ declare type LinkVariant = 'default' | 'basic' | 'unstyled';
1175
+
1176
+ declare interface MainMenuBaseProps {
1177
+ desktop: DesktopMenuConfig;
1178
+ mobile: MobileMenuConfig;
1179
+ mobileTrigger?: ReactNode;
1180
+ onMobileMenuOpen?: () => void;
1181
+ onMobileMenuClose?: () => void;
1182
+ desktopPortalId?: string;
1183
+ mobilePortalId?: string;
1184
+ }
1185
+
1186
+ declare type MainMenuProps = MainMenuBaseProps & ({
1187
+ mobileTriggerPortalId: string;
1188
+ mobileTriggerContainerElement?: never;
1189
+ } | {
1190
+ mobileTriggerPortalId?: never;
1191
+ mobileTriggerContainerElement: HTMLElement;
1192
+ });
1193
+
1194
+ /**
1195
+ * KRDS Masthead Component
1196
+ * @param text 배너 텍스트
1197
+ * @param className 커스텀 클래스명
1198
+ */
1199
+ export declare const Masthead: ForwardRefExoticComponent<MastheadProps & RefAttributes<HTMLDivElement>>;
1200
+
1201
+ export declare interface MastheadProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
1202
+ text: string;
1203
+ className?: string;
1204
+ }
1205
+
1206
+ declare type MobileDepth3Item = MobileDepth3Link | MobileDepth4;
1207
+
1208
+ declare interface MobileDepth3Link {
1209
+ type: 'link';
1210
+ id?: string;
1211
+ label: string;
1212
+ href: string;
1213
+ isExternal?: boolean;
1214
+ }
1215
+
1216
+ declare interface MobileDepth4 {
1217
+ type: 'depth4';
1218
+ id?: string;
1219
+ label: string;
1220
+ title: string;
1221
+ items: Array<{
1222
+ id?: string;
1223
+ label: string;
1224
+ href: string;
1225
+ isExternal?: boolean;
1226
+ }>;
1227
+ }
1228
+
1229
+ declare interface MobileLinkItem {
1230
+ id?: string;
1231
+ label: string;
1232
+ href: string;
1233
+ isExternal?: boolean;
1234
+ onClick?: () => void;
1235
+ }
1236
+
1237
+ declare interface MobileMainItem {
1238
+ id?: string;
1239
+ label: string;
1240
+ panels: MobilePanel[];
1241
+ }
1242
+
1243
+ declare interface MobileMenuConfig {
1244
+ id?: string;
1245
+ header?: {
1246
+ utilities?: MobileUtilityItem[];
1247
+ login?: {
1248
+ isLoggedIn: boolean;
1249
+ userName?: string;
1250
+ loginText?: string;
1251
+ logoutText?: string;
1252
+ onLogin?: () => void;
1253
+ onLogout?: () => void;
1254
+ };
1255
+ services?: MobileLinkItem[];
1256
+ search?: {
1257
+ placeholder?: string;
1258
+ onSearch?: (query: string) => void;
1259
+ };
1260
+ };
1261
+ body: {
1262
+ mainItems: MobileMainItem[];
1263
+ };
1264
+ bottomLinks?: MobileLinkItem[];
1265
+ }
1266
+
1267
+ declare interface MobilePanel {
1268
+ id?: string;
1269
+ label: string;
1270
+ items: MobilePanelItem[];
1271
+ }
1272
+
1273
+ declare interface MobilePanelDepth3 {
1274
+ type: 'depth3';
1275
+ id?: string;
1276
+ label: string;
1277
+ items: Array<MobileDepth3Item>;
1278
+ }
1279
+
1280
+ declare type MobilePanelItem = MobilePanelLink | MobilePanelDepth3;
1281
+
1282
+ declare interface MobilePanelLink {
1283
+ type: 'link';
1284
+ id?: string;
1285
+ label: string;
1286
+ href: string;
1287
+ isExternal?: boolean;
1288
+ }
1289
+
1290
+ declare interface MobileTriggerProps extends ButtonHTMLAttributes<HTMLButtonElement> {
1291
+ label?: string;
1292
+ icon?: ReactNode;
1293
+ }
1294
+
1295
+ declare interface MobileUtilityItem {
1296
+ id?: string;
1297
+ label: string;
1298
+ href?: string;
1299
+ onClick?: () => void;
1300
+ }
1301
+
1302
+ export declare const Modal: {
1303
+ ({ children, size, variant, open, defaultOpen, onOpenChange, closeOnEsc, closeOnOverlayClick, usePortal, portalContainer }: ModalRootProps): default_2.JSX.Element;
1304
+ displayName: string;
1305
+ } & {
1306
+ Root: {
1307
+ ({ children, size, variant, open, defaultOpen, onOpenChange, closeOnEsc, closeOnOverlayClick, usePortal, portalContainer }: ModalRootProps): default_2.JSX.Element;
1308
+ displayName: string;
1309
+ };
1310
+ Trigger: default_2.ForwardRefExoticComponent<Omit<ModalTriggerProps, "ref"> & default_2.RefAttributes<HTMLButtonElement>>;
1311
+ Content: default_2.ForwardRefExoticComponent<Omit<default_2.DetailedHTMLProps<default_2.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & default_2.RefAttributes<HTMLDivElement>>;
1312
+ Header: default_2.ForwardRefExoticComponent<Omit<ModalHeaderProps, "ref"> & default_2.RefAttributes<HTMLDivElement>>;
1313
+ Title: default_2.ForwardRefExoticComponent<Omit<default_2.DetailedHTMLProps<default_2.HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, "ref"> & default_2.RefAttributes<HTMLHeadingElement>>;
1314
+ Description: default_2.ForwardRefExoticComponent<Omit<default_2.DetailedHTMLProps<default_2.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref"> & default_2.RefAttributes<HTMLParagraphElement>>;
1315
+ Body: default_2.ForwardRefExoticComponent<Omit<ModalBodyProps, "ref"> & default_2.RefAttributes<HTMLDivElement>>;
1316
+ Footer: default_2.ForwardRefExoticComponent<Omit<default_2.DetailedHTMLProps<default_2.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & default_2.RefAttributes<HTMLDivElement>>;
1317
+ Close: default_2.ForwardRefExoticComponent<Omit<ModalCloseProps, "ref"> & default_2.RefAttributes<HTMLButtonElement>>;
1318
+ };
1319
+
1320
+ export declare type ModalBodyProps = default_2.ComponentProps<'div'> & {
1321
+ descriptionId?: string;
1322
+ };
1323
+
1324
+ export declare type ModalCloseProps = default_2.ComponentProps<'button'> & {
1325
+ asChild?: boolean;
1326
+ };
1327
+
1328
+ export declare type ModalContentProps = default_2.ComponentProps<'div'>;
1329
+
1330
+ export declare type ModalFooterProps = default_2.ComponentProps<'div'>;
1331
+
1332
+ export declare type ModalHeaderProps = default_2.ComponentProps<'div'> & {
1333
+ title?: default_2.ReactNode;
1334
+ titleId?: string;
1335
+ };
1336
+
1337
+ export declare type ModalOverlayProps = default_2.ComponentProps<'div'>;
1338
+
1339
+ export declare interface ModalRootProps extends PropsWithChildren {
1340
+ open?: boolean;
1341
+ defaultOpen?: boolean;
1342
+ onOpenChange?: (open: boolean) => void;
1343
+ size?: ModalSize;
1344
+ variant?: ModalVariant;
1345
+ closeOnEsc?: boolean;
1346
+ closeOnOverlayClick?: boolean;
1347
+ usePortal?: boolean;
1348
+ portalContainer?: string | HTMLElement;
1349
+ }
1350
+
1351
+ export declare type ModalSize = 'sm' | 'md' | 'lg';
1352
+
1353
+ export declare type ModalTriggerProps = default_2.ComponentProps<'button'> & {
1354
+ asChild?: boolean;
1355
+ };
1356
+
1357
+ export declare type ModalVariant = 'default' | 'bottom-sheet';
1358
+
1359
+ export declare interface NavigationItem {
1360
+ /** 네비게이션 링크의 href */
1361
+ href: string;
1362
+ /** 네비게이션 링크 텍스트 */
1363
+ label: string;
1364
+ /** 현재 활성화된 링크 여부 */
1365
+ active?: boolean;
1366
+ }
1367
+
1368
+ /**
1369
+ * KRDS Pagination Component
1370
+ * @param totalPages 전체 페이지 수
1371
+ * @param currentPage 현재 페이지 (제어)
1372
+ * @param defaultPage 초기 페이지 (비제어)
1373
+ * @param onChange 페이지 변경 핸들러
1374
+ * @param prevLabel 이전 버튼 레이블
1375
+ * @param nextLabel 다음 버튼 레이블
1376
+ * @param boundaryCount 경계 영역에 표시할 페이지 수 (0-3)
1377
+ * @param siblingCount 현재 주변 표시 페이지 수 (0-3)
1378
+ * @param disabled 비활성 상태
1379
+ * @param className 커스텀 클래스명
1380
+ */
1381
+ export declare const Pagination: default_2.FC<PaginationProps>;
1382
+
1383
+ export declare interface PaginationProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
1384
+ /** 전체 페이지 수 */
1385
+ totalPages: number;
1386
+ /** 현재 페이지 (제어 상태) */
1387
+ currentPage?: number;
1388
+ /** 초기 페이지 (비제어 상태) */
1389
+ defaultPage?: number;
1390
+ /** 페이지 변경 핸들러 */
1391
+ onChange?: (page: number) => void;
1392
+ /** 이전 버튼 레이블 */
1393
+ prevLabel?: string;
1394
+ /** 다음 버튼 레이블 */
1395
+ nextLabel?: string;
1396
+ /** 경계 영역에 항상 표시할 페이지 수 (앞/뒤) */
1397
+ boundaryCount?: 0 | 1 | 2 | 3;
1398
+ /** 현재 페이지 주변에 표시할 형제 페이지 수 */
1399
+ siblingCount?: 0 | 1 | 2 | 3;
1400
+ /** 비활성 상태 */
1401
+ disabled?: boolean;
1402
+ /** 커스텀 클래스명 */
1403
+ className?: string;
1404
+ }
1405
+
1406
+ declare type PolymorphicButtonComponent = <T extends ElementType = 'button'>(props: ButtonProps<T> & {
1407
+ ref?: PolymorphicRef<T>;
1408
+ }) => default_2.ReactElement | null;
1409
+
1410
+ declare type PolymorphicRef<T extends ElementType> = ComponentPropsWithRef<T>['ref'];
1411
+
1412
+ /**
1413
+ * KRDS Radio 컴포넌트
1414
+ * @param value 라디오 버튼의 값 (RadioGroup 내에서 사용)
1415
+ * @param checked 선택 상태 (controlled mode)
1416
+ * @param defaultChecked 초기 선택 상태 (uncontrolled mode)
1417
+ * @param disabled 비활성화 여부
1418
+ * @param size 라디오 버튼 크기 ('medium' | 'large')
1419
+ * @param description 부가적인 설명 텍스트
1420
+ * @param onChange 값 변경 시 호출되는 콜백
1421
+ * @param className 추가 커스텀 클래스
1422
+ */
1423
+ export declare const Radio: default_2.ForwardRefExoticComponent<RadioProps & default_2.RefAttributes<HTMLInputElement>>;
1424
+
1425
+ /**
1426
+ * KRDS RadioChip 컴포넌트
1427
+ * @param value 라디오 칩의 값 (RadioGroup 내에서 사용)
1428
+ * @param checked 선택 상태 (controlled mode)
1429
+ * @param defaultChecked 초기 선택 상태 (uncontrolled mode)
1430
+ * @param disabled 비활성화 여부
1431
+ * @param size 라디오 칩 크기 ('small' | 'medium' | 'large')
1432
+ * @param onChange 값 변경 시 호출되는 콜백
1433
+ * @param className 추가 커스텀 클래스
1434
+ */
1435
+ export declare const RadioChip: default_2.ForwardRefExoticComponent<RadioChipProps & default_2.RefAttributes<HTMLInputElement>>;
1436
+
1437
+ export declare interface RadioChipProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'defaultValue' | 'defaultChecked'> {
1438
+ /** 라디오 칩 크기 */
1439
+ size?: RadioChipSize;
1440
+ /** 비제어 상태에서 사용할 초기 체크 상태 */
1441
+ defaultChecked?: boolean;
1442
+ }
1443
+
1444
+ declare type RadioChipSize = 'small' | 'medium' | 'large';
1445
+
1446
+ /**
1447
+ * KRDS RadioGroup 컴포넌트
1448
+ * @param value 라디오 그룹의 값 (controlled mode)
1449
+ * @param defaultValue 초기 값 (uncontrolled mode)
1450
+ * @param onChange 값 변경 시 호출되는 콜백
1451
+ * @param name 라디오 그룹의 이름
1452
+ * @param children Radio 또는 RadioChip 컴포넌트들
1453
+ * @param className 추가 커스텀 클래스
1454
+ * @param column 세로 배치 여부
1455
+ */
1456
+ export declare const RadioGroup: default_2.FC<RadioGroupProps>;
1457
+
1458
+ export declare interface RadioGroupProps {
1459
+ /** 라디오 그룹의 값 (controlled mode) */
1460
+ value?: string;
1461
+ /** 초기 값 (uncontrolled mode) */
1462
+ defaultValue?: string;
1463
+ /** 값이 변경될 때 호출되는 콜백 */
1464
+ onChange?: (value: string) => void;
1465
+ /** 라디오 그룹의 이름 (name 속성) */
1466
+ name: string;
1467
+ /** 자식 요소들 */
1468
+ children: ReactNode;
1469
+ /** 추가 CSS 클래스 */
1470
+ className?: string;
1471
+ /** 세로 배치 여부 */
1472
+ column?: boolean;
1473
+ }
1474
+
1475
+ export declare interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'defaultChecked'> {
1476
+ /** 라디오 버튼 크기 */
1477
+ size?: RadioSize;
1478
+ /** 추가 설명 텍스트 */
1479
+ description?: string;
1480
+ /** 비제어 상태에서 사용할 초기 체크 상태 */
1481
+ defaultChecked?: boolean;
1482
+ }
1483
+
1484
+ declare type RadioSize = 'medium' | 'large';
1485
+
1486
+ /**
1487
+ * KRDS Resize Component
1488
+ * @param value 현재 선택된 크기 ('sm' | 'md' | 'lg' | 'xlg' | 'xxlg')
1489
+ * @param defaultValue 기본 선택된 크기
1490
+ * @param onChange 크기 변경 시 호출되는 콜백 함수
1491
+ * @param buttonText 드롭다운 버튼 텍스트
1492
+ * @param resetText 초기화 버튼 텍스트
1493
+ * @param labels 각 크기 옵션의 라벨
1494
+ * @param className 사용자 정의 클래스명
1495
+ */
1496
+ export declare const Resize: default_2.ForwardRefExoticComponent<ResizeProps & default_2.RefAttributes<HTMLButtonElement>>;
1497
+
1498
+ declare interface ResizeProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onClick' | 'onChange'> {
1499
+ /**
1500
+ * 현재 선택된 크기
1501
+ */
1502
+ value?: ResizeScale;
1503
+ /**
1504
+ * 기본 선택된 크기
1505
+ */
1506
+ defaultValue?: ResizeScale;
1507
+ /**
1508
+ * 크기 변경 시 호출되는 콜백 함수
1509
+ */
1510
+ onChange?: (scale: ResizeScale) => void;
1511
+ /**
1512
+ * 드롭다운 버튼 텍스트
1513
+ */
1514
+ buttonText?: string;
1515
+ /**
1516
+ * 초기화 버튼 텍스트
1517
+ */
1518
+ resetText?: string;
1519
+ /**
1520
+ * 각 크기 옵션의 라벨
1521
+ */
1522
+ labels?: {
1523
+ sm: string;
1524
+ md: string;
1525
+ lg: string;
1526
+ xlg: string;
1527
+ xxlg: string;
1528
+ };
1529
+ /**
1530
+ * 사용자 정의 클래스명
1531
+ */
1532
+ className?: string;
1533
+ }
1534
+
1535
+ declare type ResizeScale = 'sm' | 'md' | 'lg' | 'xlg' | 'xxlg';
1536
+
1537
+ export declare const Select: default_2.FC<SelectProps>;
1538
+
1539
+ declare interface SelectOption {
1540
+ value: string;
1541
+ label: string;
1542
+ }
1543
+
1544
+ export declare interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, 'size' | 'onChange'> {
1545
+ /** 제어 상태일 때 선택된 값 */
1546
+ value?: string;
1547
+ /** 비제어 상태일 때의 초기 선택 값 */
1548
+ defaultValue?: string;
1549
+ /** 선택 값이 변경될 때 호출되는 콜백 */
1550
+ onChange?: (value: string) => void;
1551
+ /** 선택 옵션들 */
1552
+ options: SelectOption[];
1553
+ /** 레이블 */
1554
+ label?: string;
1555
+ /** 도움말 텍스트 */
1556
+ hint?: string;
1557
+ /** 에러 메시지 */
1558
+ error?: string;
1559
+ /** Select 크기 */
1560
+ size?: SelectSize;
1561
+ /** Select 변형 */
1562
+ variant?: SelectVariant;
1563
+ }
1564
+
1565
+ declare type SelectSize = 'small' | 'medium' | 'large';
1566
+
1567
+ declare type SelectVariant = 'default' | 'sorting';
1568
+
1569
+ export declare const SideNavigation: ForwardRefExoticComponent<SideNavigationProps & RefAttributes<HTMLElement>> & {
1570
+ Title: ForwardRefExoticComponent<SideNavigationTitleProps & RefAttributes<HTMLHeadingElement>>;
1571
+ Menu: ForwardRefExoticComponent<SideNavigationMenuProps & RefAttributes<HTMLUListElement>>;
1572
+ Item: ForwardRefExoticComponent<SideNavigationItemProps & RefAttributes<HTMLLIElement>>;
1573
+ SubItem: ForwardRefExoticComponent<SideNavigationSubItemProps & RefAttributes<HTMLLIElement>>;
1574
+ Toggle: ForwardRefExoticComponent<SideNavigationToggleProps & RefAttributes<HTMLButtonElement>>;
1575
+ SubMenu: ForwardRefExoticComponent<SideNavigationSubMenuProps & RefAttributes<HTMLDivElement>>;
1576
+ Link: ForwardRefExoticComponent<SideNavigationLinkProps & RefAttributes<HTMLAnchorElement>>;
1577
+ PopupToggle: ForwardRefExoticComponent<SideNavigationPopupToggleProps & RefAttributes<HTMLButtonElement>>;
1578
+ Popup: ForwardRefExoticComponent<SideNavigationPopupProps & RefAttributes<HTMLDivElement>>;
1579
+ PopupTitle: ForwardRefExoticComponent<SideNavigationPopupTitleProps & RefAttributes<HTMLButtonElement>>;
1580
+ PopupMenu: ForwardRefExoticComponent<SideNavigationPopupMenuProps & RefAttributes<HTMLUListElement>>;
1581
+ };
1582
+
1583
+ export declare interface SideNavigationItemProps extends HTMLAttributes<HTMLLIElement> {
1584
+ /** 자식 요소들 (버튼, 링크, 서브메뉴 등) */
1585
+ children: React.ReactNode;
1586
+ /** 활성화 상태 */
1587
+ active?: boolean;
1588
+ /** 추가 CSS 클래스 */
1589
+ className?: string;
1590
+ }
1591
+
1592
+ export declare interface SideNavigationLinkProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'onClick'> {
1593
+ /** 링크 텍스트 */
1594
+ children: React.ReactNode;
1595
+ /** 링크 URL */
1596
+ href?: string;
1597
+ /** 현재 페이지 여부 */
1598
+ current?: boolean;
1599
+ /** 클릭 핸들러 */
1600
+ onClick?: () => void;
1601
+ /** 추가 CSS 클래스 */
1602
+ className?: string;
1603
+ }
1604
+
1605
+ export declare interface SideNavigationMenuProps extends HTMLAttributes<HTMLUListElement> {
1606
+ /** 자식 메뉴 아이템들 */
1607
+ children: React.ReactNode;
1608
+ /** 추가 CSS 클래스 */
1609
+ className?: string;
1610
+ }
1611
+
1612
+ export declare interface SideNavigationPopupMenuProps extends HTMLAttributes<HTMLUListElement> {
1613
+ /** 4depth 메뉴 아이템들 */
1614
+ children: React.ReactNode;
1615
+ /** 추가 CSS 클래스 */
1616
+ className?: string;
1617
+ }
1618
+
1619
+ export declare interface SideNavigationPopupProps extends HTMLAttributes<HTMLDivElement> {
1620
+ /** 팝업 내용 */
1621
+ children: React.ReactNode;
1622
+ /** 활성화 상태 */
1623
+ active?: boolean;
1624
+ /** 메뉴 ID */
1625
+ id?: string;
1626
+ /** 추가 CSS 클래스 */
1627
+ className?: string;
1628
+ }
1629
+
1630
+ export declare interface SideNavigationPopupTitleProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onClick'> {
1631
+ /** 제목 텍스트 */
1632
+ children: React.ReactNode;
1633
+ /** 클릭 핸들러 */
1634
+ onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;
1635
+ /** 추가 CSS 클래스 */
1636
+ className?: string;
1637
+ }
1638
+
1639
+ export declare interface SideNavigationPopupToggleProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onClick'> {
1640
+ /** 버튼 텍스트 */
1641
+ children: React.ReactNode;
1642
+ /** 확장된 상태 */
1643
+ expanded?: boolean;
1644
+ /** 클릭 핸들러 */
1645
+ onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;
1646
+ /** 추가 CSS 클래스 */
1647
+ className?: string;
1648
+ /** ARIA controls 속성 */
1649
+ 'aria-controls'?: string;
1650
+ }
1651
+
1652
+ export declare interface SideNavigationProps extends HTMLAttributes<HTMLElement> {
1653
+ /** 자식 요소들 */
1654
+ children: React.ReactNode;
1655
+ /** 추가 CSS 클래스 */
1656
+ className?: string;
1657
+ }
1658
+
1659
+ export declare interface SideNavigationSubItemProps extends HTMLAttributes<HTMLLIElement> {
1660
+ /** 자식 요소들 */
1661
+ children: React.ReactNode;
1662
+ /** 활성화 상태 */
1663
+ active?: boolean;
1664
+ /** 추가 CSS 클래스 */
1665
+ className?: string;
1666
+ }
1667
+
1668
+ export declare interface SideNavigationSubMenuProps extends HTMLAttributes<HTMLDivElement> {
1669
+ /** 서브메뉴 아이템들 */
1670
+ children: React.ReactNode;
1671
+ /** 메뉴 ID */
1672
+ id?: string;
1673
+ /** 추가 CSS 클래스 */
1674
+ className?: string;
1675
+ }
1676
+
1677
+ export declare interface SideNavigationTitleProps extends HTMLAttributes<HTMLHeadingElement> {
1678
+ /** 제목 텍스트 */
1679
+ children: React.ReactNode;
1680
+ /** 추가 CSS 클래스 */
1681
+ className?: string;
1682
+ }
1683
+
1684
+ export declare interface SideNavigationToggleProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onClick'> {
1685
+ /** 버튼 텍스트 */
1686
+ children: React.ReactNode;
1687
+ /** 활성화 상태 */
1688
+ active?: boolean;
1689
+ /** 확장된 상태 */
1690
+ expanded?: boolean;
1691
+ /** 클릭 핸들러 */
1692
+ onClick?: () => void;
1693
+ /** 추가 CSS 클래스 */
1694
+ className?: string;
1695
+ /** ARIA controls 속성 */
1696
+ 'aria-controls'?: string;
1697
+ }
1698
+
1699
+ /**
1700
+ * KRDS SkipLink 컴포넌트
1701
+ * @param targetId 이동할 대상 요소 ID
1702
+ * @param children 링크 텍스트 내용
1703
+ * @param className 사용자 정의 클래스명
1704
+ */
1705
+ export declare const SkipLink: default_2.ForwardRefExoticComponent<SkipLinkProps & default_2.RefAttributes<HTMLDivElement>>;
1706
+
1707
+ export declare interface SkipLinkProps extends Omit<HTMLAttributes<HTMLDivElement>, 'id'> {
1708
+ /** 이동할 대상 요소 ID */
1709
+ targetId?: string;
1710
+ /** 링크 텍스트 내용 */
1711
+ children?: string;
1712
+ /** 사용자 정의 클래스명 */
1713
+ className?: string;
1714
+ }
1715
+
1716
+ /**
1717
+ * KRDS Spinner 컴포넌트
1718
+ * @param label 스피너 옆에 표시할 텍스트
1719
+ * @param className 추가 커스텀 클래스
1720
+ * @param children input 등 자식 요소가 있을 경우 form-spinner 래퍼로 감쌈
1721
+ */
1722
+ export declare const Spinner: default_2.FC<SpinnerProps>;
1723
+
1724
+ export declare interface SpinnerProps {
1725
+ label?: string;
1726
+ className?: string;
1727
+ children?: React.ReactNode;
1728
+ }
1729
+
1730
+ /**
1731
+ * KRDS StepIndicator Component
1732
+ * @param steps 단계 목록
1733
+ * @param currentStep 현재 활성 단계 인덱스 (0부터 시작, 기본값 -1)
1734
+ * @param currentStepText 스크린 리더용 현재 단계 텍스트
1735
+ * @param pageTitle 페이지 타이틀 텍스트
1736
+ */
1737
+ export declare const StepIndicator: ForwardRefExoticComponent<StepIndicatorProps & RefAttributes<HTMLOListElement>>;
1738
+
1739
+ export declare interface StepIndicatorProps extends Omit<HTMLAttributes<HTMLOListElement>, 'children'> {
1740
+ /** 단계 목록 */
1741
+ steps: StepItem[];
1742
+ /** 현재 활성 단계 인덱스 (0부터 시작) */
1743
+ currentStep?: number;
1744
+ /** 스크린 리더용 현재 단계 텍스트 */
1745
+ currentStepText?: string;
1746
+ /** 페이지 타이틀 텍스트 */
1747
+ pageTitle?: string;
1748
+ }
1749
+
1750
+ declare interface StepItem {
1751
+ /** 단계 번호 */
1752
+ step: string;
1753
+ /** 단계 제목 */
1754
+ title: string;
1755
+ /** 고유 식별자 (선택사항, key로 사용) */
1756
+ id?: string;
1757
+ }
1758
+
1759
+ /**
1760
+ * KRDS StructuredList Component
1761
+ * @param children 구조화 목록 아이템들
1762
+ * @param className 사용자 정의 클래스명
1763
+ */
1764
+ export declare const StructuredList: ForwardRefExoticComponent<StructuredListProps & RefAttributes<HTMLUListElement>>;
1765
+
1766
+ /**
1767
+ * KRDS StructuredListAction Component
1768
+ * @param children 액션 텍스트
1769
+ * @param onClick 클릭 핸들러
1770
+ * @param href 링크 URL
1771
+ * @param variant 버튼 종류 ('primary' | 'secondary' | 'text')
1772
+ * @param title 버튼 제목
1773
+ * @param className 사용자 정의 클래스명
1774
+ */
1775
+ export declare function StructuredListAction({ children, onClick, href, variant, title, className }: StructuredListActionProps): JSX_2.Element;
1776
+
1777
+ export declare interface StructuredListActionProps {
1778
+ children: default_2.ReactNode;
1779
+ onClick?: () => void;
1780
+ href?: string;
1781
+ variant?: 'primary' | 'secondary' | 'text';
1782
+ title?: string;
1783
+ className?: string;
1784
+ }
1785
+
1786
+ /**
1787
+ * KRDS StructuredListBadge Component
1788
+ * @param children 뱃지 텍스트
1789
+ * @param variant 뱃지 종류 ('filled' | 'light')
1790
+ * @param color 뱃지 색상 ('primary' | 'success' | 'secondary')
1791
+ * @param className 사용자 정의 클래스명
1792
+ */
1793
+ export declare function StructuredListBadge({ children, variant, color, className }: StructuredListBadgeProps): JSX_2.Element;
1794
+
1795
+ export declare type StructuredListBadgeProps = BadgeProps;
1796
+
1797
+ /**
1798
+ * KRDS StructuredListBody Component
1799
+ * @param children 본문 내용
1800
+ * @param className 사용자 정의 클래스명
1801
+ */
1802
+ export declare function StructuredListBody({ children, className }: StructuredListBodyProps): JSX_2.Element;
1803
+
1804
+ export declare interface StructuredListBodyProps {
1805
+ children: default_2.ReactNode;
1806
+ className?: string;
1807
+ }
1808
+
1809
+ /**
1810
+ * KRDS StructuredListButtons Component
1811
+ * @param children 버튼 요소들
1812
+ * @param className 사용자 정의 클래스명
1813
+ */
1814
+ export declare function StructuredListButtons({ children, className }: StructuredListButtonsProps): JSX_2.Element;
1815
+
1816
+ export declare interface StructuredListButtonsProps {
1817
+ children: default_2.ReactNode;
1818
+ className?: string;
1819
+ }
1820
+
1821
+ /**
1822
+ * KRDS StructuredListContent Component
1823
+ * @param children 내용 요소들
1824
+ * @param href 링크 URL
1825
+ * @param className 사용자 정의 클래스명
1826
+ */
1827
+ export declare function StructuredListContent({ children, href, className }: StructuredListContentProps): JSX_2.Element;
1828
+
1829
+ export declare interface StructuredListContentProps {
1830
+ children: default_2.ReactNode;
1831
+ href?: string;
1832
+ className?: string;
1833
+ }
1834
+
1835
+ /**
1836
+ * KRDS StructuredListDescription Component
1837
+ * @param children 설명 텍스트
1838
+ * @param className 사용자 정의 클래스명
1839
+ */
1840
+ export declare function StructuredListDescription({ children, className }: StructuredListDescriptionProps): JSX_2.Element;
1841
+
1842
+ export declare interface StructuredListDescriptionProps {
1843
+ children: default_2.ReactNode;
1844
+ className?: string;
1845
+ }
1846
+
1847
+ /**
1848
+ * KRDS StructuredListFooter Component
1849
+ * @param children 푸터 내용
1850
+ * @param className 사용자 정의 클래스명
1851
+ */
1852
+ export declare function StructuredListFooter({ children, className }: StructuredListFooterProps): JSX_2.Element;
1853
+
1854
+ export declare interface StructuredListFooterProps {
1855
+ children: default_2.ReactNode;
1856
+ className?: string;
1857
+ }
1858
+
1859
+ /**
1860
+ * KRDS StructuredListHeader Component
1861
+ * @param children 헤더 내용
1862
+ * @param className 사용자 정의 클래스명
1863
+ */
1864
+ export declare function StructuredListHeader({ children, className }: StructuredListHeaderProps): JSX_2.Element;
1865
+
1866
+ export declare interface StructuredListHeaderProps {
1867
+ children: default_2.ReactNode;
1868
+ className?: string;
1869
+ }
1870
+
1871
+ /**
1872
+ * KRDS StructuredListItem Component
1873
+ * @param children 구조화 목록 아이템 내용
1874
+ * @param className 사용자 정의 클래스명
1875
+ */
1876
+ export declare const StructuredListItem: ForwardRefExoticComponent<StructuredListItemProps & RefAttributes<HTMLLIElement>>;
1877
+
1878
+ export declare interface StructuredListItemProps {
1879
+ children: default_2.ReactNode;
1880
+ className?: string;
1881
+ }
1882
+
1883
+ /**
1884
+ * KRDS StructuredListMeta Component
1885
+ * @param label 메타 레이블
1886
+ * @param children 메타 값
1887
+ * @param className 사용자 정의 클래스명
1888
+ */
1889
+ export declare function StructuredListMeta({ label, children, className }: StructuredListMetaProps): JSX_2.Element;
1890
+
1891
+ export declare interface StructuredListMetaProps {
1892
+ label?: string;
1893
+ children: default_2.ReactNode;
1894
+ className?: string;
1895
+ }
1896
+
1897
+ export declare interface StructuredListProps {
1898
+ children: default_2.ReactNode;
1899
+ className?: string;
1900
+ }
1901
+
1902
+ /**
1903
+ * KRDS StructuredListTag Component
1904
+ * @param children 태그 텍스트
1905
+ * @param className 사용자 정의 클래스명
1906
+ */
1907
+ export declare function StructuredListTag({ children, className }: StructuredListTagProps): JSX_2.Element;
1908
+
1909
+ export declare interface StructuredListTagProps {
1910
+ children: default_2.ReactNode;
1911
+ className?: string;
1912
+ }
1913
+
1914
+ /**
1915
+ * KRDS StructuredListTitle Component
1916
+ * @param children 제목 텍스트
1917
+ * @param className 사용자 정의 클래스명
1918
+ */
1919
+ export declare function StructuredListTitle({ children, className }: StructuredListTitleProps): JSX_2.Element;
1920
+
1921
+ export declare interface StructuredListTitleProps {
1922
+ children: default_2.ReactNode;
1923
+ className?: string;
1924
+ }
1925
+
1926
+ /**
1927
+ * KRDS Tab Root Component
1928
+ * @param value 활성 탭 값 (제어 모드)
1929
+ * @param defaultValue 기본 활성 탭 값 (비제어 모드)
1930
+ * @param onValueChange 탭 변경 콜백
1931
+ * @param variant 탭 변형 ('line' | 'fill')
1932
+ * @param size 탭 크기 ('normal' | 'full')
1933
+ * @param children 자식 컴포넌트
1934
+ * @param className 커스텀 클래스명
1935
+ */
1936
+ export declare const Tab: default_2.ForwardRefExoticComponent<TabProps & default_2.RefAttributes<HTMLDivElement>>;
1937
+
1938
+ export declare const TabContent: default_2.ForwardRefExoticComponent<TabContentProps & default_2.RefAttributes<HTMLDivElement>>;
1939
+
1940
+ export declare interface TabContentProps extends HTMLAttributes<HTMLDivElement> {
1941
+ /** 자식 컴포넌트 */
1942
+ children: ReactNode;
1943
+ /** 커스텀 클래스명 */
1944
+ className?: string;
1945
+ }
1946
+
1947
+ export declare const Table: ForwardRefExoticComponent<TableProps & RefAttributes<HTMLTableElement>> & {
1948
+ Caption: ForwardRefExoticComponent<TableCaptionProps & RefAttributes<HTMLElement>>;
1949
+ Colgroup: ForwardRefExoticComponent<TableColgroupProps & RefAttributes<HTMLTableColElement>>;
1950
+ Col: ForwardRefExoticComponent<TableColProps & RefAttributes<HTMLTableColElement>>;
1951
+ Thead: ForwardRefExoticComponent<TableTheadProps & RefAttributes<HTMLTableSectionElement>>;
1952
+ Tbody: ForwardRefExoticComponent<TableTbodyProps & RefAttributes<HTMLTableSectionElement>>;
1953
+ TFoot: ForwardRefExoticComponent<TableTFootProps & RefAttributes<HTMLTableSectionElement>>;
1954
+ Tr: ForwardRefExoticComponent<TableTrProps & RefAttributes<HTMLTableRowElement>>;
1955
+ Th: ForwardRefExoticComponent<TableThProps & RefAttributes<HTMLTableCellElement>>;
1956
+ Td: ForwardRefExoticComponent<TableTdProps & RefAttributes<HTMLTableCellElement>>;
1957
+ };
1958
+
1959
+ export declare type TableCaptionProps = default_2.HTMLAttributes<HTMLElement>;
1960
+
1961
+ export declare type TableColgroupProps = default_2.ColgroupHTMLAttributes<HTMLTableColElement>;
1962
+
1963
+ export declare type TableColProps = default_2.ColHTMLAttributes<HTMLTableColElement>;
1964
+
1965
+ export declare interface TableProps extends default_2.TableHTMLAttributes<HTMLTableElement> {
1966
+ /** enables horizontal scroll */
1967
+ scroll?: boolean;
1968
+ /** enables mobile scroll */
1969
+ mobScroll?: boolean;
1970
+ }
1971
+
1972
+ export declare type TableTbodyProps = default_2.HTMLAttributes<HTMLTableSectionElement>;
1973
+
1974
+ export declare type TableTdProps = default_2.TdHTMLAttributes<HTMLTableCellElement>;
1975
+
1976
+ declare type TableTFootProps = default_2.HTMLAttributes<HTMLTableSectionElement>;
1977
+
1978
+ export declare type TableTheadProps = default_2.HTMLAttributes<HTMLTableSectionElement>;
1979
+
1980
+ export declare type TableThProps = default_2.ThHTMLAttributes<HTMLTableCellElement>;
1981
+
1982
+ export declare type TableTrProps = default_2.HTMLAttributes<HTMLTableRowElement>;
1983
+
1984
+ /**
1985
+ * KRDS TabList Component
1986
+ * @param children 자식 컴포넌트 (TabTrigger들)
1987
+ * @param className 커스텀 클래스명
1988
+ */
1989
+ export declare const TabList: default_2.ForwardRefExoticComponent<TabListProps & default_2.RefAttributes<HTMLUListElement>>;
1990
+
1991
+ export declare interface TabListProps extends HTMLAttributes<HTMLUListElement> {
1992
+ /** 자식 컴포넌트 (TabTrigger들) */
1993
+ children?: ReactNode;
1994
+ /** 커스텀 클래스명 */
1995
+ className?: string;
1996
+ }
1997
+
1998
+ /**
1999
+ * KRDS TabPanel Component
2000
+ * @param value 탭 값
2001
+ * @param children 자식 컴포넌트
2002
+ * @param className 커스텀 클래스명
2003
+ */
2004
+ export declare const TabPanel: default_2.ForwardRefExoticComponent<TabPanelProps & default_2.RefAttributes<HTMLElement>>;
2005
+
2006
+ declare interface TabPanelProps extends HTMLAttributes<HTMLElement> {
2007
+ /** 탭 식별자 */
2008
+ value: string;
2009
+ /** 자식 컴포넌트 */
2010
+ children: ReactNode;
2011
+ /** 커스텀 클래스명 */
2012
+ className?: string;
2013
+ }
2014
+
2015
+ export declare interface TabProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
2016
+ /** 활성 탭 값 (제어 모드) */
2017
+ value?: string;
2018
+ /** 기본 활성 탭 값 (비제어 모드) */
2019
+ defaultValue?: string;
2020
+ /** 탭 변경 콜백 */
2021
+ onValueChange?: (value: string) => void;
2022
+ /** 탭 변형 ('line' | 'fill') */
2023
+ variant?: TabVariant;
2024
+ /** 탭 크기 ('normal' | 'full') */
2025
+ size?: TabSize;
2026
+ /** 자식 컴포넌트 */
2027
+ children: ReactNode;
2028
+ /** 커스텀 클래스명 */
2029
+ className?: string;
2030
+ }
2031
+
2032
+ export declare type TabSize = 'normal' | 'full';
2033
+
2034
+ /**
2035
+ * KRDS TabTrigger Component
2036
+ * @param value 탭 값
2037
+ * @param children 자식 컴포넌트
2038
+ * @param className 커스텀 클래스명
2039
+ */
2040
+ export declare const TabTrigger: default_2.ForwardRefExoticComponent<TabTriggerProps & default_2.RefAttributes<HTMLButtonElement>>;
2041
+
2042
+ export declare interface TabTriggerProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'value'> {
2043
+ /** 탭 식별자 */
2044
+ value: string;
2045
+ /** 자식 컴포넌트 */
2046
+ children: ReactNode;
2047
+ /** 커스텀 클래스명 */
2048
+ className?: string;
2049
+ }
2050
+
2051
+ export declare type TabVariant = 'line' | 'fill';
2052
+
2053
+ /**
2054
+ * KRDS Tag Component
2055
+ * @param variant tag type ('deletable' | 'link')
2056
+ * @param onDelete delete button click handler
2057
+ * @param deleteDisabled delete button disabled state
2058
+ * @param className custom class name
2059
+ */
2060
+ export declare const Tag: default_2.ForwardRefExoticComponent<TagProps & default_2.RefAttributes<HTMLSpanElement | HTMLAnchorElement>>;
2061
+
2062
+ export declare type TagProps = DeletableTagProps | LinkTagProps;
2063
+
2064
+ /**
2065
+ * KRDS Textarea Component
2066
+ * @param value 제어 상태일 때 입력된 값
2067
+ * @param defaultValue 비제어 상태일 때의 초기 값
2068
+ * @param onChange 입력 값이 변경될 때 호출되는 콜백
2069
+ * @param label 레이블
2070
+ * @param countTotal 글자수 총합 표시값
2071
+ * @param maxLength 최대 글자수
2072
+ * @param showCount 글자수 카운터 표시 여부
2073
+ * @param disabled disabled 상태
2074
+ * @param readOnly readOnly 상태
2075
+ * @param className custom class name
2076
+ */
2077
+ export declare const Textarea: default_2.FC<TextareaProps>;
2078
+
2079
+ export declare interface TextareaProps extends Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'onChange' | 'value' | 'defaultValue'> {
2080
+ /** 입력 값이 변경될 때 호출되는 콜백 */
2081
+ onChange?: (value: string) => void;
2082
+ /** 레이블 */
2083
+ label?: string;
2084
+ /** 글자수 카운터 표시 여부 */
2085
+ showCount?: boolean;
2086
+ /** 글자수 총합 표시값 */
2087
+ countTotal?: number;
2088
+ /** 제어 상태일 때 입력된 값 */
2089
+ value?: string;
2090
+ /** 비제어 상태일 때의 초기 값 */
2091
+ defaultValue?: string;
2092
+ }
2093
+
2094
+ /**
2095
+ * KRDS TextInput Component
2096
+ * @param value 제어 상태일 때 입력된 값
2097
+ * @param defaultValue 비제어 상태일 때의 초기 값
2098
+ * @param onChange 입력 값이 변경될 때 호출되는 콜백
2099
+ * @param label 레이블
2100
+ * @param hint 도움말 텍스트
2101
+ * @param error 에러 메시지
2102
+ * @param success 성공 메시지
2103
+ * @param information 정보 메시지
2104
+ * @param size 입력 필드 크기 ('small' | 'medium' | 'large' | 'xlarge')
2105
+ * @param showPasswordToggle 비밀번호 보기/숨기기 버튼 표시 여부
2106
+ * @param showClearButton 삭제 버튼 표시 여부
2107
+ * @param type 입력 필드 타입
2108
+ * @param disabled disabled 상태
2109
+ * @param readOnly readOnly 상태
2110
+ * @param className custom class name
2111
+ */
2112
+ export declare const TextInput: ForwardRefExoticComponent<TextInputProps & RefAttributes<HTMLInputElement>>;
2113
+
2114
+ declare interface TextInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'value' | 'defaultValue' | 'size'> {
2115
+ /** 입력 값이 변경될 때 호출되는 콜백 */
2116
+ onChange?: (value: string) => void;
2117
+ /** 레이블 */
2118
+ label?: string;
2119
+ /** 도움말 텍스트 */
2120
+ hint?: string;
2121
+ /** 에러 메시지 */
2122
+ error?: string;
2123
+ /** 성공 메시지 */
2124
+ success?: string;
2125
+ /** 정보 메시지 */
2126
+ information?: string;
2127
+ /** 입력 필드 크기 ('small' | 'medium' | 'large') */
2128
+ size?: 'small' | 'medium' | 'large';
2129
+ /** 제어 상태일 때 입력된 값 */
2130
+ value?: string;
2131
+ /** 비제어 상태일 때의 초기 값 */
2132
+ defaultValue?: string;
2133
+ /** 비밀번호 보기/숨기기 버튼 표시 여부 */
2134
+ showPasswordToggle?: boolean;
2135
+ /** 삭제 버튼 표시 여부 */
2136
+ showClearButton?: boolean;
2137
+ }
2138
+
2139
+ /**
2140
+ * KRDS TextList Component
2141
+ * @param type 텍스트 목록 타입 ('decimal' | 'dash' | 'hollow' | 'ordered')
2142
+ * @param children 자식 요소
2143
+ * @param className 커스텀 클래스명
2144
+ */
2145
+ export declare const TextList: ForwardRefExoticComponent<TextListProps & RefAttributes<HTMLOListElement | HTMLUListElement>>;
2146
+
2147
+ export declare interface TextListItemProps extends HTMLAttributes<HTMLLIElement> {
2148
+ /** 자식 요소 */
2149
+ children?: ReactNode;
2150
+ /** 커스텀 클래스명 */
2151
+ className?: string;
2152
+ /** 번호 (ordered 타입에서 사용) */
2153
+ number?: string;
2154
+ }
2155
+
2156
+ export declare interface TextListProps extends Omit<HTMLAttributes<HTMLUListElement | HTMLOListElement>, 'type'> {
2157
+ /** 텍스트 목록 타입 */
2158
+ type?: TextListType;
2159
+ /** 자식 요소 */
2160
+ children?: ReactNode;
2161
+ /** 커스텀 클래스명 */
2162
+ className?: string;
2163
+ }
2164
+
2165
+ export declare type TextListType = 'decimal' | 'dash' | 'hollow' | 'ordered';
2166
+
2167
+ /**
2168
+ * KRDS ToggleSwitch Component
2169
+ * @param size 토글 스위치 크기 ('medium' | 'large')
2170
+ * @param label 토글 스위치 라벨 텍스트
2171
+ * @param checked 체크 상태 (제어된 컴포넌트)
2172
+ * @param defaultChecked 기본 체크 상태 (비제어 컴포넌트)
2173
+ * @param onChange 값 변경 핸들러
2174
+ * @param className 추가 CSS 클래스명
2175
+ */
2176
+ export declare const ToggleSwitch: default_2.ForwardRefExoticComponent<ToggleSwitchProps & default_2.RefAttributes<HTMLInputElement>>;
2177
+
2178
+ export declare interface ToggleSwitchProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'onChange'> {
2179
+ /**
2180
+ * 토글 스위치 크기
2181
+ */
2182
+ size?: ToggleSwitchSize;
2183
+ /**
2184
+ * 토글 스위치 라벨 텍스트
2185
+ */
2186
+ label?: string;
2187
+ /**
2188
+ * 값 변경 핸들러
2189
+ */
2190
+ onChange?: (checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void;
2191
+ }
2192
+
2193
+ export declare type ToggleSwitchSize = 'medium' | 'large';
2194
+
2195
+ /**
2196
+ * KRDS Tooltip Component
2197
+ * @param text 툴팁에 표시될 텍스트
2198
+ * @param variant 툴팁 방향 ('vertical' | 'horizontal' | 'box')
2199
+ * @param className 추가 클래스명
2200
+ */
2201
+ export declare const Tooltip: default_2.ForwardRefExoticComponent<TooltipProps & default_2.RefAttributes<HTMLElement>>;
2202
+
2203
+ export declare interface TooltipProps {
2204
+ children: ReactNode;
2205
+ text: string;
2206
+ variant?: 'horizontal' | 'vertical' | 'box';
2207
+ className?: string;
2208
+ }
2209
+
2210
+ export declare const TutorialPanel: ForwardRefExoticComponent<TutorialPanelRootProps & RefAttributes<HTMLDivElement>> & {
2211
+ Root: ForwardRefExoticComponent<TutorialPanelRootProps & RefAttributes<HTMLDivElement>>;
2212
+ Trigger: ForwardRefExoticComponent<TutorialPanelTriggerProps & RefAttributes<HTMLButtonElement>>;
2213
+ Container: ForwardRefExoticComponent<TutorialPanelContainerProps & RefAttributes<HTMLDivElement>>;
2214
+ Tabs: ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & RefAttributes<HTMLDivElement>>;
2215
+ TabPanel: ForwardRefExoticComponent<TutorialPanelTabContentProps & RefAttributes<HTMLElement>>;
2216
+ HelpContent: ForwardRefExoticComponent<TutorialPanelHelpContentProps & RefAttributes<HTMLDivElement>>;
2217
+ TutorialContent: ForwardRefExoticComponent<TutorialPanelTutorialContentProps & RefAttributes<HTMLDivElement>>;
2218
+ Close: ForwardRefExoticComponent<TutorialPanelCloseProps & RefAttributes<HTMLButtonElement>>;
2219
+ };
2220
+
2221
+ export declare interface TutorialPanelCloseProps extends ButtonHTMLAttributes<HTMLButtonElement> {
2222
+ children?: ReactNode;
2223
+ }
2224
+
2225
+ export declare interface TutorialPanelContainerProps extends HTMLAttributes<HTMLDivElement> {
2226
+ children: ReactNode;
2227
+ }
2228
+
2229
+ export declare interface TutorialPanelHelpContentProps extends HTMLAttributes<HTMLDivElement> {
2230
+ helpContent?: HelpContent;
2231
+ relatedServices?: HelpContent[];
2232
+ }
2233
+
2234
+ export declare interface TutorialPanelRootProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onToggle'> {
2235
+ isOpen?: boolean;
2236
+ onOpenChange?: (isOpen: boolean) => void;
2237
+ activeTab?: 'help' | 'tutorial';
2238
+ defaultActiveTab?: 'help' | 'tutorial';
2239
+ onTabChange?: (tab: 'help' | 'tutorial') => void;
2240
+ children: ReactNode;
2241
+ }
2242
+
2243
+ export declare interface TutorialPanelTabContentProps extends HTMLAttributes<HTMLElement> {
2244
+ value: 'help' | 'tutorial';
2245
+ children: ReactNode;
2246
+ }
2247
+
2248
+ export declare interface TutorialPanelTriggerProps extends ButtonHTMLAttributes<HTMLButtonElement> {
2249
+ children?: ReactNode;
2250
+ }
2251
+
2252
+ export declare interface TutorialPanelTutorialContentProps extends HTMLAttributes<HTMLDivElement> {
2253
+ title?: string;
2254
+ steps?: TutorialStep[];
2255
+ onTutorialStop?: () => void;
2256
+ stopButtonText?: string;
2257
+ }
2258
+
2259
+ export declare interface TutorialStep {
2260
+ title: string;
2261
+ current?: boolean;
2262
+ steps?: string[];
2263
+ content?: ReactNode;
2264
+ }
2265
+
2266
+ export { }