@olundot/ui 0.12.0 → 0.14.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 CHANGED
@@ -1,5 +1,102 @@
1
1
  # @olundot/ui
2
2
 
3
+ ## 0.14.0
4
+
5
+ ### Minor Changes
6
+
7
+ - DataTable: wrap the loading skeleton and empty state in `role="rowgroup"` / `role="row"` / `role="cell"` structure so `role="table"` only has permitted children — fixes the `aria-required-children` violation (WCAG 1.3.1, axe Critical). Same pattern the data rows already used; visuals and `data-slot` markers are unchanged. (#56, #57)
8
+ - DetailLayout: wire tab triggers to their panels with a real `tab`/`tabpanel` contract — `aria-controls` targets, `role="tabpanel"` panels (including wrapped panel children), and stable panel ids. Public API is unchanged. (#59, #60)
9
+
10
+ This is a compatibility-preserving accessibility stabilization release: no public API or visual contract changes from 0.13.0.
11
+
12
+ ## 0.13.0
13
+
14
+ ### Minor Changes
15
+
16
+ - 0f4ad55: Card: promote `interactive` from a variant to an orthogonal boolean prop (breaking)
17
+
18
+ `interactive` is removed from the `variant` enum and becomes a standalone `interactive?: boolean` prop. A clickable card can now combine with any resting surface — `default`, `elevated`, or `notice` — whereas the old `variant="interactive"` was mutually exclusive with those.
19
+
20
+ - **Before:** `<Card variant="interactive">`
21
+ - **After:** `<Card interactive>` (and now also `<Card variant="notice" interactive>`, `<Card variant="elevated" interactive>`).
22
+
23
+ Interactive hover lifts the shadow one step above the variant's resting depth: default/notice rest at `--shadow-2` → hover `--shadow-4`; elevated rests at `--shadow-4` → hover `--shadow-8`. The pointer cursor, hover border (`--border-strong`) / background (`--action-hover`), and neutral focus-ring (`--focus-ring`) are unchanged. `selected` / `disabled` relationships are unchanged.
24
+
25
+ `notice`'s accent border is retained; it is now documented under accent rationing role ③ (read-only emphasis context only), not treated as an exception.
26
+
27
+ - 8a0bfe3: Align Card with the v0.14 flattened surface model (breaking-visual)
28
+
29
+ After v0.14 flattening (card fill == page background), Card was the one component still leaning on removed lift affordances. Its rest/selected/focus handoff is now brought back in line. Public API (`variant`, `surface`, `selected`, `disabled`, slots) is unchanged — only rendered classes/visuals change.
30
+
31
+ - **Rest edge/radius:** base border `--border-subtle` → `--border` (0.10 alpha) and corner `--radius-md` (8px) → `--radius-lg` (12px, the "cards" radius). The `default` variant now carries a resting `--shadow-2` so a flat card still reads as a bounded surface.
32
+ - **Elevated:** `--shadow-2` → `--shadow-4`, keeping its meaning as the more-raised card now that `default` owns `--shadow-2`.
33
+ - **Selected:** fill `--bg-canvas` (a lift that vanished under flattening) → `--action-selected`, the same neutral surface-lift used by DataTable/TreeView selected rows; `--border-strong` retained.
34
+ - **Focus:** `interactive` focus drops the accent border + lime glow (`--border-accent` + `--glow-sm`) for the house neutral focus-ring convention (`--focus-ring` border + `0 0 0 1px --focus-ring` ring), matching Input. The dark `hover` accent glow is also removed (hover = `--border-strong` + `--shadow-2`), honoring accent rationing (accent is never used for action/focus surfaces).
35
+
36
+ `notice` (accent border) is unchanged.
37
+
38
+ - dca4628: Remove DataTable's built-in selection bar; consolidate bulk actions on BulkActionBar (breaking)
39
+
40
+ DataTable now exposes a single bulk-action surface. The internal top selection strip is deleted and all bulk actions move to the floating bottom `BulkActionBar` — matching the "one batch-action surface, no persistent chrome" baseline.
41
+
42
+ **Breaking — DataTable:**
43
+
44
+ - Removed the `selectionBar` (`'top' | 'none'`) and `bulkActions` props, the `DataTableBulkAction` type/export, and the built-in `data-slot="data-table-selection-bar"` strip (which always reserved a 48px row and showed a "선택된 행 없음" placeholder).
45
+ - **Kept** the selection mechanism: `selectable`, `selectedIds`, `onSelectionChange`, header select-all (indeterminate) + per-row checkboxes. The selected-count announcement is preserved as a visually-hidden `aria-live` region (`data-slot="data-table-selection-status"`), so there is no accessibility regression.
46
+ - Migration: drop `bulkActions`/`selectionBar` and render a sibling `<BulkActionBar count={selectedIds.size} onClear={…} actions={…} />`. See `docs/MIGRATION-0.13.0-to-0.14.0.md` §5.
47
+
48
+ **BulkActionBar hardening:**
49
+
50
+ - Bottom offset now respects the iOS safe area: `bottom: calc(var(--space-4) + env(safe-area-inset-bottom))`.
51
+ - Subtle entrance motion when it appears (`olun-bulk-action-bar-in`: translateY 8px + fade, `var(--dur-fast) var(--ease-out)`), opted out under `prefers-reduced-motion` via `motion-reduce:animate-none` + the global reduced-motion guard.
52
+ - Do not use on the same screen as `ActionFooter` — both occupy the bottom and overlap at `z-index` 1100 (documented, not enforced in code).
53
+
54
+ - 676476c: Align internal token references to v0.14 canonical names
55
+
56
+ `@olundot/ui` now references the canonical v0.14 token names directly instead of the pre-v0.14 aliases that survive in `@olundot/tokens`' compat layer. Public component APIs are unchanged; only the token names emitted in class strings/styles change.
57
+
58
+ - **Accent:** `--accent-fg` → `--accent`, `--accent-solid` → `--accent-pop`, `--accent-on-solid` → `--accent-on-fill` (button, chip, icon-button); two-tier-badge's legacy `text-accent-fg` utility class → `text-[var(--accent)]`.
59
+ - **Elevation:** `shadow-[var(--elevation-{1,2,4})]` → `shadow-[var(--shadow-{1,2,4})]` (card, confirm-dialog, form-modal, info-modal, mode-toggle, popover, sheet-drawer, toast, theme-fab); legacy `shadow-elevation-{2,8}` utility classes → `shadow-{2,8}` (dropdown-menu, dialog).
60
+ - **Motion:** `--duration-fast` → `--dur-fast` and `theme.ts`'s `var(--duration-${d})` template → an explicit `--dur-*`/literal mapping (mode-toggle, tabs, tree-view, `lib/theme.ts`). Sheet's public `easing` prop keeps its `standard/decel/accel/sharp/bounce` surface; its internal map now uses canonical `--ease-standard/--ease-in/--ease-out`, with `decel`/`sharp` still referencing the compat-frozen `--easing-decel`/`--easing-sharp` beziers (no canonical equivalent).
61
+ - **Semantic:** the `tokens.css` `@theme` block maps `--color-semantic-*` off `--semantic-*-fg` (was `--semantic-*`).
62
+
63
+ The canonical motion tokens carry the intended v0.14 re-tuning (fast/base/slow 150/200/300 → 120/180/260ms), so transition timings shift accordingly.
64
+
65
+ - 52714f9: Rewrite TwoTierBadge to the handoff horizontal-pill model (breaking)
66
+
67
+ TwoTierBadge moves from a vertical two-box stack with dual independent intents to the design-canonical **horizontal two-segment pill**: a `primary` lead segment and an optional `secondary` qualifier split by a hairline vertical divider, clipped to a full-round pill. It now shares the Badge/StatusBadge/Chip grammar.
68
+
69
+ **Breaking API change:**
70
+
71
+ - **Removed:** `primaryIntent`, `secondaryIntent`, `align`, `primaryClassName`, `secondaryClassName`, the `brand`/`muted` intents, and the `twoTierBadgeVariants` / `twoTierBadgeLineVariants` / `TwoTierBadgeIntent` exports.
72
+ - **Added:** a single `tone` axis (`neutral` · `info` · `success` · `warning` · `error`) that colors the **lead segment only** — the qualifier always stays neutral, and the brand lime is never spent here (accent rationing). Plus `emphasis` (`subtle`/`strong`, mirrors StatusBadge), `size` (`xs`/`sm`/`md`), and `showDot`. New type exports: `TwoTierBadgeTone`, `TwoTierBadgeEmphasis`, `TwoTierBadgeSize`.
73
+ - The root element is now a `<span>` (was `<div>`); `data-slot` names are unchanged (`two-tier-badge` / `-primary` / `-secondary`).
74
+
75
+ ### Before
76
+
77
+ ```tsx
78
+ <TwoTierBadge
79
+ primary="예약"
80
+ secondary="검토 필요"
81
+ primaryIntent="brand"
82
+ secondaryIntent="warning"
83
+ />
84
+ ```
85
+
86
+ ### After
87
+
88
+ ```tsx
89
+ <TwoTierBadge primary="예약" tone="info" secondary="검토 필요" />
90
+ <TwoTierBadge primary="반려" tone="error" emphasis="strong" secondary="중복 문항" />
91
+ ```
92
+
93
+ Map old intents to tone: `brand`→(drop, use `info`/neutral — lime is never used), `muted`→`neutral`, `danger`→`error`, `success`/`warning`/`info` unchanged. The old `secondaryIntent` has no equivalent — the qualifier is always neutral by design.
94
+
95
+ ### Patch Changes
96
+
97
+ - Updated dependencies [966c3f6]
98
+ - @olundot/tokens@0.14.0
99
+
3
100
  ## 0.12.0
4
101
 
5
102
  ### Minor Changes
package/README.md CHANGED
@@ -36,4 +36,4 @@ This beta package is extracted from the OLUN CBT/LMS shared UI implementation. A
36
36
 
37
37
  ## Accent Contract
38
38
 
39
- Filled accent buttons must pair `--accent-solid` for the background/border with `--accent-on-solid` for text and icons. `--accent-on-fill` remains a backward-compatible alias only and is not allowed in new `Button` source.
39
+ Primary and default buttons are monochrome: pair `--primary` for the background and border with `--primary-fg` for text and icons. Brand and opt-in accent fills use the canonical `--accent-pop` + `--accent-on-fill` pair. The pre-v0.14 names `--accent-solid` and `--accent-on-solid` remain deprecated compatibility aliases and must not be used in new component source.
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?: "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;
35
+ variant?: "default" | "primary" | "outline" | "ghost" | "danger" | "emergency" | "subtle" | "destructive" | "secondary" | "link" | null | undefined;
36
+ size?: "default" | "xs" | "sm" | "md" | "lg" | "xl" | "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, "variant" | "size" | "leadingIcon" | "trailingIcon" | "loading" | "children"> & {
57
+ declare const CopyButton: React.ForwardRefExoticComponent<Omit<ButtonProps, "size" | "variant" | "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?: "error" | "success" | "default" | null | undefined;
73
+ state?: "default" | "error" | "success" | 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?: "compact" | "default" | null | undefined;
122
+ size?: "default" | "compact" | 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?: "compact" | "default" | null | undefined;
126
+ size?: "default" | "compact" | 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;
@@ -166,7 +166,7 @@ declare const textareaVariants: (props?: ({
166
166
  surface?: SurfaceLevel | null | undefined;
167
167
  } & class_variance_authority_types.ClassProp) | undefined) => string;
168
168
  declare const textareaMessageVariants: (props?: ({
169
- state?: "error" | "success" | "default" | null | undefined;
169
+ state?: "default" | "error" | "success" | null | undefined;
170
170
  } & class_variance_authority_types.ClassProp) | undefined) => string;
171
171
  type TextareaState = NonNullable<VariantProps<typeof textareaMessageVariants>["state"]>;
172
172
  /** Canonical size type (0.2.0+). Use `size` prop with these values. */
@@ -221,7 +221,7 @@ declare const selectVariants: (props?: ({
221
221
  surface?: SurfaceLevel | null | undefined;
222
222
  } & class_variance_authority_types.ClassProp) | undefined) => string;
223
223
  declare const selectMessageVariants: (props?: ({
224
- state?: "error" | "success" | "default" | null | undefined;
224
+ state?: "default" | "error" | "success" | null | undefined;
225
225
  size?: "sm" | "md" | "lg" | null | undefined;
226
226
  } & class_variance_authority_types.ClassProp) | undefined) => string;
227
227
  type SelectState = NonNullable<VariantProps<typeof selectMessageVariants>["state"]>;
@@ -416,14 +416,15 @@ declare function evaluatePermission(permission: string, state?: PermissionEvalua
416
416
  declare function PermissionGuard({ permission, children, fallback, scope, permissions, disabledReason, }: PermissionGuardProps): react_jsx_runtime.JSX.Element | null;
417
417
 
418
418
  declare const cardBaseVariants: (props?: ({
419
- variant?: "default" | "elevated" | "notice" | "interactive" | null | undefined;
419
+ variant?: "default" | "elevated" | "notice" | null | undefined;
420
+ interactive?: boolean | null | undefined;
420
421
  } & class_variance_authority_types.ClassProp) | undefined) => string;
421
422
  type CardVariant = NonNullable<VariantProps<typeof cardBaseVariants>["variant"]>;
422
423
  interface CardVariantOptions extends VariantProps<typeof cardBaseVariants> {
423
424
  surface?: SurfaceLevel;
424
425
  className?: string;
425
426
  }
426
- declare function cardVariants({ variant, surface, className }?: CardVariantOptions): string;
427
+ declare function cardVariants({ variant, surface, interactive, className }?: CardVariantOptions): string;
427
428
  interface CardProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardBaseVariants> {
428
429
  /**
429
430
  * Background level for the card surface. When omitted, `variant` chooses the
@@ -431,6 +432,12 @@ interface CardProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<t
431
432
  * Selected and disabled states take precedence.
432
433
  */
433
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;
434
441
  selected?: boolean;
435
442
  disabled?: boolean;
436
443
  }
@@ -691,11 +698,6 @@ interface DataTableSort {
691
698
  key: string;
692
699
  dir: 'asc' | 'desc';
693
700
  }
694
- interface DataTableBulkAction {
695
- label: React.ReactNode;
696
- onClick: (ids: Set<string>) => void;
697
- variant?: 'default' | 'destructive';
698
- }
699
701
  interface DataTableProps<T> extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'>, VariantProps<typeof dataTableVariants> {
700
702
  columns: DataTableColumn<T>[];
701
703
  data: T[];
@@ -703,19 +705,17 @@ interface DataTableProps<T> extends Omit<React.HTMLAttributes<HTMLDivElement>, '
703
705
  selectable?: boolean;
704
706
  selectedIds?: Set<string>;
705
707
  onSelectionChange?: (ids: Set<string>) => void;
706
- selectionBar?: 'top' | 'none';
707
708
  activeRowId?: string;
708
709
  onRowContextMenu?: (rowId: string, event: React.MouseEvent) => void;
709
710
  sortBy?: DataTableSort;
710
711
  onSortChange?: (key: string, dir: 'asc' | 'desc' | null) => void;
711
712
  loading?: boolean;
712
713
  emptyState?: React.ReactNode;
713
- bulkActions?: DataTableBulkAction[];
714
714
  rowHref?: (row: T) => string;
715
715
  skeletonRowCount?: number;
716
716
  /**
717
- * Background level for the table container. Header, selected rows, active
718
- * selection bars, loading, and empty states keep their own state styling.
717
+ * Background level for the table container. Header, selected rows, loading,
718
+ * and empty states keep their own state styling.
719
719
  */
720
720
  surface?: SurfaceLevel;
721
721
  }
@@ -794,7 +794,7 @@ interface BulkActionBarProps extends React.HTMLAttributes<HTMLDivElement> {
794
794
  * { key: "del", label: "삭제", variant: "destructive", onClick: confirmDelete },
795
795
  * ]} />
796
796
  */
797
- declare function BulkActionBar({ count, actions, onClear, emptyHint, style, ...props }: BulkActionBarProps): react_jsx_runtime.JSX.Element | null;
797
+ declare function BulkActionBar({ count, actions, onClear, emptyHint, className, style, ...props }: BulkActionBarProps): react_jsx_runtime.JSX.Element | null;
798
798
 
799
799
  declare const Dialog: React.FC<Dialog$1.DialogProps>;
800
800
  declare const DialogTrigger: React.ForwardRefExoticComponent<Dialog$1.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
@@ -953,23 +953,38 @@ interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
953
953
  }
