@aginies/ui 0.2.0 → 0.3.1
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.cjs +1218 -1052
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +86 -45
- package/dist/index.d.ts +86 -45
- package/dist/index.js +1172 -1007
- package/dist/index.js.map +1 -1
- package/dist/styles.css +43 -12
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -4,6 +4,16 @@ import * as React from 'react';
|
|
|
4
4
|
import JSX = React.JSX;
|
|
5
5
|
|
|
6
6
|
// --- core ---
|
|
7
|
+
/** Status tone shared by Tag, Badge, Alert, Stat deltas and widgets: neutral · signal · ok · warn · bad · info. Always paired with a word or icon. */
|
|
8
|
+
export type Tone = 'neutral' | 'signal' | 'ok' | 'warn' | 'bad' | 'info';
|
|
9
|
+
/** One of the seven product families (aginies.com). */
|
|
10
|
+
export type Product = 'platform' | 'hub' | 'dialog' | 'voice' | 'vision' | 'code' | 'workforce';
|
|
11
|
+
/** Control size: sm 28 · md 32 · lg 40 (compact density). */
|
|
12
|
+
export type ControlSize = 'sm' | 'md' | 'lg';
|
|
13
|
+
/** Avatar / display size scale. */
|
|
14
|
+
export type DataSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
15
|
+
/** @deprecated Use `DataSize`; kept because 0.1.0–0.3.0 exported this name. */
|
|
16
|
+
export type Size = DataSize;
|
|
7
17
|
/** A Lucide glyph by name, inline, inheriting currentColor. Stroke 2 at ≤16px, 1.75 above. */
|
|
8
18
|
export interface IconProps extends Omit<React.SVGAttributes<SVGSVGElement>, 'color' | 'name' | 'size' | 'title'> {
|
|
9
19
|
/** Lucide name in kebab-case (circle-check, triangle-alert, loader-circle, sparkles) */
|
|
@@ -268,7 +278,6 @@ export declare function useTheme(defaultTheme?: Theme): [Theme, (t: Theme) => vo
|
|
|
268
278
|
export declare function resolveTheme(t: Theme): 'light' | 'dark';
|
|
269
279
|
|
|
270
280
|
// --- forms ---
|
|
271
|
-
type FormsSize = 'sm' | 'md' | 'lg';
|
|
272
281
|
/** Label + control + help/error wrapper for every field. Wires id, aria-describedby and aria-invalid onto a single child control; readOnly renders the record-view stacked value with an inline-edit pencil; inline renders a settings row with the label in the left column. */
|
|
273
282
|
export interface FormElementProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'label' | 'value'> {
|
|
274
283
|
label?: React.ReactNode;
|
|
@@ -311,7 +320,7 @@ export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElem
|
|
|
311
320
|
onClear?: () => void;
|
|
312
321
|
invalid?: boolean;
|
|
313
322
|
/** sm 28 · md 32 · lg 40 */
|
|
314
|
-
size?:
|
|
323
|
+
size?: ControlSize;
|
|
315
324
|
/** No border or background: inline editing in tables and headers */
|
|
316
325
|
bare?: boolean;
|
|
317
326
|
/** Props for the wrapping div */
|
|
@@ -324,7 +333,7 @@ export declare const Input: React.ForwardRefExoticComponent<InputProps & React.R
|
|
|
324
333
|
/** Multi-line text field; autoGrow follows the content and maxLength shows a counter. */
|
|
325
334
|
export interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'size'> {
|
|
326
335
|
invalid?: boolean;
|
|
327
|
-
size?:
|
|
336
|
+
size?: ControlSize;
|
|
328
337
|
/** Height follows the content */
|
|
329
338
|
autoGrow?: boolean;
|
|
330
339
|
/** "{n} / {max}" counter; over the limit it turns bad and sets aria-invalid */
|
|
@@ -341,7 +350,7 @@ export interface SelectProps extends Omit<React.SelectHTMLAttributes<HTMLSelectE
|
|
|
341
350
|
placeholder?: string;
|
|
342
351
|
icon?: string;
|
|
343
352
|
invalid?: boolean;
|
|
344
|
-
size?:
|
|
353
|
+
size?: ControlSize;
|
|
345
354
|
}
|
|
346
355
|
export declare const Select: React.ForwardRefExoticComponent<SelectProps & React.RefAttributes<HTMLSelectElement>>;
|
|
347
356
|
/** Checkbox with label and description; indeterminate for a select-all that covers part of the set. */
|
|
@@ -436,7 +445,7 @@ export interface ComboboxProps extends Omit<React.HTMLAttributes<HTMLDivElement>
|
|
|
436
445
|
placeholder?: string;
|
|
437
446
|
disabled?: boolean;
|
|
438
447
|
invalid?: boolean;
|
|
439
|
-
size?:
|
|
448
|
+
size?: ControlSize;
|
|
440
449
|
/** Leading icon in the field */
|
|
441
450
|
icon?: string;
|
|
442
451
|
/** Controlled open state (docs, custom triggers) */
|
|
@@ -469,7 +478,7 @@ export interface SecretFieldProps extends Omit<React.InputHTMLAttributes<HTMLInp
|
|
|
469
478
|
onChange?: (value: string) => void;
|
|
470
479
|
/** Characters left visible at the end (4) */
|
|
471
480
|
revealLast?: number;
|
|
472
|
-
size?:
|
|
481
|
+
size?: ControlSize;
|
|
473
482
|
invalid?: boolean;
|
|
474
483
|
labels?: { reveal?: string; hide?: string; copy?: string; copied?: string };
|
|
475
484
|
}
|
|
@@ -493,7 +502,6 @@ export interface TagInputProps extends Omit<React.HTMLAttributes<HTMLDivElement>
|
|
|
493
502
|
export declare function TagInput(props: TagInputProps): JSX.Element;
|
|
494
503
|
|
|
495
504
|
// --- pickers ---
|
|
496
|
-
type PickersSize = 'sm' | 'md' | 'lg';
|
|
497
505
|
/** Date field with a calendar popover; the value is a Date. Formats 15.10.2026 for tr and 15 Oct 2026 for en through locale. */
|
|
498
506
|
export interface DatepickerProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'disabled' | 'max' | 'min' | 'onChange' | 'open' | 'placeholder' | 'size' | 'value'> {
|
|
499
507
|
/** A date, or [from, to] with range */
|
|
@@ -508,7 +516,7 @@ export interface DatepickerProps extends Omit<React.HTMLAttributes<HTMLDivElemen
|
|
|
508
516
|
locale?: string;
|
|
509
517
|
disabled?: boolean;
|
|
510
518
|
invalid?: boolean;
|
|
511
|
-
size?:
|
|
519
|
+
size?: ControlSize;
|
|
512
520
|
min?: Date;
|
|
513
521
|
max?: Date;
|
|
514
522
|
/** 0 Sunday · 1 Monday (default) */
|
|
@@ -553,7 +561,7 @@ export interface TimepickerProps extends Omit<React.HTMLAttributes<HTMLDivElemen
|
|
|
553
561
|
placeholder?: string;
|
|
554
562
|
disabled?: boolean;
|
|
555
563
|
invalid?: boolean;
|
|
556
|
-
size?:
|
|
564
|
+
size?: ControlSize;
|
|
557
565
|
open?: boolean;
|
|
558
566
|
labels?: { empty?: string; clear?: string };
|
|
559
567
|
}
|
|
@@ -570,7 +578,7 @@ export interface DatetimePickerProps extends Omit<React.HTMLAttributes<HTMLDivEl
|
|
|
570
578
|
max?: Date;
|
|
571
579
|
disabled?: boolean;
|
|
572
580
|
invalid?: boolean;
|
|
573
|
-
size?:
|
|
581
|
+
size?: ControlSize;
|
|
574
582
|
labels?: CalendarProps['labels'];
|
|
575
583
|
}
|
|
576
584
|
export declare function DatetimePicker(props: DatetimePickerProps): JSX.Element;
|
|
@@ -605,7 +613,7 @@ export interface ColorPickerProps extends Omit<React.HTMLAttributes<HTMLDivEleme
|
|
|
605
613
|
swatches?: (string | Swatch)[];
|
|
606
614
|
disabled?: boolean;
|
|
607
615
|
invalid?: boolean;
|
|
608
|
-
size?:
|
|
616
|
+
size?: ControlSize;
|
|
609
617
|
open?: boolean;
|
|
610
618
|
onOpenChange?: (open: boolean) => void;
|
|
611
619
|
labels?: { open?: string; custom?: string; swatches?: string; hex?: string };
|
|
@@ -621,7 +629,7 @@ export interface CounterProps extends Omit<React.HTMLAttributes<HTMLDivElement>,
|
|
|
621
629
|
step?: number;
|
|
622
630
|
disabled?: boolean;
|
|
623
631
|
invalid?: boolean;
|
|
624
|
-
size?:
|
|
632
|
+
size?: ControlSize;
|
|
625
633
|
/** Mono unit after the value: "calls", "dk" */
|
|
626
634
|
suffix?: React.ReactNode;
|
|
627
635
|
/** Formats the displayed value while not editing */
|
|
@@ -748,9 +756,6 @@ export interface DockedFormFooterProps extends Omit<React.HTMLAttributes<HTMLDiv
|
|
|
748
756
|
export declare function DockedFormFooter(props: DockedFormFooterProps): JSX.Element;
|
|
749
757
|
|
|
750
758
|
// --- data ---
|
|
751
|
-
export type Tone = 'neutral' | 'signal' | 'ok' | 'warn' | 'bad' | 'info';
|
|
752
|
-
export type Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
753
|
-
|
|
754
759
|
/** One column of a DataTable or TreeGrid. */
|
|
755
760
|
export interface DataColumn<T = any> {
|
|
756
761
|
/** Field name on the row; also the sort key */
|
|
@@ -763,8 +768,12 @@ export interface DataColumn<T = any> {
|
|
|
763
768
|
sortValue?: (row: T) => any;
|
|
764
769
|
/** right for numbers and amounts */
|
|
765
770
|
align?: 'left' | 'right' | 'center';
|
|
771
|
+
/** Column width; also the room it needs when `minWidth` is absent (px numbers count for priority hiding) */
|
|
766
772
|
width?: number | string;
|
|
773
|
+
/** Narrowest width the column may take; priority hiding sums these (default 120px) */
|
|
767
774
|
minWidth?: number | string;
|
|
775
|
+
/** DataTable only: 1 = always shown (default), higher numbers hide first when the table's own width cannot fit every column */
|
|
776
|
+
priority?: number;
|
|
768
777
|
/** Custom cell; receives (value, row, index) */
|
|
769
778
|
render?: (value: any, row: T, index: number) => React.ReactNode;
|
|
770
779
|
/** Inline edit on double-click, F2 or the pencil (needs onCellEdit) */
|
|
@@ -778,8 +787,8 @@ export interface DataColumn<T = any> {
|
|
|
778
787
|
className?: string;
|
|
779
788
|
}
|
|
780
789
|
/** Visible strings of a DataTable, overridable per locale. */
|
|
781
|
-
export interface DataTableLabels { empty?: string; emptyHint?: string; loading?: string; error?: string; errorHint?: string; retry?: string; selectAll?: string; selectRow?: string; actions?: string; sortedAsc?: string; sortedDesc?: string; edit?: string; }
|
|
782
|
-
/** Dense record grid for agents, runs, approvals and tenants: sortable columns, selection with select-all, inline cell edit, row actions, sticky header, and the states error → loading → empty → rows. Rows are 32px compact and 44px comfortable. */
|
|
790
|
+
export interface DataTableLabels { empty?: string; emptyHint?: string; loading?: string; error?: string; errorHint?: string; retry?: string; selectAll?: string; selectRow?: string; actions?: string; sortedAsc?: string; sortedDesc?: string; edit?: string; /** aria-label of the row-detail toggle while closed */ expandRow?: string; /** aria-label of the row-detail toggle while open */ collapseRow?: string; }
|
|
791
|
+
/** Dense record grid for agents, runs, approvals and tenants: sortable columns, selection with select-all, inline cell edit, row actions, sticky header, and the states error → loading → empty → rows. Rows are 32px compact and 44px comfortable. At narrow widths it hides columns by `priority` against its own measured width and can pin the first column (`stickyFirst`). */
|
|
783
792
|
export interface DataTableProps<T = any> extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'selected' | 'value'> {
|
|
784
793
|
columns: DataColumn<T>[];
|
|
785
794
|
rows: T[];
|
|
@@ -824,6 +833,10 @@ export interface DataTableProps<T = any> extends Omit<React.HTMLAttributes<HTMLD
|
|
|
824
833
|
rowClassName?: (row: T, index: number) => string | false | undefined;
|
|
825
834
|
/** Key of the row whose detail is open (side panel, split view): aria-current, --selection ground and a --signal edge. Independent of `selected` */
|
|
826
835
|
activeKey?: string | number | null;
|
|
836
|
+
/** First data column (and the selection column) stays put while the table scrolls sideways, with a hairline shadow once scrolled */
|
|
837
|
+
stickyFirst?: boolean;
|
|
838
|
+
/** Called with the keys of the columns hidden by `priority` whenever that set changes ([] when all fit) */
|
|
839
|
+
onHiddenColumnsChange?: (keys: string[]) => void;
|
|
827
840
|
}
|
|
828
841
|
export declare function DataTable<T = any>(props: DataTableProps<T>): JSX.Element;
|
|
829
842
|
|
|
@@ -906,7 +919,7 @@ export interface AvatarProps extends Omit<React.HTMLAttributes<HTMLSpanElement>,
|
|
|
906
919
|
/** person = circle; agent and system = square */
|
|
907
920
|
kind?: 'person' | 'agent' | 'system';
|
|
908
921
|
/** xs 20 · sm 24 · md 32 · lg 40 · xl 56 */
|
|
909
|
-
size?:
|
|
922
|
+
size?: DataSize;
|
|
910
923
|
/** Lucide icon instead of initials */
|
|
911
924
|
icon?: string;
|
|
912
925
|
/** Product glyph for a system avatar */
|
|
@@ -917,7 +930,7 @@ export interface AvatarProps extends Omit<React.HTMLAttributes<HTMLSpanElement>,
|
|
|
917
930
|
}
|
|
918
931
|
export declare function Avatar(props: AvatarProps): JSX.Element;
|
|
919
932
|
/** Overlapping avatars with a "+n" overflow. Items are names or Avatar props. */
|
|
920
|
-
export interface AvatarGroupProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'size'> { items: Array<string | AvatarProps>; /** Shown before the overflow (default 4) */ max?: number; size?:
|
|
933
|
+
export interface AvatarGroupProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'size'> { items: Array<string | AvatarProps>; /** Shown before the overflow (default 4) */ max?: number; size?: DataSize; kind?: AvatarProps['kind']; }
|
|
921
934
|
export declare function AvatarGroup(props: AvatarGroupProps): JSX.Element;
|
|
922
935
|
|
|
923
936
|
/** Count or one-word status on a pill. Solid signal for unread counts; soft tones for status words. */
|
|
@@ -1428,12 +1441,9 @@ export interface RoomProps extends React.HTMLAttributes<HTMLElement> {
|
|
|
1428
1441
|
export declare function Room(props: RoomProps): JSX.Element;
|
|
1429
1442
|
|
|
1430
1443
|
// --- navigation ---
|
|
1431
|
-
type NavigationProduct = 'platform' | 'hub' | 'dialog' | 'voice' | 'vision' | 'code' | 'workforce';
|
|
1432
|
-
type NavigationTone = 'neutral' | 'signal' | 'ok' | 'warn' | 'bad' | 'info';
|
|
1433
|
-
|
|
1434
1444
|
/** 48px top bar: logo lockup with the product name, a search trigger with its shortcut, actions, the user's avatar. panel for consoles, ink for brand screens. */
|
|
1435
1445
|
export interface GlobalHeaderProps extends React.HTMLAttributes<HTMLElement> {
|
|
1436
|
-
/**
|
|
1446
|
+
/** Product name after the wordmark ("Platform", "Dialog") */
|
|
1437
1447
|
product?: string;
|
|
1438
1448
|
/** panel (default) on --panel with a line below; ink on --text for brand screens */
|
|
1439
1449
|
tone?: 'panel' | 'ink';
|
|
@@ -1460,7 +1470,7 @@ export interface GlobalHeaderProps extends React.HTMLAttributes<HTMLElement> {
|
|
|
1460
1470
|
export declare function GlobalHeader(props: GlobalHeaderProps): JSX.Element;
|
|
1461
1471
|
|
|
1462
1472
|
/** One sidebar item. */
|
|
1463
|
-
export interface NavItem { id: string; label: string; icon?: string; href?: string; /** Count badge; a dot when collapsed */ count?: number; countTone?:
|
|
1473
|
+
export interface NavItem { id: string; label: string; icon?: string; href?: string; /** Count badge; a dot when collapsed */ count?: number; countTone?: Tone; disabled?: boolean; }
|
|
1464
1474
|
/** A sidebar group with its mono eyebrow (build, observe, organisation). */
|
|
1465
1475
|
export interface NavGroup { id?: string; label?: string; items: NavItem[]; }
|
|
1466
1476
|
/** The console sidebar: 232px (56 collapsed; `width` or `resizable`), logo top-left, search, an optional tree slot, groups under mono eyebrows, 32px items with icon, label and count; product switcher at the bottom. */
|
|
@@ -1471,7 +1481,7 @@ export interface VerticalNavigationProps extends Omit<React.HTMLAttributes<HTMLE
|
|
|
1471
1481
|
collapsed?: boolean;
|
|
1472
1482
|
/** Shows the collapse toggle */
|
|
1473
1483
|
onCollapse?: (collapsed: boolean) => void;
|
|
1474
|
-
/**
|
|
1484
|
+
/** Product name in the logo lockup */
|
|
1475
1485
|
product?: string;
|
|
1476
1486
|
/** Search trigger under the logo */
|
|
1477
1487
|
search?: { onClick?: () => void; label?: string; placeholder?: string; shortcut?: string };
|
|
@@ -1522,7 +1532,7 @@ export interface TabsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'o
|
|
|
1522
1532
|
export declare function Tabs(props: TabsProps): JSX.Element;
|
|
1523
1533
|
|
|
1524
1534
|
/** One top-navigation item. */
|
|
1525
|
-
export interface GlobalNavItem { id: string; label: React.ReactNode; icon?: string; href?: string; /** Count badge (signal on the active item unless countTone) */ count?: number; countTone?:
|
|
1535
|
+
export interface GlobalNavItem { id: string; label: React.ReactNode; icon?: string; href?: string; /** Count badge (signal on the active item unless countTone) */ count?: number; countTone?: Tone; disabled?: boolean; }
|
|
1526
1536
|
/** Horizontal top navigation for GlobalHeader shells: the product's sections in a row, the active one underlined in --signal, ←/→ between items, overflow into a More menu. Pages, not views of one object (that is Tabs). */
|
|
1527
1537
|
export interface GlobalNavigationProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onChange'> {
|
|
1528
1538
|
items: GlobalNavItem[];
|
|
@@ -1604,14 +1614,14 @@ export interface SplitViewProps extends Omit<React.HTMLAttributes<HTMLDivElement
|
|
|
1604
1614
|
}
|
|
1605
1615
|
export declare function SplitView(props: SplitViewProps): JSX.Element;
|
|
1606
1616
|
|
|
1607
|
-
/**
|
|
1617
|
+
/** Product switcher: the seven boxed product glyphs with their names, the current one marked. */
|
|
1608
1618
|
export interface AppLauncherProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
1609
1619
|
/** Ids or { id, name, description, href } (default all seven) */
|
|
1610
|
-
products?: Array<
|
|
1611
|
-
current?:
|
|
1612
|
-
onOpen?: (id:
|
|
1613
|
-
hrefs?: Partial<Record<
|
|
1614
|
-
descriptions?: Partial<Record<
|
|
1620
|
+
products?: Array<Product | { id: Product; name?: string; description?: string; href?: string }>;
|
|
1621
|
+
current?: Product;
|
|
1622
|
+
onOpen?: (id: Product, product: any) => void;
|
|
1623
|
+
hrefs?: Partial<Record<Product, string>>;
|
|
1624
|
+
descriptions?: Partial<Record<Product, string>>;
|
|
1615
1625
|
/** No popover frame (inside a sidebar footer) */
|
|
1616
1626
|
inline?: boolean;
|
|
1617
1627
|
labels?: { title?: string; current?: string };
|
|
@@ -1620,7 +1630,7 @@ export declare const AppLauncher: ((props: AppLauncherProps) => JSX.Element) & {
|
|
|
1620
1630
|
/** The sidebar's product-switcher row: current product glyph, name and an up-down chevron, styled as a nav item; opens an AppLauncher in a Popover. Also AppLauncher.Trigger. */
|
|
1621
1631
|
export interface AppLauncherTriggerProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'name' | 'open'> {
|
|
1622
1632
|
/** Current product (default platform) */
|
|
1623
|
-
product?:
|
|
1633
|
+
product?: Product;
|
|
1624
1634
|
/** Overrides the product name */
|
|
1625
1635
|
name?: string;
|
|
1626
1636
|
/** Lucide icon instead of the product glyph, for a surface that has none (the data console: "database") */
|
|
@@ -1664,7 +1674,7 @@ export interface BuilderHeaderProps extends Omit<React.HTMLAttributes<HTMLElemen
|
|
|
1664
1674
|
/** Version tag ("v8") */
|
|
1665
1675
|
version?: string;
|
|
1666
1676
|
/** Status Tag: a word or { label, tone, dot, icon } */
|
|
1667
|
-
status?: string | { label: string; tone?:
|
|
1677
|
+
status?: string | { label: string; tone?: Tone; dot?: boolean; icon?: string };
|
|
1668
1678
|
onBack?: () => void;
|
|
1669
1679
|
backHref?: string;
|
|
1670
1680
|
onDeploy?: () => void;
|
|
@@ -1809,6 +1819,40 @@ export interface StepperProps extends Omit<React.HTMLAttributes<HTMLOListElement
|
|
|
1809
1819
|
}
|
|
1810
1820
|
export declare function Stepper(props: StepperProps): JSX.Element;
|
|
1811
1821
|
|
|
1822
|
+
/** One view in an ActivityBar. */
|
|
1823
|
+
export interface ActivityBarItem {
|
|
1824
|
+
/** Value passed to onSelect and matched against `active` */
|
|
1825
|
+
id: string;
|
|
1826
|
+
/** Lucide icon name (kebab-case), or a node such as <ProductIcon product="code" size={20} /> */
|
|
1827
|
+
icon: string | React.ReactNode;
|
|
1828
|
+
/** Accessible name and tooltip text */
|
|
1829
|
+
label: string;
|
|
1830
|
+
/** Small count Badge on the icon (a number, or a short word) */
|
|
1831
|
+
badge?: number | string;
|
|
1832
|
+
/** Shown dimmed, skipped by the arrow keys, not selectable */
|
|
1833
|
+
disabled?: boolean;
|
|
1834
|
+
/** id of the view panel this item opens (sets aria-controls) */
|
|
1835
|
+
controls?: string;
|
|
1836
|
+
/** id for the tab button, so the panel can point back with aria-labelledby */
|
|
1837
|
+
tabId?: string;
|
|
1838
|
+
}
|
|
1839
|
+
/** Vertical 48px icon strip that switches the view beside it, like VS Code's activity bar or IntelliJ's tool-window bar: use it in IDE mocks and the web build of the Code panel. A vertical tablist with roving focus (↑ ↓ Home End, Enter or Space selects), tooltips with each label, a 2px --signal bar on the edge facing the view. */
|
|
1840
|
+
export interface ActivityBarProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> {
|
|
1841
|
+
/** Top group of views */
|
|
1842
|
+
items: ActivityBarItem[];
|
|
1843
|
+
/** Bottom group (accounts, settings), pushed to the foot of the bar */
|
|
1844
|
+
footerItems?: ActivityBarItem[];
|
|
1845
|
+
/** id of the selected item */
|
|
1846
|
+
active?: string;
|
|
1847
|
+
/** Called with the id and item when an item is clicked or chosen with Enter / Space */
|
|
1848
|
+
onSelect?: (id: string, item: ActivityBarItem) => void;
|
|
1849
|
+
/** Which side of the view the bar sits on; the active bar and the --line edge face the view (default left) */
|
|
1850
|
+
side?: 'left' | 'right';
|
|
1851
|
+
/** aria-label of the tablist (default "Views") */
|
|
1852
|
+
labels?: { navigation?: string };
|
|
1853
|
+
}
|
|
1854
|
+
export declare function ActivityBar(props: ActivityBarProps): JSX.Element;
|
|
1855
|
+
|
|
1812
1856
|
// --- feedback ---
|
|
1813
1857
|
/** The brand loader: the Aginies mark animated with CSS keyframes only. Use it wherever the product itself is working (boot, page data, an agent run); use Spinner for a single control. */
|
|
1814
1858
|
export interface AginiesLoaderProps extends Omit<React.HTMLAttributes<HTMLElement>, 'label'> {
|
|
@@ -2620,9 +2664,6 @@ export declare function fmtInt(value: number, locale?: string): string;
|
|
|
2620
2664
|
export declare function fmtClock(seconds: number): string;
|
|
2621
2665
|
|
|
2622
2666
|
// --- dashboard ---
|
|
2623
|
-
type DashboardProduct = 'platform' | 'hub' | 'dialog' | 'voice' | 'vision' | 'code' | 'workforce';
|
|
2624
|
-
type DashboardTone = 'neutral' | 'signal' | 'ok' | 'warn' | 'bad' | 'info';
|
|
2625
|
-
|
|
2626
2667
|
/** Dashboard KPI: a Stat (value, label, delta) with a Sparkline in a flat Card. Use plain (or KpiRow) when the KPIs are the page summary, which is never boxed. */
|
|
2627
2668
|
export interface KpiWidgetProps extends Omit<React.HTMLAttributes<HTMLElement>, 'icon' | 'label' | 'size' | 'value'> {
|
|
2628
2669
|
/** Mono uppercase label: "Runs this week" */
|
|
@@ -2802,10 +2843,10 @@ export interface RecordSummaryWidgetProps extends Omit<React.HTMLAttributes<HTML
|
|
|
2802
2843
|
avatar?: string;
|
|
2803
2844
|
/** Lucide icon for the BlockIcon (bot) */
|
|
2804
2845
|
icon?: string;
|
|
2805
|
-
/**
|
|
2806
|
-
product?:
|
|
2846
|
+
/** Product glyph for the BlockIcon */
|
|
2847
|
+
product?: Product;
|
|
2807
2848
|
/** A word or { label, tone, dot, icon } */
|
|
2808
|
-
status?: string | { label: React.ReactNode; tone?:
|
|
2849
|
+
status?: string | { label: React.ReactNode; tone?: Tone; dot?: boolean; icon?: string };
|
|
2809
2850
|
/** SummaryDetail fields (dense) */
|
|
2810
2851
|
fields?: { key?: string; label: React.ReactNode; value?: React.ReactNode; mono?: boolean; tone?: 'ok' | 'warn' | 'bad' }[];
|
|
2811
2852
|
/** Path steps; omit for records without stages */
|
|
@@ -2862,7 +2903,7 @@ export interface ActivityWidgetProps extends Omit<React.HTMLAttributes<HTMLEleme
|
|
|
2862
2903
|
export declare function ActivityWidget(props: ActivityWidgetProps): JSX.Element;
|
|
2863
2904
|
|
|
2864
2905
|
/** One action tile. */
|
|
2865
|
-
export interface QuickAction { id?: string; label: string; icon?: string; product?:
|
|
2906
|
+
export interface QuickAction { id?: string; label: string; icon?: string; product?: Product; description?: string; /** Kbd hint: ["⌘", "N"] or "G L" (the consumer binds the keys) */ shortcut?: string | string[]; tone?: Tone; badge?: number; disabled?: boolean; onClick?: (a: QuickAction) => void; }
|
|
2866
2907
|
/** A grid of action tiles (BlockIcon, label, optional line, Kbd hint, badge) for the shortcuts people take most; inside a Card when titled. */
|
|
2867
2908
|
export interface QuickActionsProps extends Omit<React.HTMLAttributes<HTMLElement>, 'title'> {
|
|
2868
2909
|
actions: QuickAction[];
|
|
@@ -2895,7 +2936,7 @@ export interface NotificationsWidgetProps extends Omit<React.HTMLAttributes<HTML
|
|
|
2895
2936
|
export declare function NotificationsWidget(props: NotificationsWidgetProps): JSX.Element;
|
|
2896
2937
|
|
|
2897
2938
|
/** One step of the mini canvas. */
|
|
2898
|
-
export interface FlowStep { id?: string; name: React.ReactNode; /** Block type in mono: "LLM · understand" */ kind?: React.ReactNode; icon?: string; product?:
|
|
2939
|
+
export interface FlowStep { id?: string; name: React.ReactNode; /** Block type in mono: "LLM · understand" */ kind?: React.ReactNode; icon?: string; product?: Product; /** done · running (execution ring) · error · waiting (warn ring, human approval) · upcoming (dashed) */ state?: 'done' | 'running' | 'error' | 'waiting' | 'upcoming'; /** Runs at or through this step */ runs?: number; }
|
|
2899
2940
|
/** A read-only mini canvas in a Card: three to six CanvasBlocks in a row joined by CanvasEdges, the running step ringed in execution, a caption per step saying where the live runs are. */
|
|
2900
2941
|
export interface AgentFlowWidgetProps extends Omit<React.HTMLAttributes<HTMLElement>, 'title'> {
|
|
2901
2942
|
agent?: React.ReactNode;
|
|
@@ -2917,7 +2958,7 @@ export interface AgentFlowWidgetProps extends Omit<React.HTMLAttributes<HTMLElem
|
|
|
2917
2958
|
export declare function AgentFlowWidget(props: AgentFlowWidgetProps): JSX.Element;
|
|
2918
2959
|
|
|
2919
2960
|
/** One ranked row. */
|
|
2920
|
-
export interface LeaderRow { id?: string; name: string; sub?: React.ReactNode; kind?: 'agent' | 'person' | 'system'; product?:
|
|
2961
|
+
export interface LeaderRow { id?: string; name: string; sub?: React.ReactNode; kind?: 'agent' | 'person' | 'system'; product?: Product; icon?: string; value: number; /** Change since the last period, in the value's unit */ delta?: number; }
|
|
2921
2962
|
/** Ranked rows in a Card: an agent or a person, a bar against the leader, the value and the change since the last period; optional period switch. */
|
|
2922
2963
|
export interface LeaderboardWidgetProps extends Omit<React.HTMLAttributes<HTMLElement>, 'format' | 'max' | 'title'> {
|
|
2923
2964
|
rows: LeaderRow[];
|
|
@@ -2943,7 +2984,7 @@ export interface LeaderboardWidgetProps extends Omit<React.HTMLAttributes<HTMLEl
|
|
|
2943
2984
|
export declare function LeaderboardWidget(props: LeaderboardWidgetProps): JSX.Element;
|
|
2944
2985
|
|
|
2945
2986
|
/** A CalendarView event with the agenda's extra fields. */
|
|
2946
|
-
export interface AgendaEvent { id?: string | number; title: string; start: Date | string; end?: Date | string; allDay?: boolean; tone?:
|
|
2987
|
+
export interface AgendaEvent { id?: string | number; title: string; start: Date | string; end?: Date | string; allDay?: boolean; tone?: Tone; kind?: 'run' | 'review' | 'call' | 'maintenance' | 'deploy' | 'meeting' | string; tenant?: string; meta?: React.ReactNode; }
|
|
2947
2988
|
/** One day of CalendarView events in a Card: a time rail, a tone bar per event, done / live / in n min, and a now line. */
|
|
2948
2989
|
export interface AgendaWidgetProps extends Omit<React.HTMLAttributes<HTMLElement>, 'max' | 'title'> {
|
|
2949
2990
|
/** Events of any day; only the shown day's are listed */
|
|
@@ -2982,7 +3023,7 @@ export interface OnboardingWidgetProps extends Omit<React.HTMLAttributes<HTMLEle
|
|
|
2982
3023
|
export declare function OnboardingWidget(props: OnboardingWidgetProps): JSX.Element;
|
|
2983
3024
|
|
|
2984
3025
|
/** One comment: FeedPost fields plus resolved. */
|
|
2985
|
-
export interface CommentItem { id?: string | number; author: string | { name: string; kind?: 'person' | 'agent' | 'system'; product?:
|
|
3026
|
+
export interface CommentItem { id?: string | number; author: string | { name: string; kind?: 'person' | 'agent' | 'system'; product?: Product }; kind?: 'person' | 'agent' | 'system'; action?: React.ReactNode; target?: React.ReactNode; time?: string; /** @handles are picked out in link colour */ text: React.ReactNode; replies?: any[]; likes?: number; liked?: boolean; resolved?: boolean; /** warn wraps the body (an escalation) */ tone?: 'warn'; }
|
|
2986
3027
|
/** A comment thread in a Card: FeedPosts with @mentions picked out, replies and likes, and the Publisher docked under the list. */
|
|
2987
3028
|
export interface CommentsWidgetProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onSubmit' | 'title'> {
|
|
2988
3029
|
comments: CommentItem[];
|