@bestow-ui/react 1.1.0 → 1.3.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.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, ElementType, ButtonHTMLAttributes, AnchorHTMLAttributes, ReactElement, TdHTMLAttributes, ThHTMLAttributes, TextareaHTMLAttributes } from 'react';
4
+ import { ReactNode, HTMLAttributes, ElementType, CSSProperties, ComponentPropsWithoutRef, InputHTMLAttributes, ButtonHTMLAttributes, AnchorHTMLAttributes, ReactElement, OlHTMLAttributes, TdHTMLAttributes, ThHTMLAttributes, ChangeEvent, 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';
@@ -42,14 +42,14 @@ declare const lightTokens: {
42
42
  readonly mono: "\"JetBrains Mono\", ui-monospace, SFMono-Regular, Menlo, monospace";
43
43
  };
44
44
  size: {
45
- readonly xs: "12px";
46
- readonly sm: "14px";
47
- readonly md: "16px";
48
- readonly lg: "18px";
49
- readonly xl: "20px";
50
- readonly '2xl': "24px";
51
- readonly '3xl': "30px";
52
- readonly '4xl': "36px";
45
+ readonly xs: string;
46
+ readonly sm: string;
47
+ readonly md: string;
48
+ readonly lg: string;
49
+ readonly xl: string;
50
+ readonly '2xl': string;
51
+ readonly '3xl': string;
52
+ readonly '4xl': string;
53
53
  };
54
54
  weight: {
55
55
  readonly regular: "400";
@@ -69,9 +69,9 @@ declare const lightTokens: {
69
69
  readonly slow: "320ms";
70
70
  };
71
71
  zIndex: {
72
- readonly dropdown: "1000";
73
72
  readonly overlay: "1300";
74
73
  readonly modal: "1310";
74
+ readonly dropdown: "1320";
75
75
  readonly toast: "1400";
76
76
  readonly tooltip: "1500";
77
77
  };
@@ -205,9 +205,9 @@ declare const vars: {
205
205
  readonly slow: `var(--${string})`;
206
206
  };
207
207
  zIndex: {
208
- readonly dropdown: `var(--${string})`;
209
208
  readonly overlay: `var(--${string})`;
210
209
  readonly modal: `var(--${string})`;
210
+ readonly dropdown: `var(--${string})`;
211
211
  readonly toast: `var(--${string})`;
212
212
  readonly tooltip: `var(--${string})`;
213
213
  };
@@ -292,6 +292,27 @@ 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;
298
+ /** Stepper — 목록 이름 "진행 단계", 완료한 단계에 붙는 "완료" (1.0 이후 추가, 선택 키) */
299
+ steps?: string;
300
+ stepCompleted?: string;
301
+ /**
302
+ * FileUpload (1.0 이후 추가, 선택 키) — "파일 선택", "또는 여기로 끌어다 놓으세요", "선택한 파일", "○○ 삭제",
303
+ * "파일 2개 선택됨", "○○ 삭제됨", 크기·형식·개수 초과 안내
304
+ */
305
+ fileSelect?: string;
306
+ fileDropHint?: string;
307
+ fileList?: string;
308
+ fileRemove?: (name: string) => string;
309
+ filesSelected?: (count: number) => string;
310
+ fileRemoved?: (name: string) => string;
311
+ fileTooLarge?: (name: string, maxSize: string) => string;
312
+ fileTypeNotAllowed?: (name: string) => string;
313
+ fileTooMany?: (maxFiles: number) => string;
314
+ /** ErrorSummary 제목 — "입력한 내용에 고칠 곳이 3개 있어요" (1.0 이후 추가, 선택 키) */
315
+ errorSummaryTitle?: (count: number) => string;
295
316
  /** Slider 범위 손잡이 — "최소", "최대" */
296
317
  rangeStart: string;
297
318
  rangeEnd: string;
@@ -447,6 +468,157 @@ interface AgreementItem {
447
468
  /** 필수 항목에 모두 동의했는지 */
448
469
  declare function hasAllRequiredAgreements(items: AgreementItem[], value: string[]): boolean;
449
470
 
471
+ interface BadgeProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'color'> {
472
+ /** 시각적 스타일 */
473
+ variant?: 'solid' | 'soft' | 'outline';
474
+ /** 의미 색상 */
475
+ color?: 'primary' | 'neutral' | 'danger' | 'success' | 'warning';
476
+ /** 크기 */
477
+ size?: 'sm' | 'md' | 'lg';
478
+ /** 텍스트 앞에 표시할 아이콘 (장식용 — 의미는 텍스트로 전달한다) */
479
+ startIcon?: ReactNode;
480
+ }
481
+ declare const Badge: react.ForwardRefExoticComponent<BadgeProps & react.RefAttributes<HTMLSpanElement>>;
482
+
483
+ interface CardProps extends HTMLAttributes<HTMLElement> {
484
+ /** 시각적 스타일. outline 은 테두리, elevated 는 그림자(다크 모드는 가장자리 ring 포함), soft 는 옅은 배경 */
485
+ variant?: 'outline' | 'elevated' | 'soft';
486
+ /** 안쪽 여백 (sm 16px, md 24px, lg 32px). 이미지를 가장자리까지 붙이려면 none */
487
+ padding?: 'none' | 'sm' | 'md' | 'lg';
488
+ /** 렌더링할 요소 (기본 div). 목록이면 li, 독립된 콘텐츠면 article 등 */
489
+ as?: ElementType;
490
+ }
491
+ /** 배경·테두리·radius·padding 을 가진 컨테이너. 자식 사이 간격은 16px. */
492
+ declare const Card: react.ForwardRefExoticComponent<CardProps & react.RefAttributes<HTMLElement>>;
493
+ type CardSectionProps = HTMLAttributes<HTMLDivElement>;
494
+ /** 제목·설명 영역. Typography 와 함께 쓴다. */
495
+ declare const CardHeader: react.ForwardRefExoticComponent<CardSectionProps & react.RefAttributes<HTMLDivElement>>;
496
+ /** 본문 영역 */
497
+ declare const CardBody: react.ForwardRefExoticComponent<CardSectionProps & react.RefAttributes<HTMLDivElement>>;
498
+ /** 버튼 등 동작 영역. 오른쪽 정렬 */
499
+ declare const CardFooter: react.ForwardRefExoticComponent<CardSectionProps & react.RefAttributes<HTMLDivElement>>;
500
+
501
+ interface DescriptionListItem {
502
+ /** 이름 (dt) */
503
+ term: ReactNode;
504
+ /** 값 (dd) */
505
+ description: ReactNode;
506
+ }
507
+ interface DescriptionListProps extends HTMLAttributes<HTMLDListElement> {
508
+ /** 이름–값 목록 */
509
+ items: DescriptionListItem[];
510
+ /** horizontal(기본): 이름 왼쪽·값 오른쪽. vertical: 이름 위·값 아래(좁은 곳·긴 값) */
511
+ layout?: 'horizontal' | 'vertical';
512
+ /** horizontal 일 때 이름 열의 폭 (기본 30%) — 예: "8rem" */
513
+ termWidth?: string;
514
+ /** 항목 사이에 구분선 */
515
+ divided?: boolean;
516
+ }
517
+ /**
518
+ * 이름–값 목록(주문 상세의 고객·연락처·금액 등). `<dl>` 안에 항목마다 `<div><dt/><dd/></div>` 로 그려 스크린리더가 쌍으로 읽는다.
519
+ * hook 이 없어 서버 컴포넌트로도 렌더링된다.
520
+ */
521
+ declare const DescriptionList: react.ForwardRefExoticComponent<DescriptionListProps & react.RefAttributes<HTMLDListElement>>;
522
+
523
+ interface DividerProps extends HTMLAttributes<HTMLDivElement> {
524
+ /** 방향. vertical 은 flex 행 안에서 부모 높이를 채운다 */
525
+ orientation?: 'horizontal' | 'vertical';
526
+ /** 시각적 구분만 하고 의미가 없으면 true — 스크린리더에서 숨긴다 */
527
+ decorative?: boolean;
528
+ /**
529
+ * 가운데에 표시할 텍스트 (예: "또는"). horizontal 에서만 쓴다.
530
+ * separator 역할의 자식은 스크린리더가 읽지 않으므로, 텍스트가 있으면 선만 숨기고 텍스트는 읽히게 둔다.
531
+ */
532
+ children?: ReactNode;
533
+ }
534
+ declare const Divider: react.ForwardRefExoticComponent<DividerProps & react.RefAttributes<HTMLDivElement>>;
535
+
536
+ interface ProgressProps extends Omit<HTMLAttributes<HTMLDivElement>, 'color'> {
537
+ /** 현재 값 (0 ~ max). 생략하거나 null 이면 진행률을 모르는 상태(indeterminate)로 움직이는 막대를 보여 준다 */
538
+ value?: number | null;
539
+ /** 최댓값 */
540
+ max?: number;
541
+ /** 막대 위에 보이는 레이블. progressbar 의 이름이 된다 */
542
+ label?: ReactNode;
543
+ /** 레이블이 없을 때 스크린리더용 이름 */
544
+ 'aria-label'?: string;
545
+ /** 오른쪽에 값 텍스트(기본 "42%")를 보여 준다 */
546
+ showValue?: boolean;
547
+ /** 값 텍스트 형식. 화면 표시와 스크린리더(aria-valuetext)에 함께 쓴다 (예: (v, max) => `${v}/${max}개`) */
548
+ formatValue?: (value: number, max: number) => string;
549
+ /** 막대 두께 (sm 4px · md 8px · lg 12px) */
550
+ size?: 'sm' | 'md' | 'lg';
551
+ /** 의미 색상 */
552
+ color?: 'primary' | 'neutral' | 'success' | 'warning' | 'danger';
553
+ }
554
+ declare const Progress: react.ForwardRefExoticComponent<ProgressProps & react.RefAttributes<HTMLDivElement>>;
555
+
556
+ interface SkeletonProps extends HTMLAttributes<HTMLSpanElement> {
557
+ /** 모양. text 는 글자 높이(1em), circle 은 width 를 지름으로 쓴다 */
558
+ variant?: 'text' | 'rect' | 'circle';
559
+ /** 너비. 숫자는 px (기본: text·rect 100%, circle 40px) */
560
+ width?: number | string;
561
+ /** 높이. 숫자는 px (기본: text 1em, rect 100px, circle 은 width 와 같음) */
562
+ height?: number | string;
563
+ /** text 에서 여러 줄을 그린다. 마지막 줄은 60% 너비 */
564
+ lines?: number;
565
+ }
566
+ /**
567
+ * 콘텐츠를 불러오는 동안 자리를 표시한다. 장식용이라 스크린리더에서 숨긴다 —
568
+ * 로딩 중인 영역(감싸는 요소)에 `aria-busy="true"` 를 붙여 상태를 알린다.
569
+ */
570
+ declare const Skeleton: react.ForwardRefExoticComponent<SkeletonProps & react.RefAttributes<HTMLSpanElement>>;
571
+
572
+ interface StackProps extends HTMLAttributes<HTMLElement> {
573
+ /** 렌더링할 요소 */
574
+ as?: ElementType;
575
+ /** 배치 방향 */
576
+ direction?: 'row' | 'column' | 'row-reverse' | 'column-reverse';
577
+ /** 자식 사이 간격 (space 토큰 키) */
578
+ gap?: keyof typeof space;
579
+ /** 교차축 정렬 (align-items) */
580
+ align?: 'start' | 'center' | 'end' | 'stretch' | 'baseline';
581
+ /** 주축 정렬 (justify-content) */
582
+ justify?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';
583
+ /** 줄바꿈 허용 */
584
+ wrap?: boolean;
585
+ }
586
+ declare const Stack: react.ForwardRefExoticComponent<StackProps & react.RefAttributes<HTMLElement>>;
587
+
588
+ type TypographyVariant = 'display' | 'h1' | 'h2' | 'h3' | 'h4' | 'body-lg' | 'body' | 'body-sm' | 'caption';
589
+ interface TypographyProps extends Omit<HTMLAttributes<HTMLElement>, 'color'> {
590
+ /** 텍스트 스타일 */
591
+ variant?: TypographyVariant;
592
+ /** 렌더링할 요소. 기본값은 variant 에 따라 결정된다 (h1, p, span 등) */
593
+ as?: ElementType;
594
+ /** 글자 색상 */
595
+ color?: 'default' | 'muted' | 'subtle' | 'primary' | 'danger' | 'success' | 'warning' | 'inherit';
596
+ /** variant 의 기본 굵기를 덮어쓴다 */
597
+ weight?: 'regular' | 'medium' | 'semibold' | 'bold';
598
+ /** 정렬 */
599
+ align?: 'start' | 'center' | 'end';
600
+ /** 한 줄로 자르고 말줄임표를 표시한다 */
601
+ truncate?: boolean;
602
+ }
603
+ declare const Typography: react.ForwardRefExoticComponent<TypographyProps & react.RefAttributes<HTMLElement>>;
604
+
605
+ interface VisuallyHiddenProps extends HTMLAttributes<HTMLElement> {
606
+ /** 렌더링할 요소 (기본 span) */
607
+ as?: ElementType;
608
+ }
609
+ /**
610
+ * 화면에는 보이지 않고 스크린리더만 읽는 글자. 아이콘만 있는 열 머리글("작업"), 보이는 글자에 붙는 보충 설명 등에 쓴다.
611
+ * `display: none`·`hidden` 과 달리 보조기술이 읽는다. hook 이 없어 서버 컴포넌트로도 렌더링된다.
612
+ */
613
+ declare const VisuallyHidden: react.ForwardRefExoticComponent<VisuallyHiddenProps & react.RefAttributes<HTMLElement>>;
614
+
615
+ /**
616
+ * 폼 칸으로 포커스를 옮긴다(오류 요약의 링크, 제출 실패 뒤 등). `target` 은 칸의 id 나 요소.
617
+ * id 가 포커스할 수 없는 요소를 가리켜도 알맞은 곳을 찾는다 — RadioGroup·AgreementGroup 처럼 묶음이면 선택된(없으면 첫) 항목,
618
+ * FileUpload 처럼 숨긴 input 이면 같은 묶음(role="group")의 버튼. 옮겼으면 true.
619
+ */
620
+ declare function focusField(target: string | HTMLElement | null | undefined): boolean;
621
+
450
622
  interface ThemeProviderProps extends HTMLAttributes<HTMLDivElement> {
451
623
  /** 라이트/다크 모드. 생략하면 바깥 ThemeProvider 의 모드를 이어받는다 (최상위는 light). */
452
624
  theme?: ThemeName;
@@ -553,6 +725,8 @@ interface AgreementGroupProps {
553
725
  hideText?: string;
554
726
  /** form 제출 시 사용할 이름. 동의한 value 마다 hidden input 이 생긴다 */
555
727
  name?: string;
728
+ /** fieldset 의 id — ErrorSummary 링크 등에서 이 묶음을 가리킬 때 */
729
+ id?: string;
556
730
  className?: string;
557
731
  }
558
732
  /**
@@ -679,18 +853,6 @@ interface AvatarProps extends HTMLAttributes<HTMLSpanElement> {
679
853
  }
680
854
  declare const Avatar: react.ForwardRefExoticComponent<AvatarProps & react.RefAttributes<HTMLSpanElement>>;
681
855
 
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
856
  interface BreadcrumbItemData {
695
857
  /** 표시할 이름 */
696
858
  label: ReactNode;
@@ -807,24 +969,6 @@ interface CalendarProps {
807
969
  */
808
970
  declare const Calendar: react.ForwardRefExoticComponent<CalendarProps & react.RefAttributes<HTMLDivElement>>;
809
971
 
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
972
  interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {
829
973
  /** 체크박스 옆에 표시할 레이블 */
830
974
  label?: ReactNode;
@@ -932,19 +1076,6 @@ interface DatePickerProps {
932
1076
  */
933
1077
  declare const DatePicker: react.ForwardRefExoticComponent<DatePickerProps & react.RefAttributes<HTMLInputElement>>;
934
1078
 
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
1079
  interface DrawerProps {
949
1080
  /** 열림 상태 (제어 모드) */
950
1081
  open?: boolean;
@@ -984,6 +1115,73 @@ declare function Drawer({ open, defaultOpen, onOpenChange, trigger, title, descr
984
1115
  */
985
1116
  declare const DrawerClose: react.ForwardRefExoticComponent<Dialog.DialogCloseProps & react.RefAttributes<HTMLButtonElement>>;
986
1117
 
1118
+ interface ErrorSummaryItem {
1119
+ /** 오류가 난 칸의 id — 링크를 누르면 그 칸으로 포커스가 간다(묶음이면 선택된·첫 항목) */
1120
+ id: string;
1121
+ /** 고칠 내용 (칸 아래 helperText 와 같은 문구를 권장) */
1122
+ message: ReactNode;
1123
+ }
1124
+ interface ErrorSummaryProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
1125
+ /** 고칠 곳 목록. 비어 있으면 아무것도 그리지 않는다 */
1126
+ errors: ErrorSummaryItem[];
1127
+ /** 제목 (기본 "입력한 내용에 고칠 곳이 N개 있어요") */
1128
+ title?: ReactNode;
1129
+ /**
1130
+ * 이 값이 바뀔 때마다(오류가 있으면) 요약으로 포커스를 옮긴다. 기본은 처음 나타날 때 한 번.
1131
+ * 다시 제출해도 오류가 남아 있으면 옮기도록 제출 횟수를 넘긴다 (react-hook-form: `formState.submitCount`).
1132
+ */
1133
+ focusKey?: unknown;
1134
+ }
1135
+ /**
1136
+ * 폼 제출에 실패했을 때 고칠 곳을 모아 보여 주는 요약(GOV.UK error summary 패턴). 나타나면 포커스가 와서 스크린리더가 제목·목록을
1137
+ * 읽고, 각 링크로 해당 칸에 바로 간다. 칸마다 `error`·`helperText` 도 함께 표시한다.
1138
+ * react-hook-form 과 쓸 때는 `shouldFocusError: false` 로 두고 이 요약이 포커스를 받게 한다.
1139
+ */
1140
+ declare const ErrorSummary: react.ForwardRefExoticComponent<ErrorSummaryProps & react.RefAttributes<HTMLDivElement>>;
1141
+
1142
+ type FileRejectionReason = 'type' | 'size' | 'count';
1143
+ interface FileRejection {
1144
+ file: File;
1145
+ reason: FileRejectionReason;
1146
+ }
1147
+ interface FileUploadProps {
1148
+ /** 선택한 파일 (제어 모드) */
1149
+ value?: File[];
1150
+ /** 처음 파일 (비제어 모드) */
1151
+ defaultValue?: File[];
1152
+ /** 선택한 파일이 바뀔 때 (조건에 맞는 파일만) */
1153
+ onValueChange?: (files: File[]) => void;
1154
+ /** 조건(accept·maxSize·maxFiles)에 맞지 않아 빠진 파일. 이유는 화면에도 보여 준다 */
1155
+ onReject?: (rejections: FileRejection[]) => void;
1156
+ /** 받을 형식 — input accept 와 같다 (예: ".pdf,image/*") */
1157
+ accept?: string;
1158
+ /** 여러 개 선택 (기본 false — 새로 고르면 바꾼다) */
1159
+ multiple?: boolean;
1160
+ /** 파일 하나의 최대 크기 (바이트) */
1161
+ maxSize?: number;
1162
+ /** 최대 개수 (multiple 일 때) */
1163
+ maxFiles?: number;
1164
+ /** 위에 표시할 레이블 */
1165
+ label?: ReactNode;
1166
+ /** 아래 도움말 (받는 형식·크기 안내 등). error 일 때는 에러 메시지로 표시된다 */
1167
+ helperText?: ReactNode;
1168
+ /** 에러 상태 */
1169
+ error?: boolean;
1170
+ required?: boolean;
1171
+ disabled?: boolean;
1172
+ /** form 제출 시 사용할 이름 — 네이티브 input 의 files 를 맞춰 두어 그대로 제출된다 */
1173
+ name?: string;
1174
+ id?: string;
1175
+ /** 바깥 래퍼 className */
1176
+ className?: string;
1177
+ }
1178
+ /**
1179
+ * 파일 첨부. "파일 선택" 버튼(또는 끌어다 놓기)으로 고르고, 선택한 파일을 이름·크기·삭제 버튼 목록으로 보여 준다.
1180
+ * 끌어다 놓기는 덤이고 버튼으로 모두 할 수 있다(KWCAG 2.5.7). 조건에 맞지 않는 파일은 이유를 보여 주고 스크린리더에 알린다.
1181
+ * 업로드(서버 전송)는 하지 않는다 — onValueChange 로 받은 File 을 직접 보낸다.
1182
+ */
1183
+ declare const FileUpload: react.ForwardRefExoticComponent<FileUploadProps & react.RefAttributes<HTMLDivElement>>;
1184
+
987
1185
  /** 메뉴 루트. `open`/`defaultOpen`/`onOpenChange`/`modal` 을 받는다 */
988
1186
  declare const DropdownMenu: react.FC<RadixMenu.DropdownMenuProps>;
989
1187
  type DropdownMenuProps = ComponentPropsWithoutRef<typeof RadixMenu.Root>;
@@ -1013,6 +1211,41 @@ type DropdownMenuLabelProps = ComponentPropsWithoutRef<typeof RadixMenu.Label>;
1013
1211
  declare const DropdownMenuLabel: react.ForwardRefExoticComponent<Omit<RadixMenu.DropdownMenuLabelProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
1014
1212
  type DropdownMenuSeparatorProps = ComponentPropsWithoutRef<typeof RadixMenu.Separator>;
1015
1213
  declare const DropdownMenuSeparator: react.ForwardRefExoticComponent<Omit<RadixMenu.DropdownMenuSeparatorProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
1214
+ interface DropdownMenuCheckboxItemProps extends ComponentPropsWithoutRef<typeof RadixMenu.CheckboxItem> {
1215
+ /** 켜짐 여부. `'indeterminate'` 는 일부만 선택된 상태(− 표시) */
1216
+ checked?: boolean | 'indeterminate';
1217
+ /** 상태가 바뀔 때 */
1218
+ onCheckedChange?: (checked: boolean) => void;
1219
+ }
1220
+ /**
1221
+ * 켜고 끄는 항목 (role="menuitemcheckbox" + aria-checked). 기본으로 고르면 메뉴가 닫힌다 —
1222
+ * 여러 개를 이어서 바꾸게 하려면 `onSelect={(e) => e.preventDefault()}` 로 열어 둔다.
1223
+ */
1224
+ declare const DropdownMenuCheckboxItem: react.ForwardRefExoticComponent<DropdownMenuCheckboxItemProps & react.RefAttributes<HTMLDivElement>>;
1225
+ /**
1226
+ * 하나만 고르는 항목 묶음 (role="group"). 안에 `DropdownMenuRadioItem` 을 둔다.
1227
+ * 선택 상태를 스스로 갖지 않는다 — 항상 `value` + `onValueChange` 로 제어한다.
1228
+ */
1229
+ declare const DropdownMenuRadioGroup: react.ForwardRefExoticComponent<RadixMenu.DropdownMenuRadioGroupProps & react.RefAttributes<HTMLDivElement>>;
1230
+ type DropdownMenuRadioGroupProps = ComponentPropsWithoutRef<typeof RadixMenu.RadioGroup>;
1231
+ interface DropdownMenuRadioItemProps extends ComponentPropsWithoutRef<typeof RadixMenu.RadioItem> {
1232
+ /** 이 항목을 고르면 RadioGroup 의 value 가 된다 */
1233
+ value: string;
1234
+ }
1235
+ /** 묶음 안에서 하나만 고르는 항목 (role="menuitemradio" + aria-checked) */
1236
+ declare const DropdownMenuRadioItem: react.ForwardRefExoticComponent<DropdownMenuRadioItemProps & react.RefAttributes<HTMLDivElement>>;
1237
+ /** 하위 메뉴 루트. `open`/`defaultOpen`/`onOpenChange` 를 받는다 */
1238
+ declare const DropdownMenuSub: react.FC<RadixMenu.DropdownMenuSubProps>;
1239
+ type DropdownMenuSubProps = ComponentPropsWithoutRef<typeof RadixMenu.Sub>;
1240
+ interface DropdownMenuSubTriggerProps extends ComponentPropsWithoutRef<typeof RadixMenu.SubTrigger> {
1241
+ /** 텍스트 앞 아이콘 (장식용) */
1242
+ icon?: ReactNode;
1243
+ }
1244
+ /** 하위 메뉴를 여는 항목. → 또는 Enter·Space 로 열고 ← 로 닫는다 (오른쪽 화살표 표시는 장식) */
1245
+ declare const DropdownMenuSubTrigger: react.ForwardRefExoticComponent<DropdownMenuSubTriggerProps & react.RefAttributes<HTMLDivElement>>;
1246
+ type DropdownMenuSubContentProps = ComponentPropsWithoutRef<typeof RadixMenu.SubContent>;
1247
+ /** 하위 메뉴 목록. 부모 메뉴처럼 portal 로 그리고 테마를 이어받는다 */
1248
+ declare const DropdownMenuSubContent: react.ForwardRefExoticComponent<Omit<RadixMenu.DropdownMenuSubContentProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
1016
1249
 
1017
1250
  interface IconButtonProps extends Omit<ButtonProps, 'startIcon' | 'endIcon' | 'fullWidth' | 'children' | 'variant' | 'color' | 'size' | 'loading'> {
1018
1251
  /** 시각적 스타일 (기본 ghost) */
@@ -1098,6 +1331,52 @@ declare function Modal({ open, defaultOpen, onOpenChange, trigger, title, descri
1098
1331
  */
1099
1332
  declare const ModalClose: react.ForwardRefExoticComponent<Dialog.DialogCloseProps & react.RefAttributes<HTMLButtonElement>>;
1100
1333
 
1334
+ interface NumberInputProps extends Omit<TextFieldProps, 'value' | 'defaultValue' | 'onChange' | 'type' | 'inputMode' | 'startAdornment' | 'endAdornment' | 'min' | 'max' | 'step' | 'role'> {
1335
+ /** 값 (제어 모드). 비어 있으면 null */
1336
+ value?: number | null;
1337
+ /** 처음 값 (비제어 모드) */
1338
+ defaultValue?: number | null;
1339
+ /** 값이 바뀔 때 호출된다. 비우면 null. 입력 중에는 범위를 벗어난 값도 오고, 포커스가 빠질 때 범위 안으로 맞춘 값이 온다 */
1340
+ onValueChange?: (value: number | null) => void;
1341
+ /** 최솟값. 0 이상이면 "-" 를 입력할 수 없다 */
1342
+ min?: number;
1343
+ /** 최댓값 */
1344
+ max?: number;
1345
+ /** ↑/↓·버튼으로 바꾸는 단위 (기본 1) */
1346
+ step?: number;
1347
+ /** PageUp/PageDown 으로 바꾸는 단위 (기본 step × 10) */
1348
+ largeStep?: number;
1349
+ /** 소수 자릿수 (기본: step 의 소수 자릿수 — step 0.1 이면 1). 0 이면 정수만 */
1350
+ precision?: number;
1351
+ /** 단위 (입력창 뒤에 표시, 스크린리더 값에도 붙는다 — 예: "개", "명") */
1352
+ unit?: string;
1353
+ /** 천 단위 쉼표 (기본 true) */
1354
+ thousandSeparator?: boolean;
1355
+ /** −/+ 버튼을 숨긴다 (키보드 ↑/↓ 는 그대로) */
1356
+ hideStepper?: boolean;
1357
+ /** 입력창 위에 표시할 레이블 */
1358
+ label?: ReactNode;
1359
+ /** 입력창 아래에 표시할 도움말. error 일 때는 에러 메시지로 표시된다 */
1360
+ helperText?: ReactNode;
1361
+ /** 에러 상태 */
1362
+ error?: boolean;
1363
+ /** 필수 입력 (레이블에 * 표시, required 속성) */
1364
+ required?: boolean;
1365
+ disabled?: boolean;
1366
+ /** 크기 */
1367
+ size?: 'sm' | 'md' | 'lg';
1368
+ /** 부모 너비를 꽉 채운다 */
1369
+ fullWidth?: boolean;
1370
+ placeholder?: string;
1371
+ /** form 제출 시 사용할 이름 (쉼표 없는 숫자로 제출된다) */
1372
+ name?: string;
1373
+ }
1374
+ /**
1375
+ * 숫자 입력 (수량·인원·나이 등). −/+ 버튼, ↑/↓·PageUp/PageDown 으로 바꾸고, 천 단위 쉼표를 넣는다.
1376
+ * WAI-ARIA spinbutton 패턴 — 스크린리더가 현재 값·최소·최대를 읽는다. 금액은 AmountInput(한글 금액 읽기)을 쓴다.
1377
+ */
1378
+ declare const NumberInput: react.ForwardRefExoticComponent<NumberInputProps & react.RefAttributes<HTMLInputElement>>;
1379
+
1101
1380
  /** getItemLabel 이 이름을 만드는 버튼 종류 */
1102
1381
  type PaginationItemType = 'previous' | 'next' | 'page';
1103
1382
  interface PaginationProps extends Omit<HTMLAttributes<HTMLElement>, 'onChange'> {
@@ -1189,26 +1468,6 @@ declare function Popover({ content, children, title, 'aria-label': ariaLabel, sh
1189
1468
  */
1190
1469
  declare const PopoverClose: react.ForwardRefExoticComponent<RadixPopover.PopoverCloseProps & react.RefAttributes<HTMLButtonElement>>;
1191
1470
 
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
1471
  interface RadioOption {
1213
1472
  value: string;
1214
1473
  label: ReactNode;
@@ -1245,6 +1504,13 @@ interface RadioGroupProps {
1245
1504
  /** 바깥 래퍼 className */
1246
1505
  className?: string;
1247
1506
  }
1507
+ /**
1508
+ * 여러 선택지 중 하나를 고르는 라디오 버튼 묶음.
1509
+ *
1510
+ * 네이티브 `<input type="radio">` 로 만든다 — 화살표 이동·선택, Tab 으로 들어오기, 비활성 건너뛰기, 폼 제출·`required` 검증을
1511
+ * 브라우저가 처리한다. (1.1 까지는 Radix RadioGroup 이었는데, Radix 는 "포커스가 옮겨질 때 화살표 키가 아직 눌려 있는지" 로
1512
+ * 선택을 정해서 키를 바로 떼는 입력(자동화·일부 보조기기)에서는 포커스만 옮겨지고 선택이 빠졌다 — E2E 에서 20회 중 19회.)
1513
+ */
1248
1514
  declare const RadioGroup: react.ForwardRefExoticComponent<RadioGroupProps & react.RefAttributes<HTMLDivElement>>;
1249
1515
 
1250
1516
  interface SegmentedControlOption {
@@ -1326,22 +1592,6 @@ interface SelectProps {
1326
1592
  }
1327
1593
  declare const Select: react.ForwardRefExoticComponent<SelectProps & react.RefAttributes<HTMLButtonElement>>;
1328
1594
 
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
1595
  interface SkipLinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
1346
1596
  /** 건너뛸 곳(본문)의 id 를 가리키는 주소. 기본 "#main" — 본문 요소에 id="main" 을 준다 */
1347
1597
  href?: string;
@@ -1401,6 +1651,29 @@ interface SliderProps {
1401
1651
  */
1402
1652
  declare const Slider: react.ForwardRefExoticComponent<SliderProps & react.RefAttributes<HTMLSpanElement>>;
1403
1653
 
1654
+ interface StepperStep {
1655
+ /** 단계 이름 */
1656
+ label: ReactNode;
1657
+ /** 이름 아래 보조 설명 */
1658
+ description?: ReactNode;
1659
+ }
1660
+ interface StepperProps extends Omit<OlHTMLAttributes<HTMLOListElement>, 'children' | 'type' | 'start'> {
1661
+ /** 단계 목록 */
1662
+ steps: StepperStep[];
1663
+ /** 현재 단계 (0부터). 앞 단계는 완료로 표시한다. steps.length 면 모두 완료 */
1664
+ current: number;
1665
+ /** horizontal(기본): 가로로 나란히, 이름은 원 아래. vertical: 세로로, 이름은 원 오른쪽(설명이 길 때) */
1666
+ orientation?: 'horizontal' | 'vertical';
1667
+ /** 목록 이름 (기본 "진행 단계") */
1668
+ 'aria-label'?: string;
1669
+ }
1670
+ /**
1671
+ * 여러 단계로 나뉜 흐름(가입·결제·신청)에서 지금 어디쯤인지 보여 주는 표시용 목록.
1672
+ * `<ol>` 이라 스크린리더가 "n개 중 m번째" 를 읽고, 현재 단계는 aria-current="step", 완료한 단계는 "(완료)" 를 함께 읽는다.
1673
+ * 단계를 눌러 이동하는 기능은 없다 — 이동은 "이전"·"다음" 버튼으로 둔다.
1674
+ */
1675
+ declare const Stepper: react.ForwardRefExoticComponent<StepperProps & react.RefAttributes<HTMLOListElement>>;
1676
+
1404
1677
  interface SpinnerProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'color'> {
1405
1678
  /** 크기 (sm 16px, md 20px, lg 28px) */
1406
1679
  size?: 'sm' | 'md' | 'lg';
@@ -1414,22 +1687,6 @@ interface SpinnerProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'color'> {
1414
1687
  }
1415
1688
  declare const Spinner: react.ForwardRefExoticComponent<SpinnerProps & react.RefAttributes<HTMLSpanElement>>;
1416
1689
 
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
1690
  interface SwitchProps {
1434
1691
  /** 스위치 옆에 표시할 레이블 */
1435
1692
  label?: ReactNode;
@@ -1503,8 +1760,57 @@ interface TableCellProps extends Omit<TdHTMLAttributes<HTMLTableCellElement>, 'a
1503
1760
  align?: TableAlign;
1504
1761
  }
1505
1762
  declare const TableCell: react.ForwardRefExoticComponent<TableCellProps & react.RefAttributes<HTMLTableCellElement>>;
1763
+ interface TableEmptyProps extends Omit<TdHTMLAttributes<HTMLTableCellElement>, 'colSpan' | 'align'> {
1764
+ /** 표의 열 수 — 안내가 표 전체 폭을 차지하게 한다 */
1765
+ colSpan: number;
1766
+ children?: ReactNode;
1767
+ }
1768
+ /**
1769
+ * 보여 줄 행이 없을 때(검색 결과 없음 등) TableBody 안에 두는 안내 행. 표 전체 폭 가운데에 글자·버튼을 놓는다.
1770
+ * 검색·필터로 결과가 바뀌면 개수를 role="status" 로 따로 알리는 것을 권장한다(파일럿 /orders 참고).
1771
+ */
1772
+ declare const TableEmpty: react.ForwardRefExoticComponent<TableEmptyProps & react.RefAttributes<HTMLTableCellElement>>;
1773
+ interface TableSkeletonProps {
1774
+ /** 자리 표시 행 수 (기본 5) */
1775
+ rows?: number;
1776
+ /** 열 수 */
1777
+ columns: number;
1778
+ }
1779
+ /**
1780
+ * 불러오는 동안 TableBody 안에 두는 자리 표시 행. 보조기술에서는 숨긴다 — 표(Table)에 `aria-busy` 를 주고,
1781
+ * 다 불러오면 결과 개수를 role="status" 로 알린다.
1782
+ */
1783
+ declare function TableSkeleton({ rows, columns }: TableSkeletonProps): react.JSX.Element;
1784
+
1785
+ /**
1786
+ * 표 행 선택 상태. 페이지를 넘겨도 선택은 유지되고, "이 페이지 모두 선택" 체크박스(혼합 상태 포함)와 행 체크박스에
1787
+ * 바로 펼쳐 쓰는 prop 을 돌려준다.
1788
+ *
1789
+ * ```tsx
1790
+ * const selection = useTableSelection<string>();
1791
+ * <Checkbox aria-label="이 페이지 모두 선택" {...selection.selectAllProps(pageIds)} />
1792
+ * <Checkbox aria-label={`${row.id} 선택`} {...selection.rowProps(row.id)} />
1793
+ * <TableRow selected={selection.isSelected(row.id)}>
1794
+ * ```
1795
+ */
1796
+ declare function useTableSelection<Id extends string | number = string>(initial?: Id[]): {
1797
+ selected: Id[];
1798
+ setSelected: react.Dispatch<react.SetStateAction<Id[]>>;
1799
+ isSelected: (id: Id) => boolean;
1800
+ toggle: (id: Id, checked?: boolean) => void;
1801
+ clear: () => void;
1802
+ selectAllProps: (pageIds: Id[]) => {
1803
+ checked: boolean;
1804
+ indeterminate: boolean;
1805
+ onChange: () => void;
1806
+ };
1807
+ rowProps: (id: Id) => {
1808
+ checked: boolean;
1809
+ onChange: (event: ChangeEvent<HTMLInputElement>) => void;
1810
+ };
1811
+ };
1506
1812
 
1507
- interface TabsProps extends Omit<ComponentPropsWithoutRef<typeof RadixTabs.Root>, 'orientation'> {
1813
+ interface TabsProps extends ComponentPropsWithoutRef<typeof RadixTabs.Root> {
1508
1814
  /** 시각적 스타일. line 은 밑줄, soft 는 배경이 있는 세그먼트 */
1509
1815
  variant?: 'line' | 'soft';
1510
1816
  /** 크기 */
@@ -1520,6 +1826,11 @@ interface TabsProps extends Omit<ComponentPropsWithoutRef<typeof RadixTabs.Root>
1520
1826
  * manual: 방향키로 포커스만 옮기고 Enter/Space 로 선택한다 (탭 전환 비용이 클 때).
1521
1827
  */
1522
1828
  activationMode?: 'automatic' | 'manual';
1829
+ /**
1830
+ * horizontal(기본): 탭 목록이 위, ←/→ 로 이동.
1831
+ * vertical: 탭 목록이 왼쪽(내용은 오른쪽), ↑/↓ 로 이동. 탭이 많거나 이름이 길 때(설정 화면 등).
1832
+ */
1833
+ orientation?: 'horizontal' | 'vertical';
1523
1834
  }
1524
1835
  declare const Tabs: react.ForwardRefExoticComponent<TabsProps & react.RefAttributes<HTMLDivElement>>;
1525
1836
  type TabsListProps = ComponentPropsWithoutRef<typeof RadixTabs.List>;
@@ -1615,23 +1926,6 @@ interface TooltipProps {
1615
1926
  }
1616
1927
  declare function Tooltip({ content, children, side, align, delay, open, defaultOpen, onOpenChange, disabled, className, }: TooltipProps): react.JSX.Element;
1617
1928
 
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
1929
  interface VerificationCodeInputProps {
1636
1930
  /** 자릿수 */
1637
1931
  length?: number;
@@ -1671,4 +1965,4 @@ interface VerificationCodeInputProps {
1671
1965
  */
1672
1966
  declare const VerificationCodeInput: react.ForwardRefExoticComponent<VerificationCodeInputProps & react.RefAttributes<HTMLInputElement>>;
1673
1967
 
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 };
1968
+ 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, DescriptionList, type DescriptionListItem, type DescriptionListProps, 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, ErrorSummary, type ErrorSummaryItem, type ErrorSummaryProps, type FileRejection, type FileRejectionReason, FileUpload, type FileUploadProps, 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, Stepper, type StepperProps, type StepperStep, Switch, type SwitchProps, Table, type TableAlign, TableBody, TableCell, type TableCellProps, TableEmpty, type TableEmptyProps, TableFooter, TableHead, type TableHeadProps, TableHeader, type TableProps, TableRow, type TableRowProps, type TableSize, TableSkeleton, type TableSkeletonProps, 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, VisuallyHidden, type VisuallyHiddenProps, composeExtraAddress, contrastRatio, createIntentColors, createTheme, en, focusField, formatBusinessNumber, formatKoreanAmount, formatKoreanDate, formatPhoneNumber, hasAllRequiredAgreements, isValidBusinessNumber, kakaoPostcodeProvider, parseISODate, themeClass, toISODate, useMessages, usePortalProps, useTableSelection, useTheme, useToast, vars };