954
954
  declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
955
955
 
956
- declare const twoTierBadgeVariants: (props?: ({
957
- align?: "end" | "start" | "center" | null | undefined;
958
- } & class_variance_authority_types.ClassProp) | undefined) => string;
959
- declare const twoTierBadgeLineVariants: (props?: ({
960
- tier?: "primary" | "secondary" | null | undefined;
961
- intent?: "brand" | "muted" | "warning" | "success" | "neutral" | "danger" | null | undefined;
962
- } & class_variance_authority_types.ClassProp) | undefined) => string;
963
- type TwoTierBadgeIntent = NonNullable<VariantProps<typeof twoTierBadgeLineVariants>["intent"]>;
964
- 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). */
965
961
  primary: React.ReactNode;
962
+ /** Trailing qualifier segment (source, reason, count). Omit for a single-segment badge. */
966
963
  secondary?: React.ReactNode;
967
- primaryIntent?: TwoTierBadgeIntent;
968
- secondaryIntent?: TwoTierBadgeIntent;
969
- primaryClassName?: string;
970
- secondaryClassName?: string;
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;
971
972
  }
972
- declare const TwoTierBadge: React.ForwardRefExoticComponent<TwoTierBadgeProps & React.RefAttributes<HTMLDivElement>>;
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>>;
973
988
 
