@olundot/ui 0.10.2 → 0.12.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 +57 -0
- package/dist/index.d.ts +157 -60
- package/dist/index.js +1849 -1541
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,62 @@
|
|
|
1
1
|
# @olundot/ui
|
|
2
2
|
|
|
3
|
+
## 0.12.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- **v0.13.0 "dot-only reconcile"** — design↔repo drift reconciliation: dot-only status redesign, repo bug/a11y fixes, and four gap components.
|
|
8
|
+
|
|
9
|
+
**Tokens (additive)**
|
|
10
|
+
|
|
11
|
+
- Added `--semantic-{error|warning|info|success|neutral}-fg` (dot/text/border color, aliasing the existing role tokens) and `--semantic-neutral-bg`, across all theme blocks. These back the dot-only status model.
|
|
12
|
+
|
|
13
|
+
**UI — dot-only status redesign (BREAKING)**
|
|
14
|
+
|
|
15
|
+
Status surfaces now carry color on a leading dot + text only; the surface stays neutral in the default (`subtle`) emphasis. A second `emphasis` axis (`subtle | strong`) controls weight. Lucide status icons are removed — the dot is the signal.
|
|
16
|
+
|
|
17
|
+
- **Badge** — collapsed to a single `tone` axis (`error | warning | info | success | neutral | brand`). `tone="danger"` → `tone="error"`; the old `variant` axis (`semantic | vibrant | pill | …`) is removed (use `StatusBadge emphasis="strong"` for a tinted fill). `size`/`disabled` removed.
|
|
18
|
+
- **StatusBadge** — adds `emphasis` (default `subtle`) and `size`. `status="active"` now maps to **info (blue)** instead of success (green) so a live cue never reads as "done". Neutral/terminal states get a hollow-ring dot.
|
|
19
|
+
- **Alert / InlineAlert** — adds `emphasis` (default `error`→strong, else subtle); the `icon` override prop is removed (7px dot replaces it).
|
|
20
|
+
- **Toast** — adds a `description` line; `icon` removed; default duration 3000→4000ms (error 7000). Capitalized `Toast` namespace alongside the `toast` alias.
|
|
21
|
+
|
|
22
|
+
**UI — repo bug / a11y fixes**
|
|
23
|
+
|
|
24
|
+
- IconButton no longer emits `aria-pressed` on non-toggle buttons. CopyButton clears its pending revert timer on rapid re-click. ConfirmDialog uses `role="alertdialog"`. FileUploadZone error text gets `role="alert"`. OtpField gains a Korean cell `aria-label`, a neutral caret, and a required marker. Input/Textarea/Select labels use `--text-secondary`; required `*` markers are bold. Button gets a 2px focus ring, an active-press scale, and a loading width-freeze. Chip's removable `×` is a separately focusable button. DataTable reserves the sort-icon slot to prevent header shift. BulkActionBar is low-chrome (borderless text/icon actions + hairline dividers) with built-in hover/focus. Pagination renders a constant 7-slot page list. Sheet defaults `showCloseButton` to false and adds `SheetBody`.
|
|
25
|
+
|
|
26
|
+
**UI — new gap components**
|
|
27
|
+
|
|
28
|
+
- **Breadcrumb** — collapsing nav (`maxItems`, root + ellipsis + tail), `aria-current="page"`.
|
|
29
|
+
- **PageSizeSelect** — standalone items-per-page picker; Pagination gains `showPageSize` (default true) to opt out and avoid duplication.
|
|
30
|
+
- **DataLayout** — pure list/table page scaffold (header / toolbar / body / footer / floating bulk-bar slots).
|
|
31
|
+
- **PageHeader** — adds `headingLevel` (1–6, default 1) to demote the title tag in nested contexts without changing its look.
|
|
32
|
+
|
|
33
|
+
Migration guide: `docs/MIGRATION-0.12.0-to-0.13.0.md`.
|
|
34
|
+
|
|
35
|
+
### Patch Changes
|
|
36
|
+
|
|
37
|
+
- Updated dependencies
|
|
38
|
+
- @olundot/tokens@0.13.0
|
|
39
|
+
|
|
40
|
+
## 0.11.0
|
|
41
|
+
|
|
42
|
+
### Minor Changes
|
|
43
|
+
|
|
44
|
+
- 7b589b3: **v0.12.0 "Linear refresh"** — breaking visual + token redesign (light-first, near-monochrome, accent-rationed à la Linear).
|
|
45
|
+
|
|
46
|
+
- **Spacing rebased to the Tailwind v4 4px scale** (`--space-1`=4px … `--space-32`=128px). Legacy `--space-0-5` / `--space-1-5` removed. All `@olundot/ui` components were migrated by a value-preserving key shift, so rendered spacing is unchanged — only the token keys move (`--space-1`→`--space-2`, `--space-0-5`→`--space-1`, etc.).
|
|
47
|
+
- **Accent rationing (Linear-faithful)** — the signature lime/olive is reserved for the brand mark, text links, read-only signal dots (unread/new/live), and opt-in accent variants (badge/chip/icon-button accent tone); everything else is monochrome or neutral. `--primary` (near-black on light / near-white on dark) is the **monochrome fill** for the **primary CTA button**, checkbox/radio/switch checked states, and progress/loading. The **focus ring** (`--focus-ring`) is neutral — set to `--text-secondary` (light #3C4149 / dark #B4B8C0), not accent. **Selection/active** states (active tab, selected chip, current nav item, selected row) use a **neutral surface-lift** (`--action-selected` + `--border-strong` + foreground text), not an accent tint. Brand olive surfaces live on `bg-brand` only.
|
|
48
|
+
- **Radius squared up**: default `--radius-md` 12px→8px; `sm` 8→6, `lg` 16→12, `xl` 24→16, new `--radius-2xl` 24px.
|
|
49
|
+
- **Type scale reduced**: display 72→56, h1 56→40, h2 42→30, h3 32→24, h4 24→20, h5 20→17, body 16→15px. `--fs-h6` and `--fs-body-lg/md/sm` are kept as deprecated aliases mapping to the nearest new size.
|
|
50
|
+
- **Pretendard Variable is now the primary font** (self-hosted woff2 vendored into `dist/fonts/`), replacing the Inter-first stack. Inter is reserved for Latin subtitle/eyebrow flourishes and tabular numerals.
|
|
51
|
+
- Surfaces/text/borders re-tuned for a lighter near-monochrome light-first canvas; new `--gradient-app` / `--gradient-hairline` / `--scrim` atmosphere tokens; `--primary*`, `--accent-pop` added.
|
|
52
|
+
|
|
53
|
+
Migration guide: `docs/MIGRATION-0.11.0-to-0.12.0.md`.
|
|
54
|
+
|
|
55
|
+
### Patch Changes
|
|
56
|
+
|
|
57
|
+
- Updated dependencies [7b589b3]
|
|
58
|
+
- @olundot/tokens@0.12.0
|
|
59
|
+
|
|
3
60
|
## 0.10.2
|
|
4
61
|
|
|
5
62
|
### Patch Changes
|
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;
|
|
@@ -493,12 +484,51 @@ interface PageHeaderProps extends Omit<React.HTMLAttributes<HTMLElement>, "title
|
|
|
493
484
|
breadcrumb?: React.ReactNode;
|
|
494
485
|
back?: React.ReactNode;
|
|
495
486
|
title: React.ReactNode;
|
|
487
|
+
headingLevel?: 1 | 2 | 3 | 4 | 5 | 6;
|
|
496
488
|
subtitle?: React.ReactNode;
|
|
497
489
|
meta?: React.ReactNode;
|
|
498
490
|
actions?: React.ReactNode;
|
|
499
491
|
}
|
|
500
492
|
declare const PageHeader: React.ForwardRefExoticComponent<PageHeaderProps & React.RefAttributes<HTMLElement>>;
|
|
501
493
|
|
|
494
|
+
interface BreadcrumbItem {
|
|
495
|
+
label: React.ReactNode;
|
|
496
|
+
href?: string;
|
|
497
|
+
onClick?: () => void;
|
|
498
|
+
}
|
|
499
|
+
interface BreadcrumbProps extends React.HTMLAttributes<HTMLElement> {
|
|
500
|
+
items: BreadcrumbItem[];
|
|
501
|
+
/** Max items before collapsing to root + ellipsis + tail 2. Default: 4 */
|
|
502
|
+
maxItems?: number;
|
|
503
|
+
}
|
|
504
|
+
declare const Breadcrumb: React.ForwardRefExoticComponent<BreadcrumbProps & React.RefAttributes<HTMLElement>>;
|
|
505
|
+
|
|
506
|
+
interface DataLayoutProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {
|
|
507
|
+
/** Top block — typically a PageHeader. Owns the page's single heading and
|
|
508
|
+
* page-level actions. */
|
|
509
|
+
header: React.ReactNode;
|
|
510
|
+
/** Filter row — typically a FilterToolbar (search · filters · result summary). */
|
|
511
|
+
toolbar?: React.ReactNode;
|
|
512
|
+
/** The list body — typically a DataTable or any list/grid. */
|
|
513
|
+
children: React.ReactNode;
|
|
514
|
+
/** Footer row — typically a Pagination component. */
|
|
515
|
+
footer?: React.ReactNode;
|
|
516
|
+
/** Floating selection bar — typically a BulkActionBar. Rendered as a sticky
|
|
517
|
+
* overlay inside the data region so it never displaces the table layout.
|
|
518
|
+
* The BulkActionBar itself self-hides at count 0, so this slot can always
|
|
519
|
+
* be set. */
|
|
520
|
+
bulkBar?: React.ReactNode;
|
|
521
|
+
}
|
|
522
|
+
/**
|
|
523
|
+
* DataLayout — the standard list/table page scaffold. Pure layout, no state.
|
|
524
|
+
* Arranges: PageHeader → FilterToolbar → DataTable → Pagination, with a
|
|
525
|
+
* BulkActionBar floating at the bottom of the data region on selection.
|
|
526
|
+
*
|
|
527
|
+
* The parent owns all state (query, filters, page, selectedIds); DataLayout
|
|
528
|
+
* only standardises placement and spacing so every table page feels identical.
|
|
529
|
+
*/
|
|
530
|
+
declare const DataLayout: React.ForwardRefExoticComponent<DataLayoutProps & React.RefAttributes<HTMLDivElement>>;
|
|
531
|
+
|
|
502
532
|
type WizardStepState = "upcoming" | "current" | "complete";
|
|
503
533
|
interface WizardStep {
|
|
504
534
|
id: string;
|
|
@@ -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, 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,18 +947,9 @@ 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
|
|
|
@@ -934,21 +971,24 @@ interface TwoTierBadgeProps extends React.HTMLAttributes<HTMLDivElement>, Varian
|
|
|
934
971
|
}
|
|
935
972
|
declare const TwoTierBadge: React.ForwardRefExoticComponent<TwoTierBadgeProps & React.RefAttributes<HTMLDivElement>>;
|
|
936
973
|
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
974
|
+
type StatusBadgeStatus = 'active' | 'archived' | 'success' | 'warning' | 'error' | 'info' | 'pending';
|
|
975
|
+
type StatusBadgeEmphasis = 'subtle' | 'strong';
|
|
976
|
+
type StatusBadgeSize = 'xs' | 'sm' | 'md';
|
|
977
|
+
type SemanticRole = 'error' | 'warning' | 'info' | 'success' | 'neutral';
|
|
978
|
+
interface StatusBadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
979
|
+
status?: StatusBadgeStatus;
|
|
980
|
+
emphasis?: StatusBadgeEmphasis;
|
|
981
|
+
size?: StatusBadgeSize;
|
|
944
982
|
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
983
|
pulse?: boolean;
|
|
951
984
|
}
|
|
985
|
+
/**
|
|
986
|
+
* Read-only state indicator. Two independent axes: `status` picks the semantic
|
|
987
|
+
* ROLE (color), `emphasis` picks the WEIGHT (subtle vs strong). subtle (default)
|
|
988
|
+
* keeps a neutral surface with only the dot + text in role color; strong adds a
|
|
989
|
+
* semantic tinted fill — reserve for must-notice cases. The text label is
|
|
990
|
+
* mandatory (WCAG 1.4.1); terminal/neutral states use a hollow ring dot.
|
|
991
|
+
*/
|
|
952
992
|
declare const StatusBadge: React.ForwardRefExoticComponent<StatusBadgeProps & React.RefAttributes<HTMLSpanElement>>;
|
|
953
993
|
|
|
954
994
|
declare const notificationBadgeVariants: (props?: ({
|
|
@@ -1113,9 +1153,53 @@ interface PaginationProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onCha
|
|
|
1113
1153
|
onPageSizeChange?: (pageSize: number) => void;
|
|
1114
1154
|
totalLabel?: (total: number) => React.ReactNode;
|
|
1115
1155
|
pageSizeLabel?: string;
|
|
1156
|
+
/**
|
|
1157
|
+
* When false, the page-size picker is omitted from the pagination bar.
|
|
1158
|
+
* Use this when you hoist a `<PageSizeSelect />` into the table's top toolbar.
|
|
1159
|
+
* Default true.
|
|
1160
|
+
*/
|
|
1161
|
+
showPageSize?: boolean;
|
|
1116
1162
|
}
|
|
1117
1163
|
declare const Pagination: React.ForwardRefExoticComponent<PaginationProps & React.RefAttributes<HTMLElement>>;
|
|
1118
1164
|
|
|
1165
|
+
type PageSizeSelectSize = 'standard' | 'compact';
|
|
1166
|
+
interface PageSizeSelectProps {
|
|
1167
|
+
/** Current items-per-page value. */
|
|
1168
|
+
value: number;
|
|
1169
|
+
onChange: (pageSize: number) => void;
|
|
1170
|
+
/** Available page-size choices. Default [10, 20, 50, 100]. */
|
|
1171
|
+
options?: readonly number[];
|
|
1172
|
+
/**
|
|
1173
|
+
* Leading label rendered before the select. Pass null to hide.
|
|
1174
|
+
* Default "페이지당".
|
|
1175
|
+
*/
|
|
1176
|
+
label?: React.ReactNode;
|
|
1177
|
+
/** Unit suffix appended to each option number. Default "개". */
|
|
1178
|
+
unit?: string;
|
|
1179
|
+
/**
|
|
1180
|
+
* Control height preset.
|
|
1181
|
+
* - standard: 32px (default, standalone toolbar)
|
|
1182
|
+
* - compact: 30px (embedded in pagination bar)
|
|
1183
|
+
*/
|
|
1184
|
+
size?: PageSizeSelectSize;
|
|
1185
|
+
disabled?: boolean;
|
|
1186
|
+
id?: string;
|
|
1187
|
+
'aria-label'?: string;
|
|
1188
|
+
className?: string;
|
|
1189
|
+
}
|
|
1190
|
+
/**
|
|
1191
|
+
* Standalone page-size picker for table/list toolbars.
|
|
1192
|
+
* Pair with `<Pagination showPageSize={false} />` to avoid duplication.
|
|
1193
|
+
*
|
|
1194
|
+
* @example
|
|
1195
|
+
* // top toolbar (right side):
|
|
1196
|
+
* <PageSizeSelect value={pageSize} onChange={setPageSize} />
|
|
1197
|
+
* // bottom:
|
|
1198
|
+
* <Pagination total={total} page={page} pageSize={pageSize}
|
|
1199
|
+
* onPageChange={setPage} showPageSize={false} />
|
|
1200
|
+
*/
|
|
1201
|
+
declare function PageSizeSelect({ value, onChange, options, label, unit, size, disabled, id, 'aria-label': ariaLabel, className, }: PageSizeSelectProps): react_jsx_runtime.JSX.Element;
|
|
1202
|
+
|
|
1119
1203
|
declare const modeToggleVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
|
|
1120
1204
|
declare const modeToggleItemVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
|
|
1121
1205
|
interface ModeToggleOption<T extends string> {
|
|
@@ -1175,7 +1259,10 @@ interface ToastAction {
|
|
|
1175
1259
|
}
|
|
1176
1260
|
interface ToastOptions {
|
|
1177
1261
|
message: string;
|
|
1262
|
+
/** Optional secondary description line (muted). */
|
|
1263
|
+
description?: string;
|
|
1178
1264
|
variant?: ToastVariant;
|
|
1265
|
+
/** Auto-dismiss ms. Default 4000 (7000 for error). Infinity = sticky. */
|
|
1179
1266
|
duration?: number;
|
|
1180
1267
|
action?: ToastAction;
|
|
1181
1268
|
}
|
|
@@ -1185,9 +1272,9 @@ interface ToastItem extends ToastOptions {
|
|
|
1185
1272
|
interface ToastRootProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children' | 'id'>, ToastItem {
|
|
1186
1273
|
onClose?: () => void;
|
|
1187
1274
|
}
|
|
1275
|
+
declare function getToastDuration(options: ToastOptions): number;
|
|
1188
1276
|
type ToastListener = (items: ToastItem[]) => void;
|
|
1189
1277
|
declare function limitToasts(items: ToastItem[], max?: number): ToastItem[];
|
|
1190
|
-
declare function getToastDuration(options: ToastOptions): number;
|
|
1191
1278
|
declare function createToast(options: ToastOptions): string;
|
|
1192
1279
|
declare const toast: {
|
|
1193
1280
|
show: typeof createToast;
|
|
@@ -1198,6 +1285,16 @@ declare const toast: {
|
|
|
1198
1285
|
dismiss(id: string): void;
|
|
1199
1286
|
subscribe(listener: ToastListener): () => void;
|
|
1200
1287
|
};
|
|
1288
|
+
/** Capitalized alias — the canonical imperative API on the DS namespace (`Toast.success(...)`). */
|
|
1289
|
+
declare const Toast: {
|
|
1290
|
+
show: typeof createToast;
|
|
1291
|
+
success(message: string, options?: Omit<ToastOptions, "message" | "variant">): string;
|
|
1292
|
+
error(message: string, options?: Omit<ToastOptions, "message" | "variant">): string;
|
|
1293
|
+
warning(message: string, options?: Omit<ToastOptions, "message" | "variant">): string;
|
|
1294
|
+
info(message: string, options?: Omit<ToastOptions, "message" | "variant">): string;
|
|
1295
|
+
dismiss(id: string): void;
|
|
1296
|
+
subscribe(listener: ToastListener): () => void;
|
|
1297
|
+
};
|
|
1201
1298
|
declare const ToastRoot: React.ForwardRefExoticComponent<ToastRootProps & React.RefAttributes<HTMLDivElement>>;
|
|
1202
1299
|
declare const ToastViewport: React.ForwardRefExoticComponent<React.OlHTMLAttributes<HTMLOListElement> & React.RefAttributes<HTMLOListElement>>;
|
|
1203
1300
|
interface ToastProviderProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
@@ -1471,4 +1568,4 @@ interface OrganizationLogoProps extends Omit<SVGProps<SVGSVGElement>, "width" |
|
|
|
1471
1568
|
}
|
|
1472
1569
|
declare function OrganizationLogo({ organization, size, className, style, role, "aria-label": ariaLabel, "aria-hidden": ariaHidden, ...props }: OrganizationLogoProps): react_jsx_runtime.JSX.Element;
|
|
1473
1570
|
|
|
1474
|
-
export { ActionFooter, type ActionFooterAction, type ActionFooterProps, type ActionFooterStatus, Alert, type AlertProps, type AlertVariant, Avatar, AvatarFallback, type AvatarFallbackProps, AvatarImage, Badge, type BadgeProps, type
|
|
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 };
|