@bigtablet/design-system 3.4.1 → 3.5.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/dist/index.css +24 -1
- package/dist/index.d.ts +47 -7
- package/dist/index.js +470 -278
- package/dist/vanilla/bigtablet.min.css +1 -1
- package/dist/vanilla/bigtablet.min.js +16 -16
- package/package.json +1 -1
package/dist/index.css
CHANGED
|
@@ -1634,7 +1634,6 @@
|
|
|
1634
1634
|
.tooltip_position {
|
|
1635
1635
|
position: absolute;
|
|
1636
1636
|
z-index: 1000;
|
|
1637
|
-
pointer-events: none;
|
|
1638
1637
|
display: block;
|
|
1639
1638
|
width: max-content;
|
|
1640
1639
|
}
|
|
@@ -1696,6 +1695,7 @@
|
|
|
1696
1695
|
cursor: pointer;
|
|
1697
1696
|
overflow: hidden;
|
|
1698
1697
|
white-space: nowrap;
|
|
1698
|
+
text-decoration: none;
|
|
1699
1699
|
font-size: 14px;
|
|
1700
1700
|
font-weight: 500;
|
|
1701
1701
|
line-height: 20px;
|
|
@@ -1722,6 +1722,11 @@
|
|
|
1722
1722
|
.button:disabled {
|
|
1723
1723
|
cursor: not-allowed;
|
|
1724
1724
|
}
|
|
1725
|
+
.button_disabled {
|
|
1726
|
+
cursor: not-allowed;
|
|
1727
|
+
opacity: 0.38;
|
|
1728
|
+
pointer-events: none;
|
|
1729
|
+
}
|
|
1725
1730
|
.button_size_sm {
|
|
1726
1731
|
min-height: 32px;
|
|
1727
1732
|
}
|
|
@@ -5050,6 +5055,14 @@
|
|
|
5050
5055
|
width: 0%;
|
|
5051
5056
|
}
|
|
5052
5057
|
}
|
|
5058
|
+
@keyframes toast_progress_reduced {
|
|
5059
|
+
from {
|
|
5060
|
+
width: 0;
|
|
5061
|
+
}
|
|
5062
|
+
to {
|
|
5063
|
+
width: 0;
|
|
5064
|
+
}
|
|
5065
|
+
}
|
|
5053
5066
|
.toast_container {
|
|
5054
5067
|
position: fixed;
|
|
5055
5068
|
top: 16px;
|
|
@@ -5186,6 +5199,16 @@
|
|
|
5186
5199
|
.toast_progress_default {
|
|
5187
5200
|
background: var(--bt-color-text-body);
|
|
5188
5201
|
}
|
|
5202
|
+
.toast_item:hover .toast_progress,
|
|
5203
|
+
.toast_item:focus-within .toast_progress {
|
|
5204
|
+
animation-play-state: paused;
|
|
5205
|
+
}
|
|
5206
|
+
@media (prefers-reduced-motion: reduce) {
|
|
5207
|
+
.toast_progress {
|
|
5208
|
+
animation-name: toast_progress_reduced;
|
|
5209
|
+
width: 0;
|
|
5210
|
+
}
|
|
5211
|
+
}
|
|
5189
5212
|
|
|
5190
5213
|
/* src/ui/forms/toggle/style.scss */
|
|
5191
5214
|
@keyframes skeleton_loading {
|
package/dist/index.d.ts
CHANGED
|
@@ -544,7 +544,7 @@ interface TabProps extends Omit<React$1.ButtonHTMLAttributes<HTMLButtonElement>,
|
|
|
544
544
|
/** 이 tab의 value */
|
|
545
545
|
value: string;
|
|
546
546
|
}
|
|
547
|
-
declare const Tab: ({ value, className, children, onClick, ...props }: TabProps) => React$1.JSX.Element;
|
|
547
|
+
declare const Tab: ({ value, className, children, onClick, onKeyDown, ...props }: TabProps) => React$1.JSX.Element;
|
|
548
548
|
interface TabPanelProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
549
549
|
/** 이 panel을 활성화할 tab의 value */
|
|
550
550
|
value: string;
|
|
@@ -1119,6 +1119,11 @@ interface AlertOptions {
|
|
|
1119
1119
|
onConfirm?: () => void;
|
|
1120
1120
|
/** 취소 버튼 클릭 시 호출되는 콜백 */
|
|
1121
1121
|
onCancel?: () => void;
|
|
1122
|
+
/**
|
|
1123
|
+
* 오버레이 클릭으로 닫기 허용 여부 (기본값: true).
|
|
1124
|
+
* destructive 확인처럼 실수 닫힘을 막아야 하면 false 로.
|
|
1125
|
+
*/
|
|
1126
|
+
closeOnOverlay?: boolean;
|
|
1122
1127
|
}
|
|
1123
1128
|
interface AlertContextValue {
|
|
1124
1129
|
showAlert: (options: AlertOptions) => void;
|
|
@@ -1130,7 +1135,8 @@ declare const AlertProvider: React$1.FC<{
|
|
|
1130
1135
|
|
|
1131
1136
|
type ButtonVariant = "filled" | "tonal" | "outline" | "text";
|
|
1132
1137
|
type ButtonSize = "sm" | "md" | "lg" | "xl";
|
|
1133
|
-
|
|
1138
|
+
/** button/anchor 공통 스타일·콘텐츠 props */
|
|
1139
|
+
interface ButtonBaseProps {
|
|
1134
1140
|
/** 버튼 스타일 변형 (기본값: "filled") */
|
|
1135
1141
|
variant?: ButtonVariant;
|
|
1136
1142
|
/** 버튼 크기 (기본값: "md") */
|
|
@@ -1148,16 +1154,43 @@ interface ButtonProps extends React$1.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
|
1148
1154
|
* filled: 빨간 bg, outline: 빨간 텍스트/border, tonal: 빨간 wash.
|
|
1149
1155
|
*/
|
|
1150
1156
|
danger?: boolean;
|
|
1157
|
+
/**
|
|
1158
|
+
* 비활성화. button 은 native `disabled`, anchor 는 `aria-disabled`+`tabIndex=-1`+
|
|
1159
|
+
* 클릭 차단으로 처리(anchor 엔 native disabled 가 없으므로).
|
|
1160
|
+
*/
|
|
1161
|
+
disabled?: boolean;
|
|
1162
|
+
}
|
|
1163
|
+
/** `<button>` 으로 렌더링 (기본) */
|
|
1164
|
+
interface ButtonAsButton extends ButtonBaseProps, Omit<React$1.ButtonHTMLAttributes<HTMLButtonElement>, keyof ButtonBaseProps> {
|
|
1165
|
+
/** 렌더링할 요소 (기본값: "button") */
|
|
1166
|
+
as?: "button";
|
|
1167
|
+
/** button 렌더 시엔 href 를 허용하지 않음 (href 만 주면 anchor 로 분기되도록) */
|
|
1168
|
+
href?: never;
|
|
1151
1169
|
/** 루트 button 요소 ref (React 19 ref-as-prop) */
|
|
1152
1170
|
ref?: React$1.Ref<HTMLButtonElement>;
|
|
1153
1171
|
}
|
|
1172
|
+
/** `<a>` 로 렌더링 - 링크 시맨틱(우클릭 새 탭·미들클릭·SR 링크 안내) */
|
|
1173
|
+
interface ButtonAsAnchor extends ButtonBaseProps, Omit<React$1.AnchorHTMLAttributes<HTMLAnchorElement>, keyof ButtonBaseProps> {
|
|
1174
|
+
/** anchor 로 렌더링 - 생략 가능(href 만 줘도 anchor 로 분기) */
|
|
1175
|
+
as?: "a";
|
|
1176
|
+
/** 링크 대상 (anchor 필수) */
|
|
1177
|
+
href: string;
|
|
1178
|
+
/** 루트 anchor 요소 ref (React 19 ref-as-prop) */
|
|
1179
|
+
ref?: React$1.Ref<HTMLAnchorElement>;
|
|
1180
|
+
}
|
|
1181
|
+
/**
|
|
1182
|
+
* Button props - `as`/`href` 에 따라 button 또는 anchor 로 렌더링되는 discriminated union.
|
|
1183
|
+
* `as` 미지정 시 기본 `<button>` (기존 동작과 100% 호환).
|
|
1184
|
+
*/
|
|
1185
|
+
type ButtonProps = ButtonAsButton | ButtonAsAnchor;
|
|
1154
1186
|
/**
|
|
1155
1187
|
* 버튼을 렌더링한다.
|
|
1156
1188
|
* Figma DS 기준 4가지 variant(filled/tonal/outline/text)와 4가지 size(sm/md/lg/xl)를 지원한다.
|
|
1189
|
+
* `as="a"` (또는 `href` 지정) 시 동일 스타일의 anchor 로 렌더링한다.
|
|
1157
1190
|
* @param props 버튼 속성
|
|
1158
|
-
* @returns 렌더링된
|
|
1191
|
+
* @returns 렌더링된 button 또는 anchor 요소
|
|
1159
1192
|
*/
|
|
1160
|
-
declare const Button: (
|
|
1193
|
+
declare const Button: (props: ButtonProps) => React$1.JSX.Element;
|
|
1161
1194
|
|
|
1162
1195
|
type CardVariant = "default" | "accent" | "glass" | "outlined";
|
|
1163
1196
|
type CardFooterAlign = "start" | "between" | "end";
|
|
@@ -1243,8 +1276,10 @@ interface ChipProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "onClic
|
|
|
1243
1276
|
onClick?: (event: React$1.MouseEvent<HTMLButtonElement>) => void;
|
|
1244
1277
|
/** 삭제 버튼 클릭 시 콜백 */
|
|
1245
1278
|
onRemove?: () => void;
|
|
1279
|
+
/** 삭제 버튼 접근성 레이블 (기본값: "{label} 제거") - 칩이 여러 개일 때 대상 구분용 */
|
|
1280
|
+
removeLabel?: string;
|
|
1246
1281
|
}
|
|
1247
|
-
declare const Chip: ({ type, size, tone, label, selected, removable, disabled, open, leadingIcon, onClick, onRemove, className, ...props }: ChipProps) => React$1.JSX.Element;
|
|
1282
|
+
declare const Chip: ({ type, size, tone, label, selected, removable, disabled, open, leadingIcon, onClick, onRemove, removeLabel, className, ...props }: ChipProps) => React$1.JSX.Element;
|
|
1248
1283
|
|
|
1249
1284
|
type DatePickerMode = "year-month" | "year-month-day";
|
|
1250
1285
|
type SelectableRange = "all" | "until-today";
|
|
@@ -1347,7 +1382,7 @@ interface DrawerProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "titl
|
|
|
1347
1382
|
* @returns 열림 상태일 때 렌더링된 드로어, 닫힘 상태면 null
|
|
1348
1383
|
*/
|
|
1349
1384
|
declare const Drawer: {
|
|
1350
|
-
({ open, onClose, placement, size, title, footer, closeOnOverlay, showCloseIcon, closeLabel, ariaLabel, children, className, ...props }: DrawerProps): React$1.
|
|
1385
|
+
({ open, onClose, placement, size, title, footer, closeOnOverlay, showCloseIcon, closeLabel, ariaLabel, children, className, ...props }: DrawerProps): React$1.ReactPortal | null;
|
|
1351
1386
|
displayName: string;
|
|
1352
1387
|
};
|
|
1353
1388
|
|
|
@@ -1404,6 +1439,11 @@ interface DropdownCommonProps {
|
|
|
1404
1439
|
emptyText?: string;
|
|
1405
1440
|
/** 멀티 선택 요약 텍스트 (기본값: "N개 선택") */
|
|
1406
1441
|
selectedSummary?: (count: number) => string;
|
|
1442
|
+
/**
|
|
1443
|
+
* 네이티브 폼 제출 참여용 name. 지정 시 선택 값이 hidden input 으로 렌더되어
|
|
1444
|
+
* `<form>` POST 에 포함됩니다 (multiple 은 같은 name 의 hidden input 반복).
|
|
1445
|
+
*/
|
|
1446
|
+
name?: string;
|
|
1407
1447
|
}
|
|
1408
1448
|
/** 단일 선택 (기본) */
|
|
1409
1449
|
interface DropdownSingleProps extends DropdownCommonProps {
|
|
@@ -1674,7 +1714,7 @@ interface ModalProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title
|
|
|
1674
1714
|
* @param props 모달 속성
|
|
1675
1715
|
* @returns 열림 상태일 때 렌더링된 모달, 닫힘 상태면 null
|
|
1676
1716
|
*/
|
|
1677
|
-
declare const Modal: ({ open, onClose, closeOnOverlay, width, title, description, footer, footerAlign, showCloseIcon, closeLabel, children, className, ariaLabel, ...props }: ModalProps) => React$1.
|
|
1717
|
+
declare const Modal: ({ open, onClose, closeOnOverlay, width, title, description, footer, footerAlign, showCloseIcon, closeLabel, children, className, ariaLabel, ...props }: ModalProps) => React$1.ReactPortal | null;
|
|
1678
1718
|
|
|
1679
1719
|
interface OtpInputProps {
|
|
1680
1720
|
/** OTP 자릿수 (기본값: 6) */
|