@bigtablet/design-system 3.11.0 → 3.13.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.
- package/README.md +2 -1
- package/dist/index.css +312 -8
- package/dist/index.d.ts +111 -26
- package/dist/index.js +139 -59
- package/dist/styles/a11y/_index.scss +48 -1
- package/dist/styles/border-width/_index.scss +29 -0
- package/dist/styles/typography/_index.scss +29 -0
- package/dist/vanilla/bigtablet.min.css +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -211,6 +211,13 @@ interface EmptyStateProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "
|
|
|
211
211
|
action?: React$1.ReactNode;
|
|
212
212
|
/** 크기 (기본 "md") */
|
|
213
213
|
size?: "sm" | "md" | "lg";
|
|
214
|
+
/**
|
|
215
|
+
* 부모 높이를 채우고 내용을 세로 중앙에 둔다 (`flex: 1` + `justify-content: center`).
|
|
216
|
+
* 404 · 검색 결과 없음 · 빈 목록처럼 영역 한가운데 놓여야 하는 경우에 쓴다.
|
|
217
|
+
* **부모가 세로 flex 컨테이너여야 `flex: 1` 이 먹는다** - 아닌 경우 `height: 100%` 를 준 부모
|
|
218
|
+
* 안에 두거나 부모를 `display: flex; flex-direction: column` 으로 만들 것.
|
|
219
|
+
*/
|
|
220
|
+
fillHeight?: boolean;
|
|
214
221
|
}
|
|
215
222
|
/**
|
|
216
223
|
* 빈 상태 표시 - 데이터 없음, 검색 결과 없음, 시작 가이드 등.
|
|
@@ -225,7 +232,7 @@ interface EmptyStateProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "
|
|
|
225
232
|
* />
|
|
226
233
|
* ```
|
|
227
234
|
*/
|
|
228
|
-
declare const EmptyState: ({ illustration, title, description, action, size, className, ...props }: EmptyStateProps) => React$1.JSX.Element;
|
|
235
|
+
declare const EmptyState: ({ illustration, title, description, action, size, fillHeight, className, ...props }: EmptyStateProps) => React$1.JSX.Element;
|
|
229
236
|
|
|
230
237
|
type ErrorStateVariant = "page" | "widget";
|
|
231
238
|
interface ErrorStateProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title"> {
|
|
@@ -337,6 +344,8 @@ interface BreadcrumbProps extends React$1.HTMLAttributes<HTMLElement> {
|
|
|
337
344
|
items: BreadcrumbItem[];
|
|
338
345
|
/** 구분자 (기본값: ChevronRight 아이콘) */
|
|
339
346
|
separator?: React$1.ReactNode;
|
|
347
|
+
/** `<nav>` 랜드마크 이름 (기본값: "현재 위치"). 스크린리더의 리전 목록에 그대로 뜬다 */
|
|
348
|
+
navLabel?: string;
|
|
340
349
|
}
|
|
341
350
|
/**
|
|
342
351
|
* 페이지 위계 네비게이션. 마지막 아이템은 현재 페이지로 표시.
|
|
@@ -350,7 +359,7 @@ interface BreadcrumbProps extends React$1.HTMLAttributes<HTMLElement> {
|
|
|
350
359
|
* ]} />
|
|
351
360
|
* ```
|
|
352
361
|
*/
|
|
353
|
-
declare const Breadcrumb: ({ items, separator, className, ...props }: BreadcrumbProps) => React$1.JSX.Element;
|
|
362
|
+
declare const Breadcrumb: ({ items, separator, navLabel, className, ...props }: BreadcrumbProps) => React$1.JSX.Element;
|
|
354
363
|
|
|
355
364
|
interface MenuItem {
|
|
356
365
|
key: string;
|
|
@@ -589,7 +598,11 @@ interface PopoverProps {
|
|
|
589
598
|
defaultOpen?: boolean;
|
|
590
599
|
/** 열림 상태 변경 콜백 */
|
|
591
600
|
onOpenChange?: (open: boolean) => void;
|
|
592
|
-
/**
|
|
601
|
+
/**
|
|
602
|
+
* 팝오버 접근성 레이블. `content` 에 제목이 없으면 이 값이 접근성 이름이 된다.
|
|
603
|
+
* 폴백이 없으므로 `aria-labelledby` 와 함께 비우면 이름 없는 대화상자가 되고
|
|
604
|
+
* axe `aria-dialog-name` 이 잡는다.
|
|
605
|
+
*/
|
|
593
606
|
"aria-label"?: string;
|
|
594
607
|
/** dialog 의 접근성 라벨 요소 id */
|
|
595
608
|
"aria-labelledby"?: string;
|
|
@@ -1333,6 +1346,35 @@ interface MediaCardProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "t
|
|
|
1333
1346
|
*/
|
|
1334
1347
|
declare const MediaCard: ({ image, imagePosition, aspectRatio, heading, headingAs: HeadingTag, eyebrow, shadow, bordered, clickable, meta, children, className, ...props }: MediaCardProps) => React$1.JSX.Element;
|
|
1335
1348
|
|
|
1349
|
+
type ProseSize = "md" | "lg";
|
|
1350
|
+
interface ProseProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
1351
|
+
/**
|
|
1352
|
+
* 본문 스케일 (기본값: "md").
|
|
1353
|
+
* - `md`: 공지·FAQ·이메일 프리뷰처럼 좁은 폭에 들어가는 본문 (h1 24 / h2 20 / h3 18)
|
|
1354
|
+
* - `lg`: 약관·정책처럼 페이지를 채우는 긴 본문 (h1 28 / h2 24 / h3 20, 제목 위 여백도 넓다)
|
|
1355
|
+
*/
|
|
1356
|
+
size?: ProseSize;
|
|
1357
|
+
/** 루트 div 요소 ref (React 19 ref-as-prop) */
|
|
1358
|
+
ref?: React$1.Ref<HTMLDivElement>;
|
|
1359
|
+
}
|
|
1360
|
+
/**
|
|
1361
|
+
* 마크다운 등으로 렌더된 본문에 조판을 입힌다.
|
|
1362
|
+
*
|
|
1363
|
+
* **파서를 포함하지 않는다.** 앱이 `react-markdown` 등으로 만든 결과를 감싸면
|
|
1364
|
+
* 자손 셀렉터로 토큰 기반 타이포·간격·색이 적용된다(다크 모드 자동).
|
|
1365
|
+
*
|
|
1366
|
+
* @example
|
|
1367
|
+
* ```tsx
|
|
1368
|
+
* <Prose size="lg">
|
|
1369
|
+
* <ReactMarkdown>{policy}</ReactMarkdown>
|
|
1370
|
+
* </Prose>
|
|
1371
|
+
* ```
|
|
1372
|
+
*/
|
|
1373
|
+
declare const Prose: {
|
|
1374
|
+
({ size, className, children, ref, ...props }: ProseProps): React$1.JSX.Element;
|
|
1375
|
+
displayName: string;
|
|
1376
|
+
};
|
|
1377
|
+
|
|
1336
1378
|
type TableSize = "sm" | "md" | "lg";
|
|
1337
1379
|
type TableSortDirection = "asc" | "desc";
|
|
1338
1380
|
interface TableSort {
|
|
@@ -1501,7 +1543,7 @@ declare const Skeleton: ({ variant, width, height, radius, className, style, ...
|
|
|
1501
1543
|
interface SpinnerProps {
|
|
1502
1544
|
/** 스피너 크기(px) (기본값: 24) */
|
|
1503
1545
|
size?: number;
|
|
1504
|
-
/** 스피너 접근성 레이블 (기본값: "
|
|
1546
|
+
/** 스피너 접근성 레이블 (기본값: "로딩 중") */
|
|
1505
1547
|
ariaLabel?: string;
|
|
1506
1548
|
}
|
|
1507
1549
|
/**
|
|
@@ -1518,8 +1560,10 @@ interface ToastProviderProps {
|
|
|
1518
1560
|
children: React$1.ReactNode;
|
|
1519
1561
|
/** 최대 동시 표시 토스트 수 (기본값: 5) */
|
|
1520
1562
|
maxCount?: number;
|
|
1521
|
-
/** 토스트 닫기 버튼의 aria-label (기본값: "
|
|
1563
|
+
/** 토스트 닫기 버튼의 aria-label (기본값: "닫기") */
|
|
1522
1564
|
closeAriaLabel?: string;
|
|
1565
|
+
/** 토스트 리전(`role="region"`)의 접근성 이름 (기본값: "알림"). 스크린리더의 리전 목록에 뜬다 */
|
|
1566
|
+
regionLabel?: string;
|
|
1523
1567
|
}
|
|
1524
1568
|
/**
|
|
1525
1569
|
* 토스트 컨텍스트를 제공하는 Provider를 렌더링한다.
|
|
@@ -1527,7 +1571,7 @@ interface ToastProviderProps {
|
|
|
1527
1571
|
* @param props Provider 속성
|
|
1528
1572
|
* @returns 렌더링된 Provider와 토스트 컨테이너
|
|
1529
1573
|
*/
|
|
1530
|
-
declare const ToastProvider: ({ children, maxCount, closeAriaLabel, }: ToastProviderProps) => React$1.JSX.Element;
|
|
1574
|
+
declare const ToastProvider: ({ children, maxCount, closeAriaLabel, regionLabel, }: ToastProviderProps) => React$1.JSX.Element;
|
|
1531
1575
|
|
|
1532
1576
|
/**
|
|
1533
1577
|
* 토스트 메시지를 표시하는 훅.
|
|
@@ -1556,7 +1600,7 @@ interface TopLoadingProps {
|
|
|
1556
1600
|
height?: number;
|
|
1557
1601
|
/** 표시 여부 */
|
|
1558
1602
|
isLoading?: boolean;
|
|
1559
|
-
/** 프로그레스 바의 접근성 레이블 (기본값: "
|
|
1603
|
+
/** 프로그레스 바의 접근성 레이블 (기본값: "페이지 로딩 중") */
|
|
1560
1604
|
ariaLabel?: string;
|
|
1561
1605
|
}
|
|
1562
1606
|
/**
|
|
@@ -1614,20 +1658,20 @@ interface DatePickerBaseProps {
|
|
|
1614
1658
|
* @deprecated `fullWidth` 사용 또는 CSS로 처리
|
|
1615
1659
|
*/
|
|
1616
1660
|
width?: number | string;
|
|
1617
|
-
/** 연도 select의 라벨/플레이스홀더 (기본값: "
|
|
1661
|
+
/** 연도 select의 라벨/플레이스홀더 (기본값: "년") */
|
|
1618
1662
|
yearLabel?: string;
|
|
1619
|
-
/** 월 select의 라벨/플레이스홀더 (기본값: "
|
|
1663
|
+
/** 월 select의 라벨/플레이스홀더 (기본값: "월") */
|
|
1620
1664
|
monthLabel?: string;
|
|
1621
|
-
/** 일 select의 라벨/플레이스홀더 (기본값: "
|
|
1665
|
+
/** 일 select의 라벨/플레이스홀더 (기본값: "일") */
|
|
1622
1666
|
dayLabel?: string;
|
|
1623
1667
|
/**
|
|
1624
1668
|
* minDate 설정 시 스크린리더에 전달할 안내 문구 포맷.
|
|
1625
|
-
* `{date}` 자리에 minDate 값이 치환됩니다. (기본값: "
|
|
1669
|
+
* `{date}` 자리에 minDate 값이 치환됩니다. (기본값: "최소 날짜: {date}")
|
|
1626
1670
|
*/
|
|
1627
1671
|
minDateSrFormat?: string;
|
|
1628
1672
|
/**
|
|
1629
1673
|
* selectableRange="until-today" 설정 시 스크린리더에 전달할 안내 문구.
|
|
1630
|
-
* (기본값: "
|
|
1674
|
+
* (기본값: "오늘까지 선택 가능")
|
|
1631
1675
|
*/
|
|
1632
1676
|
selectableRangeUntilTodaySrText?: string;
|
|
1633
1677
|
}
|
|
@@ -1671,7 +1715,7 @@ interface DropdownCommonProps {
|
|
|
1671
1715
|
id?: string;
|
|
1672
1716
|
/** 드롭다운 위에 표시할 플로팅 라벨 텍스트 */
|
|
1673
1717
|
label?: string;
|
|
1674
|
-
/** 선택 전 표시할 플레이스홀더 (기본값: "
|
|
1718
|
+
/** 선택 전 표시할 플레이스홀더 (기본값: "선택…") */
|
|
1675
1719
|
placeholder?: string;
|
|
1676
1720
|
/** 표시할 옵션 목록 */
|
|
1677
1721
|
options: DropdownOption[];
|
|
@@ -1746,7 +1790,7 @@ declare const Dropdown: (props: DropdownProps) => React$1.JSX.Element;
|
|
|
1746
1790
|
|
|
1747
1791
|
type FileInputVariant = "button" | "preview";
|
|
1748
1792
|
interface FileInputProps extends React$1.InputHTMLAttributes<HTMLInputElement> {
|
|
1749
|
-
/** 파일 선택 버튼 라벨 / preview variant 빈 상태 텍스트 (기본값: "
|
|
1793
|
+
/** 파일 선택 버튼 라벨 / preview variant 빈 상태 텍스트 (기본값: "파일 선택") */
|
|
1750
1794
|
label?: string;
|
|
1751
1795
|
/** 파일 선택 시 호출되는 콜백 */
|
|
1752
1796
|
onFiles?: (files: FileList | null) => void;
|
|
@@ -2003,6 +2047,11 @@ interface TextFieldProps extends Omit<React$1.InputHTMLAttributes<HTMLInputEleme
|
|
|
2003
2047
|
error?: boolean;
|
|
2004
2048
|
/** 성공(검증 통과) 상태 여부. `error` 가 true 면 무시된다. */
|
|
2005
2049
|
success?: boolean;
|
|
2050
|
+
/**
|
|
2051
|
+
* 식별자(아이디·인증코드·시리얼·사업자번호)를 담는 칸인지. 켜면 `l`/`I`/`1` 과 `0`/`O` 를
|
|
2052
|
+
* 구분되게 렌더한다 — 사용자가 한 글자씩 옮겨 적는 값의 오탈자를 줄인다.
|
|
2053
|
+
*/
|
|
2054
|
+
identifier?: boolean;
|
|
2006
2055
|
/**
|
|
2007
2056
|
* 입력 필드 왼쪽에 표시할 **장식** 아이콘. `aria-hidden` 으로 접근성 트리에서 제외된다.
|
|
2008
2057
|
* 포커스 가능한 요소(버튼 등)를 넣어야 하면 `leadingAction` 을 쓸 것.
|
|
@@ -2028,13 +2077,15 @@ interface TextFieldProps extends Omit<React$1.InputHTMLAttributes<HTMLInputEleme
|
|
|
2028
2077
|
* 켜면 `type` 을 토글이 직접 관리한다 - 숨김 상태는 넘긴 `type`(보통 `"password"`), 표시 상태는 `"text"`.
|
|
2029
2078
|
*/
|
|
2030
2079
|
showPasswordToggle?: boolean;
|
|
2031
|
-
/** 토글 버튼의 `aria-label
|
|
2080
|
+
/** 토글 버튼의 `aria-label` (기본값: "비밀번호 표시" / "비밀번호 숨기기"). 다국어 앱은 주입할 것 */
|
|
2032
2081
|
passwordToggleLabels?: {
|
|
2033
2082
|
show: string;
|
|
2034
2083
|
hide: string;
|
|
2035
2084
|
};
|
|
2036
2085
|
/** 값이 있을 때 오른쪽에 지우기(X) 버튼 표시 여부 */
|
|
2037
2086
|
clearable?: boolean;
|
|
2087
|
+
/** 지우기(X) 버튼의 `aria-label` (기본값: "지우기") */
|
|
2088
|
+
clearLabel?: string;
|
|
2038
2089
|
/** 컨테이너 전체 너비 차지 여부 */
|
|
2039
2090
|
fullWidth?: boolean;
|
|
2040
2091
|
/** 값 변경 콜백 (canonical). 호출 시점은 `imeStrategy` 에 따름 (기본: 조합 완료 후) */
|
|
@@ -2063,7 +2114,7 @@ interface TextFieldProps extends Omit<React$1.InputHTMLAttributes<HTMLInputEleme
|
|
|
2063
2114
|
* @returns 렌더링된 텍스트 필드 UI
|
|
2064
2115
|
*/
|
|
2065
2116
|
declare const TextField: {
|
|
2066
|
-
({ id, label, showLabel, supportingText, error, success, leadingIcon, trailingIcon, leadingAction, trailingAction, showPasswordToggle, passwordToggleLabels, clearable, type, fullWidth, size, variant, className, onValueChange, onChangeAction, imeStrategy, value, defaultValue, transformValue, ref, ...props }: TextFieldProps): React$1.JSX.Element;
|
|
2117
|
+
({ id, label, showLabel, supportingText, error, success, identifier, leadingIcon, trailingIcon, leadingAction, trailingAction, showPasswordToggle, passwordToggleLabels, clearable, clearLabel, type, fullWidth, size, variant, className, onValueChange, onChangeAction, imeStrategy, value, defaultValue, transformValue, ref, ...props }: TextFieldProps): React$1.JSX.Element;
|
|
2067
2118
|
displayName: string;
|
|
2068
2119
|
};
|
|
2069
2120
|
|
|
@@ -2273,10 +2324,12 @@ interface PaginationBaseProps {
|
|
|
2273
2324
|
page: number;
|
|
2274
2325
|
/** 전체 페이지 수 */
|
|
2275
2326
|
totalPages: number;
|
|
2276
|
-
/** 이전 페이지 버튼 aria-label (기본값: "
|
|
2327
|
+
/** 이전 페이지 버튼 aria-label (기본값: "이전 페이지") */
|
|
2277
2328
|
prevLabel?: string;
|
|
2278
|
-
/** 다음 페이지 버튼 aria-label (기본값: "
|
|
2329
|
+
/** 다음 페이지 버튼 aria-label (기본값: "다음 페이지") */
|
|
2279
2330
|
nextLabel?: string;
|
|
2331
|
+
/** `<nav>` 랜드마크 이름 (기본값: "페이지 이동"). 스크린리더의 리전 목록에 그대로 뜬다 */
|
|
2332
|
+
navLabel?: string;
|
|
2280
2333
|
}
|
|
2281
2334
|
type PaginationCallbacks = {
|
|
2282
2335
|
onPageChange: (page: number) => void;
|
|
@@ -2292,11 +2345,11 @@ type PaginationProps = PaginationBaseProps & PaginationCallbacks;
|
|
|
2292
2345
|
* @param props 페이지네이션 속성
|
|
2293
2346
|
* @returns 렌더링된 페이지네이션 UI
|
|
2294
2347
|
*/
|
|
2295
|
-
declare const Pagination: ({ page, totalPages, onPageChange, onChange, prevLabel, nextLabel, }: PaginationProps) => React$1.JSX.Element;
|
|
2348
|
+
declare const Pagination: ({ page, totalPages, onPageChange, onChange, prevLabel, nextLabel, navLabel, }: PaginationProps) => React$1.JSX.Element;
|
|
2296
2349
|
|
|
2297
2350
|
/** Drawer 가 미끄러져 들어오는 방향 (top 은 범위 외) */
|
|
2298
2351
|
type DrawerPlacement = "left" | "right" | "bottom";
|
|
2299
|
-
interface DrawerProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title" | "onClick" | "onKeyDown" | "
|
|
2352
|
+
interface DrawerProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title" | "onClick" | "onKeyDown" | "onPointerDown"> {
|
|
2300
2353
|
/** 드로어 열림 여부 */
|
|
2301
2354
|
open: boolean;
|
|
2302
2355
|
/** 드로어 닫기 콜백 */
|
|
@@ -2311,12 +2364,28 @@ interface DrawerProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "titl
|
|
|
2311
2364
|
footer?: React$1.ReactNode;
|
|
2312
2365
|
/** 오버레이 클릭 시 닫기 여부 (기본값: true) */
|
|
2313
2366
|
closeOnOverlay?: boolean;
|
|
2367
|
+
/**
|
|
2368
|
+
* Escape 와 오버레이 클릭을 한 축으로 묶는다. 사용자에게는 둘 다 "실수로 닫기" 축이라
|
|
2369
|
+
* 따로 다루면 한쪽만 막는 실수가 나온다. `false` 면 두 경로 모두 닫지 않는다.
|
|
2370
|
+
*
|
|
2371
|
+
* 주면 `closeOnOverlay` 를 이긴다. 안 주면 기존 동작 그대로다 - 오버레이는
|
|
2372
|
+
* `closeOnOverlay`(기본 `true`), Escape 는 항상 켜짐.
|
|
2373
|
+
*/
|
|
2374
|
+
dismissible?: boolean;
|
|
2314
2375
|
/** 우상단 X 닫기 아이콘 표시 여부 (기본값: true) */
|
|
2315
2376
|
showCloseIcon?: boolean;
|
|
2316
2377
|
/** X 닫기 버튼 접근성 레이블 (기본값: "닫기") */
|
|
2317
2378
|
closeLabel?: string;
|
|
2318
|
-
/**
|
|
2379
|
+
/**
|
|
2380
|
+
* 드로어 접근성 레이블. `title` 이 없을 때 이 값이 접근성 이름이 된다.
|
|
2381
|
+
* 둘 다 비우면 이름 없는 대화상자가 되고 axe `aria-dialog-name` 이 잡는다.
|
|
2382
|
+
*/
|
|
2319
2383
|
ariaLabel?: string;
|
|
2384
|
+
/**
|
|
2385
|
+
* 퇴출 애니메이션이 끝나 패널이 실제로 언마운트된 뒤 호출된다.
|
|
2386
|
+
* `open` 을 끈 직후가 아니라 이 시점에 상세 데이터를 비워야 본문만 먼저 사라지지 않는다.
|
|
2387
|
+
*/
|
|
2388
|
+
onExited?: () => void;
|
|
2320
2389
|
}
|
|
2321
2390
|
/**
|
|
2322
2391
|
* 화면 가장자리에서 미끄러져 들어오는 패널(Drawer)을 렌더링한다.
|
|
@@ -2326,18 +2395,26 @@ interface DrawerProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "titl
|
|
|
2326
2395
|
* @returns 열림 상태일 때 렌더링된 드로어, 닫힘 상태면 null
|
|
2327
2396
|
*/
|
|
2328
2397
|
declare const Drawer: {
|
|
2329
|
-
({ open, onClose, placement, size, title, footer, closeOnOverlay, showCloseIcon, closeLabel, ariaLabel, children, className, ...props }: DrawerProps): React$1.ReactPortal | null;
|
|
2398
|
+
({ open, onClose, placement, size, title, footer, closeOnOverlay, dismissible, showCloseIcon, closeLabel, ariaLabel, onExited, children, className, ...props }: DrawerProps): React$1.ReactPortal | null;
|
|
2330
2399
|
displayName: string;
|
|
2331
2400
|
};
|
|
2332
2401
|
|
|
2333
2402
|
type ModalFooterAlign = "end" | "between" | "start";
|
|
2334
|
-
interface ModalProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title" | "onClick" | "onKeyDown" | "
|
|
2403
|
+
interface ModalProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title" | "onClick" | "onKeyDown" | "onPointerDown"> {
|
|
2335
2404
|
/** 모달 열림 여부 */
|
|
2336
2405
|
open: boolean;
|
|
2337
2406
|
/** 모달 닫기 콜백 */
|
|
2338
2407
|
onClose?: () => void;
|
|
2339
2408
|
/** 오버레이 클릭 시 닫기 여부 (기본값: true) */
|
|
2340
2409
|
closeOnOverlay?: boolean;
|
|
2410
|
+
/**
|
|
2411
|
+
* Escape 와 오버레이 클릭을 한 축으로 묶는다. 사용자에게는 둘 다 "실수로 닫기" 축이라
|
|
2412
|
+
* 따로 다루면 한쪽만 막는 실수가 나온다. `false` 면 두 경로 모두 닫지 않는다.
|
|
2413
|
+
*
|
|
2414
|
+
* 주면 `closeOnOverlay` 를 이긴다. 안 주면 기존 동작 그대로다 - 오버레이는
|
|
2415
|
+
* `closeOnOverlay`(기본 `true`), Escape 는 항상 켜짐.
|
|
2416
|
+
*/
|
|
2417
|
+
dismissible?: boolean;
|
|
2341
2418
|
/** 모달 패널 너비 (기본값: 480) */
|
|
2342
2419
|
width?: number | string;
|
|
2343
2420
|
/** 모달 제목 (h2, heading_large_bold) */
|
|
@@ -2352,8 +2429,16 @@ interface ModalProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title
|
|
|
2352
2429
|
showCloseIcon?: boolean;
|
|
2353
2430
|
/** X 닫기 버튼 접근성 레이블 (기본값: "닫기") */
|
|
2354
2431
|
closeLabel?: string;
|
|
2355
|
-
/**
|
|
2432
|
+
/**
|
|
2433
|
+
* 모달 접근성 레이블. `title` 이 없으면 이 값이 유일한 접근성 이름이다 - 폴백이 없으므로
|
|
2434
|
+
* 둘 다 비우면 이름 없는 대화상자가 되고 axe `aria-dialog-name` 이 잡는다.
|
|
2435
|
+
*/
|
|
2356
2436
|
ariaLabel?: string;
|
|
2437
|
+
/**
|
|
2438
|
+
* 퇴출 애니메이션이 끝나 패널이 실제로 언마운트된 뒤 호출된다.
|
|
2439
|
+
* `open` 을 끈 직후가 아니라 이 시점에 상세 데이터를 비워야 본문만 먼저 사라지지 않는다.
|
|
2440
|
+
*/
|
|
2441
|
+
onExited?: () => void;
|
|
2357
2442
|
}
|
|
2358
2443
|
/**
|
|
2359
2444
|
* 모달을 렌더링한다.
|
|
@@ -2361,7 +2446,7 @@ interface ModalProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title
|
|
|
2361
2446
|
* @param props 모달 속성
|
|
2362
2447
|
* @returns 열림 상태일 때 렌더링된 모달, 닫힘 상태면 null
|
|
2363
2448
|
*/
|
|
2364
|
-
declare const Modal: ({ open, onClose, closeOnOverlay, width, title, description, footer, footerAlign, showCloseIcon, closeLabel, children, className, ariaLabel, ...props }: ModalProps) => React$1.ReactPortal | null;
|
|
2449
|
+
declare const Modal: ({ open, onClose, closeOnOverlay, dismissible, width, title, description, footer, footerAlign, showCloseIcon, closeLabel, children, className, ariaLabel, onExited, ...props }: ModalProps) => React$1.ReactPortal | null;
|
|
2365
2450
|
|
|
2366
2451
|
type ThemeMode = "light" | "dark" | "system";
|
|
2367
2452
|
type ResolvedTheme = "light" | "dark";
|
|
@@ -2558,4 +2643,4 @@ interface StackProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
|
2558
2643
|
*/
|
|
2559
2644
|
declare const Stack: ({ direction, gap, align, justify, wrap, as: Tag, ref, className, children, style, ...props }: StackProps) => React$1.JSX.Element;
|
|
2560
2645
|
|
|
2561
|
-
export { Accordion, type AccordionItem, type AccordionProps, type AlertActionsAlign, type AlertOptions, AlertProvider, type AlertVariant, Avatar, type AvatarProps, type AvatarShape, type AvatarSize, Badge, type BadgeAppearance, type BadgeProps, type BadgeShape, type BadgeSize, type BadgeVariant, BottomNav, BottomNavItem, type BottomNavItemProps, type BottomNavProps, BottomNavSpacer, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, Button, type ButtonAsAnchor, type ButtonAsButton, type ButtonProps, type ButtonSize, type ButtonVariant, Card, type CardFooterAlign, type CardProps, type CardVariant, Checkbox, type CheckboxProps, Chip, type ChipProps, type ChipSize, type ChipTone, type ChipType, Container, type ContainerProps, type ContainerSize, type CropImageSize, type CropOffset, type CropRect, DatePicker, type DatePickerProps, Divider, type DividerProps, Drawer, type DrawerPlacement, type DrawerProps, Dropdown, type DropdownMultipleProps, type DropdownOption, type DropdownProps, type DropdownSingleProps, type DropdownSize, type DropdownVariant, EmptyState, type EmptyStateProps, ErrorState, type ErrorStateProps, type ErrorStateVariant, FileInput, type FileInputProps, type FileInputVariant, Grid, type GridCols, type GridGap, type GridProps, Hero, type HeroAction, type HeroAlign, type HeroHeight, type HeroOverlay, type HeroProps, Icon, IconButton, type IconButtonProps, type IconButtonSize, type IconButtonVariant, type IconProps, ImageCropper, type ImageCropperHandle, type ImageCropperProps, type ImeStrategy, LinearProgress, type LinearProgressProps, ListItem, type ListItemProps, MediaCard, type MediaCardImage, type MediaCardImagePosition, type MediaCardProps, type MediaCardShadow, Menu, type MenuItem, type MenuProps, Modal, type ModalFooterAlign, type ModalProps, NavBar, type NavBarLayout, type NavBarLocaleConfig, type NavBarLocaleOption, type NavBarProps, type NavBarVariant, NavLink, type NavLinkProps, OtpInput, type OtpInputProps, Pagination, type PaginationProps, Popover, type PopoverPlacement, type PopoverProps, Radio, RadioGroup, type RadioGroupContextValue, type RadioGroupOrientation, type RadioGroupProps, type RadioGroupSize, type RadioProps, type ResolvedTheme, Section, type SectionBg, type SectionProps, type SectionSpacing, Sidebar, SidebarItem, type SidebarItemProps, type SidebarMode, type SidebarProps, SidebarSection, type SidebarSectionProps, Skeleton, type SkeletonProps, type SkeletonVariant, Spinner, type SpinnerProps, Stack, type StackAlign, type StackDirection, type StackGap, type StackJustify, type StackProps, type StackWrap, Tab, TabList, type TabListProps, TabPanel, type TabPanelProps, type TabProps, Table, type TableColumn, type TableProps, type TableSize, type TableSort, type TableSortDirection, Tabs, type TabsProps, type TabsSize, type TabsVariant, TextField, type TextFieldProps, type TextFieldSize, type TextFieldVariant, Textarea, type TextareaProps, type TextareaResize, type TextareaSize, type ThemeMode, ThemeProvider, type ThemeProviderProps, ToastProvider, type ToastProviderProps, type ToastVariant, Toggle, type ToggleProps, Tooltip, type TooltipPlacement, type TooltipProps, TopLoading, type TopLoadingProps, a11y, baseBorderWidth, baseColors, baseTypography, borderWidth, breakpoints, cn, colors, elevation, iconSize, motion, opacity, radius, skeleton, spacing, typography, useAlert, useFocusTrap, useRadioGroupContext, useReducedMotion, useSpringHover, useSpringPresence, useTheme, useToast, zIndex };
|
|
2646
|
+
export { Accordion, type AccordionItem, type AccordionProps, type AlertActionsAlign, type AlertOptions, AlertProvider, type AlertVariant, Avatar, type AvatarProps, type AvatarShape, type AvatarSize, Badge, type BadgeAppearance, type BadgeProps, type BadgeShape, type BadgeSize, type BadgeVariant, BottomNav, BottomNavItem, type BottomNavItemProps, type BottomNavProps, BottomNavSpacer, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, Button, type ButtonAsAnchor, type ButtonAsButton, type ButtonProps, type ButtonSize, type ButtonVariant, Card, type CardFooterAlign, type CardProps, type CardVariant, Checkbox, type CheckboxProps, Chip, type ChipProps, type ChipSize, type ChipTone, type ChipType, Container, type ContainerProps, type ContainerSize, type CropImageSize, type CropOffset, type CropRect, DatePicker, type DatePickerProps, Divider, type DividerProps, Drawer, type DrawerPlacement, type DrawerProps, Dropdown, type DropdownMultipleProps, type DropdownOption, type DropdownProps, type DropdownSingleProps, type DropdownSize, type DropdownVariant, EmptyState, type EmptyStateProps, ErrorState, type ErrorStateProps, type ErrorStateVariant, FileInput, type FileInputProps, type FileInputVariant, Grid, type GridCols, type GridGap, type GridProps, Hero, type HeroAction, type HeroAlign, type HeroHeight, type HeroOverlay, type HeroProps, Icon, IconButton, type IconButtonProps, type IconButtonSize, type IconButtonVariant, type IconProps, ImageCropper, type ImageCropperHandle, type ImageCropperProps, type ImeStrategy, LinearProgress, type LinearProgressProps, ListItem, type ListItemProps, MediaCard, type MediaCardImage, type MediaCardImagePosition, type MediaCardProps, type MediaCardShadow, Menu, type MenuItem, type MenuProps, Modal, type ModalFooterAlign, type ModalProps, NavBar, type NavBarLayout, type NavBarLocaleConfig, type NavBarLocaleOption, type NavBarProps, type NavBarVariant, NavLink, type NavLinkProps, OtpInput, type OtpInputProps, Pagination, type PaginationProps, Popover, type PopoverPlacement, type PopoverProps, Prose, type ProseProps, type ProseSize, Radio, RadioGroup, type RadioGroupContextValue, type RadioGroupOrientation, type RadioGroupProps, type RadioGroupSize, type RadioProps, type ResolvedTheme, Section, type SectionBg, type SectionProps, type SectionSpacing, Sidebar, SidebarItem, type SidebarItemProps, type SidebarMode, type SidebarProps, SidebarSection, type SidebarSectionProps, Skeleton, type SkeletonProps, type SkeletonVariant, Spinner, type SpinnerProps, Stack, type StackAlign, type StackDirection, type StackGap, type StackJustify, type StackProps, type StackWrap, Tab, TabList, type TabListProps, TabPanel, type TabPanelProps, type TabProps, Table, type TableColumn, type TableProps, type TableSize, type TableSort, type TableSortDirection, Tabs, type TabsProps, type TabsSize, type TabsVariant, TextField, type TextFieldProps, type TextFieldSize, type TextFieldVariant, Textarea, type TextareaProps, type TextareaResize, type TextareaSize, type ThemeMode, ThemeProvider, type ThemeProviderProps, ToastProvider, type ToastProviderProps, type ToastVariant, Toggle, type ToggleProps, Tooltip, type TooltipPlacement, type TooltipProps, TopLoading, type TopLoadingProps, a11y, baseBorderWidth, baseColors, baseTypography, borderWidth, breakpoints, cn, colors, elevation, iconSize, motion, opacity, radius, skeleton, spacing, typography, useAlert, useFocusTrap, useRadioGroupContext, useReducedMotion, useSpringHover, useSpringPresence, useTheme, useToast, zIndex };
|