klun-ui 0.4.0 → 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;
@@ -818,7 +1005,7 @@ interface KanbanColumn {
818
1005
  }
819
1006
  interface KanbanProps extends Omit<HTMLAttributes<HTMLDivElement>, "onSelect"> {
820
1007
  columns: KanbanColumn[];
821
- /** Fired when a card is dropped in another position/column. */
1008
+ /** Fired when a card lands in another position/column. */
822
1009
  onMove?: (cardId: string, fromColumn: string, toColumn: string, toIndex: number) => void;
823
1010
  onCardClick?: (card: KanbanCard, columnId: string) => void;
824
1011
  /** Replace the default card body. */
@@ -829,45 +1016,23 @@ interface KanbanProps extends Omit<HTMLAttributes<HTMLDivElement>, "onSelect"> {
829
1016
  style?: CSSProperties;
830
1017
  }
831
1018
  /**
832
- * Kanban — dependency-free drag & drop board. Columns hold cards; dropping a
833
- * card calls `onMove(cardId, fromColumn, toColumn, toIndex)` so the parent owns
834
- * the data. Native HTML5 DnD, keyboard-clickable cards.
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.
835
1021
  */
836
- declare const Kanban: react.ForwardRefExoticComponent<KanbanProps & react.RefAttributes<HTMLDivElement>>;
837
-
838
- interface VirtualColumn<Row> {
839
- key: string;
840
- header: ReactNode;
841
- /** Fixed px width; omit to share the remaining space. */
842
- width?: number;
843
- align?: "left" | "center" | "right";
844
- render?: (row: Row, index: number) => ReactNode;
845
- }
846
- interface VirtualTableProps<Row = Record<string, unknown>> extends Omit<HTMLAttributes<HTMLDivElement>, "onSelect"> {
847
- rows: Row[];
848
- columns: Array<VirtualColumn<Row>>;
849
- /** Fixed row height in px — required for windowing. Default `40`. */
850
- rowHeight?: number;
851
- /** Viewport height in px. Default `420`. */
852
- height?: number;
853
- getRowId?: (row: Row, index: number) => string | number;
854
- onRowClick?: (row: Row, index: number) => void;
855
- /** Extra rows rendered above/below the viewport. Default `8`. */
856
- overscan?: number;
857
- zebra?: boolean;
858
- empty?: ReactNode;
859
- style?: CSSProperties;
860
- }
1022
+ declare function resolveMove(columns: KanbanColumn[], activeId: string, overId: string, after: boolean): {
1023
+ fromColumn: string;
1024
+ toColumn: string;
1025
+ toIndex: number;
1026
+ } | null;
861
1027
  /**
862
- * VirtualTable — windowed table for very large datasets (100k+ rows). Renders
863
- * only the visible slice plus `overscan`, so scrolling stays smooth. Columns use
864
- * the same render-function shape as `Table`, minus sorting/selection (keep that
865
- * work server-side for big data).
1028
+ * Kanban — drag & drop board (dnd-kit: mouse, touch and keyboard). Columns hold
1029
+ * cards; dropping a card calls `onMove(cardId, fromColumn, toColumn, toIndex)`
1030
+ * so the parent owns the data. `toIndex` is the position in the target column
1031
+ * **after** the card is removed from its old slot, so consumers can simply
1032
+ * `splice(toIndex, 0, card)`. Dropping on the lower half of a card lands after
1033
+ * it, on the upper half before it; dropping on empty column space appends.
866
1034
  */
867
- declare function VirtualTable<Row = Record<string, unknown>>({ rows, columns, rowHeight, height, getRowId, onRowClick, overscan, zebra, empty, className, style, ...props }: VirtualTableProps<Row>): react.JSX.Element;
868
- declare namespace VirtualTable {
869
- var displayName: string;
870
- }
1035
+ declare const Kanban: react.ForwardRefExoticComponent<KanbanProps & react.RefAttributes<HTMLDivElement>>;
871
1036
 
872
1037
  interface KbdProps extends HTMLAttributes<HTMLElement> {
873
1038
  children?: ReactNode;
@@ -931,6 +1096,39 @@ interface ListItemProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
931
1096
  */
932
1097
  declare const ListItem: react.ForwardRefExoticComponent<ListItemProps & react.RefAttributes<HTMLDivElement>>;
933
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
+
934
1132
  type WikiLinkResolver = (target: string) => string | {
935
1133
  href: string;
936
1134
  label?: string;
@@ -985,6 +1183,54 @@ interface MoneyProps extends Omit<HTMLAttributes<HTMLSpanElement>, "prefix"> {
985
1183
  */
986
1184
  declare const Money: react.ForwardRefExoticComponent<MoneyProps & react.RefAttributes<HTMLSpanElement>>;
987
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
+
988
1234
  interface RatingProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange" | "style"> {
989
1235
  /** Current rating. Default `0`. */
990
1236
  value?: number;
@@ -1000,6 +1246,42 @@ interface RatingProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange" |
1000
1246
  /** Klun UI Rating — star rating, interactive or read-only. */
1001
1247
  declare const Rating: react.ForwardRefExoticComponent<RatingProps & react.RefAttributes<HTMLDivElement>>;
1002
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
+
1003
1285
  interface RelativeTimeProps extends TimeHTMLAttributes<HTMLTimeElement> {
1004
1286
  date: Date | number | string;
1005
1287
  locale?: string;
@@ -1030,6 +1312,20 @@ interface ExpiryCountdownProps extends HTMLAttributes<HTMLSpanElement> {
1030
1312
  */
1031
1313
  declare const ExpiryCountdown: react.ForwardRefExoticComponent<ExpiryCountdownProps & react.RefAttributes<HTMLSpanElement>>;
1032
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
+
1033
1329
  type StatCardTint = "feature" | "success" | "warning" | "information" | "error";
1034
1330
  interface StatCardProps extends HTMLAttributes<HTMLDivElement> {
1035
1331
  label?: ReactNode;
@@ -1244,7 +1540,7 @@ interface TableProps<Row = any> extends Omit<HTMLAttributes<HTMLDivElement>, "st
1244
1540
  defaultExpandedRowKeys?: Array<string | number>;
1245
1541
  /** Show a toolbar "Columns" menu to toggle column visibility. */
1246
1542
  columnSettings?: boolean;
1247
- /** Enable drag-to-reorder rows (native HTML5 DnD; disabled in tree mode). */
1543
+ /** Enable drag-to-reorder rows (dnd-kit: pointer + keyboard; disabled in tree mode). */
1248
1544
  rowDraggable?: boolean;
1249
1545
  /** Called with the reordered rows after a drop. */
1250
1546
  onReorder?: (rows: Row[], from: number, to: number) => void;
@@ -1369,6 +1665,40 @@ interface TreeProps extends Omit<HTMLAttributes<HTMLDivElement>, "onSelect"> {
1369
1665
  */
1370
1666
  declare const Tree: react.ForwardRefExoticComponent<TreeProps & react.RefAttributes<HTMLDivElement>>;
1371
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
+
1372
1702
  interface AccordionItem {
1373
1703
  id: string;
1374
1704
  title: ReactNode;
@@ -1457,6 +1787,40 @@ interface BannerProps extends HTMLAttributes<HTMLDivElement> {
1457
1787
  /** Banner — full-width page-level announcement bar. */
1458
1788
  declare const Banner: react.ForwardRefExoticComponent<BannerProps & react.RefAttributes<HTMLDivElement>>;
1459
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
+
1460
1824
  type CircularProgressColor = "primary" | "success" | "warning" | "error";
1461
1825
  interface CircularProgressProps extends Omit<HTMLAttributes<HTMLDivElement>, "style"> {
1462
1826
  value?: number;
@@ -1470,6 +1834,29 @@ interface CircularProgressProps extends Omit<HTMLAttributes<HTMLDivElement>, "st
1470
1834
  /** Klun UI CircularProgress — ring progress with optional center label. */
1471
1835
  declare const CircularProgress: react.ForwardRefExoticComponent<CircularProgressProps & react.RefAttributes<HTMLDivElement>>;
1472
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
+
1473
1860
  interface EmptyStateProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
1474
1861
  icon?: ReactNode;
1475
1862
  title?: ReactNode;
@@ -1541,6 +1928,30 @@ declare const Message: react.ForwardRefExoticComponent<MessageProps & react.RefA
1541
1928
  */
1542
1929
  declare function useMessage(defaults?: UseMessageDefaults): [MessageApi, ReactNode];
1543
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
+
1544
1955
  type NotificationStatus = "default" | "information" | "success" | "warning" | "error" | "loading";
1545
1956
  interface NotificationProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
1546
1957
  status?: NotificationStatus;
@@ -1753,6 +2164,97 @@ declare namespace Toaster {
1753
2164
  var displayName: string;
1754
2165
  }
1755
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
+
1756
2258
  interface AutoCompleteOption {
1757
2259
  value: string;
1758
2260
  label?: ReactNode;
@@ -1988,6 +2490,24 @@ interface CompactSelectForInputProps extends Omit<SelectHTMLAttributes<HTMLSelec
1988
2490
  */
1989
2491
  declare const CompactSelectForInput: react.ForwardRefExoticComponent<CompactSelectForInputProps & react.RefAttributes<HTMLSelectElement>>;
1990
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
+
1991
2511
  interface CronPreset {
1992
2512
  label: string;
1993
2513
  value: string;
@@ -2025,24 +2545,6 @@ declare function describeCron(cron: string): string;
2025
2545
  */
2026
2546
  declare const CronEditor: react.ForwardRefExoticComponent<CronEditorProps & react.RefAttributes<HTMLDivElement>>;
2027
2547
 
2028
- type CounterInputSize = "small" | "medium" | "large";
2029
- interface CounterInputProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
2030
- value?: number;
2031
- min?: number;
2032
- max?: number;
2033
- step?: number;
2034
- size?: CounterInputSize;
2035
- onChange?: (value: number) => void;
2036
- disabled?: boolean;
2037
- /** Optional unit shown after the value, e.g. "kg". */
2038
- suffix?: ReactNode;
2039
- }
2040
- /**
2041
- * CounterInput — numeric stepper with decrement / increment controls.
2042
- * `ref` forwards to the root wrapper.
2043
- */
2044
- declare const CounterInput: react.ForwardRefExoticComponent<CounterInputProps & react.RefAttributes<HTMLDivElement>>;
2045
-
2046
2548
  interface DatePickerProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange" | "style"> {
2047
2549
  value?: Date | string | null;
2048
2550
  onChange?: (date: Date) => void;
@@ -2128,6 +2630,78 @@ interface DigitInputProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange
2128
2630
  */
2129
2631
  declare const DigitInput: react.ForwardRefExoticComponent<DigitInputProps & react.RefAttributes<HTMLDivElement>>;
2130
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
+
2131
2705
  interface FileUploadProps extends Omit<HTMLAttributes<HTMLDivElement>, "style"> {
2132
2706
  /** Called with the dropped/selected files. */
2133
2707
  onFiles?: (files: File[]) => void;
@@ -2269,6 +2843,43 @@ interface HintProps extends HTMLAttributes<HTMLSpanElement> {
2269
2843
  /** Klun UI HintText — helper / error text beneath a field. */
2270
2844
  declare const Hint: react.ForwardRefExoticComponent<HintProps & react.RefAttributes<HTMLSpanElement>>;
2271
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
+
2272
2883
  type ImageUploadShape = "circle" | "square";
2273
2884
  interface ImageUploadProps extends Omit<HTMLAttributes<HTMLDivElement>, "style"> {
2274
2885
  /** Current image URL; shows the preview when set. */
@@ -2370,6 +2981,42 @@ interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "size">
2370
2981
  */
2371
2982
  declare const Input: react.ForwardRefExoticComponent<InputProps & react.RefAttributes<HTMLInputElement>>;
2372
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
+
2373
3020
  interface LabelProps extends LabelHTMLAttributes<HTMLLabelElement> {
2374
3021
  required?: boolean;
2375
3022
  sublabel?: ReactNode;
@@ -2396,6 +3043,26 @@ interface PasswordStrengthProps extends HTMLAttributes<HTMLDivElement> {
2396
3043
  */
2397
3044
  declare const PasswordStrength: react.ForwardRefExoticComponent<PasswordStrengthProps & react.RefAttributes<HTMLDivElement>>;
2398
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
+
2399
3066
  type RadioSize = "small" | "medium" | "large";
2400
3067
  interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "onChange" | "value" | "type" | "size"> {
2401
3068
  checked?: boolean;
@@ -2461,15 +3128,6 @@ interface RangeSliderProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChang
2461
3128
  */
2462
3129
  declare const RangeSlider: react.ForwardRefExoticComponent<RangeSliderProps & react.RefAttributes<HTMLDivElement>>;
2463
3130
 
2464
- interface RichEditorToolbarProps extends HTMLAttributes<HTMLDivElement> {
2465
- /** Ids of active formatting buttons (bold, italic, h1, ul, …). */
2466
- active?: string[];
2467
- /** Called with the button id when a tool is pressed. */
2468
- onAction?: (id: string) => void;
2469
- }
2470
- /** RichEditorToolbar — formatting toolbar for a text editor (presentational). */
2471
- declare const RichEditorToolbar: react.ForwardRefExoticComponent<RichEditorToolbarProps & react.RefAttributes<HTMLDivElement>>;
2472
-
2473
3131
  interface RichEditorProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange" | "defaultValue"> {
2474
3132
  /** HTML value. Controlled. */
2475
3133
  value?: string;
@@ -2494,6 +3152,15 @@ interface RichEditorProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange
2494
3152
  */
2495
3153
  declare const RichEditor: react.ForwardRefExoticComponent<RichEditorProps & react.RefAttributes<HTMLDivElement>>;
2496
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
+
2497
3164
  interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, "size" | "style"> {
2498
3165
  size?: "xsmall" | "small" | "medium" | "large";
2499
3166
  placeholder?: string;
@@ -2986,6 +3653,74 @@ interface SegmentedControlProps extends Omit<HTMLAttributes<HTMLDivElement>, "on
2986
3653
  /** Klun UI SegmentedControl — equal-width segmented toggle. */
2987
3654
  declare const SegmentedControl: react.ForwardRefExoticComponent<SegmentedControlProps & react.RefAttributes<HTMLDivElement>>;
2988
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
+
2989
3724
  interface Step {
2990
3725
  label: ReactNode;
2991
3726
  description?: ReactNode;
@@ -2998,6 +3733,97 @@ interface StepIndicatorProps extends HTMLAttributes<HTMLDivElement> {
2998
3733
  /** Klun UI StepIndicator — horizontal numbered progress stepper. */
2999
3734
  declare const StepIndicator: react.ForwardRefExoticComponent<StepIndicatorProps & react.RefAttributes<HTMLDivElement>>;
3000
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
+
3001
3827
  interface TabItem {
3002
3828
  value: string;
3003
3829
  label: ReactNode;
@@ -3199,6 +4025,35 @@ interface DropdownProps extends HTMLAttributes<HTMLSpanElement> {
3199
4025
  /** Klun UI Dropdown — click-to-open menu anchored to a trigger. */
3200
4026
  declare const Dropdown: react.ForwardRefExoticComponent<DropdownProps & react.RefAttributes<HTMLSpanElement>>;
3201
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
+
3202
4057
  interface ImageItem {
3203
4058
  src: string;
3204
4059
  alt?: string;
@@ -3336,4 +4191,4 @@ interface PopoverProps extends Omit<HTMLAttributes<HTMLSpanElement>, "children">
3336
4191
  */
3337
4192
  declare const Popover: react.ForwardRefExoticComponent<PopoverProps & react.RefAttributes<HTMLSpanElement>>;
3338
4193
 
3339
- 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 };