klun-ui 0.4.1 → 0.5.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/dist/index.d.cts CHANGED
@@ -208,6 +208,26 @@ interface CopyButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>,
208
208
  */
209
209
  declare const CopyButton: react.ForwardRefExoticComponent<CopyButtonProps & react.RefAttributes<HTMLButtonElement>>;
210
210
 
211
+ type ToggleVariant = "default" | "outline";
212
+ type ToggleSize = "small" | "medium" | "large";
213
+ interface ToggleProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "onChange"> {
214
+ /** `"default"` is frameless; `"outline"` carries a hairline border. */
215
+ variant?: ToggleVariant;
216
+ size?: ToggleSize;
217
+ /** Controlled pressed state. */
218
+ pressed?: boolean;
219
+ /** Initial pressed state when uncontrolled. */
220
+ defaultPressed?: boolean;
221
+ /** Fired with the next pressed state. */
222
+ onPressedChange?: (pressed: boolean) => void;
223
+ }
224
+ /**
225
+ * Toggle — two-state push button (`aria-pressed`), ported from the Multica UI.
226
+ * Tints through the klun tokens; pair several for toolbars, or use
227
+ * `SegmentedControl` when exactly one option must stay active.
228
+ */
229
+ declare const Toggle: react.ForwardRefExoticComponent<ToggleProps & react.RefAttributes<HTMLButtonElement>>;
230
+
211
231
  interface Locale {
212
232
  /** BCP-47 language tag, e.g. `"en-US"`. */
213
233
  locale: string;
@@ -321,6 +341,15 @@ interface Locale {
321
341
  notification: {
322
342
  close: string;
323
343
  };
344
+ /** Accessible name for a Select trigger that shows neither a value nor a visible placeholder. */
345
+ select?: {
346
+ placeholder?: string;
347
+ };
348
+ /** Accessible names for the CounterInput stepper buttons. */
349
+ counterInput?: {
350
+ decrease?: string;
351
+ increase?: string;
352
+ };
324
353
  /** `minChars`/`maxChars` have `{min}`/`{max}`; `exactChars` has `{len}`; `oneOf` has `{values}`; `min`/`max` have `{min}`/`{max}`. */
325
354
  form: {
326
355
  required: string;
@@ -354,6 +383,9 @@ interface Locale {
354
383
  next: string;
355
384
  pageRange: string;
356
385
  perPage: string;
386
+ /** Accessible names for the built-in row-selection controls. */
387
+ selectRow?: string;
388
+ selectAll?: string;
357
389
  };
358
390
  }
359
391
  /** Fill a `{placeholder}` template, e.g. `fmt(locale.rating.star, { count: 3 })`. */
@@ -425,7 +457,7 @@ type Theme = "light" | "dark";
425
457
  * palette (surfaces, text, strokes, intents, radii) onto Metronic colors, not
426
458
  * just the primary ramp. Orthogonal to `theme`, so it works in light and dark.
427
459
  */
428
- type Accent = "blue" | "purple" | "orange" | "green" | "slate" | "metronic";
460
+ type Accent = "blue" | "purple" | "orange" | "green" | "slate" | "metronic" | "kk";
429
461
  /**
430
462
  * Global corner-radius scale (maps to `data-radius`). `"square"` = 0-radius
431
463
  * (sharp) corners, `"sharp"` = tight, `"rounded"` = soft. The functional pill
@@ -514,6 +546,114 @@ declare function useSize<S extends string = ComponentSize>(explicit?: S): S;
514
546
  */
515
547
  declare function useMappedSize<S extends string>(explicit: S | undefined, map: Record<ComponentSize, S>, fallback: S): S;
516
548
 
549
+ declare function localTodayIso(): string;
550
+ interface HeatmapCell {
551
+ /** ISO date of the cell. */
552
+ date: string;
553
+ /** 0 = Monday … 6 = Sunday. */
554
+ dayOfWeek: number;
555
+ /** Column index, 0-based from the leftmost (oldest) week. */
556
+ week: number;
557
+ value: number;
558
+ /** Intensity bucket: 0 (no activity) … 4 (busiest quartile). */
559
+ level: number;
560
+ }
561
+ interface HeatmapMonthLabel {
562
+ label: string;
563
+ week: number;
564
+ }
565
+ interface HeatmapGrid {
566
+ cells: HeatmapCell[];
567
+ months: HeatmapMonthLabel[];
568
+ /** Row labels, Monday-first (7 entries). */
569
+ weekdayLabels: string[];
570
+ /** Number of days rendered (partial last week included). */
571
+ windowDays: number;
572
+ }
573
+ interface HeatmapOptions {
574
+ /** Weeks rendered, ending with the week of `today`. Default `26`. */
575
+ weeks?: number;
576
+ /** ISO date used as the grid's last day. Default: today, local time. */
577
+ today?: string;
578
+ /** BCP-47 locale for month / weekday labels. Default `"en-US"`. */
579
+ locale?: string;
580
+ }
581
+ /**
582
+ * Builds the heatmap grid: quartile-bucketed cells, month labels and weekday
583
+ * labels. Pure — export it to reuse the data in your own insights panels.
584
+ */
585
+ declare function buildHeatmapGrid(data: Record<string, number> | undefined, options?: HeatmapOptions): HeatmapGrid;
586
+ interface HeatmapSummary {
587
+ /** Total across the rendered window. */
588
+ total: number;
589
+ /** Highest-value day, or `null` when the window is empty. */
590
+ busiest: {
591
+ date: string;
592
+ value: number;
593
+ } | null;
594
+ /** Average value per day. */
595
+ dailyAverage: number;
596
+ /** Average value per weekday index (0 = Monday … 6 = Sunday). */
597
+ weekdayAverages: number[];
598
+ }
599
+ /** Roll-up stats over the same window the grid renders. Pure. */
600
+ declare function summarizeHeatmap(data: Record<string, number> | undefined, options?: HeatmapOptions): HeatmapSummary;
601
+ interface ActivityHeatmapProps {
602
+ /** ISO date (`YYYY-MM-DD`) → value. Missing dates render as empty. */
603
+ data?: Record<string, number>;
604
+ /** Weeks rendered, ending with the week of `today`. Default `26`. */
605
+ weeks?: number;
606
+ /** ISO date used as the grid's last day. Default: today, local time. */
607
+ today?: string;
608
+ /** Cell size in px. Default `16`. */
609
+ cellSize?: number;
610
+ /** Base color of the heat ramp (any CSS color). Default: the theme primary. */
611
+ color?: string;
612
+ /** Formats the tooltip value, e.g. `(v) => "$" + v.toFixed(2)`. */
613
+ formatValue?: (value: number) => string;
614
+ /** BCP-47 locale for month / weekday labels. Default `"en-US"`. */
615
+ locale?: string;
616
+ /** Legend words around the swatch ramp. Default `["Less", "More"]`. */
617
+ legendLabels?: [string, string];
618
+ className?: string;
619
+ style?: CSSProperties;
620
+ }
621
+ /**
622
+ * ActivityHeatmap — a calendar heatmap (GitHub-contribution style) over the
623
+ * last `weeks` weeks. Colors ride the klun tokens; the ramp is a
624
+ * `color-mix` of `color` (default: theme primary) at four intensities.
625
+ * Pair it with `summarizeHeatmap()` for busiest-day / weekday stats.
626
+ */
627
+ declare const ActivityHeatmap: react.ForwardRefExoticComponent<ActivityHeatmapProps & react.RefAttributes<HTMLDivElement>>;
628
+
629
+ type ActorKind = "member" | "agent" | "squad" | "system";
630
+ type ActorAvatarSize = "20" | "24" | "32" | "40" | "56";
631
+ /** Read the emoji out of a `"emoji:🐙"` avatar value, or `null`. */
632
+ declare function parseAvatarEmoji(value?: string | null): string | null;
633
+ /** Build the `src` value that stores an emoji avatar. */
634
+ declare function formatAvatarEmoji(emoji: string): string;
635
+ interface ActorAvatarProps extends HTMLAttributes<HTMLSpanElement> {
636
+ /** Accessible name (image alt / group label). */
637
+ name: string;
638
+ /** Fallback initials for members. */
639
+ initials?: string;
640
+ /** Image URL; a value starting with `"emoji:"` renders that emoji instead. */
641
+ src?: string | null;
642
+ /** Explicit emoji avatar — wins over `src`. */
643
+ emoji?: string;
644
+ /** What kind of actor this is. Default `"member"`. */
645
+ kind?: ActorKind;
646
+ /** Avatar diameter. Default `"24"`. */
647
+ size?: ActorAvatarSize;
648
+ }
649
+ /**
650
+ * ActorAvatar — the single identity avatar for members, agents, squads and
651
+ * system actors (ported from the Multica UI). Always a circle; falls back to
652
+ * an emoji, a kind glyph, then initials. The `"emoji:"` src marker is kept so
653
+ * data written by Multica round-trips.
654
+ */
655
+ declare const ActorAvatar: react.ForwardRefExoticComponent<ActorAvatarProps & react.RefAttributes<HTMLSpanElement>>;
656
+
517
657
  type AvatarSize = "20" | "24" | "32" | "40" | "48" | "56" | "64" | "72" | "80";
518
658
  type AvatarStatus = "online" | "busy" | "away" | "offline";
519
659
  interface AvatarProps extends HTMLAttributes<HTMLSpanElement> {
@@ -799,6 +939,53 @@ declare function parsePatch(patch: string): DiffHunk[];
799
939
  */
800
940
  declare const DiffViewer: react.ForwardRefExoticComponent<DiffViewerProps & react.RefAttributes<HTMLDivElement>>;
801
941
 
942
+ interface ItemGroupProps extends HTMLAttributes<HTMLDivElement> {
943
+ }
944
+ /** List wrapper (`role="list"`) for a run of `<Item>` rows. */
945
+ declare const ItemGroup: react.ForwardRefExoticComponent<ItemGroupProps & react.RefAttributes<HTMLDivElement>>;
946
+ type ItemVariant = "default" | "outline" | "muted";
947
+ type ItemSize = "default" | "small" | "xsmall";
948
+ interface ItemProps extends HTMLAttributes<HTMLDivElement> {
949
+ variant?: ItemVariant;
950
+ size?: ItemSize;
951
+ }
952
+ /**
953
+ * Item — one row of rich content: media + content + actions (ported from the
954
+ * Multica UI). Used for settings rows, suggestion lists, compact menu entries;
955
+ * pair with `ItemGroup` and `ItemSeparator`.
956
+ */
957
+ declare const Item: react.ForwardRefExoticComponent<ItemProps & react.RefAttributes<HTMLDivElement>>;
958
+ interface ItemSeparatorProps extends HTMLAttributes<HTMLDivElement> {
959
+ }
960
+ declare const ItemSeparator: react.ForwardRefExoticComponent<ItemSeparatorProps & react.RefAttributes<HTMLDivElement>>;
961
+ type ItemMediaVariant = "default" | "icon" | "image";
962
+ interface ItemMediaProps extends HTMLAttributes<HTMLDivElement> {
963
+ /** `"icon"` squares a 16px glyph; `"image"` frames a 40px thumbnail. */
964
+ variant?: ItemMediaVariant;
965
+ }
966
+ declare const ItemMedia: react.ForwardRefExoticComponent<ItemMediaProps & react.RefAttributes<HTMLDivElement>>;
967
+ interface ItemContentProps extends HTMLAttributes<HTMLDivElement> {
968
+ }
969
+ declare const ItemContent: react.ForwardRefExoticComponent<ItemContentProps & react.RefAttributes<HTMLDivElement>>;
970
+ interface ItemTitleProps extends HTMLAttributes<HTMLDivElement> {
971
+ }
972
+ declare const ItemTitle: react.ForwardRefExoticComponent<ItemTitleProps & react.RefAttributes<HTMLDivElement>>;
973
+ interface ItemDescriptionProps extends HTMLAttributes<HTMLDivElement> {
974
+ }
975
+ declare const ItemDescription: react.ForwardRefExoticComponent<ItemDescriptionProps & react.RefAttributes<HTMLDivElement>>;
976
+ interface ItemActionsProps extends HTMLAttributes<HTMLDivElement> {
977
+ }
978
+ /** Right-aligned action cluster (buttons, kebabs…). */
979
+ declare const ItemActions: react.ForwardRefExoticComponent<ItemActionsProps & react.RefAttributes<HTMLDivElement>>;
980
+ interface ItemHeaderProps extends HTMLAttributes<HTMLDivElement> {
981
+ }
982
+ /** Full-width row above the content (badges, timestamps). */
983
+ declare const ItemHeader: react.ForwardRefExoticComponent<ItemHeaderProps & react.RefAttributes<HTMLDivElement>>;
984
+ interface ItemFooterProps extends HTMLAttributes<HTMLDivElement> {
985
+ }
986
+ /** Full-width row below the content (progress, metadata). */
987
+ declare const ItemFooter: react.ForwardRefExoticComponent<ItemFooterProps & react.RefAttributes<HTMLDivElement>>;
988
+
802
989
  interface KanbanCard {
803
990
  id: string;
804
991
  title: ReactNode;
@@ -828,6 +1015,15 @@ interface KanbanProps extends Omit<HTMLAttributes<HTMLDivElement>, "onSelect"> {
828
1015
  columnWidth?: number;
829
1016
  style?: CSSProperties;
830
1017
  }
1018
+ /**
1019
+ * Where a dragged card lands: `overId` is a card (insert before/after it) or a
1020
+ * column (append). Returns null when the card is unknown or nothing would move.
1021
+ */
1022
+ declare function resolveMove(columns: KanbanColumn[], activeId: string, overId: string, after: boolean): {
1023
+ fromColumn: string;
1024
+ toColumn: string;
1025
+ toIndex: number;
1026
+ } | null;
831
1027
  /**
832
1028
  * Kanban — drag & drop board (dnd-kit: mouse, touch and keyboard). Columns hold
833
1029
  * cards; dropping a card calls `onMove(cardId, fromColumn, toColumn, toIndex)`
@@ -838,40 +1034,6 @@ interface KanbanProps extends Omit<HTMLAttributes<HTMLDivElement>, "onSelect"> {
838
1034
  */
839
1035
  declare const Kanban: react.ForwardRefExoticComponent<KanbanProps & react.RefAttributes<HTMLDivElement>>;
840
1036
 
841
- interface VirtualColumn<Row> {
842
- key: string;
843
- header: ReactNode;
844
- /** Fixed px width; omit to share the remaining space. */
845
- width?: number;
846
- align?: "left" | "center" | "right";
847
- render?: (row: Row, index: number) => ReactNode;
848
- }
849
- interface VirtualTableProps<Row = Record<string, unknown>> extends Omit<HTMLAttributes<HTMLDivElement>, "onSelect"> {
850
- rows: Row[];
851
- columns: Array<VirtualColumn<Row>>;
852
- /** Fixed row height in px — required for windowing. Default `40`. */
853
- rowHeight?: number;
854
- /** Viewport height in px. Default `420`. */
855
- height?: number;
856
- getRowId?: (row: Row, index: number) => string | number;
857
- onRowClick?: (row: Row, index: number) => void;
858
- /** Extra rows rendered above/below the viewport. Default `8`. */
859
- overscan?: number;
860
- zebra?: boolean;
861
- empty?: ReactNode;
862
- style?: CSSProperties;
863
- }
864
- /**
865
- * VirtualTable — windowed table for very large datasets (100k+ rows). Renders
866
- * only the visible slice plus `overscan`, so scrolling stays smooth. Columns use
867
- * the same render-function shape as `Table`, minus sorting/selection (keep that
868
- * work server-side for big data).
869
- */
870
- declare function VirtualTable<Row = Record<string, unknown>>({ rows, columns, rowHeight, height, getRowId, onRowClick, overscan, zebra, empty, className, style, ...props }: VirtualTableProps<Row>): react.JSX.Element;
871
- declare namespace VirtualTable {
872
- var displayName: string;
873
- }
874
-
875
1037
  interface KbdProps extends HTMLAttributes<HTMLElement> {
876
1038
  children?: ReactNode;
877
1039
  }
@@ -934,6 +1096,39 @@ interface ListItemProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
934
1096
  */
935
1097
  declare const ListItem: react.ForwardRefExoticComponent<ListItemProps & react.RefAttributes<HTMLDivElement>>;
936
1098
 
1099
+ type ListGridSortDirection = "asc" | "desc";
1100
+ /**
1101
+ * Linear-style list grid (ported from the Multica UI). The container declares
1102
+ * every column track once; the header, rows and skeletons inherit it via
1103
+ * `grid-template-columns: subgrid`, so column widths have a single source of
1104
+ * truth and never drift. Template convention: the first and last tracks are
1105
+ * edge-padding columns — header/row render the matching placeholder cells, so
1106
+ * row hover backgrounds stay full-bleed while content aligns with page chrome.
1107
+ */
1108
+ interface ListGridProps extends HTMLAttributes<HTMLDivElement> {
1109
+ /** The shared `grid-template-columns` track list. */
1110
+ columns: string;
1111
+ }
1112
+ declare const ListGrid: react.ForwardRefExoticComponent<ListGridProps & react.RefAttributes<HTMLDivElement>>;
1113
+ /** Sticky header row; carries a soft fade band below it while rows scroll. */
1114
+ declare const ListGridHeader: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
1115
+ /** Rows area; carries any virtualization padding. It does not scroll — keep
1116
+ * the single scroller on an outer wrapper with the sticky header inside. */
1117
+ declare const ListGridBody: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
1118
+ interface ListGridHeaderCellProps extends HTMLAttributes<HTMLDivElement> {
1119
+ /** Active sort direction of this column; `false` when not the active sort. */
1120
+ sorted?: ListGridSortDirection | false;
1121
+ /** When provided the header renders as a sort button. */
1122
+ onSort?: () => void;
1123
+ align?: "left" | "right";
1124
+ }
1125
+ declare const ListGridHeaderCell: react.ForwardRefExoticComponent<ListGridHeaderCellProps & react.RefAttributes<HTMLDivElement>>;
1126
+ declare const ListGridRow: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
1127
+ declare const ListGridCell: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
1128
+ /** Bottom clearance (px) to append to the rows area's padding so the last row
1129
+ * can scroll clear of floating UI pinned to the pane's bottom edge. */
1130
+ declare const LIST_GRID_BOTTOM_CLEARANCE = 64;
1131
+
937
1132
  type WikiLinkResolver = (target: string) => string | {
938
1133
  href: string;
939
1134
  label?: string;
@@ -988,6 +1183,54 @@ interface MoneyProps extends Omit<HTMLAttributes<HTMLSpanElement>, "prefix"> {
988
1183
  */
989
1184
  declare const Money: react.ForwardRefExoticComponent<MoneyProps & react.RefAttributes<HTMLSpanElement>>;
990
1185
 
1186
+ interface NumberFlowFormat {
1187
+ minimumFractionDigits?: number;
1188
+ maximumFractionDigits?: number;
1189
+ useGrouping?: boolean;
1190
+ }
1191
+ interface NumberFlowProps extends Omit<HTMLAttributes<HTMLSpanElement>, "children" | "prefix"> {
1192
+ value: number;
1193
+ /** `Intl.NumberFormat` locales. */
1194
+ locales?: string | string[];
1195
+ /** `Intl.NumberFormat` number options. */
1196
+ format?: NumberFlowFormat;
1197
+ prefix?: ReactNode;
1198
+ suffix?: ReactNode;
1199
+ /** Accessible label; defaults to the formatted value. */
1200
+ label?: string;
1201
+ }
1202
+ /**
1203
+ * NumberFlow — animated number, ported from the Multica UI's `@number-flow`
1204
+ * wrappers onto a dependency-free rolling-digit implementation: each glyph is
1205
+ * a column of 0-9 that slides to its digit, so only changed positions move.
1206
+ * Bound: digits are keyed right-to-left, so a change in digit count animates
1207
+ * the columns but does not slide positions into place. Non-digit characters
1208
+ * (grouping, decimal point, sign) render statically.
1209
+ */
1210
+ declare const NumberFlow: react.ForwardRefExoticComponent<NumberFlowProps & react.RefAttributes<HTMLSpanElement>>;
1211
+ interface CurrencyNumberFlowProps extends Omit<NumberFlowProps, "format" | "prefix" | "suffix" | "value"> {
1212
+ value: number;
1213
+ prefix?: string;
1214
+ /** Values at or above this show no decimals. Default `100`. */
1215
+ fractionThreshold?: number;
1216
+ }
1217
+ /** Currency variant: two decimals below `fractionThreshold`, none above. */
1218
+ declare const CurrencyNumberFlow: react.ForwardRefExoticComponent<CurrencyNumberFlowProps & react.RefAttributes<HTMLSpanElement>>;
1219
+ interface CompactNumberFlowProps extends Omit<NumberFlowProps, "format" | "suffix" | "value"> {
1220
+ value: number;
1221
+ /** Case of the K/M/B/T suffix. Default `"upper"`. */
1222
+ suffixCase?: "lower" | "upper";
1223
+ }
1224
+ /** Compact variant: 1200 → “1.2K”, 3_400_000 → “3.4M”. */
1225
+ declare const CompactNumberFlow: react.ForwardRefExoticComponent<CompactNumberFlowProps & react.RefAttributes<HTMLSpanElement>>;
1226
+ interface CappedNumberFlowProps extends Omit<NumberFlowProps, "format" | "suffix" | "value"> {
1227
+ value: number;
1228
+ /** Cap shown as “max+”. Default `99`. */
1229
+ max?: number;
1230
+ }
1231
+ /** Capped variant: 137 with `max={99}` renders “99+”. */
1232
+ declare const CappedNumberFlow: react.ForwardRefExoticComponent<CappedNumberFlowProps & react.RefAttributes<HTMLSpanElement>>;
1233
+
991
1234
  interface RatingProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange" | "style"> {
992
1235
  /** Current rating. Default `0`. */
993
1236
  value?: number;
@@ -1003,6 +1246,42 @@ interface RatingProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange" |
1003
1246
  /** Klun UI Rating — star rating, interactive or read-only. */
1004
1247
  declare const Rating: react.ForwardRefExoticComponent<RatingProps & react.RefAttributes<HTMLDivElement>>;
1005
1248
 
1249
+ /** One actor's reaction, before grouping. */
1250
+ interface ReactionItem {
1251
+ /** Native emoji character. */
1252
+ emoji: string;
1253
+ /** Stable actor id used to detect the current user's own reaction. */
1254
+ actorId: string;
1255
+ /** Display name shown in the pill tooltip; falls back to the id. */
1256
+ actorName?: string;
1257
+ }
1258
+ /** A grouped reaction pill. */
1259
+ interface Reaction {
1260
+ emoji: string;
1261
+ count: number;
1262
+ /** Whether `currentActorId` reacted with this emoji. */
1263
+ reacted: boolean;
1264
+ /** Display names of the reacting actors, for the tooltip. */
1265
+ actors: string[];
1266
+ }
1267
+ /** Group flat per-actor records for `<ReactionBar>`. */
1268
+ declare function groupReactions(items: ReactionItem[], currentActorId?: string): Reaction[];
1269
+ interface ReactionBarProps extends HTMLAttributes<HTMLDivElement> {
1270
+ /** Grouped reactions, usually built with `groupReactions`. */
1271
+ reactions: Reaction[];
1272
+ /** Fired when a pill is toggled or an emoji is picked. */
1273
+ onToggle?: (emoji: string) => void;
1274
+ /** Show the add-reaction button. Default `true`. */
1275
+ showPicker?: boolean;
1276
+ /** One-click emojis in the picker. */
1277
+ pickerEmojis?: string[];
1278
+ }
1279
+ /**
1280
+ * ReactionBar — a row of emoji reaction pills with per-pill actor tooltips and
1281
+ * an add-reaction `QuickEmojiPicker` (ported from the Multica UI).
1282
+ */
1283
+ declare const ReactionBar: react.ForwardRefExoticComponent<ReactionBarProps & react.RefAttributes<HTMLDivElement>>;
1284
+
1006
1285
  interface RelativeTimeProps extends TimeHTMLAttributes<HTMLTimeElement> {
1007
1286
  date: Date | number | string;
1008
1287
  locale?: string;
@@ -1033,6 +1312,20 @@ interface ExpiryCountdownProps extends HTMLAttributes<HTMLSpanElement> {
1033
1312
  */
1034
1313
  declare const ExpiryCountdown: react.ForwardRefExoticComponent<ExpiryCountdownProps & react.RefAttributes<HTMLSpanElement>>;
1035
1314
 
1315
+ interface ShimmerTextProps extends Omit<HTMLAttributes<HTMLSpanElement>, "children"> {
1316
+ /** Single-line text content. */
1317
+ children: string;
1318
+ /** Run the highlight sweep. Default `true`. */
1319
+ active?: boolean;
1320
+ }
1321
+ /**
1322
+ * ShimmerText — a single-line activity label where only the decorative
1323
+ * highlight moves over still glyphs (ported 1:1 from the Multica UI). Use it
1324
+ * for “agent is working” style labels; with `active={false}` it degrades to a
1325
+ * plain inherited-colour span.
1326
+ */
1327
+ declare const ShimmerText: react.ForwardRefExoticComponent<ShimmerTextProps & react.RefAttributes<HTMLSpanElement>>;
1328
+
1036
1329
  type StatCardTint = "feature" | "success" | "warning" | "information" | "error";
1037
1330
  interface StatCardProps extends HTMLAttributes<HTMLDivElement> {
1038
1331
  label?: ReactNode;
@@ -1372,6 +1665,40 @@ interface TreeProps extends Omit<HTMLAttributes<HTMLDivElement>, "onSelect"> {
1372
1665
  */
1373
1666
  declare const Tree: react.ForwardRefExoticComponent<TreeProps & react.RefAttributes<HTMLDivElement>>;
1374
1667
 
1668
+ interface VirtualColumn<Row> {
1669
+ key: string;
1670
+ header: ReactNode;
1671
+ /** Fixed px width; omit to share the remaining space. */
1672
+ width?: number;
1673
+ align?: "left" | "center" | "right";
1674
+ render?: (row: Row, index: number) => ReactNode;
1675
+ }
1676
+ interface VirtualTableProps<Row = Record<string, unknown>> extends Omit<HTMLAttributes<HTMLDivElement>, "onSelect"> {
1677
+ rows: Row[];
1678
+ columns: Array<VirtualColumn<Row>>;
1679
+ /** Fixed row height in px — required for windowing. Default `40`. */
1680
+ rowHeight?: number;
1681
+ /** Viewport height in px. Default `420`. */
1682
+ height?: number;
1683
+ getRowId?: (row: Row, index: number) => string | number;
1684
+ onRowClick?: (row: Row, index: number) => void;
1685
+ /** Extra rows rendered above/below the viewport. Default `8`. */
1686
+ overscan?: number;
1687
+ zebra?: boolean;
1688
+ empty?: ReactNode;
1689
+ style?: CSSProperties;
1690
+ }
1691
+ /**
1692
+ * VirtualTable — windowed table for very large datasets (100k+ rows). Renders
1693
+ * only the visible slice plus `overscan`, so scrolling stays smooth. Columns use
1694
+ * the same render-function shape as `Table`, minus sorting/selection (keep that
1695
+ * work server-side for big data).
1696
+ */
1697
+ declare function VirtualTable<Row = Record<string, unknown>>({ rows, columns, rowHeight, height, getRowId, onRowClick, overscan, zebra, empty, className, style, ...props }: VirtualTableProps<Row>): react.JSX.Element;
1698
+ declare namespace VirtualTable {
1699
+ var displayName: string;
1700
+ }
1701
+
1375
1702
  interface AccordionItem {
1376
1703
  id: string;
1377
1704
  title: ReactNode;
@@ -1460,6 +1787,40 @@ interface BannerProps extends HTMLAttributes<HTMLDivElement> {
1460
1787
  /** Banner — full-width page-level announcement bar. */
1461
1788
  declare const Banner: react.ForwardRefExoticComponent<BannerProps & react.RefAttributes<HTMLDivElement>>;
1462
1789
 
1790
+ interface BorderBeamProps extends HTMLAttributes<HTMLSpanElement> {
1791
+ }
1792
+ /**
1793
+ * BorderBeam — a highlight that sweeps continuously around the host's rounded
1794
+ * border, drawing the eye to a call-to-action that would otherwise blend into
1795
+ * the chrome. Render it as a child of a positioned (`relative`), rounded host;
1796
+ * the ring inherits the host's border radius.
1797
+ *
1798
+ * The sweep colour defaults to the theme accent — override
1799
+ * `--klun-border-beam-gradient` (on the host or the beam) with any background
1800
+ * value, e.g. an image, to restyle it.
1801
+ */
1802
+ declare const BorderBeam: react.ForwardRefExoticComponent<BorderBeamProps & react.RefAttributes<HTMLSpanElement>>;
1803
+
1804
+ type CapabilityResource = "agent" | "skill" | "comment" | "runtime" | "workspace";
1805
+ type CapabilityReason = "allowed" | "not_authenticated" | "not_member" | "not_owner_role" | "not_admin_role" | "not_resource_owner" | "last_owner" | "private_visibility" | "unknown";
1806
+ interface CapabilityBannerProps extends HTMLAttributes<HTMLDivElement> {
1807
+ /** Why the current user cannot edit; `"allowed"`/`"unknown"` render nothing. */
1808
+ reason: CapabilityReason;
1809
+ /** What kind of resource the page is about. */
1810
+ resource: CapabilityResource;
1811
+ /** Owner display name; the copy degrades gracefully without it. */
1812
+ ownerName?: string;
1813
+ /** Override the derived copy. */
1814
+ message?: ReactNode;
1815
+ }
1816
+ /**
1817
+ * CapabilityBanner — read-only notice for resource detail pages, shown when
1818
+ * the current user cannot edit (ported from the Multica UI, same copy rules so
1819
+ * wording stays consistent across resources). Returns `null` when editing is
1820
+ * allowed, so callers can mount it unconditionally.
1821
+ */
1822
+ declare const CapabilityBanner: react.ForwardRefExoticComponent<CapabilityBannerProps & react.RefAttributes<HTMLDivElement>>;
1823
+
1463
1824
  type CircularProgressColor = "primary" | "success" | "warning" | "error";
1464
1825
  interface CircularProgressProps extends Omit<HTMLAttributes<HTMLDivElement>, "style"> {
1465
1826
  value?: number;
@@ -1473,6 +1834,29 @@ interface CircularProgressProps extends Omit<HTMLAttributes<HTMLDivElement>, "st
1473
1834
  /** Klun UI CircularProgress — ring progress with optional center label. */
1474
1835
  declare const CircularProgress: react.ForwardRefExoticComponent<CircularProgressProps & react.RefAttributes<HTMLDivElement>>;
1475
1836
 
1837
+ interface DotSphereProps extends HTMLAttributes<HTMLCanvasElement> {
1838
+ /** Dot pitch in px. Default `20`. */
1839
+ dotGap?: number;
1840
+ /** `"travel"` sends spheres across the field, `"wave"` pulses them in place. */
1841
+ motion?: "travel" | "wave";
1842
+ sphereCount?: number;
1843
+ sphereRadius?: number | `${number}%`;
1844
+ dotRadiusMax?: number;
1845
+ speed?: number;
1846
+ /** Canvas background; `"transparent"` (default) keeps the host visible. */
1847
+ bgColor?: string;
1848
+ /** Dot colour; `"currentColor"` (default) follows the CSS `color`. */
1849
+ dotColor?: string;
1850
+ followMouse?: boolean;
1851
+ }
1852
+ /**
1853
+ * DotSphere — decorative canvas dot field with travelling or waving spheres
1854
+ * (ported from the Multica UI; honours `prefers-reduced-motion` by painting a
1855
+ * single static frame). Purely presentational; `dotColor` defaults to
1856
+ * `currentColor`, so tint the host with a klun token and it follows the theme.
1857
+ */
1858
+ declare const DotSphere: react.ForwardRefExoticComponent<DotSphereProps & react.RefAttributes<HTMLCanvasElement>>;
1859
+
1476
1860
  interface EmptyStateProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
1477
1861
  icon?: ReactNode;
1478
1862
  title?: ReactNode;
@@ -1544,6 +1928,30 @@ declare const Message: react.ForwardRefExoticComponent<MessageProps & react.RefA
1544
1928
  */
1545
1929
  declare function useMessage(defaults?: UseMessageDefaults): [MessageApi, ReactNode];
1546
1930
 
1931
+ interface NavigationProgressProps {
1932
+ /** Whether a navigation is in flight. */
1933
+ active: boolean;
1934
+ /**
1935
+ * Pin the bar to the viewport (default) or to the nearest positioned
1936
+ * ancestor — use `"absolute"` when the app renders inside a scroll pane.
1937
+ */
1938
+ position?: "fixed" | "absolute";
1939
+ /** Distance from the top edge. Default `0`. */
1940
+ top?: number | string;
1941
+ className?: string;
1942
+ style?: CSSProperties;
1943
+ }
1944
+ /**
1945
+ * NavigationProgress — a 2px indeterminate sweep across the top of the
1946
+ * viewport while a route transition is committing. Purely presentational:
1947
+ * drive it from your router's transition state (or any `active` flag).
1948
+ *
1949
+ * The container stays mounted so the bar can fade out over 200ms; the
1950
+ * `infinite` sweep animation is mounted only while active (plus the fade-out
1951
+ * tail), so a hidden bar never burns paints.
1952
+ */
1953
+ declare function NavigationProgress({ active, position, top, className, style, }: NavigationProgressProps): react.JSX.Element;
1954
+
1547
1955
  type NotificationStatus = "default" | "information" | "success" | "warning" | "error" | "loading";
1548
1956
  interface NotificationProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
1549
1957
  status?: NotificationStatus;
@@ -1756,6 +2164,97 @@ declare namespace Toaster {
1756
2164
  var displayName: string;
1757
2165
  }
1758
2166
 
2167
+ /** Built-in frame sets, keyed by animation name. */
2168
+ declare const UNICODE_ANIMATIONS: {
2169
+ braille: {
2170
+ interval: number;
2171
+ frames: string[];
2172
+ };
2173
+ braillewave: {
2174
+ interval: number;
2175
+ frames: string[];
2176
+ };
2177
+ dna: {
2178
+ interval: number;
2179
+ frames: string[];
2180
+ };
2181
+ scan: {
2182
+ interval: number;
2183
+ frames: string[];
2184
+ };
2185
+ rain: {
2186
+ interval: number;
2187
+ frames: string[];
2188
+ };
2189
+ scanline: {
2190
+ interval: number;
2191
+ frames: string[];
2192
+ };
2193
+ pulse: {
2194
+ interval: number;
2195
+ frames: string[];
2196
+ };
2197
+ snake: {
2198
+ interval: number;
2199
+ frames: string[];
2200
+ };
2201
+ sparkle: {
2202
+ interval: number;
2203
+ frames: string[];
2204
+ };
2205
+ cascade: {
2206
+ interval: number;
2207
+ frames: string[];
2208
+ };
2209
+ columns: {
2210
+ interval: number;
2211
+ frames: string[];
2212
+ };
2213
+ orbit: {
2214
+ interval: number;
2215
+ frames: string[];
2216
+ };
2217
+ breathe: {
2218
+ interval: number;
2219
+ frames: string[];
2220
+ };
2221
+ waverows: {
2222
+ interval: number;
2223
+ frames: string[];
2224
+ };
2225
+ checkerboard: {
2226
+ interval: number;
2227
+ frames: string[];
2228
+ };
2229
+ helix: {
2230
+ interval: number;
2231
+ frames: string[];
2232
+ };
2233
+ fillsweep: {
2234
+ interval: number;
2235
+ frames: string[];
2236
+ };
2237
+ diagswipe: {
2238
+ interval: number;
2239
+ frames: string[];
2240
+ };
2241
+ };
2242
+ type UnicodeSpinnerName = keyof typeof UNICODE_ANIMATIONS;
2243
+
2244
+ interface UnicodeSpinnerProps extends HTMLAttributes<HTMLSpanElement> {
2245
+ /** Animation frame set. Default `"braille"`. */
2246
+ name?: UnicodeSpinnerName;
2247
+ /** Freeze on the current frame without unmounting (e.g. when an outer state freezes). */
2248
+ paused?: boolean;
2249
+ }
2250
+ /**
2251
+ * UnicodeSpinner — inline braille/unicode frame animation, ported from the
2252
+ * Multica UI. Renders the current frame inside a fixed-width monospace span so
2253
+ * frames never reflow neighbouring text. Decorative: the glyph is
2254
+ * `aria-hidden`, put the status text next to it.
2255
+ */
2256
+ declare const UnicodeSpinner: react.ForwardRefExoticComponent<UnicodeSpinnerProps & react.RefAttributes<HTMLSpanElement>>;
2257
+
1759
2258
  interface AutoCompleteOption {
1760
2259
  value: string;
1761
2260
  label?: ReactNode;
@@ -1991,6 +2490,24 @@ interface CompactSelectForInputProps extends Omit<SelectHTMLAttributes<HTMLSelec
1991
2490
  */
1992
2491
  declare const CompactSelectForInput: react.ForwardRefExoticComponent<CompactSelectForInputProps & react.RefAttributes<HTMLSelectElement>>;
1993
2492
 
2493
+ type CounterInputSize = "small" | "medium" | "large";
2494
+ interface CounterInputProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
2495
+ value?: number;
2496
+ min?: number;
2497
+ max?: number;
2498
+ step?: number;
2499
+ size?: CounterInputSize;
2500
+ onChange?: (value: number) => void;
2501
+ disabled?: boolean;
2502
+ /** Optional unit shown after the value, e.g. "kg". */
2503
+ suffix?: ReactNode;
2504
+ }
2505
+ /**
2506
+ * CounterInput — numeric stepper with decrement / increment controls.
2507
+ * `ref` forwards to the root wrapper.
2508
+ */
2509
+ declare const CounterInput: react.ForwardRefExoticComponent<CounterInputProps & react.RefAttributes<HTMLDivElement>>;
2510
+
1994
2511
  interface CronPreset {
1995
2512
  label: string;
1996
2513
  value: string;
@@ -2028,24 +2545,6 @@ declare function describeCron(cron: string): string;
2028
2545
  */
2029
2546
  declare const CronEditor: react.ForwardRefExoticComponent<CronEditorProps & react.RefAttributes<HTMLDivElement>>;
2030
2547
 
2031
- type CounterInputSize = "small" | "medium" | "large";
2032
- interface CounterInputProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
2033
- value?: number;
2034
- min?: number;
2035
- max?: number;
2036
- step?: number;
2037
- size?: CounterInputSize;
2038
- onChange?: (value: number) => void;
2039
- disabled?: boolean;
2040
- /** Optional unit shown after the value, e.g. "kg". */
2041
- suffix?: ReactNode;
2042
- }
2043
- /**
2044
- * CounterInput — numeric stepper with decrement / increment controls.
2045
- * `ref` forwards to the root wrapper.
2046
- */
2047
- declare const CounterInput: react.ForwardRefExoticComponent<CounterInputProps & react.RefAttributes<HTMLDivElement>>;
2048
-
2049
2548
  interface DatePickerProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange" | "style"> {
2050
2549
  value?: Date | string | null;
2051
2550
  onChange?: (date: Date) => void;
@@ -2131,6 +2630,78 @@ interface DigitInputProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange
2131
2630
  */
2132
2631
  declare const DigitInput: react.ForwardRefExoticComponent<DigitInputProps & react.RefAttributes<HTMLDivElement>>;
2133
2632
 
2633
+ interface EmojiDef {
2634
+ /** Native emoji character(s). */
2635
+ emoji: string;
2636
+ /** Display name. */
2637
+ name: string;
2638
+ /** Search keywords (subset of the upstream list). */
2639
+ keywords: string[];
2640
+ }
2641
+ interface EmojiGroup {
2642
+ /** Stable group id. */
2643
+ id: string;
2644
+ /** Group label for tabs. */
2645
+ label: string;
2646
+ emojis: EmojiDef[];
2647
+ }
2648
+
2649
+ interface EmojiPickerProps extends Omit<HTMLAttributes<HTMLDivElement>, "onSelect"> {
2650
+ /** Fired with the native emoji character. */
2651
+ onSelect: (emoji: string, def: EmojiDef) => void;
2652
+ /** Groups to render. Defaults to the built-in trimmed emoji-mart set. */
2653
+ groups?: EmojiGroup[];
2654
+ /** Cells per row. Default `8`. */
2655
+ columns?: number;
2656
+ /** Show the search field. Default `true`. */
2657
+ searchable?: boolean;
2658
+ searchPlaceholder?: string;
2659
+ /** Copy for an empty search result. */
2660
+ emptyText?: string;
2661
+ }
2662
+ /**
2663
+ * EmojiPicker — searchable, grouped emoji grid (ported from the Multica UI's
2664
+ * emoji-mart picker onto a self-contained dataset). Renders inline; put it in
2665
+ * a popover/dialog yourself, or use `QuickEmojiPicker` for the ready-made
2666
+ * add-reaction button.
2667
+ */
2668
+ declare const EmojiPicker: react.ForwardRefExoticComponent<EmojiPickerProps & react.RefAttributes<HTMLDivElement>>;
2669
+
2670
+ interface FieldGroupProps extends HTMLAttributes<HTMLDivElement> {
2671
+ }
2672
+ /** Vertical stack of fields (one form section). */
2673
+ declare const FieldGroup: react.ForwardRefExoticComponent<FieldGroupProps & react.RefAttributes<HTMLDivElement>>;
2674
+ type FieldOrientation = "vertical" | "horizontal";
2675
+ interface FieldProps extends HTMLAttributes<HTMLDivElement> {
2676
+ /** `"vertical"` stacks label above the control; `"horizontal"` puts the
2677
+ * label in a fixed left column (tune `--klun-field-label-w`). */
2678
+ orientation?: FieldOrientation;
2679
+ /** Marks the field invalid: tints the label/description hooks via `data-invalid`. */
2680
+ invalid?: boolean;
2681
+ }
2682
+ /** One form field: label/description + control. */
2683
+ declare const Field: react.ForwardRefExoticComponent<FieldProps & react.RefAttributes<HTMLDivElement>>;
2684
+ interface FieldContentProps extends HTMLAttributes<HTMLDivElement> {
2685
+ }
2686
+ /** Groups title + description so they keep a tight gap. */
2687
+ declare const FieldContent: react.ForwardRefExoticComponent<FieldContentProps & react.RefAttributes<HTMLDivElement>>;
2688
+ interface FieldLabelProps extends LabelHTMLAttributes<HTMLLabelElement> {
2689
+ }
2690
+ /** `<label>` variant — use when the control can be associated by htmlFor. */
2691
+ declare const FieldLabel: react.ForwardRefExoticComponent<FieldLabelProps & react.RefAttributes<HTMLLabelElement>>;
2692
+ interface FieldTitleProps extends HTMLAttributes<HTMLDivElement> {
2693
+ }
2694
+ /** Non-`<label>` variant for controls that need a group title. */
2695
+ declare const FieldTitle: react.ForwardRefExoticComponent<FieldTitleProps & react.RefAttributes<HTMLDivElement>>;
2696
+ interface FieldDescriptionProps extends HTMLAttributes<HTMLDivElement> {
2697
+ }
2698
+ /** Helper text under the control. */
2699
+ declare const FieldDescription: react.ForwardRefExoticComponent<FieldDescriptionProps & react.RefAttributes<HTMLDivElement>>;
2700
+ interface FieldErrorProps extends HTMLAttributes<HTMLDivElement> {
2701
+ }
2702
+ /** Validation message; announced by screen readers (`role="alert"`). */
2703
+ declare const FieldError: react.ForwardRefExoticComponent<FieldErrorProps & react.RefAttributes<HTMLDivElement>>;
2704
+
2134
2705
  interface FileUploadProps extends Omit<HTMLAttributes<HTMLDivElement>, "style"> {
2135
2706
  /** Called with the dropped/selected files. */
2136
2707
  onFiles?: (files: File[]) => void;
@@ -2272,6 +2843,43 @@ interface HintProps extends HTMLAttributes<HTMLSpanElement> {
2272
2843
  /** Klun UI HintText — helper / error text beneath a field. */
2273
2844
  declare const Hint: react.ForwardRefExoticComponent<HintProps & react.RefAttributes<HTMLSpanElement>>;
2274
2845
 
2846
+ interface IconGroup {
2847
+ /** Group label shown as a tab, e.g. `"常用"`. */
2848
+ label: string;
2849
+ /** Icon names of the group, e.g. `"ri-settings-3-line"`. */
2850
+ icons: string[];
2851
+ }
2852
+ /** Built-in icon library — Remix line glyphs, grouped by purpose. */
2853
+ declare const ICON_GROUPS: IconGroup[];
2854
+ interface IconPickerProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange" | "style"> {
2855
+ /** Selected icon name (e.g. `"ri-settings-3-line"`); empty = nothing picked. */
2856
+ value?: string;
2857
+ /** Fired with the picked icon name, or `""` when cleared. */
2858
+ onChange?: (icon: string) => void;
2859
+ /** Icon library to browse. Defaults to the built-in `ICON_GROUPS`. */
2860
+ groups?: IconGroup[];
2861
+ /** Dialog title. Default `"选择图标"`. */
2862
+ dialogTitle?: ReactNode;
2863
+ /** Search field placeholder. */
2864
+ placeholder?: string;
2865
+ /** Turn an icon name into a node. Defaults to a Remix `<i class={name} />`. */
2866
+ renderIcon?: (icon: string) => ReactNode;
2867
+ /** Glyph for the empty state. Defaults to a plus. */
2868
+ renderEmpty?: () => ReactNode;
2869
+ /** Dialog width. Default `520`. */
2870
+ width?: number | string;
2871
+ /** Greyscale text put in the footer next to the current icon. */
2872
+ emptyText?: string;
2873
+ disabled?: boolean;
2874
+ style?: CSSProperties;
2875
+ }
2876
+ /**
2877
+ * IconPicker — a 38×32 icon trigger that opens a searchable icon dialog
2878
+ * (category tabs + auto-filling grid). Picking an icon commits immediately;
2879
+ * `清除` empties the value.
2880
+ */
2881
+ declare const IconPicker: react.ForwardRefExoticComponent<IconPickerProps & react.RefAttributes<HTMLDivElement>>;
2882
+
2275
2883
  type ImageUploadShape = "circle" | "square";
2276
2884
  interface ImageUploadProps extends Omit<HTMLAttributes<HTMLDivElement>, "style"> {
2277
2885
  /** Current image URL; shows the preview when set. */
@@ -2373,6 +2981,42 @@ interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "size">
2373
2981
  */
2374
2982
  declare const Input: react.ForwardRefExoticComponent<InputProps & react.RefAttributes<HTMLInputElement>>;
2375
2983
 
2984
+ interface InputGroupProps extends HTMLAttributes<HTMLDivElement> {
2985
+ }
2986
+ /**
2987
+ * InputGroup — a field row that packs the input with addons and buttons into
2988
+ * one framed control (ported from the Multica UI). Use `block-*` addons to
2989
+ * stack content above/below the input; focus ring, disabled and invalid states
2990
+ * live on the group, matching `Input`.
2991
+ */
2992
+ declare const InputGroup: react.ForwardRefExoticComponent<InputGroupProps & react.RefAttributes<HTMLDivElement>>;
2993
+ interface InputGroupInputProps extends InputHTMLAttributes<HTMLInputElement> {
2994
+ }
2995
+ /** The borderless input that lives inside the group. */
2996
+ declare const InputGroupInput: react.ForwardRefExoticComponent<InputGroupInputProps & react.RefAttributes<HTMLInputElement>>;
2997
+ type InputGroupAddonAlign = "inline-start" | "inline-end" | "block-start" | "block-end";
2998
+ interface InputGroupAddonProps extends HTMLAttributes<HTMLDivElement> {
2999
+ align?: InputGroupAddonAlign;
3000
+ }
3001
+ /**
3002
+ * Icon/text/control slot next to the input. A click anywhere on the addon
3003
+ * focuses the input — addons read as part of the field — while buttons inside
3004
+ * keep their own click behaviour.
3005
+ */
3006
+ declare const InputGroupAddon: react.ForwardRefExoticComponent<InputGroupAddonProps & react.RefAttributes<HTMLDivElement>>;
3007
+ interface InputGroupTextProps extends HTMLAttributes<HTMLSpanElement> {
3008
+ }
3009
+ /** Plain text slot (prefix, suffix, unit…). */
3010
+ declare const InputGroupText: react.ForwardRefExoticComponent<InputGroupTextProps & react.RefAttributes<HTMLSpanElement>>;
3011
+ type InputGroupButtonSize = "xsmall" | "icon-xsmall" | "icon-small";
3012
+ type InputGroupButtonVariant = "ghost" | "soft" | "primary";
3013
+ interface InputGroupButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
3014
+ size?: InputGroupButtonSize;
3015
+ variant?: InputGroupButtonVariant;
3016
+ }
3017
+ /** Compact button sized to sit inside the group (attach, send, clear…). */
3018
+ declare const InputGroupButton: react.ForwardRefExoticComponent<InputGroupButtonProps & react.RefAttributes<HTMLButtonElement>>;
3019
+
2376
3020
  interface LabelProps extends LabelHTMLAttributes<HTMLLabelElement> {
2377
3021
  required?: boolean;
2378
3022
  sublabel?: ReactNode;
@@ -2399,6 +3043,26 @@ interface PasswordStrengthProps extends HTMLAttributes<HTMLDivElement> {
2399
3043
  */
2400
3044
  declare const PasswordStrength: react.ForwardRefExoticComponent<PasswordStrengthProps & react.RefAttributes<HTMLDivElement>>;
2401
3045
 
3046
+ /** The eight one-click reactions offered before expanding to the full picker. */
3047
+ declare const QUICK_EMOJIS: string[];
3048
+ interface QuickEmojiPickerProps {
3049
+ /** Fired with the native emoji character. */
3050
+ onSelect: (emoji: string) => void;
3051
+ /** One-click reactions. Defaults to the built-in row. */
3052
+ emojis?: string[];
3053
+ /** Panel alignment against the trigger. Default `"left"`. */
3054
+ align?: "left" | "right";
3055
+ /** Accessible name / tooltip of the trigger. Default `"Add reaction"`. */
3056
+ label?: string;
3057
+ className?: string;
3058
+ }
3059
+ /**
3060
+ * QuickEmojiPicker — a small add-reaction button: a popover with one-click
3061
+ * reactions and a “More emojis…” expansion of the full `EmojiPicker`
3062
+ * (ported from the Multica UI).
3063
+ */
3064
+ declare const QuickEmojiPicker: react.ForwardRefExoticComponent<QuickEmojiPickerProps & react.RefAttributes<HTMLButtonElement>>;
3065
+
2402
3066
  type RadioSize = "small" | "medium" | "large";
2403
3067
  interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "onChange" | "value" | "type" | "size"> {
2404
3068
  checked?: boolean;
@@ -2464,15 +3128,6 @@ interface RangeSliderProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChang
2464
3128
  */
2465
3129
  declare const RangeSlider: react.ForwardRefExoticComponent<RangeSliderProps & react.RefAttributes<HTMLDivElement>>;
2466
3130
 
2467
- interface RichEditorToolbarProps extends HTMLAttributes<HTMLDivElement> {
2468
- /** Ids of active formatting buttons (bold, italic, h1, ul, …). */
2469
- active?: string[];
2470
- /** Called with the button id when a tool is pressed. */
2471
- onAction?: (id: string) => void;
2472
- }
2473
- /** RichEditorToolbar — formatting toolbar for a text editor (presentational). */
2474
- declare const RichEditorToolbar: react.ForwardRefExoticComponent<RichEditorToolbarProps & react.RefAttributes<HTMLDivElement>>;
2475
-
2476
3131
  interface RichEditorProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange" | "defaultValue"> {
2477
3132
  /** HTML value. Controlled. */
2478
3133
  value?: string;
@@ -2497,6 +3152,15 @@ interface RichEditorProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange
2497
3152
  */
2498
3153
  declare const RichEditor: react.ForwardRefExoticComponent<RichEditorProps & react.RefAttributes<HTMLDivElement>>;
2499
3154
 
3155
+ interface RichEditorToolbarProps extends HTMLAttributes<HTMLDivElement> {
3156
+ /** Ids of active formatting buttons (bold, italic, h1, ul, …). */
3157
+ active?: string[];
3158
+ /** Called with the button id when a tool is pressed. */
3159
+ onAction?: (id: string) => void;
3160
+ }
3161
+ /** RichEditorToolbar — formatting toolbar for a text editor (presentational). */
3162
+ declare const RichEditorToolbar: react.ForwardRefExoticComponent<RichEditorToolbarProps & react.RefAttributes<HTMLDivElement>>;
3163
+
2500
3164
  interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, "size" | "style"> {
2501
3165
  size?: "xsmall" | "small" | "medium" | "large";
2502
3166
  placeholder?: string;
@@ -2989,6 +3653,74 @@ interface SegmentedControlProps extends Omit<HTMLAttributes<HTMLDivElement>, "on
2989
3653
  /** Klun UI SegmentedControl — equal-width segmented toggle. */
2990
3654
  declare const SegmentedControl: react.ForwardRefExoticComponent<SegmentedControlProps & react.RefAttributes<HTMLDivElement>>;
2991
3655
 
3656
+ interface SidebarNavItem {
3657
+ /** Unique key; also the `navKey` value that marks this rail button active. */
3658
+ key: string;
3659
+ /** Icon rendered inside the 40px square button. */
3660
+ icon?: ReactNode;
3661
+ /** Accessible name; also used as the native tooltip. */
3662
+ label?: string;
3663
+ disabled?: boolean;
3664
+ }
3665
+ interface SidebarMenuItem {
3666
+ key: string;
3667
+ label: ReactNode;
3668
+ icon?: ReactNode;
3669
+ disabled?: boolean;
3670
+ /** Non-empty children turn the row into an expander (chevron + nested list). */
3671
+ children?: SidebarMenuItem[];
3672
+ }
3673
+ interface SidebarSection {
3674
+ /** Group caption row. */
3675
+ title?: ReactNode;
3676
+ items: SidebarMenuItem[];
3677
+ }
3678
+ interface SidebarProps extends Omit<HTMLAttributes<HTMLDivElement>, "title" | "onSelect"> {
3679
+ /** Brand / logo node shown at the top of the icon rail. */
3680
+ brand?: ReactNode;
3681
+ /** Icon-rail navigation entries. */
3682
+ navItems?: SidebarNavItem[];
3683
+ /** Icon-rail entries pinned to the bottom (e.g. settings). */
3684
+ footNavItems?: SidebarNavItem[];
3685
+ /** Avatar or account slot pinned below the rail's foot items. */
3686
+ avatar?: ReactNode;
3687
+ /** Controlled active rail key. */
3688
+ navKey?: string;
3689
+ /** Initial active rail key when uncontrolled. */
3690
+ defaultNavKey?: string;
3691
+ /** Fired when a rail entry is chosen. */
3692
+ onNavChange?: (key: string) => void;
3693
+ /** Detail-panel heading (e.g. the active section name). */
3694
+ title?: ReactNode;
3695
+ /** Menu sections rendered in the detail panel. */
3696
+ sections?: SidebarSection[];
3697
+ /** Controlled key of the highlighted menu row. */
3698
+ selectedKey?: string;
3699
+ /** Fired when a leaf menu row is chosen. */
3700
+ onSelect?: (key: string, item: SidebarMenuItem) => void;
3701
+ /** Menu keys whose children start expanded (uncontrolled). */
3702
+ defaultExpandedKeys?: string[];
3703
+ /** Render the search field above the menu. */
3704
+ searchable?: boolean;
3705
+ searchPlaceholder?: string;
3706
+ /** Fired on every keystroke in the search field. */
3707
+ onSearch?: (value: string) => void;
3708
+ /** Controlled collapsed state of the detail panel. */
3709
+ collapsed?: boolean;
3710
+ /** Initial collapsed state when uncontrolled. Default `false`. */
3711
+ defaultCollapsed?: boolean;
3712
+ /** Fired whenever the collapsed state changes. */
3713
+ onCollapse?: (collapsed: boolean) => void;
3714
+ }
3715
+ /**
3716
+ * Sidebar — two-level navigation: a fixed 64px icon rail (brand, primary
3717
+ * icons, foot items, avatar) beside a 320px detail panel that collapses to
3718
+ * the same 64px width. Ported 1:1 from the “Minimalist sidebar” Figma Make
3719
+ * community file; colours go through klun tokens, geometry and the 500ms
3720
+ * soft-spring collapse animation follow the original.
3721
+ */
3722
+ declare const Sidebar: react.ForwardRefExoticComponent<SidebarProps & react.RefAttributes<HTMLDivElement>>;
3723
+
2992
3724
  interface Step {
2993
3725
  label: ReactNode;
2994
3726
  description?: ReactNode;
@@ -3001,6 +3733,97 @@ interface StepIndicatorProps extends HTMLAttributes<HTMLDivElement> {
3001
3733
  /** Klun UI StepIndicator — horizontal numbered progress stepper. */
3002
3734
  declare const StepIndicator: react.ForwardRefExoticComponent<StepIndicatorProps & react.RefAttributes<HTMLDivElement>>;
3003
3735
 
3736
+ type StepperOrientation = "horizontal" | "vertical";
3737
+ type StepperStepState = "active" | "completed" | "inactive" | "loading";
3738
+ interface StepperIndicators {
3739
+ active?: ReactNode;
3740
+ completed?: ReactNode;
3741
+ inactive?: ReactNode;
3742
+ loading?: ReactNode;
3743
+ }
3744
+ interface StepperContextValue {
3745
+ activeStep: number;
3746
+ setActiveStep: (step: number) => void;
3747
+ orientation: StepperOrientation;
3748
+ registerTrigger: (node: HTMLButtonElement) => void;
3749
+ unregisterTrigger: (node: HTMLButtonElement) => void;
3750
+ triggerNodes: HTMLButtonElement[];
3751
+ focusNext: (currentIndex: number) => void;
3752
+ focusPrev: (currentIndex: number) => void;
3753
+ focusFirst: () => void;
3754
+ focusLast: () => void;
3755
+ indicators: StepperIndicators;
3756
+ }
3757
+ interface StepItemContextValue {
3758
+ step: number;
3759
+ state: StepperStepState;
3760
+ isDisabled: boolean;
3761
+ isLoading: boolean;
3762
+ }
3763
+ declare function useStepper(): StepperContextValue;
3764
+ declare function useStepItem(): StepItemContextValue;
3765
+ interface StepperProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange" | "defaultValue"> {
3766
+ /** Initial step when uncontrolled. Default `1`. */
3767
+ defaultValue?: number;
3768
+ /** Controlled active step (1-based). */
3769
+ value?: number;
3770
+ onValueChange?: (value: number) => void;
3771
+ orientation?: StepperOrientation;
3772
+ /** Replace the default indicator content per state. */
3773
+ indicators?: StepperIndicators;
3774
+ }
3775
+ /**
3776
+ * Stepper — interactive tab-style step navigation (ported from the Multica UI):
3777
+ * click or arrow-key between steps, with a content panel per step. Unlike the
3778
+ * presentational `StepIndicator`, steps are actionable and panels switch; for
3779
+ * linear form flows use `Wizard`.
3780
+ */
3781
+ declare const Stepper: react.ForwardRefExoticComponent<StepperProps & react.RefAttributes<HTMLDivElement>>;
3782
+ interface StepperNavProps extends HTMLAttributes<HTMLElement> {
3783
+ }
3784
+ /** Row/column that holds the step triggers (and separators). */
3785
+ declare const StepperNav: react.ForwardRefExoticComponent<StepperNavProps & react.RefAttributes<HTMLElement>>;
3786
+ interface StepperItemProps extends HTMLAttributes<HTMLDivElement> {
3787
+ /** 1-based step number. */
3788
+ step: number;
3789
+ /** Force the completed state (otherwise `step < activeStep` does). */
3790
+ completed?: boolean;
3791
+ disabled?: boolean;
3792
+ /** Show the loading indicator while this is the active step. */
3793
+ loading?: boolean;
3794
+ }
3795
+ declare const StepperItem: react.ForwardRefExoticComponent<StepperItemProps & react.RefAttributes<HTMLDivElement>>;
3796
+ interface StepperTriggerProps extends ButtonHTMLAttributes<HTMLButtonElement> {
3797
+ }
3798
+ /** The clickable step. Registers itself for arrow-key navigation. */
3799
+ declare const StepperTrigger: react.ForwardRefExoticComponent<StepperTriggerProps & react.RefAttributes<HTMLButtonElement>>;
3800
+ interface StepperIndicatorProps extends HTMLAttributes<HTMLDivElement> {
3801
+ }
3802
+ /** Circular state badge (number by default; replaceable via `indicators`). */
3803
+ declare const StepperIndicator: react.ForwardRefExoticComponent<StepperIndicatorProps & react.RefAttributes<HTMLDivElement>>;
3804
+ interface StepperSeparatorProps extends HTMLAttributes<HTMLDivElement> {
3805
+ }
3806
+ /** Connector between steps; fills with the accent once its step completes.
3807
+ * Render it inside the `StepperItem` it follows. */
3808
+ declare const StepperSeparator: react.ForwardRefExoticComponent<StepperSeparatorProps & react.RefAttributes<HTMLDivElement>>;
3809
+ interface StepperTitleProps extends HTMLAttributes<HTMLHeadingElement> {
3810
+ }
3811
+ declare const StepperTitle: react.ForwardRefExoticComponent<StepperTitleProps & react.RefAttributes<HTMLHeadingElement>>;
3812
+ interface StepperDescriptionProps extends HTMLAttributes<HTMLDivElement> {
3813
+ }
3814
+ declare const StepperDescription: react.ForwardRefExoticComponent<StepperDescriptionProps & react.RefAttributes<HTMLDivElement>>;
3815
+ interface StepperPanelProps extends HTMLAttributes<HTMLDivElement> {
3816
+ }
3817
+ /** Wrapper for the step content below the nav. */
3818
+ declare const StepperPanel: react.ForwardRefExoticComponent<StepperPanelProps & react.RefAttributes<HTMLDivElement>>;
3819
+ interface StepperContentProps extends HTMLAttributes<HTMLDivElement> {
3820
+ /** The step this panel belongs to. */
3821
+ value: number;
3822
+ /** Keep the panel mounted (hidden) when inactive. */
3823
+ forceMount?: boolean;
3824
+ }
3825
+ declare const StepperContent: react.ForwardRefExoticComponent<StepperContentProps & react.RefAttributes<HTMLDivElement>>;
3826
+
3004
3827
  interface TabItem {
3005
3828
  value: string;
3006
3829
  label: ReactNode;
@@ -3202,6 +4025,35 @@ interface DropdownProps extends HTMLAttributes<HTMLSpanElement> {
3202
4025
  /** Klun UI Dropdown — click-to-open menu anchored to a trigger. */
3203
4026
  declare const Dropdown: react.ForwardRefExoticComponent<DropdownProps & react.RefAttributes<HTMLSpanElement>>;
3204
4027
 
4028
+ type HoverCardSide = "top" | "bottom" | "left" | "right";
4029
+ type HoverCardAlign = "start" | "center" | "end";
4030
+ interface HoverCardProps {
4031
+ children: ReactNode;
4032
+ /** Hover-in delay in ms. Default `300`. */
4033
+ openDelay?: number;
4034
+ /** Hover-out delay in ms; re-entering the trigger or panel cancels it. Default `150`. */
4035
+ closeDelay?: number;
4036
+ /** Controlled open state. */
4037
+ open?: boolean;
4038
+ onOpenChange?: (open: boolean) => void;
4039
+ }
4040
+ /**
4041
+ * HoverCard — a rich preview panel that opens on hover/focus of its trigger
4042
+ * (ported from the Multica UI). Unlike `Tooltip`, the panel is interactive and
4043
+ * stays open while the pointer is inside it.
4044
+ */
4045
+ declare function HoverCard({ children, openDelay, closeDelay, open: openProp, onOpenChange, }: HoverCardProps): react.JSX.Element;
4046
+ interface HoverCardTriggerProps extends HTMLAttributes<HTMLSpanElement> {
4047
+ }
4048
+ /** Wraps the hover/focus target (usually a link or button). */
4049
+ declare const HoverCardTrigger: react.ForwardRefExoticComponent<HoverCardTriggerProps & react.RefAttributes<HTMLSpanElement>>;
4050
+ interface HoverCardContentProps extends HTMLAttributes<HTMLDivElement> {
4051
+ side?: HoverCardSide;
4052
+ align?: HoverCardAlign;
4053
+ }
4054
+ /** The preview panel; portaled to <body> and clamped to the viewport. */
4055
+ declare const HoverCardContent: react.ForwardRefExoticComponent<HoverCardContentProps & react.RefAttributes<HTMLDivElement>>;
4056
+
3205
4057
  interface ImageItem {
3206
4058
  src: string;
3207
4059
  alt?: string;
@@ -3339,4 +4191,4 @@ interface PopoverProps extends Omit<HTMLAttributes<HTMLSpanElement>, "children">
3339
4191
  */
3340
4192
  declare const Popover: react.ForwardRefExoticComponent<PopoverProps & react.RefAttributes<HTMLSpanElement>>;
3341
4193
 
3342
- export { type Accent, Accordion, type AccordionItem, type AccordionProps, Alert, type AlertProps, type AlertStatus, type AlertVariant, AutoComplete, type AutoCompleteOption, type AutoCompleteProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, type AvatarSize, type AvatarStatus, Badge, type BadgeColor, type BadgeProps, type BadgeVariant, Banner, type BannerProps, type BannerStatus, type BannerVariant, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, type Breakpoint, BulkAction, BulkActionBar, type BulkActionBarProps, type BulkActionProps, Button, type ButtonAppearance, ButtonGroup, type ButtonGroupItem, type ButtonGroupProps, type ButtonGroupSize, type ButtonKind, type ButtonProps, type ButtonSize, type ButtonVariant, CRON_PRESETS, Card, type CardProps, type CardVariant, Carousel, type CarouselProps, Cascader, type CascaderOption, type CascaderProps, CharacterCounter, type CharacterCounterProps, ChartLegend, type ChartLegendItem, type ChartLegendProps, ChartTooltip, type ChartTooltipProps, type ChartTooltipRow, Checkbox, CheckboxCard, type CheckboxCardAlign, type CheckboxCardProps, CheckboxGroup, type CheckboxGroupOption, type CheckboxGroupProps, type CheckboxProps, type CheckboxSize, ChipColor, CircularProgress, type CircularProgressColor, type CircularProgressProps, type ClassValue, CodeViewer, type CodeViewerProps, Col, type ColProps, type ColSize, Collapse, type CollapseProps, ColorDot, type ColorDotProps, type ColorDotSize, ColorPicker, type ColorPickerProps, ColorSlider, type ColorSliderProps, type ColorSliderSize, type CommandGroup, type CommandItem, CommandMenu, type CommandMenuProps, type CompactButtonAppearance, type CompactButtonProps, type CompactButtonSize, CompactSelect, type CompactSelectAppearance, CompactSelectForInput, type CompactSelectForInputProps, type CompactSelectForInputSide, type CompactSelectForInputSize, type CompactSelectProps, type CompactSelectSize, type ComponentSize, ConfigProvider, type ConfigProviderProps, Confirm, type ConfirmIntent, type ConfirmOptions, type ConfirmRequireInput, type ConfirmResult, ContentLabel, type ContentLabelColor, type ContentLabelProps, ContextMenu, type ContextMenuItem, type ContextMenuProps, type ContextMenuState, CopyButton, type CopyButtonProps, type CopyButtonSize, type CopyButtonVariant, type CountdownResult, CounterInput, type CounterInputProps, type CounterInputSize, CronEditor, type CronEditorProps, type CronPreset, CrossRefBadge, type CrossRefBadgeProps, type CrossRefKind, type CrossRefPreview, DatePicker, type DatePickerProps, type DateRange, DateRangePicker, type DateRangePickerProps, DateTimePicker, type DateTimePickerProps, type DefaultButtonProps, type DescriptionItem, Descriptions, type DescriptionsLayout, type DescriptionsProps, type DescriptionsSize, type DescriptionsVariant, type DiffHunk, type DiffLine, type DiffLineType, type DiffMode, type DiffSide, DiffViewer, type DiffViewerProps, DigitInput, type DigitInputProps, type DigitInputSize, type Direction, Divider, type DividerProps, type DividerVariant, type DotTone, Drawer, type DrawerPlacement, type DrawerProps, Dropdown, type DropdownItem, type DropdownProps, EmptyState, type EmptyStateProps, ExpiryCountdown, type ExpiryCountdownProps, type FancyButtonProps, type FancyButtonSize, type FancyButtonVariant, type FieldSize, FileUpload, type FileUploadProps, Flex, type FlexGap, type FlexProps, Form, type FormInstance, FormItem, type FormItemProps, FormList, type FormListField, type FormListOperations, type FormListProps, type FormProps, type FormRule, Format, type FormatApi, GaugeBar, type GaugeBarColor, type GaugeBarProps, type GaugeBarSize, Grid, type Gutter, Hint, type HintProps, HorizontalFilter, type HorizontalFilterItem, type HorizontalFilterProps, type HorizontalFilterSize, type ImageItem, ImageUpload, type ImageUploadProps, type ImageUploadShape, ImageViewer, type ImageViewerProps, InlineInput, type InlineInputProps, type InlineInputTone, type InlineInputWeight, InlineSelect, type InlineSelectProps, type InlineSelectTone, type InlineSelectWeight, Input, type InputProps, Kanban, type KanbanCard, type KanbanColumn, type KanbanProps, Kbd, type KbdProps, KeyIcon, type KeyIconAppearance, type KeyIconColor, type KeyIconProps, type KeyIconSize, type KlunConfig, Label, type LabelProps, Layout, LayoutContent, type LayoutContentProps, LayoutFooter, type LayoutFooterProps, LayoutHeader, type LayoutHeaderProps, type LayoutProps, LayoutSider, type LinkButtonProps, type LinkButtonSize, type LinkButtonVariant, List, ListItem, type ListItemProps, type ListProps, LiveDot, type LiveDotProps, type Locale, type LogLevel, type LogLine, LogViewer, type LogViewerProps, Markdown, type MarkdownProps, Masonry, type MasonryBreakpoints, type MasonryColumns, type MasonryGutter, type MasonryProps, Menu, type MenuItem, type MenuProps, Message, type MessageApi, type MessageOptions, type MessageProps, type MessageStatus, Modal, type ModalProps, Money, type MoneyOptions, type MoneyPeriod, type MoneyProps, type MoneyResult, type MoneySize, type MoneyTone, type NamePath, Notification, type NotificationApi, type NotificationOptions, type NotificationPlacement, type NotificationProps, type NotificationStatus, PageHeader, type PageHeaderProps, type PageHeaderTab, Pagination, type PaginationProps, PasswordStrength, type PasswordStrengthLevel, type PasswordStrengthProps, type PctOptions, Popconfirm, type PopconfirmProps, Popover, type PopoverProps, ProgressBar, type ProgressBarProps, type ProgressColor, Radio, RadioCard, type RadioCardAlign, type RadioCardProps, type RadioProps, type RadioSize, type Radius, RangeSlider, type RangeSliderProps, type RangeSliderSize, Rating, type RatingProps, type RelTimeOptions, RelativeTime, type RelativeTimeProps, type Responsive, Result, type ResultProps, type ResultStatus, RichEditor, type RichEditorProps, RichEditorToolbar, type RichEditorToolbarProps, Row, type RowAlign, type RowJustify, type RowProps, type Rules, type ScreenMap, type SegmentItem, SegmentedControl, type SegmentedControlProps, SegmentedProgress, type SegmentedProgressColor, type SegmentedProgressProps, Select, SelectMenu, type SelectMenuOption, type SelectMenuProps, type SelectMenuSize, type SelectProps, type SiderProps, type SiderTheme, type SizeOptions, Skeleton, type SkeletonProps, Slider, type SliderProps, type SliderSize, type SortDir, Space, type SpaceProps, type SpaceSize, Spinner, type SpinnerProps, type SpinnerSize, Splitter, type SplitterLayout, SplitterPanel, type SplitterPanelProps, type SplitterProps, StatCard, type StatCardProps, type StatCardTint, Statistic, type StatisticProps, StatusBadge, type StatusBadgeProps, StatusDot, type StatusDotProps, type StatusTone, type Step, StepIndicator, type StepIndicatorProps, Switch, type SwitchProps, type SwitchSize, type TabItem, Table, type TableColumn, type TableMenuItem, type TableProps, type TableSort, Tabs, type TabsProps, type TabsVariant, Tag, type TagProps, Textarea, type TextareaProps, type TextareaSize, type Theme, TimePicker, type TimePickerProps, Timeline, type TimelineItem, type TimelineProps, Toast, type ToastAction, type ToastOptions, type ToastPosition, type ToastPromiseMessages, type ToastProps, type ToastStatus, Toaster, type ToasterProps, Tooltip, type TooltipProps, Tree, type TreeNode, type TreeProps, type UseFormOptions, type UseMessageDefaults, type UseNotificationDefaults, type VirtualColumn, VirtualTable, type VirtualTableProps, type WikiLinkResolver, Wizard, type WizardProps, type WizardStep, arSA, cx, deDE, describeCron, enUS, esES, fmt, frFR, idID, itIT, jaJP, koKR, locales, nlNL, parsePatch, plPL, primaryColorVars, ptBR, renderMarkdown, ruRU, toast, trTR, useBreakpoint, useConfig, useContextMenu, useForm, useLocale, useMappedSize, useMessage, useNotification, useSize, viVN, zhCN, zhTW };
4194
+ export { type Accent, Accordion, type AccordionItem, type AccordionProps, ActivityHeatmap, type ActivityHeatmapProps, ActorAvatar, type ActorAvatarProps, type ActorAvatarSize, type ActorKind, Alert, type AlertProps, type AlertStatus, type AlertVariant, AutoComplete, type AutoCompleteOption, type AutoCompleteProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, type AvatarSize, type AvatarStatus, Badge, type BadgeColor, type BadgeProps, type BadgeVariant, Banner, type BannerProps, type BannerStatus, type BannerVariant, BorderBeam, type BorderBeamProps, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, type Breakpoint, BulkAction, BulkActionBar, type BulkActionBarProps, type BulkActionProps, Button, type ButtonAppearance, ButtonGroup, type ButtonGroupItem, type ButtonGroupProps, type ButtonGroupSize, type ButtonKind, type ButtonProps, type ButtonSize, type ButtonVariant, CRON_PRESETS, CapabilityBanner, type CapabilityBannerProps, type CapabilityReason, type CapabilityResource, CappedNumberFlow, type CappedNumberFlowProps, Card, type CardProps, type CardVariant, Carousel, type CarouselProps, Cascader, type CascaderOption, type CascaderProps, CharacterCounter, type CharacterCounterProps, ChartLegend, type ChartLegendItem, type ChartLegendProps, ChartTooltip, type ChartTooltipProps, type ChartTooltipRow, Checkbox, CheckboxCard, type CheckboxCardAlign, type CheckboxCardProps, CheckboxGroup, type CheckboxGroupOption, type CheckboxGroupProps, type CheckboxProps, type CheckboxSize, ChipColor, CircularProgress, type CircularProgressColor, type CircularProgressProps, type ClassValue, CodeViewer, type CodeViewerProps, Col, type ColProps, type ColSize, Collapse, type CollapseProps, ColorDot, type ColorDotProps, type ColorDotSize, ColorPicker, type ColorPickerProps, ColorSlider, type ColorSliderProps, type ColorSliderSize, type CommandGroup, type CommandItem, CommandMenu, type CommandMenuProps, type CompactButtonAppearance, type CompactButtonProps, type CompactButtonSize, CompactNumberFlow, type CompactNumberFlowProps, CompactSelect, type CompactSelectAppearance, CompactSelectForInput, type CompactSelectForInputProps, type CompactSelectForInputSide, type CompactSelectForInputSize, type CompactSelectProps, type CompactSelectSize, type ComponentSize, ConfigProvider, type ConfigProviderProps, Confirm, type ConfirmIntent, type ConfirmOptions, type ConfirmRequireInput, type ConfirmResult, ContentLabel, type ContentLabelColor, type ContentLabelProps, ContextMenu, type ContextMenuItem, type ContextMenuProps, type ContextMenuState, CopyButton, type CopyButtonProps, type CopyButtonSize, type CopyButtonVariant, type CountdownResult, CounterInput, type CounterInputProps, type CounterInputSize, CronEditor, type CronEditorLabels, type CronEditorProps, type CronPreset, CrossRefBadge, type CrossRefBadgeProps, type CrossRefKind, type CrossRefPreview, CurrencyNumberFlow, type CurrencyNumberFlowProps, DatePicker, type DatePickerProps, type DateRange, DateRangePicker, type DateRangePickerProps, DateTimePicker, type DateTimePickerProps, type DefaultButtonProps, type Density, type DescriptionItem, Descriptions, type DescriptionsLayout, type DescriptionsProps, type DescriptionsSize, type DescriptionsVariant, type DiffHunk, type DiffLine, type DiffLineType, type DiffMode, type DiffSide, DiffViewer, type DiffViewerProps, DigitInput, type DigitInputProps, type DigitInputSize, type Direction, Divider, type DividerProps, type DividerVariant, DotSphere, type DotSphereProps, type DotTone, Drawer, type DrawerPlacement, type DrawerProps, Dropdown, type DropdownItem, type DropdownProps, EmojiPicker, type EmojiPickerProps, EmptyState, type EmptyStateProps, ExpiryCountdown, type ExpiryCountdownProps, type FancyButtonProps, type FancyButtonSize, type FancyButtonVariant, Field, FieldContent, type FieldContentProps, FieldDescription, type FieldDescriptionProps, FieldError, type FieldErrorProps, FieldGroup, type FieldGroupProps, FieldLabel, type FieldLabelProps, type FieldOrientation, type FieldProps, type FieldSize, FieldTitle, type FieldTitleProps, FileUpload, type FileUploadProps, Flex, type FlexGap, type FlexProps, Form, type FormInstance, FormItem, type FormItemProps, FormList, type FormListField, type FormListOperations, type FormListProps, type FormProps, type FormRule, Format, type FormatApi, GaugeBar, type GaugeBarColor, type GaugeBarProps, type GaugeBarSize, Grid, type Gutter, type HeatmapCell, type HeatmapGrid, type HeatmapMonthLabel, type HeatmapOptions, type HeatmapSummary, Hint, type HintProps, HorizontalFilter, type HorizontalFilterItem, type HorizontalFilterProps, type HorizontalFilterSize, HoverCard, type HoverCardAlign, HoverCardContent, type HoverCardContentProps, type HoverCardProps, type HoverCardSide, HoverCardTrigger, type HoverCardTriggerProps, ICON_GROUPS, type IconGroup, IconPicker, type IconPickerProps, type ImageItem, ImageUpload, type ImageUploadProps, type ImageUploadShape, ImageViewer, type ImageViewerProps, InlineInput, type InlineInputProps, type InlineInputTone, type InlineInputWeight, InlineSelect, type InlineSelectProps, type InlineSelectTone, type InlineSelectWeight, Input, InputGroup, InputGroupAddon, type InputGroupAddonAlign, type InputGroupAddonProps, InputGroupButton, type InputGroupButtonProps, type InputGroupButtonSize, type InputGroupButtonVariant, InputGroupInput, type InputGroupInputProps, type InputGroupProps, InputGroupText, type InputGroupTextProps, type InputProps, Item, ItemActions, type ItemActionsProps, ItemContent, type ItemContentProps, ItemDescription, type ItemDescriptionProps, ItemFooter, type ItemFooterProps, ItemGroup, type ItemGroupProps, ItemHeader, type ItemHeaderProps, ItemMedia, type ItemMediaProps, type ItemMediaVariant, type ItemProps, ItemSeparator, type ItemSeparatorProps, type ItemSize, ItemTitle, type ItemTitleProps, type ItemVariant, Kanban, type KanbanCard, type KanbanColumn, type KanbanProps, Kbd, type KbdProps, KeyIcon, type KeyIconAppearance, type KeyIconColor, type KeyIconProps, type KeyIconSize, type KlunConfig, LIST_GRID_BOTTOM_CLEARANCE, Label, type LabelProps, Layout, LayoutContent, type LayoutContentProps, LayoutFooter, type LayoutFooterProps, LayoutHeader, type LayoutHeaderProps, type LayoutProps, LayoutSider, type LinkButtonProps, type LinkButtonSize, type LinkButtonVariant, List, ListGrid, ListGridBody, ListGridCell, ListGridHeader, ListGridHeaderCell, type ListGridHeaderCellProps, type ListGridProps, ListGridRow, type ListGridSortDirection, ListItem, type ListItemProps, type ListProps, LiveDot, type LiveDotProps, type Locale, type LogLevel, type LogLine, LogViewer, type LogViewerProps, Markdown, type MarkdownProps, Masonry, type MasonryBreakpoints, type MasonryColumns, type MasonryGutter, type MasonryProps, Menu, type MenuItem, type MenuProps, Message, type MessageApi, type MessageOptions, type MessageProps, type MessageStatus, Modal, type ModalProps, Money, type MoneyOptions, type MoneyPeriod, type MoneyProps, type MoneyResult, type MoneySize, type MoneyTone, type NamePath, NavigationProgress, type NavigationProgressProps, Notification, type NotificationApi, type NotificationOptions, type NotificationPlacement, type NotificationProps, type NotificationStatus, NumberFlow, type NumberFlowFormat, type NumberFlowProps, PageHeader, type PageHeaderProps, type PageHeaderTab, Pagination, type PaginationProps, PasswordStrength, type PasswordStrengthLevel, type PasswordStrengthProps, type PctOptions, Popconfirm, type PopconfirmProps, Popover, type PopoverProps, ProgressBar, type ProgressBarProps, type ProgressColor, QUICK_EMOJIS, QuickEmojiPicker, type QuickEmojiPickerProps, Radio, RadioCard, type RadioCardAlign, type RadioCardProps, type RadioProps, type RadioSize, type Radius, RangeSlider, type RangeSliderProps, type RangeSliderSize, Rating, type RatingProps, type Reaction, ReactionBar, type ReactionBarProps, type ReactionItem, type RelTimeOptions, RelativeTime, type RelativeTimeProps, type Responsive, Result, type ResultProps, type ResultStatus, RichEditor, type RichEditorProps, RichEditorToolbar, type RichEditorToolbarProps, Row, type RowAlign, type RowJustify, type RowProps, type Rules, type ScreenMap, type SegmentItem, SegmentedControl, type SegmentedControlProps, SegmentedProgress, type SegmentedProgressColor, type SegmentedProgressProps, Select, SelectMenu, type SelectMenuOption, type SelectMenuProps, type SelectMenuSize, type SelectProps, ShimmerText, type ShimmerTextProps, Sidebar, type SidebarMenuItem, type SidebarNavItem, type SidebarProps, type SidebarSection, type SiderProps, type SiderTheme, type SizeOptions, Skeleton, type SkeletonProps, Slider, type SliderProps, type SliderSize, type SortDir, Space, type SpaceProps, type SpaceSize, Spinner, type SpinnerProps, type SpinnerSize, Splitter, type SplitterLayout, SplitterPanel, type SplitterPanelProps, type SplitterProps, StatCard, type StatCardProps, type StatCardTint, Statistic, type StatisticProps, StatusBadge, type StatusBadgeProps, StatusDot, type StatusDotProps, type StatusTone, type Step, StepIndicator, type StepIndicatorProps, Stepper, StepperContent, type StepperContentProps, StepperDescription, type StepperDescriptionProps, StepperIndicator, type StepperIndicatorProps, type StepperIndicators, StepperItem, type StepperItemProps, StepperNav, type StepperNavProps, type StepperOrientation, StepperPanel, type StepperPanelProps, type StepperProps, StepperSeparator, type StepperSeparatorProps, type StepperStepState, StepperTitle, type StepperTitleProps, StepperTrigger, type StepperTriggerProps, Switch, type SwitchProps, type SwitchSize, type TabItem, Table, type TableColumn, type TableMenuItem, type TableProps, type TableSort, Tabs, type TabsProps, type TabsVariant, Tag, type TagProps, Textarea, type TextareaProps, type TextareaSize, type Theme, TimePicker, type TimePickerProps, Timeline, type TimelineItem, type TimelineProps, Toast, type ToastAction, type ToastOptions, type ToastPosition, type ToastPromiseMessages, type ToastProps, type ToastStatus, Toaster, type ToasterProps, Toggle, type ToggleProps, type ToggleSize, type ToggleVariant, Tooltip, type TooltipProps, Tree, type TreeNode, type TreeProps, UnicodeSpinner, type UnicodeSpinnerProps, type UseFormOptions, type UseMessageDefaults, type UseNotificationDefaults, type VirtualColumn, VirtualTable, type VirtualTableProps, type WikiLinkResolver, Wizard, type WizardProps, type WizardStep, arSA, buildHeatmapGrid, cx, deDE, describeCron, enUS, esES, fmt, formatAvatarEmoji, frFR, groupReactions, idID, itIT, jaJP, koKR, localTodayIso, locales, nlNL, parseAvatarEmoji, parsePatch, plPL, primaryColorVars, ptBR, renderMarkdown, resolveMove, ruRU, summarizeHeatmap, toast, trTR, useBreakpoint, useConfig, useContextMenu, useForm, useLocale, useMappedSize, useMessage, useNotification, useSize, useStepItem, useStepper, viVN, zhCN, zhTW };