@olundot/ui 0.10.2 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +145 -0
- package/README.md +1 -1
- package/dist/index.d.ts +199 -87
- package/dist/index.js +1951 -1657
- package/dist/tokens.css +9 -4
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ClassValue } from 'clsx';
|
|
2
2
|
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
3
3
|
import * as React from 'react';
|
|
4
|
-
import { SVGProps } from 'react';
|
|
4
|
+
import { HTMLAttributes, ReactNode, SVGProps } from 'react';
|
|
5
5
|
import { VariantProps } from 'class-variance-authority';
|
|
6
6
|
import { LucideIcon } from 'lucide-react';
|
|
7
7
|
import { Select as Select$1, Label as Label$1, Switch as Switch$1, Tabs as Tabs$1, DropdownMenu as DropdownMenu$1, Dialog as Dialog$1, Separator as Separator$1, Avatar as Avatar$1, Tooltip as Tooltip$1, Popover as Popover$1, Checkbox as Checkbox$1, RadioGroup as RadioGroup$1, ScrollArea as ScrollArea$1 } from 'radix-ui';
|
|
@@ -84,9 +84,9 @@ type InputSizeLegacy = "xs" | "sm" | "md" | "lg" | "default";
|
|
|
84
84
|
interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "size">, VariantProps<typeof inputVariants> {
|
|
85
85
|
/**
|
|
86
86
|
* Field height preset. Replaces `inputSize` (deprecated).
|
|
87
|
-
* - sm:
|
|
88
|
-
* - md:
|
|
89
|
-
* - lg:
|
|
87
|
+
* - sm: 30px (compact toolbar/search)
|
|
88
|
+
* - md: 32px (default form field)
|
|
89
|
+
* - lg: 36px (prominent)
|
|
90
90
|
*/
|
|
91
91
|
size?: InputSize;
|
|
92
92
|
/**
|
|
@@ -141,32 +141,23 @@ interface FileUploadZoneProps extends Omit<React.LabelHTMLAttributes<HTMLLabelEl
|
|
|
141
141
|
}
|
|
142
142
|
declare const FileUploadZone: React.ForwardRefExoticComponent<FileUploadZoneProps & React.RefAttributes<HTMLLabelElement>>;
|
|
143
143
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
variant?:
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
interface AlertProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title' | 'children'>, VariantProps<typeof alertVariants> {
|
|
153
|
-
title?: React.ReactNode;
|
|
154
|
-
children: React.ReactNode;
|
|
155
|
-
icon?: React.ReactNode;
|
|
144
|
+
type AlertVariant = 'info' | 'success' | 'warning' | 'error';
|
|
145
|
+
type AlertEmphasis = 'subtle' | 'strong';
|
|
146
|
+
type InlineAlertSurface = 'filled' | 'plain';
|
|
147
|
+
interface AlertProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title' | 'children'> {
|
|
148
|
+
variant?: AlertVariant;
|
|
149
|
+
emphasis?: AlertEmphasis;
|
|
150
|
+
title?: ReactNode;
|
|
151
|
+
children: ReactNode;
|
|
156
152
|
onDismiss?: () => void;
|
|
157
153
|
}
|
|
158
|
-
interface InlineAlertProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'>, VariantProps<typeof inlineAlertVariants> {
|
|
159
|
-
children: React.ReactNode;
|
|
160
|
-
icon?: React.ReactNode;
|
|
161
|
-
}
|
|
162
154
|
declare const Alert: React.ForwardRefExoticComponent<AlertProps & React.RefAttributes<HTMLDivElement>>;
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
*/
|
|
155
|
+
interface InlineAlertProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
|
|
156
|
+
variant?: AlertVariant;
|
|
157
|
+
emphasis?: AlertEmphasis;
|
|
158
|
+
surface?: InlineAlertSurface;
|
|
159
|
+
children: ReactNode;
|
|
160
|
+
}
|
|
170
161
|
declare const InlineAlert: React.ForwardRefExoticComponent<InlineAlertProps & React.RefAttributes<HTMLDivElement>>;
|
|
171
162
|
|
|
172
163
|
declare const textareaVariants: (props?: ({
|
|
@@ -267,9 +258,9 @@ interface SelectProps extends Omit<React.ComponentPropsWithoutRef<typeof Select$
|
|
|
267
258
|
"aria-invalid"?: React.AriaAttributes["aria-invalid"];
|
|
268
259
|
/**
|
|
269
260
|
* Field height preset.
|
|
270
|
-
* - sm:
|
|
271
|
-
* - md:
|
|
272
|
-
* - lg:
|
|
261
|
+
* - sm: 30px (compact toolbar/filter)
|
|
262
|
+
* - md: 32px (default, matches Input density)
|
|
263
|
+
* - lg: 36px (prominent)
|
|
273
264
|
*/
|
|
274
265
|
size?: SelectSize;
|
|
275
266
|
/**
|
|
@@ -325,11 +316,11 @@ declare const formFieldVariants: (props?: ({
|
|
|
325
316
|
* @deprecated Use `<Label>` primitive instead. This className alias is kept for
|
|
326
317
|
* 1 cycle (0.2.0 → 0.3.0 removal) for raw label patterns.
|
|
327
318
|
*/
|
|
328
|
-
declare const formFieldLabelClassName = "pl-[var(--space-
|
|
329
|
-
declare const formFieldRequiredClassName = "ml-[2px] text-[var(--semantic-error,var(--error))]";
|
|
319
|
+
declare const formFieldLabelClassName = "pl-[var(--space-1)] pb-[var(--space-1)] text-body-sm font-medium leading-snug text-text-secondary";
|
|
320
|
+
declare const formFieldRequiredClassName = "ml-[2px] font-bold text-[var(--semantic-error,var(--error))]";
|
|
330
321
|
declare const formFieldDescriptionClassName = "text-[12px] leading-snug text-text-tertiary";
|
|
331
322
|
declare const formFieldErrorClassName = "text-[12px] leading-snug text-[var(--semantic-error,var(--error))]";
|
|
332
|
-
declare const formFieldControlStackClassName = "flex min-w-0 flex-col gap-[var(--space-
|
|
323
|
+
declare const formFieldControlStackClassName = "flex min-w-0 flex-col gap-[var(--space-1)]";
|
|
333
324
|
interface FormFieldProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
334
325
|
label: React.ReactNode;
|
|
335
326
|
required?: boolean;
|
|
@@ -425,14 +416,15 @@ declare function evaluatePermission(permission: string, state?: PermissionEvalua
|
|
|
425
416
|
declare function PermissionGuard({ permission, children, fallback, scope, permissions, disabledReason, }: PermissionGuardProps): react_jsx_runtime.JSX.Element | null;
|
|
426
417
|
|
|
427
418
|
declare const cardBaseVariants: (props?: ({
|
|
428
|
-
variant?: "default" | "elevated" | "notice" |
|
|
419
|
+
variant?: "default" | "elevated" | "notice" | null | undefined;
|
|
420
|
+
interactive?: boolean | null | undefined;
|
|
429
421
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
430
422
|
type CardVariant = NonNullable<VariantProps<typeof cardBaseVariants>["variant"]>;
|
|
431
423
|
interface CardVariantOptions extends VariantProps<typeof cardBaseVariants> {
|
|
432
424
|
surface?: SurfaceLevel;
|
|
433
425
|
className?: string;
|
|
434
426
|
}
|
|
435
|
-
declare function cardVariants({ variant, surface, className }?: CardVariantOptions): string;
|
|
427
|
+
declare function cardVariants({ variant, surface, interactive, className }?: CardVariantOptions): string;
|
|
436
428
|
interface CardProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardBaseVariants> {
|
|
437
429
|
/**
|
|
438
430
|
* Background level for the card surface. When omitted, `variant` chooses the
|
|
@@ -440,6 +432,12 @@ interface CardProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<t
|
|
|
440
432
|
* Selected and disabled states take precedence.
|
|
441
433
|
*/
|
|
442
434
|
surface?: SurfaceLevel;
|
|
435
|
+
/**
|
|
436
|
+
* Clickable affordance — orthogonal to `variant`. Adds hover lift (shadow +
|
|
437
|
+
* border-strong), a pointer cursor and the neutral focus-ring. Combine with
|
|
438
|
+
* any `variant` (default/elevated/notice).
|
|
439
|
+
*/
|
|
440
|
+
interactive?: boolean;
|
|
443
441
|
selected?: boolean;
|
|
444
442
|
disabled?: boolean;
|
|
445
443
|
}
|
|
@@ -493,12 +491,51 @@ interface PageHeaderProps extends Omit<React.HTMLAttributes<HTMLElement>, "title
|
|
|
493
491
|
breadcrumb?: React.ReactNode;
|
|
494
492
|
back?: React.ReactNode;
|
|
495
493
|
title: React.ReactNode;
|
|
494
|
+
headingLevel?: 1 | 2 | 3 | 4 | 5 | 6;
|
|
496
495
|
subtitle?: React.ReactNode;
|
|
497
496
|
meta?: React.ReactNode;
|
|
498
497
|
actions?: React.ReactNode;
|
|
499
498
|
}
|
|
500
499
|
declare const PageHeader: React.ForwardRefExoticComponent<PageHeaderProps & React.RefAttributes<HTMLElement>>;
|
|
501
500
|
|
|
501
|
+
interface BreadcrumbItem {
|
|
502
|
+
label: React.ReactNode;
|
|
503
|
+
href?: string;
|
|
504
|
+
onClick?: () => void;
|
|
505
|
+
}
|
|
506
|
+
interface BreadcrumbProps extends React.HTMLAttributes<HTMLElement> {
|
|
507
|
+
items: BreadcrumbItem[];
|
|
508
|
+
/** Max items before collapsing to root + ellipsis + tail 2. Default: 4 */
|
|
509
|
+
maxItems?: number;
|
|
510
|
+
}
|
|
511
|
+
declare const Breadcrumb: React.ForwardRefExoticComponent<BreadcrumbProps & React.RefAttributes<HTMLElement>>;
|
|
512
|
+
|
|
513
|
+
interface DataLayoutProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {
|
|
514
|
+
/** Top block — typically a PageHeader. Owns the page's single heading and
|
|
515
|
+
* page-level actions. */
|
|
516
|
+
header: React.ReactNode;
|
|
517
|
+
/** Filter row — typically a FilterToolbar (search · filters · result summary). */
|
|
518
|
+
toolbar?: React.ReactNode;
|
|
519
|
+
/** The list body — typically a DataTable or any list/grid. */
|
|
520
|
+
children: React.ReactNode;
|
|
521
|
+
/** Footer row — typically a Pagination component. */
|
|
522
|
+
footer?: React.ReactNode;
|
|
523
|
+
/** Floating selection bar — typically a BulkActionBar. Rendered as a sticky
|
|
524
|
+
* overlay inside the data region so it never displaces the table layout.
|
|
525
|
+
* The BulkActionBar itself self-hides at count 0, so this slot can always
|
|
526
|
+
* be set. */
|
|
527
|
+
bulkBar?: React.ReactNode;
|
|
528
|
+
}
|
|
529
|
+
/**
|
|
530
|
+
* DataLayout — the standard list/table page scaffold. Pure layout, no state.
|
|
531
|
+
* Arranges: PageHeader → FilterToolbar → DataTable → Pagination, with a
|
|
532
|
+
* BulkActionBar floating at the bottom of the data region on selection.
|
|
533
|
+
*
|
|
534
|
+
* The parent owns all state (query, filters, page, selectedIds); DataLayout
|
|
535
|
+
* only standardises placement and spacing so every table page feels identical.
|
|
536
|
+
*/
|
|
537
|
+
declare const DataLayout: React.ForwardRefExoticComponent<DataLayoutProps & React.RefAttributes<HTMLDivElement>>;
|
|
538
|
+
|
|
502
539
|
type WizardStepState = "upcoming" | "current" | "complete";
|
|
503
540
|
interface WizardStep {
|
|
504
541
|
id: string;
|
|
@@ -661,11 +698,6 @@ interface DataTableSort {
|
|
|
661
698
|
key: string;
|
|
662
699
|
dir: 'asc' | 'desc';
|
|
663
700
|
}
|
|
664
|
-
interface DataTableBulkAction {
|
|
665
|
-
label: React.ReactNode;
|
|
666
|
-
onClick: (ids: Set<string>) => void;
|
|
667
|
-
variant?: 'default' | 'destructive';
|
|
668
|
-
}
|
|
669
701
|
interface DataTableProps<T> extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'>, VariantProps<typeof dataTableVariants> {
|
|
670
702
|
columns: DataTableColumn<T>[];
|
|
671
703
|
data: T[];
|
|
@@ -673,19 +705,17 @@ interface DataTableProps<T> extends Omit<React.HTMLAttributes<HTMLDivElement>, '
|
|
|
673
705
|
selectable?: boolean;
|
|
674
706
|
selectedIds?: Set<string>;
|
|
675
707
|
onSelectionChange?: (ids: Set<string>) => void;
|
|
676
|
-
selectionBar?: 'top' | 'none';
|
|
677
708
|
activeRowId?: string;
|
|
678
709
|
onRowContextMenu?: (rowId: string, event: React.MouseEvent) => void;
|
|
679
710
|
sortBy?: DataTableSort;
|
|
680
711
|
onSortChange?: (key: string, dir: 'asc' | 'desc' | null) => void;
|
|
681
712
|
loading?: boolean;
|
|
682
713
|
emptyState?: React.ReactNode;
|
|
683
|
-
bulkActions?: DataTableBulkAction[];
|
|
684
714
|
rowHref?: (row: T) => string;
|
|
685
715
|
skeletonRowCount?: number;
|
|
686
716
|
/**
|
|
687
|
-
* Background level for the table container. Header, selected rows,
|
|
688
|
-
*
|
|
717
|
+
* Background level for the table container. Header, selected rows, loading,
|
|
718
|
+
* and empty states keep their own state styling.
|
|
689
719
|
*/
|
|
690
720
|
surface?: SurfaceLevel;
|
|
691
721
|
}
|
|
@@ -749,7 +779,22 @@ interface BulkActionBarProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
749
779
|
onClear: () => void;
|
|
750
780
|
emptyHint?: React.ReactNode;
|
|
751
781
|
}
|
|
752
|
-
|
|
782
|
+
/**
|
|
783
|
+
* OLUN BulkActionBar — floating pill for multi-select table/list actions.
|
|
784
|
+
*
|
|
785
|
+
* Low-chrome by design: actions are borderless text/icon buttons separated by
|
|
786
|
+
* hairline dividers — not filled Button components. Destructive actions read as
|
|
787
|
+
* error-toned text (var(--error)), not a red filled button. Two dividers are
|
|
788
|
+
* always rendered: count↔actions and actions↔clear.
|
|
789
|
+
*
|
|
790
|
+
* @example
|
|
791
|
+
* <BulkActionBar count={sel.size} onClear={clear}
|
|
792
|
+
* actions={[
|
|
793
|
+
* { key: "archive", label: "보관", icon: Archive, onClick: archive },
|
|
794
|
+
* { key: "del", label: "삭제", variant: "destructive", onClick: confirmDelete },
|
|
795
|
+
* ]} />
|
|
796
|
+
*/
|
|
797
|
+
declare function BulkActionBar({ count, actions, onClear, emptyHint, className, style, ...props }: BulkActionBarProps): react_jsx_runtime.JSX.Element | null;
|
|
753
798
|
|
|
754
799
|
declare const Dialog: React.FC<Dialog$1.DialogProps>;
|
|
755
800
|
declare const DialogTrigger: React.ForwardRefExoticComponent<Dialog$1.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -828,6 +873,7 @@ declare function SheetContent({ className, children, side, mobileSide, motion, s
|
|
|
828
873
|
motion?: SheetMotionConfig | false;
|
|
829
874
|
showCloseButton?: boolean;
|
|
830
875
|
}): react_jsx_runtime.JSX.Element;
|
|
876
|
+
declare function SheetBody({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
831
877
|
declare function SheetHeader({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
832
878
|
declare function SheetFooter({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
833
879
|
declare function SheetTitle({ className, ...props }: React.ComponentProps<typeof Dialog$1.Title>): react_jsx_runtime.JSX.Element;
|
|
@@ -901,54 +947,63 @@ declare const PopoverContent: React.ForwardRefExoticComponent<PopoverContentProp
|
|
|
901
947
|
*/
|
|
902
948
|
declare const PopoverArrow: React.ForwardRefExoticComponent<Omit<Popover$1.PopoverArrowProps & React.RefAttributes<SVGSVGElement>, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
903
949
|
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
tone?:
|
|
907
|
-
size?: "xs" | "sm" | "md" | null | undefined;
|
|
908
|
-
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
909
|
-
declare const badgeDotVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
|
|
910
|
-
type BadgeVariant = NonNullable<VariantProps<typeof badgeVariants>['variant']>;
|
|
911
|
-
type BadgeTone = NonNullable<VariantProps<typeof badgeVariants>['tone']>;
|
|
912
|
-
type BadgeSize = NonNullable<VariantProps<typeof badgeVariants>['size']>;
|
|
913
|
-
interface BadgeProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'color'>, VariantProps<typeof badgeVariants> {
|
|
914
|
-
showDot?: boolean;
|
|
915
|
-
disabled?: boolean;
|
|
950
|
+
type BadgeTone = 'error' | 'warning' | 'info' | 'success' | 'neutral' | 'brand';
|
|
951
|
+
interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
952
|
+
tone?: BadgeTone;
|
|
916
953
|
}
|
|
917
954
|
declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
|
|
918
955
|
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
intent?: "brand" | "muted" | "warning" | "success" | "neutral" | "danger" | null | undefined;
|
|
925
|
-
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
926
|
-
type TwoTierBadgeIntent = NonNullable<VariantProps<typeof twoTierBadgeLineVariants>["intent"]>;
|
|
927
|
-
interface TwoTierBadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof twoTierBadgeVariants> {
|
|
956
|
+
type TwoTierBadgeTone = 'neutral' | 'info' | 'success' | 'warning' | 'error';
|
|
957
|
+
type TwoTierBadgeEmphasis = 'subtle' | 'strong';
|
|
958
|
+
type TwoTierBadgeSize = 'xs' | 'sm' | 'md';
|
|
959
|
+
interface TwoTierBadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
960
|
+
/** Lead facet — the headline segment (type, state, label). */
|
|
928
961
|
primary: React.ReactNode;
|
|
962
|
+
/** Trailing qualifier segment (source, reason, count). Omit for a single-segment badge. */
|
|
929
963
|
secondary?: React.ReactNode;
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
964
|
+
/** Semantic role — colors the LEAD segment only; the qualifier stays neutral. Brand lime is never used. */
|
|
965
|
+
tone?: TwoTierBadgeTone;
|
|
966
|
+
/** Weight axis (mirrors StatusBadge): `subtle` outlined pill, `strong` tinted lead fill. */
|
|
967
|
+
emphasis?: TwoTierBadgeEmphasis;
|
|
968
|
+
/** xs · sm (default) · md — padding + text + dot scale. */
|
|
969
|
+
size?: TwoTierBadgeSize;
|
|
970
|
+
/** Leading status dot on the lead segment (default false). Hollow ring for neutral. */
|
|
971
|
+
showDot?: boolean;
|
|
934
972
|
}
|
|
935
|
-
|
|
973
|
+
/**
|
|
974
|
+
* OLUN TwoTierBadge — carries TWO related facets in ONE horizontal pill: a
|
|
975
|
+
* `primary` lead segment and an optional `secondary` qualifier, split by a
|
|
976
|
+
* hairline vertical divider (유형│출처, 상태│사유, 완료│312명). Shares the
|
|
977
|
+
* Badge/StatusBadge/Chip grammar: full-pill shape, `--font-sans`, the same 5
|
|
978
|
+
* semantic roles (`tone`) and the `subtle`/`strong` emphasis axis. `tone` colors
|
|
979
|
+
* the lead segment only; the qualifier stays neutral and the brand lime is never
|
|
980
|
+
* spent here. With no `secondary` it degrades to a plain semantic pill — prefer
|
|
981
|
+
* StatusBadge for pure state. Forwards its ref.
|
|
982
|
+
*
|
|
983
|
+
* @example
|
|
984
|
+
* <TwoTierBadge primary="객관식" secondary="순환기내과" />
|
|
985
|
+
* <TwoTierBadge primary="반려" tone="error" emphasis="strong" secondary="중복 문항" />
|
|
986
|
+
*/
|
|
987
|
+
declare const TwoTierBadge: React.ForwardRefExoticComponent<TwoTierBadgeProps & React.RefAttributes<HTMLSpanElement>>;
|
|
936
988
|
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
989
|
+
type StatusBadgeStatus = 'active' | 'archived' | 'success' | 'warning' | 'error' | 'info' | 'pending';
|
|
990
|
+
type StatusBadgeEmphasis = 'subtle' | 'strong';
|
|
991
|
+
type StatusBadgeSize = 'xs' | 'sm' | 'md';
|
|
992
|
+
type SemanticRole = 'error' | 'warning' | 'info' | 'success' | 'neutral';
|
|
993
|
+
interface StatusBadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
994
|
+
status?: StatusBadgeStatus;
|
|
995
|
+
emphasis?: StatusBadgeEmphasis;
|
|
996
|
+
size?: StatusBadgeSize;
|
|
944
997
|
showDot?: boolean;
|
|
945
|
-
/**
|
|
946
|
-
* Dot pulse animation. Use the default live cue for current/active states and
|
|
947
|
-
* `pulse={false}` for historical or static status labels.
|
|
948
|
-
* `motion-reduce` environments automatically disable the animation.
|
|
949
|
-
*/
|
|
950
998
|
pulse?: boolean;
|
|
951
999
|
}
|
|
1000
|
+
/**
|
|
1001
|
+
* Read-only state indicator. Two independent axes: `status` picks the semantic
|
|
1002
|
+
* ROLE (color), `emphasis` picks the WEIGHT (subtle vs strong). subtle (default)
|
|
1003
|
+
* keeps a neutral surface with only the dot + text in role color; strong adds a
|
|
1004
|
+
* semantic tinted fill — reserve for must-notice cases. The text label is
|
|
1005
|
+
* mandatory (WCAG 1.4.1); terminal/neutral states use a hollow ring dot.
|
|
1006
|
+
*/
|
|
952
1007
|
declare const StatusBadge: React.ForwardRefExoticComponent<StatusBadgeProps & React.RefAttributes<HTMLSpanElement>>;
|
|
953
1008
|
|
|
954
1009
|
declare const notificationBadgeVariants: (props?: ({
|
|
@@ -1113,9 +1168,53 @@ interface PaginationProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onCha
|
|
|
1113
1168
|
onPageSizeChange?: (pageSize: number) => void;
|
|
1114
1169
|
totalLabel?: (total: number) => React.ReactNode;
|
|
1115
1170
|
pageSizeLabel?: string;
|
|
1171
|
+
/**
|
|
1172
|
+
* When false, the page-size picker is omitted from the pagination bar.
|
|
1173
|
+
* Use this when you hoist a `<PageSizeSelect />` into the table's top toolbar.
|
|
1174
|
+
* Default true.
|
|
1175
|
+
*/
|
|
1176
|
+
showPageSize?: boolean;
|
|
1116
1177
|
}
|
|
1117
1178
|
declare const Pagination: React.ForwardRefExoticComponent<PaginationProps & React.RefAttributes<HTMLElement>>;
|
|
1118
1179
|
|
|
1180
|
+
type PageSizeSelectSize = 'standard' | 'compact';
|
|
1181
|
+
interface PageSizeSelectProps {
|
|
1182
|
+
/** Current items-per-page value. */
|
|
1183
|
+
value: number;
|
|
1184
|
+
onChange: (pageSize: number) => void;
|
|
1185
|
+
/** Available page-size choices. Default [10, 20, 50, 100]. */
|
|
1186
|
+
options?: readonly number[];
|
|
1187
|
+
/**
|
|
1188
|
+
* Leading label rendered before the select. Pass null to hide.
|
|
1189
|
+
* Default "페이지당".
|
|
1190
|
+
*/
|
|
1191
|
+
label?: React.ReactNode;
|
|
1192
|
+
/** Unit suffix appended to each option number. Default "개". */
|
|
1193
|
+
unit?: string;
|
|
1194
|
+
/**
|
|
1195
|
+
* Control height preset.
|
|
1196
|
+
* - standard: 32px (default, standalone toolbar)
|
|
1197
|
+
* - compact: 30px (embedded in pagination bar)
|
|
1198
|
+
*/
|
|
1199
|
+
size?: PageSizeSelectSize;
|
|
1200
|
+
disabled?: boolean;
|
|
1201
|
+
id?: string;
|
|
1202
|
+
'aria-label'?: string;
|
|
1203
|
+
className?: string;
|
|
1204
|
+
}
|
|
1205
|
+
/**
|
|
1206
|
+
* Standalone page-size picker for table/list toolbars.
|
|
1207
|
+
* Pair with `<Pagination showPageSize={false} />` to avoid duplication.
|
|
1208
|
+
*
|
|
1209
|
+
* @example
|
|
1210
|
+
* // top toolbar (right side):
|
|
1211
|
+
* <PageSizeSelect value={pageSize} onChange={setPageSize} />
|
|
1212
|
+
* // bottom:
|
|
1213
|
+
* <Pagination total={total} page={page} pageSize={pageSize}
|
|
1214
|
+
* onPageChange={setPage} showPageSize={false} />
|
|
1215
|
+
*/
|
|
1216
|
+
declare function PageSizeSelect({ value, onChange, options, label, unit, size, disabled, id, 'aria-label': ariaLabel, className, }: PageSizeSelectProps): react_jsx_runtime.JSX.Element;
|
|
1217
|
+
|
|
1119
1218
|
declare const modeToggleVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
|
|
1120
1219
|
declare const modeToggleItemVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
|
|
1121
1220
|
interface ModeToggleOption<T extends string> {
|
|
@@ -1175,7 +1274,10 @@ interface ToastAction {
|
|
|
1175
1274
|
}
|
|
1176
1275
|
interface ToastOptions {
|
|
1177
1276
|
message: string;
|
|
1277
|
+
/** Optional secondary description line (muted). */
|
|
1278
|
+
description?: string;
|
|
1178
1279
|
variant?: ToastVariant;
|
|
1280
|
+
/** Auto-dismiss ms. Default 4000 (7000 for error). Infinity = sticky. */
|
|
1179
1281
|
duration?: number;
|
|
1180
1282
|
action?: ToastAction;
|
|
1181
1283
|
}
|
|
@@ -1185,9 +1287,9 @@ interface ToastItem extends ToastOptions {
|
|
|
1185
1287
|
interface ToastRootProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children' | 'id'>, ToastItem {
|
|
1186
1288
|
onClose?: () => void;
|
|
1187
1289
|
}
|
|
1290
|
+
declare function getToastDuration(options: ToastOptions): number;
|
|
1188
1291
|
type ToastListener = (items: ToastItem[]) => void;
|
|
1189
1292
|
declare function limitToasts(items: ToastItem[], max?: number): ToastItem[];
|
|
1190
|
-
declare function getToastDuration(options: ToastOptions): number;
|
|
1191
1293
|
declare function createToast(options: ToastOptions): string;
|
|
1192
1294
|
declare const toast: {
|
|
1193
1295
|
show: typeof createToast;
|
|
@@ -1198,6 +1300,16 @@ declare const toast: {
|
|
|
1198
1300
|
dismiss(id: string): void;
|
|
1199
1301
|
subscribe(listener: ToastListener): () => void;
|
|
1200
1302
|
};
|
|
1303
|
+
/** Capitalized alias — the canonical imperative API on the DS namespace (`Toast.success(...)`). */
|
|
1304
|
+
declare const Toast: {
|
|
1305
|
+
show: typeof createToast;
|
|
1306
|
+
success(message: string, options?: Omit<ToastOptions, "message" | "variant">): string;
|
|
1307
|
+
error(message: string, options?: Omit<ToastOptions, "message" | "variant">): string;
|
|
1308
|
+
warning(message: string, options?: Omit<ToastOptions, "message" | "variant">): string;
|
|
1309
|
+
info(message: string, options?: Omit<ToastOptions, "message" | "variant">): string;
|
|
1310
|
+
dismiss(id: string): void;
|
|
1311
|
+
subscribe(listener: ToastListener): () => void;
|
|
1312
|
+
};
|
|
1201
1313
|
declare const ToastRoot: React.ForwardRefExoticComponent<ToastRootProps & React.RefAttributes<HTMLDivElement>>;
|
|
1202
1314
|
declare const ToastViewport: React.ForwardRefExoticComponent<React.OlHTMLAttributes<HTMLOListElement> & React.RefAttributes<HTMLOListElement>>;
|
|
1203
1315
|
interface ToastProviderProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
@@ -1426,8 +1538,8 @@ declare function TreeView<T extends TreeNode>({ nodes, selectedId, selectionAria
|
|
|
1426
1538
|
/**
|
|
1427
1539
|
* OLUN 브랜드 로고.
|
|
1428
1540
|
*
|
|
1429
|
-
* - symbol: O 원형 테두리 + 우하단 accent-
|
|
1430
|
-
* - wordmark: "OLUN" + 마지막 "." 은 accent
|
|
1541
|
+
* - symbol: O 원형 테두리 + 우하단 accent-pop 작은 circle
|
|
1542
|
+
* - wordmark: "OLUN" + 마지막 "." 은 accent 색상
|
|
1431
1543
|
*
|
|
1432
1544
|
* 레퍼런스: apps/web/docs/wireframes/ref/shell-wireframe.html Topbar 브랜드 영역.
|
|
1433
1545
|
*/
|
|
@@ -1471,4 +1583,4 @@ interface OrganizationLogoProps extends Omit<SVGProps<SVGSVGElement>, "width" |
|
|
|
1471
1583
|
}
|
|
1472
1584
|
declare function OrganizationLogo({ organization, size, className, style, role, "aria-label": ariaLabel, "aria-hidden": ariaHidden, ...props }: OrganizationLogoProps): react_jsx_runtime.JSX.Element;
|
|
1473
1585
|
|
|
1474
|
-
export { ActionFooter, type ActionFooterAction, type ActionFooterProps, type ActionFooterStatus, Alert, type AlertProps, type AlertVariant, Avatar, AvatarFallback, type AvatarFallbackProps, AvatarImage, Badge, type BadgeProps, type
|
|
1586
|
+
export { ActionFooter, type ActionFooterAction, type ActionFooterProps, type ActionFooterStatus, Alert, type AlertEmphasis, type AlertProps, type AlertVariant, Avatar, AvatarFallback, type AvatarFallbackProps, AvatarImage, Badge, type BadgeProps, type BadgeTone, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, 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, DataLayout, type DataLayoutProps, DataTable, 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, type InlineAlertSurface, 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, PageSizeSelect, type PageSizeSelectProps, type PageSizeSelectSize, 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, type SemanticRole, Separator, type SetOlunThemeOptions, Sheet, SheetBody, 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 StatusBadgeEmphasis, type StatusBadgeProps, type StatusBadgeSize, 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, Toast, 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 TwoTierBadgeEmphasis, type TwoTierBadgeProps, type TwoTierBadgeSize, type TwoTierBadgeTone, type UseOlunThemeValue, WizardLayout, type WizardLayoutProps, type WizardStep, type WizardStepState, actionFooterStatusVariants, actionFooterVariants, 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, inputMessageVariants, inputVariants, limitToasts, modeToggleItemVariants, modeToggleVariants, notificationBadgeVariants, otpCellVariants, otpFieldGroupVariants, otpFieldMessageVariants, otpFieldVariants, paginationControlVariants, paginationVariants, radioControlVariants, radioGroupVariants, radioVariants, searchFieldInputVariants, searchFieldVariants, selectMessageVariants, selectVariants, setOlunTheme, skeletonVariants, spinnerVariants, tabsBadgeVariants, tabsListVariants, tabsRootVariants, tabsTriggerVariants, textareaMessageVariants, textareaVariants, toast, toastVariants, toastViewportVariants, treeItemRowVariants, treeViewVariants, useOlunTheme, usePermission };
|