klun-ui 0.4.1 → 0.6.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;
@@ -251,6 +271,7 @@ interface Locale {
251
271
  imageUpload: {
252
272
  label: string;
253
273
  remove: string;
274
+ hint: string;
254
275
  };
255
276
  passwordStrength: {
256
277
  weak: string;
@@ -321,6 +342,15 @@ interface Locale {
321
342
  notification: {
322
343
  close: string;
323
344
  };
345
+ /** Accessible name for a Select trigger that shows neither a value nor a visible placeholder. */
346
+ select?: {
347
+ placeholder?: string;
348
+ };
349
+ /** Accessible names for the CounterInput stepper buttons. */
350
+ counterInput?: {
351
+ decrease?: string;
352
+ increase?: string;
353
+ };
324
354
  /** `minChars`/`maxChars` have `{min}`/`{max}`; `exactChars` has `{len}`; `oneOf` has `{values}`; `min`/`max` have `{min}`/`{max}`. */
325
355
  form: {
326
356
  required: string;
@@ -337,6 +367,55 @@ interface Locale {
337
367
  min: string;
338
368
  max: string;
339
369
  };
370
+ /** 多步流程的底栏按钮。此前 Wizard 把这三个词**硬编码成英文**,locale 里也没有对应键。 */
371
+ wizard: {
372
+ back: string;
373
+ next: string;
374
+ finish: string;
375
+ };
376
+ /**
377
+ * 组件内建的**无障碍名称**。
378
+ * 这些此前是硬编码英文 `aria-label`——消费方**无法覆盖**,读屏会直接念英文,
379
+ * 与「可被 props 覆盖的默认值」是两回事。
380
+ */
381
+ a11y: {
382
+ zoomIn: string;
383
+ zoomOut: string;
384
+ rotate: string;
385
+ collapseStart: string;
386
+ collapseEnd: string;
387
+ bulkActions: string;
388
+ clearSelection: string;
389
+ back: string;
390
+ };
391
+ /** 富文本编辑器的空态占位与编辑区无障碍名(此前是英文默认值)。 */
392
+ richEditor: {
393
+ placeholder: string;
394
+ editorLabel: string;
395
+ };
396
+ /** 复制按钮的默认提示。 */
397
+ copy: {
398
+ label: string;
399
+ };
400
+ /** 表情选择器:搜索占位、空态、以及触发按钮的名称。 */
401
+ emojiPicker: {
402
+ searchPlaceholder: string;
403
+ emptyText: string;
404
+ addReaction: string;
405
+ };
406
+ /** 侧边栏:搜索框占位与导航地标名(此前 `aria-label="Primary"` 是硬编码)。 */
407
+ sidebar: {
408
+ searchPlaceholder: string;
409
+ primary: string;
410
+ };
411
+ /**
412
+ * 图片查看器。仅 `reset`/`download` 需要新键;
413
+ * `previous`/`next` 复用 `pagination`,`close` 复用 `modal`——语义与文案一致,避免重复。
414
+ */
415
+ imageViewer: {
416
+ reset: string;
417
+ download: string;
418
+ };
340
419
  /** `pageRange` has `{from}`/`{to}`/`{total}`; `perPage` has `{size}`. */
341
420
  table: {
342
421
  noData: string;
@@ -354,6 +433,9 @@ interface Locale {
354
433
  next: string;
355
434
  pageRange: string;
356
435
  perPage: string;
436
+ /** Accessible names for the built-in row-selection controls. */
437
+ selectRow?: string;
438
+ selectAll?: string;
357
439
  };
358
440
  }
359
441
  /** Fill a `{placeholder}` template, e.g. `fmt(locale.rating.star, { count: 3 })`. */
@@ -425,7 +507,7 @@ type Theme = "light" | "dark";
425
507
  * palette (surfaces, text, strokes, intents, radii) onto Metronic colors, not
426
508
  * just the primary ramp. Orthogonal to `theme`, so it works in light and dark.
427
509
  */
428
- type Accent = "blue" | "purple" | "orange" | "green" | "slate" | "metronic";
510
+ type Accent = "blue" | "purple" | "orange" | "green" | "slate" | "metronic" | "kk";
429
511
  /**
430
512
  * Global corner-radius scale (maps to `data-radius`). `"square"` = 0-radius
431
513
  * (sharp) corners, `"sharp"` = tight, `"rounded"` = soft. The functional pill
@@ -514,6 +596,114 @@ declare function useSize<S extends string = ComponentSize>(explicit?: S): S;
514
596
  */
515
597
  declare function useMappedSize<S extends string>(explicit: S | undefined, map: Record<ComponentSize, S>, fallback: S): S;
516
598
 
599
+ declare function localTodayIso(): string;
600
+ interface HeatmapCell {
601
+ /** ISO date of the cell. */
602
+ date: string;
603
+ /** 0 = Monday … 6 = Sunday. */
604
+ dayOfWeek: number;
605
+ /** Column index, 0-based from the leftmost (oldest) week. */
606
+ week: number;
607
+ value: number;
608
+ /** Intensity bucket: 0 (no activity) … 4 (busiest quartile). */
609
+ level: number;
610
+ }
611
+ interface HeatmapMonthLabel {
612
+ label: string;
613
+ week: number;
614
+ }
615
+ interface HeatmapGrid {
616
+ cells: HeatmapCell[];
617
+ months: HeatmapMonthLabel[];
618
+ /** Row labels, Monday-first (7 entries). */
619
+ weekdayLabels: string[];
620
+ /** Number of days rendered (partial last week included). */
621
+ windowDays: number;
622
+ }
623
+ interface HeatmapOptions {
624
+ /** Weeks rendered, ending with the week of `today`. Default `26`. */
625
+ weeks?: number;
626
+ /** ISO date used as the grid's last day. Default: today, local time. */
627
+ today?: string;
628
+ /** BCP-47 locale for month / weekday labels. Default `"en-US"`. */
629
+ locale?: string;
630
+ }
631
+ /**
632
+ * Builds the heatmap grid: quartile-bucketed cells, month labels and weekday
633
+ * labels. Pure — export it to reuse the data in your own insights panels.
634
+ */
635
+ declare function buildHeatmapGrid(data: Record<string, number> | undefined, options?: HeatmapOptions): HeatmapGrid;
636
+ interface HeatmapSummary {
637
+ /** Total across the rendered window. */
638
+ total: number;
639
+ /** Highest-value day, or `null` when the window is empty. */
640
+ busiest: {
641
+ date: string;
642
+ value: number;
643
+ } | null;
644
+ /** Average value per day. */
645
+ dailyAverage: number;
646
+ /** Average value per weekday index (0 = Monday … 6 = Sunday). */
647
+ weekdayAverages: number[];
648
+ }
649
+ /** Roll-up stats over the same window the grid renders. Pure. */
650
+ declare function summarizeHeatmap(data: Record<string, number> | undefined, options?: HeatmapOptions): HeatmapSummary;
651
+ interface ActivityHeatmapProps {
652
+ /** ISO date (`YYYY-MM-DD`) → value. Missing dates render as empty. */
653
+ data?: Record<string, number>;
654
+ /** Weeks rendered, ending with the week of `today`. Default `26`. */
655
+ weeks?: number;
656
+ /** ISO date used as the grid's last day. Default: today, local time. */
657
+ today?: string;
658
+ /** Cell size in px. Default `16`. */
659
+ cellSize?: number;
660
+ /** Base color of the heat ramp (any CSS color). Default: the theme primary. */
661
+ color?: string;
662
+ /** Formats the tooltip value, e.g. `(v) => "$" + v.toFixed(2)`. */
663
+ formatValue?: (value: number) => string;
664
+ /** BCP-47 locale for month / weekday labels. Default `"en-US"`. */
665
+ locale?: string;
666
+ /** Legend words around the swatch ramp. Default `["Less", "More"]`. */
667
+ legendLabels?: [string, string];
668
+ className?: string;
669
+ style?: CSSProperties;
670
+ }
671
+ /**
672
+ * ActivityHeatmap — a calendar heatmap (GitHub-contribution style) over the
673
+ * last `weeks` weeks. Colors ride the klun tokens; the ramp is a
674
+ * `color-mix` of `color` (default: theme primary) at four intensities.
675
+ * Pair it with `summarizeHeatmap()` for busiest-day / weekday stats.
676
+ */
677
+ declare const ActivityHeatmap: react.ForwardRefExoticComponent<ActivityHeatmapProps & react.RefAttributes<HTMLDivElement>>;
678
+
679
+ type ActorKind = "member" | "agent" | "squad" | "system";
680
+ type ActorAvatarSize = "20" | "24" | "32" | "40" | "56";
681
+ /** Read the emoji out of a `"emoji:🐙"` avatar value, or `null`. */
682
+ declare function parseAvatarEmoji(value?: string | null): string | null;
683
+ /** Build the `src` value that stores an emoji avatar. */
684
+ declare function formatAvatarEmoji(emoji: string): string;
685
+ interface ActorAvatarProps extends HTMLAttributes<HTMLSpanElement> {
686
+ /** Accessible name (image alt / group label). */
687
+ name: string;
688
+ /** Fallback initials for members. */
689
+ initials?: string;
690
+ /** Image URL; a value starting with `"emoji:"` renders that emoji instead. */
691
+ src?: string | null;
692
+ /** Explicit emoji avatar — wins over `src`. */
693
+ emoji?: string;
694
+ /** What kind of actor this is. Default `"member"`. */
695
+ kind?: ActorKind;
696
+ /** Avatar diameter. Default `"24"`. */
697
+ size?: ActorAvatarSize;
698
+ }
699
+ /**
700
+ * ActorAvatar — the single identity avatar for members, agents, squads and
701
+ * system actors (ported from the Multica UI). Always a circle; falls back to
702
+ * an emoji, a kind glyph, then initials. The `"emoji:"` src marker is kept so
703
+ * data written by Multica round-trips.
704
+ */
705
+ declare const ActorAvatar: react.ForwardRefExoticComponent<ActorAvatarProps & react.RefAttributes<HTMLSpanElement>>;
706
+
517
707
  type AvatarSize = "20" | "24" | "32" | "40" | "48" | "56" | "64" | "72" | "80";
518
708
  type AvatarStatus = "online" | "busy" | "away" | "offline";
519
709
  interface AvatarProps extends HTMLAttributes<HTMLSpanElement> {
@@ -799,6 +989,53 @@ declare function parsePatch(patch: string): DiffHunk[];
799
989
  */
800
990
  declare const DiffViewer: react.ForwardRefExoticComponent<DiffViewerProps & react.RefAttributes<HTMLDivElement>>;
801
991
 
992
+ interface ItemGroupProps extends HTMLAttributes<HTMLDivElement> {
993
+ }
994
+ /** List wrapper (`role="list"`) for a run of `<Item>` rows. */
995
+ declare const ItemGroup: react.ForwardRefExoticComponent<ItemGroupProps & react.RefAttributes<HTMLDivElement>>;
996
+ type ItemVariant = "default" | "outline" | "muted";
997
+ type ItemSize = "default" | "small" | "xsmall";
998
+ interface ItemProps extends HTMLAttributes<HTMLDivElement> {
999
+ variant?: ItemVariant;
1000
+ size?: ItemSize;
1001
+ }
1002
+ /**
1003
+ * Item — one row of rich content: media + content + actions (ported from the
1004
+ * Multica UI). Used for settings rows, suggestion lists, compact menu entries;
1005
+ * pair with `ItemGroup` and `ItemSeparator`.
1006
+ */
1007
+ declare const Item: react.ForwardRefExoticComponent<ItemProps & react.RefAttributes<HTMLDivElement>>;
1008
+ interface ItemSeparatorProps extends HTMLAttributes<HTMLDivElement> {
1009
+ }
1010
+ declare const ItemSeparator: react.ForwardRefExoticComponent<ItemSeparatorProps & react.RefAttributes<HTMLDivElement>>;
1011
+ type ItemMediaVariant = "default" | "icon" | "image";
1012
+ interface ItemMediaProps extends HTMLAttributes<HTMLDivElement> {
1013
+ /** `"icon"` squares a 16px glyph; `"image"` frames a 40px thumbnail. */
1014
+ variant?: ItemMediaVariant;
1015
+ }
1016
+ declare const ItemMedia: react.ForwardRefExoticComponent<ItemMediaProps & react.RefAttributes<HTMLDivElement>>;
1017
+ interface ItemContentProps extends HTMLAttributes<HTMLDivElement> {
1018
+ }
1019
+ declare const ItemContent: react.ForwardRefExoticComponent<ItemContentProps & react.RefAttributes<HTMLDivElement>>;
1020
+ interface ItemTitleProps extends HTMLAttributes<HTMLDivElement> {
1021
+ }
1022
+ declare const ItemTitle: react.ForwardRefExoticComponent<ItemTitleProps & react.RefAttributes<HTMLDivElement>>;
1023
+ interface ItemDescriptionProps extends HTMLAttributes<HTMLDivElement> {
1024
+ }
1025
+ declare const ItemDescription: react.ForwardRefExoticComponent<ItemDescriptionProps & react.RefAttributes<HTMLDivElement>>;
1026
+ interface ItemActionsProps extends HTMLAttributes<HTMLDivElement> {
1027
+ }
1028
+ /** Right-aligned action cluster (buttons, kebabs…). */
1029
+ declare const ItemActions: react.ForwardRefExoticComponent<ItemActionsProps & react.RefAttributes<HTMLDivElement>>;
1030
+ interface ItemHeaderProps extends HTMLAttributes<HTMLDivElement> {
1031
+ }
1032
+ /** Full-width row above the content (badges, timestamps). */
1033
+ declare const ItemHeader: react.ForwardRefExoticComponent<ItemHeaderProps & react.RefAttributes<HTMLDivElement>>;
1034
+ interface ItemFooterProps extends HTMLAttributes<HTMLDivElement> {
1035
+ }
1036
+ /** Full-width row below the content (progress, metadata). */
1037
+ declare const ItemFooter: react.ForwardRefExoticComponent<ItemFooterProps & react.RefAttributes<HTMLDivElement>>;
1038
+
802
1039
  interface KanbanCard {
803
1040
  id: string;
804
1041
  title: ReactNode;
@@ -828,6 +1065,15 @@ interface KanbanProps extends Omit<HTMLAttributes<HTMLDivElement>, "onSelect"> {
828
1065
  columnWidth?: number;
829
1066
  style?: CSSProperties;
830
1067
  }
1068
+ /**
1069
+ * Where a dragged card lands: `overId` is a card (insert before/after it) or a
1070
+ * column (append). Returns null when the card is unknown or nothing would move.
1071
+ */
1072
+ declare function resolveMove(columns: KanbanColumn[], activeId: string, overId: string, after: boolean): {
1073
+ fromColumn: string;
1074
+ toColumn: string;
1075
+ toIndex: number;
1076
+ } | null;
831
1077
  /**
832
1078
  * Kanban — drag & drop board (dnd-kit: mouse, touch and keyboard). Columns hold
833
1079
  * cards; dropping a card calls `onMove(cardId, fromColumn, toColumn, toIndex)`
@@ -838,40 +1084,6 @@ interface KanbanProps extends Omit<HTMLAttributes<HTMLDivElement>, "onSelect"> {
838
1084
  */
839
1085
  declare const Kanban: react.ForwardRefExoticComponent<KanbanProps & react.RefAttributes<HTMLDivElement>>;
840
1086
 
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
1087
  interface KbdProps extends HTMLAttributes<HTMLElement> {
876
1088
  children?: ReactNode;
877
1089
  }
@@ -934,6 +1146,39 @@ interface ListItemProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
934
1146
  */
935
1147
  declare const ListItem: react.ForwardRefExoticComponent<ListItemProps & react.RefAttributes<HTMLDivElement>>;
936
1148
 
1149
+ type ListGridSortDirection = "asc" | "desc";
1150
+ /**
1151
+ * Linear-style list grid (ported from the Multica UI). The container declares
1152
+ * every column track once; the header, rows and skeletons inherit it via
1153
+ * `grid-template-columns: subgrid`, so column widths have a single source of
1154
+ * truth and never drift. Template convention: the first and last tracks are
1155
+ * edge-padding columns — header/row render the matching placeholder cells, so
1156
+ * row hover backgrounds stay full-bleed while content aligns with page chrome.
1157
+ */
1158
+ interface ListGridProps extends HTMLAttributes<HTMLDivElement> {
1159
+ /** The shared `grid-template-columns` track list. */
1160
+ columns: string;
1161
+ }
1162
+ declare const ListGrid: react.ForwardRefExoticComponent<ListGridProps & react.RefAttributes<HTMLDivElement>>;
1163
+ /** Sticky header row; carries a soft fade band below it while rows scroll. */
1164
+ declare const ListGridHeader: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
1165
+ /** Rows area; carries any virtualization padding. It does not scroll — keep
1166
+ * the single scroller on an outer wrapper with the sticky header inside. */
1167
+ declare const ListGridBody: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
1168
+ interface ListGridHeaderCellProps extends HTMLAttributes<HTMLDivElement> {
1169
+ /** Active sort direction of this column; `false` when not the active sort. */
1170
+ sorted?: ListGridSortDirection | false;
1171
+ /** When provided the header renders as a sort button. */
1172
+ onSort?: () => void;
1173
+ align?: "left" | "right";
1174
+ }
1175
+ declare const ListGridHeaderCell: react.ForwardRefExoticComponent<ListGridHeaderCellProps & react.RefAttributes<HTMLDivElement>>;
1176
+ declare const ListGridRow: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
1177
+ declare const ListGridCell: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react.RefAttributes<HTMLDivElement>>;
1178
+ /** Bottom clearance (px) to append to the rows area's padding so the last row
1179
+ * can scroll clear of floating UI pinned to the pane's bottom edge. */
1180
+ declare const LIST_GRID_BOTTOM_CLEARANCE = 64;
1181
+
937
1182
  type WikiLinkResolver = (target: string) => string | {
938
1183
  href: string;
939
1184
  label?: string;
@@ -988,6 +1233,54 @@ interface MoneyProps extends Omit<HTMLAttributes<HTMLSpanElement>, "prefix"> {
988
1233
  */
989
1234
  declare const Money: react.ForwardRefExoticComponent<MoneyProps & react.RefAttributes<HTMLSpanElement>>;
990
1235
 
1236
+ interface NumberFlowFormat {
1237
+ minimumFractionDigits?: number;
1238
+ maximumFractionDigits?: number;
1239
+ useGrouping?: boolean;
1240
+ }
1241
+ interface NumberFlowProps extends Omit<HTMLAttributes<HTMLSpanElement>, "children" | "prefix"> {
1242
+ value: number;
1243
+ /** `Intl.NumberFormat` locales. */
1244
+ locales?: string | string[];
1245
+ /** `Intl.NumberFormat` number options. */
1246
+ format?: NumberFlowFormat;
1247
+ prefix?: ReactNode;
1248
+ suffix?: ReactNode;
1249
+ /** Accessible label; defaults to the formatted value. */
1250
+ label?: string;
1251
+ }
1252
+ /**
1253
+ * NumberFlow — animated number, ported from the Multica UI's `@number-flow`
1254
+ * wrappers onto a dependency-free rolling-digit implementation: each glyph is
1255
+ * a column of 0-9 that slides to its digit, so only changed positions move.
1256
+ * Bound: digits are keyed right-to-left, so a change in digit count animates
1257
+ * the columns but does not slide positions into place. Non-digit characters
1258
+ * (grouping, decimal point, sign) render statically.
1259
+ */
1260
+ declare const NumberFlow: react.ForwardRefExoticComponent<NumberFlowProps & react.RefAttributes<HTMLSpanElement>>;
1261
+ interface CurrencyNumberFlowProps extends Omit<NumberFlowProps, "format" | "prefix" | "suffix" | "value"> {
1262
+ value: number;
1263
+ prefix?: string;
1264
+ /** Values at or above this show no decimals. Default `100`. */
1265
+ fractionThreshold?: number;
1266
+ }
1267
+ /** Currency variant: two decimals below `fractionThreshold`, none above. */
1268
+ declare const CurrencyNumberFlow: react.ForwardRefExoticComponent<CurrencyNumberFlowProps & react.RefAttributes<HTMLSpanElement>>;
1269
+ interface CompactNumberFlowProps extends Omit<NumberFlowProps, "format" | "suffix" | "value"> {
1270
+ value: number;
1271
+ /** Case of the K/M/B/T suffix. Default `"upper"`. */
1272
+ suffixCase?: "lower" | "upper";
1273
+ }
1274
+ /** Compact variant: 1200 → “1.2K”, 3_400_000 → “3.4M”. */
1275
+ declare const CompactNumberFlow: react.ForwardRefExoticComponent<CompactNumberFlowProps & react.RefAttributes<HTMLSpanElement>>;
1276
+ interface CappedNumberFlowProps extends Omit<NumberFlowProps, "format" | "suffix" | "value"> {
1277
+ value: number;
1278
+ /** Cap shown as “max+”. Default `99`. */
1279
+ max?: number;
1280
+ }
1281
+ /** Capped variant: 137 with `max={99}` renders “99+”. */
1282
+ declare const CappedNumberFlow: react.ForwardRefExoticComponent<CappedNumberFlowProps & react.RefAttributes<HTMLSpanElement>>;
1283
+
991
1284
  interface RatingProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange" | "style"> {
992
1285
  /** Current rating. Default `0`. */
993
1286
  value?: number;
@@ -1003,6 +1296,42 @@ interface RatingProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange" |
1003
1296
  /** Klun UI Rating — star rating, interactive or read-only. */
1004
1297
  declare const Rating: react.ForwardRefExoticComponent<RatingProps & react.RefAttributes<HTMLDivElement>>;
1005
1298
 
1299
+ /** One actor's reaction, before grouping. */
1300
+ interface ReactionItem {
1301
+ /** Native emoji character. */
1302
+ emoji: string;
1303
+ /** Stable actor id used to detect the current user's own reaction. */
1304
+ actorId: string;
1305
+ /** Display name shown in the pill tooltip; falls back to the id. */
1306
+ actorName?: string;
1307
+ }
1308
+ /** A grouped reaction pill. */
1309
+ interface Reaction {
1310
+ emoji: string;
1311
+ count: number;
1312
+ /** Whether `currentActorId` reacted with this emoji. */
1313
+ reacted: boolean;
1314
+ /** Display names of the reacting actors, for the tooltip. */
1315
+ actors: string[];
1316
+ }
1317
+ /** Group flat per-actor records for `<ReactionBar>`. */
1318
+ declare function groupReactions(items: ReactionItem[], currentActorId?: string): Reaction[];
1319
+ interface ReactionBarProps extends HTMLAttributes<HTMLDivElement> {
1320
+ /** Grouped reactions, usually built with `groupReactions`. */
1321
+ reactions: Reaction[];
1322
+ /** Fired when a pill is toggled or an emoji is picked. */
1323
+ onToggle?: (emoji: string) => void;
1324
+ /** Show the add-reaction button. Default `true`. */
1325
+ showPicker?: boolean;
1326
+ /** One-click emojis in the picker. */
1327
+ pickerEmojis?: string[];
1328
+ }
1329
+ /**
1330
+ * ReactionBar — a row of emoji reaction pills with per-pill actor tooltips and
1331
+ * an add-reaction `QuickEmojiPicker` (ported from the Multica UI).
1332
+ */
1333
+ declare const ReactionBar: react.ForwardRefExoticComponent<ReactionBarProps & react.RefAttributes<HTMLDivElement>>;
1334
+
1006
1335
  interface RelativeTimeProps extends TimeHTMLAttributes<HTMLTimeElement> {
1007
1336
  date: Date | number | string;
1008
1337
  locale?: string;
@@ -1033,6 +1362,20 @@ interface ExpiryCountdownProps extends HTMLAttributes<HTMLSpanElement> {
1033
1362
  */
1034
1363
  declare const ExpiryCountdown: react.ForwardRefExoticComponent<ExpiryCountdownProps & react.RefAttributes<HTMLSpanElement>>;
1035
1364
 
1365
+ interface ShimmerTextProps extends Omit<HTMLAttributes<HTMLSpanElement>, "children"> {
1366
+ /** Single-line text content. */
1367
+ children: string;
1368
+ /** Run the highlight sweep. Default `true`. */
1369
+ active?: boolean;
1370
+ }
1371
+ /**
1372
+ * ShimmerText — a single-line activity label where only the decorative
1373
+ * highlight moves over still glyphs (ported 1:1 from the Multica UI). Use it
1374
+ * for “agent is working” style labels; with `active={false}` it degrades to a
1375
+ * plain inherited-colour span.
1376
+ */
1377
+ declare const ShimmerText: react.ForwardRefExoticComponent<ShimmerTextProps & react.RefAttributes<HTMLSpanElement>>;
1378
+
1036
1379
  type StatCardTint = "feature" | "success" | "warning" | "information" | "error";
1037
1380
  interface StatCardProps extends HTMLAttributes<HTMLDivElement> {
1038
1381
  label?: ReactNode;
@@ -1284,7 +1627,7 @@ interface TableProps<Row = any> extends Omit<HTMLAttributes<HTMLDivElement>, "st
1284
1627
  * pagination, expandable & tree rows, density/zebra/sticky, fixed columns,
1285
1628
  * inline editing, drag resize/reorder, CSV export, copy & context menu.
1286
1629
  */
1287
- declare function Table<Row = any>({ columns, rows, getRowId, selectable, selected, onSelectRow, onSelectAll, sortable, sort, onSortChange, defaultSort, filters, onFiltersChange, pagination, expandable, density, zebra, stickyHeader, hover, bordered, selectionType, rowStatus, summary, contextMenu, copyable, onCopy, resizable, tree, childrenKey, indentSize, defaultExpandedRowKeys, columnSettings, rowDraggable, onReorder, onCellEdit, title, toolbar, exportable, selectionActions, onRowClick, rowHref, loading, loadingRows, empty, caption, footer, className, style, ...props }: TableProps<Row>): react.JSX.Element;
1630
+ declare function Table<Row = any>({ columns, rows, getRowId, selectable, selected, onSelectRow, onSelectAll, sortable, sort, onSortChange, defaultSort, filters, onFiltersChange, pagination, expandable, density: densityProp, zebra, stickyHeader, hover, bordered, selectionType, rowStatus, summary, contextMenu, copyable, onCopy, resizable, tree, childrenKey, indentSize, defaultExpandedRowKeys, columnSettings, rowDraggable, onReorder, onCellEdit, title, toolbar, exportable, selectionActions, onRowClick, rowHref, loading, loadingRows, empty, caption, footer, className, style, ...props }: TableProps<Row>): react.JSX.Element;
1288
1631
 
1289
1632
  interface TagProps extends HTMLAttributes<HTMLSpanElement> {
1290
1633
  leadingIcon?: ReactNode;
@@ -1372,6 +1715,40 @@ interface TreeProps extends Omit<HTMLAttributes<HTMLDivElement>, "onSelect"> {
1372
1715
  */
1373
1716
  declare const Tree: react.ForwardRefExoticComponent<TreeProps & react.RefAttributes<HTMLDivElement>>;
1374
1717
 
1718
+ interface VirtualColumn<Row> {
1719
+ key: string;
1720
+ header: ReactNode;
1721
+ /** Fixed px width; omit to share the remaining space. */
1722
+ width?: number;
1723
+ align?: "left" | "center" | "right";
1724
+ render?: (row: Row, index: number) => ReactNode;
1725
+ }
1726
+ interface VirtualTableProps<Row = Record<string, unknown>> extends Omit<HTMLAttributes<HTMLDivElement>, "onSelect"> {
1727
+ rows: Row[];
1728
+ columns: Array<VirtualColumn<Row>>;
1729
+ /** Fixed row height in px — required for windowing. Default `40`. */
1730
+ rowHeight?: number;
1731
+ /** Viewport height in px. Default `420`. */
1732
+ height?: number;
1733
+ getRowId?: (row: Row, index: number) => string | number;
1734
+ onRowClick?: (row: Row, index: number) => void;
1735
+ /** Extra rows rendered above/below the viewport. Default `8`. */
1736
+ overscan?: number;
1737
+ zebra?: boolean;
1738
+ empty?: ReactNode;
1739
+ style?: CSSProperties;
1740
+ }
1741
+ /**
1742
+ * VirtualTable — windowed table for very large datasets (100k+ rows). Renders
1743
+ * only the visible slice plus `overscan`, so scrolling stays smooth. Columns use
1744
+ * the same render-function shape as `Table`, minus sorting/selection (keep that
1745
+ * work server-side for big data).
1746
+ */
1747
+ declare function VirtualTable<Row = Record<string, unknown>>({ rows, columns, rowHeight, height, getRowId, onRowClick, overscan, zebra, empty, className, style, ...props }: VirtualTableProps<Row>): react.JSX.Element;
1748
+ declare namespace VirtualTable {
1749
+ var displayName: string;
1750
+ }
1751
+
1375
1752
  interface AccordionItem {
1376
1753
  id: string;
1377
1754
  title: ReactNode;
@@ -1460,6 +1837,40 @@ interface BannerProps extends HTMLAttributes<HTMLDivElement> {
1460
1837
  /** Banner — full-width page-level announcement bar. */
1461
1838
  declare const Banner: react.ForwardRefExoticComponent<BannerProps & react.RefAttributes<HTMLDivElement>>;
1462
1839
 
1840
+ interface BorderBeamProps extends HTMLAttributes<HTMLSpanElement> {
1841
+ }
1842
+ /**
1843
+ * BorderBeam — a highlight that sweeps continuously around the host's rounded
1844
+ * border, drawing the eye to a call-to-action that would otherwise blend into
1845
+ * the chrome. Render it as a child of a positioned (`relative`), rounded host;
1846
+ * the ring inherits the host's border radius.
1847
+ *
1848
+ * The sweep colour defaults to the theme accent — override
1849
+ * `--klun-border-beam-gradient` (on the host or the beam) with any background
1850
+ * value, e.g. an image, to restyle it.
1851
+ */
1852
+ declare const BorderBeam: react.ForwardRefExoticComponent<BorderBeamProps & react.RefAttributes<HTMLSpanElement>>;
1853
+
1854
+ type CapabilityResource = "agent" | "skill" | "comment" | "runtime" | "workspace";
1855
+ type CapabilityReason = "allowed" | "not_authenticated" | "not_member" | "not_owner_role" | "not_admin_role" | "not_resource_owner" | "last_owner" | "private_visibility" | "unknown";
1856
+ interface CapabilityBannerProps extends HTMLAttributes<HTMLDivElement> {
1857
+ /** Why the current user cannot edit; `"allowed"`/`"unknown"` render nothing. */
1858
+ reason: CapabilityReason;
1859
+ /** What kind of resource the page is about. */
1860
+ resource: CapabilityResource;
1861
+ /** Owner display name; the copy degrades gracefully without it. */
1862
+ ownerName?: string;
1863
+ /** Override the derived copy. */
1864
+ message?: ReactNode;
1865
+ }
1866
+ /**
1867
+ * CapabilityBanner — read-only notice for resource detail pages, shown when
1868
+ * the current user cannot edit (ported from the Multica UI, same copy rules so
1869
+ * wording stays consistent across resources). Returns `null` when editing is
1870
+ * allowed, so callers can mount it unconditionally.
1871
+ */
1872
+ declare const CapabilityBanner: react.ForwardRefExoticComponent<CapabilityBannerProps & react.RefAttributes<HTMLDivElement>>;
1873
+
1463
1874
  type CircularProgressColor = "primary" | "success" | "warning" | "error";
1464
1875
  interface CircularProgressProps extends Omit<HTMLAttributes<HTMLDivElement>, "style"> {
1465
1876
  value?: number;
@@ -1473,6 +1884,29 @@ interface CircularProgressProps extends Omit<HTMLAttributes<HTMLDivElement>, "st
1473
1884
  /** Klun UI CircularProgress — ring progress with optional center label. */
1474
1885
  declare const CircularProgress: react.ForwardRefExoticComponent<CircularProgressProps & react.RefAttributes<HTMLDivElement>>;
1475
1886
 
1887
+ interface DotSphereProps extends HTMLAttributes<HTMLCanvasElement> {
1888
+ /** Dot pitch in px. Default `20`. */
1889
+ dotGap?: number;
1890
+ /** `"travel"` sends spheres across the field, `"wave"` pulses them in place. */
1891
+ motion?: "travel" | "wave";
1892
+ sphereCount?: number;
1893
+ sphereRadius?: number | `${number}%`;
1894
+ dotRadiusMax?: number;
1895
+ speed?: number;
1896
+ /** Canvas background; `"transparent"` (default) keeps the host visible. */
1897
+ bgColor?: string;
1898
+ /** Dot colour; `"currentColor"` (default) follows the CSS `color`. */
1899
+ dotColor?: string;
1900
+ followMouse?: boolean;
1901
+ }
1902
+ /**
1903
+ * DotSphere — decorative canvas dot field with travelling or waving spheres
1904
+ * (ported from the Multica UI; honours `prefers-reduced-motion` by painting a
1905
+ * single static frame). Purely presentational; `dotColor` defaults to
1906
+ * `currentColor`, so tint the host with a klun token and it follows the theme.
1907
+ */
1908
+ declare const DotSphere: react.ForwardRefExoticComponent<DotSphereProps & react.RefAttributes<HTMLCanvasElement>>;
1909
+
1476
1910
  interface EmptyStateProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
1477
1911
  icon?: ReactNode;
1478
1912
  title?: ReactNode;
@@ -1544,6 +1978,30 @@ declare const Message: react.ForwardRefExoticComponent<MessageProps & react.RefA
1544
1978
  */
1545
1979
  declare function useMessage(defaults?: UseMessageDefaults): [MessageApi, ReactNode];
1546
1980
 
1981
+ interface NavigationProgressProps {
1982
+ /** Whether a navigation is in flight. */
1983
+ active: boolean;
1984
+ /**
1985
+ * Pin the bar to the viewport (default) or to the nearest positioned
1986
+ * ancestor — use `"absolute"` when the app renders inside a scroll pane.
1987
+ */
1988
+ position?: "fixed" | "absolute";
1989
+ /** Distance from the top edge. Default `0`. */
1990
+ top?: number | string;
1991
+ className?: string;
1992
+ style?: CSSProperties;
1993
+ }
1994
+ /**
1995
+ * NavigationProgress — a 2px indeterminate sweep across the top of the
1996
+ * viewport while a route transition is committing. Purely presentational:
1997
+ * drive it from your router's transition state (or any `active` flag).
1998
+ *
1999
+ * The container stays mounted so the bar can fade out over 200ms; the
2000
+ * `infinite` sweep animation is mounted only while active (plus the fade-out
2001
+ * tail), so a hidden bar never burns paints.
2002
+ */
2003
+ declare function NavigationProgress({ active, position, top, className, style, }: NavigationProgressProps): react.JSX.Element;
2004
+
1547
2005
  type NotificationStatus = "default" | "information" | "success" | "warning" | "error" | "loading";
1548
2006
  interface NotificationProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
1549
2007
  status?: NotificationStatus;
@@ -1756,6 +2214,97 @@ declare namespace Toaster {
1756
2214
  var displayName: string;
1757
2215
  }
1758
2216
 
2217
+ /** Built-in frame sets, keyed by animation name. */
2218
+ declare const UNICODE_ANIMATIONS: {
2219
+ braille: {
2220
+ interval: number;
2221
+ frames: string[];
2222
+ };
2223
+ braillewave: {
2224
+ interval: number;
2225
+ frames: string[];
2226
+ };
2227
+ dna: {
2228
+ interval: number;
2229
+ frames: string[];
2230
+ };
2231
+ scan: {
2232
+ interval: number;
2233
+ frames: string[];
2234
+ };
2235
+ rain: {
2236
+ interval: number;
2237
+ frames: string[];
2238
+ };
2239
+ scanline: {
2240
+ interval: number;
2241
+ frames: string[];
2242
+ };
2243
+ pulse: {
2244
+ interval: number;
2245
+ frames: string[];
2246
+ };
2247
+ snake: {
2248
+ interval: number;
2249
+ frames: string[];
2250
+ };
2251
+ sparkle: {
2252
+ interval: number;
2253
+ frames: string[];
2254
+ };
2255
+ cascade: {
2256
+ interval: number;
2257
+ frames: string[];
2258
+ };
2259
+ columns: {
2260
+ interval: number;
2261
+ frames: string[];
2262
+ };
2263
+ orbit: {
2264
+ interval: number;
2265
+ frames: string[];
2266
+ };
2267
+ breathe: {
2268
+ interval: number;
2269
+ frames: string[];
2270
+ };
2271
+ waverows: {
2272
+ interval: number;
2273
+ frames: string[];
2274
+ };
2275
+ checkerboard: {
2276
+ interval: number;
2277
+ frames: string[];
2278
+ };
2279
+ helix: {
2280
+ interval: number;
2281
+ frames: string[];
2282
+ };
2283
+ fillsweep: {
2284
+ interval: number;
2285
+ frames: string[];
2286
+ };
2287
+ diagswipe: {
2288
+ interval: number;
2289
+ frames: string[];
2290
+ };
2291
+ };
2292
+ type UnicodeSpinnerName = keyof typeof UNICODE_ANIMATIONS;
2293
+
2294
+ interface UnicodeSpinnerProps extends HTMLAttributes<HTMLSpanElement> {
2295
+ /** Animation frame set. Default `"braille"`. */
2296
+ name?: UnicodeSpinnerName;
2297
+ /** Freeze on the current frame without unmounting (e.g. when an outer state freezes). */
2298
+ paused?: boolean;
2299
+ }
2300
+ /**
2301
+ * UnicodeSpinner — inline braille/unicode frame animation, ported from the
2302
+ * Multica UI. Renders the current frame inside a fixed-width monospace span so
2303
+ * frames never reflow neighbouring text. Decorative: the glyph is
2304
+ * `aria-hidden`, put the status text next to it.
2305
+ */
2306
+ declare const UnicodeSpinner: react.ForwardRefExoticComponent<UnicodeSpinnerProps & react.RefAttributes<HTMLSpanElement>>;
2307
+
1759
2308
  interface AutoCompleteOption {
1760
2309
  value: string;
1761
2310
  label?: ReactNode;
@@ -1775,6 +2324,16 @@ interface AutoCompleteProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChan
1775
2324
  leadingIcon?: ReactNode;
1776
2325
  emptyText?: ReactNode;
1777
2326
  maxVisible?: number;
2327
+ /** 校验错误态(FormItem 会自动注入)。消费它是必要的:否则该布尔值会被透传到 DOM。 */
2328
+ error?: boolean;
2329
+ /**
2330
+ * 透传到**真实 `<input>`** 的属性通道。
2331
+ *
2332
+ * 本组件的根节点是 wrapper `div`,因此用 `InputHTMLAttributes` 之外的属性
2333
+ * (如 `name`、`required`)无法直接写在组件上——它们既不在类型里,写上去也会落到
2334
+ * wrapper 而不是输入框。需要这些原生输入属性时用这个通道。
2335
+ */
2336
+ inputProps?: InputHTMLAttributes<HTMLInputElement>;
1778
2337
  }
1779
2338
  /**
1780
2339
  * AutoComplete — text input with a filtered suggestion dropdown + keyboard nav.
@@ -1991,6 +2550,24 @@ interface CompactSelectForInputProps extends Omit<SelectHTMLAttributes<HTMLSelec
1991
2550
  */
1992
2551
  declare const CompactSelectForInput: react.ForwardRefExoticComponent<CompactSelectForInputProps & react.RefAttributes<HTMLSelectElement>>;
1993
2552
 
2553
+ type CounterInputSize = "small" | "medium" | "large";
2554
+ interface CounterInputProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
2555
+ value?: number;
2556
+ min?: number;
2557
+ max?: number;
2558
+ step?: number;
2559
+ size?: CounterInputSize;
2560
+ onChange?: (value: number) => void;
2561
+ disabled?: boolean;
2562
+ /** Optional unit shown after the value, e.g. "kg". */
2563
+ suffix?: ReactNode;
2564
+ }
2565
+ /**
2566
+ * CounterInput — numeric stepper with decrement / increment controls.
2567
+ * `ref` forwards to the root wrapper.
2568
+ */
2569
+ declare const CounterInput: react.ForwardRefExoticComponent<CounterInputProps & react.RefAttributes<HTMLDivElement>>;
2570
+
1994
2571
  interface CronPreset {
1995
2572
  label: string;
1996
2573
  value: string;
@@ -2028,24 +2605,6 @@ declare function describeCron(cron: string): string;
2028
2605
  */
2029
2606
  declare const CronEditor: react.ForwardRefExoticComponent<CronEditorProps & react.RefAttributes<HTMLDivElement>>;
2030
2607
 
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
2608
  interface DatePickerProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange" | "style"> {
2050
2609
  value?: Date | string | null;
2051
2610
  onChange?: (date: Date) => void;
@@ -2055,8 +2614,13 @@ interface DatePickerProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange
2055
2614
  placeholder?: string;
2056
2615
  /** Intl options used to format the trigger label. */
2057
2616
  format?: Intl.DateTimeFormatOptions;
2058
- /** Popover alignment relative to the trigger. Default `"left"`. */
2059
- align?: "left" | "right";
2617
+ /**
2618
+ * 面板与触发器的对齐边。
2619
+ *
2620
+ * `"start"`(默认)/`"end"` 是**逻辑**值:LTR 下 start=左、**RTL 下 start=右**。
2621
+ * `"left"` / `"right"` 保留为**物理**值,不随方向变化。
2622
+ */
2623
+ align?: "start" | "end" | "left" | "right";
2060
2624
  /** Disable the trigger. */
2061
2625
  disabled?: boolean;
2062
2626
  style?: CSSProperties;
@@ -2081,8 +2645,13 @@ interface DateRangePickerProps extends Omit<HTMLAttributes<HTMLDivElement>, "onC
2081
2645
  placeholder?: string;
2082
2646
  /** Intl options used to format the trigger labels. */
2083
2647
  format?: Intl.DateTimeFormatOptions;
2084
- /** Popover alignment relative to the trigger. Default `"left"`. */
2085
- align?: "left" | "right";
2648
+ /**
2649
+ * 面板与触发器的对齐边。
2650
+ *
2651
+ * `"start"`(默认)/`"end"` 是**逻辑**值:LTR 下 start=左、**RTL 下 start=右**。
2652
+ * `"left"` / `"right"` 保留为**物理**值,不随方向变化。
2653
+ */
2654
+ align?: "start" | "end" | "left" | "right";
2086
2655
  /** Disable the trigger. */
2087
2656
  disabled?: boolean;
2088
2657
  style?: CSSProperties;
@@ -2102,8 +2671,13 @@ interface DateTimePickerProps extends Omit<HTMLAttributes<HTMLDivElement>, "onCh
2102
2671
  placeholder?: string;
2103
2672
  /** Intl options used to format the trigger label. */
2104
2673
  format?: Intl.DateTimeFormatOptions;
2105
- /** Popover alignment relative to the trigger. Default `"left"`. */
2106
- align?: "left" | "right";
2674
+ /**
2675
+ * 面板与触发器的对齐边。
2676
+ *
2677
+ * `"start"`(默认)/`"end"` 是**逻辑**值:LTR 下 start=左、**RTL 下 start=右**。
2678
+ * `"left"` / `"right"` 保留为**物理**值,不随方向变化。
2679
+ */
2680
+ align?: "start" | "end" | "left" | "right";
2107
2681
  /** Disable the trigger. */
2108
2682
  disabled?: boolean;
2109
2683
  style?: CSSProperties;
@@ -2131,6 +2705,78 @@ interface DigitInputProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange
2131
2705
  */
2132
2706
  declare const DigitInput: react.ForwardRefExoticComponent<DigitInputProps & react.RefAttributes<HTMLDivElement>>;
2133
2707
 
2708
+ interface EmojiDef {
2709
+ /** Native emoji character(s). */
2710
+ emoji: string;
2711
+ /** Display name. */
2712
+ name: string;
2713
+ /** Search keywords (subset of the upstream list). */
2714
+ keywords: string[];
2715
+ }
2716
+ interface EmojiGroup {
2717
+ /** Stable group id. */
2718
+ id: string;
2719
+ /** Group label for tabs. */
2720
+ label: string;
2721
+ emojis: EmojiDef[];
2722
+ }
2723
+
2724
+ interface EmojiPickerProps extends Omit<HTMLAttributes<HTMLDivElement>, "onSelect"> {
2725
+ /** Fired with the native emoji character. */
2726
+ onSelect: (emoji: string, def: EmojiDef) => void;
2727
+ /** Groups to render. Defaults to the built-in trimmed emoji-mart set. */
2728
+ groups?: EmojiGroup[];
2729
+ /** Cells per row. Default `8`. */
2730
+ columns?: number;
2731
+ /** Show the search field. Default `true`. */
2732
+ searchable?: boolean;
2733
+ searchPlaceholder?: string;
2734
+ /** Copy for an empty search result. */
2735
+ emptyText?: string;
2736
+ }
2737
+ /**
2738
+ * EmojiPicker — searchable, grouped emoji grid (ported from the Multica UI's
2739
+ * emoji-mart picker onto a self-contained dataset). Renders inline; put it in
2740
+ * a popover/dialog yourself, or use `QuickEmojiPicker` for the ready-made
2741
+ * add-reaction button.
2742
+ */
2743
+ declare const EmojiPicker: react.ForwardRefExoticComponent<EmojiPickerProps & react.RefAttributes<HTMLDivElement>>;
2744
+
2745
+ interface FieldGroupProps extends HTMLAttributes<HTMLDivElement> {
2746
+ }
2747
+ /** Vertical stack of fields (one form section). */
2748
+ declare const FieldGroup: react.ForwardRefExoticComponent<FieldGroupProps & react.RefAttributes<HTMLDivElement>>;
2749
+ type FieldOrientation = "vertical" | "horizontal";
2750
+ interface FieldProps extends HTMLAttributes<HTMLDivElement> {
2751
+ /** `"vertical"` stacks label above the control; `"horizontal"` puts the
2752
+ * label in a fixed left column (tune `--klun-field-label-w`). */
2753
+ orientation?: FieldOrientation;
2754
+ /** Marks the field invalid: tints the label/description hooks via `data-invalid`. */
2755
+ invalid?: boolean;
2756
+ }
2757
+ /** One form field: label/description + control. */
2758
+ declare const Field: react.ForwardRefExoticComponent<FieldProps & react.RefAttributes<HTMLDivElement>>;
2759
+ interface FieldContentProps extends HTMLAttributes<HTMLDivElement> {
2760
+ }
2761
+ /** Groups title + description so they keep a tight gap. */
2762
+ declare const FieldContent: react.ForwardRefExoticComponent<FieldContentProps & react.RefAttributes<HTMLDivElement>>;
2763
+ interface FieldLabelProps extends LabelHTMLAttributes<HTMLLabelElement> {
2764
+ }
2765
+ /** `<label>` variant — use when the control can be associated by htmlFor. */
2766
+ declare const FieldLabel: react.ForwardRefExoticComponent<FieldLabelProps & react.RefAttributes<HTMLLabelElement>>;
2767
+ interface FieldTitleProps extends HTMLAttributes<HTMLDivElement> {
2768
+ }
2769
+ /** Non-`<label>` variant for controls that need a group title. */
2770
+ declare const FieldTitle: react.ForwardRefExoticComponent<FieldTitleProps & react.RefAttributes<HTMLDivElement>>;
2771
+ interface FieldDescriptionProps extends HTMLAttributes<HTMLDivElement> {
2772
+ }
2773
+ /** Helper text under the control. */
2774
+ declare const FieldDescription: react.ForwardRefExoticComponent<FieldDescriptionProps & react.RefAttributes<HTMLDivElement>>;
2775
+ interface FieldErrorProps extends HTMLAttributes<HTMLDivElement> {
2776
+ }
2777
+ /** Validation message; announced by screen readers (`role="alert"`). */
2778
+ declare const FieldError: react.ForwardRefExoticComponent<FieldErrorProps & react.RefAttributes<HTMLDivElement>>;
2779
+
2134
2780
  interface FileUploadProps extends Omit<HTMLAttributes<HTMLDivElement>, "style"> {
2135
2781
  /** Called with the dropped/selected files. */
2136
2782
  onFiles?: (files: File[]) => void;
@@ -2188,8 +2834,6 @@ interface FormInstance {
2188
2834
  /** Scroll to + focus a field. */
2189
2835
  scrollToField: (name: NamePath) => void;
2190
2836
  reset: () => void;
2191
- /** @deprecated use FormItem rules; kept for back-compat. */
2192
- registerRules: (name: NamePath, rules: FormRule[]) => void;
2193
2837
  }
2194
2838
  interface UseFormOptions {
2195
2839
  initialValues?: Record<string, any>;
@@ -2272,6 +2916,43 @@ interface HintProps extends HTMLAttributes<HTMLSpanElement> {
2272
2916
  /** Klun UI HintText — helper / error text beneath a field. */
2273
2917
  declare const Hint: react.ForwardRefExoticComponent<HintProps & react.RefAttributes<HTMLSpanElement>>;
2274
2918
 
2919
+ interface IconGroup {
2920
+ /** Group label shown as a tab, e.g. `"常用"`. */
2921
+ label: string;
2922
+ /** Icon names of the group, e.g. `"ri-settings-3-line"`. */
2923
+ icons: string[];
2924
+ }
2925
+ /** Built-in icon library — Remix line glyphs, grouped by purpose. */
2926
+ declare const ICON_GROUPS: IconGroup[];
2927
+ interface IconPickerProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange" | "style"> {
2928
+ /** Selected icon name (e.g. `"ri-settings-3-line"`); empty = nothing picked. */
2929
+ value?: string;
2930
+ /** Fired with the picked icon name, or `""` when cleared. */
2931
+ onChange?: (icon: string) => void;
2932
+ /** Icon library to browse. Defaults to the built-in `ICON_GROUPS`. */
2933
+ groups?: IconGroup[];
2934
+ /** Dialog title. Default `"选择图标"`. */
2935
+ dialogTitle?: ReactNode;
2936
+ /** Search field placeholder. */
2937
+ placeholder?: string;
2938
+ /** Turn an icon name into a node. Defaults to a Remix `<i class={name} />`. */
2939
+ renderIcon?: (icon: string) => ReactNode;
2940
+ /** Glyph for the empty state. Defaults to a plus. */
2941
+ renderEmpty?: () => ReactNode;
2942
+ /** Dialog width. Default `520`. */
2943
+ width?: number | string;
2944
+ /** Greyscale text put in the footer next to the current icon. */
2945
+ emptyText?: string;
2946
+ disabled?: boolean;
2947
+ style?: CSSProperties;
2948
+ }
2949
+ /**
2950
+ * IconPicker — a 38×32 icon trigger that opens a searchable icon dialog
2951
+ * (category tabs + auto-filling grid). Picking an icon commits immediately;
2952
+ * `清除` empties the value.
2953
+ */
2954
+ declare const IconPicker: react.ForwardRefExoticComponent<IconPickerProps & react.RefAttributes<HTMLDivElement>>;
2955
+
2275
2956
  type ImageUploadShape = "circle" | "square";
2276
2957
  interface ImageUploadProps extends Omit<HTMLAttributes<HTMLDivElement>, "style"> {
2277
2958
  /** Current image URL; shows the preview when set. */
@@ -2373,6 +3054,42 @@ interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "size">
2373
3054
  */
2374
3055
  declare const Input: react.ForwardRefExoticComponent<InputProps & react.RefAttributes<HTMLInputElement>>;
2375
3056
 
3057
+ interface InputGroupProps extends HTMLAttributes<HTMLDivElement> {
3058
+ }
3059
+ /**
3060
+ * InputGroup — a field row that packs the input with addons and buttons into
3061
+ * one framed control (ported from the Multica UI). Use `block-*` addons to
3062
+ * stack content above/below the input; focus ring, disabled and invalid states
3063
+ * live on the group, matching `Input`.
3064
+ */
3065
+ declare const InputGroup: react.ForwardRefExoticComponent<InputGroupProps & react.RefAttributes<HTMLDivElement>>;
3066
+ interface InputGroupInputProps extends InputHTMLAttributes<HTMLInputElement> {
3067
+ }
3068
+ /** The borderless input that lives inside the group. */
3069
+ declare const InputGroupInput: react.ForwardRefExoticComponent<InputGroupInputProps & react.RefAttributes<HTMLInputElement>>;
3070
+ type InputGroupAddonAlign = "inline-start" | "inline-end" | "block-start" | "block-end";
3071
+ interface InputGroupAddonProps extends HTMLAttributes<HTMLDivElement> {
3072
+ align?: InputGroupAddonAlign;
3073
+ }
3074
+ /**
3075
+ * Icon/text/control slot next to the input. A click anywhere on the addon
3076
+ * focuses the input — addons read as part of the field — while buttons inside
3077
+ * keep their own click behaviour.
3078
+ */
3079
+ declare const InputGroupAddon: react.ForwardRefExoticComponent<InputGroupAddonProps & react.RefAttributes<HTMLDivElement>>;
3080
+ interface InputGroupTextProps extends HTMLAttributes<HTMLSpanElement> {
3081
+ }
3082
+ /** Plain text slot (prefix, suffix, unit…). */
3083
+ declare const InputGroupText: react.ForwardRefExoticComponent<InputGroupTextProps & react.RefAttributes<HTMLSpanElement>>;
3084
+ type InputGroupButtonSize = "xsmall" | "icon-xsmall" | "icon-small";
3085
+ type InputGroupButtonVariant = "ghost" | "soft" | "primary";
3086
+ interface InputGroupButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
3087
+ size?: InputGroupButtonSize;
3088
+ variant?: InputGroupButtonVariant;
3089
+ }
3090
+ /** Compact button sized to sit inside the group (attach, send, clear…). */
3091
+ declare const InputGroupButton: react.ForwardRefExoticComponent<InputGroupButtonProps & react.RefAttributes<HTMLButtonElement>>;
3092
+
2376
3093
  interface LabelProps extends LabelHTMLAttributes<HTMLLabelElement> {
2377
3094
  required?: boolean;
2378
3095
  sublabel?: ReactNode;
@@ -2399,6 +3116,26 @@ interface PasswordStrengthProps extends HTMLAttributes<HTMLDivElement> {
2399
3116
  */
2400
3117
  declare const PasswordStrength: react.ForwardRefExoticComponent<PasswordStrengthProps & react.RefAttributes<HTMLDivElement>>;
2401
3118
 
3119
+ /** The eight one-click reactions offered before expanding to the full picker. */
3120
+ declare const QUICK_EMOJIS: string[];
3121
+ interface QuickEmojiPickerProps {
3122
+ /** Fired with the native emoji character. */
3123
+ onSelect: (emoji: string) => void;
3124
+ /** One-click reactions. Defaults to the built-in row. */
3125
+ emojis?: string[];
3126
+ /** Panel alignment against the trigger. Default `"left"`. */
3127
+ align?: "left" | "right";
3128
+ /** Accessible name / tooltip of the trigger. Default `"Add reaction"`. */
3129
+ label?: string;
3130
+ className?: string;
3131
+ }
3132
+ /**
3133
+ * QuickEmojiPicker — a small add-reaction button: a popover with one-click
3134
+ * reactions and a “More emojis…” expansion of the full `EmojiPicker`
3135
+ * (ported from the Multica UI).
3136
+ */
3137
+ declare const QuickEmojiPicker: react.ForwardRefExoticComponent<QuickEmojiPickerProps & react.RefAttributes<HTMLButtonElement>>;
3138
+
2402
3139
  type RadioSize = "small" | "medium" | "large";
2403
3140
  interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "onChange" | "value" | "type" | "size"> {
2404
3141
  checked?: boolean;
@@ -2464,15 +3201,6 @@ interface RangeSliderProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChang
2464
3201
  */
2465
3202
  declare const RangeSlider: react.ForwardRefExoticComponent<RangeSliderProps & react.RefAttributes<HTMLDivElement>>;
2466
3203
 
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
3204
  interface RichEditorProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange" | "defaultValue"> {
2477
3205
  /** HTML value. Controlled. */
2478
3206
  value?: string;
@@ -2497,6 +3225,15 @@ interface RichEditorProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange
2497
3225
  */
2498
3226
  declare const RichEditor: react.ForwardRefExoticComponent<RichEditorProps & react.RefAttributes<HTMLDivElement>>;
2499
3227
 
3228
+ interface RichEditorToolbarProps extends HTMLAttributes<HTMLDivElement> {
3229
+ /** Ids of active formatting buttons (bold, italic, h1, ul, …). */
3230
+ active?: string[];
3231
+ /** Called with the button id when a tool is pressed. */
3232
+ onAction?: (id: string) => void;
3233
+ }
3234
+ /** RichEditorToolbar — formatting toolbar for a text editor (presentational). */
3235
+ declare const RichEditorToolbar: react.ForwardRefExoticComponent<RichEditorToolbarProps & react.RefAttributes<HTMLDivElement>>;
3236
+
2500
3237
  interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, "size" | "style"> {
2501
3238
  size?: "xsmall" | "small" | "medium" | "large";
2502
3239
  placeholder?: string;
@@ -2534,8 +3271,13 @@ interface SelectMenuProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange
2534
3271
  leadingIcon?: ReactNode;
2535
3272
  error?: boolean;
2536
3273
  disabled?: boolean;
2537
- /** Side the popup aligns to. */
2538
- align?: "left" | "right";
3274
+ /**
3275
+ * 面板与触发器的对齐边。
3276
+ *
3277
+ * `"start"`(默认)/`"end"` 是**逻辑**值:LTR 下 start=左、**RTL 下 start=右**。
3278
+ * `"left"` / `"right"` 保留为**物理**值,不随方向变化。
3279
+ */
3280
+ align?: "start" | "end" | "left" | "right";
2539
3281
  /** Style applied to the outer wrapper. */
2540
3282
  style?: CSSProperties;
2541
3283
  }
@@ -2989,6 +3731,74 @@ interface SegmentedControlProps extends Omit<HTMLAttributes<HTMLDivElement>, "on
2989
3731
  /** Klun UI SegmentedControl — equal-width segmented toggle. */
2990
3732
  declare const SegmentedControl: react.ForwardRefExoticComponent<SegmentedControlProps & react.RefAttributes<HTMLDivElement>>;
2991
3733
 
3734
+ interface SidebarNavItem {
3735
+ /** Unique key; also the `navKey` value that marks this rail button active. */
3736
+ key: string;
3737
+ /** Icon rendered inside the 40px square button. */
3738
+ icon?: ReactNode;
3739
+ /** Accessible name; also used as the native tooltip. */
3740
+ label?: string;
3741
+ disabled?: boolean;
3742
+ }
3743
+ interface SidebarMenuItem {
3744
+ key: string;
3745
+ label: ReactNode;
3746
+ icon?: ReactNode;
3747
+ disabled?: boolean;
3748
+ /** Non-empty children turn the row into an expander (chevron + nested list). */
3749
+ children?: SidebarMenuItem[];
3750
+ }
3751
+ interface SidebarSection {
3752
+ /** Group caption row. */
3753
+ title?: ReactNode;
3754
+ items: SidebarMenuItem[];
3755
+ }
3756
+ interface SidebarProps extends Omit<HTMLAttributes<HTMLDivElement>, "title" | "onSelect"> {
3757
+ /** Brand / logo node shown at the top of the icon rail. */
3758
+ brand?: ReactNode;
3759
+ /** Icon-rail navigation entries. */
3760
+ navItems?: SidebarNavItem[];
3761
+ /** Icon-rail entries pinned to the bottom (e.g. settings). */
3762
+ footNavItems?: SidebarNavItem[];
3763
+ /** Avatar or account slot pinned below the rail's foot items. */
3764
+ avatar?: ReactNode;
3765
+ /** Controlled active rail key. */
3766
+ navKey?: string;
3767
+ /** Initial active rail key when uncontrolled. */
3768
+ defaultNavKey?: string;
3769
+ /** Fired when a rail entry is chosen. */
3770
+ onNavChange?: (key: string) => void;
3771
+ /** Detail-panel heading (e.g. the active section name). */
3772
+ title?: ReactNode;
3773
+ /** Menu sections rendered in the detail panel. */
3774
+ sections?: SidebarSection[];
3775
+ /** Controlled key of the highlighted menu row. */
3776
+ selectedKey?: string;
3777
+ /** Fired when a leaf menu row is chosen. */
3778
+ onSelect?: (key: string, item: SidebarMenuItem) => void;
3779
+ /** Menu keys whose children start expanded (uncontrolled). */
3780
+ defaultExpandedKeys?: string[];
3781
+ /** Render the search field above the menu. */
3782
+ searchable?: boolean;
3783
+ searchPlaceholder?: string;
3784
+ /** Fired on every keystroke in the search field. */
3785
+ onSearch?: (value: string) => void;
3786
+ /** Controlled collapsed state of the detail panel. */
3787
+ collapsed?: boolean;
3788
+ /** Initial collapsed state when uncontrolled. Default `false`. */
3789
+ defaultCollapsed?: boolean;
3790
+ /** Fired whenever the collapsed state changes. */
3791
+ onCollapse?: (collapsed: boolean) => void;
3792
+ }
3793
+ /**
3794
+ * Sidebar — two-level navigation: a fixed 64px icon rail (brand, primary
3795
+ * icons, foot items, avatar) beside a 320px detail panel that collapses to
3796
+ * the same 64px width. Ported 1:1 from the “Minimalist sidebar” Figma Make
3797
+ * community file; colours go through klun tokens, geometry and the 500ms
3798
+ * soft-spring collapse animation follow the original.
3799
+ */
3800
+ declare const Sidebar: react.ForwardRefExoticComponent<SidebarProps & react.RefAttributes<HTMLDivElement>>;
3801
+
2992
3802
  interface Step {
2993
3803
  label: ReactNode;
2994
3804
  description?: ReactNode;
@@ -3001,6 +3811,97 @@ interface StepIndicatorProps extends HTMLAttributes<HTMLDivElement> {
3001
3811
  /** Klun UI StepIndicator — horizontal numbered progress stepper. */
3002
3812
  declare const StepIndicator: react.ForwardRefExoticComponent<StepIndicatorProps & react.RefAttributes<HTMLDivElement>>;
3003
3813
 
3814
+ type StepperOrientation = "horizontal" | "vertical";
3815
+ type StepperStepState = "active" | "completed" | "inactive" | "loading";
3816
+ interface StepperIndicators {
3817
+ active?: ReactNode;
3818
+ completed?: ReactNode;
3819
+ inactive?: ReactNode;
3820
+ loading?: ReactNode;
3821
+ }
3822
+ interface StepperContextValue {
3823
+ activeStep: number;
3824
+ setActiveStep: (step: number) => void;
3825
+ orientation: StepperOrientation;
3826
+ registerTrigger: (node: HTMLButtonElement) => void;
3827
+ unregisterTrigger: (node: HTMLButtonElement) => void;
3828
+ triggerNodes: HTMLButtonElement[];
3829
+ focusNext: (currentIndex: number) => void;
3830
+ focusPrev: (currentIndex: number) => void;
3831
+ focusFirst: () => void;
3832
+ focusLast: () => void;
3833
+ indicators: StepperIndicators;
3834
+ }
3835
+ interface StepItemContextValue {
3836
+ step: number;
3837
+ state: StepperStepState;
3838
+ isDisabled: boolean;
3839
+ isLoading: boolean;
3840
+ }
3841
+ declare function useStepper(): StepperContextValue;
3842
+ declare function useStepItem(): StepItemContextValue;
3843
+ interface StepperProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange" | "defaultValue"> {
3844
+ /** Initial step when uncontrolled. Default `1`. */
3845
+ defaultValue?: number;
3846
+ /** Controlled active step (1-based). */
3847
+ value?: number;
3848
+ onValueChange?: (value: number) => void;
3849
+ orientation?: StepperOrientation;
3850
+ /** Replace the default indicator content per state. */
3851
+ indicators?: StepperIndicators;
3852
+ }
3853
+ /**
3854
+ * Stepper — interactive tab-style step navigation (ported from the Multica UI):
3855
+ * click or arrow-key between steps, with a content panel per step. Unlike the
3856
+ * presentational `StepIndicator`, steps are actionable and panels switch; for
3857
+ * linear form flows use `Wizard`.
3858
+ */
3859
+ declare const Stepper: react.ForwardRefExoticComponent<StepperProps & react.RefAttributes<HTMLDivElement>>;
3860
+ interface StepperNavProps extends HTMLAttributes<HTMLElement> {
3861
+ }
3862
+ /** Row/column that holds the step triggers (and separators). */
3863
+ declare const StepperNav: react.ForwardRefExoticComponent<StepperNavProps & react.RefAttributes<HTMLElement>>;
3864
+ interface StepperItemProps extends HTMLAttributes<HTMLDivElement> {
3865
+ /** 1-based step number. */
3866
+ step: number;
3867
+ /** Force the completed state (otherwise `step < activeStep` does). */
3868
+ completed?: boolean;
3869
+ disabled?: boolean;
3870
+ /** Show the loading indicator while this is the active step. */
3871
+ loading?: boolean;
3872
+ }
3873
+ declare const StepperItem: react.ForwardRefExoticComponent<StepperItemProps & react.RefAttributes<HTMLDivElement>>;
3874
+ interface StepperTriggerProps extends ButtonHTMLAttributes<HTMLButtonElement> {
3875
+ }
3876
+ /** The clickable step. Registers itself for arrow-key navigation. */
3877
+ declare const StepperTrigger: react.ForwardRefExoticComponent<StepperTriggerProps & react.RefAttributes<HTMLButtonElement>>;
3878
+ interface StepperIndicatorProps extends HTMLAttributes<HTMLDivElement> {
3879
+ }
3880
+ /** Circular state badge (number by default; replaceable via `indicators`). */
3881
+ declare const StepperIndicator: react.ForwardRefExoticComponent<StepperIndicatorProps & react.RefAttributes<HTMLDivElement>>;
3882
+ interface StepperSeparatorProps extends HTMLAttributes<HTMLDivElement> {
3883
+ }
3884
+ /** Connector between steps; fills with the accent once its step completes.
3885
+ * Render it inside the `StepperItem` it follows. */
3886
+ declare const StepperSeparator: react.ForwardRefExoticComponent<StepperSeparatorProps & react.RefAttributes<HTMLDivElement>>;
3887
+ interface StepperTitleProps extends HTMLAttributes<HTMLHeadingElement> {
3888
+ }
3889
+ declare const StepperTitle: react.ForwardRefExoticComponent<StepperTitleProps & react.RefAttributes<HTMLHeadingElement>>;
3890
+ interface StepperDescriptionProps extends HTMLAttributes<HTMLDivElement> {
3891
+ }
3892
+ declare const StepperDescription: react.ForwardRefExoticComponent<StepperDescriptionProps & react.RefAttributes<HTMLDivElement>>;
3893
+ interface StepperPanelProps extends HTMLAttributes<HTMLDivElement> {
3894
+ }
3895
+ /** Wrapper for the step content below the nav. */
3896
+ declare const StepperPanel: react.ForwardRefExoticComponent<StepperPanelProps & react.RefAttributes<HTMLDivElement>>;
3897
+ interface StepperContentProps extends HTMLAttributes<HTMLDivElement> {
3898
+ /** The step this panel belongs to. */
3899
+ value: number;
3900
+ /** Keep the panel mounted (hidden) when inactive. */
3901
+ forceMount?: boolean;
3902
+ }
3903
+ declare const StepperContent: react.ForwardRefExoticComponent<StepperContentProps & react.RefAttributes<HTMLDivElement>>;
3904
+
3004
3905
  interface TabItem {
3005
3906
  value: string;
3006
3907
  label: ReactNode;
@@ -3151,8 +4052,6 @@ interface DrawerProps extends Omit<HTMLAttributes<HTMLDivElement>, "title" | "st
3151
4052
  title?: ReactNode;
3152
4053
  /** Edge the drawer slides from. Default `"right"`. */
3153
4054
  placement?: DrawerPlacement;
3154
- /** Alias of `placement`, kept for back-compat. */
3155
- side?: "left" | "right";
3156
4055
  /** Width for left/right placements. Default `"50%"`. */
3157
4056
  width?: number | string;
3158
4057
  /** Height for top/bottom placements. Default `"50%"`. */
@@ -3196,12 +4095,42 @@ interface DropdownItem {
3196
4095
  interface DropdownProps extends HTMLAttributes<HTMLSpanElement> {
3197
4096
  trigger: ReactNode;
3198
4097
  items: DropdownItem[];
3199
- align?: "left" | "right";
4098
+ /** 同 Popover:`"start"`/`"end"` 为逻辑值(随 RTL 翻转),`"left"`/`"right"` 为物理值。默认 `"start"`。 */
4099
+ align?: "start" | "end" | "left" | "right";
3200
4100
  width?: number;
3201
4101
  }
3202
4102
  /** Klun UI Dropdown — click-to-open menu anchored to a trigger. */
3203
4103
  declare const Dropdown: react.ForwardRefExoticComponent<DropdownProps & react.RefAttributes<HTMLSpanElement>>;
3204
4104
 
4105
+ type HoverCardSide = "top" | "bottom" | "left" | "right";
4106
+ type HoverCardAlign = "start" | "center" | "end";
4107
+ interface HoverCardProps {
4108
+ children: ReactNode;
4109
+ /** Hover-in delay in ms. Default `300`. */
4110
+ openDelay?: number;
4111
+ /** Hover-out delay in ms; re-entering the trigger or panel cancels it. Default `150`. */
4112
+ closeDelay?: number;
4113
+ /** Controlled open state. */
4114
+ open?: boolean;
4115
+ onOpenChange?: (open: boolean) => void;
4116
+ }
4117
+ /**
4118
+ * HoverCard — a rich preview panel that opens on hover/focus of its trigger
4119
+ * (ported from the Multica UI). Unlike `Tooltip`, the panel is interactive and
4120
+ * stays open while the pointer is inside it.
4121
+ */
4122
+ declare function HoverCard({ children, openDelay, closeDelay, open: openProp, onOpenChange, }: HoverCardProps): react.JSX.Element;
4123
+ interface HoverCardTriggerProps extends HTMLAttributes<HTMLSpanElement> {
4124
+ }
4125
+ /** Wraps the hover/focus target (usually a link or button). */
4126
+ declare const HoverCardTrigger: react.ForwardRefExoticComponent<HoverCardTriggerProps & react.RefAttributes<HTMLSpanElement>>;
4127
+ interface HoverCardContentProps extends HTMLAttributes<HTMLDivElement> {
4128
+ side?: HoverCardSide;
4129
+ align?: HoverCardAlign;
4130
+ }
4131
+ /** The preview panel; portaled to <body> and clamped to the viewport. */
4132
+ declare const HoverCardContent: react.ForwardRefExoticComponent<HoverCardContentProps & react.RefAttributes<HTMLDivElement>>;
4133
+
3205
4134
  interface ImageItem {
3206
4135
  src: string;
3207
4136
  alt?: string;
@@ -3323,20 +4252,47 @@ declare const Popconfirm: react.ForwardRefExoticComponent<PopconfirmProps & reac
3323
4252
 
3324
4253
  interface PopoverProps extends Omit<HTMLAttributes<HTMLSpanElement>, "children"> {
3325
4254
  trigger: ReactNode;
3326
- align?: "left" | "right";
4255
+ /**
4256
+ * 面板与触发器的对齐边。
4257
+ *
4258
+ * `"start"`(默认)与 `"end"` 是**逻辑**值:随书写方向解析——
4259
+ * LTR 下 start=左、end=右;**RTL 下 start=右、end=左**。
4260
+ * `"left"` / `"right"` 保留为**物理**值(不随方向变化),供确需固定一侧的场景使用。
4261
+ *
4262
+ * 修复前只有 `"left" | "right"` 且默认 `"left"`,于是 RTL 下面板仍贴物理左边缘,
4263
+ * 相当于「末尾对齐」——与 LTR 的语义相反,是覆盖层最典型的 RTL 破法。
4264
+ */
4265
+ align?: "start" | "end" | "left" | "right";
3327
4266
  width?: number;
3328
4267
  /** Panel content, or a render-fn receiving a close() callback. */
3329
4268
  children: ReactNode | ((close: () => void) => ReactNode);
4269
+ /** Controlled open state. Leave undefined for uncontrolled. */
4270
+ open?: boolean;
4271
+ /** Initial state when uncontrolled. */
4272
+ defaultOpen?: boolean;
4273
+ /** Called whenever the open state should change. */
4274
+ onOpenChange?: (open: boolean) => void;
4275
+ /** Explicit id for the panel; otherwise generated. The trigger references it via aria-controls. */
4276
+ panelId?: string;
3330
4277
  }
3331
4278
  /**
3332
- * Klun UI Popover — click-triggered floating panel anchored to a trigger.
4279
+ * Klun UI Popover — click- **or keyboard**-triggered floating panel anchored to a trigger.
4280
+ *
4281
+ * 键盘支持(KDS 04-accessibility.md):触发器原本只是一个 `<span onClick>`,
4282
+ * 既不可聚焦也无法用键盘打开——DatePicker / DateTimePicker 因此完全无法用键盘操作。
4283
+ * 现在:
4284
+ * - 触发器内部**没有**可聚焦元素时,外层本身变成 `role="button" tabIndex={0}`;
4285
+ * 有可聚焦元素时(readonly Input、Button…)不额外增加 Tab 停靠点,只给它绑
4286
+ * `aria-haspopup="dialog"` / `aria-expanded` / `aria-controls`。
4287
+ * - ArrowDown 打开;Enter/Space 在「当前焦点不是原生按钮」时打开(避免与原生
4288
+ * click 重复触发);Escape 关闭并把焦点还给触发器。
4289
+ * - 键盘打开后把焦点送进面板,否则焦点留在触发器、Tab 顺序不可预期。
3333
4290
  *
3334
4291
  * The panel renders in a portal on `document.body` and is positioned with
3335
4292
  * `fixed` coordinates anchored to the trigger, so no ancestor `overflow`/
3336
- * `transform` can clip it (e.g. a popover inside an `overflow:hidden` card or a
3337
- * scrolling table). It follows the trigger on scroll/resize, flips above when
3338
- * there's no room below, is clamped to the viewport, and sits above overlays.
4293
+ * `transform` can clip it. It follows the trigger on scroll/resize, flips above
4294
+ * when there's no room below, is clamped to the viewport, and sits above overlays.
3339
4295
  */
3340
4296
  declare const Popover: react.ForwardRefExoticComponent<PopoverProps & react.RefAttributes<HTMLSpanElement>>;
3341
4297
 
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 };
4298
+ 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 };