@surrealdb/ui 1.2.10 → 1.2.12

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/ui.d.ts CHANGED
@@ -152,6 +152,12 @@ export declare const brandDynamiqLight: string;
152
152
 
153
153
  export declare const brandElixir: string;
154
154
 
155
+ export declare const brandEveDark: string;
156
+
157
+ export declare const brandEveLight: string;
158
+
159
+ export declare const brandFacebookMessenger: string;
160
+
155
161
  export declare const brandFeastDark: string;
156
162
 
157
163
  export declare const brandFeastLight: string;
@@ -248,6 +254,8 @@ export declare const brandPolyAIDark: string;
248
254
 
249
255
  export declare const brandPolyAILight: string;
250
256
 
257
+ export declare const brandPydantic: string;
258
+
251
259
  export declare const brandPython: string;
252
260
 
253
261
  export declare const brandReact: string;
@@ -270,12 +278,16 @@ export declare const brandSlack: string;
270
278
 
271
279
  export declare const brandSmolAgents: string;
272
280
 
281
+ export declare const brandSMS: string;
282
+
273
283
  export declare const brandSnowflake: string;
274
284
 
275
285
  export declare const brandSolidJS: string;
276
286
 
277
287
  export declare const brandStackOverflow: string;
278
288
 
289
+ export declare const brandStrands: string;
290
+
279
291
  export declare const brandStripe: string;
280
292
 
281
293
  export declare const brandSurrealDB: string;
@@ -286,6 +298,8 @@ export declare const brandTanStackDark: string;
286
298
 
287
299
  export declare const brandTanStackLight: string;
288
300
 
301
+ export declare const brandTelegram: string;
302
+
289
303
  export declare const brandTencentDark: string;
290
304
 
291
305
  export declare const brandTencentLight: string;
@@ -312,6 +326,8 @@ export declare const brandVSCode: string;
312
326
 
313
327
  export declare const brandWebAssembly: string;
314
328
 
329
+ export declare const brandWhatsApp: string;
330
+
315
331
  export declare const brandWindows: string;
316
332
 
317
333
  export declare const brandXDark: string;
@@ -330,6 +346,28 @@ export declare const brandZedLight: string;
330
346
 
331
347
  export declare const BreadcrumbButton: FC<ButtonProps & ElementProps<"button">>;
332
348
 
349
+ /**
350
+ * Builds the ordered list of rows RichTimeline renders.
351
+ *
352
+ * With no active filter (or no `filter` at all) this is just the sorted entries. When a
353
+ * filter is active AND `getIndex` is supplied, contiguous runs of hidden entries are
354
+ * collapsed into gap rows so the reader can see that history was skipped. Without
355
+ * `getIndex` the hidden entries are simply dropped (no gap markers).
356
+ */
357
+ export declare function buildTimelineDisplayList<T>(options: BuildTimelineDisplayListOptions<T>): RichTimelineDisplayItem<T>[];
358
+
359
+ /** Inputs to {@link buildTimelineDisplayList}. */
360
+ export declare interface BuildTimelineDisplayListOptions<T> {
361
+ entries: T[];
362
+ getKey: (entry: T) => string;
363
+ filter?: (entry: T) => boolean;
364
+ /** Stable position within the source sequence. Required to collapse hidden runs into gaps. */
365
+ getIndex?: (entry: T) => number;
366
+ order?: RichTimelineOrder;
367
+ /** Sort value; takes precedence over `getIndex` when both are provided. */
368
+ getSortKey?: (entry: T) => number;
369
+ }
370
+
333
371
  /**
334
372
  * GitHub-flavoured markdown alert kinds (`> [!kind]`, see GitHub docs).
335
373
  * Other spellings in source are normalised onto this set.
@@ -471,6 +509,8 @@ export declare const DEFAULT_MARKDOWN_MODE: MarkdownEditMode;
471
509
  */
472
510
  export declare const DEFAULT_SLASH_COMMANDS: readonly SlashCommand[];
