@tensor_1/react 2.15.0 → 2.17.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.
Files changed (82) hide show
  1. package/README.md +5 -0
  2. package/dist/ChartCore-Do6gRBN3.d.cts +44 -0
  3. package/dist/chart-preset.cjs +56 -12
  4. package/dist/chart-preset.d.cts +2 -2
  5. package/dist/chart-preset.d.ts +1 -1
  6. package/dist/chart-preset.js +4 -1
  7. package/dist/chart.cjs +56 -12
  8. package/dist/chart.d.cts +2 -2
  9. package/dist/chart.d.ts +1 -1
  10. package/dist/chart.js +4 -1
  11. package/dist/components/Alert.js +15 -7
  12. package/dist/components/AppShell.d.ts +3 -1
  13. package/dist/components/AppShell.js +3 -1
  14. package/dist/components/Avatar.js +2 -1
  15. package/dist/components/Button.js +32 -16
  16. package/dist/components/Card.d.ts +3 -1
  17. package/dist/components/Card.js +2 -2
  18. package/dist/components/Chart.d.ts +1 -1
  19. package/dist/components/Chart.js +4 -1
  20. package/dist/components/ChartCore.d.ts +24 -3
  21. package/dist/components/ChartCore.js +53 -12
  22. package/dist/components/CommandPalette.d.ts +4 -2
  23. package/dist/components/CommandPalette.js +66 -13
  24. package/dist/components/Comments.d.ts +5 -1
  25. package/dist/components/Comments.js +1 -1
  26. package/dist/components/Composer.d.ts +8 -1
  27. package/dist/components/Composer.js +7 -2
  28. package/dist/components/DetailLayout.js +1 -1
  29. package/dist/components/Drawer.d.ts +3 -4
  30. package/dist/components/Drawer.js +6 -4
  31. package/dist/components/Field.js +6 -3
  32. package/dist/components/Flow.d.ts +26 -0
  33. package/dist/components/Flow.js +48 -0
  34. package/dist/components/Inbox.d.ts +13 -3
  35. package/dist/components/Inbox.js +62 -3
  36. package/dist/components/Input.d.ts +13 -2
  37. package/dist/components/Input.js +20 -5
  38. package/dist/components/Kanban.d.ts +15 -3
  39. package/dist/components/Kanban.js +42 -10
  40. package/dist/components/Meter.d.ts +3 -1
  41. package/dist/components/Meter.js +9 -1
  42. package/dist/components/Modal.d.ts +4 -5
  43. package/dist/components/Modal.js +4 -4
  44. package/dist/components/NavFavourites.js +11 -0
  45. package/dist/components/PageHeader.d.ts +3 -1
  46. package/dist/components/PageHeader.js +2 -2
  47. package/dist/components/Peek.d.ts +3 -4
  48. package/dist/components/Peek.js +9 -6
  49. package/dist/components/Pipeline.d.ts +25 -0
  50. package/dist/components/Pipeline.js +65 -0
  51. package/dist/components/Progress.d.ts +3 -1
  52. package/dist/components/Progress.js +5 -3
  53. package/dist/components/Radio.d.ts +3 -1
  54. package/dist/components/Radio.js +6 -2
  55. package/dist/components/Spinner.d.ts +3 -1
  56. package/dist/components/Spinner.js +3 -3
  57. package/dist/components/Stat.js +5 -1
  58. package/dist/components/States.d.ts +1 -0
  59. package/dist/components/States.js +7 -1
  60. package/dist/components/Table.d.ts +8 -1
  61. package/dist/components/Table.js +10 -6
  62. package/dist/components/Tabs.d.ts +13 -1
  63. package/dist/components/Tabs.js +79 -4
  64. package/dist/components/Timeline.d.ts +3 -3
  65. package/dist/components/Timeline.js +3 -3
  66. package/dist/components/Toast.js +42 -5
  67. package/dist/components/Tooltip.d.ts +3 -1
  68. package/dist/components/Tooltip.js +44 -5
  69. package/dist/components/Tree.d.ts +2 -0
  70. package/dist/components/Tree.js +26 -4
  71. package/dist/hooks/useDialog.d.ts +1 -1
  72. package/dist/hooks/useDialog.js +17 -2
  73. package/dist/hooks/useTable.d.ts +5 -0
  74. package/dist/hooks/useTable.js +20 -1
  75. package/dist/index.cjs +1191 -626
  76. package/dist/index.d.cts +168 -35
  77. package/dist/index.d.ts +4 -2
  78. package/dist/index.js +8 -1
  79. package/dist/tree-model.d.ts +4 -0
  80. package/dist/tree-model.js +8 -0
  81. package/package.json +1 -1
  82. package/dist/ChartCore-Bt1C84ty.d.cts +0 -22
package/dist/index.d.cts CHANGED
@@ -1,9 +1,9 @@
1
1
  import * as react from 'react';
2
- import { RefObject, ButtonHTMLAttributes, ReactNode, InputHTMLAttributes, HTMLAttributes, TextareaHTMLAttributes, SelectHTMLAttributes, CSSProperties, AnchorHTMLAttributes, DetailsHTMLAttributes, TdHTMLAttributes, TableHTMLAttributes, ThHTMLAttributes } from 'react';
2
+ import { RefObject, ButtonHTMLAttributes, ReactNode, InputHTMLAttributes, AriaAttributes, HTMLAttributes, TextareaHTMLAttributes, SelectHTMLAttributes, AnchorHTMLAttributes, DetailsHTMLAttributes, TdHTMLAttributes, TableHTMLAttributes, ThHTMLAttributes } from 'react';
3
3
 
4
4
  declare function cx(...args: (string | false | null | undefined | 0)[]): string;
5
5
 
6
- declare function useDialog(open: boolean): React.RefObject<HTMLDialogElement>;
6
+ declare function useDialog(open: boolean, onClose?: () => void): React.RefObject<HTMLDialogElement>;
7
7
 
8
8
  /**
9
9
  * uix table engine — framework-agnostic, dependency-free logic for data grids.
@@ -114,6 +114,11 @@ interface UseTableResult<T> {
114
114
  pinned: ReadonlySet<string>;
115
115
  /** header select-all tri-state over the current derived rows. */
116
116
  selectAll: SelectAllState;
117
+ /**
118
+ * Screen-reader status text reflecting the latest change — "Sorted by {field}, {dir}",
119
+ * "{n} results" (filter/search), "{n} selected". Pass to `<TableWrap announcement>` (UIX-A11Y-2).
120
+ */
121
+ announcement: string;
117
122
  /** cycle a column's sort; pass additive (⇧-click) to keep it as a secondary key. */
118
123
  toggleSort: (field: string, additive?: boolean) => void;
119
124
  setSort: (keys: SortKey[]) => void;
@@ -265,8 +270,19 @@ interface InputGroupProps {
265
270
  leadingIcon?: ReactNode;
266
271
  trailingIcon?: ReactNode;
267
272
  className?: string;
273
+ /** Injected by `<Field>` when it wraps the group; forwarded onto the child control. */
274
+ id?: string;
275
+ 'aria-describedby'?: string;
276
+ 'aria-invalid'?: AriaAttributes['aria-invalid'];
277
+ 'aria-required'?: AriaAttributes['aria-required'];
268
278
  }
