@amineslab/ui 0.1.0-next.20260925131012
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 +243 -0
- package/dist/forms/react-hook-form.cjs +3 -0
- package/dist/forms/react-hook-form.d.cts +140 -0
- package/dist/forms/react-hook-form.d.ts +140 -0
- package/dist/forms/react-hook-form.js +3 -0
- package/dist/icons.cjs +2 -0
- package/dist/icons.d.cts +1 -0
- package/dist/icons.d.ts +1 -0
- package/dist/icons.js +2 -0
- package/dist/index.cjs +3 -0
- package/dist/index.d.cts +1805 -0
- package/dist/index.d.ts +1805 -0
- package/dist/index.js +3 -0
- package/dist/styles/components.css +2 -0
- package/dist/styles/components.css.d.ts +2 -0
- package/dist/styles/fonts.css +0 -0
- package/dist/styles/fonts.css.d.ts +2 -0
- package/dist/styles/foundation.css +1 -0
- package/dist/styles/foundation.css.d.ts +2 -0
- package/dist/styles/index.css +2 -0
- package/dist/styles/index.css.d.ts +2 -0
- package/dist/styles/patterns.css +1 -0
- package/dist/styles/patterns.css.d.ts +2 -0
- package/dist/styles/tailwind.css +409 -0
- package/dist/styles/tailwind.css.d.ts +2 -0
- package/dist/styles/theme.css +2 -0
- package/dist/styles/theme.css.d.ts +2 -0
- package/dist/styles/tokens.css +1 -0
- package/dist/styles/tokens.css.d.ts +2 -0
- package/dist/theme/next.cjs +3 -0
- package/dist/theme/next.d.cts +10 -0
- package/dist/theme/next.d.ts +10 -0
- package/dist/theme/next.js +3 -0
- package/dist/toast/sonner.cjs +19 -0
- package/dist/toast/sonner.d.cts +51 -0
- package/dist/toast/sonner.d.ts +51 -0
- package/dist/toast/sonner.js +19 -0
- package/dist/tokens.cjs +2 -0
- package/dist/tokens.d.cts +1807 -0
- package/dist/tokens.d.ts +1807 -0
- package/dist/tokens.js +2 -0
- package/dist/use-submit-guard--899Lr9k.d.cts +600 -0
- package/dist/use-submit-guard--899Lr9k.d.ts +600 -0
- package/dist/utils.cjs +2 -0
- package/dist/utils.d.cts +5 -0
- package/dist/utils.d.ts +5 -0
- package/dist/utils.js +2 -0
- package/package.json +215 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,1805 @@
|
|
|
1
|
+
import * as React$1 from 'react';
|
|
2
|
+
import { HTMLAttributes, LabelHTMLAttributes, ReactNode, ReactElement, ButtonHTMLAttributes, Ref, SelectHTMLAttributes, AnchorHTMLAttributes, KeyboardEvent } from 'react';
|
|
3
|
+
import { VariantProps } from 'class-variance-authority';
|
|
4
|
+
import { F as FileInputProps, c as FileUploadProps, k as FileConstraints, l as FileError, B as ButtonIcon, m as FieldControlProps$1, n as ControlSize, I as InputProps } from './use-submit-guard--899Lr9k.js';
|
|
5
|
+
export { o as Checkbox, p as CheckboxField, C as CheckboxFieldProps, q as CheckboxProps, s as Combobox, t as ComboboxField, a as ComboboxFieldProps, u as ComboboxOption, v as ComboboxProps, w as DateField, D as DateFieldProps, x as DatePicker, y as DatePickerProps, z as DateRange, A as DateRangeField, b as DateRangeFieldProps, E as DateRangePicker, G as DateRangePickerProps, H as FieldControlVariant, J as FieldControlVariants, K as FieldLayout, M as FileDropzoneVariant, O as FileDropzoneVariants, Q as FileErrorReason, U as FileInput, V as FileItem, W as FileUpload, X as FormLayoutField, Y as FormLayoutFieldProps, Z as FormStack, _ as FormStackProps, $ as Input, a0 as InputFrame, a1 as InputSize, a2 as InvalidSubmitOptions, a3 as Label, L as LabelProps, a4 as NumberField, N as NumberFieldProps, a5 as NumberInput, a6 as NumberInputProps, a7 as PasswordField, P as PasswordFieldProps, a8 as PasswordInput, a9 as PasswordInputProps, aa as PhoneField, d as PhoneFieldProps, ab as PhoneInput, ac as PhoneInputProps, ad as RadioGroup, ae as RadioGroupField, R as RadioGroupFieldProps, af as RadioGroupItem, ag as RadioGroupItemProps, ah as RadioGroupProps, ai as RadioGroupRoot, aj as Select, ak as SelectContent, al as SelectField, e as SelectFieldProps, am as SelectGroup, an as SelectItem, ao as SelectLabel, ap as SelectOption, aq as SelectProps, ar as SelectScrollDownButton, as as SelectScrollUpButton, at as SelectSeparator, au as SelectTrigger, av as SelectTriggerProps, aw as SelectValue, i as SubmitGuard, S as SubmitGuardOptions, h as SubmitGuardSchema, ax as TextField, T as TextFieldProps, ay as Textarea, az as TextareaField, f as TextareaFieldProps, aA as TextareaProps, aB as TextareaResize, aC as TimeField, g as TimeFieldProps, aD as TimeInput, aE as TimeInputElement, aF as TimeInputProps, aG as checkboxVariants, aH as dropAreaVariants, aI as fieldControlVariants, aH as fileDropAreaVariants, aJ as fileDropzoneVariants, aK as fileInputVariants, j as firstInvalidMessage, aL as formatBytes, aL as formatFileSize, aM as getFileName, aN as getFileSize, aO as getItemKey, aP as inputVariants, aQ as isImageFile, aR as isPdfFile, aS as matchesAccept, aT as newLocalId, aU as radioItemVariants, r as reportInvalidSubmit, aV as selectTriggerVariants, aW as textareaVariants, aX as useSubmitGuard } from './use-submit-guard--899Lr9k.js';
|
|
6
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
7
|
+
import * as AvatarPrimitive from '@radix-ui/react-avatar';
|
|
8
|
+
import * as SeparatorPrimitive from '@radix-ui/react-separator';
|
|
9
|
+
import { DayPicker } from 'react-day-picker';
|
|
10
|
+
import * as ProgressPrimitive from '@radix-ui/react-progress';
|
|
11
|
+
import * as SwitchPrimitive from '@radix-ui/react-switch';
|
|
12
|
+
import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
13
|
+
import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
|
|
14
|
+
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
15
|
+
import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
|
|
16
|
+
import * as vaul from 'vaul';
|
|
17
|
+
import { Drawer as Drawer$1 } from 'vaul';
|
|
18
|
+
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
|
|
19
|
+
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
20
|
+
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
21
|
+
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
22
|
+
import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
|
|
23
|
+
import { Command as Command$1 } from 'cmdk';
|
|
24
|
+
import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
|
|
25
|
+
import * as HoverCardPrimitive from '@radix-ui/react-hover-card';
|
|
26
|
+
import * as SliderPrimitive from '@radix-ui/react-slider';
|
|
27
|
+
import * as TogglePrimitive from '@radix-ui/react-toggle';
|
|
28
|
+
import { ClassValue } from 'clsx';
|
|
29
|
+
import '@radix-ui/react-checkbox';
|
|
30
|
+
import '@radix-ui/react-radio-group';
|
|
31
|
+
import '@radix-ui/react-select';
|
|
32
|
+
|
|
33
|
+
declare const switchVariants: (props?: ({
|
|
34
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
35
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
36
|
+
interface SwitchProps extends React$1.ComponentPropsWithoutRef<typeof SwitchPrimitive.Root>, VariantProps<typeof switchVariants> {
|
|
37
|
+
label?: React$1.ReactNode;
|
|
38
|
+
}
|
|
39
|
+
declare const Switch: React$1.ForwardRefExoticComponent<SwitchProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
40
|
+
|
|
41
|
+
interface FieldDecoration {
|
|
42
|
+
label?: React$1.ReactNode;
|
|
43
|
+
description?: React$1.ReactNode;
|
|
44
|
+
error?: React$1.ReactNode;
|
|
45
|
+
required?: boolean;
|
|
46
|
+
containerClassName?: string;
|
|
47
|
+
}
|
|
48
|
+
interface SwitchFieldProps extends Omit<SwitchProps, 'label' | 'value' | 'onChange' | 'checked' | 'onCheckedChange'>, FieldDecoration {
|
|
49
|
+
value?: boolean;
|
|
50
|
+
onValueChange?: (value: boolean) => void;
|
|
51
|
+
}
|
|
52
|
+
declare const SwitchField: React$1.ForwardRefExoticComponent<SwitchFieldProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
53
|
+
interface FileInputFieldProps extends FileInputProps, FieldDecoration {
|
|
54
|
+
}
|
|
55
|
+
declare const FileInputField: React$1.ForwardRefExoticComponent<FileInputFieldProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
56
|
+
interface FileUploadFieldProps extends FileUploadProps, FieldDecoration {
|
|
57
|
+
}
|
|
58
|
+
declare const FileUploadField: React$1.ForwardRefExoticComponent<FileUploadFieldProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
59
|
+
|
|
60
|
+
interface FieldRootProps extends Omit<HTMLAttributes<HTMLDivElement>, 'id'> {
|
|
61
|
+
/** The id applied to the control. It is generated when omitted. */
|
|
62
|
+
id?: string;
|
|
63
|
+
controlId?: string;
|
|
64
|
+
invalid?: boolean;
|
|
65
|
+
required?: boolean;
|
|
66
|
+
disabled?: boolean;
|
|
67
|
+
}
|
|
68
|
+
declare const FieldRoot: React$1.ForwardRefExoticComponent<FieldRootProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
69
|
+
interface FieldLabelProps extends LabelHTMLAttributes<HTMLLabelElement> {
|
|
70
|
+
/** A unique label id. It is generated and registered when htmlFor targets this Field control. */
|
|
71
|
+
id?: string;
|
|
72
|
+
required?: boolean;
|
|
73
|
+
}
|
|
74
|
+
declare const FieldLabel: React$1.ForwardRefExoticComponent<FieldLabelProps & React$1.RefAttributes<HTMLLabelElement>>;
|
|
75
|
+
interface FieldDescriptionProps extends HTMLAttributes<HTMLParagraphElement> {
|
|
76
|
+
/** Keep essential instructions visible alongside an error. Defaults to false. */
|
|
77
|
+
showWhenInvalid?: boolean;
|
|
78
|
+
children?: ReactNode;
|
|
79
|
+
}
|
|
80
|
+
declare const FieldDescription: React$1.ForwardRefExoticComponent<FieldDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
81
|
+
interface FieldErrorProps extends HTMLAttributes<HTMLParagraphElement> {
|
|
82
|
+
children?: ReactNode;
|
|
83
|
+
}
|
|
84
|
+
declare const FieldError: React$1.ForwardRefExoticComponent<FieldErrorProps & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
85
|
+
interface FieldControlProps extends Omit<HTMLAttributes<HTMLElement>, 'children' | 'id'> {
|
|
86
|
+
/** Additional label ids merged with every mounted Field.Label id. */
|
|
87
|
+
'aria-labelledby'?: string;
|
|
88
|
+
children: ReactElement;
|
|
89
|
+
}
|
|
90
|
+
declare const FieldControl: React$1.ForwardRefExoticComponent<FieldControlProps & React$1.RefAttributes<HTMLElement>>;
|
|
91
|
+
declare const Field: React$1.ForwardRefExoticComponent<FieldRootProps & React$1.RefAttributes<HTMLDivElement>> & {
|
|
92
|
+
Root: React$1.ForwardRefExoticComponent<FieldRootProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
93
|
+
Label: React$1.ForwardRefExoticComponent<FieldLabelProps & React$1.RefAttributes<HTMLLabelElement>>;
|
|
94
|
+
Description: React$1.ForwardRefExoticComponent<FieldDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
95
|
+
Error: React$1.ForwardRefExoticComponent<FieldErrorProps & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
96
|
+
Control: React$1.ForwardRefExoticComponent<FieldControlProps & React$1.RefAttributes<HTMLElement>>;
|
|
97
|
+
};
|
|
98
|
+
type FieldProps = FieldRootProps;
|
|
99
|
+
|
|
100
|
+
interface FilePickerProps extends FileConstraints {
|
|
101
|
+
onError?: (errors: FileError[]) => void;
|
|
102
|
+
multiple?: boolean;
|
|
103
|
+
disabled?: boolean;
|
|
104
|
+
onSelect: (files: File[]) => void;
|
|
105
|
+
children: React$1.ReactElement;
|
|
106
|
+
id?: string;
|
|
107
|
+
}
|
|
108
|
+
/** 모양과 파일 처리 정책을 분리한 native file chooser 트리거. */
|
|
109
|
+
declare function FilePicker({ accept, maxSize, maxFiles, onError, children, disabled, id, multiple, onSelect, }: FilePickerProps): React$1.JSX.Element;
|
|
110
|
+
declare namespace FilePicker {
|
|
111
|
+
var displayName: string;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
declare const buttonVariants: (props?: ({
|
|
115
|
+
variant?: "link" | "outline" | "primary" | "secondary" | "ghost" | null | undefined;
|
|
116
|
+
color?: "brand" | "inverse" | "danger" | "info" | null | undefined;
|
|
117
|
+
rounded?: boolean | null | undefined;
|
|
118
|
+
opaque?: boolean | null | undefined;
|
|
119
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl" | "icon-xs" | "icon-sm" | "icon" | "icon-lg" | "icon-xl" | null | undefined;
|
|
120
|
+
density?: "touch" | "compact" | null | undefined;
|
|
121
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
122
|
+
type ButtonColor = NonNullable<VariantProps<typeof buttonVariants>['color']>;
|
|
123
|
+
type ButtonSize = NonNullable<VariantProps<typeof buttonVariants>['size']>;
|
|
124
|
+
type ButtonVariant = NonNullable<VariantProps<typeof buttonVariants>['variant']>;
|
|
125
|
+
|
|
126
|
+
interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'aria-busy' | 'color'>, VariantProps<typeof buttonVariants> {
|
|
127
|
+
/** Color meaning, independent of variant. Defaults to the theme-aware inverse color. */
|
|
128
|
+
color?: VariantProps<typeof buttonVariants>['color'];
|
|
129
|
+
/** Opaque surface for outline, secondary and ghost; defaults to false. */
|
|
130
|
+
opaque?: boolean;
|
|
131
|
+
/** Render the button styles onto the single child element. */
|
|
132
|
+
asChild?: false;
|
|
133
|
+
/** Prevents interaction and communicates busy state while the action completes. */
|
|
134
|
+
loading?: boolean;
|
|
135
|
+
/** Optional accessible label used while loading. */
|
|
136
|
+
loadingLabel?: string;
|
|
137
|
+
/** Decorative leading icon; Button owns its size and spacing. */
|
|
138
|
+
startIcon?: ButtonIcon;
|
|
139
|
+
/** Decorative trailing icon; Button owns its size and spacing. */
|
|
140
|
+
endIcon?: ButtonIcon;
|
|
141
|
+
}
|
|
142
|
+
interface ButtonAsChildProps extends Omit<ButtonProps, 'asChild' | 'children' | 'startIcon' | 'loading' | 'loadingLabel' | 'endIcon'> {
|
|
143
|
+
asChild: true;
|
|
144
|
+
children: ReactElement;
|
|
145
|
+
startIcon?: never;
|
|
146
|
+
loading?: never;
|
|
147
|
+
loadingLabel?: never;
|
|
148
|
+
endIcon?: never;
|
|
149
|
+
}
|
|
150
|
+
type ButtonComponent = {
|
|
151
|
+
(props: ButtonProps & {
|
|
152
|
+
ref?: Ref<HTMLButtonElement>;
|
|
153
|
+
}): ReactElement | null;
|
|
154
|
+
<T extends HTMLElement>(props: ButtonAsChildProps & {
|
|
155
|
+
ref?: Ref<T>;
|
|
156
|
+
}): ReactElement | null;
|
|
157
|
+
};
|
|
158
|
+
declare const Button: ButtonComponent;
|
|
159
|
+
|
|
160
|
+
type ActionButtonProps = ButtonProps & {
|
|
161
|
+
show?: boolean;
|
|
162
|
+
};
|
|
163
|
+
interface FormActionsHintOptions {
|
|
164
|
+
show?: boolean;
|
|
165
|
+
children?: React$1.ReactNode;
|
|
166
|
+
id?: string;
|
|
167
|
+
}
|
|
168
|
+
interface FormActionsProps {
|
|
169
|
+
cancelOptions?: ActionButtonProps;
|
|
170
|
+
submitOptions?: ActionButtonProps;
|
|
171
|
+
/** 삭제처럼 되돌리기 어려운 작업. 데스크톱에서는 행의 시작 쪽에 떨어뜨려 주 작업과 구분합니다. */
|
|
172
|
+
destructiveOptions?: ActionButtonProps;
|
|
173
|
+
/** An explicit list replaces both default buttons, including when empty. */
|
|
174
|
+
actions?: (ActionButtonProps | React$1.ReactNode)[];
|
|
175
|
+
hintOptions?: FormActionsHintOptions;
|
|
176
|
+
className?: string;
|
|
177
|
+
}
|
|
178
|
+
declare function FormActions({ cancelOptions, submitOptions, destructiveOptions, actions, hintOptions, className, }: FormActionsProps): React$1.JSX.Element | null;
|
|
179
|
+
declare namespace FormActions {
|
|
180
|
+
var displayName: string;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
type FormFieldProps = Omit<FieldRootProps, 'children'> & {
|
|
184
|
+
label: ReactNode;
|
|
185
|
+
description?: ReactNode;
|
|
186
|
+
error?: ReactNode;
|
|
187
|
+
} & ({
|
|
188
|
+
children: ReactElement;
|
|
189
|
+
control?: never;
|
|
190
|
+
} | {
|
|
191
|
+
control: ReactElement;
|
|
192
|
+
children?: never;
|
|
193
|
+
});
|
|
194
|
+
/**
|
|
195
|
+
* A compact Field composition for the common label, control, help, and error
|
|
196
|
+
* shape. Use Field directly when the layout needs additional slots.
|
|
197
|
+
*/
|
|
198
|
+
declare function FormField({ control, children, description, error, label, ...rootProps }: FormFieldProps): React$1.JSX.Element | null;
|
|
199
|
+
|
|
200
|
+
type CalendarProps = React.ComponentProps<typeof DayPicker> & {
|
|
201
|
+
/**
|
|
202
|
+
* 셀을 고정폭(w-9) 대신 `flex-1` 로 펼쳐 **컨테이너 폭을 꽉 채운다**(왼쪽 쏠림 제거).
|
|
203
|
+
* 모바일 시트·인라인처럼 넓은 표면에서 깔끔하게 보이게 할 때 사용. 버튼(날짜 원)은
|
|
204
|
+
* 넓어진 셀 안에서 가운데 정렬된다.
|
|
205
|
+
*/
|
|
206
|
+
fullWidth?: boolean;
|
|
207
|
+
};
|
|
208
|
+
declare function Calendar({ className, classNames, showOutsideDays, startMonth, endMonth, fullWidth, ...props }: CalendarProps): React$1.JSX.Element;
|
|
209
|
+
declare namespace Calendar {
|
|
210
|
+
var displayName: string;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* value 문자열에서 날짜부(`YYYY-MM-DD`)만 떼어낸다.
|
|
215
|
+
* `YYYY-MM-DDTHH:mm` 형식이면 `T` 앞부분을, `YYYY-MM-DD` 형식이면 그대로 반환한다.
|
|
216
|
+
* 빈 문자열·undefined 는 빈 문자열을 반환한다.
|
|
217
|
+
*/
|
|
218
|
+
declare function getDatePart(value: string | undefined): string;
|
|
219
|
+
/**
|
|
220
|
+
* value 문자열에서 시간부(`HH:mm`)를 떼어낸다.
|
|
221
|
+
* `T` 가 없거나 시간부가 비었으면 `DEFAULT_TIME`(`00:00`)을 반환한다.
|
|
222
|
+
*/
|
|
223
|
+
declare function getTimePart(value: string | undefined): string;
|
|
224
|
+
/**
|
|
225
|
+
* 날짜부와 시간부를 `YYYY-MM-DDTHH:mm` 형식으로 합친다.
|
|
226
|
+
* 날짜부가 비어 있으면 빈 문자열을 반환한다(시간만으로는 의미 있는 값이 아니다).
|
|
227
|
+
*/
|
|
228
|
+
declare function joinDateTime(datePart: string, timePart: string): string;
|
|
229
|
+
/** 날짜 범위 프리셋 식별자. `all` 은 기간 제한 없음(빈 범위). */
|
|
230
|
+
type DateRangePresetId = 'thisMonth' | 'lastMonth' | 'thisYear' | 'all';
|
|
231
|
+
interface DateRangePresetValue {
|
|
232
|
+
/** YYYY-MM-DD, 전체(`all`)면 빈 문자열 */
|
|
233
|
+
from: string;
|
|
234
|
+
/** YYYY-MM-DD, 전체(`all`)면 빈 문자열 */
|
|
235
|
+
to: string;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* 프리셋 id → `{ from, to }`(YYYY-MM-DD). `now` 를 주입받아 순수 함수로 둔다(테스트 용이).
|
|
239
|
+
* - `thisMonth`: 이번 달 1일 ~ 말일
|
|
240
|
+
* - `lastMonth`: 지난 달 1일 ~ 말일
|
|
241
|
+
* - `thisYear`: 올해 1/1 ~ 12/31
|
|
242
|
+
* - `all`: 빈 범위(제한 없음)
|
|
243
|
+
*/
|
|
244
|
+
declare function resolveDateRangePreset(id: DateRangePresetId, now?: Date): DateRangePresetValue;
|
|
245
|
+
/** 현재 `{ from, to }` 가 어떤 프리셋과 일치하는지(없으면 `null` = 커스텀 범위). */
|
|
246
|
+
declare function matchDateRangePreset(value: DateRangePresetValue, presets: readonly DateRangePresetId[], now?: Date): DateRangePresetId | null;
|
|
247
|
+
/** 프리셋 id → 한글 라벨. */
|
|
248
|
+
declare const DATE_RANGE_PRESET_LABELS: Record<DateRangePresetId, string>;
|
|
249
|
+
|
|
250
|
+
/**
|
|
251
|
+
* 시각 입력 · `HH:MM`(24h) 마스킹 텍스트 입력.
|
|
252
|
+
*
|
|
253
|
+
* 기존 직접 입력 API 호환용입니다. 새 시간 입력에는 반응형 TimeInput을 사용합니다.
|
|
254
|
+
* 네이티브 `select`/`input[type=time]` 의 OS 기본 드롭다운·피커가 보기 나빠(특히 다크) 직접 만든다.
|
|
255
|
+
* - 숫자만 입력, 자릿수별 검증(시 00-23 / 분 00-59), 2자리 입력 시 ":" 자동 삽입
|
|
256
|
+
* - blur 시 빈 자리 0 패딩으로 `HH:MM` 완성
|
|
257
|
+
* - 모바일 숫자 키패드(`inputMode="numeric"`)
|
|
258
|
+
*
|
|
259
|
+
* **부모와의 계약**: 입력 중 부분값은 내부 draft 로만 표시하고, `onChange` 는 **완성된 `HH:MM`**
|
|
260
|
+
* (또는 blur 패딩값)일 때만 호출한다 → 소비측(DatePicker 등)은 항상 유효한 시각만 받는다(무변경).
|
|
261
|
+
* value/onChange 는 `HH:mm` 문자열.
|
|
262
|
+
*/
|
|
263
|
+
interface TimeSelectProps {
|
|
264
|
+
/** HH:mm 문자열 */
|
|
265
|
+
value: string;
|
|
266
|
+
onValueChange: (value: string) => void;
|
|
267
|
+
/** aria-label 접두사 (예: "시작" → "시작 시각") */
|
|
268
|
+
labelPrefix?: string;
|
|
269
|
+
disabled?: boolean;
|
|
270
|
+
/** 기본은 부모 면 위 alpha surface, 명시적 경계가 필요하면 outline을 선택한다. */
|
|
271
|
+
opaque?: FieldControlProps$1['opaque'];
|
|
272
|
+
variant?: FieldControlProps$1['variant'];
|
|
273
|
+
}
|
|
274
|
+
declare function TimeSelect({ value, onValueChange, labelPrefix, disabled, variant, opaque, }: TimeSelectProps): React$1.JSX.Element;
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* 12시간 스크롤 휠 시간 선택기 · 오전·오후 / 시(1-12) / 분(0-59) 3열. 모바일 swipe 용.
|
|
278
|
+
*
|
|
279
|
+
* - **무한 연속 스크롤**: 시·분은 항목을 여러 벌 복제해 렌더하고, 스크롤이 멈추면(settle) 가운데
|
|
280
|
+
* 복제본으로 조용히 재배치(recenter)해 끝없이 돌아가는 태엽처럼 동작한다.
|
|
281
|
+
* - **오전/오후 자동 toggle**: 시 휠이 한 제스처에서 11↔12 경계(=12시간)를 넘어간 횟수가 홀수면
|
|
282
|
+
* 오전↔오후를 뒤집는다(정오·자정 통과).
|
|
283
|
+
* - 보이는 행 3개(가운데가 선택), 가운데 하이라이트 밴드.
|
|
284
|
+
*
|
|
285
|
+
* value/onChange 는 `HH:mm`(24h) · 내부에서 12시간·오전/오후로 변환해 표시한다.
|
|
286
|
+
*/
|
|
287
|
+
interface TimeWheelProps {
|
|
288
|
+
/** HH:mm (24h) */
|
|
289
|
+
value: string;
|
|
290
|
+
onValueChange: (value: string) => void;
|
|
291
|
+
disabled?: boolean;
|
|
292
|
+
hourCycle?: 12 | 24;
|
|
293
|
+
}
|
|
294
|
+
declare function TimeWheel(props: TimeWheelProps): React$1.JSX.Element;
|
|
295
|
+
|
|
296
|
+
/** surface variant는 면의 표현 방식과 elevation을 정한다. 모든 면은 semantic token으로 연결한다. */
|
|
297
|
+
declare const cardVariants: (props?: ({
|
|
298
|
+
variant?: "flat" | "muted" | "raised" | "soft" | null | undefined;
|
|
299
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
300
|
+
type CardVariant = NonNullable<VariantProps<typeof cardVariants>['variant']>;
|
|
301
|
+
type CardPadding = 'none' | 'sm' | 'md' | 'lg';
|
|
302
|
+
interface CardProps extends HTMLAttributes<HTMLDivElement>, Omit<VariantProps<typeof cardVariants>, 'variant'> {
|
|
303
|
+
variant?: CardVariant;
|
|
304
|
+
/** Header·Content·Footer의 기본 여백. */
|
|
305
|
+
padding?: CardPadding;
|
|
306
|
+
children?: ReactNode;
|
|
307
|
+
}
|
|
308
|
+
declare const CardRoot: React$1.ForwardRefExoticComponent<CardProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
309
|
+
interface CardHeaderProps extends HTMLAttributes<HTMLDivElement> {
|
|
310
|
+
children?: ReactNode;
|
|
311
|
+
}
|
|
312
|
+
declare const CardHeader: React$1.ForwardRefExoticComponent<CardHeaderProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
313
|
+
interface CardTitleProps extends HTMLAttributes<HTMLHeadingElement> {
|
|
314
|
+
/** Existing extension retained for semantic heading composition. */
|
|
315
|
+
as?: 'h2' | 'h3' | 'h4' | 'h5';
|
|
316
|
+
children?: ReactNode;
|
|
317
|
+
}
|
|
318
|
+
declare const CardTitle: React$1.ForwardRefExoticComponent<CardTitleProps & React$1.RefAttributes<HTMLHeadingElement>>;
|
|
319
|
+
interface CardDescriptionProps extends HTMLAttributes<HTMLParagraphElement> {
|
|
320
|
+
children?: ReactNode;
|
|
321
|
+
}
|
|
322
|
+
declare const CardDescription: React$1.ForwardRefExoticComponent<CardDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
323
|
+
interface CardContentProps extends HTMLAttributes<HTMLDivElement> {
|
|
324
|
+
children?: ReactNode;
|
|
325
|
+
}
|
|
326
|
+
declare const CardContent: React$1.ForwardRefExoticComponent<CardContentProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
327
|
+
interface CardFooterProps extends HTMLAttributes<HTMLDivElement> {
|
|
328
|
+
children?: ReactNode;
|
|
329
|
+
}
|
|
330
|
+
declare const CardFooter: React$1.ForwardRefExoticComponent<CardFooterProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
331
|
+
declare const Card: React$1.ForwardRefExoticComponent<CardProps & React$1.RefAttributes<HTMLDivElement>> & {
|
|
332
|
+
Root: React$1.ForwardRefExoticComponent<CardProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
333
|
+
Header: React$1.ForwardRefExoticComponent<CardHeaderProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
334
|
+
Title: React$1.ForwardRefExoticComponent<CardTitleProps & React$1.RefAttributes<HTMLHeadingElement>>;
|
|
335
|
+
Description: React$1.ForwardRefExoticComponent<CardDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
336
|
+
Content: React$1.ForwardRefExoticComponent<CardContentProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
337
|
+
Footer: React$1.ForwardRefExoticComponent<CardFooterProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
338
|
+
};
|
|
339
|
+
type CardRootProps = CardProps;
|
|
340
|
+
|
|
341
|
+
interface FormSurfaceProps extends CardProps {
|
|
342
|
+
}
|
|
343
|
+
/** PC에서는 카드, 모바일에서는 본문 흐름에 맞는 평평한 폼 표면. */
|
|
344
|
+
declare const FormSurface: React$1.ForwardRefExoticComponent<FormSurfaceProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
345
|
+
declare const FormSurfaceContent: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
|
|
346
|
+
interface FormSurfaceFooterProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
347
|
+
/** 모바일에서 화면 하단에 고정합니다. false면 본문 흐름에 배치합니다. */
|
|
348
|
+
fixedOnMobile?: boolean;
|
|
349
|
+
}
|
|
350
|
+
/** 자기 높이만큼 자리를 확보하므로 특정 main 구조 없이도 마지막 필드를 가리지 않습니다. */
|
|
351
|
+
declare const FormSurfaceFooter: React$1.ForwardRefExoticComponent<FormSurfaceFooterProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
352
|
+
|
|
353
|
+
type NativeSelectSize = ControlSize;
|
|
354
|
+
interface NativeSelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, 'size'>, FieldControlProps$1 {
|
|
355
|
+
size?: NativeSelectSize;
|
|
356
|
+
invalid?: boolean;
|
|
357
|
+
/** 값이 없는 단일 선택의 초기 안내입니다. value/defaultValue를 지정하면 해당 값을 우선합니다. */
|
|
358
|
+
placeholder?: ReactNode;
|
|
359
|
+
wrapperClassName?: string;
|
|
360
|
+
}
|
|
361
|
+
declare const NativeSelect: React$1.ForwardRefExoticComponent<NativeSelectProps & React$1.RefAttributes<HTMLSelectElement>>;
|
|
362
|
+
|
|
363
|
+
/** 숫자 입력 컴포넌트가 공유하는 표시 포맷·파싱 함수. */
|
|
364
|
+
declare function formatNumeric(value: string | number): string;
|
|
365
|
+
declare function parseNumeric(value: string): number | null;
|
|
366
|
+
|
|
367
|
+
declare function formatPhoneNumber(value: string): string;
|
|
368
|
+
declare function formatPhoneInput(value: string): string;
|
|
369
|
+
declare function isValidPhoneNumber(value: string): boolean;
|
|
370
|
+
|
|
371
|
+
interface PhotoFieldItem {
|
|
372
|
+
key: string;
|
|
373
|
+
url: string | null;
|
|
374
|
+
}
|
|
375
|
+
interface PhotoFieldProps {
|
|
376
|
+
items: PhotoFieldItem[];
|
|
377
|
+
onAdd: (files: File[]) => void;
|
|
378
|
+
onRemove: (key: string) => void;
|
|
379
|
+
label?: string;
|
|
380
|
+
max?: number;
|
|
381
|
+
uploadingCount?: number;
|
|
382
|
+
showPrimaryBadge?: boolean;
|
|
383
|
+
showCount?: boolean;
|
|
384
|
+
accept?: string;
|
|
385
|
+
maxSize?: number;
|
|
386
|
+
onError?: (errors: FileError[]) => void;
|
|
387
|
+
placeholder?: string;
|
|
388
|
+
hint?: React$1.ReactNode;
|
|
389
|
+
disabled?: boolean;
|
|
390
|
+
variant?: FieldControlProps$1['variant'];
|
|
391
|
+
opaque?: FieldControlProps$1['opaque'];
|
|
392
|
+
invalid?: boolean;
|
|
393
|
+
className?: string;
|
|
394
|
+
}
|
|
395
|
+
/** 부모가 업로드 수명주기를 소유하는 사진 편집 필드. 첫 항목은 대표 사진이다. */
|
|
396
|
+
declare function PhotoField({ accept, maxSize, onError, placeholder, className, disabled, hint, invalid, items, label, max, onAdd, onRemove, showCount, showPrimaryBadge, uploadingCount, variant, opaque, }: PhotoFieldProps): React$1.JSX.Element;
|
|
397
|
+
declare namespace PhotoField {
|
|
398
|
+
var displayName: string;
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
interface PhotoGridItem {
|
|
402
|
+
url: string | null;
|
|
403
|
+
alt?: string;
|
|
404
|
+
}
|
|
405
|
+
interface PhotoGridProps {
|
|
406
|
+
photos: PhotoGridItem[];
|
|
407
|
+
columns?: 2 | 3 | 4;
|
|
408
|
+
/** 표시할 타일 수. 생략하면 한 행으로 접습니다. */
|
|
409
|
+
maxVisible?: number;
|
|
410
|
+
className?: string;
|
|
411
|
+
renderItemOverlay?: (item: PhotoGridItem, index: number) => React$1.ReactNode;
|
|
412
|
+
renderMissing?: (index: number) => React$1.ReactNode;
|
|
413
|
+
endItem?: React$1.ReactNode;
|
|
414
|
+
}
|
|
415
|
+
/** 정방형 썸네일, 누락 상태, 오버레이와 라이트박스를 한 목록으로 묶는다. */
|
|
416
|
+
declare function PhotoGrid({ className, columns, photos, maxVisible, renderItemOverlay, renderMissing, endItem, }: PhotoGridProps): React$1.JSX.Element | null;
|
|
417
|
+
declare namespace PhotoGrid {
|
|
418
|
+
var displayName: string;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
interface PhotoLightboxImage {
|
|
422
|
+
url: string;
|
|
423
|
+
alt?: string;
|
|
424
|
+
}
|
|
425
|
+
interface PhotoLightboxProps {
|
|
426
|
+
images: PhotoLightboxImage[];
|
|
427
|
+
index: number | null;
|
|
428
|
+
onIndexChange: (index: number | null) => void;
|
|
429
|
+
}
|
|
430
|
+
/** 사진 미리보기와 방향키·Esc·닫기·순환 이동을 함께 제공하는 전체 화면 표면. */
|
|
431
|
+
declare function PhotoLightbox({ images, index, onIndexChange }: PhotoLightboxProps): React$1.JSX.Element;
|
|
432
|
+
declare namespace PhotoLightbox {
|
|
433
|
+
var displayName: string;
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
type AsyncAction = () => unknown | Promise<unknown>;
|
|
437
|
+
|
|
438
|
+
interface AsyncActionGuard {
|
|
439
|
+
/** 호출 순간 잠금을 잡고, 첫 작업이 끝날 때까지 후속 실행을 무시한다. */
|
|
440
|
+
run: (action: AsyncAction) => Promise<void>;
|
|
441
|
+
pending: boolean;
|
|
442
|
+
}
|
|
443
|
+
/** 빠른 연속 클릭에서도 비동기 작업을 한 번만 실행하도록 보호한다. */
|
|
444
|
+
declare function useAsyncActionGuard(): AsyncActionGuard;
|
|
445
|
+
|
|
446
|
+
declare function useObjectUrl(): {
|
|
447
|
+
objectUrl: string | null;
|
|
448
|
+
replaceObject: (blob: Blob | null) => void;
|
|
449
|
+
clearObject: () => void;
|
|
450
|
+
};
|
|
451
|
+
declare function useObjectUrlForBlob(blob: Blob | null): string | null;
|
|
452
|
+
declare function useObjectUrlRegistry<Key = string>(): {
|
|
453
|
+
create: (key: Key, blob: Blob) => string;
|
|
454
|
+
release: (key: Key) => void;
|
|
455
|
+
releaseAll: () => void;
|
|
456
|
+
};
|
|
457
|
+
|
|
458
|
+
interface ActionMenuItem {
|
|
459
|
+
id?: string;
|
|
460
|
+
label: string;
|
|
461
|
+
icon?: React$1.ReactNode;
|
|
462
|
+
trailingIcon?: React$1.ReactNode;
|
|
463
|
+
onSelect?: () => void;
|
|
464
|
+
href?: string;
|
|
465
|
+
/** AppLinkProvider로 연결한 앱 내부 이동 경로. */
|
|
466
|
+
to?: string;
|
|
467
|
+
target?: React$1.AnchorHTMLAttributes<HTMLAnchorElement>['target'];
|
|
468
|
+
rel?: string;
|
|
469
|
+
danger?: boolean;
|
|
470
|
+
disabled?: boolean;
|
|
471
|
+
pending?: boolean;
|
|
472
|
+
pendingLabel?: string;
|
|
473
|
+
disabledReason?: string;
|
|
474
|
+
/** 하위 작업. 지정하면 onSelect·href·to 대신 하위 메뉴를 엽니다. 빈 배열은 비활성입니다. */
|
|
475
|
+
children?: readonly ActionMenuItem[];
|
|
476
|
+
}
|
|
477
|
+
interface ActionMenuProps {
|
|
478
|
+
groups: readonly (readonly ActionMenuItem[])[];
|
|
479
|
+
trigger?: React$1.ReactElement;
|
|
480
|
+
triggerLabel?: string;
|
|
481
|
+
sheetTitle?: string;
|
|
482
|
+
open?: boolean;
|
|
483
|
+
defaultOpen?: boolean;
|
|
484
|
+
onOpenChange?: (open: boolean) => void;
|
|
485
|
+
align?: 'start' | 'center' | 'end';
|
|
486
|
+
drawerOnMobile?: boolean;
|
|
487
|
+
}
|
|
488
|
+
/** One action model; keyboard menu on desktop, touch-sized drawer on narrow screens. */
|
|
489
|
+
declare function ActionMenu({ groups, trigger, triggerLabel, sheetTitle, open, defaultOpen, onOpenChange, align, drawerOnMobile, }: ActionMenuProps): React$1.JSX.Element;
|
|
490
|
+
/** Conditional entries become ordinary and destructive groups without empty separators. */
|
|
491
|
+
declare function actionMenuGroups(items: readonly (ActionMenuItem | false | null | undefined | '' | 0)[]): ActionMenuItem[][];
|
|
492
|
+
|
|
493
|
+
/** Decorative active-state marker. Give the relative-positioned trigger an accessible state label. */
|
|
494
|
+
declare function ActiveTriggerDot({ className }: {
|
|
495
|
+
className?: string;
|
|
496
|
+
}): React$1.JSX.Element;
|
|
497
|
+
|
|
498
|
+
interface ButtonGroupProps extends HTMLAttributes<HTMLDivElement> {
|
|
499
|
+
size?: ControlSize;
|
|
500
|
+
orientation?: 'horizontal' | 'vertical';
|
|
501
|
+
/** Visually connect adjacent buttons without changing their semantics. */
|
|
502
|
+
attached?: boolean;
|
|
503
|
+
/** Round only the outside ends of an attached group. */
|
|
504
|
+
rounded?: boolean;
|
|
505
|
+
/** Stack children to the container width on narrow layouts. */
|
|
506
|
+
fullWidth?: boolean;
|
|
507
|
+
}
|
|
508
|
+
declare const ButtonGroup: React$1.ForwardRefExoticComponent<ButtonGroupProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
509
|
+
|
|
510
|
+
interface IconButtonProps extends Omit<ButtonProps, 'aria-label' | 'asChild' | 'children' | 'startIcon' | 'endIcon' | 'size'> {
|
|
511
|
+
size?: ControlSize;
|
|
512
|
+
/** The icon is rendered as the only visual content. */
|
|
513
|
+
icon: ButtonIcon;
|
|
514
|
+
/** Required accessible name. It is applied as aria-label. */
|
|
515
|
+
label: string;
|
|
516
|
+
}
|
|
517
|
+
declare const IconButton: React$1.ForwardRefExoticComponent<IconButtonProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
518
|
+
|
|
519
|
+
/** Daeium의 sm/md/lg 척도와 기존 소비자의 xs/xl 확장을 함께 지원한다. */
|
|
520
|
+
type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
521
|
+
declare const avatarVariants: (props?: ({
|
|
522
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
523
|
+
rounded?: boolean | null | undefined;
|
|
524
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
525
|
+
declare const avatarFallbackVariants: (props?: ({
|
|
526
|
+
variant?: "contrast" | "quiet" | null | undefined;
|
|
527
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
528
|
+
type AvatarFallbackVariant = NonNullable<VariantProps<typeof avatarFallbackVariants>['variant']>;
|
|
529
|
+
interface AvatarRootProps extends React$1.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>, VariantProps<typeof avatarVariants> {
|
|
530
|
+
}
|
|
531
|
+
declare const AvatarRoot: React$1.ForwardRefExoticComponent<AvatarRootProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
532
|
+
interface AvatarImageProps extends React$1.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image> {
|
|
533
|
+
}
|
|
534
|
+
declare const AvatarImage: React$1.ForwardRefExoticComponent<AvatarImageProps & React$1.RefAttributes<HTMLImageElement>>;
|
|
535
|
+
interface AvatarFallbackProps extends React$1.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>, VariantProps<typeof avatarFallbackVariants> {
|
|
536
|
+
}
|
|
537
|
+
declare const AvatarFallback: React$1.ForwardRefExoticComponent<AvatarFallbackProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
538
|
+
interface AvatarGroupProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
539
|
+
max?: number;
|
|
540
|
+
spacing?: 'tight' | 'normal';
|
|
541
|
+
overflowLabel?: (hiddenCount: number) => string;
|
|
542
|
+
/** Default rounded for child avatars, their borders and the overflow count. */
|
|
543
|
+
rounded?: boolean;
|
|
544
|
+
/** Default size for child avatars and the overflow count. */
|
|
545
|
+
size?: AvatarSize;
|
|
546
|
+
}
|
|
547
|
+
declare const AvatarGroup: React$1.ForwardRefExoticComponent<AvatarGroupProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
548
|
+
interface AvatarProps extends AvatarRootProps {
|
|
549
|
+
src?: string | null;
|
|
550
|
+
alt?: string;
|
|
551
|
+
fallback?: React$1.ReactNode;
|
|
552
|
+
}
|
|
553
|
+
/** Convenience avatar plus the daeium-compatible compound members. */
|
|
554
|
+
declare const Avatar: React$1.ForwardRefExoticComponent<AvatarProps & React$1.RefAttributes<HTMLSpanElement>> & {
|
|
555
|
+
Root: React$1.ForwardRefExoticComponent<AvatarRootProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
556
|
+
Image: React$1.ForwardRefExoticComponent<AvatarImageProps & React$1.RefAttributes<HTMLImageElement>>;
|
|
557
|
+
Fallback: React$1.ForwardRefExoticComponent<AvatarFallbackProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
558
|
+
Group: React$1.ForwardRefExoticComponent<AvatarGroupProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
559
|
+
};
|
|
560
|
+
/** Daeium-compatible common avatar base for entity-specific wrappers. */
|
|
561
|
+
interface SquareAvatarProps extends Omit<AvatarProps, 'rounded' | 'children'> {
|
|
562
|
+
src?: string | null;
|
|
563
|
+
name: string;
|
|
564
|
+
fallbackClassName?: string;
|
|
565
|
+
fallback: React$1.ReactNode;
|
|
566
|
+
fallbackVariant?: AvatarFallbackVariant;
|
|
567
|
+
}
|
|
568
|
+
declare const SquareAvatar: React$1.ForwardRefExoticComponent<SquareAvatarProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
569
|
+
interface SpaceAvatarProps extends Omit<AvatarProps, 'rounded' | 'children'> {
|
|
570
|
+
src?: string | null;
|
|
571
|
+
name: string;
|
|
572
|
+
fallbackClassName?: string;
|
|
573
|
+
}
|
|
574
|
+
declare const SpaceAvatar: React$1.ForwardRefExoticComponent<SpaceAvatarProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
575
|
+
interface ProfileAvatarProps extends Omit<AvatarProps, 'rounded' | 'children'> {
|
|
576
|
+
src?: string | null;
|
|
577
|
+
name: string;
|
|
578
|
+
fallbackClassName?: string;
|
|
579
|
+
}
|
|
580
|
+
declare const ProfileAvatar: React$1.ForwardRefExoticComponent<ProfileAvatarProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
581
|
+
|
|
582
|
+
/**
|
|
583
|
+
* Button과 같은 variant × color × opaque 축을 쓴다. Badge는 상호작용이 없으므로 모든 variant에
|
|
584
|
+
* hover·active 표현을 두지 않으며, ghost는 면·테두리 없이 색 텍스트만 남긴다.
|
|
585
|
+
*/
|
|
586
|
+
declare const badgeVariants: (props?: ({
|
|
587
|
+
variant?: "outline" | "primary" | "secondary" | "ghost" | null | undefined;
|
|
588
|
+
color?: "brand" | "inverse" | "danger" | "info" | "success" | "warning" | null | undefined;
|
|
589
|
+
opaque?: boolean | null | undefined;
|
|
590
|
+
rounded?: boolean | null | undefined;
|
|
591
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
592
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
593
|
+
type BadgeVariant = NonNullable<VariantProps<typeof badgeVariants>['variant']>;
|
|
594
|
+
type BadgeColor = NonNullable<VariantProps<typeof badgeVariants>['color']>;
|
|
595
|
+
type BadgeSize = NonNullable<VariantProps<typeof badgeVariants>['size']>;
|
|
596
|
+
interface BadgeProps extends Omit<HTMLAttributes<HTMLDivElement>, 'color'>, Omit<VariantProps<typeof badgeVariants>, 'opaque' | 'rounded'> {
|
|
597
|
+
/** Opaque surface for secondary, outline and ghost; defaults to false. */
|
|
598
|
+
opaque?: boolean;
|
|
599
|
+
/** Button과 같이 모서리를 완전한 원형으로 만듭니다. 기본은 md 반경입니다. */
|
|
600
|
+
rounded?: boolean;
|
|
601
|
+
showDot?: boolean;
|
|
602
|
+
children?: ReactNode;
|
|
603
|
+
}
|
|
604
|
+
declare const Badge: React$1.ForwardRefExoticComponent<BadgeProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
605
|
+
|
|
606
|
+
interface SeparatorProps extends React$1.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root> {
|
|
607
|
+
}
|
|
608
|
+
declare const Separator: React$1.ForwardRefExoticComponent<SeparatorProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
609
|
+
|
|
610
|
+
/** variant는 자리 표시자 배경의 강도, shape는 텍스트 행과 블록 형태, rounded는 원형 모서리를 정한다. */
|
|
611
|
+
declare const skeletonVariants: (props?: ({
|
|
612
|
+
variant?: "strong" | "subtle" | null | undefined;
|
|
613
|
+
shape?: "text" | "block" | null | undefined;
|
|
614
|
+
rounded?: boolean | null | undefined;
|
|
615
|
+
animated?: boolean | null | undefined;
|
|
616
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
617
|
+
type SkeletonVariant = NonNullable<VariantProps<typeof skeletonVariants>['variant']>;
|
|
618
|
+
type SkeletonShape = NonNullable<VariantProps<typeof skeletonVariants>['shape']>;
|
|
619
|
+
interface SkeletonProps extends HTMLAttributes<HTMLDivElement>, Omit<VariantProps<typeof skeletonVariants>, 'animated' | 'rounded'> {
|
|
620
|
+
variant?: SkeletonVariant;
|
|
621
|
+
/** text는 lines만큼 행을 그리고, block은 width·height로 크기를 정한다. */
|
|
622
|
+
shape?: SkeletonShape;
|
|
623
|
+
/** 모서리를 완전한 원형으로 만든다. 원형 아바타 자리 표시자에 쓴다. */
|
|
624
|
+
rounded?: boolean;
|
|
625
|
+
/** Number of text rows. */
|
|
626
|
+
lines?: number;
|
|
627
|
+
/** Disable the pulse animation. */
|
|
628
|
+
animated?: boolean;
|
|
629
|
+
width?: number | string;
|
|
630
|
+
height?: number | string;
|
|
631
|
+
label?: string;
|
|
632
|
+
}
|
|
633
|
+
declare const Skeleton: React$1.ForwardRefExoticComponent<SkeletonProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
634
|
+
|
|
635
|
+
declare const Table: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.TableHTMLAttributes<HTMLTableElement>, HTMLTableElement>, "ref"> & React$1.RefAttributes<HTMLTableElement>>;
|
|
636
|
+
declare const TableHeader: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLTableSectionElement>, HTMLTableSectionElement>, "ref"> & React$1.RefAttributes<HTMLTableSectionElement>>;
|
|
637
|
+
declare const TableBody: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLTableSectionElement>, HTMLTableSectionElement>, "ref"> & React$1.RefAttributes<HTMLTableSectionElement>>;
|
|
638
|
+
declare const TableFooter: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLTableSectionElement>, HTMLTableSectionElement>, "ref"> & React$1.RefAttributes<HTMLTableSectionElement>>;
|
|
639
|
+
declare const TableRow: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>, "ref"> & React$1.RefAttributes<HTMLTableRowElement>>;
|
|
640
|
+
interface TableCellProps extends React$1.ComponentPropsWithoutRef<'td'> {
|
|
641
|
+
nowrap?: boolean;
|
|
642
|
+
}
|
|
643
|
+
interface TableHeadProps extends React$1.ComponentPropsWithoutRef<'th'> {
|
|
644
|
+
nowrap?: boolean;
|
|
645
|
+
}
|
|
646
|
+
declare const TableHead: React$1.ForwardRefExoticComponent<TableHeadProps & React$1.RefAttributes<HTMLTableCellElement>>;
|
|
647
|
+
declare const TableCell: React$1.ForwardRefExoticComponent<TableCellProps & React$1.RefAttributes<HTMLTableCellElement>>;
|
|
648
|
+
declare const TableCaption: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & React$1.RefAttributes<HTMLTableCaptionElement>>;
|
|
649
|
+
|
|
650
|
+
/**
|
|
651
|
+
* Callout·StatusFeedback처럼 액션을 데이터로 받는 컴포넌트가 공유하는 버튼 명세.
|
|
652
|
+
* 패키지 내부 전용이며, 공개 타입은 각 컴포넌트의 별칭(`CalloutAction` 등)으로 노출한다.
|
|
653
|
+
*/
|
|
654
|
+
interface ActionDescriptor {
|
|
655
|
+
label: string;
|
|
656
|
+
onClick?: () => void;
|
|
657
|
+
icon?: React$1.ReactNode;
|
|
658
|
+
iconTrailing?: React$1.ReactNode;
|
|
659
|
+
disabled?: boolean;
|
|
660
|
+
pending?: boolean;
|
|
661
|
+
pendingLabel?: string;
|
|
662
|
+
href?: string;
|
|
663
|
+
/** 앱 내부 이동 경로. 소비 앱은 필요하면 링크 래퍼에서 해석하고, 기본은 native anchor를 쓴다. */
|
|
664
|
+
to?: string;
|
|
665
|
+
target?: React$1.AnchorHTMLAttributes<HTMLAnchorElement>['target'];
|
|
666
|
+
rel?: string;
|
|
667
|
+
ariaLabel?: string;
|
|
668
|
+
describedBy?: string;
|
|
669
|
+
title?: string;
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
type FeedbackSize = 'sm' | 'md' | 'lg';
|
|
673
|
+
|
|
674
|
+
type CalloutColor = 'neutral' | 'info' | 'talk' | 'help' | 'success' | 'warning' | 'danger';
|
|
675
|
+
type CalloutAction = ActionDescriptor;
|
|
676
|
+
type CalloutSize = FeedbackSize;
|
|
677
|
+
declare const calloutVariants: (props?: ({
|
|
678
|
+
color?: "danger" | "info" | "success" | "warning" | "help" | "neutral" | "talk" | null | undefined;
|
|
679
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
680
|
+
withIcon?: boolean | null | undefined;
|
|
681
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
682
|
+
interface CalloutProps extends Omit<React$1.ComponentPropsWithoutRef<'div'>, 'title' | 'children' | 'color'> {
|
|
683
|
+
color?: CalloutColor;
|
|
684
|
+
size?: CalloutSize;
|
|
685
|
+
/** Replaces the default icon for the color. Pass null to omit it. Icons are decorative. */
|
|
686
|
+
icon?: React$1.ReactNode;
|
|
687
|
+
title?: React$1.ReactNode;
|
|
688
|
+
children: React$1.ReactNode;
|
|
689
|
+
action?: React$1.ReactNode | CalloutAction;
|
|
690
|
+
}
|
|
691
|
+
/** Persistent guidance. It intentionally does not create a live region. */
|
|
692
|
+
declare const Callout: React$1.ForwardRefExoticComponent<CalloutProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
693
|
+
|
|
694
|
+
declare const progressVariants: (props?: ({
|
|
695
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
696
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
697
|
+
type ProgressSize = NonNullable<VariantProps<typeof progressVariants>['size']>;
|
|
698
|
+
interface ProgressProps extends Omit<React$1.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root>, 'value'>, VariantProps<typeof progressVariants> {
|
|
699
|
+
/** Omit value for an indeterminate progress. */
|
|
700
|
+
value?: number | null;
|
|
701
|
+
/** Optional accessible name. Existing docs pass this for every progress specimen. */
|
|
702
|
+
label?: string;
|
|
703
|
+
/** Existing extension for a text label rendered beside the bar. */
|
|
704
|
+
valueLabel?: React$1.ReactNode;
|
|
705
|
+
/** Daeium-compatible indicator customization hook. */
|
|
706
|
+
indicatorClassName?: string;
|
|
707
|
+
}
|
|
708
|
+
declare const Progress: React$1.ForwardRefExoticComponent<ProgressProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
709
|
+
|
|
710
|
+
declare const spinnerVariants: (props?: ({
|
|
711
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
712
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
713
|
+
type SpinnerSize = NonNullable<VariantProps<typeof spinnerVariants>['size']>;
|
|
714
|
+
interface SpinnerProps extends React$1.ComponentPropsWithoutRef<'span'>, VariantProps<typeof spinnerVariants> {
|
|
715
|
+
/** A text alternative is required because the visual spinner has no inherent meaning. */
|
|
716
|
+
label: string;
|
|
717
|
+
}
|
|
718
|
+
declare const Spinner: React$1.ForwardRefExoticComponent<SpinnerProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
719
|
+
|
|
720
|
+
declare const statusFeedbackVariants: (props?: ({
|
|
721
|
+
color?: "danger" | "info" | "success" | "warning" | null | undefined;
|
|
722
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
723
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
724
|
+
type StatusFeedbackColor = NonNullable<VariantProps<typeof statusFeedbackVariants>['color']>;
|
|
725
|
+
type StatusFeedbackSize = FeedbackSize;
|
|
726
|
+
interface StatusFeedbackAction extends ActionDescriptor {
|
|
727
|
+
buttonProps?: Pick<ButtonProps, 'className' | 'color' | 'size' | 'variant'>;
|
|
728
|
+
}
|
|
729
|
+
interface StatusFeedbackProps extends Omit<React$1.ComponentPropsWithoutRef<'div'>, 'title' | 'color'>, Omit<VariantProps<typeof statusFeedbackVariants>, 'size' | 'color'> {
|
|
730
|
+
/** 상태 의미 색. danger는 role=alert로 즉시 알립니다. */
|
|
731
|
+
color?: StatusFeedbackColor;
|
|
732
|
+
size?: StatusFeedbackSize;
|
|
733
|
+
title?: React$1.ReactNode;
|
|
734
|
+
/** A descriptor gets a primary responsive button. Pass a ReactNode for complete composition. */
|
|
735
|
+
action?: React$1.ReactNode | StatusFeedbackAction;
|
|
736
|
+
icon?: React$1.ReactNode;
|
|
737
|
+
}
|
|
738
|
+
declare const StatusFeedback: React$1.ForwardRefExoticComponent<StatusFeedbackProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
739
|
+
declare const StatusFeedbackTitle: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
|
|
740
|
+
declare const StatusFeedbackDescription: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
|
|
741
|
+
|
|
742
|
+
declare const Breadcrumb: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & React$1.RefAttributes<HTMLElement>>;
|
|
743
|
+
declare const BreadcrumbList: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.OlHTMLAttributes<HTMLOListElement>, HTMLOListElement>, "ref"> & React$1.RefAttributes<HTMLOListElement>>;
|
|
744
|
+
declare const BreadcrumbItem: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & React$1.RefAttributes<HTMLLIElement>>;
|
|
745
|
+
declare const BreadcrumbLink: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref"> & React$1.RefAttributes<HTMLAnchorElement>>;
|
|
746
|
+
declare const BreadcrumbPage: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & React$1.RefAttributes<HTMLSpanElement>>;
|
|
747
|
+
declare const BreadcrumbSeparator: {
|
|
748
|
+
({ children, className, ...props }: React$1.ComponentPropsWithoutRef<"li">): React$1.JSX.Element;
|
|
749
|
+
displayName: string;
|
|
750
|
+
};
|
|
751
|
+
declare const BreadcrumbEllipsis: {
|
|
752
|
+
({ className, ...props }: React$1.ComponentPropsWithoutRef<"span">): React$1.JSX.Element;
|
|
753
|
+
displayName: string;
|
|
754
|
+
};
|
|
755
|
+
declare const BreadcrumbCurrent: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & React$1.RefAttributes<HTMLSpanElement>>;
|
|
756
|
+
interface BreadcrumbOverflowProps extends Omit<React$1.ComponentPropsWithoutRef<'li'>, 'children'> {
|
|
757
|
+
children: React$1.ReactNode;
|
|
758
|
+
}
|
|
759
|
+
declare const BreadcrumbOverflow: React$1.ForwardRefExoticComponent<BreadcrumbOverflowProps & React$1.RefAttributes<HTMLLIElement>>;
|
|
760
|
+
|
|
761
|
+
interface SelectableItemMeta {
|
|
762
|
+
value: string;
|
|
763
|
+
disabled: boolean;
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
type SegmentSize = ControlSize;
|
|
767
|
+
declare function nextSegmentValue(items: SelectableItemMeta[], current: string | undefined, action: 'prev' | 'next' | 'first' | 'last'): string | undefined;
|
|
768
|
+
interface SegmentProps {
|
|
769
|
+
value?: string;
|
|
770
|
+
defaultValue?: string;
|
|
771
|
+
onValueChange?: (value: string) => void;
|
|
772
|
+
size?: SegmentSize;
|
|
773
|
+
disabled?: boolean;
|
|
774
|
+
children: React$1.ReactNode;
|
|
775
|
+
}
|
|
776
|
+
declare function SegmentRoot({ value, defaultValue, onValueChange, size, disabled, children, }: SegmentProps): React$1.JSX.Element;
|
|
777
|
+
declare namespace SegmentRoot {
|
|
778
|
+
var displayName: string;
|
|
779
|
+
}
|
|
780
|
+
declare const segmentListVariants: (props?: ({
|
|
781
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
782
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
783
|
+
interface SegmentListProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
784
|
+
}
|
|
785
|
+
declare const SegmentList: React$1.ForwardRefExoticComponent<SegmentListProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
786
|
+
declare const segmentItemVariants: (props?: ({
|
|
787
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
788
|
+
equalWidth?: boolean | null | undefined;
|
|
789
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
790
|
+
interface SegmentItemProps extends Omit<React$1.ButtonHTMLAttributes<HTMLButtonElement>, 'value'>, Pick<VariantProps<typeof segmentItemVariants>, 'equalWidth'> {
|
|
791
|
+
value: string;
|
|
792
|
+
startIcon?: React$1.ReactNode;
|
|
793
|
+
}
|
|
794
|
+
declare const SegmentItem: React$1.ForwardRefExoticComponent<SegmentItemProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
795
|
+
declare const Segment: typeof SegmentRoot & {
|
|
796
|
+
List: React$1.ForwardRefExoticComponent<SegmentListProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
797
|
+
Item: React$1.ForwardRefExoticComponent<SegmentItemProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
798
|
+
};
|
|
799
|
+
|
|
800
|
+
/** Compatibility names delegate to daeium's compound Segment implementation. */
|
|
801
|
+
declare const SegmentedControl: React$1.ForwardRefExoticComponent<Omit<Omit<SegmentListProps & React$1.RefAttributes<HTMLDivElement>, "ref">, "defaultValue" | "onChange"> & Omit<SegmentProps, "children"> & {
|
|
802
|
+
orientation?: "horizontal" | "vertical";
|
|
803
|
+
} & React$1.RefAttributes<HTMLDivElement>>;
|
|
804
|
+
declare const SegmentedControlItem: React$1.ForwardRefExoticComponent<SegmentItemProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
805
|
+
|
|
806
|
+
declare const tabsListVariants: (props?: ({
|
|
807
|
+
variant?: "line" | "page" | "underline" | "segmented" | null | undefined;
|
|
808
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
809
|
+
declare const tabsTriggerVariants: (props?: ({
|
|
810
|
+
variant?: "line" | "page" | "underline" | "segmented" | null | undefined;
|
|
811
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
812
|
+
declare const TABS_FLUSH_TOP_MOBILE = "max-md:-mt-4";
|
|
813
|
+
declare const Tabs: React$1.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
814
|
+
flushTopOnMobile?: boolean;
|
|
815
|
+
} & React$1.RefAttributes<HTMLDivElement>>;
|
|
816
|
+
declare const TabsList: React$1.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsListProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & VariantProps<(props?: ({
|
|
817
|
+
variant?: "line" | "page" | "underline" | "segmented" | null | undefined;
|
|
818
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string> & React$1.RefAttributes<HTMLDivElement>>;
|
|
819
|
+
declare const TabsTrigger: React$1.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
820
|
+
interface TabsBarProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
821
|
+
actions?: React$1.ReactNode;
|
|
822
|
+
mobileVariant?: 'tabs' | 'select';
|
|
823
|
+
}
|
|
824
|
+
declare const TabsBar: React$1.ForwardRefExoticComponent<TabsBarProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
825
|
+
declare const TabsContent: React$1.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
826
|
+
|
|
827
|
+
type DrawerOpenChange = (open: boolean) => void;
|
|
828
|
+
interface DrawerCloseActionProps {
|
|
829
|
+
onOpenChange: DrawerOpenChange;
|
|
830
|
+
onAnimationEnd: DrawerOpenChange;
|
|
831
|
+
}
|
|
832
|
+
declare function useDrawerCloseAction(onOpenChange: DrawerOpenChange): {
|
|
833
|
+
queueAfterClose: (action?: () => void) => void;
|
|
834
|
+
drawerProps: DrawerCloseActionProps;
|
|
835
|
+
onCloseAutoFocus: () => void;
|
|
836
|
+
};
|
|
837
|
+
|
|
838
|
+
declare function useIsMobile(): boolean;
|
|
839
|
+
|
|
840
|
+
declare function useHasCoarsePointer(): boolean;
|
|
841
|
+
declare function useHasFinePointer(): boolean;
|
|
842
|
+
|
|
843
|
+
/**
|
|
844
|
+
* 목적격 조사(을/를)를 고른다. 한국어 제품에서 `"FAQ 항목을"` 을 `"FAQ 항목를"` 로 내보내면
|
|
845
|
+
* 그 자체가 품질 신호다 · 그래서 화면이 아니라 이 함수가 조사까지 소유한다.
|
|
846
|
+
*/
|
|
847
|
+
declare function objectParticle(subject: string): '을' | '를';
|
|
848
|
+
/**
|
|
849
|
+
* 주격 조사(이/가)를 고른다. `objectParticle` 과 판정부(`hasFinalConsonant`)를 공유한다 ·
|
|
850
|
+
* `"${eventTitle}이(가)"` 처럼 둘 다 적어 놓는 회피를 없애기 위한 헬퍼다(#1275).
|
|
851
|
+
*/
|
|
852
|
+
declare function subjectParticle(subject: string): '이' | '가';
|
|
853
|
+
|
|
854
|
+
interface DialogConfirmationOptions {
|
|
855
|
+
onOpenChange: (open: boolean) => void;
|
|
856
|
+
onConfirm?: () => void | Promise<void>;
|
|
857
|
+
onConfirmError?: (error: unknown) => void;
|
|
858
|
+
onAfterConfirmClose?: () => void;
|
|
859
|
+
}
|
|
860
|
+
|
|
861
|
+
interface DecisionDialogProps extends DialogConfirmationOptions {
|
|
862
|
+
open: boolean;
|
|
863
|
+
title: ReactNode;
|
|
864
|
+
description?: ReactNode;
|
|
865
|
+
children?: ReactNode;
|
|
866
|
+
icon?: ReactNode;
|
|
867
|
+
confirmLabel?: string;
|
|
868
|
+
confirmDisabled?: boolean;
|
|
869
|
+
cancelLabel?: string;
|
|
870
|
+
destructive?: boolean;
|
|
871
|
+
hint?: ReactNode;
|
|
872
|
+
hintId?: string;
|
|
873
|
+
}
|
|
874
|
+
|
|
875
|
+
/** Acknowledgement-only dialog. No cancellation, destructive action or dismissal shortcut. */
|
|
876
|
+
type AlertProps = Omit<DecisionDialogProps, 'cancelLabel' | 'confirmDisabled' | 'destructive'>;
|
|
877
|
+
declare function Alert(props: AlertProps): React$1.JSX.Element;
|
|
878
|
+
|
|
879
|
+
declare const AlertDialog: React$1.FC<AlertDialogPrimitive.AlertDialogProps>;
|
|
880
|
+
declare const AlertDialogTrigger: React$1.ForwardRefExoticComponent<AlertDialogPrimitive.AlertDialogTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
881
|
+
declare const AlertDialogPortal: React$1.FC<AlertDialogPrimitive.AlertDialogPortalProps>;
|
|
882
|
+
declare const AlertDialogOverlay: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
883
|
+
declare const AlertDialogContent: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
884
|
+
declare const AlertDialogHeader: {
|
|
885
|
+
({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): React$1.JSX.Element;
|
|
886
|
+
displayName: string;
|
|
887
|
+
};
|
|
888
|
+
declare const AlertDialogFooter: {
|
|
889
|
+
({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): React$1.JSX.Element;
|
|
890
|
+
displayName: string;
|
|
891
|
+
};
|
|
892
|
+
declare const AlertDialogTitle: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogTitleProps & React$1.RefAttributes<HTMLHeadingElement>, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
|
|
893
|
+
declare const AlertDialogDescription: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
894
|
+
declare const AlertDialogAction: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogActionProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & Pick<ButtonProps, "color" | "variant" | "opaque"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
895
|
+
declare const AlertDialogCancel: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogCancelProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
896
|
+
|
|
897
|
+
type ConfirmIntent = 'delete' | 'remove' | 'close' | 'disable' | 'reject';
|
|
898
|
+
declare function confirmTitle(intent: ConfirmIntent, subject: string): string;
|
|
899
|
+
type ConfirmBaseProps = Omit<DecisionDialogProps, 'title' | 'description' | 'confirmLabel' | 'destructive' | 'icon' | 'onConfirm'> & {
|
|
900
|
+
onConfirm: () => void | Promise<void>;
|
|
901
|
+
};
|
|
902
|
+
type ConfirmProps = ConfirmBaseProps & ({
|
|
903
|
+
intent: ConfirmIntent;
|
|
904
|
+
subject: string;
|
|
905
|
+
consequence: React$1.ReactNode;
|
|
906
|
+
title?: never;
|
|
907
|
+
description?: never;
|
|
908
|
+
confirmLabel?: never;
|
|
909
|
+
destructive?: never;
|
|
910
|
+
icon?: never;
|
|
911
|
+
} | {
|
|
912
|
+
intent?: never;
|
|
913
|
+
subject?: never;
|
|
914
|
+
consequence?: never;
|
|
915
|
+
title: React$1.ReactNode;
|
|
916
|
+
description?: React$1.ReactNode;
|
|
917
|
+
confirmLabel?: string;
|
|
918
|
+
destructive?: boolean;
|
|
919
|
+
icon?: React$1.ReactNode;
|
|
920
|
+
});
|
|
921
|
+
declare function Confirm(props: ConfirmProps): React$1.JSX.Element;
|
|
922
|
+
|
|
923
|
+
type ScrollAreaOrientation = 'vertical' | 'horizontal' | 'both';
|
|
924
|
+
type ScrollAreaType = React$1.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>['type'];
|
|
925
|
+
interface ScrollAreaProps extends React$1.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root> {
|
|
926
|
+
/** Which scrollbars to render. Defaults to a vertical bar only. */
|
|
927
|
+
orientation?: ScrollAreaOrientation;
|
|
928
|
+
/** Class applied to the scrolling viewport that wraps `children`. */
|
|
929
|
+
viewportClassName?: string;
|
|
930
|
+
/** Ref to the scrolling viewport, for restoring or reading scroll position. */
|
|
931
|
+
viewportRef?: React$1.Ref<HTMLDivElement>;
|
|
932
|
+
/** Class applied to every rendered scrollbar. */
|
|
933
|
+
scrollbarClassName?: string;
|
|
934
|
+
}
|
|
935
|
+
declare const ScrollBar: React$1.ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaScrollbarProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
936
|
+
declare const ScrollArea: React$1.ForwardRefExoticComponent<ScrollAreaProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
937
|
+
|
|
938
|
+
interface DialogProps extends React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Root> {
|
|
939
|
+
/** Automatically use a draggable full-page drawer below 768px. */
|
|
940
|
+
drawerOnMobile?: boolean;
|
|
941
|
+
dismissible?: boolean;
|
|
942
|
+
}
|
|
943
|
+
declare function Dialog({ drawerOnMobile, dismissible, children, open, defaultOpen, onOpenChange, ...props }: DialogProps): React$1.JSX.Element;
|
|
944
|
+
declare const DialogTrigger: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
945
|
+
declare const DialogClose: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
946
|
+
declare const DialogPortal: React$1.FC<DialogPrimitive.DialogPortalProps>;
|
|
947
|
+
declare const DialogOverlay: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
948
|
+
type DialogSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
|
|
949
|
+
interface DialogContentProps extends Omit<React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>, 'title'> {
|
|
950
|
+
/** Daeium-compatible visual behavior on narrow viewports. */
|
|
951
|
+
fullScreenOnMobile?: boolean;
|
|
952
|
+
/** Switches the content into header/body/footer grid layout. */
|
|
953
|
+
scrollable?: boolean;
|
|
954
|
+
/** Dialog size. full expands the work area in both dimensions. */
|
|
955
|
+
size?: DialogSize;
|
|
956
|
+
/** Compatibility shorthand for a generated DialogTitle. */
|
|
957
|
+
title?: React$1.ReactNode;
|
|
958
|
+
/** Compatibility shorthand for a generated DialogDescription. */
|
|
959
|
+
description?: React$1.ReactNode;
|
|
960
|
+
/** false keeps the generated title accessible but visually hidden. */
|
|
961
|
+
showTitle?: boolean;
|
|
962
|
+
/** Compatibility control for the generated close button. */
|
|
963
|
+
showClose?: boolean;
|
|
964
|
+
closeIcon?: React$1.ReactNode;
|
|
965
|
+
closeLabel?: string;
|
|
966
|
+
}
|
|
967
|
+
declare const DialogContent: React$1.ForwardRefExoticComponent<DialogContentProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
968
|
+
interface DialogHeaderProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
969
|
+
padding?: 'none' | 'sm' | 'md';
|
|
970
|
+
showDivider?: boolean;
|
|
971
|
+
}
|
|
972
|
+
declare const DialogHeader: {
|
|
973
|
+
({ children, className, padding, showDivider, ...props }: DialogHeaderProps): React$1.JSX.Element;
|
|
974
|
+
displayName: string;
|
|
975
|
+
};
|
|
976
|
+
declare const DialogFooter: {
|
|
977
|
+
({ className, children, ...props }: React$1.HTMLAttributes<HTMLDivElement>): React$1.JSX.Element;
|
|
978
|
+
displayName: string;
|
|
979
|
+
};
|
|
980
|
+
interface DialogBodyProps extends ScrollAreaProps {
|
|
981
|
+
/** Native scrolling on mobile keeps Vaul scroll/drag handoff intact. */
|
|
982
|
+
padding?: 'none' | 'sm' | 'md';
|
|
983
|
+
/** Overrides only the vertical padding, retaining the horizontal padding. */
|
|
984
|
+
paddingBlock?: 'none' | 'sm' | 'md';
|
|
985
|
+
/** Disable body scrolling when a child owns the scrollable region. */
|
|
986
|
+
scrollable?: boolean;
|
|
987
|
+
}
|
|
988
|
+
declare const DialogBody: React$1.ForwardRefExoticComponent<DialogBodyProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
989
|
+
declare const DialogTitle: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React$1.RefAttributes<HTMLHeadingElement>, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
|
|
990
|
+
declare const DialogDescription: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
991
|
+
|
|
992
|
+
type DrawerRootProps = React$1.ComponentPropsWithoutRef<typeof Drawer$1.Root>;
|
|
993
|
+
interface DrawerSnapControls {
|
|
994
|
+
activeSnapPoint: number | string | null;
|
|
995
|
+
snapPoints: (number | string)[] | null;
|
|
996
|
+
canSnap: boolean;
|
|
997
|
+
snapToContent: () => void;
|
|
998
|
+
snapToFull: () => void;
|
|
999
|
+
setSnap: (point: number | string) => void;
|
|
1000
|
+
}
|
|
1001
|
+
declare function useDrawerSnap(): DrawerSnapControls;
|
|
1002
|
+
interface DrawerProps extends Omit<DrawerRootProps, 'snapPoints' | 'fadeFromIndex'> {
|
|
1003
|
+
snappable?: boolean;
|
|
1004
|
+
activeSnapPoint?: number | string | null;
|
|
1005
|
+
onActiveSnapPointChange?: (point: number | string | null) => void;
|
|
1006
|
+
defaultFull?: boolean;
|
|
1007
|
+
nested?: boolean;
|
|
1008
|
+
}
|
|
1009
|
+
declare function Drawer({ activeSnapPoint: controlledSnap, defaultFull, dismissible, snappable, nested, onActiveSnapPointChange, onOpenChange, children, open, ...props }: DrawerProps): React$1.JSX.Element;
|
|
1010
|
+
declare namespace Drawer {
|
|
1011
|
+
var displayName: string;
|
|
1012
|
+
}
|
|
1013
|
+
declare const DrawerTrigger: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1014
|
+
declare const DrawerClose: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1015
|
+
declare const DrawerPortal: typeof vaul.Portal;
|
|
1016
|
+
declare const DrawerOverlay: React$1.ForwardRefExoticComponent<Omit<Omit<DialogPrimitive.DialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1017
|
+
declare const DrawerContent: React$1.ForwardRefExoticComponent<Omit<Omit<DialogPrimitive.DialogContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1018
|
+
declare const DrawerPanelHeader: React$1.ForwardRefExoticComponent<Omit<React$1.HTMLAttributes<HTMLDivElement>, "title"> & {
|
|
1019
|
+
title: React$1.ReactNode;
|
|
1020
|
+
} & React$1.RefAttributes<HTMLDivElement>>;
|
|
1021
|
+
type DrawerPanelBodyPadding = 'none' | 'sm' | 'md';
|
|
1022
|
+
interface DrawerPanelBodyProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
1023
|
+
padding?: DrawerPanelBodyPadding;
|
|
1024
|
+
}
|
|
1025
|
+
declare const DrawerPanelBody: React$1.ForwardRefExoticComponent<DrawerPanelBodyProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1026
|
+
declare const DrawerPanelFooter: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1027
|
+
|
|
1028
|
+
interface ComputeSnapPointsInput {
|
|
1029
|
+
contentPx: number | null | undefined;
|
|
1030
|
+
viewportPx: number | null | undefined;
|
|
1031
|
+
maxRatio?: number;
|
|
1032
|
+
}
|
|
1033
|
+
declare function computeDrawerSnapPoints({ contentPx, viewportPx, maxRatio, }: ComputeSnapPointsInput): (number | string)[] | null;
|
|
1034
|
+
declare function fullActiveSnapPoint(snapPoints: (number | string)[] | null): number | string | null;
|
|
1035
|
+
declare function resolveInitialSnap(snapPoints: (number | string)[] | null, defaultFull: boolean): number | string | null;
|
|
1036
|
+
|
|
1037
|
+
declare const DropdownMenu: React$1.FC<DropdownMenuPrimitive.DropdownMenuProps>;
|
|
1038
|
+
declare const DropdownMenuTrigger: React$1.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1039
|
+
declare const DropdownMenuGroup: React$1.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuGroupProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1040
|
+
declare const DropdownMenuPortal: React$1.FC<DropdownMenuPrimitive.DropdownMenuPortalProps>;
|
|
1041
|
+
declare const DropdownMenuSub: React$1.FC<DropdownMenuPrimitive.DropdownMenuSubProps>;
|
|
1042
|
+
declare const DropdownMenuRadioGroup: React$1.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuRadioGroupProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1043
|
+
declare const menuSurfacePadding = "p-1";
|
|
1044
|
+
declare const menuOptionItemPadding = "px-2 py-1.5";
|
|
1045
|
+
declare const DropdownMenuSubTrigger: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubTriggerProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1046
|
+
declare const DropdownMenuSubContent: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1047
|
+
declare const DropdownMenuContent: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1048
|
+
declare const DropdownMenuItem: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
1049
|
+
inset?: boolean;
|
|
1050
|
+
} & React$1.RefAttributes<HTMLDivElement>>;
|
|
1051
|
+
declare const DropdownMenuCheckboxItem: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuCheckboxItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1052
|
+
interface DropdownMenuRadioItemProps extends React$1.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem> {
|
|
1053
|
+
indicator?: 'dot' | 'none';
|
|
1054
|
+
closeOnSelect?: boolean;
|
|
1055
|
+
}
|
|
1056
|
+
declare const DropdownMenuRadioItem: React$1.ForwardRefExoticComponent<DropdownMenuRadioItemProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1057
|
+
declare const DropdownMenuLabel: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuLabelProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
1058
|
+
inset?: boolean;
|
|
1059
|
+
} & React$1.RefAttributes<HTMLDivElement>>;
|
|
1060
|
+
declare const DropdownMenuSeparator: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1061
|
+
declare const DropdownMenuShortcut: {
|
|
1062
|
+
({ className, ...props }: React$1.HTMLAttributes<HTMLSpanElement>): React$1.JSX.Element;
|
|
1063
|
+
displayName: string;
|
|
1064
|
+
};
|
|
1065
|
+
|
|
1066
|
+
interface PopoverProps extends React$1.ComponentPropsWithoutRef<typeof PopoverPrimitive.Root> {
|
|
1067
|
+
snappable?: boolean;
|
|
1068
|
+
fullScreenOnMobile?: boolean;
|
|
1069
|
+
}
|
|
1070
|
+
declare function Popover({ children, open, defaultOpen, onOpenChange, snappable, fullScreenOnMobile, ...props }: PopoverProps): React$1.JSX.Element;
|
|
1071
|
+
declare const PopoverTrigger: React$1.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverTriggerProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1072
|
+
declare const PopoverClose: React$1.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverCloseProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1073
|
+
declare function PopoverPortal(props: React$1.ComponentPropsWithoutRef<typeof PopoverPrimitive.Portal>): React$1.JSX.Element;
|
|
1074
|
+
declare const PopoverAnchor: React$1.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverAnchorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1075
|
+
interface PopoverContentProps extends React$1.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> {
|
|
1076
|
+
/** 본문 여백. PC 표면과 모바일 시트 본문에 함께 적용하며, 자체 여백이 있는 목록은 sm을 씁니다. */
|
|
1077
|
+
padding?: 'none' | 'sm' | 'md';
|
|
1078
|
+
/** false면 모바일 본문 스크롤 wrapper를 생략해 자식이 스크롤을 소유합니다. */
|
|
1079
|
+
scrollable?: boolean;
|
|
1080
|
+
confirmFooter?: React$1.ReactNode;
|
|
1081
|
+
/** Mobile bottom sheet surface styles; className applies to desktop only. */
|
|
1082
|
+
mobileClassName?: string;
|
|
1083
|
+
}
|
|
1084
|
+
declare const PopoverContent: React$1.ForwardRefExoticComponent<PopoverContentProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1085
|
+
declare const PopoverArrow: React$1.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverArrowProps & React$1.RefAttributes<SVGSVGElement>, "ref"> & React$1.RefAttributes<SVGSVGElement>>;
|
|
1086
|
+
|
|
1087
|
+
type PopoverMode = 'popover' | 'drawer' | 'nested-sheet';
|
|
1088
|
+
interface ResolvePopoverModeInput {
|
|
1089
|
+
isMobile: boolean;
|
|
1090
|
+
inSheetPanel: boolean;
|
|
1091
|
+
}
|
|
1092
|
+
declare function resolvePopoverMode({ isMobile, inSheetPanel, }: ResolvePopoverModeInput): PopoverMode;
|
|
1093
|
+
declare function resolvePopoverTitle(input: {
|
|
1094
|
+
title?: string;
|
|
1095
|
+
ariaLabel?: string;
|
|
1096
|
+
}): string;
|
|
1097
|
+
|
|
1098
|
+
type SheetSide = 'top' | 'left' | 'right' | 'bottom';
|
|
1099
|
+
type SheetProps = React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Root>;
|
|
1100
|
+
/** Share Dialog's controlled state and nested Drawer lifecycle; Sheet owns the edge layout. */
|
|
1101
|
+
declare function Sheet(props: SheetProps): React$1.JSX.Element;
|
|
1102
|
+
declare const SheetTrigger: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1103
|
+
declare const SheetClose: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1104
|
+
declare const SheetPortal: React$1.FC<DialogPrimitive.DialogPortalProps>;
|
|
1105
|
+
declare const SheetOverlay: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1106
|
+
declare const sheetVariants: (props?: ({
|
|
1107
|
+
side?: "bottom" | "left" | "right" | "top" | null | undefined;
|
|
1108
|
+
padded?: boolean | null | undefined;
|
|
1109
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1110
|
+
interface SheetContentProps extends Omit<React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>, 'title'>, Omit<VariantProps<typeof sheetVariants>, 'padded'> {
|
|
1111
|
+
/** Header·Body·Footer 여백. none이면 각 부분의 여백을 모두 없앱니다. */
|
|
1112
|
+
padding?: 'none' | 'md';
|
|
1113
|
+
title?: React$1.ReactNode;
|
|
1114
|
+
description?: React$1.ReactNode;
|
|
1115
|
+
showClose?: boolean;
|
|
1116
|
+
closeIcon?: React$1.ReactNode;
|
|
1117
|
+
closeLabel?: string;
|
|
1118
|
+
/** Optional previous-step action. Supplying options shows it unless show is false. */
|
|
1119
|
+
backOptions?: {
|
|
1120
|
+
show?: boolean;
|
|
1121
|
+
onClick: () => void;
|
|
1122
|
+
label: string;
|
|
1123
|
+
};
|
|
1124
|
+
}
|
|
1125
|
+
declare const SheetContent: React$1.ForwardRefExoticComponent<SheetContentProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1126
|
+
declare const SheetHeader: {
|
|
1127
|
+
({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): React$1.JSX.Element;
|
|
1128
|
+
displayName: string;
|
|
1129
|
+
};
|
|
1130
|
+
declare const SheetBody: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1131
|
+
declare const SheetFooter: {
|
|
1132
|
+
({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): React$1.JSX.Element;
|
|
1133
|
+
displayName: string;
|
|
1134
|
+
};
|
|
1135
|
+
declare const SheetTitle: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React$1.RefAttributes<HTMLHeadingElement>, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
|
|
1136
|
+
declare const SheetDescription: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
1137
|
+
|
|
1138
|
+
declare function SheetPanelProvider({ children }: {
|
|
1139
|
+
children: React$1.ReactNode;
|
|
1140
|
+
}): React$1.JSX.Element;
|
|
1141
|
+
declare function useInSheetPanel(): boolean;
|
|
1142
|
+
|
|
1143
|
+
type TooltipSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
1144
|
+
type TooltipRootProps = React$1.ComponentPropsWithoutRef<typeof TooltipPrimitive.Root>;
|
|
1145
|
+
type TooltipProviderProps = React$1.ComponentPropsWithoutRef<typeof TooltipPrimitive.Provider>;
|
|
1146
|
+
type TooltipTriggerProps = React$1.ComponentPropsWithoutRef<typeof TooltipPrimitive.Trigger>;
|
|
1147
|
+
type TooltipTitleProps = React$1.ComponentPropsWithoutRef<'div'>;
|
|
1148
|
+
type TooltipDescriptionProps = React$1.ComponentPropsWithoutRef<'div'>;
|
|
1149
|
+
interface TooltipContentProps extends React$1.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content> {
|
|
1150
|
+
size?: TooltipSize;
|
|
1151
|
+
portalContainer?: HTMLElement | null;
|
|
1152
|
+
}
|
|
1153
|
+
declare const TooltipProvider: React$1.FC<TooltipPrimitive.TooltipProviderProps>;
|
|
1154
|
+
declare const TooltipTrigger: React$1.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1155
|
+
declare const TooltipContent: React$1.ForwardRefExoticComponent<TooltipContentProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1156
|
+
declare const TooltipTitle: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1157
|
+
declare const TooltipDescription: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1158
|
+
declare const TooltipArrow: React$1.ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipArrowProps & React$1.RefAttributes<SVGSVGElement>, "ref"> & React$1.RefAttributes<SVGSVGElement>>;
|
|
1159
|
+
declare const Tooltip: ((props: TooltipRootProps) => React$1.JSX.Element) & {
|
|
1160
|
+
Provider: React$1.FC<TooltipPrimitive.TooltipProviderProps>;
|
|
1161
|
+
Trigger: React$1.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1162
|
+
Content: React$1.ForwardRefExoticComponent<TooltipContentProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1163
|
+
Title: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1164
|
+
Description: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1165
|
+
Arrow: React$1.ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipArrowProps & React$1.RefAttributes<SVGSVGElement>, "ref"> & React$1.RefAttributes<SVGSVGElement>>;
|
|
1166
|
+
};
|
|
1167
|
+
type TooltipComponent = typeof Tooltip;
|
|
1168
|
+
|
|
1169
|
+
interface AppliedFilterChip {
|
|
1170
|
+
id: string;
|
|
1171
|
+
label: string;
|
|
1172
|
+
kind?: 'filter' | 'sort';
|
|
1173
|
+
onRemove: () => void;
|
|
1174
|
+
}
|
|
1175
|
+
interface AppliedFiltersProps {
|
|
1176
|
+
chips: readonly AppliedFilterChip[];
|
|
1177
|
+
onClearAll?: () => void;
|
|
1178
|
+
className?: string;
|
|
1179
|
+
}
|
|
1180
|
+
declare const AppliedFilters: React$1.ForwardRefExoticComponent<AppliedFiltersProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1181
|
+
|
|
1182
|
+
interface SearchBarProps extends Omit<InputProps, 'value' | 'onChange' | 'type' | 'startAdornment' | 'endAdornment'> {
|
|
1183
|
+
value: string;
|
|
1184
|
+
onValueChange: (value: string) => void;
|
|
1185
|
+
onSearch?: (value: string) => void;
|
|
1186
|
+
clearable?: boolean;
|
|
1187
|
+
}
|
|
1188
|
+
declare const SearchBar: React$1.ForwardRefExoticComponent<SearchBarProps & React$1.RefAttributes<HTMLInputElement>>;
|
|
1189
|
+
|
|
1190
|
+
interface CollapsibleSearchProps extends SearchBarProps {
|
|
1191
|
+
expandedClassName?: string;
|
|
1192
|
+
triggerLabel?: string;
|
|
1193
|
+
open?: boolean;
|
|
1194
|
+
onOpenChange?: (open: boolean) => void;
|
|
1195
|
+
}
|
|
1196
|
+
declare const CollapsibleSearch: React$1.ForwardRefExoticComponent<CollapsibleSearchProps & React$1.RefAttributes<HTMLInputElement>>;
|
|
1197
|
+
|
|
1198
|
+
interface LoadingOverlayProps {
|
|
1199
|
+
open: boolean;
|
|
1200
|
+
title?: string;
|
|
1201
|
+
description?: string;
|
|
1202
|
+
icon?: React$1.ReactNode;
|
|
1203
|
+
className?: string;
|
|
1204
|
+
}
|
|
1205
|
+
declare function LoadingOverlay({ open, title, description, icon, className }: LoadingOverlayProps): React$1.ReactPortal | null;
|
|
1206
|
+
declare namespace LoadingOverlay {
|
|
1207
|
+
var displayName: string;
|
|
1208
|
+
}
|
|
1209
|
+
|
|
1210
|
+
interface PageHeaderBackOptions {
|
|
1211
|
+
/** 상위 페이지 라벨. */
|
|
1212
|
+
label: string;
|
|
1213
|
+
/** 상위 페이지 경로. 소비 앱의 라우터 링크 주입 지점은 이 문자열을 해석한다. */
|
|
1214
|
+
to?: string;
|
|
1215
|
+
/** to가 없을 때 실행할 뒤로가기 콜백. */
|
|
1216
|
+
onClick?: ButtonHTMLAttributes<HTMLButtonElement>['onClick'];
|
|
1217
|
+
'aria-label'?: string;
|
|
1218
|
+
}
|
|
1219
|
+
interface PageHeaderBackNavProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'onClick'> {
|
|
1220
|
+
backOptions: PageHeaderBackOptions;
|
|
1221
|
+
/** 링크/버튼 내부를 확장해야 하는 소비 앱을 위한 슬롯. 기본은 chevron + label. */
|
|
1222
|
+
children?: ReactNode;
|
|
1223
|
+
}
|
|
1224
|
+
/** PageHeader 위에 표시하는 상위 이동 링크. 경로·router 콜백을 모두 소비 앱에서 주입할 수 있다. */
|
|
1225
|
+
declare function PageHeaderBackNav({ backOptions, children, className, ...props }: PageHeaderBackNavProps): React$1.JSX.Element;
|
|
1226
|
+
|
|
1227
|
+
interface PageHeaderProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
|
|
1228
|
+
backOptions?: PageHeaderBackOptions;
|
|
1229
|
+
eyebrow?: ReactNode;
|
|
1230
|
+
title: ReactNode;
|
|
1231
|
+
description?: ReactNode;
|
|
1232
|
+
/** 제목 앞에 놓는 아바타·아이콘 슬롯. */
|
|
1233
|
+
startAdornment?: ReactNode;
|
|
1234
|
+
/**
|
|
1235
|
+
* 우측 액션 슬롯. 액션 개수에 따른 overflow 메뉴나 모바일 FAB 같은 분배 정책은 패키지가 정하지 않는다.
|
|
1236
|
+
* 서비스가 PageHeader를 감싸서 자기 규칙으로 이 슬롯을 채운다.
|
|
1237
|
+
*/
|
|
1238
|
+
actions?: ReactNode;
|
|
1239
|
+
}
|
|
1240
|
+
/** 페이지 제목 영역의 배치만 소유하는 슬롯형 헤더. */
|
|
1241
|
+
declare function PageHeader({ backOptions, eyebrow, title, description, startAdornment, actions, className, ...props }: PageHeaderProps): React$1.JSX.Element;
|
|
1242
|
+
|
|
1243
|
+
type StateFallbackColor = 'neutral' | 'danger';
|
|
1244
|
+
type StateFallbackPreset = 'empty' | 'filtered' | 'error' | 'custom';
|
|
1245
|
+
declare const stateFallbackVariants: (props?: ({
|
|
1246
|
+
variant?: "dashed" | "plain" | "panel" | null | undefined;
|
|
1247
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
1248
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1249
|
+
interface StateFallbackProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, 'title' | 'color'>, VariantProps<typeof stateFallbackVariants> {
|
|
1250
|
+
/** 상태별 기본 아이콘·제목·설명·색. custom은 기본 문구가 없습니다. */
|
|
1251
|
+
preset?: StateFallbackPreset;
|
|
1252
|
+
/** 아이콘의 의미 색. error preset은 danger, 나머지는 neutral이 기본입니다. */
|
|
1253
|
+
color?: StateFallbackColor;
|
|
1254
|
+
illustration?: React$1.ReactNode;
|
|
1255
|
+
icon?: React$1.ReactNode;
|
|
1256
|
+
title?: React$1.ReactNode;
|
|
1257
|
+
description?: React$1.ReactNode;
|
|
1258
|
+
extra?: React$1.ReactNode;
|
|
1259
|
+
primaryActionOptions?: ActionButtonProps;
|
|
1260
|
+
secondaryActionOptions?: ActionButtonProps;
|
|
1261
|
+
/** 기본 옵션 대신 표시할 버튼·노드 목록. []는 모든 action을 숨깁니다. */
|
|
1262
|
+
actions?: (ActionButtonProps | React$1.ReactNode)[];
|
|
1263
|
+
}
|
|
1264
|
+
declare const StateFallback: React$1.ForwardRefExoticComponent<StateFallbackProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1265
|
+
|
|
1266
|
+
type AccordionSize = 'sm' | 'md' | 'lg';
|
|
1267
|
+
type AccordionHeadingLevel = 2 | 3 | 4;
|
|
1268
|
+
declare const Accordion: React$1.ForwardRefExoticComponent<(AccordionPrimitive.AccordionSingleProps | AccordionPrimitive.AccordionMultipleProps) & React$1.RefAttributes<HTMLDivElement>>;
|
|
1269
|
+
declare const AccordionItem: React$1.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1270
|
+
interface AccordionTriggerProps extends Omit<React$1.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>, 'title'> {
|
|
1271
|
+
size?: AccordionSize;
|
|
1272
|
+
headingLevel?: AccordionHeadingLevel;
|
|
1273
|
+
title?: React$1.ReactNode;
|
|
1274
|
+
description?: React$1.ReactNode;
|
|
1275
|
+
}
|
|
1276
|
+
declare const AccordionTrigger: React$1.ForwardRefExoticComponent<AccordionTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1277
|
+
declare const AccordionContent: React$1.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1278
|
+
|
|
1279
|
+
/** A single expandable region. Use Accordion when several panels share a group. */
|
|
1280
|
+
declare const Collapsible: React$1.ForwardRefExoticComponent<CollapsiblePrimitive.CollapsibleProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1281
|
+
declare const CollapsibleTrigger: React$1.ForwardRefExoticComponent<CollapsiblePrimitive.CollapsibleTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1282
|
+
declare const CollapsibleContent: React$1.ForwardRefExoticComponent<CollapsiblePrimitive.CollapsibleContentProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1283
|
+
|
|
1284
|
+
interface CommandDialogProps extends React$1.ComponentPropsWithoutRef<typeof Dialog> {
|
|
1285
|
+
commandClassName?: string;
|
|
1286
|
+
contentClassName?: string;
|
|
1287
|
+
title?: string;
|
|
1288
|
+
description?: string;
|
|
1289
|
+
shouldFilter?: boolean;
|
|
1290
|
+
children?: React$1.ReactNode;
|
|
1291
|
+
}
|
|
1292
|
+
declare const Command: React$1.ForwardRefExoticComponent<Omit<{
|
|
1293
|
+
children?: React$1.ReactNode;
|
|
1294
|
+
} & Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React$1.HTMLAttributes<HTMLDivElement>> & {
|
|
1295
|
+
ref?: React$1.Ref<HTMLDivElement>;
|
|
1296
|
+
} & {
|
|
1297
|
+
asChild?: boolean;
|
|
1298
|
+
}, "key" | keyof React$1.HTMLAttributes<HTMLDivElement> | "asChild"> & {
|
|
1299
|
+
label?: string;
|
|
1300
|
+
shouldFilter?: boolean;
|
|
1301
|
+
filter?: (value: string, search: string, keywords?: string[]) => number;
|
|
1302
|
+
defaultValue?: string;
|
|
1303
|
+
value?: string;
|
|
1304
|
+
onValueChange?: (value: string) => void;
|
|
1305
|
+
loop?: boolean;
|
|
1306
|
+
disablePointerSelection?: boolean;
|
|
1307
|
+
vimBindings?: boolean;
|
|
1308
|
+
} & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1309
|
+
declare function CommandDialog({ children, commandClassName, contentClassName, title, description, shouldFilter, ...props }: CommandDialogProps): React$1.JSX.Element;
|
|
1310
|
+
declare const CommandInput: React$1.ForwardRefExoticComponent<Omit<Omit<Pick<Pick<React$1.DetailedHTMLProps<React$1.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "key" | keyof React$1.InputHTMLAttributes<HTMLInputElement>> & {
|
|
1311
|
+
ref?: React$1.Ref<HTMLInputElement>;
|
|
1312
|
+
} & {
|
|
1313
|
+
asChild?: boolean;
|
|
1314
|
+
}, "key" | "asChild" | keyof React$1.InputHTMLAttributes<HTMLInputElement>>, "value" | "onChange" | "type"> & {
|
|
1315
|
+
value?: string;
|
|
1316
|
+
onValueChange?: (search: string) => void;
|
|
1317
|
+
} & React$1.RefAttributes<HTMLInputElement>, "ref"> & FieldControlProps$1 & React$1.RefAttributes<HTMLInputElement>>;
|
|
1318
|
+
interface CommandListProps extends React$1.ComponentPropsWithoutRef<typeof Command$1.List> {
|
|
1319
|
+
scrollable?: boolean;
|
|
1320
|
+
viewportClassName?: string;
|
|
1321
|
+
}
|
|
1322
|
+
declare const CommandList: React$1.ForwardRefExoticComponent<CommandListProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1323
|
+
declare const CommandEmpty: React$1.ForwardRefExoticComponent<Omit<{
|
|
1324
|
+
children?: React$1.ReactNode;
|
|
1325
|
+
} & Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React$1.HTMLAttributes<HTMLDivElement>> & {
|
|
1326
|
+
ref?: React$1.Ref<HTMLDivElement>;
|
|
1327
|
+
} & {
|
|
1328
|
+
asChild?: boolean;
|
|
1329
|
+
}, "key" | keyof React$1.HTMLAttributes<HTMLDivElement> | "asChild"> & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1330
|
+
declare const CommandGroup: React$1.ForwardRefExoticComponent<Omit<{
|
|
1331
|
+
children?: React$1.ReactNode;
|
|
1332
|
+
} & Omit<Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React$1.HTMLAttributes<HTMLDivElement>> & {
|
|
1333
|
+
ref?: React$1.Ref<HTMLDivElement>;
|
|
1334
|
+
} & {
|
|
1335
|
+
asChild?: boolean;
|
|
1336
|
+
}, "key" | keyof React$1.HTMLAttributes<HTMLDivElement> | "asChild">, "value" | "heading"> & {
|
|
1337
|
+
heading?: React$1.ReactNode;
|
|
1338
|
+
value?: string;
|
|
1339
|
+
forceMount?: boolean;
|
|
1340
|
+
} & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1341
|
+
declare const CommandSeparator: React$1.ForwardRefExoticComponent<Omit<Pick<Pick<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React$1.HTMLAttributes<HTMLDivElement>> & {
|
|
1342
|
+
ref?: React$1.Ref<HTMLDivElement>;
|
|
1343
|
+
} & {
|
|
1344
|
+
asChild?: boolean;
|
|
1345
|
+
}, "key" | keyof React$1.HTMLAttributes<HTMLDivElement> | "asChild"> & {
|
|
1346
|
+
alwaysRender?: boolean;
|
|
1347
|
+
} & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1348
|
+
interface CommandItemProps extends React$1.ComponentPropsWithoutRef<typeof Command$1.Item> {
|
|
1349
|
+
selected?: boolean;
|
|
1350
|
+
}
|
|
1351
|
+
declare const CommandItem: React$1.ForwardRefExoticComponent<CommandItemProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1352
|
+
declare const CommandShortcut: {
|
|
1353
|
+
({ className, ...props }: React$1.HTMLAttributes<HTMLSpanElement>): React$1.JSX.Element;
|
|
1354
|
+
displayName: string;
|
|
1355
|
+
};
|
|
1356
|
+
|
|
1357
|
+
declare const ContextMenu: React$1.FC<ContextMenuPrimitive.ContextMenuProps>;
|
|
1358
|
+
declare const ContextMenuTrigger: React$1.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuTriggerProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
1359
|
+
declare const ContextMenuGroup: React$1.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuGroupProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1360
|
+
declare const ContextMenuPortal: React$1.FC<ContextMenuPrimitive.ContextMenuPortalProps>;
|
|
1361
|
+
declare const ContextMenuSub: React$1.FC<ContextMenuPrimitive.ContextMenuSubProps>;
|
|
1362
|
+
declare const ContextMenuRadioGroup: React$1.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuRadioGroupProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1363
|
+
declare const ContextMenuSubTrigger: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSubTriggerProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
1364
|
+
inset?: boolean;
|
|
1365
|
+
} & React$1.RefAttributes<HTMLDivElement>>;
|
|
1366
|
+
declare const ContextMenuSubContent: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSubContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1367
|
+
declare const ContextMenuContent: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1368
|
+
declare const ContextMenuItem: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
1369
|
+
inset?: boolean;
|
|
1370
|
+
} & React$1.RefAttributes<HTMLDivElement>>;
|
|
1371
|
+
declare const ContextMenuCheckboxItem: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuCheckboxItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1372
|
+
declare const ContextMenuRadioItem: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuRadioItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1373
|
+
declare const ContextMenuLabel: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuLabelProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
1374
|
+
inset?: boolean;
|
|
1375
|
+
} & React$1.RefAttributes<HTMLDivElement>>;
|
|
1376
|
+
declare const ContextMenuSeparator: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1377
|
+
declare const ContextMenuShortcut: {
|
|
1378
|
+
({ className, ...props }: React$1.HTMLAttributes<HTMLSpanElement>): React$1.JSX.Element;
|
|
1379
|
+
displayName: string;
|
|
1380
|
+
};
|
|
1381
|
+
|
|
1382
|
+
declare const HoverCard: React$1.FC<HoverCardPrimitive.HoverCardProps>;
|
|
1383
|
+
declare const HoverCardTrigger: React$1.ForwardRefExoticComponent<HoverCardPrimitive.HoverCardTriggerProps & React$1.RefAttributes<HTMLAnchorElement>>;
|
|
1384
|
+
declare const HoverCardContent: React$1.ForwardRefExoticComponent<Omit<HoverCardPrimitive.HoverCardContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1385
|
+
|
|
1386
|
+
declare const paginationLinkVariants: (props?: ({
|
|
1387
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
1388
|
+
variant?: "outline" | "ghost" | "neutral" | null | undefined;
|
|
1389
|
+
active?: boolean | null | undefined;
|
|
1390
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1391
|
+
type PaginationSize = NonNullable<VariantProps<typeof paginationLinkVariants>['size']>;
|
|
1392
|
+
interface PaginationRootProps extends React$1.ComponentPropsWithoutRef<'nav'> {
|
|
1393
|
+
size?: PaginationSize;
|
|
1394
|
+
}
|
|
1395
|
+
declare const PaginationRoot: React$1.ForwardRefExoticComponent<PaginationRootProps & React$1.RefAttributes<HTMLElement>>;
|
|
1396
|
+
declare const PaginationContent: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLUListElement>, HTMLUListElement>, "ref"> & React$1.RefAttributes<HTMLUListElement>>;
|
|
1397
|
+
declare const PaginationItem$1: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & React$1.RefAttributes<HTMLLIElement>>;
|
|
1398
|
+
interface PaginationLinkProps extends React$1.ComponentPropsWithoutRef<'button'>, Pick<VariantProps<typeof paginationLinkVariants>, 'variant'> {
|
|
1399
|
+
/** 현재 페이지. aria-current="page"와 강조 표현을 함께 적용합니다. */
|
|
1400
|
+
active?: boolean;
|
|
1401
|
+
size?: PaginationSize;
|
|
1402
|
+
}
|
|
1403
|
+
declare const PaginationLink: React$1.ForwardRefExoticComponent<PaginationLinkProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1404
|
+
interface PaginationNavProps extends Omit<PaginationLinkProps, 'variant' | 'active'> {
|
|
1405
|
+
showLabel?: boolean;
|
|
1406
|
+
}
|
|
1407
|
+
declare const PaginationPrevious: React$1.ForwardRefExoticComponent<PaginationNavProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1408
|
+
declare const PaginationNext: React$1.ForwardRefExoticComponent<PaginationNavProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1409
|
+
declare const PaginationFirst: React$1.ForwardRefExoticComponent<PaginationNavProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1410
|
+
declare const PaginationLast: React$1.ForwardRefExoticComponent<PaginationNavProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1411
|
+
declare const PaginationEllipsis: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & React$1.RefAttributes<HTMLSpanElement>>;
|
|
1412
|
+
interface PaginationProps extends Omit<React$1.ComponentPropsWithoutRef<'nav'>, 'onChange'> {
|
|
1413
|
+
total: number;
|
|
1414
|
+
page: number;
|
|
1415
|
+
onPageChange: (page: number) => void;
|
|
1416
|
+
siblingCount?: number;
|
|
1417
|
+
boundaryCount?: number;
|
|
1418
|
+
showEdges?: boolean;
|
|
1419
|
+
size?: PaginationSize;
|
|
1420
|
+
showNavLabel?: boolean;
|
|
1421
|
+
}
|
|
1422
|
+
interface PaginationCompound extends React$1.ForwardRefExoticComponent<PaginationProps & React$1.RefAttributes<HTMLElement>> {
|
|
1423
|
+
Root: typeof PaginationRoot;
|
|
1424
|
+
Content: typeof PaginationContent;
|
|
1425
|
+
Item: typeof PaginationItem$1;
|
|
1426
|
+
Link: typeof PaginationLink;
|
|
1427
|
+
Previous: typeof PaginationPrevious;
|
|
1428
|
+
Next: typeof PaginationNext;
|
|
1429
|
+
First: typeof PaginationFirst;
|
|
1430
|
+
Last: typeof PaginationLast;
|
|
1431
|
+
Ellipsis: typeof PaginationEllipsis;
|
|
1432
|
+
}
|
|
1433
|
+
declare const Pagination: PaginationCompound;
|
|
1434
|
+
|
|
1435
|
+
declare function nextSelectableValue(items: readonly SelectableItemMeta[], current: string | undefined, action: 'prev' | 'next' | 'first' | 'last'): string | undefined;
|
|
1436
|
+
interface SelectableGroupProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, 'onChange'> {
|
|
1437
|
+
value?: string;
|
|
1438
|
+
defaultValue?: string;
|
|
1439
|
+
onValueChange?: (value: string) => void;
|
|
1440
|
+
disabled?: boolean;
|
|
1441
|
+
}
|
|
1442
|
+
declare const SelectableGroup: React$1.ForwardRefExoticComponent<SelectableGroupProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1443
|
+
declare const selectableVariants: (props?: ({
|
|
1444
|
+
variant?: "card" | "chip" | null | undefined;
|
|
1445
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
1446
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1447
|
+
interface SelectableItemBaseProps extends Omit<React$1.ButtonHTMLAttributes<HTMLButtonElement>, 'value' | 'onChange'> {
|
|
1448
|
+
value: string;
|
|
1449
|
+
}
|
|
1450
|
+
interface SelectableCardProps extends Omit<SelectableItemBaseProps, 'children'> {
|
|
1451
|
+
children?: React$1.ReactNode;
|
|
1452
|
+
}
|
|
1453
|
+
declare const SelectableCard: React$1.ForwardRefExoticComponent<SelectableCardProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1454
|
+
interface SelectableChipProps extends Omit<SelectableItemBaseProps, 'children'> {
|
|
1455
|
+
children?: React$1.ReactNode;
|
|
1456
|
+
size?: NonNullable<VariantProps<typeof selectableVariants>['size']>;
|
|
1457
|
+
}
|
|
1458
|
+
declare const SelectableChip: React$1.ForwardRefExoticComponent<SelectableChipProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1459
|
+
|
|
1460
|
+
/** A compact option row shared by responsive pickers and menus. */
|
|
1461
|
+
interface SelectableOptionProps extends Omit<React$1.ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'onClick'> {
|
|
1462
|
+
selected: boolean;
|
|
1463
|
+
children: React$1.ReactNode;
|
|
1464
|
+
/** Called after the option is activated. */
|
|
1465
|
+
onSelect?: () => void;
|
|
1466
|
+
/** Keep the check slot at the leading edge for list style options. */
|
|
1467
|
+
checkPosition?: 'start' | 'end';
|
|
1468
|
+
}
|
|
1469
|
+
declare const SelectableOption: React$1.ForwardRefExoticComponent<SelectableOptionProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1470
|
+
|
|
1471
|
+
declare const sliderTrackVariants: (props?: ({
|
|
1472
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
1473
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1474
|
+
interface SliderProps extends React$1.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>, VariantProps<typeof sliderTrackVariants> {
|
|
1475
|
+
}
|
|
1476
|
+
declare const Slider: React$1.ForwardRefExoticComponent<SliderProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
1477
|
+
|
|
1478
|
+
interface SteppedSliderOption {
|
|
1479
|
+
/** The value emitted for this step. Values must be unique. */
|
|
1480
|
+
value: number;
|
|
1481
|
+
/** Text shown below the matching tick. */
|
|
1482
|
+
label: string;
|
|
1483
|
+
}
|
|
1484
|
+
interface SteppedSliderProps {
|
|
1485
|
+
/** Options are rendered from left to right. */
|
|
1486
|
+
options: readonly SteppedSliderOption[];
|
|
1487
|
+
/** The currently selected option value. */
|
|
1488
|
+
value: number;
|
|
1489
|
+
/** Called when dragging, a tick, or a label selects another option. */
|
|
1490
|
+
onValueChange: (value: number) => void;
|
|
1491
|
+
/** Optional size hint rendered before the track. */
|
|
1492
|
+
startAdornment?: React$1.ReactNode;
|
|
1493
|
+
/** Optional size hint rendered after the track. */
|
|
1494
|
+
endAdornment?: React$1.ReactNode;
|
|
1495
|
+
'aria-label'?: string;
|
|
1496
|
+
className?: string;
|
|
1497
|
+
}
|
|
1498
|
+
declare const SteppedSlider: React$1.ForwardRefExoticComponent<SteppedSliderProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
1499
|
+
|
|
1500
|
+
declare const toggleVariants: (props?: ({
|
|
1501
|
+
variant?: "outline" | "ghost" | null | undefined;
|
|
1502
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
1503
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1504
|
+
interface ToggleProps extends React$1.ComponentPropsWithoutRef<typeof TogglePrimitive.Root>, VariantProps<typeof toggleVariants> {
|
|
1505
|
+
}
|
|
1506
|
+
declare const Toggle: React$1.ForwardRefExoticComponent<ToggleProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1507
|
+
|
|
1508
|
+
/** A page number or a visual gap between page ranges. */
|
|
1509
|
+
type PaginationToken = number | 'ellipsis';
|
|
1510
|
+
/**
|
|
1511
|
+
* Daeium compatibility name for a calculated pagination item.
|
|
1512
|
+
*
|
|
1513
|
+
* The ready-made API also exports a value called `PaginationItem` for the
|
|
1514
|
+
* compound `<li>` wrapper. TypeScript keeps those namespaces separate, so
|
|
1515
|
+
* preserving this type alias does not make the component API ambiguous.
|
|
1516
|
+
*/
|
|
1517
|
+
type PaginationItem = PaginationToken;
|
|
1518
|
+
interface UsePaginationArgs {
|
|
1519
|
+
totalPages: number;
|
|
1520
|
+
currentPage: number;
|
|
1521
|
+
siblingCount?: number;
|
|
1522
|
+
boundaryCount?: number;
|
|
1523
|
+
onPageChange?: (page: number) => void;
|
|
1524
|
+
}
|
|
1525
|
+
interface UsePaginationResult {
|
|
1526
|
+
items: PaginationToken[];
|
|
1527
|
+
currentPage: number;
|
|
1528
|
+
totalPages: number;
|
|
1529
|
+
canPrev: boolean;
|
|
1530
|
+
canNext: boolean;
|
|
1531
|
+
goTo: (page: number) => void;
|
|
1532
|
+
goPrev: () => void;
|
|
1533
|
+
goNext: () => void;
|
|
1534
|
+
goFirst: () => void;
|
|
1535
|
+
goLast: () => void;
|
|
1536
|
+
}
|
|
1537
|
+
/** Stable page list calculation shared by the ready-made and compound Pagination APIs. */
|
|
1538
|
+
declare function usePagination({ totalPages, currentPage, siblingCount, boundaryCount, onPageChange, }: UsePaginationArgs): UsePaginationResult;
|
|
1539
|
+
|
|
1540
|
+
/**
|
|
1541
|
+
* 값 변경을 debounce 하는 범용 훅.
|
|
1542
|
+
*
|
|
1543
|
+
* 로컬 검색 입력처럼 잦은 변경을 서버 호출 전에 모아 과호출을 줄인다. 앱별로 같은 타이머를
|
|
1544
|
+
* 다시 만들지 않도록 `@amineslab/ui`가 지연 갱신과 이전 타이머 취소 계약을 함께 소유한다.
|
|
1545
|
+
*/
|
|
1546
|
+
declare function useDebounced<T>(value: T, delayMs: number): T;
|
|
1547
|
+
|
|
1548
|
+
interface MenuCloseFocusGuard<T extends HTMLElement> {
|
|
1549
|
+
triggerRef: React$1.RefObject<T | null>;
|
|
1550
|
+
contentProps: {
|
|
1551
|
+
onPointerDownOutside: () => void;
|
|
1552
|
+
onInteractOutside: (event?: Event) => void;
|
|
1553
|
+
onFocusOutside: () => void;
|
|
1554
|
+
onEscapeKeyDown: () => void;
|
|
1555
|
+
onCloseAutoFocus: (event: Event) => void;
|
|
1556
|
+
};
|
|
1557
|
+
}
|
|
1558
|
+
/** Preserve focus restoration but suppress a pointer-close ring until the next keyboard input. */
|
|
1559
|
+
declare function useMenuCloseFocusGuard<T extends HTMLElement = HTMLElement>(): MenuCloseFocusGuard<T>;
|
|
1560
|
+
|
|
1561
|
+
/** Conservative SSR snapshot prevents motion before the user's preference is known. */
|
|
1562
|
+
declare function usePrefersReducedMotion(): boolean;
|
|
1563
|
+
|
|
1564
|
+
/** 조회 실패 영역의 재시도 상태와 중복 클릭 방지를 한 곳에서 관리한다. */
|
|
1565
|
+
type QueryRetryAction = AsyncAction;
|
|
1566
|
+
/** 여러 독립 조회 중 실패한 대상만 다시 실행하기 위한 최소 구조 계약. */
|
|
1567
|
+
interface QueryRetryTarget {
|
|
1568
|
+
readonly isError: boolean;
|
|
1569
|
+
readonly refetch: QueryRetryAction;
|
|
1570
|
+
}
|
|
1571
|
+
/** 캐시 데이터 유무까지 제공하는 Query의 최소 조회 상태. */
|
|
1572
|
+
interface QueryLoadRetryTarget extends QueryRetryTarget {
|
|
1573
|
+
readonly data: unknown;
|
|
1574
|
+
}
|
|
1575
|
+
/** 기존 데이터는 유지하고, 화면을 막아야 하는 최초 로드 실패만 복구 대상으로 만든다. */
|
|
1576
|
+
declare function queryLoadRetryTarget(query: QueryLoadRetryTarget): QueryRetryTarget;
|
|
1577
|
+
/** 여러 독립 조회를 한 복구 액션으로 묶되, 정상인 쿼리는 불필요하게 다시 요청하지 않는다. */
|
|
1578
|
+
declare function retryFailedQueries(...queries: QueryRetryTarget[]): Promise<void>;
|
|
1579
|
+
declare const queryRetryHandlerBrand: unique symbol;
|
|
1580
|
+
/** `useQueryRetry`가 잠금·sticky 상태를 감싼 뒤 반환한 controlled 재시도 핸들러. */
|
|
1581
|
+
type QueryRetryHandler = (() => Promise<void>) & {
|
|
1582
|
+
readonly [queryRetryHandlerBrand]: true;
|
|
1583
|
+
};
|
|
1584
|
+
/** 조회 복구 UI가 소비하는 공통 상태. 부모가 쿼리를 소유하고 자식이 복구 표면을 그릴 때도 재사용한다. */
|
|
1585
|
+
interface QueryRetryState {
|
|
1586
|
+
retry: QueryRetryHandler;
|
|
1587
|
+
retrying: boolean;
|
|
1588
|
+
showError: boolean;
|
|
1589
|
+
}
|
|
1590
|
+
/**
|
|
1591
|
+
* 쿼리 재시도 UX를 소비처와 분리한다.
|
|
1592
|
+
*
|
|
1593
|
+
* React Query의 `isError`는 재시도 중인 요청의 상태 변화에 따라 잠깐 false가 될 수 있다.
|
|
1594
|
+
* 따라서 화면은 `showError`를 사용해 사용자가 누른 재시도 문맥을 유지하고, `retrying`으로
|
|
1595
|
+
* 스켈레톤·액션을 중복 표시하지 않는다. ref로 잠금도 함께 유지해 빠른 연속 클릭을 막는다.
|
|
1596
|
+
*/
|
|
1597
|
+
declare function useQueryRetry(target: QueryRetryTarget, ...targets: QueryRetryTarget[]): QueryRetryState;
|
|
1598
|
+
declare function useQueryRetry(isError: boolean, onRetry?: QueryRetryAction): QueryRetryState;
|
|
1599
|
+
|
|
1600
|
+
/**
|
|
1601
|
+
* 값을 일정 시간만 노출한 뒤 기본값으로 되돌린다.
|
|
1602
|
+
*
|
|
1603
|
+
* 같은 값을 다시 표시해도 이전 타이머를 취소하고 노출 시간을 처음부터 다시 세며, 언마운트 때
|
|
1604
|
+
* 남은 타이머를 정리한다. 복사 완료·일시적 강조처럼 화면별 타이머 구현이 필요 없는 상태에 쓴다.
|
|
1605
|
+
*/
|
|
1606
|
+
declare function useTemporaryValue<T>(defaultValue: T, resetAfterMs: number): readonly [T, (nextValue: T) => void];
|
|
1607
|
+
|
|
1608
|
+
/**
|
|
1609
|
+
* 액션 행이 놓인 **표면** · plan 148 (#1184).
|
|
1610
|
+
*
|
|
1611
|
+
* 데이터형 액션(Callout 등)의 보조 버튼 variant 를 화면이 아니라 **표면**이 결정하게 둔다.
|
|
1612
|
+
*
|
|
1613
|
+
* - `'dialog'`(모달·시트 footer): 일반 보조 액션 = `ghost`. 이미 면(카드)이 있는 좁은 표면이라
|
|
1614
|
+
* 테두리 있는 outline 을 얹으면 border-in-border 가 된다.
|
|
1615
|
+
* - `'page'`(기본, 페이지 본문): 일반 보조 액션 = `outline`. 배경 위에 홀로 서므로 경계가 필요하다.
|
|
1616
|
+
*/
|
|
1617
|
+
type ActionSurface = 'page' | 'dialog';
|
|
1618
|
+
declare function ActionSurfaceProvider({ value, children, }: {
|
|
1619
|
+
value: ActionSurface;
|
|
1620
|
+
children: React$1.ReactNode;
|
|
1621
|
+
}): React$1.JSX.Element;
|
|
1622
|
+
declare function useActionSurface(): ActionSurface;
|
|
1623
|
+
|
|
1624
|
+
/**
|
|
1625
|
+
* 앱이 사용하는 링크 컴포넌트를 주입한다. 액션에는 직렬화 가능한 `to` 문자열만
|
|
1626
|
+
* 전달하고 링크 요소는 클라이언트에서 생성해 RSC 경계의 함수·lazy element 복제를 피한다.
|
|
1627
|
+
*
|
|
1628
|
+
* 클라이언트 provider에서 `<AppLinkProvider component={Link}>`로 연결한다.
|
|
1629
|
+
* 라우터가 없는 환경에서는 native anchor로 동작한다.
|
|
1630
|
+
*/
|
|
1631
|
+
interface AppLinkProps extends React$1.ComponentProps<'a'> {
|
|
1632
|
+
/** 앱 내부 경로. 외부 링크는 이 컴포넌트가 아니라 plain `<a href>` 를 쓴다. */
|
|
1633
|
+
href: string;
|
|
1634
|
+
}
|
|
1635
|
+
type AppLinkComponent = React$1.ComponentType<AppLinkProps>;
|
|
1636
|
+
declare function AppLinkProvider({ component, children, }: {
|
|
1637
|
+
component: AppLinkComponent;
|
|
1638
|
+
children: React$1.ReactNode;
|
|
1639
|
+
}): React$1.JSX.Element;
|
|
1640
|
+
/**
|
|
1641
|
+
* 앱 내부 이동 링크. 프로바이더가 주입한 컴포넌트(보통 `next/link`)로 렌더하고, 없으면 `<a>`.
|
|
1642
|
+
*
|
|
1643
|
+
* `asChild`(Radix `Slot`) 의 자식으로 쓰인다 · className·핸들러·`aria-*` 가 이 컴포넌트를 통과해
|
|
1644
|
+
* 실제 `<a>` 에 도달해야 하므로 받은 props 를 **전부 그대로** 넘긴다(React 19 에서는 `ref` 도
|
|
1645
|
+
* 일반 prop 이라 같은 경로를 탄다).
|
|
1646
|
+
*/
|
|
1647
|
+
declare function AppLink(props: AppLinkProps): React$1.JSX.Element;
|
|
1648
|
+
declare namespace AppLink {
|
|
1649
|
+
var displayName: string;
|
|
1650
|
+
}
|
|
1651
|
+
|
|
1652
|
+
declare function cn(...inputs: ClassValue[]): string;
|
|
1653
|
+
|
|
1654
|
+
declare const fieldFocusInset = "focus-visible:[--control-outline:var(--color-elevation-600)] focus-visible:outline-hidden";
|
|
1655
|
+
declare const fieldFocusTriggerOverride: string;
|
|
1656
|
+
|
|
1657
|
+
/**
|
|
1658
|
+
* 공용 interactive item의 상호작용 상태를 표현하는 작은 스타일 모듈.
|
|
1659
|
+
*
|
|
1660
|
+
* 이 모듈이 소유하는 것은 **상태의 의미**이지 행의 레이아웃이 아니다. 각 사용처는 flex, gap,
|
|
1661
|
+
* padding, radius 같은 정보 구조를 계속 소유하고, hover/탐색/선택/focus 면의 조합만 여기서
|
|
1662
|
+
* 가져온다. 따라서 item 면 토큰을 바꾸거나 상태 우선순위를 조정할 때 사용처를 순회할 필요가 없다.
|
|
1663
|
+
*
|
|
1664
|
+
* 상태 selector와 토큰을 호출부에 노출하지 않는 deep module 경계다. 새 item은 아래 세 축에서
|
|
1665
|
+
* 필요한 값만 고른다:
|
|
1666
|
+
* - `interaction`: 포인터 hover 또는 primitive가 관리하는 탐색 상태
|
|
1667
|
+
* - `selected`: checked/selected/muted 선택 상태
|
|
1668
|
+
* - `focus`: keyboard focus를 면으로 보일지, inset ring으로 보일지
|
|
1669
|
+
*
|
|
1670
|
+
* 레이아웃 클래스는 포함하지 않는다. 호출부는 `cn(layout, interactiveItemVariants(...))`로 합성한다.
|
|
1671
|
+
*/
|
|
1672
|
+
type InteractiveItemInteraction = 'none' | 'pointer' | 'focusable' | 'highlighted' | 'command';
|
|
1673
|
+
type InteractiveItemSelection = 'none' | 'checked' | 'selected' | 'muted';
|
|
1674
|
+
type InteractiveItemFocus = 'none' | 'ring';
|
|
1675
|
+
interface InteractiveItemVariantProps {
|
|
1676
|
+
/** 포인터 또는 primitive가 관리하는 keyboard navigation 상태. */
|
|
1677
|
+
interaction?: InteractiveItemInteraction;
|
|
1678
|
+
/** 선택 상태. `current`는 호출부가 실제 선택일 때만 사용한다. */
|
|
1679
|
+
selected?: InteractiveItemSelection;
|
|
1680
|
+
/** keyboard focus를 inset ring으로 표시한다. `focusable` interaction은 면을 표시한다. */
|
|
1681
|
+
focus?: InteractiveItemFocus;
|
|
1682
|
+
}
|
|
1683
|
+
interface SelectableItemStateVariantProps {
|
|
1684
|
+
/** 현재 값·route·option처럼 실제로 선택된 persistent 상태. */
|
|
1685
|
+
selected?: boolean;
|
|
1686
|
+
/** 비선택 item의 pointer/keyboard navigation 방식. */
|
|
1687
|
+
interaction?: InteractiveItemInteraction;
|
|
1688
|
+
/** 비선택 텍스트 톤. navigation처럼 보조 탐색 항목인 경우에만 `muted`를 쓴다. */
|
|
1689
|
+
idleTone?: 'regular' | 'muted';
|
|
1690
|
+
}
|
|
1691
|
+
/**
|
|
1692
|
+
* 공용 interactive item 상태 클래스를 반환한다.
|
|
1693
|
+
*
|
|
1694
|
+
* 기본값은 상태를 추가하지 않으므로 점진적으로 도입해도 기존 DOM 계약이 바뀌지 않는다.
|
|
1695
|
+
* `selected` 선택은 자체 hover/focus 우선순위를 소유하므로 interaction 면을 중복으로 내보내지
|
|
1696
|
+
* 않는다. 그 규칙도 이 함수 안에 있어 호출부가 selector ordering을 알아야 할 이유가 없다.
|
|
1697
|
+
*/
|
|
1698
|
+
declare function interactiveItemVariants({ interaction, selected, focus, }?: InteractiveItemVariantProps): string;
|
|
1699
|
+
/**
|
|
1700
|
+
* 실제 선택 여부를 아는 item의 selected/idle 상태를 공용 interaction surface에 연결한다.
|
|
1701
|
+
*
|
|
1702
|
+
* route current, option, listbox row처럼 선택 상태를 오래 유지하는 item은 일시적인 hover와
|
|
1703
|
+
* 구분되는 `selection` elevation과 accent text를 공유한다. 부모가 page·overlay·shell 중 무엇이든
|
|
1704
|
+
* alpha surface가 그 면 위에 합성되며, 호출부는 색 토큰·hover 우선순위·focus ring을 다시
|
|
1705
|
+
* 조립하지 않는다. ARIA의 current/selected/checked 의미는 각 component가 별도로 소유한다.
|
|
1706
|
+
*/
|
|
1707
|
+
declare function selectableItemStateVariants({ selected, interaction, idleTone, }?: SelectableItemStateVariantProps): string;
|
|
1708
|
+
|
|
1709
|
+
/**
|
|
1710
|
+
* 폼의 **암묵적 Enter 제출**을 막는 keydown 핸들러 (SSoT, plan 118).
|
|
1711
|
+
*
|
|
1712
|
+
* 다중 필드 폼에서 한 입력칸에 타이핑하다 Enter 를 누르면 브라우저 기본 동작으로 폼이 즉시
|
|
1713
|
+
* 제출된다 · 대부분의 CRUD 폼에서 원치 않는 사고다. 이 핸들러를 `<form onKeyDown={...}>` 에
|
|
1714
|
+
* 붙이면 단일 라인 입력에서의 Enter 제출만 막는다.
|
|
1715
|
+
*
|
|
1716
|
+
* **안전 설계 · 다음은 건드리지 않는다:**
|
|
1717
|
+
* - `<textarea>`: Enter=줄바꿈 유지(대상이 INPUT 일 때만 개입).
|
|
1718
|
+
* - 명시적 제출/버튼·초기화·파일 선택(`type=submit|button|reset|image|file`): 그대로 동작.
|
|
1719
|
+
* - 이미 Enter 를 처리한 위젯(Combobox·Select·Command 등이 `preventDefault` 한 경우):
|
|
1720
|
+
* `defaultPrevented` 를 확인해 건너뛴다 → Enter-선택 UX 무회귀.
|
|
1721
|
+
* - IME 조합 중(한글 입력): `isComposing`/keyCode 229 는 건너뛴다.
|
|
1722
|
+
*
|
|
1723
|
+
* 즉 "암묵적 제출"만 정확히 차단하고, 의도된 Enter 동작은 모두 보존한다. Enter 제출이 필요한
|
|
1724
|
+
* 폼(로그인·검색 등)에는 붙이지 않는다(opt-in).
|
|
1725
|
+
*
|
|
1726
|
+
* ```tsx
|
|
1727
|
+
* <form onKeyDown={preventImplicitSubmit} onSubmit={form.handleSubmit(onSubmit)}>
|
|
1728
|
+
* ```
|
|
1729
|
+
*/
|
|
1730
|
+
declare function preventImplicitSubmit(e: KeyboardEvent<HTMLFormElement>): void;
|
|
1731
|
+
|
|
1732
|
+
declare const fadeIn: {
|
|
1733
|
+
hidden: {
|
|
1734
|
+
opacity: number;
|
|
1735
|
+
};
|
|
1736
|
+
visible: {
|
|
1737
|
+
opacity: number;
|
|
1738
|
+
transition: {
|
|
1739
|
+
duration: number;
|
|
1740
|
+
ease: [number, number, number, number];
|
|
1741
|
+
};
|
|
1742
|
+
};
|
|
1743
|
+
};
|
|
1744
|
+
declare const fadeInUp: {
|
|
1745
|
+
hidden: {
|
|
1746
|
+
opacity: number;
|
|
1747
|
+
y: number;
|
|
1748
|
+
};
|
|
1749
|
+
visible: {
|
|
1750
|
+
opacity: number;
|
|
1751
|
+
y: number;
|
|
1752
|
+
transition: {
|
|
1753
|
+
duration: number;
|
|
1754
|
+
ease: [number, number, number, number];
|
|
1755
|
+
};
|
|
1756
|
+
};
|
|
1757
|
+
};
|
|
1758
|
+
declare const scaleIn: {
|
|
1759
|
+
hidden: {
|
|
1760
|
+
opacity: number;
|
|
1761
|
+
scale: number;
|
|
1762
|
+
};
|
|
1763
|
+
visible: {
|
|
1764
|
+
opacity: number;
|
|
1765
|
+
scale: number;
|
|
1766
|
+
transition: {
|
|
1767
|
+
duration: number;
|
|
1768
|
+
ease: [number, number, number, number];
|
|
1769
|
+
};
|
|
1770
|
+
};
|
|
1771
|
+
};
|
|
1772
|
+
declare const staggerContainer: (delay?: number) => {
|
|
1773
|
+
hidden: {};
|
|
1774
|
+
visible: {
|
|
1775
|
+
transition: {
|
|
1776
|
+
staggerChildren: number;
|
|
1777
|
+
};
|
|
1778
|
+
};
|
|
1779
|
+
};
|
|
1780
|
+
|
|
1781
|
+
declare const FONT_SIZE_PRESETS: readonly [14, 16, 18, 20];
|
|
1782
|
+
type FontSizePreset = (typeof FONT_SIZE_PRESETS)[number];
|
|
1783
|
+
declare const DEFAULT_FONT_SIZE: FontSizePreset;
|
|
1784
|
+
declare const labels: Record<FontSizePreset, string>;
|
|
1785
|
+
interface FontSizeProviderProps {
|
|
1786
|
+
children: React$1.ReactNode;
|
|
1787
|
+
defaultFontSize?: FontSizePreset;
|
|
1788
|
+
storageKey?: string;
|
|
1789
|
+
}
|
|
1790
|
+
declare function FontSizeProvider({ children, defaultFontSize, storageKey, }: FontSizeProviderProps): React$1.JSX.Element;
|
|
1791
|
+
declare function useFontSize(): {
|
|
1792
|
+
fontSize: FontSizePreset;
|
|
1793
|
+
setFontSize: (size: FontSizePreset) => void;
|
|
1794
|
+
labels: typeof labels;
|
|
1795
|
+
};
|
|
1796
|
+
|
|
1797
|
+
type ScopeTheme = 'light' | 'dark';
|
|
1798
|
+
interface ThemeScopeProps extends React$1.ComponentPropsWithRef<'div'> {
|
|
1799
|
+
theme?: ScopeTheme;
|
|
1800
|
+
asChild?: boolean;
|
|
1801
|
+
}
|
|
1802
|
+
/** A local theme boundary that also reaches this package's portaled surfaces. */
|
|
1803
|
+
declare function ThemeScope({ theme, asChild, children, ...props }: ThemeScopeProps): React$1.JSX.Element;
|
|
1804
|
+
|
|
1805
|
+
export { Accordion, AccordionContent, type AccordionHeadingLevel, AccordionItem, type AccordionSize, AccordionTrigger, type AccordionTriggerProps, type ActionButtonProps, ActionMenu, type ActionMenuItem, type ActionMenuProps, type ActionSurface, ActionSurfaceProvider, ActiveTriggerDot, Alert, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, type AlertProps, AppLink, type AppLinkComponent, type AppLinkProps, AppLinkProvider, type AppliedFilterChip, AppliedFilters, type AppliedFiltersProps, type AsyncAction, type AsyncActionGuard, Avatar, AvatarFallback, type AvatarFallbackProps, type AvatarFallbackVariant, AvatarGroup, type AvatarGroupProps, AvatarImage, type AvatarImageProps, type AvatarProps, AvatarRoot, type AvatarRootProps, type AvatarSize, Badge, type BadgeColor, type BadgeProps, type BadgeSize, type BadgeVariant, Breadcrumb, BreadcrumbCurrent, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbOverflow, type BreadcrumbOverflowProps, BreadcrumbPage, BreadcrumbSeparator, Button, type ButtonAsChildProps, type ButtonColor, ButtonGroup, type ButtonGroupProps, ButtonIcon, type ButtonProps, type ButtonSize, type ButtonVariant, Calendar, type CalendarProps, Callout, type CalloutAction, type CalloutColor, type CalloutProps, type CalloutSize, Card, CardContent, type CardContentProps, CardDescription, type CardDescriptionProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardPadding, type CardProps, CardRoot, type CardRootProps, CardTitle, type CardTitleProps, type CardVariant, Collapsible, CollapsibleContent, CollapsibleSearch, type CollapsibleSearchProps, CollapsibleTrigger, Command, CommandDialog, type CommandDialogProps, CommandEmpty, CommandGroup, CommandInput, CommandItem, type CommandItemProps, CommandList, type CommandListProps, CommandSeparator, CommandShortcut, Confirm, type ConfirmIntent, type ConfirmProps, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, ControlSize, DATE_RANGE_PRESET_LABELS, DEFAULT_FONT_SIZE, type DateRangePresetId, type DateRangePresetValue, Dialog, DialogBody, type DialogBodyProps, DialogClose, DialogContent, type DialogContentProps, DialogDescription, DialogFooter, DialogHeader, type DialogHeaderProps, DialogOverlay, DialogPortal, type DialogProps, type DialogSize, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerOverlay, DrawerPanelBody, type DrawerPanelBodyPadding, type DrawerPanelBodyProps, DrawerPanelFooter, DrawerPanelHeader, DrawerPortal, type DrawerProps, type DrawerSnapControls, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, type DropdownMenuRadioItemProps, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, FONT_SIZE_PRESETS, Field, FieldControl, FieldControlProps$1 as FieldControlProps, FieldDescription, type FieldDescriptionProps, FieldError, type FieldErrorProps, FieldLabel, type FieldLabelProps, type FieldProps, FieldRoot, type FieldRootProps, FileError, FileInputField, type FileInputFieldProps, FileInputProps, FilePicker, type FilePickerProps, FileUploadField, type FileUploadFieldProps, FileUploadProps, type FontSizePreset, FontSizeProvider, type FontSizeProviderProps, FormActions, type FormActionsHintOptions, type FormActionsProps, FormField, type FormFieldProps, FormSurface, FormSurfaceContent, FormSurfaceFooter, type FormSurfaceFooterProps, type FormSurfaceProps, HoverCard, HoverCardContent, HoverCardTrigger, IconButton, type IconButtonProps, InputProps, type InteractiveItemFocus, type InteractiveItemInteraction, type InteractiveItemSelection, type InteractiveItemVariantProps, LoadingOverlay, type LoadingOverlayProps, type MenuCloseFocusGuard, NativeSelect, type NativeSelectProps, type NativeSelectSize, PageHeader, PageHeaderBackNav, type PageHeaderBackNavProps, type PageHeaderBackOptions, type PageHeaderProps, Pagination, PaginationContent, PaginationEllipsis, PaginationFirst, PaginationItem$1 as PaginationItem, type PaginationItem as PaginationItemValue, PaginationLast, PaginationLink, type PaginationLinkProps, PaginationNext, PaginationPrevious, type PaginationProps, PaginationRoot, type PaginationRootProps, type PaginationToken, PhotoField, type PhotoFieldItem, type PhotoFieldProps, PhotoGrid, type PhotoGridItem, type PhotoGridProps, PhotoLightbox, type PhotoLightboxImage, type PhotoLightboxProps, Popover, PopoverAnchor, PopoverArrow, PopoverClose, PopoverContent, type PopoverContentProps, type PopoverMode, PopoverPortal, type PopoverProps, PopoverTrigger, ProfileAvatar, type ProfileAvatarProps, Progress, type ProgressProps, type ProgressSize, type QueryLoadRetryTarget, type QueryRetryAction, type QueryRetryHandler, type QueryRetryState, type QueryRetryTarget, type ScopeTheme, ScrollArea, type ScrollAreaOrientation, type ScrollAreaProps, type ScrollAreaType, ScrollBar, SearchBar, type SearchBarProps, Segment, SegmentItem, type SegmentItemProps, SegmentList, type SegmentListProps, type SegmentProps, SegmentedControl, SegmentedControlItem, SelectableCard, type SelectableCardProps, SelectableChip, type SelectableChipProps, SelectableGroup, type SelectableGroupProps, type SelectableItemMeta, type SelectableItemStateVariantProps, SelectableOption, type SelectableOptionProps, Separator, type SeparatorProps, Sheet, SheetBody, SheetClose, SheetContent, type SheetContentProps, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPanelProvider, SheetPortal, type SheetProps, type SheetSide, SheetTitle, SheetTrigger, Skeleton, type SkeletonProps, type SkeletonShape, type SkeletonVariant, Slider, type SliderProps, SpaceAvatar, type SpaceAvatarProps, Spinner, type SpinnerProps, type SpinnerSize, SquareAvatar, type SquareAvatarProps, StateFallback, type StateFallbackColor, type StateFallbackPreset, type StateFallbackProps, StatusFeedback, type StatusFeedbackAction, type StatusFeedbackColor, StatusFeedbackDescription, type StatusFeedbackProps, type StatusFeedbackSize, StatusFeedbackTitle, SteppedSlider, type SteppedSliderOption, type SteppedSliderProps, Switch, SwitchField, type SwitchFieldProps, type SwitchProps, TABS_FLUSH_TOP_MOBILE, Table, TableBody, TableCaption, TableCell, type TableCellProps, TableFooter, TableHead, type TableHeadProps, TableHeader, TableRow, Tabs, TabsBar, type TabsBarProps, TabsContent, TabsList, TabsTrigger, ThemeScope, type ThemeScopeProps, TimeSelect, type TimeSelectProps, TimeWheel, type TimeWheelProps, Toggle, type ToggleProps, Tooltip, TooltipArrow, type TooltipComponent, TooltipContent, type TooltipContentProps, TooltipDescription, type TooltipDescriptionProps, TooltipProvider, type TooltipProviderProps, type TooltipRootProps, type TooltipSize, TooltipTitle, type TooltipTitleProps, TooltipTrigger, type TooltipTriggerProps, type UsePaginationArgs, type UsePaginationResult, actionMenuGroups, avatarFallbackVariants, avatarVariants, badgeVariants, buttonVariants, calloutVariants, cardVariants, cn, computeDrawerSnapPoints, confirmTitle, fadeIn, fadeInUp, fieldFocusInset, fieldFocusTriggerOverride, formatNumeric, formatPhoneInput, formatPhoneNumber, fullActiveSnapPoint, getDatePart, getTimePart, interactiveItemVariants, isValidPhoneNumber, joinDateTime, matchDateRangePreset, menuOptionItemPadding, menuSurfacePadding, nextSegmentValue, nextSelectableValue, objectParticle, paginationLinkVariants, parseNumeric, preventImplicitSubmit, progressVariants, queryLoadRetryTarget, resolveDateRangePreset, resolveInitialSnap, resolvePopoverMode, resolvePopoverTitle, retryFailedQueries, scaleIn, segmentItemVariants, segmentListVariants, selectableItemStateVariants, selectableVariants, sheetVariants, skeletonVariants, sliderTrackVariants, spinnerVariants, staggerContainer, stateFallbackVariants, statusFeedbackVariants, subjectParticle, switchVariants, tabsListVariants, tabsTriggerVariants, toggleVariants, useActionSurface, useAsyncActionGuard, useDebounced, useDrawerCloseAction, useDrawerSnap, useFontSize, useHasCoarsePointer, useHasFinePointer, useInSheetPanel, useIsMobile, useMenuCloseFocusGuard, useObjectUrl, useObjectUrlForBlob, useObjectUrlRegistry, usePagination, usePrefersReducedMotion, useQueryRetry, useTemporaryValue };
|