@annondeveloper/ui-kit 0.1.0 → 0.2.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/{chunk-5OKSXPWK.js → chunk-2DWZVHZS.js} +2 -2
- package/dist/chunk-2DWZVHZS.js.map +1 -0
- package/dist/form.d.ts +6 -6
- package/dist/form.js +1 -1
- package/dist/form.js.map +1 -1
- package/dist/index.d.ts +508 -52
- package/dist/index.js +2927 -4
- package/dist/index.js.map +1 -1
- package/dist/{select-nnBJUO8U.d.ts → select-B2wXqqSM.d.ts} +2 -2
- package/package.json +1 -1
- package/src/components/animated-counter.tsx +2 -1
- package/src/components/avatar.tsx +2 -1
- package/src/components/badge.tsx +3 -2
- package/src/components/button.tsx +3 -2
- package/src/components/card.tsx +13 -12
- package/src/components/checkbox.tsx +3 -2
- package/src/components/color-input.tsx +414 -0
- package/src/components/command-bar.tsx +434 -0
- package/src/components/confidence-bar.tsx +115 -0
- package/src/components/confirm-dialog.tsx +2 -1
- package/src/components/copy-block.tsx +229 -0
- package/src/components/data-table.tsx +2 -1
- package/src/components/diff-viewer.tsx +319 -0
- package/src/components/dropdown-menu.tsx +2 -1
- package/src/components/empty-state.tsx +2 -1
- package/src/components/filter-pill.tsx +2 -1
- package/src/components/form-input.tsx +5 -4
- package/src/components/heatmap-calendar.tsx +213 -0
- package/src/components/infinite-scroll.tsx +243 -0
- package/src/components/kanban-column.tsx +198 -0
- package/src/components/live-feed.tsx +220 -0
- package/src/components/log-viewer.tsx +2 -1
- package/src/components/metric-card.tsx +2 -1
- package/src/components/notification-stack.tsx +226 -0
- package/src/components/pipeline-stage.tsx +2 -1
- package/src/components/popover.tsx +2 -1
- package/src/components/port-status-grid.tsx +2 -1
- package/src/components/progress.tsx +2 -1
- package/src/components/radio-group.tsx +2 -1
- package/src/components/realtime-value.tsx +283 -0
- package/src/components/select.tsx +2 -1
- package/src/components/severity-timeline.tsx +2 -1
- package/src/components/sheet.tsx +2 -1
- package/src/components/skeleton.tsx +4 -3
- package/src/components/slider.tsx +2 -1
- package/src/components/smart-table.tsx +383 -0
- package/src/components/sortable-list.tsx +268 -0
- package/src/components/sparkline.tsx +2 -1
- package/src/components/status-badge.tsx +2 -1
- package/src/components/status-pulse.tsx +2 -1
- package/src/components/step-wizard.tsx +372 -0
- package/src/components/streaming-text.tsx +163 -0
- package/src/components/success-checkmark.tsx +2 -1
- package/src/components/tabs.tsx +2 -1
- package/src/components/threshold-gauge.tsx +2 -1
- package/src/components/time-range-selector.tsx +2 -1
- package/src/components/toast.tsx +2 -1
- package/src/components/toggle-switch.tsx +2 -1
- package/src/components/tooltip.tsx +2 -1
- package/src/components/truncated-text.tsx +2 -1
- package/src/components/typing-indicator.tsx +123 -0
- package/src/components/uptime-tracker.tsx +2 -1
- package/src/components/utilization-bar.tsx +2 -1
- package/src/utils.ts +1 -1
- package/dist/chunk-5OKSXPWK.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { ClassValue } from 'clsx';
|
|
2
|
-
import
|
|
3
|
-
import { ButtonHTMLAttributes, InputHTMLAttributes, ReactNode, HTMLAttributes, ElementType } from 'react';
|
|
4
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import React, { ButtonHTMLAttributes, InputHTMLAttributes, ReactNode, HTMLAttributes, ElementType } from 'react';
|
|
5
3
|
import { LucideIcon } from 'lucide-react';
|
|
6
|
-
export { a as Select, S as SelectOption, b as SelectProps } from './select-
|
|
4
|
+
export { a as Select, S as SelectOption, b as SelectProps } from './select-B2wXqqSM.js';
|
|
7
5
|
import { ColumnDef } from '@tanstack/react-table';
|
|
8
6
|
export { toast } from 'sonner';
|
|
9
7
|
|
|
@@ -67,7 +65,7 @@ interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
|
67
65
|
* @description A themed button with variant, size, and loading support.
|
|
68
66
|
* Uses CSS custom property tokens for dark/light mode compatibility.
|
|
69
67
|
*/
|
|
70
|
-
declare const Button:
|
|
68
|
+
declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
71
69
|
|
|
72
70
|
type BadgeColor = 'brand' | 'blue' | 'green' | 'yellow' | 'red' | 'orange' | 'purple' | 'pink' | 'teal' | 'gray';
|
|
73
71
|
interface BadgeProps {
|
|
@@ -84,7 +82,7 @@ interface BadgeProps {
|
|
|
84
82
|
* @description A themed pill badge with color presets and optional icon.
|
|
85
83
|
* Supports xs, sm, and md sizes with dark/light mode via CSS tokens.
|
|
86
84
|
*/
|
|
87
|
-
declare function Badge({ children, color, icon: Icon, size, className, }: BadgeProps):
|
|
85
|
+
declare function Badge({ children, color, icon: Icon, size, className, }: BadgeProps): React.JSX.Element;
|
|
88
86
|
interface BadgeVariantConfig<T extends string> {
|
|
89
87
|
/** Map from value to BadgeColor. */
|
|
90
88
|
colorMap: Partial<Record<T, BadgeColor>>;
|
|
@@ -108,10 +106,10 @@ interface BadgeVariantConfig<T extends string> {
|
|
|
108
106
|
* // Usage: <SeverityBadge value="critical" />
|
|
109
107
|
* ```
|
|
110
108
|
*/
|
|
111
|
-
declare function createBadgeVariant<T extends string>(config: BadgeVariantConfig<T>): (
|
|
109
|
+
declare function createBadgeVariant<T extends string>(config: BadgeVariantConfig<T>): (props: {
|
|
112
110
|
value: T;
|
|
113
111
|
className?: string;
|
|
114
|
-
}) =>
|
|
112
|
+
}) => React.JSX.Element;
|
|
115
113
|
|
|
116
114
|
interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {
|
|
117
115
|
/** Show an indeterminate (minus) indicator instead of a checkmark. */
|
|
@@ -123,7 +121,7 @@ interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'typ
|
|
|
123
121
|
* @description A themed checkbox with indeterminate state support.
|
|
124
122
|
* Uses CSS custom property tokens for dark/light mode compatibility.
|
|
125
123
|
*/
|
|
126
|
-
declare const Checkbox:
|
|
124
|
+
declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLInputElement>>;
|
|
127
125
|
|
|
128
126
|
interface ToggleSwitchProps {
|
|
129
127
|
/** Whether the toggle is on. */
|
|
@@ -142,7 +140,7 @@ interface ToggleSwitchProps {
|
|
|
142
140
|
* @description A themed toggle switch using lucide icons for on/off states.
|
|
143
141
|
* Supports dark/light mode via CSS custom property tokens.
|
|
144
142
|
*/
|
|
145
|
-
declare function ToggleSwitch({ enabled, onChange, size, disabled, label, className, }: ToggleSwitchProps):
|
|
143
|
+
declare function ToggleSwitch({ enabled, onChange, size, disabled, label, className, }: ToggleSwitchProps): React.JSX.Element;
|
|
146
144
|
|
|
147
145
|
declare const INPUT_CLS: string;
|
|
148
146
|
declare const LABEL_CLS: string;
|
|
@@ -172,7 +170,7 @@ interface FormInputProps {
|
|
|
172
170
|
* @description A themed form input with label, validation indicator, and optional hint text.
|
|
173
171
|
* Uses CSS custom property tokens for dark/light mode compatibility.
|
|
174
172
|
*/
|
|
175
|
-
declare function FormInput({ label, value, onChange, type, placeholder, required, disabled, hint, className, autoComplete, }: FormInputProps):
|
|
173
|
+
declare function FormInput({ label, value, onChange, type, placeholder, required, disabled, hint, className, autoComplete, }: FormInputProps): React.JSX.Element;
|
|
176
174
|
|
|
177
175
|
interface FilterPillProps {
|
|
178
176
|
/** Label text for the pill. */
|
|
@@ -189,7 +187,7 @@ interface FilterPillProps {
|
|
|
189
187
|
* @description A rounded pill-style filter toggle with active state and optional count.
|
|
190
188
|
* Uses CSS custom property tokens for dark/light mode compatibility.
|
|
191
189
|
*/
|
|
192
|
-
declare function FilterPill({ label, count, active, onClick, className }: FilterPillProps):
|
|
190
|
+
declare function FilterPill({ label, count, active, onClick, className }: FilterPillProps): React.JSX.Element;
|
|
193
191
|
|
|
194
192
|
interface EmptyStateProps {
|
|
195
193
|
/** Icon component displayed in the center. */
|
|
@@ -206,13 +204,13 @@ interface EmptyStateProps {
|
|
|
206
204
|
* @description A decorative empty state placeholder with icon, title, description, and optional actions.
|
|
207
205
|
* Features a subtle gradient background and glass-morphism styling.
|
|
208
206
|
*/
|
|
209
|
-
declare function EmptyState({ icon: Icon, title, description, actions, className }: EmptyStateProps):
|
|
207
|
+
declare function EmptyState({ icon: Icon, title, description, actions, className }: EmptyStateProps): React.JSX.Element;
|
|
210
208
|
|
|
211
209
|
/**
|
|
212
210
|
* @description A shimmer skeleton loader block. Requires the `skeleton-shimmer` CSS class
|
|
213
211
|
* from theme.css to animate.
|
|
214
212
|
*/
|
|
215
|
-
declare function Skeleton({ className, ...props }: React.HTMLAttributes<HTMLDivElement>):
|
|
213
|
+
declare function Skeleton({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
|
|
216
214
|
interface SkeletonTextProps {
|
|
217
215
|
/** Number of text lines to render. */
|
|
218
216
|
lines?: number;
|
|
@@ -222,13 +220,13 @@ interface SkeletonTextProps {
|
|
|
222
220
|
* @description A multi-line skeleton text placeholder. The last line renders shorter
|
|
223
221
|
* for a natural paragraph appearance.
|
|
224
222
|
*/
|
|
225
|
-
declare function SkeletonText({ lines, className }: SkeletonTextProps):
|
|
223
|
+
declare function SkeletonText({ lines, className }: SkeletonTextProps): React.JSX.Element;
|
|
226
224
|
/**
|
|
227
225
|
* @description A card-shaped skeleton placeholder with header area and content bars.
|
|
228
226
|
*/
|
|
229
227
|
declare function SkeletonCard({ className }: {
|
|
230
228
|
className?: string;
|
|
231
|
-
}):
|
|
229
|
+
}): React.JSX.Element;
|
|
232
230
|
|
|
233
231
|
interface TruncatedTextProps {
|
|
234
232
|
/** The full text to display (truncated if it overflows). */
|
|
@@ -241,7 +239,7 @@ interface TruncatedTextProps {
|
|
|
241
239
|
* @description A text element that truncates with ellipsis and shows a tooltip with the
|
|
242
240
|
* full text on hover when truncated. Includes a copy-to-clipboard button in the tooltip.
|
|
243
241
|
*/
|
|
244
|
-
declare function TruncatedText({ text, maxWidth, className }: TruncatedTextProps):
|
|
242
|
+
declare function TruncatedText({ text, maxWidth, className }: TruncatedTextProps): React.JSX.Element;
|
|
245
243
|
|
|
246
244
|
interface ConfirmDialogProps {
|
|
247
245
|
/** Whether the dialog is open. */
|
|
@@ -267,7 +265,7 @@ interface ConfirmDialogProps {
|
|
|
267
265
|
* @description A confirmation dialog built on Radix AlertDialog with Framer Motion animations.
|
|
268
266
|
* Supports danger, warning, and default variants with loading state.
|
|
269
267
|
*/
|
|
270
|
-
declare function ConfirmDialog({ open, onOpenChange, title, description, confirmLabel, cancelLabel, variant, loading, onConfirm, }: ConfirmDialogProps):
|
|
268
|
+
declare function ConfirmDialog({ open, onOpenChange, title, description, confirmLabel, cancelLabel, variant, loading, onConfirm, }: ConfirmDialogProps): React.JSX.Element;
|
|
271
269
|
|
|
272
270
|
interface AnimatedCounterProps {
|
|
273
271
|
/** The target numeric value to animate to. */
|
|
@@ -282,7 +280,7 @@ interface AnimatedCounterProps {
|
|
|
282
280
|
* @description An animated number counter that transitions smoothly between values
|
|
283
281
|
* using requestAnimationFrame. Respects prefers-reduced-motion.
|
|
284
282
|
*/
|
|
285
|
-
declare function AnimatedCounter({ value, duration, className, format, }: AnimatedCounterProps):
|
|
283
|
+
declare function AnimatedCounter({ value, duration, className, format, }: AnimatedCounterProps): React.JSX.Element;
|
|
286
284
|
|
|
287
285
|
interface SuccessCheckmarkProps {
|
|
288
286
|
/** Size of the SVG in pixels. */
|
|
@@ -293,7 +291,7 @@ interface SuccessCheckmarkProps {
|
|
|
293
291
|
* @description An animated success checkmark SVG with circle and path draw animations.
|
|
294
292
|
* Uses Framer Motion spring physics. Respects prefers-reduced-motion.
|
|
295
293
|
*/
|
|
296
|
-
declare function SuccessCheckmark({ size, className }: SuccessCheckmarkProps):
|
|
294
|
+
declare function SuccessCheckmark({ size, className }: SuccessCheckmarkProps): React.JSX.Element;
|
|
297
295
|
|
|
298
296
|
/** Configuration for a single status entry in a StatusBadge. */
|
|
299
297
|
interface StatusConfig {
|
|
@@ -326,7 +324,7 @@ interface StatusBadgeProps {
|
|
|
326
324
|
* Accepts a configurable statusMap to define custom status values and their appearance.
|
|
327
325
|
* Falls back to a built-in default map if none is provided.
|
|
328
326
|
*/
|
|
329
|
-
declare function StatusBadge({ status, label, size, pulse, statusMap, className, }: StatusBadgeProps):
|
|
327
|
+
declare function StatusBadge({ status, label, size, pulse, statusMap, className, }: StatusBadgeProps): React.JSX.Element;
|
|
330
328
|
|
|
331
329
|
/** Configuration for a single status in StatusPulse. */
|
|
332
330
|
interface PulseConfig {
|
|
@@ -354,7 +352,7 @@ interface StatusPulseProps {
|
|
|
354
352
|
* @description An animated status indicator dot with optional pulse ring and label.
|
|
355
353
|
* Accepts a configurable map to define custom statuses. Respects prefers-reduced-motion.
|
|
356
354
|
*/
|
|
357
|
-
declare function StatusPulse({ status, label, configMap, className }: StatusPulseProps):
|
|
355
|
+
declare function StatusPulse({ status, label, configMap, className }: StatusPulseProps): React.JSX.Element;
|
|
358
356
|
|
|
359
357
|
interface ToasterProps {
|
|
360
358
|
/** Theme mode. Controls Sonner's internal theming. */
|
|
@@ -369,7 +367,7 @@ interface ToasterProps {
|
|
|
369
367
|
* instead of reading from a hook, making it portable across applications.
|
|
370
368
|
* Import this Toaster once in your app layout, then use `toast()` from sonner anywhere.
|
|
371
369
|
*/
|
|
372
|
-
declare function Toaster({ theme, position, duration }: ToasterProps):
|
|
370
|
+
declare function Toaster({ theme, position, duration }: ToasterProps): React.JSX.Element;
|
|
373
371
|
|
|
374
372
|
type Density = 'compact' | 'comfortable' | 'spacious';
|
|
375
373
|
interface DataTableProps<T> {
|
|
@@ -408,7 +406,7 @@ interface DataTableProps<T> {
|
|
|
408
406
|
* density control, column visibility/reorder, CSV export, and Framer Motion row animations.
|
|
409
407
|
* Built on @tanstack/react-table v8.
|
|
410
408
|
*/
|
|
411
|
-
declare function DataTable<T>({ columns, data, isLoading, emptyState: emptyStateProps, searchPlaceholder, onRowClick, defaultSort, defaultPageSize, exportFilename, stickyFirstColumn, density: densityProp, }: DataTableProps<T>):
|
|
409
|
+
declare function DataTable<T>({ columns, data, isLoading, emptyState: emptyStateProps, searchPlaceholder, onRowClick, defaultSort, defaultPageSize, exportFilename, stickyFirstColumn, density: densityProp, }: DataTableProps<T>): React.JSX.Element;
|
|
412
410
|
|
|
413
411
|
/** A single tab definition. */
|
|
414
412
|
interface Tab {
|
|
@@ -440,7 +438,7 @@ interface TabsProps {
|
|
|
440
438
|
* Uses Framer Motion layoutId for animated indicator sliding between tabs.
|
|
441
439
|
* Supports keyboard navigation (arrow keys) and ARIA roles.
|
|
442
440
|
*/
|
|
443
|
-
declare function Tabs({ tabs, value, onChange, variant, size, className, }: TabsProps):
|
|
441
|
+
declare function Tabs({ tabs, value, onChange, variant, size, className, }: TabsProps): React.JSX.Element;
|
|
444
442
|
|
|
445
443
|
/** A single menu item definition. */
|
|
446
444
|
interface MenuItem {
|
|
@@ -470,7 +468,7 @@ interface DropdownMenuProps {
|
|
|
470
468
|
* Features Framer Motion entry/exit animations, keyboard accessibility,
|
|
471
469
|
* and a danger variant for destructive actions.
|
|
472
470
|
*/
|
|
473
|
-
declare function DropdownMenu({ trigger, items, align, className }: DropdownMenuProps):
|
|
471
|
+
declare function DropdownMenu({ trigger, items, align, className }: DropdownMenuProps): React.JSX.Element;
|
|
474
472
|
|
|
475
473
|
interface SheetProps {
|
|
476
474
|
/** Whether the sheet is open. */
|
|
@@ -495,7 +493,7 @@ interface SheetProps {
|
|
|
495
493
|
* Features backdrop overlay, spring animation, Escape to close, backdrop click to close,
|
|
496
494
|
* and focus trapping within the panel.
|
|
497
495
|
*/
|
|
498
|
-
declare function Sheet({ open, onClose, side, title, description, width, children, className, }: SheetProps):
|
|
496
|
+
declare function Sheet({ open, onClose, side, title, description, width, children, className, }: SheetProps): React.JSX.Element;
|
|
499
497
|
|
|
500
498
|
interface ProgressProps {
|
|
501
499
|
/** Current progress value (0-100 by default). */
|
|
@@ -521,7 +519,7 @@ interface ProgressProps {
|
|
|
521
519
|
* @description A progress bar with optional label, animated fill, and indeterminate mode.
|
|
522
520
|
* Supports multiple color variants and size presets.
|
|
523
521
|
*/
|
|
524
|
-
declare function Progress({ value, max, label, showValue, variant, size, animated, indeterminate, className, }: ProgressProps):
|
|
522
|
+
declare function Progress({ value, max, label, showValue, variant, size, animated, indeterminate, className, }: ProgressProps): React.JSX.Element;
|
|
525
523
|
|
|
526
524
|
interface AvatarProps {
|
|
527
525
|
/** Image source URL. */
|
|
@@ -541,7 +539,7 @@ interface AvatarProps {
|
|
|
541
539
|
* @description User/entity avatar with image support and initials fallback.
|
|
542
540
|
* Optional status dot overlay for presence indication.
|
|
543
541
|
*/
|
|
544
|
-
declare function Avatar({ src, alt, fallback, size, status, className, }: AvatarProps):
|
|
542
|
+
declare function Avatar({ src, alt, fallback, size, status, className, }: AvatarProps): React.JSX.Element;
|
|
545
543
|
|
|
546
544
|
interface PopoverProps {
|
|
547
545
|
/** Trigger element that opens the popover. */
|
|
@@ -559,7 +557,7 @@ interface PopoverProps {
|
|
|
559
557
|
* @description A popover wrapper built on Radix Popover with Framer Motion entry animation.
|
|
560
558
|
* Closes on outside click. Includes an arrow pointer.
|
|
561
559
|
*/
|
|
562
|
-
declare function Popover({ trigger, children, side, align, className }: PopoverProps):
|
|
560
|
+
declare function Popover({ trigger, children, side, align, className }: PopoverProps): React.JSX.Element;
|
|
563
561
|
|
|
564
562
|
interface SliderProps {
|
|
565
563
|
/** Current value. */
|
|
@@ -584,7 +582,7 @@ interface SliderProps {
|
|
|
584
582
|
* Features a styled track, filled portion, and draggable thumb.
|
|
585
583
|
* Shows current value on hover/drag via a tooltip above the thumb.
|
|
586
584
|
*/
|
|
587
|
-
declare function Slider({ value, onChange, min, max, step, label, showValue, className, }: SliderProps):
|
|
585
|
+
declare function Slider({ value, onChange, min, max, step, label, showValue, className, }: SliderProps): React.JSX.Element;
|
|
588
586
|
|
|
589
587
|
declare const variantClasses: {
|
|
590
588
|
readonly default: "bg-[hsl(var(--bg-surface))] border border-[hsl(var(--border-subtle))] shadow-sm";
|
|
@@ -611,24 +609,24 @@ interface CardProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
611
609
|
* Use with CardHeader, CardTitle, CardDescription, CardContent, and CardFooter
|
|
612
610
|
* subcomponents for semantic structure.
|
|
613
611
|
*/
|
|
614
|
-
declare const Card:
|
|
612
|
+
declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
|
|
615
613
|
interface CardSubProps extends HTMLAttributes<HTMLDivElement> {
|
|
616
614
|
children: ReactNode;
|
|
617
615
|
}
|
|
618
616
|
/** Header section of a Card (flex row for title + actions). */
|
|
619
|
-
declare const CardHeader:
|
|
617
|
+
declare const CardHeader: React.ForwardRefExoticComponent<CardSubProps & React.RefAttributes<HTMLDivElement>>;
|
|
620
618
|
/** Title within a CardHeader. */
|
|
621
|
-
declare const CardTitle:
|
|
619
|
+
declare const CardTitle: React.ForwardRefExoticComponent<HTMLAttributes<HTMLHeadingElement> & {
|
|
622
620
|
children: ReactNode;
|
|
623
|
-
} &
|
|
621
|
+
} & React.RefAttributes<HTMLHeadingElement>>;
|
|
624
622
|
/** Description text within a CardHeader. */
|
|
625
|
-
declare const CardDescription:
|
|
623
|
+
declare const CardDescription: React.ForwardRefExoticComponent<HTMLAttributes<HTMLParagraphElement> & {
|
|
626
624
|
children: ReactNode;
|
|
627
|
-
} &
|
|
625
|
+
} & React.RefAttributes<HTMLParagraphElement>>;
|
|
628
626
|
/** Main content area of a Card. */
|
|
629
|
-
declare const CardContent:
|
|
627
|
+
declare const CardContent: React.ForwardRefExoticComponent<CardSubProps & React.RefAttributes<HTMLDivElement>>;
|
|
630
628
|
/** Footer section of a Card (typically for actions). */
|
|
631
|
-
declare const CardFooter:
|
|
629
|
+
declare const CardFooter: React.ForwardRefExoticComponent<CardSubProps & React.RefAttributes<HTMLDivElement>>;
|
|
632
630
|
|
|
633
631
|
/** A single radio option definition. */
|
|
634
632
|
interface RadioOption {
|
|
@@ -657,7 +655,7 @@ interface RadioGroupProps {
|
|
|
657
655
|
* @description A custom-styled radio button group with Framer Motion selection indicator.
|
|
658
656
|
* Supports keyboard navigation (arrow keys, Home, End) and ARIA roles.
|
|
659
657
|
*/
|
|
660
|
-
declare function RadioGroup({ options, value, onChange, orientation, className, }: RadioGroupProps):
|
|
658
|
+
declare function RadioGroup({ options, value, onChange, orientation, className, }: RadioGroupProps): React.JSX.Element;
|
|
661
659
|
|
|
662
660
|
interface TooltipProps {
|
|
663
661
|
/** Tooltip content (can be text or ReactNode). */
|
|
@@ -676,7 +674,7 @@ interface TooltipProps {
|
|
|
676
674
|
* Theme-styled content with arrow pointer and configurable delay.
|
|
677
675
|
* Requires a TooltipProvider ancestor (included by default).
|
|
678
676
|
*/
|
|
679
|
-
declare function Tooltip({ content, children, side, delay, className, }: TooltipProps):
|
|
677
|
+
declare function Tooltip({ content, children, side, delay, className, }: TooltipProps): React.JSX.Element;
|
|
680
678
|
|
|
681
679
|
interface MetricCardProps {
|
|
682
680
|
/** Metric display label. */
|
|
@@ -702,7 +700,7 @@ interface MetricCardProps {
|
|
|
702
700
|
* trend indicator, optional sparkline, and status-colored left border.
|
|
703
701
|
* Designed for monitoring dashboards and overview panels.
|
|
704
702
|
*/
|
|
705
|
-
declare function MetricCard({ label, value, format, previousValue, trendDirection, icon: Icon, status, sparklineData, className, }: MetricCardProps):
|
|
703
|
+
declare function MetricCard({ label, value, format, previousValue, trendDirection, icon: Icon, status, sparklineData, className, }: MetricCardProps): React.JSX.Element;
|
|
706
704
|
|
|
707
705
|
interface UtilizationBarProps {
|
|
708
706
|
/** Utilization value from 0 to 100. */
|
|
@@ -726,7 +724,7 @@ interface UtilizationBarProps {
|
|
|
726
724
|
* @description A segmented horizontal bar showing resource utilization with
|
|
727
725
|
* color-coded thresholds (green/yellow/red). Supports animated fill on mount.
|
|
728
726
|
*/
|
|
729
|
-
declare function UtilizationBar({ value: rawValue, thresholds, label, showValue, size, animated, className, }: UtilizationBarProps):
|
|
727
|
+
declare function UtilizationBar({ value: rawValue, thresholds, label, showValue, size, animated, className, }: UtilizationBarProps): React.JSX.Element;
|
|
730
728
|
|
|
731
729
|
interface SparklineProps {
|
|
732
730
|
/** Array of numeric values to plot. */
|
|
@@ -747,7 +745,7 @@ interface SparklineProps {
|
|
|
747
745
|
* @description A tiny inline SVG sparkline chart for embedding in tables, cards,
|
|
748
746
|
* and metric tiles. Pure SVG with no external dependencies.
|
|
749
747
|
*/
|
|
750
|
-
declare function Sparkline({ data, width, height, color, fillOpacity, showDots, className, }: SparklineProps):
|
|
748
|
+
declare function Sparkline({ data, width, height, color, fillOpacity, showDots, className, }: SparklineProps): React.JSX.Element | null;
|
|
751
749
|
|
|
752
750
|
interface ThresholdGaugeProps {
|
|
753
751
|
/** Gauge value from 0 to 100. */
|
|
@@ -771,7 +769,7 @@ interface ThresholdGaugeProps {
|
|
|
771
769
|
* @description A semicircular SVG gauge with color-coded threshold zones
|
|
772
770
|
* (green/yellow/red). Animates the arc on mount. Displays value in center.
|
|
773
771
|
*/
|
|
774
|
-
declare function ThresholdGauge({ value: rawValue, label, thresholds, size, showValue, format, className, }: ThresholdGaugeProps):
|
|
772
|
+
declare function ThresholdGauge({ value: rawValue, label, thresholds, size, showValue, format, className, }: ThresholdGaugeProps): React.JSX.Element;
|
|
775
773
|
|
|
776
774
|
interface TimelineEvent {
|
|
777
775
|
/** ISO 8601 timestamp. */
|
|
@@ -797,7 +795,7 @@ interface SeverityTimelineProps {
|
|
|
797
795
|
* dots. Most recent events appear on the left. Click events for detail callbacks.
|
|
798
796
|
* Designed for alert timelines and incident history strips.
|
|
799
797
|
*/
|
|
800
|
-
declare function SeverityTimeline({ events, maxVisible, onEventClick, className, }: SeverityTimelineProps):
|
|
798
|
+
declare function SeverityTimeline({ events, maxVisible, onEventClick, className, }: SeverityTimelineProps): React.JSX.Element | null;
|
|
801
799
|
|
|
802
800
|
interface LogEntry {
|
|
803
801
|
/** ISO 8601 timestamp. */
|
|
@@ -829,7 +827,7 @@ interface LogViewerProps {
|
|
|
829
827
|
* search filtering, and a "new entries" indicator when scrolled up.
|
|
830
828
|
* Designed for real-time log tailing in monitoring dashboards.
|
|
831
829
|
*/
|
|
832
|
-
declare function LogViewer({ entries, maxHeight, autoScroll, showTimestamps, showLevel, onEntryClick, className, }: LogViewerProps):
|
|
830
|
+
declare function LogViewer({ entries, maxHeight, autoScroll, showTimestamps, showLevel, onEntryClick, className, }: LogViewerProps): React.JSX.Element;
|
|
833
831
|
|
|
834
832
|
interface PortStatus {
|
|
835
833
|
/** Unique port identifier. */
|
|
@@ -859,7 +857,7 @@ interface PortStatusGridProps {
|
|
|
859
857
|
* interfaces. Each port is colored by operational status with hover tooltips showing
|
|
860
858
|
* label, speed, and utilization. Designed for switch/router faceplate visualizations.
|
|
861
859
|
*/
|
|
862
|
-
declare function PortStatusGrid({ ports, columns, size, onPortClick, className, }: PortStatusGridProps):
|
|
860
|
+
declare function PortStatusGrid({ ports, columns, size, onPortClick, className, }: PortStatusGridProps): React.JSX.Element;
|
|
863
861
|
|
|
864
862
|
interface TimeRange {
|
|
865
863
|
/** Display label (e.g. "1h", "24h"). */
|
|
@@ -883,7 +881,7 @@ interface TimeRangeSelectorProps {
|
|
|
883
881
|
* Active selection is highlighted with a sliding indicator using the brand color.
|
|
884
882
|
* Common in monitoring dashboards for controlling chart time windows.
|
|
885
883
|
*/
|
|
886
|
-
declare function TimeRangeSelector({ value, onChange, ranges, className, }: TimeRangeSelectorProps):
|
|
884
|
+
declare function TimeRangeSelector({ value, onChange, ranges, className, }: TimeRangeSelectorProps): React.JSX.Element;
|
|
887
885
|
|
|
888
886
|
interface StageInfo {
|
|
889
887
|
/** Stage display name. */
|
|
@@ -910,7 +908,7 @@ interface PipelineStageProps {
|
|
|
910
908
|
* connected by animated chevron arrows. Each stage displays name, status dot,
|
|
911
909
|
* optional icon, and optional metric. Designed for data pipeline monitoring views.
|
|
912
910
|
*/
|
|
913
|
-
declare function PipelineStage({ stages, onStageClick, className, }: PipelineStageProps):
|
|
911
|
+
declare function PipelineStage({ stages, onStageClick, className, }: PipelineStageProps): React.JSX.Element;
|
|
914
912
|
|
|
915
913
|
interface DayStatus {
|
|
916
914
|
/** Date in YYYY-MM-DD format. */
|
|
@@ -937,6 +935,464 @@ interface UptimeTrackerProps {
|
|
|
937
935
|
* operational status (ok/degraded/outage/no-data). Hover shows date and uptime
|
|
938
936
|
* percentage. Designed for SLA and availability tracking displays.
|
|
939
937
|
*/
|
|
940
|
-
declare function UptimeTracker({ days, showPercentage, label, onDayClick, className, }: UptimeTrackerProps):
|
|
938
|
+
declare function UptimeTracker({ days, showPercentage, label, onDayClick, className, }: UptimeTrackerProps): React.JSX.Element;
|
|
941
939
|
|
|
942
|
-
|
|
940
|
+
interface StreamingTextProps {
|
|
941
|
+
/** The text content — grows as tokens arrive. */
|
|
942
|
+
text: string;
|
|
943
|
+
/** Whether tokens are still arriving. */
|
|
944
|
+
isStreaming: boolean;
|
|
945
|
+
/** Cursor blink speed in ms. */
|
|
946
|
+
speed?: number;
|
|
947
|
+
/** Show a blinking cursor at the end while streaming. */
|
|
948
|
+
showCursor?: boolean;
|
|
949
|
+
/** Called when isStreaming transitions from true to false. */
|
|
950
|
+
onComplete?: () => void;
|
|
951
|
+
className?: string;
|
|
952
|
+
}
|
|
953
|
+
/**
|
|
954
|
+
* @description Displays AI/LLM streaming text responses with a blinking cursor,
|
|
955
|
+
* markdown-like formatting (bold, code), copy button on completion, and auto-scroll.
|
|
956
|
+
*/
|
|
957
|
+
declare function StreamingText({ text, isStreaming, speed, showCursor, onComplete, className, }: StreamingTextProps): React.JSX.Element;
|
|
958
|
+
|
|
959
|
+
interface TypingIndicatorProps {
|
|
960
|
+
/** Label text, e.g. "AI is thinking" or "3 users typing". */
|
|
961
|
+
label?: string;
|
|
962
|
+
/** Animation variant. */
|
|
963
|
+
variant?: 'dots' | 'pulse' | 'text';
|
|
964
|
+
/** Size preset. */
|
|
965
|
+
size?: 'sm' | 'md';
|
|
966
|
+
className?: string;
|
|
967
|
+
}
|
|
968
|
+
/**
|
|
969
|
+
* @description A "someone is typing" indicator with three variants:
|
|
970
|
+
* bouncing dots, pulsing ring, or animated ellipsis text. Respects reduced motion.
|
|
971
|
+
*/
|
|
972
|
+
declare function TypingIndicator({ label, variant, size, className, }: TypingIndicatorProps): React.JSX.Element;
|
|
973
|
+
|
|
974
|
+
interface ConfidenceBarProps {
|
|
975
|
+
/** Confidence value between 0 and 1 (probability). */
|
|
976
|
+
value: number;
|
|
977
|
+
/** Optional label displayed before the bar. */
|
|
978
|
+
label?: string;
|
|
979
|
+
/** Show percentage text beside the bar. */
|
|
980
|
+
showPercentage?: boolean;
|
|
981
|
+
/** Thresholds for color zones. */
|
|
982
|
+
thresholds?: {
|
|
983
|
+
low: number;
|
|
984
|
+
medium: number;
|
|
985
|
+
};
|
|
986
|
+
/** Size preset. */
|
|
987
|
+
size?: 'sm' | 'md';
|
|
988
|
+
className?: string;
|
|
989
|
+
}
|
|
990
|
+
/**
|
|
991
|
+
* @description A horizontal confidence/probability bar colored by threshold zones:
|
|
992
|
+
* red (<low), yellow (low-medium), green (>medium). Animates fill on mount.
|
|
993
|
+
*/
|
|
994
|
+
declare function ConfidenceBar({ value, label, showPercentage, thresholds, size, className, }: ConfidenceBarProps): React.JSX.Element;
|
|
995
|
+
|
|
996
|
+
interface FeedItem {
|
|
997
|
+
id: string;
|
|
998
|
+
content: React.ReactNode;
|
|
999
|
+
timestamp: string | Date;
|
|
1000
|
+
type?: 'info' | 'success' | 'warning' | 'error';
|
|
1001
|
+
}
|
|
1002
|
+
interface LiveFeedProps {
|
|
1003
|
+
/** Array of feed items, newest first. */
|
|
1004
|
+
items: FeedItem[];
|
|
1005
|
+
/** Maximum visible items before oldest are faded out. */
|
|
1006
|
+
maxVisible?: number;
|
|
1007
|
+
/** Show relative timestamps beside each item. */
|
|
1008
|
+
showTimestamps?: boolean;
|
|
1009
|
+
/** Auto-scroll to newest items. */
|
|
1010
|
+
autoScroll?: boolean;
|
|
1011
|
+
/** Callback when an item is clicked. */
|
|
1012
|
+
onItemClick?: (item: FeedItem) => void;
|
|
1013
|
+
/** Message shown when items array is empty. */
|
|
1014
|
+
emptyMessage?: string;
|
|
1015
|
+
className?: string;
|
|
1016
|
+
}
|
|
1017
|
+
/**
|
|
1018
|
+
* @description A real-time event feed with animated item entry, auto-scroll,
|
|
1019
|
+
* pause/resume controls, type-colored borders, and relative timestamps.
|
|
1020
|
+
*/
|
|
1021
|
+
declare function LiveFeed({ items, maxVisible, showTimestamps, autoScroll: autoScrollProp, onItemClick, emptyMessage, className, }: LiveFeedProps): React.JSX.Element;
|
|
1022
|
+
|
|
1023
|
+
interface DiffViewerProps {
|
|
1024
|
+
/** The original text. */
|
|
1025
|
+
oldValue: string;
|
|
1026
|
+
/** The modified text. */
|
|
1027
|
+
newValue: string;
|
|
1028
|
+
/** Display mode. */
|
|
1029
|
+
mode?: 'inline' | 'side-by-side';
|
|
1030
|
+
/** Language hint for potential styling. */
|
|
1031
|
+
language?: string;
|
|
1032
|
+
/** Show line numbers in the gutter. */
|
|
1033
|
+
showLineNumbers?: boolean;
|
|
1034
|
+
className?: string;
|
|
1035
|
+
}
|
|
1036
|
+
/**
|
|
1037
|
+
* @description A diff viewer showing line-by-line differences between two text values.
|
|
1038
|
+
* Supports inline and side-by-side modes, collapsible unchanged sections, and line numbers.
|
|
1039
|
+
*/
|
|
1040
|
+
declare function DiffViewer({ oldValue, newValue, mode, language, showLineNumbers, className, }: DiffViewerProps): React.JSX.Element;
|
|
1041
|
+
|
|
1042
|
+
interface DayValue {
|
|
1043
|
+
/** Date in YYYY-MM-DD format. */
|
|
1044
|
+
date: string;
|
|
1045
|
+
/** Numeric value for this day. */
|
|
1046
|
+
value: number;
|
|
1047
|
+
}
|
|
1048
|
+
interface HeatmapCalendarProps {
|
|
1049
|
+
/** Array of day values. */
|
|
1050
|
+
data: DayValue[];
|
|
1051
|
+
/** Start date (YYYY-MM-DD). Defaults to 365 days ago. */
|
|
1052
|
+
startDate?: string;
|
|
1053
|
+
/** End date (YYYY-MM-DD). Defaults to today. */
|
|
1054
|
+
endDate?: string;
|
|
1055
|
+
/** 5 colors from lightest to darkest. Defaults to green scale. */
|
|
1056
|
+
colorScale?: string[];
|
|
1057
|
+
/** Callback when a day cell is clicked. */
|
|
1058
|
+
onDayClick?: (day: DayValue) => void;
|
|
1059
|
+
/** Show month labels at top. */
|
|
1060
|
+
showMonthLabels?: boolean;
|
|
1061
|
+
/** Show day-of-week labels (Mon, Wed, Fri) on the left. */
|
|
1062
|
+
showDayLabels?: boolean;
|
|
1063
|
+
/** Custom tooltip format function. */
|
|
1064
|
+
tooltipFormat?: (day: DayValue) => string;
|
|
1065
|
+
className?: string;
|
|
1066
|
+
}
|
|
1067
|
+
/**
|
|
1068
|
+
* @description A GitHub-style contribution heatmap calendar with configurable color scale,
|
|
1069
|
+
* hover tooltips, month/day labels, and click handlers.
|
|
1070
|
+
*/
|
|
1071
|
+
declare function HeatmapCalendar({ data, startDate, endDate, colorScale, onDayClick, showMonthLabels, showDayLabels, tooltipFormat, className, }: HeatmapCalendarProps): React.JSX.Element;
|
|
1072
|
+
|
|
1073
|
+
interface Notification {
|
|
1074
|
+
id: string;
|
|
1075
|
+
title: string;
|
|
1076
|
+
message?: string;
|
|
1077
|
+
type: 'info' | 'success' | 'warning' | 'error';
|
|
1078
|
+
action?: {
|
|
1079
|
+
label: string;
|
|
1080
|
+
onClick: () => void;
|
|
1081
|
+
};
|
|
1082
|
+
/** Whether the notification can be dismissed. */
|
|
1083
|
+
dismissible?: boolean;
|
|
1084
|
+
/** Auto-dismiss after this many ms. 0 = persistent. */
|
|
1085
|
+
duration?: number;
|
|
1086
|
+
timestamp?: Date;
|
|
1087
|
+
}
|
|
1088
|
+
interface NotificationStackProps {
|
|
1089
|
+
notifications: Notification[];
|
|
1090
|
+
/** Callback to dismiss a notification by id. */
|
|
1091
|
+
onDismiss: (id: string) => void;
|
|
1092
|
+
/** Screen corner positioning. */
|
|
1093
|
+
position?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
|
|
1094
|
+
/** Max visible cards before stacking remainder. */
|
|
1095
|
+
maxVisible?: number;
|
|
1096
|
+
className?: string;
|
|
1097
|
+
}
|
|
1098
|
+
/**
|
|
1099
|
+
* @description A fixed-position notification stack with auto-dismiss progress bars,
|
|
1100
|
+
* type-specific icons and colors, action buttons, and stacking overflow.
|
|
1101
|
+
*/
|
|
1102
|
+
declare function NotificationStack({ notifications, onDismiss, position, maxVisible, className, }: NotificationStackProps): React.JSX.Element;
|
|
1103
|
+
|
|
1104
|
+
type KanbanBadgeColor = 'brand' | 'blue' | 'green' | 'yellow' | 'red' | 'orange' | 'purple' | 'pink' | 'teal' | 'gray';
|
|
1105
|
+
interface KanbanItem {
|
|
1106
|
+
id: string;
|
|
1107
|
+
title: string;
|
|
1108
|
+
description?: string;
|
|
1109
|
+
tags?: {
|
|
1110
|
+
label: string;
|
|
1111
|
+
color: KanbanBadgeColor;
|
|
1112
|
+
}[];
|
|
1113
|
+
assignee?: {
|
|
1114
|
+
name: string;
|
|
1115
|
+
avatar?: string;
|
|
1116
|
+
};
|
|
1117
|
+
}
|
|
1118
|
+
interface KanbanColumnProps {
|
|
1119
|
+
/** Column title. */
|
|
1120
|
+
title: string;
|
|
1121
|
+
/** Items to display in this column. */
|
|
1122
|
+
items: KanbanItem[];
|
|
1123
|
+
/** Optional override for the count badge. */
|
|
1124
|
+
count?: number;
|
|
1125
|
+
/** Column header accent color (CSS value or token). */
|
|
1126
|
+
color?: string;
|
|
1127
|
+
/** Callback when a card is clicked. */
|
|
1128
|
+
onItemClick?: (item: KanbanItem) => void;
|
|
1129
|
+
/** Callback when the add button is clicked. */
|
|
1130
|
+
onAddItem?: () => void;
|
|
1131
|
+
className?: string;
|
|
1132
|
+
}
|
|
1133
|
+
/**
|
|
1134
|
+
* @description A kanban board column with title, count badge, scrollable card list,
|
|
1135
|
+
* hover states, staggered Framer Motion entrance, and empty state.
|
|
1136
|
+
*/
|
|
1137
|
+
declare function KanbanColumn({ title, items, count, color, onItemClick, onAddItem, className, }: KanbanColumnProps): React.JSX.Element;
|
|
1138
|
+
|
|
1139
|
+
/** Describes an auto-detected filter suggestion for a data column. */
|
|
1140
|
+
interface FilterSuggestion {
|
|
1141
|
+
/** Column accessor key. */
|
|
1142
|
+
column: string;
|
|
1143
|
+
/** Type of insight: outlier, top-n, pattern, or threshold. */
|
|
1144
|
+
type: 'outlier' | 'top-n' | 'pattern' | 'threshold';
|
|
1145
|
+
/** Human-readable label for the suggestion pill. */
|
|
1146
|
+
label: string;
|
|
1147
|
+
/** Apply this filter to the data. */
|
|
1148
|
+
filter: () => void;
|
|
1149
|
+
}
|
|
1150
|
+
/** Props for the SmartTable component. */
|
|
1151
|
+
interface SmartTableProps<T> extends DataTableProps<T> {
|
|
1152
|
+
/** Callback fired when a filter suggestion is generated or clicked. */
|
|
1153
|
+
onFilterSuggestion?: (suggestion: FilterSuggestion) => void;
|
|
1154
|
+
/** Maximum number of suggestions to show. */
|
|
1155
|
+
maxSuggestions?: number;
|
|
1156
|
+
}
|
|
1157
|
+
/**
|
|
1158
|
+
* @description An enhanced DataTable that analyzes column data on mount and auto-generates
|
|
1159
|
+
* smart filter suggestions such as outlier detection, top-N values, dominant patterns,
|
|
1160
|
+
* and threshold-based highlights. Click a suggestion to apply it as a filter.
|
|
1161
|
+
* Wraps the existing DataTable via composition.
|
|
1162
|
+
*/
|
|
1163
|
+
declare function SmartTable<T>({ columns, data, onFilterSuggestion, maxSuggestions, ...tableProps }: SmartTableProps<T>): React.JSX.Element;
|
|
1164
|
+
|
|
1165
|
+
/** Props for the RealtimeValue component. */
|
|
1166
|
+
interface RealtimeValueProps {
|
|
1167
|
+
/** The current value to display. */
|
|
1168
|
+
value: number | string;
|
|
1169
|
+
/** Optional label displayed above or beside the value. */
|
|
1170
|
+
label?: string;
|
|
1171
|
+
/** Custom formatter for numeric values. */
|
|
1172
|
+
format?: (v: number) => string;
|
|
1173
|
+
/** ISO timestamp or Date of the last data update. */
|
|
1174
|
+
lastUpdated?: string | Date;
|
|
1175
|
+
/** Milliseconds after which the value is considered stale. Default 30000. */
|
|
1176
|
+
staleAfterMs?: number;
|
|
1177
|
+
/** Connection state to the data source. */
|
|
1178
|
+
connectionState?: 'connected' | 'reconnecting' | 'disconnected';
|
|
1179
|
+
/** Previous numeric value for delta/change display. */
|
|
1180
|
+
previousValue?: number;
|
|
1181
|
+
/** Whether to animate value changes. Default true. */
|
|
1182
|
+
animate?: boolean;
|
|
1183
|
+
/** Display size variant. */
|
|
1184
|
+
size?: 'sm' | 'md' | 'lg' | 'xl';
|
|
1185
|
+
/** Additional class name for the root element. */
|
|
1186
|
+
className?: string;
|
|
1187
|
+
}
|
|
1188
|
+
/**
|
|
1189
|
+
* @description A live data display component with built-in freshness tracking,
|
|
1190
|
+
* connection state indicators, animated value transitions, delta display,
|
|
1191
|
+
* and auto-updating relative timestamps. Designed for real-time monitoring dashboards.
|
|
1192
|
+
*/
|
|
1193
|
+
declare function RealtimeValue({ value, label, format, lastUpdated, staleAfterMs, connectionState, previousValue, animate, size, className, }: RealtimeValueProps): React.JSX.Element;
|
|
1194
|
+
|
|
1195
|
+
/** A single command item in the palette. */
|
|
1196
|
+
interface CommandItem {
|
|
1197
|
+
/** Unique identifier. */
|
|
1198
|
+
id: string;
|
|
1199
|
+
/** Display label. */
|
|
1200
|
+
label: string;
|
|
1201
|
+
/** Optional description shown below the label. */
|
|
1202
|
+
description?: string;
|
|
1203
|
+
/** Optional icon component. */
|
|
1204
|
+
icon?: LucideIcon;
|
|
1205
|
+
/** Keyboard shortcut display string (e.g. "Cmd+K"). */
|
|
1206
|
+
shortcut?: string;
|
|
1207
|
+
/** Group name for sectioning items. */
|
|
1208
|
+
group?: string;
|
|
1209
|
+
/** Callback when item is selected. */
|
|
1210
|
+
onSelect: () => void;
|
|
1211
|
+
/** Additional search terms that match this item. */
|
|
1212
|
+
keywords?: string[];
|
|
1213
|
+
}
|
|
1214
|
+
/** Props for the CommandBar component. */
|
|
1215
|
+
interface CommandBarProps {
|
|
1216
|
+
/** Array of command items to display and search. */
|
|
1217
|
+
items: CommandItem[];
|
|
1218
|
+
/** Placeholder text for the search input. */
|
|
1219
|
+
placeholder?: string;
|
|
1220
|
+
/** Hotkey letter (combined with Cmd/Ctrl). Default "k". */
|
|
1221
|
+
hotkey?: string;
|
|
1222
|
+
/** Async search function for remote results. */
|
|
1223
|
+
onSearch?: (query: string) => Promise<CommandItem[]>;
|
|
1224
|
+
/** localStorage key for persisting recent selections. */
|
|
1225
|
+
recentKey?: string;
|
|
1226
|
+
/** Maximum number of recent items to store. Default 5. */
|
|
1227
|
+
maxRecent?: number;
|
|
1228
|
+
/** Additional class name for the dialog. */
|
|
1229
|
+
className?: string;
|
|
1230
|
+
}
|
|
1231
|
+
/**
|
|
1232
|
+
* @description A universal command palette activated by Cmd+K (Mac) or Ctrl+K (Win).
|
|
1233
|
+
* Features fuzzy search, grouped items, recent selections (localStorage),
|
|
1234
|
+
* async search support, keyboard navigation, and Framer Motion animations.
|
|
1235
|
+
* Fully configurable and not hardcoded to any app.
|
|
1236
|
+
*/
|
|
1237
|
+
declare function CommandBar({ items, placeholder, hotkey, onSearch, recentKey, maxRecent, className, }: CommandBarProps): React.JSX.Element;
|
|
1238
|
+
|
|
1239
|
+
/** A sortable item must have a string id. */
|
|
1240
|
+
interface SortableItem {
|
|
1241
|
+
id: string;
|
|
1242
|
+
[key: string]: unknown;
|
|
1243
|
+
}
|
|
1244
|
+
/** Props passed to the drag handle in the render function. */
|
|
1245
|
+
interface DragHandleProps {
|
|
1246
|
+
/** Attach to the drag handle element. */
|
|
1247
|
+
onPointerDown: (e: React.PointerEvent) => void;
|
|
1248
|
+
/** Whether this item is currently being dragged. */
|
|
1249
|
+
isDragging: boolean;
|
|
1250
|
+
/** Keyboard handler for accessible reordering. */
|
|
1251
|
+
onKeyDown: (e: React.KeyboardEvent) => void;
|
|
1252
|
+
/** The drag handle should be focusable. */
|
|
1253
|
+
tabIndex: number;
|
|
1254
|
+
/** ARIA role for the drag handle. */
|
|
1255
|
+
role: string;
|
|
1256
|
+
/** ARIA description for keyboard reordering. */
|
|
1257
|
+
'aria-roledescription': string;
|
|
1258
|
+
}
|
|
1259
|
+
/** Props for the SortableList component. */
|
|
1260
|
+
interface SortableListProps<T extends SortableItem> {
|
|
1261
|
+
/** Array of items to display. Each must have a unique `id`. */
|
|
1262
|
+
items: T[];
|
|
1263
|
+
/** Callback when items are reordered. Receives the new array. */
|
|
1264
|
+
onReorder: (items: T[]) => void;
|
|
1265
|
+
/** Render function for each item. Receives the item, its index, and drag handle props. */
|
|
1266
|
+
renderItem: (item: T, index: number, dragHandleProps: DragHandleProps) => React.JSX.Element;
|
|
1267
|
+
/** Layout direction. Default "vertical". */
|
|
1268
|
+
direction?: 'vertical' | 'horizontal';
|
|
1269
|
+
/** Additional class name for the list container. */
|
|
1270
|
+
className?: string;
|
|
1271
|
+
}
|
|
1272
|
+
/**
|
|
1273
|
+
* @description A drag-and-drop reorderable list with smooth Framer Motion layout animations.
|
|
1274
|
+
* Pure React implementation using pointer events (no external DnD library).
|
|
1275
|
+
* Supports keyboard reordering (Space to pick up, arrows to move, Enter/Space to drop).
|
|
1276
|
+
* Touch-friendly and accessible.
|
|
1277
|
+
*/
|
|
1278
|
+
declare function SortableList<T extends SortableItem>({ items, onReorder, renderItem, direction, className, }: SortableListProps<T>): React.JSX.Element;
|
|
1279
|
+
/**
|
|
1280
|
+
* @description Default drag handle component. Renders a GripVertical icon
|
|
1281
|
+
* with proper pointer/keyboard event handlers from DragHandleProps.
|
|
1282
|
+
*/
|
|
1283
|
+
declare function DragHandle(props: DragHandleProps): React.JSX.Element;
|
|
1284
|
+
|
|
1285
|
+
/** Props for the InfiniteScroll component. */
|
|
1286
|
+
interface InfiniteScrollProps<T> {
|
|
1287
|
+
/** Array of loaded items. */
|
|
1288
|
+
items: T[];
|
|
1289
|
+
/** Render function for each item. */
|
|
1290
|
+
renderItem: (item: T, index: number) => React.JSX.Element;
|
|
1291
|
+
/** Called when more items should be loaded. */
|
|
1292
|
+
loadMore: () => void | Promise<void>;
|
|
1293
|
+
/** Whether more items are available. */
|
|
1294
|
+
hasMore: boolean;
|
|
1295
|
+
/** Whether a load operation is in progress. */
|
|
1296
|
+
isLoading?: boolean;
|
|
1297
|
+
/** Pixels from bottom to trigger loadMore. Default 200. */
|
|
1298
|
+
threshold?: number;
|
|
1299
|
+
/** Fixed item height for virtualization. If omitted, all items render (no virtualization). */
|
|
1300
|
+
itemHeight?: number;
|
|
1301
|
+
/** Content to display when items array is empty. */
|
|
1302
|
+
emptyState?: React.ReactNode;
|
|
1303
|
+
/** Additional class name for the scroll container. */
|
|
1304
|
+
className?: string;
|
|
1305
|
+
}
|
|
1306
|
+
/**
|
|
1307
|
+
* @description A virtualized infinite-scroll list using IntersectionObserver.
|
|
1308
|
+
* Supports optional height-based virtualization, loading indicators, scroll-to-top,
|
|
1309
|
+
* empty states, and skeleton placeholders. No scroll event listeners used.
|
|
1310
|
+
*/
|
|
1311
|
+
declare function InfiniteScroll<T>({ items, renderItem, loadMore, hasMore, isLoading, threshold, itemHeight, emptyState, className, }: InfiniteScrollProps<T>): React.JSX.Element;
|
|
1312
|
+
|
|
1313
|
+
/** Props for the ColorInput component. */
|
|
1314
|
+
interface ColorInputProps {
|
|
1315
|
+
/** Current color value as hex string (e.g. "#ff0000"). */
|
|
1316
|
+
value: string;
|
|
1317
|
+
/** Called when the color changes. */
|
|
1318
|
+
onChange: (color: string) => void;
|
|
1319
|
+
/** Optional label. */
|
|
1320
|
+
label?: string;
|
|
1321
|
+
/** Preset color swatches. */
|
|
1322
|
+
presets?: string[];
|
|
1323
|
+
/** Show alpha/opacity slider. */
|
|
1324
|
+
showAlpha?: boolean;
|
|
1325
|
+
/** Display format for the text input. Default "hex". */
|
|
1326
|
+
format?: 'hex' | 'rgb' | 'hsl';
|
|
1327
|
+
/** Additional class name. */
|
|
1328
|
+
className?: string;
|
|
1329
|
+
}
|
|
1330
|
+
/**
|
|
1331
|
+
* @description A compact color picker input with swatch preview, expandable picker panel
|
|
1332
|
+
* featuring hue/saturation area, lightness slider, optional alpha slider, preset swatches,
|
|
1333
|
+
* format switching (hex/rgb/hsl), clipboard copy, and recent color history.
|
|
1334
|
+
*/
|
|
1335
|
+
declare function ColorInput({ value, onChange, label, presets, showAlpha, format, className, }: ColorInputProps): React.JSX.Element;
|
|
1336
|
+
|
|
1337
|
+
/** Definition of a single wizard step. */
|
|
1338
|
+
interface WizardStep {
|
|
1339
|
+
/** Unique step identifier. */
|
|
1340
|
+
id: string;
|
|
1341
|
+
/** Step title displayed in the step indicator. */
|
|
1342
|
+
title: string;
|
|
1343
|
+
/** Optional description below the title. */
|
|
1344
|
+
description?: string;
|
|
1345
|
+
/** Optional icon for the step indicator. */
|
|
1346
|
+
icon?: LucideIcon;
|
|
1347
|
+
/** Step content to render. */
|
|
1348
|
+
content: React.ReactNode;
|
|
1349
|
+
/** Validation function called before advancing. Return true to allow, false to block. */
|
|
1350
|
+
validate?: () => boolean | Promise<boolean>;
|
|
1351
|
+
}
|
|
1352
|
+
/** Props for the StepWizard component. */
|
|
1353
|
+
interface StepWizardProps {
|
|
1354
|
+
/** Array of steps in order. */
|
|
1355
|
+
steps: WizardStep[];
|
|
1356
|
+
/** Called when the final step is completed. */
|
|
1357
|
+
onComplete: () => void;
|
|
1358
|
+
/** Called whenever the active step changes. */
|
|
1359
|
+
onStepChange?: (step: number) => void;
|
|
1360
|
+
/** Step indicator layout. Default "horizontal". */
|
|
1361
|
+
orientation?: 'horizontal' | 'vertical';
|
|
1362
|
+
/** Allow skipping forward to any uncompleted step. Default false. */
|
|
1363
|
+
allowSkip?: boolean;
|
|
1364
|
+
/** Show a summary/completion state after the last step. Default false. */
|
|
1365
|
+
showSummary?: boolean;
|
|
1366
|
+
/** Additional class name for the root container. */
|
|
1367
|
+
className?: string;
|
|
1368
|
+
}
|
|
1369
|
+
/**
|
|
1370
|
+
* @description A multi-step form wizard with animated slide transitions, per-step validation,
|
|
1371
|
+
* step indicator bar (horizontal or vertical), keyboard navigation, progress percentage,
|
|
1372
|
+
* and auto-save to sessionStorage for resilience to page refresh.
|
|
1373
|
+
*/
|
|
1374
|
+
declare function StepWizard({ steps, onComplete, onStepChange, orientation, allowSkip, showSummary, className, }: StepWizardProps): React.JSX.Element;
|
|
1375
|
+
|
|
1376
|
+
/** Props for the CopyBlock component. */
|
|
1377
|
+
interface CopyBlockProps {
|
|
1378
|
+
/** The text content to display and copy. */
|
|
1379
|
+
content: string;
|
|
1380
|
+
/** Language hint for styling/accessibility (e.g. "json", "bash", "sql"). */
|
|
1381
|
+
language?: string;
|
|
1382
|
+
/** Show line numbers in the gutter. Default false. */
|
|
1383
|
+
showLineNumbers?: boolean;
|
|
1384
|
+
/** Max height in pixels before collapsing with a "Show more" toggle. */
|
|
1385
|
+
maxHeight?: number;
|
|
1386
|
+
/** Optional label displayed above the code block. */
|
|
1387
|
+
label?: string;
|
|
1388
|
+
/** Additional class name for the root container. */
|
|
1389
|
+
className?: string;
|
|
1390
|
+
}
|
|
1391
|
+
/**
|
|
1392
|
+
* @description A monospace code/text display block with one-click copy, animated feedback,
|
|
1393
|
+
* optional line numbers, collapsible overflow (show more/less), and dark-mode optimized styling.
|
|
1394
|
+
* Designed for displaying code snippets, CLI commands, config blocks, and JSON payloads.
|
|
1395
|
+
*/
|
|
1396
|
+
declare function CopyBlock({ content, language, showLineNumbers, maxHeight, label, className, }: CopyBlockProps): React.JSX.Element;
|
|
1397
|
+
|
|
1398
|
+
export { AnimatedCounter, type AnimatedCounterProps, Avatar, type AvatarProps, Badge, type BadgeColor, type BadgeProps, type BadgeVariantConfig, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, type CardSubProps, CardTitle, Checkbox, type CheckboxProps, ColorInput, type ColorInputProps, CommandBar, type CommandBarProps, type CommandItem, ConfidenceBar, type ConfidenceBarProps, ConfirmDialog, type ConfirmDialogProps, CopyBlock, type CopyBlockProps, DataTable, type DataTableProps, type DayStatus, type DayValue, type Density, DiffViewer, type DiffViewerProps, DragHandle, type DragHandleProps, DropdownMenu, type DropdownMenuProps, EmptyState, type EmptyStateProps, type FeedItem, FilterPill, type FilterPillProps, type FilterSuggestion, FormInput, type FormInputProps, HeatmapCalendar, type HeatmapCalendarProps, INPUT_CLS, InfiniteScroll, type InfiniteScrollProps, type KanbanBadgeColor, KanbanColumn, type KanbanColumnProps, type KanbanItem, LABEL_CLS, LiveFeed, type LiveFeedProps, type LogEntry, LogViewer, type LogViewerProps, type MenuItem, MetricCard, type MetricCardProps, type Notification, NotificationStack, type NotificationStackProps, PipelineStage, type PipelineStageProps, Popover, type PopoverProps, type PortStatus, PortStatusGrid, type PortStatusGridProps, Progress, type ProgressProps, type PulseConfig, RadioGroup, type RadioGroupProps, type RadioOption, RealtimeValue, type RealtimeValueProps, SeverityTimeline, type SeverityTimelineProps, Sheet, type SheetProps, Skeleton, SkeletonCard, SkeletonText, type SkeletonTextProps, Slider, type SliderProps, SmartTable, type SmartTableProps, type SortableItem, SortableList, type SortableListProps, Sparkline, type SparklineProps, type StageInfo, StatusBadge, type StatusBadgeProps, type StatusConfig, StatusPulse, type StatusPulseProps, StepWizard, type StepWizardProps, StreamingText, type StreamingTextProps, SuccessCheckmark, type SuccessCheckmarkProps, TEXTAREA_CLS, type Tab, Tabs, type TabsProps, ThresholdGauge, type ThresholdGaugeProps, type TimeRange, TimeRangeSelector, type TimeRangeSelectorProps, type TimelineEvent, Toaster, type ToasterProps, ToggleSwitch, type ToggleSwitchProps, Tooltip, type TooltipProps, TruncatedText, type TruncatedTextProps, TypingIndicator, type TypingIndicatorProps, UptimeTracker, type UptimeTrackerProps, type UtilColorMap, UtilizationBar, type UtilizationBarProps, type WizardStep, clamp, cn, createBadgeVariant, defaultPulseConfigMap, defaultStatusMap, defaultUtilColorMap, fmtBps, fmtBytes, fmtCompact, fmtDuration, fmtPct, fmtRelative, fmtSpeed, fmtUptime, fmtUtil, stripCidr, utilColor };
|