@bestow-ui/react 1.3.0 → 1.4.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 +9 -3
- package/dist/{chunk-VH7JW6N7.js → chunk-TIFI6ZQU.js} +18 -2
- package/dist/chunk-TIFI6ZQU.js.map +1 -0
- package/dist/client.js +421 -296
- package/dist/client.js.map +1 -1
- package/dist/index.cjs +486 -330
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +52 -5
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +95 -9
- package/dist/index.d.ts +95 -9
- package/dist/shared.js +17 -1
- package/dist/shared.js.map +1 -1
- package/package.json +3 -3
- package/dist/chunk-VH7JW6N7.js.map +0 -1
package/dist/index.d.cts
CHANGED
|
@@ -80,13 +80,30 @@ declare const lightTokens: {
|
|
|
80
80
|
type Widen<T> = {
|
|
81
81
|
[K in keyof T]: T[K] extends string ? string : Widen<T[K]>;
|
|
82
82
|
};
|
|
83
|
-
type ThemeTokens = Widen<typeof lightTokens>;
|
|
84
83
|
/**
|
|
85
|
-
*
|
|
86
|
-
*
|
|
84
|
+
* 기본값이 없는 선택 토큰 — CSS 변수를 정의하지 않고, 쓰는 곳에서 `fallbackVar` 로 기존 토큰을 따른다.
|
|
85
|
+
* 그래서 넣지 않으면 화면이 그대로이고, 기존 토큰(border.default 등)을 덮어쓴 사용자 설정도 계속 따른다(하위 영역의 CSS 덮어쓰기 포함).
|
|
86
|
+
* - `color.border.input`·`inputHover` (1.x 추가): 입력 칸(Input·Select·Combobox·Textarea·인증번호 칸 등) 테두리. 기본은 border.default·border.strong.
|
|
87
|
+
* 흰 배경과 1.3:1 인 기본 테두리를 3:1 이상으로 올리려면 `strongInputBorders` 를 쓴다(2.0 에서 기본값이 될 예정).
|
|
87
88
|
*/
|
|
89
|
+
declare const optionalTokens: {
|
|
90
|
+
color: {
|
|
91
|
+
border: {
|
|
92
|
+
input: string;
|
|
93
|
+
inputHover: string;
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
type ThemeTokens = Widen<typeof lightTokens> & Widen<typeof optionalTokens>;
|
|
88
98
|
declare const vars: {
|
|
89
99
|
color: {
|
|
100
|
+
border: {
|
|
101
|
+
input: `var(--${string})`;
|
|
102
|
+
inputHover: `var(--${string})`;
|
|
103
|
+
default: `var(--${string})`;
|
|
104
|
+
strong: `var(--${string})`;
|
|
105
|
+
focus: `var(--${string})`;
|
|
106
|
+
};
|
|
90
107
|
bg: {
|
|
91
108
|
default: `var(--${string})`;
|
|
92
109
|
subtle: `var(--${string})`;
|
|
@@ -100,11 +117,6 @@ declare const vars: {
|
|
|
100
117
|
subtle: `var(--${string})`;
|
|
101
118
|
inverse: `var(--${string})`;
|
|
102
119
|
};
|
|
103
|
-
border: {
|
|
104
|
-
default: `var(--${string})`;
|
|
105
|
-
strong: `var(--${string})`;
|
|
106
|
-
focus: `var(--${string})`;
|
|
107
|
-
};
|
|
108
120
|
primary: {
|
|
109
121
|
solid: `var(--${string})`;
|
|
110
122
|
solidHover: `var(--${string})`;
|
|
@@ -259,6 +271,17 @@ type IntentName = 'primary' | 'neutral' | 'danger' | 'success' | 'warning';
|
|
|
259
271
|
*/
|
|
260
272
|
declare function createIntentColors(intent: IntentName, color: string): ThemeInput;
|
|
261
273
|
|
|
274
|
+
/**
|
|
275
|
+
* 입력 칸 테두리를 배경과 3:1 이상으로 올리는 테마 입력 (WCAG 1.4.11 비텍스트 대비).
|
|
276
|
+
* 기본 테두리(border.default)는 흰 배경과 1.3:1 이라 칸의 경계가 잘 보이지 않는다 — 2.0 에서 기본값이 될 예정.
|
|
277
|
+
* hover 는 테두리보다 더 진하게(다크는 더 밝게) 바뀐다.
|
|
278
|
+
*
|
|
279
|
+
* @example
|
|
280
|
+
* <ThemeProvider overrides={createTheme(strongInputBorders)}>…</ThemeProvider>
|
|
281
|
+
* createTheme(createIntentColors('primary', '#7c3aed'), strongInputBorders) // 브랜드 테마와 함께
|
|
282
|
+
*/
|
|
283
|
+
declare const strongInputBorders: ThemeInput;
|
|
284
|
+
|
|
262
285
|
/**
|
|
263
286
|
* 컴포넌트의 기본 문구. 모두 생략할 수 있고, 생략하면 각 컴포넌트의 한국어 기본값을 쓴다.
|
|
264
287
|
* 우선순위: 컴포넌트에 직접 준 prop > LocaleProvider 의 messages > 한국어 기본값.
|
|
@@ -313,6 +336,10 @@ interface BestowMessages {
|
|
|
313
336
|
fileTooMany?: (maxFiles: number) => string;
|
|
314
337
|
/** ErrorSummary 제목 — "입력한 내용에 고칠 곳이 3개 있어요" (1.0 이후 추가, 선택 키) */
|
|
315
338
|
errorSummaryTitle?: (count: number) => string;
|
|
339
|
+
/** DateRangePicker — "시작일", "종료일", 빠른 선택 묶음 이름 "빠른 선택" (1.0 이후 추가, 선택 키) */
|
|
340
|
+
dateRangeStart?: string;
|
|
341
|
+
dateRangeEnd?: string;
|
|
342
|
+
dateRangePresets?: string;
|
|
316
343
|
/** Slider 범위 손잡이 — "최소", "최대" */
|
|
317
344
|
rangeStart: string;
|
|
318
345
|
rangeEnd: string;
|
|
@@ -520,6 +547,23 @@ interface DescriptionListProps extends HTMLAttributes<HTMLDListElement> {
|
|
|
520
547
|
*/
|
|
521
548
|
declare const DescriptionList: react.ForwardRefExoticComponent<DescriptionListProps & react.RefAttributes<HTMLDListElement>>;
|
|
522
549
|
|
|
550
|
+
interface DateRange {
|
|
551
|
+
/** 시작일 'YYYY-MM-DD' (없으면 '') */
|
|
552
|
+
start: string;
|
|
553
|
+
/** 종료일 'YYYY-MM-DD' (없으면 '') */
|
|
554
|
+
end: string;
|
|
555
|
+
}
|
|
556
|
+
/** 빠른 선택 — 오늘에서 거슬러 올라간 기간. `days: 0` 은 오늘 하루 */
|
|
557
|
+
interface DateRangePreset {
|
|
558
|
+
label: string;
|
|
559
|
+
days?: number;
|
|
560
|
+
months?: number;
|
|
561
|
+
}
|
|
562
|
+
/** 조회 화면에서 흔한 빠른 선택(오늘·1주일·1개월·3개월). 그대로 넘기거나 골라 쓴다 */
|
|
563
|
+
declare const dateRangePresets: DateRangePreset[];
|
|
564
|
+
/** 빠른 선택이 가리키는 기간 (오늘 'YYYY-MM-DD' 기준) */
|
|
565
|
+
declare function presetRange(preset: DateRangePreset, today: string): DateRange;
|
|
566
|
+
|
|
523
567
|
interface DividerProps extends HTMLAttributes<HTMLDivElement> {
|
|
524
568
|
/** 방향. vertical 은 flex 행 안에서 부모 높이를 채운다 */
|
|
525
569
|
orientation?: 'horizontal' | 'vertical';
|
|
@@ -1076,6 +1120,47 @@ interface DatePickerProps {
|
|
|
1076
1120
|
*/
|
|
1077
1121
|
declare const DatePicker: react.ForwardRefExoticComponent<DatePickerProps & react.RefAttributes<HTMLInputElement>>;
|
|
1078
1122
|
|
|
1123
|
+
interface DateRangePickerProps {
|
|
1124
|
+
/** 기간 (제어 모드) */
|
|
1125
|
+
value?: DateRange;
|
|
1126
|
+
/** 처음 기간 (비제어 모드) */
|
|
1127
|
+
defaultValue?: DateRange;
|
|
1128
|
+
/** 시작일·종료일이 바뀔 때. 비었거나 고를 수 없는 날짜면 '' */
|
|
1129
|
+
onValueChange?: (range: DateRange) => void;
|
|
1130
|
+
/** 묶음 이름 (legend) — 예: "조회 기간" */
|
|
1131
|
+
label?: ReactNode;
|
|
1132
|
+
/** 시작일 칸 레이블 (기본 "시작일") */
|
|
1133
|
+
startLabel?: string;
|
|
1134
|
+
/** 종료일 칸 레이블 (기본 "종료일") */
|
|
1135
|
+
endLabel?: string;
|
|
1136
|
+
/** 빠른 선택 버튼 — 오늘에서 거슬러 올라간 기간 (`dateRangePresets` 를 그대로 넘겨도 된다) */
|
|
1137
|
+
presets?: DateRangePreset[];
|
|
1138
|
+
/** 고를 수 있는 가장 이른 날 */
|
|
1139
|
+
min?: string;
|
|
1140
|
+
/** 고를 수 있는 가장 늦은 날 */
|
|
1141
|
+
max?: string;
|
|
1142
|
+
isDateDisabled?: (date: Date) => boolean;
|
|
1143
|
+
isHoliday?: (date: Date) => boolean;
|
|
1144
|
+
/** "오늘" 을 고정한다 (빠른 선택의 기준, 달력의 오늘 표시 — 테스트·시각 회귀용) */
|
|
1145
|
+
today?: string;
|
|
1146
|
+
/** 묶음 아래 도움말 */
|
|
1147
|
+
helperText?: ReactNode;
|
|
1148
|
+
error?: boolean;
|
|
1149
|
+
required?: boolean;
|
|
1150
|
+
disabled?: boolean;
|
|
1151
|
+
/** form 제출용 이름 — 시작일·종료일 */
|
|
1152
|
+
startName?: string;
|
|
1153
|
+
endName?: string;
|
|
1154
|
+
/** fieldset 의 id (시작·종료 칸은 `${id}-start`, `${id}-end`) — ErrorSummary 링크가 가리키면 시작일로 간다 */
|
|
1155
|
+
id?: string;
|
|
1156
|
+
className?: string;
|
|
1157
|
+
}
|
|
1158
|
+
/**
|
|
1159
|
+
* 기간 선택 (조회 기간, 예약 기간). 시작일·종료일 DatePicker 두 개를 묶고, 시작일은 종료일보다 늦을 수 없게 서로 제한한다.
|
|
1160
|
+
* 빠른 선택(오늘·1주일·1개월…)은 현재 기간과 같으면 눌린 상태(aria-pressed)로 보인다.
|
|
1161
|
+
*/
|
|
1162
|
+
declare const DateRangePicker: react.ForwardRefExoticComponent<DateRangePickerProps & react.RefAttributes<HTMLFieldSetElement>>;
|
|
1163
|
+
|
|
1079
1164
|
interface DrawerProps {
|
|
1080
1165
|
/** 열림 상태 (제어 모드) */
|
|
1081
1166
|
open?: boolean;
|
|
@@ -1965,4 +2050,5 @@ interface VerificationCodeInputProps {
|
|
|
1965
2050
|
*/
|
|
1966
2051
|
declare const VerificationCodeInput: react.ForwardRefExoticComponent<VerificationCodeInputProps & react.RefAttributes<HTMLInputElement>>;
|
|
1967
2052
|
|
|
1968
|
-
export { Accordion, AccordionItem,
|
|
2053
|
+
export { Accordion, AccordionItem, AddressInput, AgreementGroup, Alert, AmountInput, Avatar, Badge, Breadcrumb, BusinessNumberInput, Button, Calendar, Card, CardBody, CardFooter, CardHeader, Checkbox, Combobox, DatePicker, DateRangePicker, DescriptionList, Divider, Drawer, DrawerClose, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, ErrorSummary, FileUpload, IconButton, Input, Link, LocaleProvider, Modal, ModalClose, NumberInput, Pagination, PhoneNumberInput, Popover, PopoverClose, Progress, RadioGroup, SegmentedControl, Select, Skeleton, SkipLink, Slider, Spinner, Stack, Stepper, Switch, Table, TableBody, TableCell, TableEmpty, TableFooter, TableHead, TableHeader, TableRow, TableSkeleton, Tabs, TabsContent, TabsList, TabsTrigger, TextField, Textarea, ThemeProvider, ToastProvider, Tooltip, Typography, VerificationCodeInput, VisuallyHidden, composeExtraAddress, contrastRatio, createIntentColors, createTheme, dateRangePresets, en, focusField, formatBusinessNumber, formatKoreanAmount, formatKoreanDate, formatPhoneNumber, hasAllRequiredAgreements, isValidBusinessNumber, kakaoPostcodeProvider, parseISODate, presetRange, strongInputBorders, themeClass, toISODate, useMessages, usePortalProps, useTableSelection, useTheme, useToast, vars };
|
|
2054
|
+
export type { AccordionItemProps, AccordionProps, AddressInputProps, AddressProvider, AddressSearchResult, AddressValue, AgreementGroupProps, AgreementItem, AlertColor, AlertProps, AmountInputProps, AvatarProps, BadgeProps, BestowMessages, BestowTheme, BreadcrumbItemData, BreadcrumbProps, BusinessNumberInputProps, ButtonProps, CalendarProps, CardProps, CardSectionProps, CheckboxProps, ComboboxOption, ComboboxProps, DatePickerProps, DateRange, DateRangePickerProps, DateRangePreset, DeepPartial, DescriptionListItem, DescriptionListProps, DividerProps, DrawerProps, DropdownMenuCheckboxItemProps, DropdownMenuContentProps, DropdownMenuItemProps, DropdownMenuLabelProps, DropdownMenuProps, DropdownMenuRadioGroupProps, DropdownMenuRadioItemProps, DropdownMenuSeparatorProps, DropdownMenuSubContentProps, DropdownMenuSubProps, DropdownMenuSubTriggerProps, DropdownMenuTriggerProps, ErrorSummaryItem, ErrorSummaryProps, FileRejection, FileRejectionReason, FileUploadProps, IconButtonProps, InputProps, IntentName, LinkProps, LocaleProviderProps, Messages, ModalProps, NumberInputProps, PaginationItemType, PaginationProps, PhoneNumberInputProps, PopoverProps, ProgressProps, RadioGroupProps, RadioOption, SegmentedControlOption, SegmentedControlProps, SelectOption, SelectProps, SkeletonProps, SkipLinkProps, SliderProps, SpinnerProps, StackProps, StepperProps, StepperStep, SwitchProps, TableAlign, TableCellProps, TableEmptyProps, TableHeadProps, TableProps, TableRowProps, TableSize, TableSkeletonProps, TabsContentProps, TabsListProps, TabsProps, TabsTriggerProps, TextFieldProps, TextareaProps, ThemeInput, ThemeName, ThemeOverrides, ThemeProviderProps, ThemeTokens, ToastColor, ToastContextValue, ToastOptions, ToastProviderProps, TooltipProps, TypographyProps, TypographyVariant, VerificationCodeInputProps, VisuallyHiddenProps };
|
package/dist/index.d.ts
CHANGED
|
@@ -80,13 +80,30 @@ declare const lightTokens: {
|
|
|
80
80
|
type Widen<T> = {
|
|
81
81
|
[K in keyof T]: T[K] extends string ? string : Widen<T[K]>;
|
|
82
82
|
};
|
|
83
|
-
type ThemeTokens = Widen<typeof lightTokens>;
|
|
84
83
|
/**
|
|
85
|
-
*
|
|
86
|
-
*
|
|
84
|
+
* 기본값이 없는 선택 토큰 — CSS 변수를 정의하지 않고, 쓰는 곳에서 `fallbackVar` 로 기존 토큰을 따른다.
|
|
85
|
+
* 그래서 넣지 않으면 화면이 그대로이고, 기존 토큰(border.default 등)을 덮어쓴 사용자 설정도 계속 따른다(하위 영역의 CSS 덮어쓰기 포함).
|
|
86
|
+
* - `color.border.input`·`inputHover` (1.x 추가): 입력 칸(Input·Select·Combobox·Textarea·인증번호 칸 등) 테두리. 기본은 border.default·border.strong.
|
|
87
|
+
* 흰 배경과 1.3:1 인 기본 테두리를 3:1 이상으로 올리려면 `strongInputBorders` 를 쓴다(2.0 에서 기본값이 될 예정).
|
|
87
88
|
*/
|
|
89
|
+
declare const optionalTokens: {
|
|
90
|
+
color: {
|
|
91
|
+
border: {
|
|
92
|
+
input: string;
|
|
93
|
+
inputHover: string;
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
type ThemeTokens = Widen<typeof lightTokens> & Widen<typeof optionalTokens>;
|
|
88
98
|
declare const vars: {
|
|
89
99
|
color: {
|
|
100
|
+
border: {
|
|
101
|
+
input: `var(--${string})`;
|
|
102
|
+
inputHover: `var(--${string})`;
|
|
103
|
+
default: `var(--${string})`;
|
|
104
|
+
strong: `var(--${string})`;
|
|
105
|
+
focus: `var(--${string})`;
|
|
106
|
+
};
|
|
90
107
|
bg: {
|
|
91
108
|
default: `var(--${string})`;
|
|
92
109
|
subtle: `var(--${string})`;
|
|
@@ -100,11 +117,6 @@ declare const vars: {
|
|
|
100
117
|
subtle: `var(--${string})`;
|
|
101
118
|
inverse: `var(--${string})`;
|
|
102
119
|
};
|
|
103
|
-
border: {
|
|
104
|
-
default: `var(--${string})`;
|
|
105
|
-
strong: `var(--${string})`;
|
|
106
|
-
focus: `var(--${string})`;
|
|
107
|
-
};
|
|
108
120
|
primary: {
|
|
109
121
|
solid: `var(--${string})`;
|
|
110
122
|
solidHover: `var(--${string})`;
|
|
@@ -259,6 +271,17 @@ type IntentName = 'primary' | 'neutral' | 'danger' | 'success' | 'warning';
|
|
|
259
271
|
*/
|
|
260
272
|
declare function createIntentColors(intent: IntentName, color: string): ThemeInput;
|
|
261
273
|
|
|
274
|
+
/**
|
|
275
|
+
* 입력 칸 테두리를 배경과 3:1 이상으로 올리는 테마 입력 (WCAG 1.4.11 비텍스트 대비).
|
|
276
|
+
* 기본 테두리(border.default)는 흰 배경과 1.3:1 이라 칸의 경계가 잘 보이지 않는다 — 2.0 에서 기본값이 될 예정.
|
|
277
|
+
* hover 는 테두리보다 더 진하게(다크는 더 밝게) 바뀐다.
|
|
278
|
+
*
|
|
279
|
+
* @example
|
|
280
|
+
* <ThemeProvider overrides={createTheme(strongInputBorders)}>…</ThemeProvider>
|
|
281
|
+
* createTheme(createIntentColors('primary', '#7c3aed'), strongInputBorders) // 브랜드 테마와 함께
|
|
282
|
+
*/
|
|
283
|
+
declare const strongInputBorders: ThemeInput;
|
|
284
|
+
|
|
262
285
|
/**
|
|
263
286
|
* 컴포넌트의 기본 문구. 모두 생략할 수 있고, 생략하면 각 컴포넌트의 한국어 기본값을 쓴다.
|
|
264
287
|
* 우선순위: 컴포넌트에 직접 준 prop > LocaleProvider 의 messages > 한국어 기본값.
|
|
@@ -313,6 +336,10 @@ interface BestowMessages {
|
|
|
313
336
|
fileTooMany?: (maxFiles: number) => string;
|
|
314
337
|
/** ErrorSummary 제목 — "입력한 내용에 고칠 곳이 3개 있어요" (1.0 이후 추가, 선택 키) */
|
|
315
338
|
errorSummaryTitle?: (count: number) => string;
|
|
339
|
+
/** DateRangePicker — "시작일", "종료일", 빠른 선택 묶음 이름 "빠른 선택" (1.0 이후 추가, 선택 키) */
|
|
340
|
+
dateRangeStart?: string;
|
|
341
|
+
dateRangeEnd?: string;
|
|
342
|
+
dateRangePresets?: string;
|
|
316
343
|
/** Slider 범위 손잡이 — "최소", "최대" */
|
|
317
344
|
rangeStart: string;
|
|
318
345
|
rangeEnd: string;
|
|
@@ -520,6 +547,23 @@ interface DescriptionListProps extends HTMLAttributes<HTMLDListElement> {
|
|
|
520
547
|
*/
|
|
521
548
|
declare const DescriptionList: react.ForwardRefExoticComponent<DescriptionListProps & react.RefAttributes<HTMLDListElement>>;
|
|
522
549
|
|
|
550
|
+
interface DateRange {
|
|
551
|
+
/** 시작일 'YYYY-MM-DD' (없으면 '') */
|
|
552
|
+
start: string;
|
|
553
|
+
/** 종료일 'YYYY-MM-DD' (없으면 '') */
|
|
554
|
+
end: string;
|
|
555
|
+
}
|
|
556
|
+
/** 빠른 선택 — 오늘에서 거슬러 올라간 기간. `days: 0` 은 오늘 하루 */
|
|
557
|
+
interface DateRangePreset {
|
|
558
|
+
label: string;
|
|
559
|
+
days?: number;
|
|
560
|
+
months?: number;
|
|
561
|
+
}
|
|
562
|
+
/** 조회 화면에서 흔한 빠른 선택(오늘·1주일·1개월·3개월). 그대로 넘기거나 골라 쓴다 */
|
|
563
|
+
declare const dateRangePresets: DateRangePreset[];
|
|
564
|
+
/** 빠른 선택이 가리키는 기간 (오늘 'YYYY-MM-DD' 기준) */
|
|
565
|
+
declare function presetRange(preset: DateRangePreset, today: string): DateRange;
|
|
566
|
+
|
|
523
567
|
interface DividerProps extends HTMLAttributes<HTMLDivElement> {
|
|
524
568
|
/** 방향. vertical 은 flex 행 안에서 부모 높이를 채운다 */
|
|
525
569
|
orientation?: 'horizontal' | 'vertical';
|
|
@@ -1076,6 +1120,47 @@ interface DatePickerProps {
|
|
|
1076
1120
|
*/
|
|
1077
1121
|
declare const DatePicker: react.ForwardRefExoticComponent<DatePickerProps & react.RefAttributes<HTMLInputElement>>;
|
|
1078
1122
|
|
|
1123
|
+
interface DateRangePickerProps {
|
|
1124
|
+
/** 기간 (제어 모드) */
|
|
1125
|
+
value?: DateRange;
|
|
1126
|
+
/** 처음 기간 (비제어 모드) */
|
|
1127
|
+
defaultValue?: DateRange;
|
|
1128
|
+
/** 시작일·종료일이 바뀔 때. 비었거나 고를 수 없는 날짜면 '' */
|
|
1129
|
+
onValueChange?: (range: DateRange) => void;
|
|
1130
|
+
/** 묶음 이름 (legend) — 예: "조회 기간" */
|
|
1131
|
+
label?: ReactNode;
|
|
1132
|
+
/** 시작일 칸 레이블 (기본 "시작일") */
|
|
1133
|
+
startLabel?: string;
|
|
1134
|
+
/** 종료일 칸 레이블 (기본 "종료일") */
|
|
1135
|
+
endLabel?: string;
|
|
1136
|
+
/** 빠른 선택 버튼 — 오늘에서 거슬러 올라간 기간 (`dateRangePresets` 를 그대로 넘겨도 된다) */
|
|
1137
|
+
presets?: DateRangePreset[];
|
|
1138
|
+
/** 고를 수 있는 가장 이른 날 */
|
|
1139
|
+
min?: string;
|
|
1140
|
+
/** 고를 수 있는 가장 늦은 날 */
|
|
1141
|
+
max?: string;
|
|
1142
|
+
isDateDisabled?: (date: Date) => boolean;
|
|
1143
|
+
isHoliday?: (date: Date) => boolean;
|
|
1144
|
+
/** "오늘" 을 고정한다 (빠른 선택의 기준, 달력의 오늘 표시 — 테스트·시각 회귀용) */
|
|
1145
|
+
today?: string;
|
|
1146
|
+
/** 묶음 아래 도움말 */
|
|
1147
|
+
helperText?: ReactNode;
|
|
1148
|
+
error?: boolean;
|
|
1149
|
+
required?: boolean;
|
|
1150
|
+
disabled?: boolean;
|
|
1151
|
+
/** form 제출용 이름 — 시작일·종료일 */
|
|
1152
|
+
startName?: string;
|
|
1153
|
+
endName?: string;
|
|
1154
|
+
/** fieldset 의 id (시작·종료 칸은 `${id}-start`, `${id}-end`) — ErrorSummary 링크가 가리키면 시작일로 간다 */
|
|
1155
|
+
id?: string;
|
|
1156
|
+
className?: string;
|
|
1157
|
+
}
|
|
1158
|
+
/**
|
|
1159
|
+
* 기간 선택 (조회 기간, 예약 기간). 시작일·종료일 DatePicker 두 개를 묶고, 시작일은 종료일보다 늦을 수 없게 서로 제한한다.
|
|
1160
|
+
* 빠른 선택(오늘·1주일·1개월…)은 현재 기간과 같으면 눌린 상태(aria-pressed)로 보인다.
|
|
1161
|
+
*/
|
|
1162
|
+
declare const DateRangePicker: react.ForwardRefExoticComponent<DateRangePickerProps & react.RefAttributes<HTMLFieldSetElement>>;
|
|
1163
|
+
|
|
1079
1164
|
interface DrawerProps {
|
|
1080
1165
|
/** 열림 상태 (제어 모드) */
|
|
1081
1166
|
open?: boolean;
|
|
@@ -1965,4 +2050,5 @@ interface VerificationCodeInputProps {
|
|
|
1965
2050
|
*/
|
|
1966
2051
|
declare const VerificationCodeInput: react.ForwardRefExoticComponent<VerificationCodeInputProps & react.RefAttributes<HTMLInputElement>>;
|
|
1967
2052
|
|
|
1968
|
-
export { Accordion, AccordionItem,
|
|
2053
|
+
export { Accordion, AccordionItem, AddressInput, AgreementGroup, Alert, AmountInput, Avatar, Badge, Breadcrumb, BusinessNumberInput, Button, Calendar, Card, CardBody, CardFooter, CardHeader, Checkbox, Combobox, DatePicker, DateRangePicker, DescriptionList, Divider, Drawer, DrawerClose, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, ErrorSummary, FileUpload, IconButton, Input, Link, LocaleProvider, Modal, ModalClose, NumberInput, Pagination, PhoneNumberInput, Popover, PopoverClose, Progress, RadioGroup, SegmentedControl, Select, Skeleton, SkipLink, Slider, Spinner, Stack, Stepper, Switch, Table, TableBody, TableCell, TableEmpty, TableFooter, TableHead, TableHeader, TableRow, TableSkeleton, Tabs, TabsContent, TabsList, TabsTrigger, TextField, Textarea, ThemeProvider, ToastProvider, Tooltip, Typography, VerificationCodeInput, VisuallyHidden, composeExtraAddress, contrastRatio, createIntentColors, createTheme, dateRangePresets, en, focusField, formatBusinessNumber, formatKoreanAmount, formatKoreanDate, formatPhoneNumber, hasAllRequiredAgreements, isValidBusinessNumber, kakaoPostcodeProvider, parseISODate, presetRange, strongInputBorders, themeClass, toISODate, useMessages, usePortalProps, useTableSelection, useTheme, useToast, vars };
|
|
2054
|
+
export type { AccordionItemProps, AccordionProps, AddressInputProps, AddressProvider, AddressSearchResult, AddressValue, AgreementGroupProps, AgreementItem, AlertColor, AlertProps, AmountInputProps, AvatarProps, BadgeProps, BestowMessages, BestowTheme, BreadcrumbItemData, BreadcrumbProps, BusinessNumberInputProps, ButtonProps, CalendarProps, CardProps, CardSectionProps, CheckboxProps, ComboboxOption, ComboboxProps, DatePickerProps, DateRange, DateRangePickerProps, DateRangePreset, DeepPartial, DescriptionListItem, DescriptionListProps, DividerProps, DrawerProps, DropdownMenuCheckboxItemProps, DropdownMenuContentProps, DropdownMenuItemProps, DropdownMenuLabelProps, DropdownMenuProps, DropdownMenuRadioGroupProps, DropdownMenuRadioItemProps, DropdownMenuSeparatorProps, DropdownMenuSubContentProps, DropdownMenuSubProps, DropdownMenuSubTriggerProps, DropdownMenuTriggerProps, ErrorSummaryItem, ErrorSummaryProps, FileRejection, FileRejectionReason, FileUploadProps, IconButtonProps, InputProps, IntentName, LinkProps, LocaleProviderProps, Messages, ModalProps, NumberInputProps, PaginationItemType, PaginationProps, PhoneNumberInputProps, PopoverProps, ProgressProps, RadioGroupProps, RadioOption, SegmentedControlOption, SegmentedControlProps, SelectOption, SelectProps, SkeletonProps, SkipLinkProps, SliderProps, SpinnerProps, StackProps, StepperProps, StepperStep, SwitchProps, TableAlign, TableCellProps, TableEmptyProps, TableHeadProps, TableProps, TableRowProps, TableSize, TableSkeletonProps, TabsContentProps, TabsListProps, TabsProps, TabsTriggerProps, TextFieldProps, TextareaProps, ThemeInput, ThemeName, ThemeOverrides, ThemeProviderProps, ThemeTokens, ToastColor, ToastContextValue, ToastOptions, ToastProviderProps, TooltipProps, TypographyProps, TypographyVariant, VerificationCodeInputProps, VisuallyHiddenProps };
|
package/dist/shared.js
CHANGED
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
composeExtraAddress,
|
|
4
4
|
createTheme,
|
|
5
5
|
cx,
|
|
6
|
+
dateRangePresets,
|
|
6
7
|
focusField,
|
|
7
8
|
formatBusinessNumber,
|
|
8
9
|
formatKoreanAmount,
|
|
@@ -11,11 +12,12 @@ import {
|
|
|
11
12
|
isValidBusinessNumber,
|
|
12
13
|
kakaoPostcodeProvider,
|
|
13
14
|
parseISODate,
|
|
15
|
+
presetRange,
|
|
14
16
|
themeClass,
|
|
15
17
|
toISODate,
|
|
16
18
|
vars,
|
|
17
19
|
visuallyHidden
|
|
18
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-TIFI6ZQU.js";
|
|
19
21
|
|
|
20
22
|
// src/theme/color.ts
|
|
21
23
|
import { darkColors, lightColors, palette } from "@bestow-ui/tokens";
|
|
@@ -154,6 +156,14 @@ function createIntentColors(intent, color) {
|
|
|
154
156
|
};
|
|
155
157
|
}
|
|
156
158
|
|
|
159
|
+
// src/theme/presets.ts
|
|
160
|
+
var strongInputBorders = /* @__PURE__ */ Object.freeze({
|
|
161
|
+
// 라이트: gray600 / gray700 — 흰 배경 5.18:1, bg.subtle(gray50) 4.91:1
|
|
162
|
+
light: { color: { border: { input: "#666e76", inputHover: "#495057" } } },
|
|
163
|
+
// 다크: gray500 / gray300 — gray600 은 bg.subtle(gray900) 위에서 2.98:1 이라 한 단계 밝게. bg.default 8.57:1, bg.subtle 7.43:1
|
|
164
|
+
dark: { color: { border: { input: "#adb5bd", inputHover: "#dee2e6" } } }
|
|
165
|
+
});
|
|
166
|
+
|
|
157
167
|
// src/i18n/en.ts
|
|
158
168
|
var WEEKDAYS_LONG = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
|
|
159
169
|
var MONTHS = [
|
|
@@ -197,6 +207,9 @@ var en = {
|
|
|
197
207
|
fileTooLarge: (name, maxSize) => `${name}: files must be ${maxSize} or smaller.`,
|
|
198
208
|
fileTypeNotAllowed: (name) => `${name}: this file type is not allowed.`,
|
|
199
209
|
fileTooMany: (maxFiles) => `You can upload up to ${maxFiles} files.`,
|
|
210
|
+
dateRangeStart: "Start date",
|
|
211
|
+
dateRangeEnd: "End date",
|
|
212
|
+
dateRangePresets: "Quick select",
|
|
200
213
|
errorSummaryTitle: (count) => `There ${count === 1 ? "is 1 problem" : `are ${count} problems`} with your answers`,
|
|
201
214
|
rangeStart: "minimum",
|
|
202
215
|
rangeEnd: "maximum",
|
|
@@ -472,6 +485,7 @@ export {
|
|
|
472
485
|
contrastRatio,
|
|
473
486
|
createIntentColors,
|
|
474
487
|
createTheme,
|
|
488
|
+
dateRangePresets,
|
|
475
489
|
en,
|
|
476
490
|
focusField,
|
|
477
491
|
formatBusinessNumber,
|
|
@@ -482,6 +496,8 @@ export {
|
|
|
482
496
|
isValidBusinessNumber,
|
|
483
497
|
kakaoPostcodeProvider,
|
|
484
498
|
parseISODate,
|
|
499
|
+
presetRange,
|
|
500
|
+
strongInputBorders,
|
|
485
501
|
themeClass,
|
|
486
502
|
toISODate,
|
|
487
503
|
vars
|