@bestow-ui/react 1.1.0 → 1.2.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 +4 -2
- package/dist/{chunk-PFEZ3D2H.js → chunk-LHT64JDG.js} +7 -1
- package/dist/chunk-LHT64JDG.js.map +1 -0
- package/dist/client.js +698 -692
- package/dist/client.js.map +1 -1
- package/dist/index.cjs +1096 -847
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +736 -638
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +211 -115
- package/dist/index.d.ts +211 -115
- package/dist/shared.js +236 -3
- package/dist/shared.js.map +1 -1
- package/package.json +1 -2
- package/dist/chunk-PFEZ3D2H.js.map +0 -1
package/dist/index.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as _bestow_ui_tokens from '@bestow-ui/tokens';
|
|
2
2
|
import { space } from '@bestow-ui/tokens';
|
|
3
3
|
import * as react from 'react';
|
|
4
|
-
import { ReactNode, HTMLAttributes, CSSProperties, ComponentPropsWithoutRef, InputHTMLAttributes,
|
|
4
|
+
import { ReactNode, HTMLAttributes, ElementType, CSSProperties, ComponentPropsWithoutRef, InputHTMLAttributes, ButtonHTMLAttributes, AnchorHTMLAttributes, ReactElement, TdHTMLAttributes, ThHTMLAttributes, TextareaHTMLAttributes } from 'react';
|
|
5
5
|
import * as RadixAccordion from '@radix-ui/react-accordion';
|
|
6
6
|
import * as Dialog from '@radix-ui/react-dialog';
|
|
7
7
|
import * as RadixMenu from '@radix-ui/react-dropdown-menu';
|
|
@@ -292,6 +292,9 @@ interface BestowMessages {
|
|
|
292
292
|
clearSelection?: string;
|
|
293
293
|
/** SkipLink — "본문 바로가기" (1.0 이후 추가, 선택 키) */
|
|
294
294
|
skipToContent?: string;
|
|
295
|
+
/** NumberInput −/+ 버튼 — "줄이기", "늘리기" (1.0 이후 추가, 선택 키) */
|
|
296
|
+
decrement?: string;
|
|
297
|
+
increment?: string;
|
|
295
298
|
/** Slider 범위 손잡이 — "최소", "최대" */
|
|
296
299
|
rangeStart: string;
|
|
297
300
|
rangeEnd: string;
|
|
@@ -447,6 +450,118 @@ interface AgreementItem {
|
|
|
447
450
|
/** 필수 항목에 모두 동의했는지 */
|
|
448
451
|
declare function hasAllRequiredAgreements(items: AgreementItem[], value: string[]): boolean;
|
|
449
452
|
|
|
453
|
+
interface BadgeProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'color'> {
|
|
454
|
+
/** 시각적 스타일 */
|
|
455
|
+
variant?: 'solid' | 'soft' | 'outline';
|
|
456
|
+
/** 의미 색상 */
|
|
457
|
+
color?: 'primary' | 'neutral' | 'danger' | 'success' | 'warning';
|
|
458
|
+
/** 크기 */
|
|
459
|
+
size?: 'sm' | 'md' | 'lg';
|
|
460
|
+
/** 텍스트 앞에 표시할 아이콘 (장식용 — 의미는 텍스트로 전달한다) */
|
|
461
|
+
startIcon?: ReactNode;
|
|
462
|
+
}
|
|
463
|
+
declare const Badge: react.ForwardRefExoticComponent<BadgeProps & react.RefAttributes<HTMLSpanElement>>;
|
|
464
|
+
|
|
465
|
+
interface CardProps extends HTMLAttributes<HTMLElement> {
|
|
466
|
+
/** 시각적 스타일. outline 은 테두리, elevated 는 그림자(다크 모드는 가장자리 ring 포함), soft 는 옅은 배경 */
|
|
467
|
+
variant?: 'outline' | 'elevated' | 'soft';
|
|
468
|
+
/** 안쪽 여백 (sm 16px, md 24px, lg 32px). 이미지를 가장자리까지 붙이려면 none */
|
|
469
|
+
padding?: 'none' | 'sm' | 'md' | 'lg';
|
|
470
|
+
/** 렌더링할 요소 (기본 div). 목록이면 li, 독립된 콘텐츠면 article 등 */
|
|
471
|
+
as?: ElementType;
|
|
472
|
+
}
|
|
473
|
+
/** 배경·테두리·radius·padding 을 가진 컨테이너. 자식 사이 간격은 16px. */
|
|
474
|
+
declare const Card: react.ForwardRefExoticComponent<CardProps & react.RefAttributes<HTMLElement>>;
|
|
475
|
+
type CardSectionProps = HTMLAttributes<HTMLDivElement>;
|
|
476
|
+
/** 제목·설명 영역. Typography 와 함께 쓴다. */
|
|
477
|
+
declare const CardHeader: react.ForwardRefExoticComponent<CardSectionProps & react.RefAttributes<HTMLDivElement>>;
|
|
478
|
+
/** 본문 영역 */
|
|
479
|
+
declare const CardBody: react.ForwardRefExoticComponent<CardSectionProps & react.RefAttributes<HTMLDivElement>>;
|
|
480
|
+
/** 버튼 등 동작 영역. 오른쪽 정렬 */
|
|
481
|
+
declare const CardFooter: react.ForwardRefExoticComponent<CardSectionProps & react.RefAttributes<HTMLDivElement>>;
|
|
482
|
+
|
|
483
|
+
interface DividerProps extends HTMLAttributes<HTMLDivElement> {
|
|
484
|
+
/** 방향. vertical 은 flex 행 안에서 부모 높이를 채운다 */
|
|
485
|
+
orientation?: 'horizontal' | 'vertical';
|
|
486
|
+
/** 시각적 구분만 하고 의미가 없으면 true — 스크린리더에서 숨긴다 */
|
|
487
|
+
decorative?: boolean;
|
|
488
|
+
/**
|
|
489
|
+
* 가운데에 표시할 텍스트 (예: "또는"). horizontal 에서만 쓴다.
|
|
490
|
+
* separator 역할의 자식은 스크린리더가 읽지 않으므로, 텍스트가 있으면 선만 숨기고 텍스트는 읽히게 둔다.
|
|
491
|
+
*/
|
|
492
|
+
children?: ReactNode;
|
|
493
|
+
}
|
|
494
|
+
declare const Divider: react.ForwardRefExoticComponent<DividerProps & react.RefAttributes<HTMLDivElement>>;
|
|
495
|
+
|
|
496
|
+
interface ProgressProps extends Omit<HTMLAttributes<HTMLDivElement>, 'color'> {
|
|
497
|
+
/** 현재 값 (0 ~ max). 생략하거나 null 이면 진행률을 모르는 상태(indeterminate)로 움직이는 막대를 보여 준다 */
|
|
498
|
+
value?: number | null;
|
|
499
|
+
/** 최댓값 */
|
|
500
|
+
max?: number;
|
|
501
|
+
/** 막대 위에 보이는 레이블. progressbar 의 이름이 된다 */
|
|
502
|
+
label?: ReactNode;
|
|
503
|
+
/** 레이블이 없을 때 스크린리더용 이름 */
|
|
504
|
+
'aria-label'?: string;
|
|
505
|
+
/** 오른쪽에 값 텍스트(기본 "42%")를 보여 준다 */
|
|
506
|
+
showValue?: boolean;
|
|
507
|
+
/** 값 텍스트 형식. 화면 표시와 스크린리더(aria-valuetext)에 함께 쓴다 (예: (v, max) => `${v}/${max}개`) */
|
|
508
|
+
formatValue?: (value: number, max: number) => string;
|
|
509
|
+
/** 막대 두께 (sm 4px · md 8px · lg 12px) */
|
|
510
|
+
size?: 'sm' | 'md' | 'lg';
|
|
511
|
+
/** 의미 색상 */
|
|
512
|
+
color?: 'primary' | 'neutral' | 'success' | 'warning' | 'danger';
|
|
513
|
+
}
|
|
514
|
+
declare const Progress: react.ForwardRefExoticComponent<ProgressProps & react.RefAttributes<HTMLDivElement>>;
|
|
515
|
+
|
|
516
|
+
interface SkeletonProps extends HTMLAttributes<HTMLSpanElement> {
|
|
517
|
+
/** 모양. text 는 글자 높이(1em), circle 은 width 를 지름으로 쓴다 */
|
|
518
|
+
variant?: 'text' | 'rect' | 'circle';
|
|
519
|
+
/** 너비. 숫자는 px (기본: text·rect 100%, circle 40px) */
|
|
520
|
+
width?: number | string;
|
|
521
|
+
/** 높이. 숫자는 px (기본: text 1em, rect 100px, circle 은 width 와 같음) */
|
|
522
|
+
height?: number | string;
|
|
523
|
+
/** text 에서 여러 줄을 그린다. 마지막 줄은 60% 너비 */
|
|
524
|
+
lines?: number;
|
|
525
|
+
}
|
|
526
|
+
/**
|
|
527
|
+
* 콘텐츠를 불러오는 동안 자리를 표시한다. 장식용이라 스크린리더에서 숨긴다 —
|
|
528
|
+
* 로딩 중인 영역(감싸는 요소)에 `aria-busy="true"` 를 붙여 상태를 알린다.
|
|
529
|
+
*/
|
|
530
|
+
declare const Skeleton: react.ForwardRefExoticComponent<SkeletonProps & react.RefAttributes<HTMLSpanElement>>;
|
|
531
|
+
|
|
532
|
+
interface StackProps extends HTMLAttributes<HTMLElement> {
|
|
533
|
+
/** 렌더링할 요소 */
|
|
534
|
+
as?: ElementType;
|
|
535
|
+
/** 배치 방향 */
|
|
536
|
+
direction?: 'row' | 'column' | 'row-reverse' | 'column-reverse';
|
|
537
|
+
/** 자식 사이 간격 (space 토큰 키) */
|
|
538
|
+
gap?: keyof typeof space;
|
|
539
|
+
/** 교차축 정렬 (align-items) */
|
|
540
|
+
align?: 'start' | 'center' | 'end' | 'stretch' | 'baseline';
|
|
541
|
+
/** 주축 정렬 (justify-content) */
|
|
542
|
+
justify?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';
|
|
543
|
+
/** 줄바꿈 허용 */
|
|
544
|
+
wrap?: boolean;
|
|
545
|
+
}
|
|
546
|
+
declare const Stack: react.ForwardRefExoticComponent<StackProps & react.RefAttributes<HTMLElement>>;
|
|
547
|
+
|
|
548
|
+
type TypographyVariant = 'display' | 'h1' | 'h2' | 'h3' | 'h4' | 'body-lg' | 'body' | 'body-sm' | 'caption';
|
|
549
|
+
interface TypographyProps extends Omit<HTMLAttributes<HTMLElement>, 'color'> {
|
|
550
|
+
/** 텍스트 스타일 */
|
|
551
|
+
variant?: TypographyVariant;
|
|
552
|
+
/** 렌더링할 요소. 기본값은 variant 에 따라 결정된다 (h1, p, span 등) */
|
|
553
|
+
as?: ElementType;
|
|
554
|
+
/** 글자 색상 */
|
|
555
|
+
color?: 'default' | 'muted' | 'subtle' | 'primary' | 'danger' | 'success' | 'warning' | 'inherit';
|
|
556
|
+
/** variant 의 기본 굵기를 덮어쓴다 */
|
|
557
|
+
weight?: 'regular' | 'medium' | 'semibold' | 'bold';
|
|
558
|
+
/** 정렬 */
|
|
559
|
+
align?: 'start' | 'center' | 'end';
|
|
560
|
+
/** 한 줄로 자르고 말줄임표를 표시한다 */
|
|
561
|
+
truncate?: boolean;
|
|
562
|
+
}
|
|
563
|
+
declare const Typography: react.ForwardRefExoticComponent<TypographyProps & react.RefAttributes<HTMLElement>>;
|
|
564
|
+
|
|
450
565
|
interface ThemeProviderProps extends HTMLAttributes<HTMLDivElement> {
|
|
451
566
|
/** 라이트/다크 모드. 생략하면 바깥 ThemeProvider 의 모드를 이어받는다 (최상위는 light). */
|
|
452
567
|
theme?: ThemeName;
|
|
@@ -679,18 +794,6 @@ interface AvatarProps extends HTMLAttributes<HTMLSpanElement> {
|
|
|
679
794
|
}
|
|
680
795
|
declare const Avatar: react.ForwardRefExoticComponent<AvatarProps & react.RefAttributes<HTMLSpanElement>>;
|
|
681
796
|
|
|
682
|
-
interface BadgeProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'color'> {
|
|
683
|
-
/** 시각적 스타일 */
|
|
684
|
-
variant?: 'solid' | 'soft' | 'outline';
|
|
685
|
-
/** 의미 색상 */
|
|
686
|
-
color?: 'primary' | 'neutral' | 'danger' | 'success' | 'warning';
|
|
687
|
-
/** 크기 */
|
|
688
|
-
size?: 'sm' | 'md' | 'lg';
|
|
689
|
-
/** 텍스트 앞에 표시할 아이콘 (장식용 — 의미는 텍스트로 전달한다) */
|
|
690
|
-
startIcon?: ReactNode;
|
|
691
|
-
}
|
|
692
|
-
declare const Badge: react.ForwardRefExoticComponent<BadgeProps & react.RefAttributes<HTMLSpanElement>>;
|
|
693
|
-
|
|
694
797
|
interface BreadcrumbItemData {
|
|
695
798
|
/** 표시할 이름 */
|
|
696
799
|
label: ReactNode;
|
|
@@ -807,24 +910,6 @@ interface CalendarProps {
|
|
|
807
910
|
*/
|
|
808
911
|
declare const Calendar: react.ForwardRefExoticComponent<CalendarProps & react.RefAttributes<HTMLDivElement>>;
|
|
809
912
|
|
|
810
|
-
interface CardProps extends HTMLAttributes<HTMLElement> {
|
|
811
|
-
/** 시각적 스타일. outline 은 테두리, elevated 는 그림자(다크 모드는 가장자리 ring 포함), soft 는 옅은 배경 */
|
|
812
|
-
variant?: 'outline' | 'elevated' | 'soft';
|
|
813
|
-
/** 안쪽 여백 (sm 16px, md 24px, lg 32px). 이미지를 가장자리까지 붙이려면 none */
|
|
814
|
-
padding?: 'none' | 'sm' | 'md' | 'lg';
|
|
815
|
-
/** 렌더링할 요소 (기본 div). 목록이면 li, 독립된 콘텐츠면 article 등 */
|
|
816
|
-
as?: ElementType;
|
|
817
|
-
}
|
|
818
|
-
/** 배경·테두리·radius·padding 을 가진 컨테이너. 자식 사이 간격은 16px. */
|
|
819
|
-
declare const Card: react.ForwardRefExoticComponent<CardProps & react.RefAttributes<HTMLElement>>;
|
|
820
|
-
type CardSectionProps = HTMLAttributes<HTMLDivElement>;
|
|
821
|
-
/** 제목·설명 영역. Typography 와 함께 쓴다. */
|
|
822
|
-
declare const CardHeader: react.ForwardRefExoticComponent<CardSectionProps & react.RefAttributes<HTMLDivElement>>;
|
|
823
|
-
/** 본문 영역 */
|
|
824
|
-
declare const CardBody: react.ForwardRefExoticComponent<CardSectionProps & react.RefAttributes<HTMLDivElement>>;
|
|
825
|
-
/** 버튼 등 동작 영역. 오른쪽 정렬 */
|
|
826
|
-
declare const CardFooter: react.ForwardRefExoticComponent<CardSectionProps & react.RefAttributes<HTMLDivElement>>;
|
|
827
|
-
|
|
828
913
|
interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {
|
|
829
914
|
/** 체크박스 옆에 표시할 레이블 */
|
|
830
915
|
label?: ReactNode;
|
|
@@ -932,19 +1017,6 @@ interface DatePickerProps {
|
|
|
932
1017
|
*/
|
|
933
1018
|
declare const DatePicker: react.ForwardRefExoticComponent<DatePickerProps & react.RefAttributes<HTMLInputElement>>;
|
|
934
1019
|
|
|
935
|
-
interface DividerProps extends HTMLAttributes<HTMLDivElement> {
|
|
936
|
-
/** 방향. vertical 은 flex 행 안에서 부모 높이를 채운다 */
|
|
937
|
-
orientation?: 'horizontal' | 'vertical';
|
|
938
|
-
/** 시각적 구분만 하고 의미가 없으면 true — 스크린리더에서 숨긴다 */
|
|
939
|
-
decorative?: boolean;
|
|
940
|
-
/**
|
|
941
|
-
* 가운데에 표시할 텍스트 (예: "또는"). horizontal 에서만 쓴다.
|
|
942
|
-
* separator 역할의 자식은 스크린리더가 읽지 않으므로, 텍스트가 있으면 선만 숨기고 텍스트는 읽히게 둔다.
|
|
943
|
-
*/
|
|
944
|
-
children?: ReactNode;
|
|
945
|
-
}
|
|
946
|
-
declare const Divider: react.ForwardRefExoticComponent<DividerProps & react.RefAttributes<HTMLDivElement>>;
|
|
947
|
-
|
|
948
1020
|
interface DrawerProps {
|
|
949
1021
|
/** 열림 상태 (제어 모드) */
|
|
950
1022
|
open?: boolean;
|
|
@@ -1013,6 +1085,41 @@ type DropdownMenuLabelProps = ComponentPropsWithoutRef<typeof RadixMenu.Label>;
|
|
|
1013
1085
|
declare const DropdownMenuLabel: react.ForwardRefExoticComponent<Omit<RadixMenu.DropdownMenuLabelProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
|
|
1014
1086
|
type DropdownMenuSeparatorProps = ComponentPropsWithoutRef<typeof RadixMenu.Separator>;
|
|
1015
1087
|
declare const DropdownMenuSeparator: react.ForwardRefExoticComponent<Omit<RadixMenu.DropdownMenuSeparatorProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
|
|
1088
|
+
interface DropdownMenuCheckboxItemProps extends ComponentPropsWithoutRef<typeof RadixMenu.CheckboxItem> {
|
|
1089
|
+
/** 켜짐 여부. `'indeterminate'` 는 일부만 선택된 상태(− 표시) */
|
|
1090
|
+
checked?: boolean | 'indeterminate';
|
|
1091
|
+
/** 상태가 바뀔 때 */
|
|
1092
|
+
onCheckedChange?: (checked: boolean) => void;
|
|
1093
|
+
}
|
|
1094
|
+
/**
|
|
1095
|
+
* 켜고 끄는 항목 (role="menuitemcheckbox" + aria-checked). 기본으로 고르면 메뉴가 닫힌다 —
|
|
1096
|
+
* 여러 개를 이어서 바꾸게 하려면 `onSelect={(e) => e.preventDefault()}` 로 열어 둔다.
|
|
1097
|
+
*/
|
|
1098
|
+
declare const DropdownMenuCheckboxItem: react.ForwardRefExoticComponent<DropdownMenuCheckboxItemProps & react.RefAttributes<HTMLDivElement>>;
|
|
1099
|
+
/**
|
|
1100
|
+
* 하나만 고르는 항목 묶음 (role="group"). 안에 `DropdownMenuRadioItem` 을 둔다.
|
|
1101
|
+
* 선택 상태를 스스로 갖지 않는다 — 항상 `value` + `onValueChange` 로 제어한다.
|
|
1102
|
+
*/
|
|
1103
|
+
declare const DropdownMenuRadioGroup: react.ForwardRefExoticComponent<RadixMenu.DropdownMenuRadioGroupProps & react.RefAttributes<HTMLDivElement>>;
|
|
1104
|
+
type DropdownMenuRadioGroupProps = ComponentPropsWithoutRef<typeof RadixMenu.RadioGroup>;
|
|
1105
|
+
interface DropdownMenuRadioItemProps extends ComponentPropsWithoutRef<typeof RadixMenu.RadioItem> {
|
|
1106
|
+
/** 이 항목을 고르면 RadioGroup 의 value 가 된다 */
|
|
1107
|
+
value: string;
|
|
1108
|
+
}
|
|
1109
|
+
/** 묶음 안에서 하나만 고르는 항목 (role="menuitemradio" + aria-checked) */
|
|
1110
|
+
declare const DropdownMenuRadioItem: react.ForwardRefExoticComponent<DropdownMenuRadioItemProps & react.RefAttributes<HTMLDivElement>>;
|
|
1111
|
+
/** 하위 메뉴 루트. `open`/`defaultOpen`/`onOpenChange` 를 받는다 */
|
|
1112
|
+
declare const DropdownMenuSub: react.FC<RadixMenu.DropdownMenuSubProps>;
|
|
1113
|
+
type DropdownMenuSubProps = ComponentPropsWithoutRef<typeof RadixMenu.Sub>;
|
|
1114
|
+
interface DropdownMenuSubTriggerProps extends ComponentPropsWithoutRef<typeof RadixMenu.SubTrigger> {
|
|
1115
|
+
/** 텍스트 앞 아이콘 (장식용) */
|
|
1116
|
+
icon?: ReactNode;
|
|
1117
|
+
}
|
|
1118
|
+
/** 하위 메뉴를 여는 항목. → 또는 Enter·Space 로 열고 ← 로 닫는다 (오른쪽 화살표 표시는 장식) */
|
|
1119
|
+
declare const DropdownMenuSubTrigger: react.ForwardRefExoticComponent<DropdownMenuSubTriggerProps & react.RefAttributes<HTMLDivElement>>;
|
|
1120
|
+
type DropdownMenuSubContentProps = ComponentPropsWithoutRef<typeof RadixMenu.SubContent>;
|
|
1121
|
+
/** 하위 메뉴 목록. 부모 메뉴처럼 portal 로 그리고 테마를 이어받는다 */
|
|
1122
|
+
declare const DropdownMenuSubContent: react.ForwardRefExoticComponent<Omit<RadixMenu.DropdownMenuSubContentProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
|
|
1016
1123
|
|
|
1017
1124
|
interface IconButtonProps extends Omit<ButtonProps, 'startIcon' | 'endIcon' | 'fullWidth' | 'children' | 'variant' | 'color' | 'size' | 'loading'> {
|
|
1018
1125
|
/** 시각적 스타일 (기본 ghost) */
|
|
@@ -1098,6 +1205,52 @@ declare function Modal({ open, defaultOpen, onOpenChange, trigger, title, descri
|
|
|
1098
1205
|
*/
|
|
1099
1206
|
declare const ModalClose: react.ForwardRefExoticComponent<Dialog.DialogCloseProps & react.RefAttributes<HTMLButtonElement>>;
|
|
1100
1207
|
|
|
1208
|
+
interface NumberInputProps extends Omit<TextFieldProps, 'value' | 'defaultValue' | 'onChange' | 'type' | 'inputMode' | 'startAdornment' | 'endAdornment' | 'min' | 'max' | 'step' | 'role'> {
|
|
1209
|
+
/** 값 (제어 모드). 비어 있으면 null */
|
|
1210
|
+
value?: number | null;
|
|
1211
|
+
/** 처음 값 (비제어 모드) */
|
|
1212
|
+
defaultValue?: number | null;
|
|
1213
|
+
/** 값이 바뀔 때 호출된다. 비우면 null. 입력 중에는 범위를 벗어난 값도 오고, 포커스가 빠질 때 범위 안으로 맞춘 값이 온다 */
|
|
1214
|
+
onValueChange?: (value: number | null) => void;
|
|
1215
|
+
/** 최솟값. 0 이상이면 "-" 를 입력할 수 없다 */
|
|
1216
|
+
min?: number;
|
|
1217
|
+
/** 최댓값 */
|
|
1218
|
+
max?: number;
|
|
1219
|
+
/** ↑/↓·버튼으로 바꾸는 단위 (기본 1) */
|
|
1220
|
+
step?: number;
|
|
1221
|
+
/** PageUp/PageDown 으로 바꾸는 단위 (기본 step × 10) */
|
|
1222
|
+
largeStep?: number;
|
|
1223
|
+
/** 소수 자릿수 (기본: step 의 소수 자릿수 — step 0.1 이면 1). 0 이면 정수만 */
|
|
1224
|
+
precision?: number;
|
|
1225
|
+
/** 단위 (입력창 뒤에 표시, 스크린리더 값에도 붙는다 — 예: "개", "명") */
|
|
1226
|
+
unit?: string;
|
|
1227
|
+
/** 천 단위 쉼표 (기본 true) */
|
|
1228
|
+
thousandSeparator?: boolean;
|
|
1229
|
+
/** −/+ 버튼을 숨긴다 (키보드 ↑/↓ 는 그대로) */
|
|
1230
|
+
hideStepper?: boolean;
|
|
1231
|
+
/** 입력창 위에 표시할 레이블 */
|
|
1232
|
+
label?: ReactNode;
|
|
1233
|
+
/** 입력창 아래에 표시할 도움말. error 일 때는 에러 메시지로 표시된다 */
|
|
1234
|
+
helperText?: ReactNode;
|
|
1235
|
+
/** 에러 상태 */
|
|
1236
|
+
error?: boolean;
|
|
1237
|
+
/** 필수 입력 (레이블에 * 표시, required 속성) */
|
|
1238
|
+
required?: boolean;
|
|
1239
|
+
disabled?: boolean;
|
|
1240
|
+
/** 크기 */
|
|
1241
|
+
size?: 'sm' | 'md' | 'lg';
|
|
1242
|
+
/** 부모 너비를 꽉 채운다 */
|
|
1243
|
+
fullWidth?: boolean;
|
|
1244
|
+
placeholder?: string;
|
|
1245
|
+
/** form 제출 시 사용할 이름 (쉼표 없는 숫자로 제출된다) */
|
|
1246
|
+
name?: string;
|
|
1247
|
+
}
|
|
1248
|
+
/**
|
|
1249
|
+
* 숫자 입력 (수량·인원·나이 등). −/+ 버튼, ↑/↓·PageUp/PageDown 으로 바꾸고, 천 단위 쉼표를 넣는다.
|
|
1250
|
+
* WAI-ARIA spinbutton 패턴 — 스크린리더가 현재 값·최소·최대를 읽는다. 금액은 AmountInput(한글 금액 읽기)을 쓴다.
|
|
1251
|
+
*/
|
|
1252
|
+
declare const NumberInput: react.ForwardRefExoticComponent<NumberInputProps & react.RefAttributes<HTMLInputElement>>;
|
|
1253
|
+
|
|
1101
1254
|
/** getItemLabel 이 이름을 만드는 버튼 종류 */
|
|
1102
1255
|
type PaginationItemType = 'previous' | 'next' | 'page';
|
|
1103
1256
|
interface PaginationProps extends Omit<HTMLAttributes<HTMLElement>, 'onChange'> {
|
|
@@ -1189,26 +1342,6 @@ declare function Popover({ content, children, title, 'aria-label': ariaLabel, sh
|
|
|
1189
1342
|
*/
|
|
1190
1343
|
declare const PopoverClose: react.ForwardRefExoticComponent<RadixPopover.PopoverCloseProps & react.RefAttributes<HTMLButtonElement>>;
|
|
1191
1344
|
|
|
1192
|
-
interface ProgressProps extends Omit<HTMLAttributes<HTMLDivElement>, 'color'> {
|
|
1193
|
-
/** 현재 값 (0 ~ max). 생략하거나 null 이면 진행률을 모르는 상태(indeterminate)로 움직이는 막대를 보여 준다 */
|
|
1194
|
-
value?: number | null;
|
|
1195
|
-
/** 최댓값 */
|
|
1196
|
-
max?: number;
|
|
1197
|
-
/** 막대 위에 보이는 레이블. progressbar 의 이름이 된다 */
|
|
1198
|
-
label?: ReactNode;
|
|
1199
|
-
/** 레이블이 없을 때 스크린리더용 이름 */
|
|
1200
|
-
'aria-label'?: string;
|
|
1201
|
-
/** 오른쪽에 값 텍스트(기본 "42%")를 보여 준다 */
|
|
1202
|
-
showValue?: boolean;
|
|
1203
|
-
/** 값 텍스트 형식. 화면 표시와 스크린리더(aria-valuetext)에 함께 쓴다 (예: (v, max) => `${v}/${max}개`) */
|
|
1204
|
-
formatValue?: (value: number, max: number) => string;
|
|
1205
|
-
/** 막대 두께 (sm 4px · md 8px · lg 12px) */
|
|
1206
|
-
size?: 'sm' | 'md' | 'lg';
|
|
1207
|
-
/** 의미 색상 */
|
|
1208
|
-
color?: 'primary' | 'neutral' | 'success' | 'warning' | 'danger';
|
|
1209
|
-
}
|
|
1210
|
-
declare const Progress: react.ForwardRefExoticComponent<ProgressProps & react.RefAttributes<HTMLDivElement>>;
|
|
1211
|
-
|
|
1212
1345
|
interface RadioOption {
|
|
1213
1346
|
value: string;
|
|
1214
1347
|
label: ReactNode;
|
|
@@ -1245,6 +1378,13 @@ interface RadioGroupProps {
|
|
|
1245
1378
|
/** 바깥 래퍼 className */
|
|
1246
1379
|
className?: string;
|
|
1247
1380
|
}
|
|
1381
|
+
/**
|
|
1382
|
+
* 여러 선택지 중 하나를 고르는 라디오 버튼 묶음.
|
|
1383
|
+
*
|
|
1384
|
+
* 네이티브 `<input type="radio">` 로 만든다 — 화살표 이동·선택, Tab 으로 들어오기, 비활성 건너뛰기, 폼 제출·`required` 검증을
|
|
1385
|
+
* 브라우저가 처리한다. (1.1 까지는 Radix RadioGroup 이었는데, Radix 는 "포커스가 옮겨질 때 화살표 키가 아직 눌려 있는지" 로
|
|
1386
|
+
* 선택을 정해서 키를 바로 떼는 입력(자동화·일부 보조기기)에서는 포커스만 옮겨지고 선택이 빠졌다 — E2E 에서 20회 중 19회.)
|
|
1387
|
+
*/
|
|
1248
1388
|
declare const RadioGroup: react.ForwardRefExoticComponent<RadioGroupProps & react.RefAttributes<HTMLDivElement>>;
|
|
1249
1389
|
|
|
1250
1390
|
interface SegmentedControlOption {
|
|
@@ -1326,22 +1466,6 @@ interface SelectProps {
|
|
|
1326
1466
|
}
|
|
1327
1467
|
declare const Select: react.ForwardRefExoticComponent<SelectProps & react.RefAttributes<HTMLButtonElement>>;
|
|
1328
1468
|
|
|
1329
|
-
interface SkeletonProps extends HTMLAttributes<HTMLSpanElement> {
|
|
1330
|
-
/** 모양. text 는 글자 높이(1em), circle 은 width 를 지름으로 쓴다 */
|
|
1331
|
-
variant?: 'text' | 'rect' | 'circle';
|
|
1332
|
-
/** 너비. 숫자는 px (기본: text·rect 100%, circle 40px) */
|
|
1333
|
-
width?: number | string;
|
|
1334
|
-
/** 높이. 숫자는 px (기본: text 1em, rect 100px, circle 은 width 와 같음) */
|
|
1335
|
-
height?: number | string;
|
|
1336
|
-
/** text 에서 여러 줄을 그린다. 마지막 줄은 60% 너비 */
|
|
1337
|
-
lines?: number;
|
|
1338
|
-
}
|
|
1339
|
-
/**
|
|
1340
|
-
* 콘텐츠를 불러오는 동안 자리를 표시한다. 장식용이라 스크린리더에서 숨긴다 —
|
|
1341
|
-
* 로딩 중인 영역(감싸는 요소)에 `aria-busy="true"` 를 붙여 상태를 알린다.
|
|
1342
|
-
*/
|
|
1343
|
-
declare const Skeleton: react.ForwardRefExoticComponent<SkeletonProps & react.RefAttributes<HTMLSpanElement>>;
|
|
1344
|
-
|
|
1345
1469
|
interface SkipLinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
1346
1470
|
/** 건너뛸 곳(본문)의 id 를 가리키는 주소. 기본 "#main" — 본문 요소에 id="main" 을 준다 */
|
|
1347
1471
|
href?: string;
|
|
@@ -1414,22 +1538,6 @@ interface SpinnerProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'color'> {
|
|
|
1414
1538
|
}
|
|
1415
1539
|
declare const Spinner: react.ForwardRefExoticComponent<SpinnerProps & react.RefAttributes<HTMLSpanElement>>;
|
|
1416
1540
|
|
|
1417
|
-
interface StackProps extends HTMLAttributes<HTMLElement> {
|
|
1418
|
-
/** 렌더링할 요소 */
|
|
1419
|
-
as?: ElementType;
|
|
1420
|
-
/** 배치 방향 */
|
|
1421
|
-
direction?: 'row' | 'column' | 'row-reverse' | 'column-reverse';
|
|
1422
|
-
/** 자식 사이 간격 (space 토큰 키) */
|
|
1423
|
-
gap?: keyof typeof space;
|
|
1424
|
-
/** 교차축 정렬 (align-items) */
|
|
1425
|
-
align?: 'start' | 'center' | 'end' | 'stretch' | 'baseline';
|
|
1426
|
-
/** 주축 정렬 (justify-content) */
|
|
1427
|
-
justify?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';
|
|
1428
|
-
/** 줄바꿈 허용 */
|
|
1429
|
-
wrap?: boolean;
|
|
1430
|
-
}
|
|
1431
|
-
declare const Stack: react.ForwardRefExoticComponent<StackProps & react.RefAttributes<HTMLElement>>;
|
|
1432
|
-
|
|
1433
1541
|
interface SwitchProps {
|
|
1434
1542
|
/** 스위치 옆에 표시할 레이블 */
|
|
1435
1543
|
label?: ReactNode;
|
|
@@ -1504,7 +1612,7 @@ interface TableCellProps extends Omit<TdHTMLAttributes<HTMLTableCellElement>, 'a
|
|
|
1504
1612
|
}
|
|
1505
1613
|
declare const TableCell: react.ForwardRefExoticComponent<TableCellProps & react.RefAttributes<HTMLTableCellElement>>;
|
|
1506
1614
|
|
|
1507
|
-
interface TabsProps extends
|
|
1615
|
+
interface TabsProps extends ComponentPropsWithoutRef<typeof RadixTabs.Root> {
|
|
1508
1616
|
/** 시각적 스타일. line 은 밑줄, soft 는 배경이 있는 세그먼트 */
|
|
1509
1617
|
variant?: 'line' | 'soft';
|
|
1510
1618
|
/** 크기 */
|
|
@@ -1520,6 +1628,11 @@ interface TabsProps extends Omit<ComponentPropsWithoutRef<typeof RadixTabs.Root>
|
|
|
1520
1628
|
* manual: 방향키로 포커스만 옮기고 Enter/Space 로 선택한다 (탭 전환 비용이 클 때).
|
|
1521
1629
|
*/
|
|
1522
1630
|
activationMode?: 'automatic' | 'manual';
|
|
1631
|
+
/**
|
|
1632
|
+
* horizontal(기본): 탭 목록이 위, ←/→ 로 이동.
|
|
1633
|
+
* vertical: 탭 목록이 왼쪽(내용은 오른쪽), ↑/↓ 로 이동. 탭이 많거나 이름이 길 때(설정 화면 등).
|
|
1634
|
+
*/
|
|
1635
|
+
orientation?: 'horizontal' | 'vertical';
|
|
1523
1636
|
}
|
|
1524
1637
|
declare const Tabs: react.ForwardRefExoticComponent<TabsProps & react.RefAttributes<HTMLDivElement>>;
|
|
1525
1638
|
type TabsListProps = ComponentPropsWithoutRef<typeof RadixTabs.List>;
|
|
@@ -1615,23 +1728,6 @@ interface TooltipProps {
|
|
|
1615
1728
|
}
|
|
1616
1729
|
declare function Tooltip({ content, children, side, align, delay, open, defaultOpen, onOpenChange, disabled, className, }: TooltipProps): react.JSX.Element;
|
|
1617
1730
|
|
|
1618
|
-
type TypographyVariant = 'display' | 'h1' | 'h2' | 'h3' | 'h4' | 'body-lg' | 'body' | 'body-sm' | 'caption';
|
|
1619
|
-
interface TypographyProps extends Omit<HTMLAttributes<HTMLElement>, 'color'> {
|
|
1620
|
-
/** 텍스트 스타일 */
|
|
1621
|
-
variant?: TypographyVariant;
|
|
1622
|
-
/** 렌더링할 요소. 기본값은 variant 에 따라 결정된다 (h1, p, span 등) */
|
|
1623
|
-
as?: ElementType;
|
|
1624
|
-
/** 글자 색상 */
|
|
1625
|
-
color?: 'default' | 'muted' | 'subtle' | 'primary' | 'danger' | 'success' | 'warning' | 'inherit';
|
|
1626
|
-
/** variant 의 기본 굵기를 덮어쓴다 */
|
|
1627
|
-
weight?: 'regular' | 'medium' | 'semibold' | 'bold';
|
|
1628
|
-
/** 정렬 */
|
|
1629
|
-
align?: 'start' | 'center' | 'end';
|
|
1630
|
-
/** 한 줄로 자르고 말줄임표를 표시한다 */
|
|
1631
|
-
truncate?: boolean;
|
|
1632
|
-
}
|
|
1633
|
-
declare const Typography: react.ForwardRefExoticComponent<TypographyProps & react.RefAttributes<HTMLElement>>;
|
|
1634
|
-
|
|
1635
1731
|
interface VerificationCodeInputProps {
|
|
1636
1732
|
/** 자릿수 */
|
|
1637
1733
|
length?: number;
|
|
@@ -1671,4 +1767,4 @@ interface VerificationCodeInputProps {
|
|
|
1671
1767
|
*/
|
|
1672
1768
|
declare const VerificationCodeInput: react.ForwardRefExoticComponent<VerificationCodeInputProps & react.RefAttributes<HTMLInputElement>>;
|
|
1673
1769
|
|
|
1674
|
-
export { Accordion, AccordionItem, type AccordionItemProps, type AccordionProps, AddressInput, type AddressInputProps, type AddressProvider, type AddressSearchResult, type AddressValue, AgreementGroup, type AgreementGroupProps, type AgreementItem, Alert, type AlertColor, type AlertProps, AmountInput, type AmountInputProps, Avatar, type AvatarProps, Badge, type BadgeProps, type BestowMessages, type BestowTheme, Breadcrumb, type BreadcrumbItemData, type BreadcrumbProps, BusinessNumberInput, type BusinessNumberInputProps, Button, type ButtonProps, Calendar, type CalendarProps, Card, CardBody, CardFooter, CardHeader, type CardProps, type CardSectionProps, Checkbox, type CheckboxProps, Combobox, type ComboboxOption, type ComboboxProps, DatePicker, type DatePickerProps, type DeepPartial, Divider, type DividerProps, Drawer, DrawerClose, type DrawerProps, DropdownMenu, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuLabel, type DropdownMenuLabelProps, type DropdownMenuProps, DropdownMenuSeparator, type DropdownMenuSeparatorProps, DropdownMenuTrigger, type DropdownMenuTriggerProps, IconButton, type IconButtonProps, Input, type InputProps, type IntentName, Link, type LinkProps, LocaleProvider, type LocaleProviderProps, type Messages, Modal, ModalClose, type ModalProps, Pagination, type PaginationItemType, type PaginationProps, PhoneNumberInput, type PhoneNumberInputProps, Popover, PopoverClose, type PopoverProps, Progress, type ProgressProps, RadioGroup, type RadioGroupProps, type RadioOption, SegmentedControl, type SegmentedControlOption, type SegmentedControlProps, Select, type SelectOption, type SelectProps, Skeleton, type SkeletonProps, SkipLink, type SkipLinkProps, Slider, type SliderProps, Spinner, type SpinnerProps, Stack, type StackProps, Switch, type SwitchProps, Table, type TableAlign, TableBody, TableCell, type TableCellProps, TableFooter, TableHead, type TableHeadProps, TableHeader, type TableProps, TableRow, type TableRowProps, type TableSize, Tabs, TabsContent, type TabsContentProps, TabsList, type TabsListProps, type TabsProps, TabsTrigger, type TabsTriggerProps, TextField, type TextFieldProps, Textarea, type TextareaProps, type ThemeInput, type ThemeName, type ThemeOverrides, ThemeProvider, type ThemeProviderProps, type ThemeTokens, type ToastColor, type ToastContextValue, type ToastOptions, ToastProvider, type ToastProviderProps, Tooltip, type TooltipProps, Typography, type TypographyProps, type TypographyVariant, VerificationCodeInput, type VerificationCodeInputProps, composeExtraAddress, contrastRatio, createIntentColors, createTheme, en, formatBusinessNumber, formatKoreanAmount, formatKoreanDate, formatPhoneNumber, hasAllRequiredAgreements, isValidBusinessNumber, kakaoPostcodeProvider, parseISODate, themeClass, toISODate, useMessages, usePortalProps, useTheme, useToast, vars };
|
|
1770
|
+
export { Accordion, AccordionItem, type AccordionItemProps, type AccordionProps, AddressInput, type AddressInputProps, type AddressProvider, type AddressSearchResult, type AddressValue, AgreementGroup, type AgreementGroupProps, type AgreementItem, Alert, type AlertColor, type AlertProps, AmountInput, type AmountInputProps, Avatar, type AvatarProps, Badge, type BadgeProps, type BestowMessages, type BestowTheme, Breadcrumb, type BreadcrumbItemData, type BreadcrumbProps, BusinessNumberInput, type BusinessNumberInputProps, Button, type ButtonProps, Calendar, type CalendarProps, Card, CardBody, CardFooter, CardHeader, type CardProps, type CardSectionProps, Checkbox, type CheckboxProps, Combobox, type ComboboxOption, type ComboboxProps, DatePicker, type DatePickerProps, type DeepPartial, Divider, type DividerProps, Drawer, DrawerClose, type DrawerProps, DropdownMenu, DropdownMenuCheckboxItem, type DropdownMenuCheckboxItemProps, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuLabel, type DropdownMenuLabelProps, type DropdownMenuProps, DropdownMenuRadioGroup, type DropdownMenuRadioGroupProps, DropdownMenuRadioItem, type DropdownMenuRadioItemProps, DropdownMenuSeparator, type DropdownMenuSeparatorProps, DropdownMenuSub, DropdownMenuSubContent, type DropdownMenuSubContentProps, type DropdownMenuSubProps, DropdownMenuSubTrigger, type DropdownMenuSubTriggerProps, DropdownMenuTrigger, type DropdownMenuTriggerProps, IconButton, type IconButtonProps, Input, type InputProps, type IntentName, Link, type LinkProps, LocaleProvider, type LocaleProviderProps, type Messages, Modal, ModalClose, type ModalProps, NumberInput, type NumberInputProps, Pagination, type PaginationItemType, type PaginationProps, PhoneNumberInput, type PhoneNumberInputProps, Popover, PopoverClose, type PopoverProps, Progress, type ProgressProps, RadioGroup, type RadioGroupProps, type RadioOption, SegmentedControl, type SegmentedControlOption, type SegmentedControlProps, Select, type SelectOption, type SelectProps, Skeleton, type SkeletonProps, SkipLink, type SkipLinkProps, Slider, type SliderProps, Spinner, type SpinnerProps, Stack, type StackProps, Switch, type SwitchProps, Table, type TableAlign, TableBody, TableCell, type TableCellProps, TableFooter, TableHead, type TableHeadProps, TableHeader, type TableProps, TableRow, type TableRowProps, type TableSize, Tabs, TabsContent, type TabsContentProps, TabsList, type TabsListProps, type TabsProps, TabsTrigger, type TabsTriggerProps, TextField, type TextFieldProps, Textarea, type TextareaProps, type ThemeInput, type ThemeName, type ThemeOverrides, ThemeProvider, type ThemeProviderProps, type ThemeTokens, type ToastColor, type ToastContextValue, type ToastOptions, ToastProvider, type ToastProviderProps, Tooltip, type TooltipProps, Typography, type TypographyProps, type TypographyVariant, VerificationCodeInput, type VerificationCodeInputProps, composeExtraAddress, contrastRatio, createIntentColors, createTheme, en, formatBusinessNumber, formatKoreanAmount, formatKoreanDate, formatPhoneNumber, hasAllRequiredAgreements, isValidBusinessNumber, kakaoPostcodeProvider, parseISODate, themeClass, toISODate, useMessages, usePortalProps, useTheme, useToast, vars };
|