@bestow-ui/react 1.2.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, ElementType, CSSProperties, ComponentPropsWithoutRef, InputHTMLAttributes, 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
  };
@@ -295,6 +295,24 @@ interface BestowMessages {
295
295
  /** NumberInput −/+ 버튼 — "줄이기", "늘리기" (1.0 이후 추가, 선택 키) */
296
296
  decrement?: string;
297
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;
298
316
  /** Slider 범위 손잡이 — "최소", "최대" */
299
317
  rangeStart: string;
300
318
  rangeEnd: string;
@@ -480,6 +498,28 @@ declare const CardBody: react.ForwardRefExoticComponent<CardSectionProps & react
480
498
  /** 버튼 등 동작 영역. 오른쪽 정렬 */
481
499
  declare const CardFooter: react.ForwardRefExoticComponent<CardSectionProps & react.RefAttributes<HTMLDivElement>>;
482
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
+
483
523
  interface DividerProps extends HTMLAttributes<HTMLDivElement> {
484
524
  /** 방향. vertical 은 flex 행 안에서 부모 높이를 채운다 */
485
525
  orientation?: 'horizontal' | 'vertical';
@@ -562,6 +602,23 @@ interface TypographyProps extends Omit<HTMLAttributes<HTMLElement>, 'color'> {
562
602
  }
563
603
  declare const Typography: react.ForwardRefExoticComponent<TypographyProps & react.RefAttributes<HTMLElement>>;
564
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
+
565
622
  interface ThemeProviderProps extends HTMLAttributes<HTMLDivElement> {
566
623
  /** 라이트/다크 모드. 생략하면 바깥 ThemeProvider 의 모드를 이어받는다 (최상위는 light). */
567
624
  theme?: ThemeName;
@@ -668,6 +725,8 @@ interface AgreementGroupProps {
668
725
  hideText?: string;
669
726
  /** form 제출 시 사용할 이름. 동의한 value 마다 hidden input 이 생긴다 */
670
727
  name?: string;
728
+ /** fieldset 의 id — ErrorSummary 링크 등에서 이 묶음을 가리킬 때 */
729
+ id?: string;
671
730
  className?: string;
672
731
  }
673
732
  /**
@@ -1056,6 +1115,73 @@ declare function Drawer({ open, defaultOpen, onOpenChange, trigger, title, descr
1056
1115
  */
1057
1116
  declare const DrawerClose: react.ForwardRefExoticComponent<Dialog.DialogCloseProps & react.RefAttributes<HTMLButtonElement>>;
1058
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
+
1059
1185
  /** 메뉴 루트. `open`/`defaultOpen`/`onOpenChange`/`modal` 을 받는다 */
1060
1186
  declare const DropdownMenu: react.FC<RadixMenu.DropdownMenuProps>;
1061
1187
  type DropdownMenuProps = ComponentPropsWithoutRef<typeof RadixMenu.Root>;
@@ -1525,6 +1651,29 @@ interface SliderProps {
1525
1651
  */
1526
1652
  declare const Slider: react.ForwardRefExoticComponent<SliderProps & react.RefAttributes<HTMLSpanElement>>;
1527
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
+
1528
1677
  interface SpinnerProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'color'> {
1529
1678
  /** 크기 (sm 16px, md 20px, lg 28px) */
1530
1679
  size?: 'sm' | 'md' | 'lg';
@@ -1611,6 +1760,55 @@ interface TableCellProps extends Omit<TdHTMLAttributes<HTMLTableCellElement>, 'a
1611
1760
  align?: TableAlign;
1612
1761
  }
1613
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
+ };
1614
1812
 
1615
1813
  interface TabsProps extends ComponentPropsWithoutRef<typeof RadixTabs.Root> {
1616
1814
  /** 시각적 스타일. line 은 밑줄, soft 는 배경이 있는 세그먼트 */
@@ -1767,4 +1965,4 @@ interface VerificationCodeInputProps {
1767
1965
  */
1768
1966
  declare const VerificationCodeInput: react.ForwardRefExoticComponent<VerificationCodeInputProps & react.RefAttributes<HTMLInputElement>>;
1769
1967
 
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 };
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 };
package/dist/index.d.ts 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, ElementType, CSSProperties, ComponentPropsWithoutRef, InputHTMLAttributes, 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
  };
@@ -295,6 +295,24 @@ interface BestowMessages {
295
295
  /** NumberInput −/+ 버튼 — "줄이기", "늘리기" (1.0 이후 추가, 선택 키) */
296
296
  decrement?: string;
297
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;
298
316
  /** Slider 범위 손잡이 — "최소", "최대" */
299
317
  rangeStart: string;
300
318
  rangeEnd: string;
@@ -480,6 +498,28 @@ declare const CardBody: react.ForwardRefExoticComponent<CardSectionProps & react
480
498
  /** 버튼 등 동작 영역. 오른쪽 정렬 */
481
499
  declare const CardFooter: react.ForwardRefExoticComponent<CardSectionProps & react.RefAttributes<HTMLDivElement>>;
482
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
+
483
523
  interface DividerProps extends HTMLAttributes<HTMLDivElement> {
484
524
  /** 방향. vertical 은 flex 행 안에서 부모 높이를 채운다 */
485
525
  orientation?: 'horizontal' | 'vertical';
@@ -562,6 +602,23 @@ interface TypographyProps extends Omit<HTMLAttributes<HTMLElement>, 'color'> {
562
602
  }
563
603
  declare const Typography: react.ForwardRefExoticComponent<TypographyProps & react.RefAttributes<HTMLElement>>;
564
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
+
565
622
  interface ThemeProviderProps extends HTMLAttributes<HTMLDivElement> {
566
623
  /** 라이트/다크 모드. 생략하면 바깥 ThemeProvider 의 모드를 이어받는다 (최상위는 light). */
567
624
  theme?: ThemeName;
@@ -668,6 +725,8 @@ interface AgreementGroupProps {
668
725
  hideText?: string;
669
726
  /** form 제출 시 사용할 이름. 동의한 value 마다 hidden input 이 생긴다 */
670
727
  name?: string;
728
+ /** fieldset 의 id — ErrorSummary 링크 등에서 이 묶음을 가리킬 때 */
729
+ id?: string;
671
730
  className?: string;
672
731
  }
673
732
  /**
@@ -1056,6 +1115,73 @@ declare function Drawer({ open, defaultOpen, onOpenChange, trigger, title, descr
1056
1115
  */
1057
1116
  declare const DrawerClose: react.ForwardRefExoticComponent<Dialog.DialogCloseProps & react.RefAttributes<HTMLButtonElement>>;
1058
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
+
1059
1185
  /** 메뉴 루트. `open`/`defaultOpen`/`onOpenChange`/`modal` 을 받는다 */
1060
1186
  declare const DropdownMenu: react.FC<RadixMenu.DropdownMenuProps>;
1061
1187
  type DropdownMenuProps = ComponentPropsWithoutRef<typeof RadixMenu.Root>;
@@ -1525,6 +1651,29 @@ interface SliderProps {
1525
1651
  */
1526
1652
  declare const Slider: react.ForwardRefExoticComponent<SliderProps & react.RefAttributes<HTMLSpanElement>>;
1527
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
+
1528
1677
  interface SpinnerProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'color'> {
1529
1678
  /** 크기 (sm 16px, md 20px, lg 28px) */
1530
1679
  size?: 'sm' | 'md' | 'lg';
@@ -1611,6 +1760,55 @@ interface TableCellProps extends Omit<TdHTMLAttributes<HTMLTableCellElement>, 'a
1611
1760
  align?: TableAlign;
1612
1761
  }
1613
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
+ };
1614
1812
 
1615
1813
  interface TabsProps extends ComponentPropsWithoutRef<typeof RadixTabs.Root> {
1616
1814
  /** 시각적 스타일. line 은 밑줄, soft 는 배경이 있는 세그먼트 */
@@ -1767,4 +1965,4 @@ interface VerificationCodeInputProps {
1767
1965
  */
1768
1966
  declare const VerificationCodeInput: react.ForwardRefExoticComponent<VerificationCodeInputProps & react.RefAttributes<HTMLInputElement>>;
1769
1967
 
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 };
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 };