269
- declare function InputGroup({ children, leadingIcon, trailingIcon, className }: InputGroupProps): react.JSX.Element;
279
+ /**
280
+ * Icon-adorned wrapper for a child `<Input>`. The control is passed as `children`, so
281
+ * `<Field>`'s injected `id`/`aria-*` land on this wrapper — they're forwarded onto the
282
+ * single child element (the child's own props win) so label/message association survives
283
+ * the extra div (UIX-A11Y-3).
284
+ */
285
+ declare function InputGroup({ children, leadingIcon, trailingIcon, className, id, 'aria-describedby': describedBy, 'aria-invalid': invalid, 'aria-required': required, }: InputGroupProps): react.JSX.Element;
270
286
 
271
287
  interface ComboboxOption {
272
288
  value: string;
@@ -313,8 +329,10 @@ declare const Radio: react.ForwardRefExoticComponent<RadioProps & react.RefAttri
313
329
  interface RadioGroupProps {
314
330
  children: ReactNode;
315
331
  className?: string;
332
+ /** Group name; when set the group renders as fieldset/legend so it's announced with each radio. */
333
+ label?: ReactNode;
316
334
  }
317
- declare function RadioGroup({ children, className }: RadioGroupProps): react.JSX.Element;
335
+ declare function RadioGroup({ children, className, label }: RadioGroupProps): react.JSX.Element;
318
336
 
319
337
  interface SwitchProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
320
338
  label?: ReactNode;
@@ -333,18 +351,17 @@ interface FieldProps {
333
351
  }
334
352
  declare function Field({ label, hint, error, success, required, children, className, htmlFor }: FieldProps): react.JSX.Element;
335
353
 
336
- interface ModalProps {
354
+ interface ModalProps extends Omit<HTMLAttributes<HTMLDialogElement>, 'title'> {
337
355
  open: boolean;
338
356
  onClose?: () => void;
339
357
  title?: ReactNode;
340
358
  children?: ReactNode;
341
359
  footer?: ReactNode;
342
- className?: string;
343
- style?: CSSProperties;
360
+ /** Accessible name for the close button (default "Close dialog"). */
344
361
  closeLabel?: string;
345
362
  role?: 'dialog' | 'alertdialog';
346
363
  }
347
- declare function Modal({ open, onClose, title, children, footer, className, style, closeLabel, role }: ModalProps): react.JSX.Element;
364
+ declare function Modal({ open, onClose, title, children, footer, className, closeLabel, role, ...rest }: ModalProps): react.JSX.Element;
348
365
 
349
366
  interface ConfirmDialogProps {
350
367
  open: boolean;
@@ -377,17 +394,16 @@ interface PromptDialogProps {
377
394
  }
378
395
  declare function PromptDialog({ open, title, description, inputLabel, defaultValue, placeholder, submitLabel, cancelLabel, closeLabel, onSubmit, onCancel, validate, pending }: PromptDialogProps): react.JSX.Element;
379
396
 
380
- interface DrawerProps {
397
+ interface DrawerProps extends Omit<HTMLAttributes<HTMLDialogElement>, 'title'> {
381
398
  open: boolean;
382
399
  onClose?: () => void;
383
400
  title?: ReactNode;
384
401
  children?: ReactNode;
385
402
  footer?: ReactNode;
386
- className?: string;
387
403
  }
388
- declare function Drawer({ open, onClose, title, children, footer, className }: DrawerProps): react.JSX.Element;
404
+ declare function Drawer({ open, onClose, title, children, footer, className, ...rest }: DrawerProps): react.JSX.Element;
389
405
 
390
- interface PeekProps {
406
+ interface PeekProps extends Omit<HTMLAttributes<HTMLDialogElement>, 'title'> {
391
407
  open: boolean;
392
408
  onClose?: () => void;
393
409
  title?: ReactNode;
@@ -396,18 +412,19 @@ interface PeekProps {
396
412
  onNavPrev?: () => void;
397
413
  onNavNext?: () => void;
398
414
  hint?: string;
399
- className?: string;
400
415
  }
401
- declare function Peek({ open, onClose, title, children, footer, onNavPrev, onNavNext, hint, className }: PeekProps): react.JSX.Element;
416
+ declare function Peek({ open, onClose, title, children, footer, onNavPrev, onNavNext, hint, className, onClick, ...rest }: PeekProps): react.JSX.Element;
402
417
 
403
418
  interface CardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
404
419
  title?: ReactNode;
420
+ /** Element for the title — pick a real heading to slot the card into the page outline (UIX-A11Y-4). Default `div` keeps legacy rendering. */
421
+ titleAs?: 'h2' | 'h3' | 'h4' | 'div';
405
422
  subtitle?: ReactNode;
406
423
  headerAction?: ReactNode;
407
424
  footer?: ReactNode;
408
425
  children?: ReactNode;
409
426
  }
410
- declare function Card({ title, subtitle, headerAction, footer, children, className, ...props }: CardProps): react.JSX.Element;
427
+ declare function Card({ title, titleAs: TitleTag, subtitle, headerAction, footer, children, className, ...props }: CardProps): react.JSX.Element;
411
428
  interface CardLinkProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'title'> {
412
429
  title?: ReactNode;
413
430
  subtitle?: ReactNode;
@@ -435,6 +452,8 @@ declare function Breadcrumbs({ items, label, separator, className, ...props }: B
435
452
  interface PageHeaderProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
436
453
  eyebrow?: ReactNode;
437
454
  title: ReactNode;
455
+ /** Heading level for the title — drop to `h2` when the page already owns an `h1` (UIX-A11Y-4). */
456
+ as?: 'h1' | 'h2';
438
457
  /** Supporting copy under the title. */
439
458
  subtitle?: ReactNode;
440
459
  /** Right-aligned action area (buttons, menus). */
@@ -444,7 +463,7 @@ interface PageHeaderProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
444
463
  * Page header — eyebrow / title / subtitle + actions row, over `.uix-page-header`.
445
464
  * The hairline + breathing room below come from the component CSS.
446
465
  */
447
- declare function PageHeader({ eyebrow, title, subtitle, actions, className, ...props }: PageHeaderProps): react.JSX.Element;
466
+ declare function PageHeader({ eyebrow, title, subtitle, actions, as: TitleTag, className, ...props }: PageHeaderProps): react.JSX.Element;
448
467
 
449
468
  interface DetailLayoutProps extends HTMLAttributes<HTMLDivElement> {
450
469
  /** The narrow trailing column (record meta, side panels). */
@@ -589,6 +608,18 @@ interface TabProps extends Omit<HTMLAttributes<HTMLButtonElement>, 'onChange'> {
589
608
  disabled?: boolean;
590
609
  }
591
610
  declare function Tab({ value, children, disabled, className, onClick, ...props }: TabProps): react.JSX.Element;
611
+ interface TabPanelProps extends HTMLAttributes<HTMLDivElement> {
612
+ /** The owning `<Tab>`'s value — the panel renders only while that tab is selected. */
613
+ value: string;
614
+ children?: ReactNode;
615
+ }
616
+ /**
617
+ * The tabpanel paired with a `<Tab>` by `value` (UIX-A11Y-2): labelled by its tab,
618
+ * `tabIndex 0` so Tab from the tablist lands in the content, rendered only while
619
+ * selected. Place it as a direct child of `<Tabs>` — it is hoisted out of the tablist —
620
+ * or anywhere the Tabs context reaches.
621
+ */
622
+ declare function TabPanel({ value, children, ...props }: TabPanelProps): react.JSX.Element | null;
592
623
 
593
624
  type ShellNav = 'full' | 'rail' | 'hidden';
594
625
  interface AppShellProps extends HTMLAttributes<HTMLDivElement> {
@@ -606,11 +637,13 @@ interface AppShellProps extends HTMLAttributes<HTMLDivElement> {
606
637
  onExitFocus?: () => void;
607
638
  /** Drop the content gutter so a genuinely wide table runs edge-to-edge. */
608
639
  mainBleed?: boolean;
640
+ /** id given to `<main>` and targeted by the skip link. Override on collision (UIX-A11Y-2). */
641
+ mainId?: string;
609
642
  sidebar?: ReactNode;
610
643
  topbar?: ReactNode;
611
644
  children?: ReactNode;
612
645
  }
613
- declare function AppShell({ nav, collapsed, focus, onExitFocus, mainBleed, sidebar, topbar, children, className, ...props }: AppShellProps): react.JSX.Element;
646
+ declare function AppShell({ nav, collapsed, focus, onExitFocus, mainBleed, mainId, sidebar, topbar, children, className, ...props }: AppShellProps): react.JSX.Element;
614
647
 
615
648
  interface SidebarProps extends HTMLAttributes<HTMLElement> {
616
649
  collapsed?: boolean;
@@ -749,8 +782,10 @@ declare function Alert({ tone, title, icon, children, className, ...props }: Ale
749
782
  interface SpinnerProps extends HTMLAttributes<HTMLSpanElement> {
750
783
  size?: 'md' | 'lg';
751
784
  accent?: boolean;
785
+ /** Announced loading text (default "Loading…"). */
786
+ label?: string;
752
787
  }
753
- declare function Spinner({ size, accent, className, ...props }: SpinnerProps): react.JSX.Element;
788
+ declare function Spinner({ size, accent, label, className, ...props }: SpinnerProps): react.JSX.Element;
754
789
 
755
790
  type ToastTone = 'success' | 'danger' | 'info';
756
791
  interface ToastProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
@@ -768,6 +803,11 @@ interface ToasterProps extends HTMLAttributes<HTMLDivElement> {
768
803
  declare function Toaster({ children, className, ...props }: ToasterProps): react.JSX.Element;
769
804
 
770
805
  interface TableWrapProps extends HTMLAttributes<HTMLDivElement> {
806
+ /**
807
+ * Polite live-region text for table state changes — "Sorted by …", "N results",
808
+ * "N selected". Pass `useTable().announcement` straight through (UIX-A11Y-2).
809
+ */
810
+ announcement?: string;
771
811
  children?: ReactNode;
772
812
  }
773
813
  declare const TableWrap: react.ForwardRefExoticComponent<TableWrapProps & react.RefAttributes<HTMLDivElement>>;
@@ -819,9 +859,11 @@ interface RowActionProps extends ButtonHTMLAttributes<HTMLButtonElement> {
819
859
  declare function RowAction({ children, className, type, ...props }: RowActionProps): react.JSX.Element;
820
860
  interface ExpandToggleProps extends ButtonHTMLAttributes<HTMLButtonElement> {
821
861
  expanded?: boolean;
862
+ /** id of the detail row this toggle controls → `aria-controls` (UIX-A11Y-2). */
863
+ controls?: string;
822
864
  }
823
865
  /** Chevron button that expands/collapses an inline detail row. */
824
- declare function ExpandToggle({ expanded, className, type, ...props }: ExpandToggleProps): react.JSX.Element;
866
+ declare function ExpandToggle({ expanded, controls, className, type, ...props }: ExpandToggleProps): react.JSX.Element;
825
867
  /** Emphasised primary cell text. */
826
868
  declare function CellStrong({ children, className, ...props }: HTMLAttributes<HTMLSpanElement>): react.JSX.Element;
827
869
  /** Secondary line under a primary cell value (muted, meta size). */
@@ -863,8 +905,10 @@ interface ProgressProps extends HTMLAttributes<HTMLDivElement> {
863
905
  max?: number;
864
906
  /** Continuous slide animation when the amount of work is unknown. */
865
907
  indeterminate?: boolean;
908
+ /** Accessible name — rendered as `aria-label` (an explicit `aria-label` prop wins). */
909
+ label?: string;
866
910
  }
867
- declare function Progress({ value, max, indeterminate, className, ...props }: ProgressProps): react.JSX.Element;
911
+ declare function Progress({ value, max, indeterminate, label, className, ...props }: ProgressProps): react.JSX.Element;
868
912
 
869
913
  /** Fill color tone for the meter bar. Defaults to `success` (green). */
870
914
  type MeterTone = 'success' | 'warning' | 'danger' | 'attention' | 'overdue';
@@ -873,9 +917,11 @@ interface MeterProps extends HTMLAttributes<HTMLDivElement> {
873
917
  value?: number;
874
918
  /** Threshold tone applied via `data-tone` on the fill element. `success` is the implicit default (no attribute). */
875
919
  tone?: MeterTone;
920
+ /** Accessible name — rendered as `aria-label` (an explicit `aria-label` prop wins). */
921
+ label?: string;
876
922
  }
877
923
  /** Horizontal utilization / threshold bar backed by `.uix-meter`. */
878
- declare function Meter({ value, tone, className, ...props }: MeterProps): react.JSX.Element;
924
+ declare function Meter({ value, tone, label, className, ...props }: MeterProps): react.JSX.Element;
879
925
 
880
926
  interface StatTrend {
881
927
  direction: 'up' | 'down';
@@ -905,7 +951,9 @@ interface TooltipProps extends HTMLAttributes<HTMLSpanElement> {
905
951
  * Tooltip whose bubble renders in the top layer via the native Popover API, so it
906
952
  * escapes any `overflow: hidden/scroll` ancestor that would clip the old CSS-only
907
953
  * `[data-uix-tip]` tooltip (UIX-FIX-02). Positioned by the shared overlay engine
908
- * (flip/shift), shown on hover and keyboard focus, dismissed on blur or Escape.
954
+ * (flip/shift), shown on hover and keyboard focus, dismissed on blur or Escape
955
+ * (document-level, per WCAG 1.4.13), and hoverable: the bubble stays open while
956
+ * the pointer is over it (UIX-A11Y-1).
909
957
  */
910
958
  declare function Tooltip({ label, placement, className, children, ...props }: TooltipProps): react.JSX.Element;
911
959
 
@@ -957,6 +1005,7 @@ interface LoadingStateProps extends HTMLAttributes<HTMLDivElement> {
957
1005
  /** Number of skeleton rows to render. */
958
1006
  rows?: number;
959
1007
  density?: 'compact' | 'comfortable';
1008
+ /** Announced loading text (default "Loading"). */
960
1009
  label?: string;
961
1010
  }
962
1011
  /** A stack of skeleton rows for list/section loading. `role="status"`. */
@@ -1039,7 +1088,11 @@ declare function UserChip({ avatar, name, sub, className, children, ...props }:
1039
1088
  interface CommentsProps extends HTMLAttributes<HTMLDivElement> {
1040
1089
  children?: ReactNode;
1041
1090
  }
1042
- /** Comment thread container over `.uix-comments`. */
1091
+ /**
1092
+ * Comment thread container over `.uix-comments`. role="log" is an implicit polite
1093
+ * live region: comments appended after initial render are announced, the initial
1094
+ * list is not (UIX-A11Y-3). Pass `role` to override.
1095
+ */
1043
1096
  declare function Comments({ children, className, ...props }: CommentsProps): react.JSX.Element;
1044
1097
  interface CommentProps extends HTMLAttributes<HTMLDivElement> {
1045
1098
  /** Usually an `<Avatar />` (the grid reserves the leading column). */
@@ -1053,6 +1106,8 @@ declare function Comment({ avatar, author, meta, children, className, ...props }
1053
1106
 
1054
1107
  interface ComposerProps extends HTMLAttributes<HTMLDivElement> {
1055
1108
  children?: ReactNode;
1109
+ /** Accessible name for the child `<textarea>`; applied as its `aria-label`. */
1110
+ label?: string;
1056
1111
  }
1057
1112
  /**
1058
1113
  * Composer surface over `.uix-composer` — a single box that owns the
@@ -1060,8 +1115,13 @@ interface ComposerProps extends HTMLAttributes<HTMLDivElement> {
1060
1115
  * `<ComposerBar>` inside; the descendant `textarea` picks up the composer's
1061
1116
  * padding/typography automatically, so the input never reads as a second
1062
1117
  * nested box.
1118
+ *
1119
+ * A placeholder is not an accessible name, so the composer labels a bare child
1120
+ * `<textarea>` with `label` (default "Add a comment"); a textarea that brings its
1121
+ * own `aria-label`/`aria-labelledby` — or an `id` (likely tied to an external
1122
+ * `<label htmlFor>`) — is left untouched (UIX-A11Y-3).
1063
1123
  */
1064
- declare function Composer({ children, className, ...props }: ComposerProps): react.JSX.Element;
1124
+ declare function Composer({ children, className, label, ...props }: ComposerProps): react.JSX.Element;
1065
1125
  interface ComposerBarProps extends HTMLAttributes<HTMLDivElement> {
1066
1126
  children?: ReactNode;
1067
1127
  }
@@ -1166,12 +1226,12 @@ type SavedViewMenuProps = SavedViewMenuBaseProps & ({
1166
1226
  /** Generic saved-view selector. Persistence, ownership and authorization remain application concerns. */
1167
1227
  declare function SavedViewMenu({ items, onSelect, onPinChange, pinLabel, unpinLabel, emptyLabel, actions, footer }: SavedViewMenuProps): react.JSX.Element;
1168
1228
 
1169
- interface TimelineProps extends HTMLAttributes<HTMLDivElement> {
1229
+ interface TimelineProps extends HTMLAttributes<HTMLOListElement> {
1170
1230
  children?: ReactNode;
1171
1231
  }
1172
- /** Activity timeline container over `.uix-timeline`. */
1232
+ /** Activity timeline container over `.uix-timeline`. Ordered list so AT reads entry count + sequence (UIX-A11Y-4). */
1173
1233
  declare function Timeline({ children, className, ...props }: TimelineProps): react.JSX.Element;
1174
- interface TimelineItemProps extends HTMLAttributes<HTMLDivElement> {
1234
+ interface TimelineItemProps extends HTMLAttributes<HTMLLIElement> {
1175
1235
  /**
1176
1236
  * Custom rail node — an icon puck, an avatar, a tinted dot. Defaults to the
1177
1237
  * accent `.uix-timeline__node` dot. Supply this to make a heterogeneous feed
@@ -1184,6 +1244,49 @@ interface TimelineItemProps extends HTMLAttributes<HTMLDivElement> {
1184
1244
  /** A timeline entry over `.uix-timeline__item` (node + connecting line + body). */
1185
1245
  declare function TimelineItem({ node, meta, children, className, ...props }: TimelineItemProps): react.JSX.Element;
1186
1246
 
1247
+ type PipelineStageState = 'pending' | 'waiting' | 'active' | 'current' | 'running' | 'done' | 'complete' | 'blocked' | 'failed' | 'error';
1248
+ interface PipelineProps extends HTMLAttributes<HTMLOListElement> {
1249
+ detailed?: boolean;
1250
+ children?: ReactNode;
1251
+ }
1252
+ /** Ordered progress rail. Consumers own workflow meaning; UIx owns stage semantics and presentation. */
1253
+ declare function Pipeline({ detailed, children, className, tabIndex, ...props }: PipelineProps): react.JSX.Element;
1254
+ interface PipelineStageProps extends Omit<HTMLAttributes<HTMLLIElement>, 'title'> {
1255
+ label: ReactNode;
1256
+ state?: PipelineStageState;
1257
+ stateLabel?: ReactNode;
1258
+ description?: ReactNode;
1259
+ meta?: ReactNode;
1260
+ marker?: ReactNode;
1261
+ detailed?: boolean;
1262
+ /** Marks the stage as the current position independently of its operational state. */
1263
+ current?: boolean;
1264
+ }
1265
+ /** One pipeline stage. `stateLabel` keeps status explicit instead of relying on colour. */
1266
+ declare function PipelineStage({ label, state, stateLabel, description, meta, marker, detailed, current: currentProp, className, ...props }: PipelineStageProps): react.JSX.Element;
1267
+
1268
+ type FlowVariant = 'linear' | 'branch' | 'loop' | 'mindmap' | 'canvas';
1269
+ type FlowNodeState = 'pending' | 'active' | 'running' | 'done' | 'error';
1270
+ interface FlowProps extends HTMLAttributes<HTMLDivElement> {
1271
+ variant?: FlowVariant;
1272
+ panel?: boolean;
1273
+ children?: ReactNode;
1274
+ }
1275
+ /** Presentational workflow surface. Consumers provide graph geometry and connectors. */
1276
+ declare function Flow({ variant, panel, children, className, role, ...props }: FlowProps): react.JSX.Element;
1277
+ interface FlowNodeProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
1278
+ title: ReactNode;
1279
+ state?: FlowNodeState;
1280
+ stateLabel?: ReactNode;
1281
+ eyebrow?: ReactNode;
1282
+ meta?: ReactNode;
1283
+ icon?: ReactNode;
1284
+ footer?: ReactNode;
1285
+ wide?: boolean;
1286
+ }
1287
+ /** Workflow node with explicit text state and optional operational metadata. */
1288
+ declare function FlowNode({ title, state, stateLabel, eyebrow, meta, icon, footer, wide, className, ...props }: FlowNodeProps): react.JSX.Element;
1289
+
1187
1290
  interface ProseProps extends HTMLAttributes<HTMLDivElement> {
1188
1291
  children?: ReactNode;
1189
1292
  }
@@ -1235,7 +1338,9 @@ interface CommandPaletteProps extends HTMLAttributes<HTMLDivElement> {
1235
1338
  }
1236
1339
  /**
1237
1340
  * ⌘K command palette surface over `.uix-cmdk`. Presentational: mount it inside a
1238
- * Modal/Popover and wire search + keyboard selection in the consumer.
1341
+ * Modal/Popover and wire search + keyboard selection in the consumer. The input is
1342
+ * a combobox over the listbox of `CommandItem`s; spreads override every default, so
1343
+ * consumers already passing their own roles/labels keep working.
1239
1344
  */
1240
1345
  declare function CommandPalette({ inputProps, children, className, ...props }: CommandPaletteProps): react.JSX.Element;
1241
1346
  interface CommandGroupProps {
@@ -1252,17 +1357,27 @@ interface CommandItemProps extends HTMLAttributes<HTMLDivElement> {
1252
1357
  children?: ReactNode;
1253
1358
  }
1254
1359
  /** A single command row over `.uix-cmdk__item`. */
1255
- declare function CommandItem({ icon, shortcut, active, children, className, ...props }: CommandItemProps): react.JSX.Element;
1360
+ declare function CommandItem({ icon, shortcut, active, children, className, id, ...props }: CommandItemProps): react.JSX.Element;
1256
1361
 
1257
1362
  interface InboxProps extends HTMLAttributes<HTMLDivElement> {
1363
+ /**
1364
+ * Which pane a narrow viewport (<700px) shows: 'list' (default, matches the old
1365
+ * behaviour) or 'detail'. Consumers should render a Back control in the detail pane
1366
+ * on narrow viewports to return to the list (UIX-A11Y-2).
1367
+ */
1368
+ view?: 'list' | 'detail';
1258
1369
  children?: ReactNode;
1259
1370
  }
1260
1371
  /** Two-pane inbox master-detail container backed by `.uix-inbox`. Place `<InboxList>` and `<InboxDetail>` as children. */
1261
- declare function Inbox({ children, className, ...props }: InboxProps): react.JSX.Element;
1372
+ declare function Inbox({ view, children, className, ...props }: InboxProps): react.JSX.Element;
1262
1373
  interface InboxListProps extends HTMLAttributes<HTMLDivElement> {
1263
1374
  children?: ReactNode;
1264
1375
  }
1265
- /** Left-pane item list. Place `<InboxItem>` children here. */
1376
+ /**
1377
+ * Left-pane item list. Place `<InboxItem>` children here. A keyboard listbox
1378
+ * (UIX-A11Y-2): the list is the single tab stop; ArrowUp/ArrowDown/Home/End move the
1379
+ * active option via `aria-activedescendant`, Enter/Space click it.
1380
+ */
1266
1381
  declare function InboxList({ children, className, ...props }: InboxListProps): react.JSX.Element;
1267
1382
  interface InboxItemProps extends HTMLAttributes<HTMLDivElement> {
1268
1383
  /** Primary subject / title line. */
@@ -1278,7 +1393,7 @@ interface InboxItemProps extends HTMLAttributes<HTMLDivElement> {
1278
1393
  children?: ReactNode;
1279
1394
  }
1280
1395
  /** A single inbox row with subject, preview excerpt, optional leading slot, and unread/selected states. */
1281
- declare function InboxItem({ subject, preview, leading, unread, selected, children, className, ...props }: InboxItemProps): react.JSX.Element;
1396
+ declare function InboxItem({ subject, preview, leading, unread, selected, children, className, id, ...props }: InboxItemProps): react.JSX.Element;
1282
1397
  interface InboxDetailProps extends HTMLAttributes<HTMLDivElement> {
1283
1398
  children?: ReactNode;
1284
1399
  }
@@ -1286,25 +1401,39 @@ interface InboxDetailProps extends HTMLAttributes<HTMLDivElement> {
1286
1401
  declare function InboxDetail({ children, className, ...props }: InboxDetailProps): react.JSX.Element;
1287
1402
 
1288
1403
  interface KanbanProps extends HTMLAttributes<HTMLDivElement> {
1404
+ /**
1405
+ * Polite live-region text for keyboard moves (UIX-A11Y-2). `onMove` implementations
1406
+ * should set it, e.g. "Card X moved to Doing, position 2 of 4".
1407
+ */
1408
+ announcement?: string;
1289
1409
  children?: ReactNode;
1290
1410
  }
1291
- declare function Kanban({ children, className, ...props }: KanbanProps): react.JSX.Element;
1411
+ declare function Kanban({ announcement, children, className, ...props }: KanbanProps): react.JSX.Element;
1292
1412
  interface KanbanColumnProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
1293
1413
  title?: ReactNode;
1294
1414
  count?: number;
1295
1415
  children?: ReactNode;
1296
1416
  }
1297
1417
  declare function KanbanColumn({ title, count, children, className, ...props }: KanbanColumnProps): react.JSX.Element;
1418
+ type KanbanMoveDirection = 'up' | 'down' | 'left' | 'right';
1298
1419
  interface KanbanCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
1299
1420
  title?: ReactNode;
1300
1421
  meta?: ReactNode;
1422
+ /**
1423
+ * Keyboard move contract (UIX-A11Y-2): when provided, Alt+Arrow on the focused card
1424
+ * calls it — the same accelerator convention as NavFavourites row moves. Pair with
1425
+ * the board-level `announcement` so SR users hear the result.
1426
+ */
1427
+ onMove?: (dir: KanbanMoveDirection) => void;
1301
1428
  children?: ReactNode;
1302
1429
  }
1303
- declare function KanbanCard({ title, meta, children, className, ...props }: KanbanCardProps): react.JSX.Element;
1430
+ declare function KanbanCard({ title, meta, children, className, onMove, onKeyDown, ...props }: KanbanCardProps): react.JSX.Element;
1304
1431
 
1305
1432
  interface TreeNodeData {
1306
1433
  id: string;
1307
1434
  label: ReactNode;
1435
+ /** Plain-text label for keyboard typeahead when `label` is not a string (UIX-A11Y-2). */
1436
+ typeaheadLabel?: string;
1308
1437
  icon?: ReactNode;
1309
1438
  children?: TreeNodeData[];
1310
1439
  }
@@ -1353,6 +1482,10 @@ declare function Tree({ nodes, expanded: controlledExpanded, defaultExpanded, se
1353
1482
  interface TreeLike<T> {
1354
1483
  id: string;
1355
1484
  children?: T[];
1485
+ /** The display label — typeahead matches it only when it is a plain string (UIX-A11Y-2). */
1486
+ label?: unknown;
1487
+ /** Explicit typeahead text for nodes whose `label` is not a string (rich ReactNode labels). */
1488
+ typeaheadLabel?: string;
1356
1489
  }
1357
1490
  interface FlatNode<T> {
1358
1491
  node: T;
@@ -2004,4 +2137,4 @@ declare function hsvToHex(value: HsvColor): string;
2004
2137
  declare function contrastRatio(background: string, foreground: string): number | undefined;
2005
2138
  declare function meetsContrast(background: string, foreground: string, minimum?: number): boolean;
2006
2139
 
2007
- export { type AccessStateProps, Alert, type AlertProps, type AlertTone, type Align, AppShell, type AppShellProps, type AppliedBrandProfileSnapshot, type AsyncOperationState, AsyncOperationStatus, type AsyncOperationStatusProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, type BoundedRelationshipGraph, type BrandProfile, BrandProfileEditor, type BrandProfileEditorProps, type BrandProfileLogo, type BrandProfileTypography, BrandProfiles, type BreadcrumbItem, Breadcrumbs, type BreadcrumbsProps, BuilderCanvas, type BuilderCanvasItem, type BuilderCanvasProps, type BuilderPaletteItem, BulkBar, type BulkBarProps, Button, ButtonGroup, type ButtonGroupProps, type ButtonProps, type CalendarDay, Card, CardLink, type CardLinkProps, type CardProps, CellStrong, CellSub, Checkbox, type CheckboxProps, CollapsibleSection, type CollapsibleSectionProps, ColorPicker, type ColorPickerProps, type ColumnFilter, Combobox, type ComboboxOption, type ComboboxProps, CommandGroup, type CommandGroupProps, CommandItem, type CommandItemProps, CommandPalette, type CommandPaletteProps, Comment, type CommentProps, Comments, type CommentsProps, Composer, ComposerBar, type ComposerBarProps, type ComposerProps, ConfirmDialog, type ConfirmDialogProps, ContentList, ContentListItem, type ContentListItemProps, type ContentListProps, DateRangePicker, type DateRangePickerProps, type DateRangeValue, DescriptionItem, type DescriptionItemProps, DescriptionList, type DescriptionListItem, type DescriptionListProps, DetailLayout, type DetailLayoutProps, DetailPage, type DetailPageMetric, type DetailPageProps, type DetailPageTab, type DiffEntry, type DiffKind, type DiffResolution, type DiffSummary, DiffViewer, type DiffViewerProps, Drawer, type DrawerProps, EmptyState, type EmptyStateProps, ErrorState, type ErrorStateProps, EventRow, type EventRowProps, ExpandToggle, type ExpandToggleProps, FeaturedRundown, FeaturedRundownItem, type FeaturedRundownItemProps, type FeaturedRundownProps, FeaturedStage, type FeaturedStageProps, Field, type FieldProps, type FilterKind, type FilterOp, type FilterOption, FilterPopover, type FilterPopoverProps, FilteredEmptyState, type FlatNode, ForbiddenState, Highlighted, type HighlightedProps, type HsvColor, Inbox, InboxDetail, type InboxDetailProps, InboxItem, type InboxItemProps, InboxList, type InboxListProps, type InboxProps, Input, InputGroup, type InputGroupProps, type InputProps, type JsonPrimitive, type JsonValue, Kanban, KanbanCard, type KanbanCardProps, KanbanColumn, type KanbanColumnProps, type KanbanProps, Label, type LabelProps, LicensePositionBar, type LicensePositionBarProps, List, ListItem, type ListItemProps, type ListProps, LoadingState, type LoadingStateProps, Mark, type MarkProps, type MatchBulkResult, MatchReview, type MatchReviewAction, type MatchReviewCandidate, type MatchReviewField, type MatchReviewProps, Meter, type MeterProps, type MeterTone, MetricInput, type MetricInputProps, Modal, type ModalProps, type NavFavouriteItem, NavFavourites, type NavFavouritesLabels, type NavFavouritesProps, NavGroup, type NavGroupProps, NavItem, type NavItemProps, NewsLead, type NewsLeadProps, NotFoundState, Note, type NoteProps, type NoteTone, NoticeQueue, type NoticeQueueProps, PageHeader, type PageHeaderProps, PageIntro, type PageIntroProps, Pagination, type PaginationProps, Peek, type PeekProps, type PillTone, type PillTreatment, type Placement, Popover, type PopoverProps, type PositionOptions, type PositionResult, type PositionedRelationshipNode, type Primitive, Progress, type ProgressProps, PromptDialog, type PromptDialogProps, Prose, type ProseProps, Radio, RadioGroup, type RadioGroupProps, type RadioProps, type Rect, type RelatedLinkItem, RelatedLinks, type RelatedLinksProps, RelationshipGraph, type RelationshipGraphEdge, type RelationshipGraphLegendItem, type RelationshipGraphNode, type RelationshipGraphProps, RelativeTime, type RelativeTimeFormatContext, type RelativeTimeProps, type RelativeTimeUnit, type RelativeTimeValue, ResourceGrid, type ResourceGridProps, type RgbColor, type Row, RowAction, type RowActionProps, RowActions, type RowActionsProps, type RuleAction, type RuleActionDefinition, RuleBuilder, type RuleBuilderProps, type RuleCondition, type RuleDefinition, type RuleFieldDefinition, type RuleGroup, type RuleOperatorDefinition, type RuleValidationIssue, type RuleValueEditorProps, type SavedViewItem, SavedViewMenu, type SavedViewMenuProps, SchedulingCalendar, type SchedulingCalendarEntry, type SchedulingCalendarOverlay, type SchedulingCalendarProps, type SchedulingCalendarView, type SchedulingEntryState, type SchedulingOverlayKind, SectionHead, type SectionHeadProps, type Segment, Segmented, SegmentedOption, type SegmentedOptionProps, type SegmentedProps, Select, type SelectAllState, type SelectProps, type ShellNav, type Side, Sidebar, type SidebarProps, SidebarSection, type SidebarSectionProps, type Size, Skeleton, type SkeletonProps, type SortDir, type SortDirection, type SortKey, Spinner, type SpinnerProps, StarButton, type StarButtonProps, Stat, StatLine, type StatLineItem, type StatLineProps, type StatProps, type StatTrend, type StateVariant, StatusPill, type StatusPillProps, StatusRow, type StatusRowProps, SubNavItem, type SubNavItemProps, Switch, type SwitchProps, Tab, type TabProps, Table, type TableDensity, type TableProps, TableWrap, type TableWrapProps, Tabs, type TabsProps, Td, type TdProps, Textarea, type TextareaProps, Th, type ThProps, Timeline, TimelineItem, type TimelineItemProps, type TimelineProps, Toast, type ToastProps, type ToastTone, Toaster, type ToasterProps, ToggleRow, type ToggleRowProps, Tooltip, type TooltipProps, Tr, type TrProps, Tree, type TreeLike, type TreeNavAction, type TreeNodeData, type TreeNodeProps, type TreeProps, type UseAnchoredPositionOptions, type UseTableOptions, type UseTableResult, type UseVirtualRowsOptions, type UseVirtualRowsResult, UserChip, type UserChipProps, ViewMenu, type ViewMenuColumn, type ViewMenuProps, type ViewState, type VirtualWindow, type ZonedDateSpan, addCalendarDays, addCalendarMonths, appendRuleNode, applyBrandProfile, applyFilters, boundRelationshipGraph, buildMonthGrid, buildThreeWayDiff, clampMetricValue, clampWidth, computePosition, contrastRatio, cx, enumerateDateSpan, filterComboboxOptions, findRuleNodeDepth, flattenTree, hexToRgb, highlightSegments, hsvToHex, hsvToRgb, isDateInRange, isDateUnavailable, isRuleGroup, layoutRelationshipGraph, mapRuleGroup, matchFilter, meetsContrast, mergePinned, moveRuleNode, multiSort, nextSortDir, normalizeHex, parseDateValue, parseMetricValue, parseView, relationshipNeighbors, relativeTimeValue, removeRuleNode, reorder, restoreBrandProfile, rgbToHex, rgbToHsv, ruleDepth, searchRows, selectAllState, selectRangeDate, serializeView, shouldVirtualize, startOfMonth, stepMetricValue, summarizeDiff, summarizeRule, toDateKey, toggleId, togglePage, toggleSort, traverseRelationshipNode, treeNav, useAnchoredPosition, useDialog, useTable, useVirtualRows, validateRuleDefinition, virtualWindow, zonedDateKey, zonedDateSpan };
2140
+ export { type AccessStateProps, Alert, type AlertProps, type AlertTone, type Align, AppShell, type AppShellProps, type AppliedBrandProfileSnapshot, type AsyncOperationState, AsyncOperationStatus, type AsyncOperationStatusProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, type BoundedRelationshipGraph, type BrandProfile, BrandProfileEditor, type BrandProfileEditorProps, type BrandProfileLogo, type BrandProfileTypography, BrandProfiles, type BreadcrumbItem, Breadcrumbs, type BreadcrumbsProps, BuilderCanvas, type BuilderCanvasItem, type BuilderCanvasProps, type BuilderPaletteItem, BulkBar, type BulkBarProps, Button, ButtonGroup, type ButtonGroupProps, type ButtonProps, type CalendarDay, Card, CardLink, type CardLinkProps, type CardProps, CellStrong, CellSub, Checkbox, type CheckboxProps, CollapsibleSection, type CollapsibleSectionProps, ColorPicker, type ColorPickerProps, type ColumnFilter, Combobox, type ComboboxOption, type ComboboxProps, CommandGroup, type CommandGroupProps, CommandItem, type CommandItemProps, CommandPalette, type CommandPaletteProps, Comment, type CommentProps, Comments, type CommentsProps, Composer, ComposerBar, type ComposerBarProps, type ComposerProps, ConfirmDialog, type ConfirmDialogProps, ContentList, ContentListItem, type ContentListItemProps, type ContentListProps, DateRangePicker, type DateRangePickerProps, type DateRangeValue, DescriptionItem, type DescriptionItemProps, DescriptionList, type DescriptionListItem, type DescriptionListProps, DetailLayout, type DetailLayoutProps, DetailPage, type DetailPageMetric, type DetailPageProps, type DetailPageTab, type DiffEntry, type DiffKind, type DiffResolution, type DiffSummary, DiffViewer, type DiffViewerProps, Drawer, type DrawerProps, EmptyState, type EmptyStateProps, ErrorState, type ErrorStateProps, EventRow, type EventRowProps, ExpandToggle, type ExpandToggleProps, FeaturedRundown, FeaturedRundownItem, type FeaturedRundownItemProps, type FeaturedRundownProps, FeaturedStage, type FeaturedStageProps, Field, type FieldProps, type FilterKind, type FilterOp, type FilterOption, FilterPopover, type FilterPopoverProps, FilteredEmptyState, type FlatNode, Flow, FlowNode, type FlowNodeProps, type FlowNodeState, type FlowProps, type FlowVariant, ForbiddenState, Highlighted, type HighlightedProps, type HsvColor, Inbox, InboxDetail, type InboxDetailProps, InboxItem, type InboxItemProps, InboxList, type InboxListProps, type InboxProps, Input, InputGroup, type InputGroupProps, type InputProps, type JsonPrimitive, type JsonValue, Kanban, KanbanCard, type KanbanCardProps, KanbanColumn, type KanbanColumnProps, type KanbanMoveDirection, type KanbanProps, Label, type LabelProps, LicensePositionBar, type LicensePositionBarProps, List, ListItem, type ListItemProps, type ListProps, LoadingState, type LoadingStateProps, Mark, type MarkProps, type MatchBulkResult, MatchReview, type MatchReviewAction, type MatchReviewCandidate, type MatchReviewField, type MatchReviewProps, Meter, type MeterProps, type MeterTone, MetricInput, type MetricInputProps, Modal, type ModalProps, type NavFavouriteItem, NavFavourites, type NavFavouritesLabels, type NavFavouritesProps, NavGroup, type NavGroupProps, NavItem, type NavItemProps, NewsLead, type NewsLeadProps, NotFoundState, Note, type NoteProps, type NoteTone, NoticeQueue, type NoticeQueueProps, PageHeader, type PageHeaderProps, PageIntro, type PageIntroProps, Pagination, type PaginationProps, Peek, type PeekProps, type PillTone, type PillTreatment, Pipeline, type PipelineProps, PipelineStage, type PipelineStageProps, type PipelineStageState, type Placement, Popover, type PopoverProps, type PositionOptions, type PositionResult, type PositionedRelationshipNode, type Primitive, Progress, type ProgressProps, PromptDialog, type PromptDialogProps, Prose, type ProseProps, Radio, RadioGroup, type RadioGroupProps, type RadioProps, type Rect, type RelatedLinkItem, RelatedLinks, type RelatedLinksProps, RelationshipGraph, type RelationshipGraphEdge, type RelationshipGraphLegendItem, type RelationshipGraphNode, type RelationshipGraphProps, RelativeTime, type RelativeTimeFormatContext, type RelativeTimeProps, type RelativeTimeUnit, type RelativeTimeValue, ResourceGrid, type ResourceGridProps, type RgbColor, type Row, RowAction, type RowActionProps, RowActions, type RowActionsProps, type RuleAction, type RuleActionDefinition, RuleBuilder, type RuleBuilderProps, type RuleCondition, type RuleDefinition, type RuleFieldDefinition, type RuleGroup, type RuleOperatorDefinition, type RuleValidationIssue, type RuleValueEditorProps, type SavedViewItem, SavedViewMenu, type SavedViewMenuProps, SchedulingCalendar, type SchedulingCalendarEntry, type SchedulingCalendarOverlay, type SchedulingCalendarProps, type SchedulingCalendarView, type SchedulingEntryState, type SchedulingOverlayKind, SectionHead, type SectionHeadProps, type Segment, Segmented, SegmentedOption, type SegmentedOptionProps, type SegmentedProps, Select, type SelectAllState, type SelectProps, type ShellNav, type Side, Sidebar, type SidebarProps, SidebarSection, type SidebarSectionProps, type Size, Skeleton, type SkeletonProps, type SortDir, type SortDirection, type SortKey, Spinner, type SpinnerProps, StarButton, type StarButtonProps, Stat, StatLine, type StatLineItem, type StatLineProps, type StatProps, type StatTrend, type StateVariant, StatusPill, type StatusPillProps, StatusRow, type StatusRowProps, SubNavItem, type SubNavItemProps, Switch, type SwitchProps, Tab, TabPanel, type TabPanelProps, type TabProps, Table, type TableDensity, type TableProps, TableWrap, type TableWrapProps, Tabs, type TabsProps, Td, type TdProps, Textarea, type TextareaProps, Th, type ThProps, Timeline, TimelineItem, type TimelineItemProps, type TimelineProps, Toast, type ToastProps, type ToastTone, Toaster, type ToasterProps, ToggleRow, type ToggleRowProps, Tooltip, type TooltipProps, Tr, type TrProps, Tree, type TreeLike, type TreeNavAction, type TreeNodeData, type TreeNodeProps, type TreeProps, type UseAnchoredPositionOptions, type UseTableOptions, type UseTableResult, type UseVirtualRowsOptions, type UseVirtualRowsResult, UserChip, type UserChipProps, ViewMenu, type ViewMenuColumn, type ViewMenuProps, type ViewState, type VirtualWindow, type ZonedDateSpan, addCalendarDays, addCalendarMonths, appendRuleNode, applyBrandProfile, applyFilters, boundRelationshipGraph, buildMonthGrid, buildThreeWayDiff, clampMetricValue, clampWidth, computePosition, contrastRatio, cx, enumerateDateSpan, filterComboboxOptions, findRuleNodeDepth, flattenTree, hexToRgb, highlightSegments, hsvToHex, hsvToRgb, isDateInRange, isDateUnavailable, isRuleGroup, layoutRelationshipGraph, mapRuleGroup, matchFilter, meetsContrast, mergePinned, moveRuleNode, multiSort, nextSortDir, normalizeHex, parseDateValue, parseMetricValue, parseView, relationshipNeighbors, relativeTimeValue, removeRuleNode, reorder, restoreBrandProfile, rgbToHex, rgbToHsv, ruleDepth, searchRows, selectAllState, selectRangeDate, serializeView, shouldVirtualize, startOfMonth, stepMetricValue, summarizeDiff, summarizeRule, toDateKey, toggleId, togglePage, toggleSort, traverseRelationshipNode, treeNav, useAnchoredPosition, useDialog, useTable, useVirtualRows, validateRuleDefinition, virtualWindow, zonedDateKey, zonedDateSpan };
package/dist/index.d.ts CHANGED
@@ -28,7 +28,7 @@ export { ToggleRow, ToggleRowProps } from './components/ToggleRow.js';
28
28
  export { CollapsibleSection, CollapsibleSectionProps } from './components/CollapsibleSection.js';
29
29
  export { List, ListItem, ListItemProps, ListProps } from './components/List.js';
30
30
  export { DescriptionItem, DescriptionItemProps, DescriptionList, DescriptionListItem, DescriptionListProps } from './components/DescriptionList.js';
31
- export { Tab, TabProps, Tabs, TabsProps } from './components/Tabs.js';
31
+ export { Tab, TabPanel, TabPanelProps, TabProps, Tabs, TabsProps } from './components/Tabs.js';
32
32
  export { AppShell, AppShellProps, ShellNav } from './components/AppShell.js';
33
33
  export { NavGroup, NavGroupProps, NavItem, NavItemProps, Sidebar, SidebarProps, SidebarSection, SidebarSectionProps, SubNavItem, SubNavItemProps } from './components/Sidebar.js';
34
34
  export { StarButton, StarButtonProps } from './components/StarButton.js';
@@ -55,11 +55,13 @@ export { Composer, ComposerBar, ComposerBarProps, ComposerProps } from './compon
55
55
  export { Segmented, SegmentedOption, SegmentedOptionProps, SegmentedProps } from './components/Segmented.js';
56
56
  export { FilterOption, FilterPopover, FilterPopoverProps, SavedViewItem, SavedViewMenu, SavedViewMenuProps, ViewMenu, ViewMenuColumn, ViewMenuProps } from './components/TableControls.js';
57
57
  export { Timeline, TimelineItem, TimelineItemProps, TimelineProps } from './components/Timeline.js';
58
+ export { Pipeline, PipelineProps, PipelineStage, PipelineStageProps, PipelineStageState } from './components/Pipeline.js';
59
+ export { Flow, FlowNode, FlowNodeProps, FlowNodeState, FlowProps, FlowVariant } from './components/Flow.js';
58
60
  export { Note, NoteProps, NoteTone, Prose, ProseProps } from './components/Prose.js';
59
61
  export { Popover, PopoverProps } from './components/Popover.js';
60
62
  export { CommandGroup, CommandGroupProps, CommandItem, CommandItemProps, CommandPalette, CommandPaletteProps } from './components/CommandPalette.js';
61
63
  export { Inbox, InboxDetail, InboxDetailProps, InboxItem, InboxItemProps, InboxList, InboxListProps, InboxProps } from './components/Inbox.js';
62
- export { Kanban, KanbanCard, KanbanCardProps, KanbanColumn, KanbanColumnProps, KanbanProps } from './components/Kanban.js';
64
+ export { Kanban, KanbanCard, KanbanCardProps, KanbanColumn, KanbanColumnProps, KanbanMoveDirection, KanbanProps } from './components/Kanban.js';
63
65
  export { Tree, TreeNodeData, TreeNodeProps, TreeProps } from './components/Tree.js';
64
66
  export { FlatNode, TreeLike, TreeNavAction, flattenTree, treeNav } from './tree-model.js';
65
67
  export { ContentList, ContentListItem, ContentListItemProps, ContentListProps, EventRow, EventRowProps, FeaturedRundown, FeaturedRundownItem, FeaturedRundownItemProps, FeaturedRundownProps, FeaturedStage, FeaturedStageProps, NewsLead, NewsLeadProps, NoticeQueue, NoticeQueueProps, PageIntro, PageIntroProps, ResourceGrid, ResourceGridProps, SectionHead, SectionHeadProps, StatLine, StatLineItem, StatLineProps, StatusRow, StatusRowProps } from './components/EditorialHome.js';
package/dist/index.js CHANGED
@@ -28,7 +28,7 @@ import { ToggleRow } from "./components/ToggleRow.js";
28
28
  import { CollapsibleSection } from "./components/CollapsibleSection.js";
29
29
  import { List, ListItem } from "./components/List.js";
30
30
  import { DescriptionList, DescriptionItem } from "./components/DescriptionList.js";
31
- import { Tabs, Tab } from "./components/Tabs.js";
31
+ import { Tabs, Tab, TabPanel } from "./components/Tabs.js";
32
32
  import { AppShell } from "./components/AppShell.js";
33
33
  import { Sidebar, SidebarSection, NavItem, NavGroup, SubNavItem } from "./components/Sidebar.js";
34
34
  import { StarButton } from "./components/StarButton.js";
@@ -69,6 +69,8 @@ import { Composer, ComposerBar } from "./components/Composer.js";
69
69
  import { Segmented, SegmentedOption } from "./components/Segmented.js";
70
70
  import { ViewMenu, FilterPopover, SavedViewMenu } from "./components/TableControls.js";
71
71
  import { Timeline, TimelineItem } from "./components/Timeline.js";
72
+ import { Pipeline, PipelineStage } from "./components/Pipeline.js";
73
+ import { Flow, FlowNode } from "./components/Flow.js";
72
74
  import { Prose, Note } from "./components/Prose.js";
73
75
  import { Popover } from "./components/Popover.js";
74
76
  import { CommandPalette, CommandGroup, CommandItem } from "./components/CommandPalette.js";
@@ -178,6 +180,8 @@ export {
178
180
  Field,
179
181
  FilterPopover,
180
182
  FilteredEmptyState,
183
+ Flow,
184
+ FlowNode,
181
185
  ForbiddenState,
182
186
  Highlighted,
183
187
  Inbox,
@@ -210,6 +214,8 @@ export {
210
214
  PageIntro,
211
215
  Pagination,
212
216
  Peek,
217
+ Pipeline,
218
+ PipelineStage,
213
219
  Popover,
214
220
  Progress,
215
221
  PromptDialog,
@@ -241,6 +247,7 @@ export {
241
247
  SubNavItem,
242
248
  Switch,
243
249
  Tab,
250
+ TabPanel,
244
251
  Table,
245
252
  TableWrap,
246
253
  Tabs,
@@ -11,6 +11,10 @@
11
11
  interface TreeLike<T> {
12
12
  id: string;
13
13
  children?: T[];
14
+ /** The display label — typeahead matches it only when it is a plain string (UIX-A11Y-2). */
15
+ label?: unknown;
16
+ /** Explicit typeahead text for nodes whose `label` is not a string (rich ReactNode labels). */
17
+ typeaheadLabel?: string;
14
18
  }
15
19
  interface FlatNode<T> {
16
20
  node: T;
@@ -40,6 +40,14 @@ function treeNav(flat, currentId, key) {
40
40
  case " ":
41
41
  return cur.hasChildren ? { toggleId: cur.node.id, selectId: cur.node.id } : { selectId: cur.node.id };
42
42
  default:
43
+ if (key.length === 1) {
44
+ const q = key.toLowerCase();
45
+ for (let step = 1; step <= flat.length; step++) {
46
+ const f = flat[(idx + step) % flat.length];
47
+ const label = f.node.typeaheadLabel ?? (typeof f.node.label === "string" ? f.node.label : void 0);
48
+ if (label != null && label.toLowerCase().startsWith(q)) return { focusId: f.node.id };
49
+ }
50
+ }
43
51
  return {};
44
52
  }
45
53
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tensor_1/react",
3
- "version": "2.15.0",
3
+ "version": "2.17.0",
4
4
  "description": "Thin React wrappers over the UIx v2 CSS component library.",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",
@@ -1,22 +0,0 @@
1
- import { CSSProperties, ReactNode } from 'react';
2
- import { EChartsOption, ECharts } from 'echarts';
3
-
4
- declare function uixChartPalette(): string[];
5
- interface ChartTableRow {
6
- [key: string]: string | number;
7
- }
8
- interface ChartProps {
9
- option: EChartsOption;
10
- title?: string;
11
- subtitle?: string;
12
- height?: string | number;
13
- className?: string;
14
- style?: CSSProperties;
15
- ariaLabel?: string;
16
- tableData?: ChartTableRow[];
17
- tableHeaders?: string[];
18
- onReady?: (chart: ECharts) => void;
19
- header?: ReactNode;
20
- }
21
-
22
- export { type ChartProps as C, type ChartTableRow as a, uixChartPalette as u };