473
511
 
512
+ export declare function defaultGapLabel(count: number): string;
513
+
474
514
  export declare type DefaultSort = {
475
515
  [key: string]: unknown;
476
516
  };
@@ -2643,6 +2683,286 @@ export declare interface ResponsiveTabsProps extends Omit<TabsProps_2, "children
2643
2683
  selectProps?: Omit<SelectProps, "data" | "value" | "defaultValue" | "onChange">;
2644
2684
  }
2645
2685
 
2686
+ export declare const RichTimeline: RichTimelineCompound;
2687
+
2688
+ export declare const RichTimelineActions: FC<{
2689
+ children: ReactNode;
2690
+ }>;
2691
+
2692
+ export declare const RichTimelineBadge: FC<RichTimelineBadgeProps>;
2693
+
2694
+ declare interface RichTimelineBadgeProps {
2695
+ children: ReactNode;
2696
+ color?: string;
2697
+ }
2698
+
2699
+ export declare const RichTimelineCard: FC<RichTimelineCardProps>;
2700
+
2701
+ /** Card density: `stacked` is a padded multi-line card, `compact` is a single dense row. */
2702
+ export declare type RichTimelineCardLayout = "stacked" | "compact";
2703
+
2704
+ declare interface RichTimelineCardProps {
2705
+ children: ReactNode;
2706
+ layout?: RichTimelineCardLayout;
2707
+ selected?: boolean;
2708
+ invalid?: boolean;
2709
+ staggerIndex?: number;
2710
+ onClick?: () => void;
2711
+ className?: string;
2712
+ padding?: "sm" | "md" | false;
2713
+ }
2714
+
2715
+ /**
2716
+ * RichTimeline children is a render-prop: it receives each display item (entry or gap) plus its
2717
+ * context and returns the row to render. Compose the row from the exported slots, or use the
2718
+ * ready-made `RichTimeline.Event`.
2719
+ */
2720
+ declare type RichTimelineChildren<T> = (props: RichTimelineRenderProps<T>) => ReactNode;
2721
+
2722
+ /**
2723
+ * Public type of the `RichTimeline` compound: callable as a component, with the ready-made
2724
+ * `RichTimeline.Event` and the neutral layout slots attached as static members (`RichTimeline.Card`,
2725
+ * `RichTimeline.Row`, …).
2726
+ */
2727
+ export declare interface RichTimelineCompound {
2728
+ <T>(props: RichTimelineProps<T>): ReactNode;
2729
+ Event: typeof RichTimelineEvent;
2730
+ Marker: typeof RichTimelineMarker;
2731
+ StatusMarker: typeof RichTimelineStatusMarker;
2732
+ IndexMarker: typeof RichTimelineIndexMarker;
2733
+ Card: typeof RichTimelineCard;
2734
+ Gap: typeof RichTimelineGap;
2735
+ Row: typeof RichTimelineRow;
2736
+ Header: typeof RichTimelineHeader;
2737
+ Title: typeof RichTimelineTitle;
2738
+ Badge: typeof RichTimelineBadge;
2739
+ Description: typeof RichTimelineDescription;
2740
+ Meta: typeof RichTimelineMeta;
2741
+ Actions: typeof RichTimelineActions;
2742
+ RowPrimary: typeof RichTimelineRowPrimary;
2743
+ Details: typeof RichTimelineDetails;
2744
+ DetailsToggle: typeof RichTimelineDetailsToggle;
2745
+ Summary: typeof RichTimelineSummary;
2746
+ }
2747
+
2748
+ export declare const RichTimelineDescription: FC<RichTimelineDescriptionProps>;
2749
+
2750
+ declare interface RichTimelineDescriptionProps {
2751
+ children: ReactNode;
2752
+ mono?: boolean;
2753
+ }
2754
+
2755
+ /** Expandable detail region; renders nothing until its row's context is expanded. An inset
2756
+ divider separates it from the card body for manual compositions. */
2757
+ export declare const RichTimelineDetails: FC<RichTimelineDetailsProps>;
2758
+
2759
+ declare interface RichTimelineDetailsProps {
2760
+ children: ReactNode;
2761
+ label?: ReactNode;
2762
+ ctx: RichTimelineItemContext;
2763
+ }
2764
+
2765
+ /** Full-width disclosure control for the foot of an event card — an unmistakable target. */
2766
+ export declare const RichTimelineDetailsToggle: FC<RichTimelineDetailsToggleProps>;
2767
+
2768
+ declare interface RichTimelineDetailsToggleProps {
2769
+ expanded: boolean;
2770
+ onToggle: () => void;
2771
+ /** Label shown while collapsed. */
2772
+ showLabel?: string;
2773
+ /** Label shown while expanded. */
2774
+ hideLabel?: string;
2775
+ className?: string;
2776
+ }
2777
+
2778
+ /** A real data row in the display list. */
2779
+ export declare interface RichTimelineDisplayEntry<T> {
2780
+ kind: "entry";
2781
+ entry: T;
2782
+ key: string;
2783
+ /** Position used to stagger the entrance animation; capped so late rows don't lag. */
2784
+ staggerIndex: number;
2785
+ }
2786
+
2787
+ /**
2788
+ * A collapsed placeholder standing in for a contiguous run of entries that a filter
2789
+ * hid. Only produced when `getIndex` is supplied (see {@link BuildTimelineDisplayListOptions}).
2790
+ */
2791
+ export declare interface RichTimelineDisplayGap {
2792
+ kind: "gap";
2793
+ key: string;
2794
+ hiddenCount: number;
2795
+ /** Inclusive index range the gap covers, when known. */
2796
+ fromIndex?: number;
2797
+ toIndex?: number;
2798
+ }
2799
+
2800
+ /** A row to render: either a real entry or a gap placeholder. */
2801
+ export declare type RichTimelineDisplayItem<T> = RichTimelineDisplayEntry<T> | RichTimelineDisplayGap;
2802
+
2803
+ /**
2804
+ * Stacked event card: a square status marker, a title/badge/summary header, and — when the item
2805
+ * carries `details` — a divider-separated details panel revealed by a full-width footer toggle.
2806
+ */
2807
+ export declare const RichTimelineEvent: FC<RichTimelineEventProps>;
2808
+
2809
+ /** Status badge shown alongside an event's title. */
2810
+ export declare interface RichTimelineEventBadge {
2811
+ label: string;
2812
+ color: string;
2813
+ }
2814
+
2815
+ /** Data model for a {@link RichTimelineEvent} (`RichTimeline.Event`) row. */
2816
+ export declare interface RichTimelineEventItem {
2817
+ id: string;
2818
+ variant: StatusVariant;
2819
+ /** Accessible label for the status marker; falls back to the badge label. */
2820
+ markerLabel?: string;
2821
+ title: ReactNode;
2822
+ badge?: RichTimelineEventBadge;
2823
+ summary?: ReactNode;
2824
+ meta?: ReactNode;
2825
+ actions?: ReactNode;
2826
+ body?: ReactNode;
2827
+ /** Expandable detail content; its presence adds the footer disclosure toggle. */
2828
+ details?: ReactNode;
2829
+ detailsLabel?: string;
2830
+ defaultExpanded?: boolean;
2831
+ /** Activates the whole row (e.g. navigate/select); independent of expanding details. */
2832
+ onActivate?: () => void;
2833
+ }
2834
+
2835
+ export declare interface RichTimelineEventProps {
2836
+ item: RichTimelineEventItem;
2837
+ ctx: RichTimelineItemContext;
2838
+ /** Entrance-animation stagger position; pass `item.staggerIndex` from the RichTimeline render-prop. */
2839
+ staggerIndex?: number;
2840
+ }
2841
+
2842
+ export declare const RichTimelineGap: FC<RichTimelineGapProps>;
2843
+
2844
+ declare interface RichTimelineGapProps {
2845
+ count: number;
2846
+ label?: ReactNode;
2847
+ ariaLabel?: string;
2848
+ hideMarkerOnMobile?: boolean;
2849
+ }
2850
+
2851
+ export declare const RichTimelineHeader: FC<{
2852
+ children: ReactNode;
2853
+ interactive?: boolean;
2854
+ onClick?: () => void;
2855
+ onKeyDown?: (e: React.KeyboardEvent) => void;
2856
+ role?: string;
2857
+ tabIndex?: number;
2858
+ ariaExpanded?: boolean;
2859
+ }>;
2860
+
2861
+ export declare const RichTimelineIndexMarker: FC<RichTimelineIndexMarkerProps>;
2862
+
2863
+ /** Square, monospaced marker showing an entry's position — used by the explorer-style rows. */
2864
+ declare interface RichTimelineIndexMarkerProps {
2865
+ label: ReactNode;
2866
+ selected?: boolean;
2867
+ className?: string;
2868
+ }
2869
+
2870
+ /** Per-row state handed to render-prop children and slot renderers. */
2871
+ export declare interface RichTimelineItemContext {
2872
+ selected: boolean;
2873
+ invalid: boolean;
2874
+ expanded: boolean;
2875
+ toggleExpanded: () => void;
2876
+ cardLayout: RichTimelineCardLayout;
2877
+ /** True when a filter is active anywhere in the list (not whether this row is filtered out). */
2878
+ filtered: boolean;
2879
+ }
2880
+
2881
+ export declare const RichTimelineMarker: FC<RichTimelineMarkerProps>;
2882
+
2883
+ declare interface RichTimelineMarkerProps {
2884
+ children: ReactNode;
2885
+ className?: string;
2886
+ hideOnMobile?: boolean;
2887
+ }
2888
+
2889
+ export declare const RichTimelineMeta: FC<{
2890
+ children: ReactNode;
2891
+ }>;
2892
+
2893
+ /** Direction the display list is sorted in: most recent at the top or at the bottom. */
2894
+ export declare type RichTimelineOrder = "newest-first" | "oldest-first";
2895
+
2896
+ export declare interface RichTimelineProps<T> {
2897
+ /** Source data; sorting, filtering and gap insertion are derived from these. */
2898
+ entries: T[];
2899
+ /** Stable React key for an entry. */
2900
+ getKey: (entry: T) => string;
2901
+ order?: RichTimelineOrder;
2902
+ /** Sort value; takes precedence over `getIndex`. */
2903
+ getSortKey?: (entry: T) => number;
2904
+ /** Returns `true` for entries that should stay visible. */
2905
+ filter?: (entry: T) => boolean;
2906
+ /** Positional index; supplying it lets filtered-out runs collapse into gap rows. */
2907
+ getIndex?: (entry: T) => number;
2908
+ selectedKey?: string;
2909
+ /** Keys to render with the "invalid" treatment. */
2910
+ invalidKeys?: ReadonlySet<string>;
2911
+ /** Keys expanded on first render (expansion is uncontrolled thereafter). */
2912
+ initialExpandedKeys?: ReadonlySet<string>;
2913
+ /** `true`/options forces windowing; omitted, it auto-enables past 100 rows. */
2914
+ virtualize?: boolean | VirtualizeOptions;
2915
+ cardLayout?: RichTimelineCardLayout;
2916
+ hideMarkerOnMobile?: boolean;
2917
+ emptyMessage?: ReactNode;
2918
+ className?: string;
2919
+ /** Render-prop returning the row for each display item (entry or gap). */
2920
+ children: RichTimelineChildren<T>;
2921
+ }
2922
+
2923
+ /** Arguments to the RichTimeline render-prop. */
2924
+ export declare interface RichTimelineRenderProps<T> {
2925
+ item: RichTimelineDisplayItem<T>;
2926
+ ctx: RichTimelineItemContext;
2927
+ }
2928
+
2929
+ export declare const RichTimelineRow: FC<RichTimelineRowProps>;
2930
+
2931
+ export declare const RichTimelineRowPrimary: FC<{
2932
+ children: ReactNode;
2933
+ }>;
2934
+
2935
+ declare interface RichTimelineRowProps {
2936
+ children: ReactNode;
2937
+ staggerIndex?: number;
2938
+ align?: "start" | "center";
2939
+ hideMarkerOnMobile?: boolean;
2940
+ className?: string;
2941
+ }
2942
+
2943
+ export declare const RichTimelineStatusMarker: FC<RichTimelineStatusMarkerProps>;
2944
+
2945
+ /** Square, opaque status chip (success/warning/error/neutral) — the marker for event rows. */
2946
+ declare interface RichTimelineStatusMarkerProps {
2947
+ variant: StatusVariant;
2948
+ /** Accessible name. When omitted the chip is treated as decorative (`aria-hidden`). */
2949
+ label?: string;
2950
+ className?: string;
2951
+ }
2952
+
2953
+ /** Optional "Showing N of M" / "N entries" caption; hidden when there's nothing useful to say. */
2954
+ export declare const RichTimelineSummary: FC<RichTimelineSummaryProps>;
2955
+
2956
+ declare interface RichTimelineSummaryProps {
2957
+ filtered: boolean;
2958
+ matchCount: number;
2959
+ totalCount: number;
2960
+ }
2961
+
2962
+ export declare const RichTimelineTitle: FC<{
2963
+ children: ReactNode;
2964
+ }>;
2965
+
2646
2966
  export declare function SectionTitle({ order, kicker, description, kickerProps, titleProps, descriptionProps, children, ...boxProps }: PropsWithChildren<SectionTitle>): ReactElement;