974
989
  type StatusBadgeStatus = 'active' | 'archived' | 'success' | 'warning' | 'error' | 'info' | 'pending';
975
990
  type StatusBadgeEmphasis = 'subtle' | 'strong';
@@ -1005,12 +1020,12 @@ declare const NotificationBadge: React.ForwardRefExoticComponent<NotificationBad
1005
1020
 
1006
1021
  declare const chipVariants: (props?: ({
1007
1022
  variant?: "filter" | "choice" | "removable" | "status-filter" | null | undefined;
1008
- tone?: "muted" | "accent" | "warning" | "success" | "neutral" | "danger" | null | undefined;
1023
+ tone?: "accent" | "danger" | "success" | "warning" | "neutral" | "muted" | null | undefined;
1009
1024
  size?: "sm" | "md" | "lg" | null | undefined;
1010
1025
  pressed?: boolean | null | undefined;
1011
1026
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1012
1027
  declare const chipCountVariants: (props?: ({
1013
- tone?: "muted" | "accent" | "warning" | "success" | "neutral" | "danger" | null | undefined;
1028
+ tone?: "accent" | "danger" | "success" | "warning" | "neutral" | "muted" | null | undefined;
1014
1029
  size?: "sm" | "md" | "lg" | null | undefined;
1015
1030
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1016
1031
  type ChipVariant = NonNullable<VariantProps<typeof chipVariants>["variant"]>;
@@ -1249,7 +1264,7 @@ interface ActionFooterProps extends Omit<React.HTMLAttributes<HTMLDivElement>, '
1249
1264
  declare const ActionFooter: React.ForwardRefExoticComponent<ActionFooterProps & React.RefAttributes<HTMLDivElement>>;
1250
1265
 
1251
1266
  declare const toastVariants: (props?: ({
1252
- variant?: "error" | "warning" | "info" | "success" | "default" | null | undefined;
1267
+ variant?: "default" | "error" | "success" | "info" | "warning" | null | undefined;
1253
1268
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1254
1269
  declare const toastViewportVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
1255
1270
  type ToastVariant = NonNullable<VariantProps<typeof toastVariants>['variant']>;
@@ -1303,19 +1318,19 @@ interface ToastProviderProps extends React.HTMLAttributes<HTMLDivElement> {
1303
1318
  declare function ToastProvider({ children, maxToasts, className, ...props }: ToastProviderProps): react_jsx_runtime.JSX.Element;
1304
1319
 
1305
1320
  declare const otpFieldVariants: (props?: ({
1306
- size?: "compact" | "default" | null | undefined;
1321
+ size?: "default" | "compact" | null | undefined;
1307
1322
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1308
1323
  declare const otpFieldGroupVariants: (props?: ({
1309
- size?: "compact" | "default" | null | undefined;
1324
+ size?: "default" | "compact" | null | undefined;
1310
1325
  fluid?: boolean | null | undefined;
1311
1326
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1312
1327
  declare const otpCellVariants: (props?: ({
1313
- size?: "compact" | "default" | null | undefined;
1328
+ size?: "default" | "compact" | null | undefined;
1314
1329
  fluid?: boolean | null | undefined;
1315
1330
  surface?: SurfaceLevel | null | undefined;
1316
1331
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1317
1332
  declare const otpFieldMessageVariants: (props?: ({
1318
- state?: "error" | "default" | null | undefined;
1333
+ state?: "default" | "error" | null | undefined;
1319
1334
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1320
1335
  type OTPFieldSize = NonNullable<VariantProps<typeof otpCellVariants>["size"]>;
1321
1336
  interface OTPFieldProps extends Omit<React.FieldsetHTMLAttributes<HTMLFieldSetElement>, "onChange" | "children" | "defaultValue" | "value">, VariantProps<typeof otpFieldVariants> {
@@ -1372,11 +1387,11 @@ declare const checkboxBoxVariants: (props?: ({
1372
1387
  size?: "sm" | "md" | null | undefined;
1373
1388
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1374
1389
  declare const checkboxGroupItemVariants: (props?: ({
1375
- appearance?: "card" | "plain" | null | undefined;
1390
+ appearance?: "plain" | "card" | null | undefined;
1376
1391
  density?: "compact" | "comfortable" | null | undefined;
1377
1392
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1378
1393
  declare const checkboxGroupBoxVariants: (props?: ({
1379
- appearance?: "card" | "plain" | null | undefined;
1394
+ appearance?: "plain" | "card" | null | undefined;
1380
1395
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1381
1396
  type CheckboxSize = NonNullable<VariantProps<typeof checkboxBoxVariants>["size"]>;
1382
1397
  type CheckboxCheckedState = React.ComponentProps<typeof Checkbox$1.Root>["checked"];
@@ -1401,7 +1416,7 @@ interface CheckboxProps extends Omit<React.ComponentPropsWithoutRef<typeof Check
1401
1416
  declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLButtonElement>>;
1402
1417
 
1403
1418
  declare const checkboxGroupVariants: (props?: ({
1404
- appearance?: "card" | "plain" | null | undefined;
1419
+ appearance?: "plain" | "card" | null | undefined;
1405
1420
  orientation?: "horizontal" | "vertical" | null | undefined;
1406
1421
  columns?: "one" | "two" | "three" | null | undefined;
1407
1422
  } & class_variance_authority_types.ClassProp) | undefined) => string;
@@ -1422,16 +1437,16 @@ interface CheckboxGroupProps extends Omit<React.HTMLAttributes<HTMLDivElement>,
1422
1437
  declare const CheckboxGroup: React.ForwardRefExoticComponent<CheckboxGroupProps & React.RefAttributes<HTMLDivElement>>;
1423
1438
 
1424
1439
  declare const radioGroupVariants: (props?: ({
1425
- appearance?: "card" | "plain" | null | undefined;
1440
+ appearance?: "plain" | "card" | null | undefined;
1426
1441
  orientation?: "horizontal" | "vertical" | null | undefined;
1427
1442
  columns?: "one" | "two" | "three" | null | undefined;
1428
1443
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1429
1444
  declare const radioVariants: (props?: ({
1430
- appearance?: "card" | "plain" | null | undefined;
1445
+ appearance?: "plain" | "card" | null | undefined;
1431
1446
  density?: "compact" | "comfortable" | null | undefined;
1432
1447
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1433
1448
  declare const radioControlVariants: (props?: ({
1434
- appearance?: "card" | "plain" | null | undefined;
1449
+ appearance?: "plain" | "card" | null | undefined;
1435
1450
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1436
1451
  type RadioGroupAppearance = NonNullable<VariantProps<typeof radioGroupVariants>["appearance"]>;
1437
1452
  type RadioGroupColumns = NonNullable<VariantProps<typeof radioGroupVariants>["columns"]>;
@@ -1523,8 +1538,8 @@ declare function TreeView<T extends TreeNode>({ nodes, selectedId, selectionAria
1523
1538
  /**
1524
1539
  * OLUN 브랜드 로고.
1525
1540
  *
1526
- * - symbol: O 원형 테두리 + 우하단 accent-solid 작은 circle
1527
- * - wordmark: "OLUN" + 마지막 "." 은 accent-fg 색상
1541
+ * - symbol: O 원형 테두리 + 우하단 accent-pop 작은 circle
1542
+ * - wordmark: "OLUN" + 마지막 "." 은 accent 색상
1528
1543
  *
1529
1544
  * 레퍼런스: apps/web/docs/wireframes/ref/shell-wireframe.html Topbar 브랜드 영역.
1530
1545
  */
@@ -1568,4 +1583,4 @@ interface OrganizationLogoProps extends Omit<SVGProps<SVGSVGElement>, "width" |
1568
1583
  }
1569
1584
  declare function OrganizationLogo({ organization, size, className, style, role, "aria-label": ariaLabel, "aria-hidden": ariaHidden, ...props }: OrganizationLogoProps): react_jsx_runtime.JSX.Element;
1570
1585
 
1571
- 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 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, 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 TwoTierBadgeIntent, type TwoTierBadgeProps, 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, twoTierBadgeLineVariants, twoTierBadgeVariants, useOlunTheme, usePermission };
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 };