@olundot/ui 0.10.1 → 0.10.2
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/CHANGELOG.md +7 -0
- package/dist/index.d.ts +34 -28
- package/dist/index.js +98 -8
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# @olundot/ui
|
|
2
2
|
|
|
3
|
+
## 0.10.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- fix(ui): Dialog 2026 재설계 — 글래스모피즘 블러 제거(단정한 scrim) · 무거운 그림자→floating elevation-8 · radius-lg · 헤더 좌측정렬 · footer 구분선(edge-bleed). API 변경 없음(시각/위계만).
|
|
8
|
+
- fix: toast가 duration 경과 후 자동으로 사라지도록 - ToastRoot가 마운트 시 setTimeout 기반 auto-dismiss 타이머를 걸고 unmount 시 정리한다(기존엔 타이머가 없어 수동 dismiss 전까지 영구 잔존). hover/focus 중에는 일시정지하고 해제 시 남은 시간부터 재개(sonner 관례). 기존 ToastOptions/ToastRoot 공개 API는 변경 없음(additive).
|
|
9
|
+
|
|
3
10
|
## 0.10.1
|
|
4
11
|
|
|
5
12
|
### Patch Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -32,8 +32,8 @@ declare function useOlunTheme(): UseOlunThemeValue;
|
|
|
32
32
|
type SurfaceLevel = "surface" | "canvas" | "raised";
|
|
33
33
|
|
|
34
34
|
declare const buttonVariants: (props?: ({
|
|
35
|
-
variant?: "
|
|
36
|
-
size?: "
|
|
35
|
+
variant?: "primary" | "secondary" | "destructive" | "default" | "outline" | "ghost" | "danger" | "emergency" | "subtle" | "link" | null | undefined;
|
|
36
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl" | "default" | "icon" | "icon-xs" | null | undefined;
|
|
37
37
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
38
38
|
type ButtonVariant = NonNullable<VariantProps<typeof buttonVariants>['variant']>;
|
|
39
39
|
type ButtonSize = NonNullable<VariantProps<typeof buttonVariants>['size']>;
|
|
@@ -54,7 +54,7 @@ type CopyButtonProps = Omit<ButtonProps, 'children' | 'leadingIcon' | 'loading'
|
|
|
54
54
|
variant?: ButtonVariant;
|
|
55
55
|
duration?: number;
|
|
56
56
|
};
|
|
57
|
-
declare const CopyButton: React.ForwardRefExoticComponent<Omit<ButtonProps, "
|
|
57
|
+
declare const CopyButton: React.ForwardRefExoticComponent<Omit<ButtonProps, "variant" | "size" | "leadingIcon" | "trailingIcon" | "loading" | "children"> & {
|
|
58
58
|
value: string;
|
|
59
59
|
label?: React.ReactNode;
|
|
60
60
|
copiedLabel?: React.ReactNode;
|
|
@@ -70,7 +70,7 @@ declare const inputVariants: (props?: ({
|
|
|
70
70
|
surface?: SurfaceLevel | null | undefined;
|
|
71
71
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
72
72
|
declare const inputMessageVariants: (props?: ({
|
|
73
|
-
state?: "
|
|
73
|
+
state?: "error" | "success" | "default" | null | undefined;
|
|
74
74
|
size?: "sm" | "md" | "lg" | null | undefined;
|
|
75
75
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
76
76
|
type InputState = NonNullable<VariantProps<typeof inputMessageVariants>["state"]>;
|
|
@@ -119,11 +119,11 @@ interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "
|
|
|
119
119
|
declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
|
|
120
120
|
|
|
121
121
|
declare const fileUploadZoneVariants: (props?: ({
|
|
122
|
-
size?: "
|
|
122
|
+
size?: "compact" | "default" | null | undefined;
|
|
123
123
|
surface?: SurfaceLevel | null | undefined;
|
|
124
124
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
125
125
|
declare const fileUploadIconVariants: (props?: ({
|
|
126
|
-
size?: "
|
|
126
|
+
size?: "compact" | "default" | null | undefined;
|
|
127
127
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
128
128
|
interface FileUploadZoneProps extends Omit<React.LabelHTMLAttributes<HTMLLabelElement>, "onChange">, VariantProps<typeof fileUploadZoneVariants> {
|
|
129
129
|
accept?: string;
|
|
@@ -142,10 +142,10 @@ interface FileUploadZoneProps extends Omit<React.LabelHTMLAttributes<HTMLLabelEl
|
|
|
142
142
|
declare const FileUploadZone: React.ForwardRefExoticComponent<FileUploadZoneProps & React.RefAttributes<HTMLLabelElement>>;
|
|
143
143
|
|
|
144
144
|
declare const alertVariants: (props?: ({
|
|
145
|
-
variant?: "error" | "
|
|
145
|
+
variant?: "error" | "warning" | "info" | "success" | null | undefined;
|
|
146
146
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
147
147
|
declare const inlineAlertVariants: (props?: ({
|
|
148
|
-
variant?: "error" | "
|
|
148
|
+
variant?: "error" | "warning" | "info" | "success" | null | undefined;
|
|
149
149
|
surface?: "filled" | "plain" | null | undefined;
|
|
150
150
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
151
151
|
type AlertVariant = NonNullable<VariantProps<typeof alertVariants>['variant']>;
|
|
@@ -175,7 +175,7 @@ declare const textareaVariants: (props?: ({
|
|
|
175
175
|
surface?: SurfaceLevel | null | undefined;
|
|
176
176
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
177
177
|
declare const textareaMessageVariants: (props?: ({
|
|
178
|
-
state?: "
|
|
178
|
+
state?: "error" | "success" | "default" | null | undefined;
|
|
179
179
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
180
180
|
type TextareaState = NonNullable<VariantProps<typeof textareaMessageVariants>["state"]>;
|
|
181
181
|
/** Canonical size type (0.2.0+). Use `size` prop with these values. */
|
|
@@ -230,7 +230,7 @@ declare const selectVariants: (props?: ({
|
|
|
230
230
|
surface?: SurfaceLevel | null | undefined;
|
|
231
231
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
232
232
|
declare const selectMessageVariants: (props?: ({
|
|
233
|
-
state?: "
|
|
233
|
+
state?: "error" | "success" | "default" | null | undefined;
|
|
234
234
|
size?: "sm" | "md" | "lg" | null | undefined;
|
|
235
235
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
236
236
|
type SelectState = NonNullable<VariantProps<typeof selectMessageVariants>["state"]>;
|
|
@@ -769,6 +769,12 @@ declare const DialogFooter: {
|
|
|
769
769
|
};
|
|
770
770
|
declare const DialogTitle: React.ForwardRefExoticComponent<Omit<Dialog$1.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
|
|
771
771
|
declare const DialogDescription: React.ForwardRefExoticComponent<Omit<Dialog$1.DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
|
|
772
|
+
/**
|
|
773
|
+
* DialogEyebrow — 제목 위 카테고리 overline(eyebrow). 2026 editorial 헤더 위계의 최상단.
|
|
774
|
+
* DialogHeader 안에서 DialogTitle '위'에 둔다(예: "시간 제어" / "시험 제어").
|
|
775
|
+
* 작은 uppercase + tracking + muted 색으로 title(bold)과 대비.
|
|
776
|
+
*/
|
|
777
|
+
declare const DialogEyebrow: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
|
|
772
778
|
/**
|
|
773
779
|
* DialogRawContent — shadcn 기본 스타일 없는 순수 radix Content.
|
|
774
780
|
* 자체 head/body/foot 슬롯을 가진 ModalShell 등 커스텀 구현용.
|
|
@@ -896,8 +902,8 @@ declare const PopoverContent: React.ForwardRefExoticComponent<PopoverContentProp
|
|
|
896
902
|
declare const PopoverArrow: React.ForwardRefExoticComponent<Omit<Popover$1.PopoverArrowProps & React.RefAttributes<SVGSVGElement>, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
897
903
|
|
|
898
904
|
declare const badgeVariants: (props?: ({
|
|
899
|
-
variant?: "
|
|
900
|
-
tone?: "accent" | "
|
|
905
|
+
variant?: "brand" | "neutral" | "status" | "semantic" | "pill" | "vibrant" | null | undefined;
|
|
906
|
+
tone?: "accent" | "warning" | "info" | "success" | "neutral" | "danger" | null | undefined;
|
|
901
907
|
size?: "xs" | "sm" | "md" | null | undefined;
|
|
902
908
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
903
909
|
declare const badgeDotVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
|
|
@@ -915,7 +921,7 @@ declare const twoTierBadgeVariants: (props?: ({
|
|
|
915
921
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
916
922
|
declare const twoTierBadgeLineVariants: (props?: ({
|
|
917
923
|
tier?: "primary" | "secondary" | null | undefined;
|
|
918
|
-
intent?: "
|
|
924
|
+
intent?: "brand" | "muted" | "warning" | "success" | "neutral" | "danger" | null | undefined;
|
|
919
925
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
920
926
|
type TwoTierBadgeIntent = NonNullable<VariantProps<typeof twoTierBadgeLineVariants>["intent"]>;
|
|
921
927
|
interface TwoTierBadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof twoTierBadgeVariants> {
|
|
@@ -929,7 +935,7 @@ interface TwoTierBadgeProps extends React.HTMLAttributes<HTMLDivElement>, Varian
|
|
|
929
935
|
declare const TwoTierBadge: React.ForwardRefExoticComponent<TwoTierBadgeProps & React.RefAttributes<HTMLDivElement>>;
|
|
930
936
|
|
|
931
937
|
declare const statusBadgeVariants: (props?: ({
|
|
932
|
-
status?: "error" | "
|
|
938
|
+
status?: "error" | "warning" | "info" | "success" | "active" | "pending" | "archived" | null | undefined;
|
|
933
939
|
size?: "xs" | "sm" | "md" | null | undefined;
|
|
934
940
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
935
941
|
declare const statusBadgeDotVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
|
|
@@ -959,12 +965,12 @@ declare const NotificationBadge: React.ForwardRefExoticComponent<NotificationBad
|
|
|
959
965
|
|
|
960
966
|
declare const chipVariants: (props?: ({
|
|
961
967
|
variant?: "filter" | "choice" | "removable" | "status-filter" | null | undefined;
|
|
962
|
-
tone?: "
|
|
968
|
+
tone?: "muted" | "accent" | "warning" | "success" | "neutral" | "danger" | null | undefined;
|
|
963
969
|
size?: "sm" | "md" | "lg" | null | undefined;
|
|
964
970
|
pressed?: boolean | null | undefined;
|
|
965
971
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
966
972
|
declare const chipCountVariants: (props?: ({
|
|
967
|
-
tone?: "
|
|
973
|
+
tone?: "muted" | "accent" | "warning" | "success" | "neutral" | "danger" | null | undefined;
|
|
968
974
|
size?: "sm" | "md" | "lg" | null | undefined;
|
|
969
975
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
970
976
|
type ChipVariant = NonNullable<VariantProps<typeof chipVariants>["variant"]>;
|
|
@@ -1159,7 +1165,7 @@ interface ActionFooterProps extends Omit<React.HTMLAttributes<HTMLDivElement>, '
|
|
|
1159
1165
|
declare const ActionFooter: React.ForwardRefExoticComponent<ActionFooterProps & React.RefAttributes<HTMLDivElement>>;
|
|
1160
1166
|
|
|
1161
1167
|
declare const toastVariants: (props?: ({
|
|
1162
|
-
variant?: "
|
|
1168
|
+
variant?: "error" | "warning" | "info" | "success" | "default" | null | undefined;
|
|
1163
1169
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1164
1170
|
declare const toastViewportVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
|
|
1165
1171
|
type ToastVariant = NonNullable<VariantProps<typeof toastVariants>['variant']>;
|
|
@@ -1200,19 +1206,19 @@ interface ToastProviderProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
1200
1206
|
declare function ToastProvider({ children, maxToasts, className, ...props }: ToastProviderProps): react_jsx_runtime.JSX.Element;
|
|
1201
1207
|
|
|
1202
1208
|
declare const otpFieldVariants: (props?: ({
|
|
1203
|
-
size?: "
|
|
1209
|
+
size?: "compact" | "default" | null | undefined;
|
|
1204
1210
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1205
1211
|
declare const otpFieldGroupVariants: (props?: ({
|
|
1206
|
-
size?: "
|
|
1212
|
+
size?: "compact" | "default" | null | undefined;
|
|
1207
1213
|
fluid?: boolean | null | undefined;
|
|
1208
1214
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1209
1215
|
declare const otpCellVariants: (props?: ({
|
|
1210
|
-
size?: "
|
|
1216
|
+
size?: "compact" | "default" | null | undefined;
|
|
1211
1217
|
fluid?: boolean | null | undefined;
|
|
1212
1218
|
surface?: SurfaceLevel | null | undefined;
|
|
1213
1219
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1214
1220
|
declare const otpFieldMessageVariants: (props?: ({
|
|
1215
|
-
state?: "
|
|
1221
|
+
state?: "error" | "default" | null | undefined;
|
|
1216
1222
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1217
1223
|
type OTPFieldSize = NonNullable<VariantProps<typeof otpCellVariants>["size"]>;
|
|
1218
1224
|
interface OTPFieldProps extends Omit<React.FieldsetHTMLAttributes<HTMLFieldSetElement>, "onChange" | "children" | "defaultValue" | "value">, VariantProps<typeof otpFieldVariants> {
|
|
@@ -1269,11 +1275,11 @@ declare const checkboxBoxVariants: (props?: ({
|
|
|
1269
1275
|
size?: "sm" | "md" | null | undefined;
|
|
1270
1276
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1271
1277
|
declare const checkboxGroupItemVariants: (props?: ({
|
|
1272
|
-
appearance?: "
|
|
1278
|
+
appearance?: "card" | "plain" | null | undefined;
|
|
1273
1279
|
density?: "compact" | "comfortable" | null | undefined;
|
|
1274
1280
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1275
1281
|
declare const checkboxGroupBoxVariants: (props?: ({
|
|
1276
|
-
appearance?: "
|
|
1282
|
+
appearance?: "card" | "plain" | null | undefined;
|
|
1277
1283
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1278
1284
|
type CheckboxSize = NonNullable<VariantProps<typeof checkboxBoxVariants>["size"]>;
|
|
1279
1285
|
type CheckboxCheckedState = React.ComponentProps<typeof Checkbox$1.Root>["checked"];
|
|
@@ -1298,7 +1304,7 @@ interface CheckboxProps extends Omit<React.ComponentPropsWithoutRef<typeof Check
|
|
|
1298
1304
|
declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLButtonElement>>;
|
|
1299
1305
|
|
|
1300
1306
|
declare const checkboxGroupVariants: (props?: ({
|
|
1301
|
-
appearance?: "
|
|
1307
|
+
appearance?: "card" | "plain" | null | undefined;
|
|
1302
1308
|
orientation?: "horizontal" | "vertical" | null | undefined;
|
|
1303
1309
|
columns?: "one" | "two" | "three" | null | undefined;
|
|
1304
1310
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
@@ -1319,16 +1325,16 @@ interface CheckboxGroupProps extends Omit<React.HTMLAttributes<HTMLDivElement>,
|
|
|
1319
1325
|
declare const CheckboxGroup: React.ForwardRefExoticComponent<CheckboxGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
1320
1326
|
|
|
1321
1327
|
declare const radioGroupVariants: (props?: ({
|
|
1322
|
-
appearance?: "
|
|
1328
|
+
appearance?: "card" | "plain" | null | undefined;
|
|
1323
1329
|
orientation?: "horizontal" | "vertical" | null | undefined;
|
|
1324
1330
|
columns?: "one" | "two" | "three" | null | undefined;
|
|
1325
1331
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1326
1332
|
declare const radioVariants: (props?: ({
|
|
1327
|
-
appearance?: "
|
|
1333
|
+
appearance?: "card" | "plain" | null | undefined;
|
|
1328
1334
|
density?: "compact" | "comfortable" | null | undefined;
|
|
1329
1335
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1330
1336
|
declare const radioControlVariants: (props?: ({
|
|
1331
|
-
appearance?: "
|
|
1337
|
+
appearance?: "card" | "plain" | null | undefined;
|
|
1332
1338
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1333
1339
|
type RadioGroupAppearance = NonNullable<VariantProps<typeof radioGroupVariants>["appearance"]>;
|
|
1334
1340
|
type RadioGroupColumns = NonNullable<VariantProps<typeof radioGroupVariants>["columns"]>;
|
|
@@ -1465,4 +1471,4 @@ interface OrganizationLogoProps extends Omit<SVGProps<SVGSVGElement>, "width" |
|
|
|
1465
1471
|
}
|
|
1466
1472
|
declare function OrganizationLogo({ organization, size, className, style, role, "aria-label": ariaLabel, "aria-hidden": ariaHidden, ...props }: OrganizationLogoProps): react_jsx_runtime.JSX.Element;
|
|
1467
1473
|
|
|
1468
|
-
export { ActionFooter, type ActionFooterAction, type ActionFooterProps, type ActionFooterStatus, Alert, type AlertProps, type AlertVariant, Avatar, AvatarFallback, type AvatarFallbackProps, AvatarImage, Badge, type BadgeProps, type BadgeSize, type BadgeTone, type BadgeVariant, BulkActionBar, type BulkActionBarAction, type BulkActionBarProps, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, CardProse, CardTitle, type CardVariant, type CardVariantOptions, Checkbox, type CheckboxCheckedState, CheckboxGroup, type CheckboxGroupAppearance, type CheckboxGroupColumns, CheckboxGroupContext, type CheckboxGroupContextValue, type CheckboxGroupDensity, type CheckboxGroupOrientation, type CheckboxGroupProps, type CheckboxProps, type CheckboxSize, Chip, type ChipProps, type ChipSize, type ChipTone, type ChipVariant, ConfirmDialog, type ConfirmDialogProps, ContextMenu, type ContextMenuPosition, type ContextMenuProps, CopyButton, type CopyButtonProps, DataTable, type DataTableBulkAction, type DataTableColumn, type DataTableProps, type DataTableSort, DetailLayout, type DetailLayoutProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogRawContent, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, type EmptyStateProps, type EmptyStateSize, type EmptyStateTone, type EmptyStateVariantOptions, ErrorState, type ErrorStateProps, FileUploadZone, type FileUploadZoneProps, FilterToolbar, type FilterToolbarProps, FormField, type FormFieldProps, type FormFieldRenderProps, FormLayout, type FormLayoutProps, type FormLayoutSection, FormModal, type FormModalProps, IconButton, type IconButtonBadgeTone, type IconButtonProps, type IconButtonSize, type IconButtonVariant, InfoModal, type InfoModalProps, InlineAlert, type InlineAlertProps, Input, type InputProps, type InputSize, type InputSizeLegacy, type InputState, Label, type LabelProps, ModeToggle, type ModeToggleOption, type ModeToggleProps, NotificationBadge, type NotificationBadgePlacement, type NotificationBadgeProps, type NotificationBadgeSize, OTPField, type OTPFieldProps, type OTPFieldSize, OlunLogo, OlunSymbol, type OlunTheme, type OlunThemeDuration, type OlunThemeState, OrganizationLogo, type OrganizationLogoId, type OrganizationLogoProps, PageHeader, type PageHeaderProps, Pagination, type PaginationProps, type PaginationSize, PermissionContext, type PermissionEvaluator, type PermissionFallback, PermissionGuard, type PermissionGuardProps, PermissionProvider, type PermissionProviderProps, type PermissionScope, type PermissionState, Popover, PopoverAnchor, PopoverArrow, PopoverClose, PopoverContent, type PopoverContentProps, type PopoverProps, PopoverTrigger, Progress, type ProgressProps, type ProgressStatus, Radio, RadioGroup, type RadioGroupAppearance, type RadioGroupColumns, type RadioGroupDensity, type RadioGroupOrientation, type RadioGroupProps, type RadioProps, ScrollArea, ScrollBar, SearchField, type SearchFieldProps, type SearchFieldSize, Select, type SelectAppearance, type SelectOption, type SelectProps, type SelectSize, type SelectState, type SelectVariant, Separator, type SetOlunThemeOptions, Sheet, SheetClose, SheetContent, SheetDescription, SheetDrawer, type SheetDrawerProps, SheetFooter, SheetHeader, type SheetMotionConfig, type SheetMotionDuration, type SheetMotionEasing, type SheetMotionType, SheetTitle, SheetTrigger, Skeleton, type SkeletonProps, SkeletonRow, type SkeletonRowColumn, type SkeletonRowProps, SkeletonText, type SkeletonTextProps, Spinner, type SpinnerProps, StatusBadge, type StatusBadgeProps, type StatusBadgeStatus, type SurfaceLevel, Switch, type SwitchProps, type TabItem, Tabs, TabsContent, type TabsProps, type TabsVariant, Textarea, type TextareaProps, type TextareaSize, type TextareaSizeLegacy, type TextareaState, ThemeFab, type ThemeFabProps, ThemeToggle, type ToastAction, type ToastItem, type ToastOptions, ToastProvider, ToastRoot, type ToastVariant, ToastViewport, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, type TreeItemRowVariantProps, type TreeItemState, type TreeNode, TreeView, type TreeViewProps, TwoTierBadge, type TwoTierBadgeIntent, type TwoTierBadgeProps, type UseOlunThemeValue, WizardLayout, type WizardLayoutProps, type WizardStep, type WizardStepState, actionFooterStatusVariants, actionFooterVariants, alertVariants, badgeDotVariants, badgeVariants, buttonVariants, cardVariants, checkboxBoxVariants, checkboxFieldVariants, checkboxGroupBoxVariants, checkboxGroupItemVariants, checkboxGroupVariants, checkboxRootVariants, checkboxVariants, chipCountVariants, chipVariants, cn, dataTableRowVariants, dataTableVariants, emptyStateIconVariants, emptyStateVariants, errorStateVariants, evaluatePermission, fileUploadIconVariants, fileUploadZoneVariants, formFieldControlStackClassName, formFieldDescriptionClassName, formFieldErrorClassName, formFieldLabelClassName, formFieldRequiredClassName, formFieldVariants, getOlunThemeState, getToastDuration, iconButtonBadgeVariants, iconButtonVariants, inlineAlertVariants, inputMessageVariants, inputVariants, limitToasts, modeToggleItemVariants, modeToggleVariants, notificationBadgeVariants, otpCellVariants, otpFieldGroupVariants, otpFieldMessageVariants, otpFieldVariants, paginationControlVariants, paginationVariants, radioControlVariants, radioGroupVariants, radioVariants, searchFieldInputVariants, searchFieldVariants, selectMessageVariants, selectVariants, setOlunTheme, skeletonVariants, spinnerVariants, statusBadgeDotVariants, statusBadgeVariants, tabsBadgeVariants, tabsListVariants, tabsRootVariants, tabsTriggerVariants, textareaMessageVariants, textareaVariants, toast, toastVariants, toastViewportVariants, treeItemRowVariants, treeViewVariants, twoTierBadgeLineVariants, twoTierBadgeVariants, useOlunTheme, usePermission };
|
|
1474
|
+
export { ActionFooter, type ActionFooterAction, type ActionFooterProps, type ActionFooterStatus, Alert, type AlertProps, type AlertVariant, Avatar, AvatarFallback, type AvatarFallbackProps, AvatarImage, Badge, type BadgeProps, type BadgeSize, type BadgeTone, type BadgeVariant, BulkActionBar, type BulkActionBarAction, type BulkActionBarProps, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, CardProse, CardTitle, type CardVariant, type CardVariantOptions, Checkbox, type CheckboxCheckedState, CheckboxGroup, type CheckboxGroupAppearance, type CheckboxGroupColumns, CheckboxGroupContext, type CheckboxGroupContextValue, type CheckboxGroupDensity, type CheckboxGroupOrientation, type CheckboxGroupProps, type CheckboxProps, type CheckboxSize, Chip, type ChipProps, type ChipSize, type ChipTone, type ChipVariant, ConfirmDialog, type ConfirmDialogProps, ContextMenu, type ContextMenuPosition, type ContextMenuProps, CopyButton, type CopyButtonProps, DataTable, type DataTableBulkAction, type DataTableColumn, type DataTableProps, type DataTableSort, DetailLayout, type DetailLayoutProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogEyebrow, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogRawContent, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, type EmptyStateProps, type EmptyStateSize, type EmptyStateTone, type EmptyStateVariantOptions, ErrorState, type ErrorStateProps, FileUploadZone, type FileUploadZoneProps, FilterToolbar, type FilterToolbarProps, FormField, type FormFieldProps, type FormFieldRenderProps, FormLayout, type FormLayoutProps, type FormLayoutSection, FormModal, type FormModalProps, IconButton, type IconButtonBadgeTone, type IconButtonProps, type IconButtonSize, type IconButtonVariant, InfoModal, type InfoModalProps, InlineAlert, type InlineAlertProps, Input, type InputProps, type InputSize, type InputSizeLegacy, type InputState, Label, type LabelProps, ModeToggle, type ModeToggleOption, type ModeToggleProps, NotificationBadge, type NotificationBadgePlacement, type NotificationBadgeProps, type NotificationBadgeSize, OTPField, type OTPFieldProps, type OTPFieldSize, OlunLogo, OlunSymbol, type OlunTheme, type OlunThemeDuration, type OlunThemeState, OrganizationLogo, type OrganizationLogoId, type OrganizationLogoProps, PageHeader, type PageHeaderProps, Pagination, type PaginationProps, type PaginationSize, PermissionContext, type PermissionEvaluator, type PermissionFallback, PermissionGuard, type PermissionGuardProps, PermissionProvider, type PermissionProviderProps, type PermissionScope, type PermissionState, Popover, PopoverAnchor, PopoverArrow, PopoverClose, PopoverContent, type PopoverContentProps, type PopoverProps, PopoverTrigger, Progress, type ProgressProps, type ProgressStatus, Radio, RadioGroup, type RadioGroupAppearance, type RadioGroupColumns, type RadioGroupDensity, type RadioGroupOrientation, type RadioGroupProps, type RadioProps, ScrollArea, ScrollBar, SearchField, type SearchFieldProps, type SearchFieldSize, Select, type SelectAppearance, type SelectOption, type SelectProps, type SelectSize, type SelectState, type SelectVariant, Separator, type SetOlunThemeOptions, Sheet, SheetClose, SheetContent, SheetDescription, SheetDrawer, type SheetDrawerProps, SheetFooter, SheetHeader, type SheetMotionConfig, type SheetMotionDuration, type SheetMotionEasing, type SheetMotionType, SheetTitle, SheetTrigger, Skeleton, type SkeletonProps, SkeletonRow, type SkeletonRowColumn, type SkeletonRowProps, SkeletonText, type SkeletonTextProps, Spinner, type SpinnerProps, StatusBadge, type StatusBadgeProps, type StatusBadgeStatus, type SurfaceLevel, Switch, type SwitchProps, type TabItem, Tabs, TabsContent, type TabsProps, type TabsVariant, Textarea, type TextareaProps, type TextareaSize, type TextareaSizeLegacy, type TextareaState, ThemeFab, type ThemeFabProps, ThemeToggle, type ToastAction, type ToastItem, type ToastOptions, ToastProvider, ToastRoot, type ToastVariant, ToastViewport, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, type TreeItemRowVariantProps, type TreeItemState, type TreeNode, TreeView, type TreeViewProps, TwoTierBadge, type TwoTierBadgeIntent, type TwoTierBadgeProps, type UseOlunThemeValue, WizardLayout, type WizardLayoutProps, type WizardStep, type WizardStepState, actionFooterStatusVariants, actionFooterVariants, alertVariants, badgeDotVariants, badgeVariants, buttonVariants, cardVariants, checkboxBoxVariants, checkboxFieldVariants, checkboxGroupBoxVariants, checkboxGroupItemVariants, checkboxGroupVariants, checkboxRootVariants, checkboxVariants, chipCountVariants, chipVariants, cn, dataTableRowVariants, dataTableVariants, emptyStateIconVariants, emptyStateVariants, errorStateVariants, evaluatePermission, fileUploadIconVariants, fileUploadZoneVariants, formFieldControlStackClassName, formFieldDescriptionClassName, formFieldErrorClassName, formFieldLabelClassName, formFieldRequiredClassName, formFieldVariants, getOlunThemeState, getToastDuration, iconButtonBadgeVariants, iconButtonVariants, inlineAlertVariants, inputMessageVariants, inputVariants, limitToasts, modeToggleItemVariants, modeToggleVariants, notificationBadgeVariants, otpCellVariants, otpFieldGroupVariants, otpFieldMessageVariants, otpFieldVariants, paginationControlVariants, paginationVariants, radioControlVariants, radioGroupVariants, radioVariants, searchFieldInputVariants, searchFieldVariants, selectMessageVariants, selectVariants, setOlunTheme, skeletonVariants, spinnerVariants, statusBadgeDotVariants, statusBadgeVariants, tabsBadgeVariants, tabsListVariants, tabsRootVariants, tabsTriggerVariants, textareaMessageVariants, textareaVariants, toast, toastVariants, toastViewportVariants, treeItemRowVariants, treeViewVariants, twoTierBadgeLineVariants, twoTierBadgeVariants, useOlunTheme, usePermission };
|
package/dist/index.js
CHANGED
|
@@ -3185,7 +3185,8 @@ var DialogOverlay = React18.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
3185
3185
|
ref,
|
|
3186
3186
|
className: cn(
|
|
3187
3187
|
"fixed inset-0 z-[var(--z-modal)]",
|
|
3188
|
-
|
|
3188
|
+
// 2026: 글래스모피즘 블러 제거 — 단정한 scrim 딤만(FE-skill anti-slop).
|
|
3189
|
+
"bg-[var(--bg-base)]/65",
|
|
3189
3190
|
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
3190
3191
|
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
3191
3192
|
"motion-reduce:animate-none",
|
|
@@ -3205,8 +3206,12 @@ var DialogContent = React18.forwardRef(({ className, children, showCloseButton =
|
|
|
3205
3206
|
"fixed left-1/2 top-1/2 z-[var(--z-modal)]",
|
|
3206
3207
|
"-translate-x-1/2 -translate-y-1/2",
|
|
3207
3208
|
"grid w-full max-w-lg gap-4 p-[var(--space-4)]",
|
|
3208
|
-
|
|
3209
|
-
|
|
3209
|
+
// modal은 dim overlay 위 — 가장 밝은 DS surface(--bg-base #F1F3F5·여전히 tinted·순백 아님)로 깨끗하게.
|
|
3210
|
+
// arbitrary var 사용: 소비 site/app이 dist를 content-scan 안 해 `bg-base` 유틸이 purge될 수 있어 안전하게 var로.
|
|
3211
|
+
"bg-[var(--bg-base)] text-foreground",
|
|
3212
|
+
// 2026: generic 무거운 그림자 대신 floating elevation-8 + 또렷한 중립 grey border(--border·16%) + radius-lg.
|
|
3213
|
+
// (border-subtle=8%는 너무 흐려 가장자리가 안 보였음 → border-border로 grey 또렷하게.)
|
|
3214
|
+
"border border-border rounded-[var(--radius-lg)] shadow-elevation-8",
|
|
3210
3215
|
"duration-200",
|
|
3211
3216
|
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
3212
3217
|
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
@@ -3246,7 +3251,8 @@ var DialogHeader = ({
|
|
|
3246
3251
|
"div",
|
|
3247
3252
|
{
|
|
3248
3253
|
className: cn(
|
|
3249
|
-
|
|
3254
|
+
// 2026: 중앙정렬 폐기 — 좌측 정렬 editorial 헤더(eyebrow+title+desc 위계).
|
|
3255
|
+
"flex flex-col space-y-[var(--space-1)] text-left",
|
|
3250
3256
|
className
|
|
3251
3257
|
),
|
|
3252
3258
|
...props
|
|
@@ -3260,7 +3266,12 @@ var DialogFooter = ({
|
|
|
3260
3266
|
"div",
|
|
3261
3267
|
{
|
|
3262
3268
|
className: cn(
|
|
3263
|
-
|
|
3269
|
+
// 2026: 본문과 footer를 구분선으로 분리(edge-bleed로 full-width border). DialogContent의 p-4를
|
|
3270
|
+
// -mx/-mb로 상쇄해 구분선이 다이얼로그 가장자리까지 닿게 한다.
|
|
3271
|
+
"-mx-[var(--space-4)] -mb-[var(--space-4)] mt-[var(--space-2)]",
|
|
3272
|
+
"flex flex-col-reverse gap-[var(--space-2)] border-t border-border",
|
|
3273
|
+
"px-[var(--space-4)] pb-[var(--space-4)] pt-[var(--space-3)]",
|
|
3274
|
+
"sm:flex-row sm:justify-end",
|
|
3264
3275
|
className
|
|
3265
3276
|
),
|
|
3266
3277
|
...props
|
|
@@ -3272,7 +3283,7 @@ var DialogTitle = React18.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
3272
3283
|
{
|
|
3273
3284
|
ref,
|
|
3274
3285
|
className: cn(
|
|
3275
|
-
"text-
|
|
3286
|
+
"text-xl font-bold leading-tight tracking-tight text-foreground",
|
|
3276
3287
|
className
|
|
3277
3288
|
),
|
|
3278
3289
|
...props
|
|
@@ -3283,11 +3294,23 @@ var DialogDescription = React18.forwardRef(({ className, ...props }, ref) => /*
|
|
|
3283
3294
|
DialogPrimitive.Description,
|
|
3284
3295
|
{
|
|
3285
3296
|
ref,
|
|
3286
|
-
className: cn("text-sm text-
|
|
3297
|
+
className: cn("text-sm text-text-secondary", className),
|
|
3287
3298
|
...props
|
|
3288
3299
|
}
|
|
3289
3300
|
));
|
|
3290
3301
|
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
3302
|
+
var DialogEyebrow = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
|
|
3303
|
+
"p",
|
|
3304
|
+
{
|
|
3305
|
+
ref,
|
|
3306
|
+
className: cn(
|
|
3307
|
+
"text-xs font-semibold uppercase tracking-wider text-muted-foreground",
|
|
3308
|
+
className
|
|
3309
|
+
),
|
|
3310
|
+
...props
|
|
3311
|
+
}
|
|
3312
|
+
));
|
|
3313
|
+
DialogEyebrow.displayName = "DialogEyebrow";
|
|
3291
3314
|
var DialogRawContent = DialogPrimitive.Content;
|
|
3292
3315
|
|
|
3293
3316
|
// src/components/ui/form-modal.tsx
|
|
@@ -7012,6 +7035,39 @@ function getToastDuration(options) {
|
|
|
7012
7035
|
}
|
|
7013
7036
|
return options.variant === "error" ? 7e3 : 3e3;
|
|
7014
7037
|
}
|
|
7038
|
+
function createToastTimer(durationMs, onExpire) {
|
|
7039
|
+
if (!Number.isFinite(durationMs)) {
|
|
7040
|
+
return { pause() {
|
|
7041
|
+
}, resume() {
|
|
7042
|
+
}, clear() {
|
|
7043
|
+
} };
|
|
7044
|
+
}
|
|
7045
|
+
let remaining = Math.max(0, durationMs);
|
|
7046
|
+
let startedAt = Date.now();
|
|
7047
|
+
let timeoutId;
|
|
7048
|
+
const clear = () => {
|
|
7049
|
+
if (timeoutId !== void 0) {
|
|
7050
|
+
clearTimeout(timeoutId);
|
|
7051
|
+
timeoutId = void 0;
|
|
7052
|
+
}
|
|
7053
|
+
};
|
|
7054
|
+
const schedule = () => {
|
|
7055
|
+
clear();
|
|
7056
|
+
startedAt = Date.now();
|
|
7057
|
+
timeoutId = setTimeout(onExpire, remaining);
|
|
7058
|
+
};
|
|
7059
|
+
const pause = () => {
|
|
7060
|
+
if (timeoutId === void 0) return;
|
|
7061
|
+
clear();
|
|
7062
|
+
remaining = Math.max(0, remaining - (Date.now() - startedAt));
|
|
7063
|
+
};
|
|
7064
|
+
const resume = () => {
|
|
7065
|
+
if (timeoutId !== void 0) return;
|
|
7066
|
+
schedule();
|
|
7067
|
+
};
|
|
7068
|
+
schedule();
|
|
7069
|
+
return { pause, resume, clear };
|
|
7070
|
+
}
|
|
7015
7071
|
function createToast(options) {
|
|
7016
7072
|
const id = `toast-${++toastCounter}`;
|
|
7017
7073
|
toastItems = limitToasts([...toastItems, { id, ...options }]);
|
|
@@ -7059,10 +7115,27 @@ var ToastRoot = React36.forwardRef(
|
|
|
7059
7115
|
duration,
|
|
7060
7116
|
action,
|
|
7061
7117
|
onClose,
|
|
7118
|
+
onMouseEnter,
|
|
7119
|
+
onMouseLeave,
|
|
7120
|
+
onFocus,
|
|
7121
|
+
onBlur,
|
|
7062
7122
|
...props
|
|
7063
7123
|
}, ref) => {
|
|
7064
7124
|
const Icon = toastIcons[variant];
|
|
7065
7125
|
const hasIcon = Icon !== null;
|
|
7126
|
+
const durationMs = getToastDuration({ message, variant, duration });
|
|
7127
|
+
const onCloseRef = React36.useRef(onClose);
|
|
7128
|
+
onCloseRef.current = onClose;
|
|
7129
|
+
const timerRef = React36.useRef(null);
|
|
7130
|
+
React36.useEffect(() => {
|
|
7131
|
+
if (!onCloseRef.current) return void 0;
|
|
7132
|
+
const timer = createToastTimer(durationMs, () => onCloseRef.current?.());
|
|
7133
|
+
timerRef.current = timer;
|
|
7134
|
+
return () => {
|
|
7135
|
+
timer.clear();
|
|
7136
|
+
timerRef.current = null;
|
|
7137
|
+
};
|
|
7138
|
+
}, [durationMs]);
|
|
7066
7139
|
return /* @__PURE__ */ jsxs41(
|
|
7067
7140
|
"div",
|
|
7068
7141
|
{
|
|
@@ -7071,12 +7144,28 @@ var ToastRoot = React36.forwardRef(
|
|
|
7071
7144
|
"data-slot": "toast",
|
|
7072
7145
|
"data-variant": variant,
|
|
7073
7146
|
role: variant === "error" ? "alert" : "status",
|
|
7074
|
-
"data-duration":
|
|
7147
|
+
"data-duration": durationMs,
|
|
7075
7148
|
className: cn(
|
|
7076
7149
|
toastVariants({ variant }),
|
|
7077
7150
|
hasIcon ? "grid-cols-[auto_1fr_auto]" : "grid-cols-[1fr_auto]",
|
|
7078
7151
|
className
|
|
7079
7152
|
),
|
|
7153
|
+
onMouseEnter: (event) => {
|
|
7154
|
+
timerRef.current?.pause();
|
|
7155
|
+
onMouseEnter?.(event);
|
|
7156
|
+
},
|
|
7157
|
+
onMouseLeave: (event) => {
|
|
7158
|
+
timerRef.current?.resume();
|
|
7159
|
+
onMouseLeave?.(event);
|
|
7160
|
+
},
|
|
7161
|
+
onFocus: (event) => {
|
|
7162
|
+
timerRef.current?.pause();
|
|
7163
|
+
onFocus?.(event);
|
|
7164
|
+
},
|
|
7165
|
+
onBlur: (event) => {
|
|
7166
|
+
timerRef.current?.resume();
|
|
7167
|
+
onBlur?.(event);
|
|
7168
|
+
},
|
|
7080
7169
|
...props,
|
|
7081
7170
|
children: [
|
|
7082
7171
|
Icon ? /* @__PURE__ */ jsx46(
|
|
@@ -8586,6 +8675,7 @@ export {
|
|
|
8586
8675
|
DialogClose,
|
|
8587
8676
|
DialogContent,
|
|
8588
8677
|
DialogDescription,
|
|
8678
|
+
DialogEyebrow,
|
|
8589
8679
|
DialogFooter,
|
|
8590
8680
|
DialogHeader,
|
|
8591
8681
|
DialogOverlay,
|