2647
2967
 
2648
2968
  export declare interface SectionTitle extends BoxProps {
@@ -2800,6 +3120,20 @@ export declare type StateFields = {
2800
3120
  [prop: string]: StateField<any>;
2801
3121
  };
2802
3122
 
3123
+ /** A circular, tinted status badge — a status glyph (success/warning/error/neutral) on a tone chip. */
3124
+ export declare const StatusIcon: FC<StatusIconProps>;
3125
+
3126
+ export declare interface StatusIconProps extends Omit<BoxProps, "children"> {
3127
+ variant: StatusVariant;
3128
+ size?: StatusIconSize;
3129
+ /** Accessible name. When omitted the icon is treated as decorative (`aria-hidden`). */
3130
+ label?: string;
3131
+ }
3132
+
3133
+ export declare type StatusIconSize = "sm" | "md" | "xl";
3134
+
3135
+ export declare type StatusVariant = "success" | "warning" | "error" | "neutral";
3136
+
2803
3137
  /**
2804
3138
  * A vertical timeline whose steps expand one at a time. Each step shows a
2805
3139
  * numbered bullet and a clickable title; activating a step collapses the others
@@ -2984,6 +3318,17 @@ export declare interface VideoPlayerProps extends BoxProps {
2984
3318
  videoProps?: Omit<VideoHTMLAttributes<HTMLVideoElement>, "autoPlay" | "loop" | "poster" | "controls" | "src" | "muted">;
2985
3319
  }
2986
3320
 
3321
+ /** Tuning passed through to TanStack Virtual when the list is windowed. */
3322
+ export declare interface VirtualizeOptions {
3323
+ /** Estimated px height of an entry row. */
3324
+ estimateSize?: number;
3325
+ /** Estimated px height of a gap row. */
3326
+ gapEstimateSize?: number;
3327
+ overscan?: number;
3328
+ /** Height of the scroll viewport. */
3329
+ scrollHeight?: number | string;
3330
+ }
3331
+
2987
3332
  /**
2988
3333
  * The default UI Kit editor theme
2989
3334
  */