@bigtablet/design-system 1.24.0 → 1.24.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +392 -392
- package/dist/index.d.ts +222 -222
- package/dist/index.js +736 -629
- package/dist/next.d.ts +1 -1
- package/dist/next.js +99 -147
- package/dist/vanilla/bigtablet.min.js +2 -2
- package/package.json +148 -147
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,31 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
|
|
4
|
+
declare const a11y: {
|
|
5
|
+
readonly focusRing: "0 0 0 3px rgba(0, 0, 0, 0.15)";
|
|
6
|
+
readonly focusRingError: "0 0 0 3px rgba(239, 68, 68, 0.15)";
|
|
7
|
+
readonly focusRingSuccess: "0 0 0 3px rgba(16, 185, 129, 0.15)";
|
|
8
|
+
readonly tapMinSize: "44px";
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
declare const baseBorderWidth: {
|
|
12
|
+
readonly "0": "0px";
|
|
13
|
+
readonly "1": "1px";
|
|
14
|
+
readonly "2": "2px";
|
|
15
|
+
};
|
|
16
|
+
declare const borderWidth: {
|
|
17
|
+
readonly none: "0px";
|
|
18
|
+
readonly standard: "1px";
|
|
19
|
+
readonly indicator: "2px";
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
declare const breakpoints: {
|
|
23
|
+
readonly compact: 0;
|
|
24
|
+
readonly medium: 600;
|
|
25
|
+
readonly expanded: 840;
|
|
26
|
+
readonly large: 1200;
|
|
27
|
+
};
|
|
28
|
+
|
|
4
29
|
declare const baseColors: {
|
|
5
30
|
readonly brandPrimary: "#121212";
|
|
6
31
|
readonly blue600: "#1A73E8";
|
|
@@ -66,6 +91,76 @@ declare const colors: {
|
|
|
66
91
|
};
|
|
67
92
|
};
|
|
68
93
|
|
|
94
|
+
declare const motion: {
|
|
95
|
+
readonly transition: {
|
|
96
|
+
readonly fast: "0.1s ease-in-out";
|
|
97
|
+
readonly base: "0.2s ease-in-out";
|
|
98
|
+
readonly slow: "0.3s ease-in-out";
|
|
99
|
+
readonly emphasized: "0.25s cubic-bezier(0.4, 0, 0.2, 1)";
|
|
100
|
+
readonly bounce: "0.3s cubic-bezier(0.16, 1, 0.3, 1)";
|
|
101
|
+
readonly fade: "0.15s ease-in-out";
|
|
102
|
+
readonly slide: "0.25s ease-in-out";
|
|
103
|
+
readonly scale: "0.2s cubic-bezier(0.2, 0.8, 0.2, 1)";
|
|
104
|
+
readonly state: "0.18s ease-in-out";
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
declare const opacity: {
|
|
109
|
+
readonly "0": 0;
|
|
110
|
+
readonly "5": 0.05;
|
|
111
|
+
readonly "8": 0.08;
|
|
112
|
+
readonly "12": 0.12;
|
|
113
|
+
readonly "16": 0.16;
|
|
114
|
+
readonly "38": 0.38;
|
|
115
|
+
readonly "50": 0.5;
|
|
116
|
+
readonly "80": 0.8;
|
|
117
|
+
readonly "90": 0.9;
|
|
118
|
+
readonly "100": 1;
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
declare const radius: {
|
|
122
|
+
readonly none: "0px";
|
|
123
|
+
readonly xs: "4px";
|
|
124
|
+
readonly sm: "6px";
|
|
125
|
+
readonly md: "8px";
|
|
126
|
+
readonly lg: "12px";
|
|
127
|
+
readonly xl: "16px";
|
|
128
|
+
readonly full: "9999px";
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
declare const shadows: {
|
|
132
|
+
readonly level1: "0 1px 1px -1px rgba(0, 0, 0, 0.20), 0 3px 3px 0px rgba(0, 0, 0, 0.12)";
|
|
133
|
+
readonly level2: "0 2px 2px -2px rgba(0, 0, 0, 0.20), 0 6px 6px 0px rgba(0, 0, 0, 0.12)";
|
|
134
|
+
readonly level3: "0 3px 3px -3px rgba(0, 0, 0, 0.20), 0 9px 9px 0px rgba(0, 0, 0, 0.12)";
|
|
135
|
+
readonly level4: "0 5px 5px -5px rgba(0, 0, 0, 0.20), 0 15px 15px 0px rgba(0, 0, 0, 0.12)";
|
|
136
|
+
readonly level5: "0 8px 10px -5px rgba(0, 0, 0, 0.20), 0 20px 20px 0px rgba(0, 0, 0, 0.12)";
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
declare const skeleton: {
|
|
140
|
+
readonly color: {
|
|
141
|
+
readonly base: "#F4F4F4";
|
|
142
|
+
readonly wave: "#E5E5E5";
|
|
143
|
+
readonly highlight: "#FFFFFF";
|
|
144
|
+
};
|
|
145
|
+
readonly gradient: "linear-gradient(90deg, #F4F4F4 25%, #FFFFFF 37%, #E5E5E5 63%)";
|
|
146
|
+
readonly radius: {
|
|
147
|
+
readonly sm: "6px";
|
|
148
|
+
readonly md: "8px";
|
|
149
|
+
readonly lg: "12px";
|
|
150
|
+
};
|
|
151
|
+
readonly height: {
|
|
152
|
+
readonly xs: "4px";
|
|
153
|
+
readonly sm: "8px";
|
|
154
|
+
readonly md: "12px";
|
|
155
|
+
readonly lg: "16px";
|
|
156
|
+
readonly xl: "20px";
|
|
157
|
+
};
|
|
158
|
+
readonly animation: {
|
|
159
|
+
readonly duration: "1.4s";
|
|
160
|
+
readonly timing: "ease-in-out";
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
|
|
69
164
|
declare const spacing: {
|
|
70
165
|
readonly "0": "0px";
|
|
71
166
|
readonly "1": "1px";
|
|
@@ -318,94 +413,6 @@ declare const typography: {
|
|
|
318
413
|
};
|
|
319
414
|
};
|
|
320
415
|
|
|
321
|
-
declare const radius: {
|
|
322
|
-
readonly none: "0px";
|
|
323
|
-
readonly xs: "4px";
|
|
324
|
-
readonly sm: "6px";
|
|
325
|
-
readonly md: "8px";
|
|
326
|
-
readonly lg: "12px";
|
|
327
|
-
readonly xl: "16px";
|
|
328
|
-
readonly full: "9999px";
|
|
329
|
-
};
|
|
330
|
-
|
|
331
|
-
declare const shadows: {
|
|
332
|
-
readonly level1: "0 1px 1px -1px rgba(0, 0, 0, 0.20), 0 3px 3px 0px rgba(0, 0, 0, 0.12)";
|
|
333
|
-
readonly level2: "0 2px 2px -2px rgba(0, 0, 0, 0.20), 0 6px 6px 0px rgba(0, 0, 0, 0.12)";
|
|
334
|
-
readonly level3: "0 3px 3px -3px rgba(0, 0, 0, 0.20), 0 9px 9px 0px rgba(0, 0, 0, 0.12)";
|
|
335
|
-
readonly level4: "0 5px 5px -5px rgba(0, 0, 0, 0.20), 0 15px 15px 0px rgba(0, 0, 0, 0.12)";
|
|
336
|
-
readonly level5: "0 8px 10px -5px rgba(0, 0, 0, 0.20), 0 20px 20px 0px rgba(0, 0, 0, 0.12)";
|
|
337
|
-
};
|
|
338
|
-
|
|
339
|
-
declare const baseBorderWidth: {
|
|
340
|
-
readonly "0": "0px";
|
|
341
|
-
readonly "1": "1px";
|
|
342
|
-
readonly "2": "2px";
|
|
343
|
-
};
|
|
344
|
-
declare const borderWidth: {
|
|
345
|
-
readonly none: "0px";
|
|
346
|
-
readonly standard: "1px";
|
|
347
|
-
readonly indicator: "2px";
|
|
348
|
-
};
|
|
349
|
-
|
|
350
|
-
declare const opacity: {
|
|
351
|
-
readonly "0": 0;
|
|
352
|
-
readonly "5": 0.05;
|
|
353
|
-
readonly "8": 0.08;
|
|
354
|
-
readonly "12": 0.12;
|
|
355
|
-
readonly "16": 0.16;
|
|
356
|
-
readonly "38": 0.38;
|
|
357
|
-
readonly "50": 0.5;
|
|
358
|
-
readonly "80": 0.8;
|
|
359
|
-
readonly "90": 0.9;
|
|
360
|
-
readonly "100": 1;
|
|
361
|
-
};
|
|
362
|
-
|
|
363
|
-
declare const motion: {
|
|
364
|
-
readonly transition: {
|
|
365
|
-
readonly fast: "0.1s ease-in-out";
|
|
366
|
-
readonly base: "0.2s ease-in-out";
|
|
367
|
-
readonly slow: "0.3s ease-in-out";
|
|
368
|
-
readonly emphasized: "0.25s cubic-bezier(0.4, 0, 0.2, 1)";
|
|
369
|
-
readonly bounce: "0.3s cubic-bezier(0.16, 1, 0.3, 1)";
|
|
370
|
-
readonly fade: "0.15s ease-in-out";
|
|
371
|
-
readonly slide: "0.25s ease-in-out";
|
|
372
|
-
readonly scale: "0.2s cubic-bezier(0.2, 0.8, 0.2, 1)";
|
|
373
|
-
readonly state: "0.18s ease-in-out";
|
|
374
|
-
};
|
|
375
|
-
};
|
|
376
|
-
|
|
377
|
-
declare const skeleton: {
|
|
378
|
-
readonly color: {
|
|
379
|
-
readonly base: "#F4F4F4";
|
|
380
|
-
readonly wave: "#E5E5E5";
|
|
381
|
-
readonly highlight: "#FFFFFF";
|
|
382
|
-
};
|
|
383
|
-
readonly gradient: "linear-gradient(90deg, #F4F4F4 25%, #FFFFFF 37%, #E5E5E5 63%)";
|
|
384
|
-
readonly radius: {
|
|
385
|
-
readonly sm: "6px";
|
|
386
|
-
readonly md: "8px";
|
|
387
|
-
readonly lg: "12px";
|
|
388
|
-
};
|
|
389
|
-
readonly height: {
|
|
390
|
-
readonly xs: "4px";
|
|
391
|
-
readonly sm: "8px";
|
|
392
|
-
readonly md: "12px";
|
|
393
|
-
readonly lg: "16px";
|
|
394
|
-
readonly xl: "20px";
|
|
395
|
-
};
|
|
396
|
-
readonly animation: {
|
|
397
|
-
readonly duration: "1.4s";
|
|
398
|
-
readonly timing: "ease-in-out";
|
|
399
|
-
};
|
|
400
|
-
};
|
|
401
|
-
|
|
402
|
-
declare const breakpoints: {
|
|
403
|
-
readonly compact: 0;
|
|
404
|
-
readonly medium: 600;
|
|
405
|
-
readonly expanded: 840;
|
|
406
|
-
readonly large: 1200;
|
|
407
|
-
};
|
|
408
|
-
|
|
409
416
|
declare const zIndex: {
|
|
410
417
|
readonly level0: 0;
|
|
411
418
|
readonly level1: 10;
|
|
@@ -415,13 +422,6 @@ declare const zIndex: {
|
|
|
415
422
|
readonly level5: 1000;
|
|
416
423
|
};
|
|
417
424
|
|
|
418
|
-
declare const a11y: {
|
|
419
|
-
readonly focusRing: "0 0 0 3px rgba(0, 0, 0, 0.15)";
|
|
420
|
-
readonly focusRingError: "0 0 0 3px rgba(239, 68, 68, 0.15)";
|
|
421
|
-
readonly focusRingSuccess: "0 0 0 3px rgba(16, 185, 129, 0.15)";
|
|
422
|
-
readonly tapMinSize: "44px";
|
|
423
|
-
};
|
|
424
|
-
|
|
425
425
|
interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
426
426
|
/** 카드 상단에 표시할 제목 */
|
|
427
427
|
heading?: React.ReactNode;
|
|
@@ -497,26 +497,6 @@ interface SpinnerProps {
|
|
|
497
497
|
*/
|
|
498
498
|
declare const Spinner: ({ size, ariaLabel }: SpinnerProps) => react_jsx_runtime.JSX.Element;
|
|
499
499
|
|
|
500
|
-
interface TopLoadingProps {
|
|
501
|
-
/** 진행률 (0-100). undefined면 indeterminate 모드 */
|
|
502
|
-
progress?: number;
|
|
503
|
-
/** 로딩바 색상 (기본: primary) */
|
|
504
|
-
color?: string;
|
|
505
|
-
/** 로딩바 높이 (기본: 3px) */
|
|
506
|
-
height?: number;
|
|
507
|
-
/** 표시 여부 */
|
|
508
|
-
isLoading?: boolean;
|
|
509
|
-
/** 프로그레스 바의 접근성 레이블 (기본값: "Page loading") */
|
|
510
|
-
ariaLabel?: string;
|
|
511
|
-
}
|
|
512
|
-
/**
|
|
513
|
-
* 상단 로딩바를 렌더링한다.
|
|
514
|
-
* 표시 여부와 진행률에 따라 determinate/indeterminate 상태를 구성한다.
|
|
515
|
-
* @param props 로딩바 속성
|
|
516
|
-
* @returns 렌더링된 로딩바 요소 또는 null
|
|
517
|
-
*/
|
|
518
|
-
declare const TopLoading: ({ progress, color, height, isLoading, ariaLabel, }: TopLoadingProps) => react_jsx_runtime.JSX.Element | null;
|
|
519
|
-
|
|
520
500
|
interface ToastProviderProps {
|
|
521
501
|
/** 앱 루트에서 감싸는 자식 요소 */
|
|
522
502
|
children: React.ReactNode;
|
|
@@ -531,7 +511,7 @@ interface ToastProviderProps {
|
|
|
531
511
|
* @param props Provider 속성
|
|
532
512
|
* @returns 렌더링된 Provider와 토스트 컨테이너
|
|
533
513
|
*/
|
|
534
|
-
declare const ToastProvider: ({ children, maxCount, closeAriaLabel }: ToastProviderProps) => react_jsx_runtime.JSX.Element;
|
|
514
|
+
declare const ToastProvider: ({ children, maxCount, closeAriaLabel, }: ToastProviderProps) => react_jsx_runtime.JSX.Element;
|
|
535
515
|
|
|
536
516
|
/**
|
|
537
517
|
* 토스트 메시지를 표시하는 훅.
|
|
@@ -551,26 +531,25 @@ declare const useToast: () => {
|
|
|
551
531
|
message: (message: string, duration?: number) => void;
|
|
552
532
|
};
|
|
553
533
|
|
|
554
|
-
interface
|
|
555
|
-
/**
|
|
556
|
-
|
|
557
|
-
/**
|
|
558
|
-
|
|
559
|
-
/**
|
|
560
|
-
|
|
561
|
-
/**
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
width?: string;
|
|
534
|
+
interface TopLoadingProps {
|
|
535
|
+
/** 진행률 (0-100). undefined면 indeterminate 모드 */
|
|
536
|
+
progress?: number;
|
|
537
|
+
/** 로딩바 색상 (기본: primary) */
|
|
538
|
+
color?: string;
|
|
539
|
+
/** 로딩바 높이 (기본: 3px) */
|
|
540
|
+
height?: number;
|
|
541
|
+
/** 표시 여부 */
|
|
542
|
+
isLoading?: boolean;
|
|
543
|
+
/** 프로그레스 바의 접근성 레이블 (기본값: "Page loading") */
|
|
544
|
+
ariaLabel?: string;
|
|
566
545
|
}
|
|
567
546
|
/**
|
|
568
|
-
*
|
|
569
|
-
*
|
|
570
|
-
* @param props
|
|
571
|
-
* @returns 렌더링된
|
|
547
|
+
* 상단 로딩바를 렌더링한다.
|
|
548
|
+
* 표시 여부와 진행률에 따라 determinate/indeterminate 상태를 구성한다.
|
|
549
|
+
* @param props 로딩바 속성
|
|
550
|
+
* @returns 렌더링된 로딩바 요소 또는 null
|
|
572
551
|
*/
|
|
573
|
-
declare const
|
|
552
|
+
declare const TopLoading: ({ progress, color, height, isLoading, ariaLabel, }: TopLoadingProps) => react_jsx_runtime.JSX.Element | null;
|
|
574
553
|
|
|
575
554
|
interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "size"> {
|
|
576
555
|
/** 체크박스 옆에 표시할 라벨 */
|
|
@@ -593,6 +572,59 @@ declare const Checkbox: {
|
|
|
593
572
|
displayName: string;
|
|
594
573
|
};
|
|
595
574
|
|
|
575
|
+
type DatePickerMode = "year-month" | "year-month-day";
|
|
576
|
+
type SelectableRange = "all" | "until-today";
|
|
577
|
+
interface DatePickerProps {
|
|
578
|
+
/** 데이트 피커 위에 표시할 라벨 텍스트 */
|
|
579
|
+
label?: string;
|
|
580
|
+
/** 제어형 날짜 값 ("YYYY-MM" 또는 "YYYY-MM-DD" 형식) */
|
|
581
|
+
value?: string;
|
|
582
|
+
/** 날짜 변경 시 호출되는 콜백. `mode` 값에 따라 "YYYY-MM" 또는 "YYYY-MM-DD" 형식의 문자열이 전달됩니다. */
|
|
583
|
+
onChange: (value: string) => void;
|
|
584
|
+
/** 선택 모드 (기본값: "year-month-day") */
|
|
585
|
+
mode?: DatePickerMode;
|
|
586
|
+
/** 연도 선택 범위 시작 (기본값: 1950) */
|
|
587
|
+
startYear?: number;
|
|
588
|
+
/** 연도 선택 범위 끝 (기본값: 현재 연도 + 10) */
|
|
589
|
+
endYear?: number;
|
|
590
|
+
/** 선택 가능한 최소 날짜 ("YYYY-MM-DD" 형식) */
|
|
591
|
+
minDate?: string;
|
|
592
|
+
/** 선택 가능한 날짜 범위 ("all": 제한 없음, "until-today": 오늘까지) */
|
|
593
|
+
selectableRange?: SelectableRange;
|
|
594
|
+
/** 비활성화 여부 */
|
|
595
|
+
disabled?: boolean;
|
|
596
|
+
/** 데이트 피커가 컨테이너의 전체 너비를 차지할지 여부 */
|
|
597
|
+
fullWidth?: boolean;
|
|
598
|
+
/**
|
|
599
|
+
* 데이트 피커의 커스텀 너비
|
|
600
|
+
* @deprecated `fullWidth` 사용 또는 CSS로 처리
|
|
601
|
+
*/
|
|
602
|
+
width?: number | string;
|
|
603
|
+
/** 연도 select의 aria-label 및 빈 옵션 텍스트 (기본값: "Year") */
|
|
604
|
+
yearLabel?: string;
|
|
605
|
+
/** 월 select의 aria-label 및 빈 옵션 텍스트 (기본값: "Month") */
|
|
606
|
+
monthLabel?: string;
|
|
607
|
+
/** 일 select의 aria-label 및 빈 옵션 텍스트 (기본값: "Day") */
|
|
608
|
+
dayLabel?: string;
|
|
609
|
+
/**
|
|
610
|
+
* minDate 설정 시 스크린리더에 전달할 안내 문구 포맷.
|
|
611
|
+
* `{date}` 자리에 minDate 값이 치환됩니다. (기본값: "Minimum date: {date}")
|
|
612
|
+
*/
|
|
613
|
+
minDateSrFormat?: string;
|
|
614
|
+
/**
|
|
615
|
+
* selectableRange="until-today" 설정 시 스크린리더에 전달할 안내 문구.
|
|
616
|
+
* (기본값: "Selectable up to today")
|
|
617
|
+
*/
|
|
618
|
+
selectableRangeUntilTodaySrText?: string;
|
|
619
|
+
}
|
|
620
|
+
/**
|
|
621
|
+
* 연/월/일 선택형 데이트 피커를 렌더링한다.
|
|
622
|
+
* 입력 값과 선택 범위를 기준으로 옵션을 계산하고, 선택 변경을 상위로 전달한다.
|
|
623
|
+
* @param props 데이트 피커 속성
|
|
624
|
+
* @returns 렌더링된 데이트 피커 UI
|
|
625
|
+
*/
|
|
626
|
+
declare const DatePicker: ({ label, value, onChange, mode, startYear, endYear, minDate, selectableRange, disabled, fullWidth, width, yearLabel, monthLabel, dayLabel, minDateSrFormat, selectableRangeUntilTodaySrText, }: DatePickerProps) => react_jsx_runtime.JSX.Element;
|
|
627
|
+
|
|
596
628
|
interface FileInputProps extends React.InputHTMLAttributes<HTMLInputElement> {
|
|
597
629
|
/** 파일 선택 버튼 라벨 텍스트 (기본값: "Choose file") */
|
|
598
630
|
label?: string;
|
|
@@ -628,49 +660,6 @@ declare const Radio: {
|
|
|
628
660
|
displayName: string;
|
|
629
661
|
};
|
|
630
662
|
|
|
631
|
-
type SelectSize = "sm" | "md" | "lg";
|
|
632
|
-
type SelectVariant = "outline" | "filled" | "ghost";
|
|
633
|
-
interface SelectOption {
|
|
634
|
-
value: string;
|
|
635
|
-
label: string;
|
|
636
|
-
disabled?: boolean;
|
|
637
|
-
}
|
|
638
|
-
interface SelectProps {
|
|
639
|
-
/** 셀렉트 요소의 id (미입력 시 자동 생성) */
|
|
640
|
-
id?: string;
|
|
641
|
-
/** 셀렉트 위에 표시할 라벨 텍스트 */
|
|
642
|
-
label?: string;
|
|
643
|
-
/** 선택 전 표시할 플레이스홀더 (기본값: "Select…") */
|
|
644
|
-
placeholder?: string;
|
|
645
|
-
/** 표시할 옵션 목록 */
|
|
646
|
-
options: SelectOption[];
|
|
647
|
-
/** 제어형 선택 값 */
|
|
648
|
-
value?: string | null;
|
|
649
|
-
/** 값 변경 시 호출되는 콜백. 선택된 값과 전체 옵션 객체를 인자로 전달합니다. */
|
|
650
|
-
onChange?: (value: string | null, option?: SelectOption | null) => void;
|
|
651
|
-
/** 비제어형 초기 선택 값 */
|
|
652
|
-
defaultValue?: string | null;
|
|
653
|
-
/** 비활성화 여부 */
|
|
654
|
-
disabled?: boolean;
|
|
655
|
-
/** 셀렉트 크기 (기본값: "md") */
|
|
656
|
-
size?: SelectSize;
|
|
657
|
-
/** 셀렉트 스타일 변형 (기본값: "outline") */
|
|
658
|
-
variant?: SelectVariant;
|
|
659
|
-
/** 컨테이너 전체 너비 차지 여부 */
|
|
660
|
-
fullWidth?: boolean;
|
|
661
|
-
/** 루트 요소에 추가할 className */
|
|
662
|
-
className?: string;
|
|
663
|
-
/** 선택된 값 텍스트 정렬 (기본값: "left") */
|
|
664
|
-
textAlign?: "left" | "center";
|
|
665
|
-
}
|
|
666
|
-
/**
|
|
667
|
-
* 셀렉트 컴포넌트를 렌더링한다.
|
|
668
|
-
* 제어형/비제어형 상태를 정리하고, 키보드/마우스 상호작용과 드롭다운 표시를 관리한다.
|
|
669
|
-
* @param props 셀렉트 속성
|
|
670
|
-
* @returns 렌더링된 셀렉트 UI
|
|
671
|
-
*/
|
|
672
|
-
declare const Select: ({ id, label, placeholder, options, value, onChange, defaultValue, disabled, size, variant, fullWidth, className, textAlign, }: SelectProps) => react_jsx_runtime.JSX.Element;
|
|
673
|
-
|
|
674
663
|
interface SwitchProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "onChange"> {
|
|
675
664
|
/** 제어형 스위치 상태 */
|
|
676
665
|
checked?: boolean;
|
|
@@ -741,58 +730,69 @@ declare const TextField: {
|
|
|
741
730
|
displayName: string;
|
|
742
731
|
};
|
|
743
732
|
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
/**
|
|
748
|
-
|
|
749
|
-
/**
|
|
750
|
-
value?: string;
|
|
751
|
-
/** 날짜 변경 시 호출되는 콜백. `mode` 값에 따라 "YYYY-MM" 또는 "YYYY-MM-DD" 형식의 문자열이 전달됩니다. */
|
|
752
|
-
onChange: (value: string) => void;
|
|
753
|
-
/** 선택 모드 (기본값: "year-month-day") */
|
|
754
|
-
mode?: DatePickerMode;
|
|
755
|
-
/** 연도 선택 범위 시작 (기본값: 1950) */
|
|
756
|
-
startYear?: number;
|
|
757
|
-
/** 연도 선택 범위 끝 (기본값: 현재 연도 + 10) */
|
|
758
|
-
endYear?: number;
|
|
759
|
-
/** 선택 가능한 최소 날짜 ("YYYY-MM-DD" 형식) */
|
|
760
|
-
minDate?: string;
|
|
761
|
-
/** 선택 가능한 날짜 범위 ("all": 제한 없음, "until-today": 오늘까지) */
|
|
762
|
-
selectableRange?: SelectableRange;
|
|
763
|
-
/** 비활성화 여부 */
|
|
764
|
-
disabled?: boolean;
|
|
765
|
-
/** 데이트 피커가 컨테이너의 전체 너비를 차지할지 여부 */
|
|
733
|
+
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
734
|
+
/** 버튼 스타일 변형 (기본값: "primary") */
|
|
735
|
+
variant?: "primary" | "secondary" | "ghost" | "danger";
|
|
736
|
+
/** 버튼 크기 (기본값: "md") */
|
|
737
|
+
size?: "sm" | "md" | "lg";
|
|
738
|
+
/** 버튼이 컨테이너의 전체 너비를 차지할지 여부 */
|
|
766
739
|
fullWidth?: boolean;
|
|
767
740
|
/**
|
|
768
|
-
*
|
|
741
|
+
* 버튼의 커스텀 너비
|
|
769
742
|
* @deprecated `fullWidth` 사용 또는 CSS로 처리
|
|
770
743
|
*/
|
|
771
|
-
width?:
|
|
772
|
-
/** 연도 select의 aria-label 및 빈 옵션 텍스트 (기본값: "Year") */
|
|
773
|
-
yearLabel?: string;
|
|
774
|
-
/** 월 select의 aria-label 및 빈 옵션 텍스트 (기본값: "Month") */
|
|
775
|
-
monthLabel?: string;
|
|
776
|
-
/** 일 select의 aria-label 및 빈 옵션 텍스트 (기본값: "Day") */
|
|
777
|
-
dayLabel?: string;
|
|
778
|
-
/**
|
|
779
|
-
* minDate 설정 시 스크린리더에 전달할 안내 문구 포맷.
|
|
780
|
-
* `{date}` 자리에 minDate 값이 치환됩니다. (기본값: "Minimum date: {date}")
|
|
781
|
-
*/
|
|
782
|
-
minDateSrFormat?: string;
|
|
783
|
-
/**
|
|
784
|
-
* selectableRange="until-today" 설정 시 스크린리더에 전달할 안내 문구.
|
|
785
|
-
* (기본값: "Selectable up to today")
|
|
786
|
-
*/
|
|
787
|
-
selectableRangeUntilTodaySrText?: string;
|
|
744
|
+
width?: string;
|
|
788
745
|
}
|
|
789
746
|
/**
|
|
790
|
-
*
|
|
791
|
-
*
|
|
792
|
-
* @param props
|
|
793
|
-
* @returns 렌더링된
|
|
747
|
+
* 버튼을 렌더링한다.
|
|
748
|
+
* 전달된 props로 클래스 조합과 인라인 스타일을 계산한 뒤 버튼 요소를 반환한다.
|
|
749
|
+
* @param props 버튼 속성
|
|
750
|
+
* @returns 렌더링된 버튼 요소
|
|
794
751
|
*/
|
|
795
|
-
declare const
|
|
752
|
+
declare const Button: ({ variant, size, fullWidth, width, className, style, ...props }: ButtonProps) => react_jsx_runtime.JSX.Element;
|
|
753
|
+
|
|
754
|
+
type SelectSize = "sm" | "md" | "lg";
|
|
755
|
+
type SelectVariant = "outline" | "filled" | "ghost";
|
|
756
|
+
interface SelectOption {
|
|
757
|
+
value: string;
|
|
758
|
+
label: string;
|
|
759
|
+
disabled?: boolean;
|
|
760
|
+
}
|
|
761
|
+
interface SelectProps {
|
|
762
|
+
/** 셀렉트 요소의 id (미입력 시 자동 생성) */
|
|
763
|
+
id?: string;
|
|
764
|
+
/** 셀렉트 위에 표시할 라벨 텍스트 */
|
|
765
|
+
label?: string;
|
|
766
|
+
/** 선택 전 표시할 플레이스홀더 (기본값: "Select…") */
|
|
767
|
+
placeholder?: string;
|
|
768
|
+
/** 표시할 옵션 목록 */
|
|
769
|
+
options: SelectOption[];
|
|
770
|
+
/** 제어형 선택 값 */
|
|
771
|
+
value?: string | null;
|
|
772
|
+
/** 값 변경 시 호출되는 콜백. 선택된 값과 전체 옵션 객체를 인자로 전달합니다. */
|
|
773
|
+
onChange?: (value: string | null, option?: SelectOption | null) => void;
|
|
774
|
+
/** 비제어형 초기 선택 값 */
|
|
775
|
+
defaultValue?: string | null;
|
|
776
|
+
/** 비활성화 여부 */
|
|
777
|
+
disabled?: boolean;
|
|
778
|
+
/** 셀렉트 크기 (기본값: "md") */
|
|
779
|
+
size?: SelectSize;
|
|
780
|
+
/** 셀렉트 스타일 변형 (기본값: "outline") */
|
|
781
|
+
variant?: SelectVariant;
|
|
782
|
+
/** 컨테이너 전체 너비 차지 여부 */
|
|
783
|
+
fullWidth?: boolean;
|
|
784
|
+
/** 루트 요소에 추가할 className */
|
|
785
|
+
className?: string;
|
|
786
|
+
/** 선택된 값 텍스트 정렬 (기본값: "left") */
|
|
787
|
+
textAlign?: "left" | "center";
|
|
788
|
+
}
|
|
789
|
+
/**
|
|
790
|
+
* 셀렉트 컴포넌트를 렌더링한다.
|
|
791
|
+
* 제어형/비제어형 상태를 정리하고, 키보드/마우스 상호작용과 드롭다운 표시를 관리한다.
|
|
792
|
+
* @param props 셀렉트 속성
|
|
793
|
+
* @returns 렌더링된 셀렉트 UI
|
|
794
|
+
*/
|
|
795
|
+
declare const Select: ({ id, label, placeholder, options, value, onChange, defaultValue, disabled, size, variant, fullWidth, className, textAlign, }: SelectProps) => react_jsx_runtime.JSX.Element;
|
|
796
796
|
|
|
797
797
|
interface PaginationProps {
|
|
798
798
|
/** 현재 페이지 번호 (1-based) */
|
|
@@ -812,7 +812,7 @@ interface PaginationProps {
|
|
|
812
812
|
* @param props 페이지네이션 속성
|
|
813
813
|
* @returns 렌더링된 페이지네이션 UI
|
|
814
814
|
*/
|
|
815
|
-
declare const Pagination: ({ page, totalPages, onChange, prevLabel, nextLabel }: PaginationProps) => react_jsx_runtime.JSX.Element;
|
|
815
|
+
declare const Pagination: ({ page, totalPages, onChange, prevLabel, nextLabel, }: PaginationProps) => react_jsx_runtime.JSX.Element;
|
|
816
816
|
|
|
817
817
|
interface ModalProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
|
|
818
818
|
/** 모달 열림 여부 */
|