@tensor_1/react 2.26.2 → 2.27.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 (68) hide show
  1. package/README.md +51 -0
  2. package/dist/calendar-model.d.ts +4 -2
  3. package/dist/components/AppShell.d.ts +1 -1
  4. package/dist/components/AppShell.js +6 -2
  5. package/dist/components/Button.d.ts +28 -4
  6. package/dist/components/Button.js +19 -9
  7. package/dist/components/Card.d.ts +7 -1
  8. package/dist/components/Card.js +3 -3
  9. package/dist/components/Chip.d.ts +43 -0
  10. package/dist/components/Chip.js +73 -0
  11. package/dist/components/CollapsibleSection.d.ts +19 -1
  12. package/dist/components/CollapsibleSection.js +5 -2
  13. package/dist/components/CollapsibleSectionState.d.ts +11 -0
  14. package/dist/components/CollapsibleSectionState.js +67 -0
  15. package/dist/components/CommandPalette.d.ts +1 -1
  16. package/dist/components/CommandPalette.js +4 -1
  17. package/dist/components/DateRangePicker.js +3 -1
  18. package/dist/components/Dialogs.d.ts +54 -3
  19. package/dist/components/Dialogs.js +167 -6
  20. package/dist/components/Drawer.d.ts +6 -1
  21. package/dist/components/Drawer.js +5 -2
  22. package/dist/components/EmojiPicker.d.ts +3 -0
  23. package/dist/components/EmojiPicker.js +109 -54
  24. package/dist/components/Kbd.d.ts +27 -0
  25. package/dist/components/Kbd.js +45 -0
  26. package/dist/components/Menu.d.ts +51 -0
  27. package/dist/components/Menu.js +177 -0
  28. package/dist/components/Modal.d.ts +1 -1
  29. package/dist/components/Modal.js +4 -1
  30. package/dist/components/Pagination.d.ts +36 -5
  31. package/dist/components/Pagination.js +59 -37
  32. package/dist/components/Peek.d.ts +1 -1
  33. package/dist/components/Peek.js +6 -1
  34. package/dist/components/Popover.d.ts +15 -5
  35. package/dist/components/Popover.js +66 -6
  36. package/dist/components/SchedulingCalendar.d.ts +47 -2
  37. package/dist/components/SchedulingCalendar.js +69 -22
  38. package/dist/components/SearchSuggest.d.ts +1 -1
  39. package/dist/components/SearchSuggest.js +4 -1
  40. package/dist/components/Sidebar.d.ts +7 -2
  41. package/dist/components/Sidebar.js +15 -4
  42. package/dist/components/Stat.d.ts +16 -0
  43. package/dist/components/Stat.js +12 -5
  44. package/dist/components/Steps.d.ts +48 -0
  45. package/dist/components/Steps.js +42 -0
  46. package/dist/components/Toast.d.ts +2 -2
  47. package/dist/components/Toast.js +7 -2
  48. package/dist/components/Tooltip.d.ts +10 -4
  49. package/dist/components/Tooltip.js +2 -2
  50. package/dist/{emoji-image-WQLh8ZQP.d.cts → emoji-image-6mPZ15Zy.d.cts} +4 -1
  51. package/dist/emoji.cjs +326 -76
  52. package/dist/emoji.d.cts +3 -3
  53. package/dist/hooks/useAnchoredPosition.d.ts +13 -5
  54. package/dist/hooks/useAnchoredPosition.js +146 -15
  55. package/dist/index.cjs +2278 -1372
  56. package/dist/index.d.cts +622 -176
  57. package/dist/index.d.ts +10 -4
  58. package/dist/index.js +24 -2
  59. package/dist/labels-context.d.ts +72 -0
  60. package/dist/labels-context.js +23 -0
  61. package/dist/link.d.ts +20 -0
  62. package/dist/link.js +9 -0
  63. package/dist/{overlay-position-CEGSz6Z2.d.cts → overlay-position-Cjv5E7mn.d.cts} +7 -0
  64. package/dist/overlay-position.d.ts +7 -0
  65. package/dist/overlay-position.js +7 -2
  66. package/dist/rich-text.cjs +324 -74
  67. package/dist/rich-text.d.cts +3 -3
  68. package/package.json +1 -1
package/dist/index.d.cts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as react from 'react';
2
- import { RefObject, ButtonHTMLAttributes, ReactNode, InputHTMLAttributes, AriaAttributes, HTMLAttributes, Ref, TextareaHTMLAttributes, SelectHTMLAttributes, AnchorHTMLAttributes, MouseEvent, DetailsHTMLAttributes, TdHTMLAttributes, TableHTMLAttributes, ThHTMLAttributes } from 'react';
3
- import { P as Placement } from './overlay-position-CEGSz6Z2.cjs';
4
- export { A as Align, a as PositionOptions, b as PositionResult, R as Rect, S as Side, c as Size, d as computePosition } from './overlay-position-CEGSz6Z2.cjs';
2
+ import { RefObject, AnchorHTMLAttributes, ReactNode, ButtonHTMLAttributes, HTMLAttributes, InputHTMLAttributes, AriaAttributes, Ref, TextareaHTMLAttributes, SelectHTMLAttributes, MouseEvent, DetailsHTMLAttributes, TdHTMLAttributes, TableHTMLAttributes, ThHTMLAttributes, LiHTMLAttributes, ReactElement } from 'react';
3
+ import { P as Placement } from './overlay-position-Cjv5E7mn.cjs';
4
+ export { A as Align, a as PositionOptions, b as PositionResult, R as Rect, S as Side, c as Size, d as computePosition } from './overlay-position-Cjv5E7mn.cjs';
5
5
 
6
6
  declare function cx(...args: (string | false | null | undefined | 0)[]): string;
7
7
 
@@ -182,27 +182,353 @@ interface UseAnchoredPositionOptions {
182
182
  * Position a floating element (a native-popover overlay) against an anchor with
183
183
  * cross-browser flip/shift — the DOM half of the overlay-position engine (UIX-FIX-02).
184
184
  *
185
- * Measures both elements with getBoundingClientRect, applies `position: fixed` + left/top
186
- * (overriding the popover's default centered `inset:0; margin:auto`), and keeps the overlay
187
- * glued to its anchor on scroll/resize while `open`. Returns a `reposition` fn for callers
188
- * that want to nudge it manually (e.g. right when a native popover's `toggle` fires).
185
+ * The engine decides the side, alignment and viewport clamp from getBoundingClientRect.
186
+ * Where the browser supports CSS anchor positioning, that result is written as an offset
187
+ * from the anchor (`position-anchor` + `anchor()`), so the browser keeps the overlay glued
188
+ * to its anchor while the page scrolls, with no frame of lag; elsewhere it is written as
189
+ * `position: fixed` + left/top and follows scroll/resize from JS. While `open`, the side
190
+ * chosen at open is kept until it no longer fits and the other side does, scrolls inside
191
+ * the overlay itself are ignored, and a size change of either element re-places it.
192
+ * Returns a `reposition` fn for callers that want to nudge it manually (e.g. right when a
193
+ * native popover's `toggle` fires).
189
194
  */
190
195
  declare function useAnchoredPosition(anchor: RefObject<HTMLElement | null> | HTMLElement | null | undefined, floatingRef: RefObject<HTMLElement | null>, { open, placement, offset, padding }: UseAnchoredPositionOptions): () => void;
191
196
 
197
+ /**
198
+ * What a `renderLink` callback receives (HAR-1348). Spread it onto your router's link
199
+ * so it keeps client navigation and prefetch: `renderLink={(p) => <NextLink {...p} />}`.
200
+ * Every UIx component that can render a link (`ButtonLink`, `Stat href`, `Pagination
201
+ * hrefFor`, `DetailPage`) takes the same callback, so one adapter serves them all.
202
+ */
203
+ interface UixLinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
204
+ href: string;
205
+ className?: string;
206
+ children?: ReactNode;
207
+ }
208
+ /** Renders a link with the consumer's router. Default: a plain `<a>`. */
209
+ type UixRenderLink = (props: UixLinkProps) => ReactNode;
210
+ declare const renderPlainLink: UixRenderLink;
211
+
212
+ type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost' | 'danger' | 'link';
213
+ /** `xs` is 24 px: the smallest hit area WCAG 2.5.8 allows, for dense tool rows (HAR-1348). */
214
+ type ButtonSize = 'xs' | 'sm' | 'md' | 'lg';
192
215
  interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
193
- variant?: 'primary' | 'secondary' | 'outline' | 'ghost' | 'danger' | 'link';
194
- size?: 'sm' | 'md' | 'lg';
216
+ variant?: ButtonVariant;
217
+ size?: ButtonSize;
195
218
  icon?: boolean;
196
219
  loading?: boolean;
197
220
  children?: ReactNode;
198
221
  }
199
222
  declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAttributes<HTMLButtonElement>>;
223
+ interface ButtonLinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
224
+ href: string;
225
+ variant?: ButtonVariant;
226
+ size?: ButtonSize;
227
+ /** Icon-only link: square, and needs `aria-label`. */
228
+ icon?: boolean;
229
+ /**
230
+ * Renders the link without `href`, with `aria-disabled="true"`, so it is announced
231
+ * as an unavailable link and cannot be followed or focused.
232
+ */
233
+ disabled?: boolean;
234
+ /** Your router's link (`(p) => <NextLink {...p} />`); default a plain `<a>`. */
235
+ renderLink?: UixRenderLink;
236
+ children?: ReactNode;
237
+ }
238
+ /**
239
+ * A link that looks like a `Button` (HAR-1348; TENSOR A4/B5, MOTUS C-3). Use it when the
240
+ * action navigates; use `Button` when it acts in place.
241
+ */
242
+ declare function ButtonLink({ href, variant, size, icon, disabled, renderLink, className, children, onClick, ...props }: ButtonLinkProps): react.JSX.Element;
200
243
  interface ButtonGroupProps {
201
244
  children?: ReactNode;
202
245
  className?: string;
203
246
  }
204
247
  declare function ButtonGroup({ children, className }: ButtonGroupProps): react.JSX.Element;
205
248
 
249
+ /** TENSOR RX-125 (UIX-04): the pager's accessible names. */
250
+ interface PaginationLabels {
251
+ region: string;
252
+ previous: string;
253
+ next: string;
254
+ /** Cursor mode's "back to the start" control (HAR-1357). */
255
+ first: string;
256
+ }
257
+ declare const DEFAULT_PAGINATION_LABELS: PaginationLabels;
258
+ interface PaginationProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
259
+ /**
260
+ * `offset` (default): numbered pages, needs `page` and `pageCount`.
261
+ * `cursor` (HAR-1357; MOTUS B-A22): keyset paging with no total — First, Previous, an
262
+ * optional `summary` ("21–40") and Next.
263
+ */
264
+ mode?: 'offset' | 'cursor';
265
+ /** Offset mode: the current page, from 1. */
266
+ page?: number;
267
+ /** Offset mode: the number of pages. */
268
+ pageCount?: number;
269
+ /** Offset mode, button pager: called with the page to show. */
270
+ onChange?: (page: number) => void;
271
+ /**
272
+ * Offset mode, link pager (HAR-1357; MOTUS B-P5): every page is a real link, so a
273
+ * server-rendered list pages without JavaScript. Wins over `onChange`.
274
+ */
275
+ hrefFor?: (page: number) => string;
276
+ /** Your router's link for `hrefFor` and the cursor hrefs; default a plain `<a>`. */
277
+ renderLink?: UixRenderLink;
278
+ /** Cursor mode: whether an earlier page exists (enables First and Previous). */
279
+ hasPrevious?: boolean;
280
+ /** Cursor mode: whether a later page exists. */
281
+ hasNext?: boolean;
282
+ onFirst?: () => void;
283
+ onPrevious?: () => void;
284
+ onNext?: () => void;
285
+ firstHref?: string;
286
+ previousHref?: string;
287
+ nextHref?: string;
288
+ /** Cursor mode: text between the controls, e.g. "21–40". */
289
+ summary?: ReactNode;
290
+ labels?: Partial<PaginationLabels>;
291
+ }
292
+ declare function Pagination({ mode, page, pageCount, onChange, hrefFor, renderLink, hasPrevious, hasNext, onFirst, onPrevious, onNext, firstHref, previousHref, nextHref, summary, labels: labelOverrides, className, ...props }: PaginationProps): react.JSX.Element;
293
+
294
+ interface CalendarDay {
295
+ date: string;
296
+ day: number;
297
+ inMonth: boolean;
298
+ weekday: number;
299
+ }
300
+ interface DateRangeValue {
301
+ start?: string;
302
+ end?: string;
303
+ }
304
+ interface ZonedDateSpan {
305
+ start: string;
306
+ end: string;
307
+ }
308
+ declare function toDateKey(date: Date): string;
309
+ declare function addCalendarDays(value: string, amount: number): string;
310
+ declare function addCalendarMonths(value: string, amount: number): string;
311
+ declare function startOfMonth(value: string): string;
312
+ /** A weekday in `Date.getUTCDay()` numbering: 0 = Sunday … 6 = Saturday. */
313
+ type CalendarWeekday = 0 | 1 | 2 | 3 | 4 | 5 | 6;
314
+ declare function buildMonthGrid(month: string, weekStartsOn?: CalendarWeekday): CalendarDay[];
315
+ declare function zonedDateKey(instant: string | Date, timeZone: string): string;
316
+ declare function zonedDateSpan(start: string, end: string, timeZone: string): ZonedDateSpan;
317
+ declare function enumerateDateSpan(span: ZonedDateSpan, limit?: number): string[];
318
+ declare function selectRangeDate(current: DateRangeValue, date: string): DateRangeValue;
319
+ declare function isDateInRange(date: string, value: DateRangeValue): boolean;
320
+ declare function isDateUnavailable(date: string, options: {
321
+ min?: string;
322
+ max?: string;
323
+ isDisabled?: (date: string) => boolean;
324
+ }): boolean;
325
+
326
+ type SchedulingCalendarView = 'month' | 'week' | 'agenda';
327
+ type SchedulingEntryState = 'scheduled' | 'conflicted' | 'in-progress' | 'blackout-violation';
328
+ type SchedulingOverlayKind = 'maintenance' | 'blackout';
329
+ /**
330
+ * Which date text a `formatDate` call is for (TENSOR B1/C9, HAR-1347):
331
+ * `day` names one day (each day cell's accessible name, the week-range title);
332
+ * `weekday` is the short column header (the date is any day of that weekday);
333
+ * `month` is the month-view title (the date is the first of the month).
334
+ */
335
+ type SchedulingDatePart = 'day' | 'weekday' | 'month';
336
+ interface SchedulingCalendarEntry {
337
+ id: string;
338
+ title: string;
339
+ start: string;
340
+ end: string;
341
+ state?: SchedulingEntryState;
342
+ meta?: string;
343
+ }
344
+ interface SchedulingCalendarOverlay {
345
+ id: string;
346
+ label: string;
347
+ start: string;
348
+ end: string;
349
+ kind: SchedulingOverlayKind;
350
+ }
351
+ /**
352
+ * Every word the calendar renders (TENSOR RX-125, UIX-12). `{timeZone}`, `{view}`,
353
+ * `{title}`, `{state}`, `{start}`, `{end}` are placeholders.
354
+ */
355
+ interface SchedulingCalendarLabels {
356
+ region: string;
357
+ previous: string;
358
+ next: string;
359
+ viewGroup: string;
360
+ viewMonth: string;
361
+ viewWeek: string;
362
+ viewAgenda: string;
363
+ loading: string;
364
+ retry: string;
365
+ agenda: string;
366
+ agendaEmpty: string;
367
+ grid: string;
368
+ entry: string;
369
+ legend: string;
370
+ /** The "+N more" toggle on a day with more entries than `maxEntriesPerDay`. `{count}` placeholder. */
371
+ moreEntries: string;
372
+ /** Accessible name of that toggle. `{count}` and `{date}` placeholders. */
373
+ moreEntriesLabel: string;
374
+ /** The toggle once the day is expanded in place. */
375
+ fewerEntries: string;
376
+ states: Record<SchedulingEntryState, string>;
377
+ }
378
+ declare const DEFAULT_SCHEDULING_CALENDAR_LABELS: SchedulingCalendarLabels;
379
+ interface SchedulingCalendarProps {
380
+ entries: SchedulingCalendarEntry[];
381
+ anchorDate: string;
382
+ timeZone: string;
383
+ view?: SchedulingCalendarView;
384
+ onViewChange?: (view: SchedulingCalendarView) => void;
385
+ onAnchorDateChange?: (date: string) => void;
386
+ onSelectEntry?: (entry: SchedulingCalendarEntry) => void;
387
+ overlays?: SchedulingCalendarOverlay[];
388
+ filter?: (entry: SchedulingCalendarEntry) => boolean;
389
+ renderEntry?: (entry: SchedulingCalendarEntry) => ReactNode;
390
+ locale?: string;
391
+ /** First column of the month and week grids: 0 = Sunday … 6 = Saturday. Defaults to 1 (Monday). */
392
+ weekStartsOn?: CalendarWeekday;
393
+ /**
394
+ * Formats every calendar date the component writes (`date` is `YYYY-MM-DD`). Use it to
395
+ * apply a product date format such as DD.MM.YYYY; defaults to `Intl` in `locale`.
396
+ */
397
+ formatDate?: (date: string, part: SchedulingDatePart) => string;
398
+ /**
399
+ * Formats an entry's start or end instant (ISO 8601) for the agenda and the entry names.
400
+ * The component does not shift it: render it in `timeZone` yourself. Defaults to `Intl`
401
+ * medium date + short time in `timeZone`.
402
+ */
403
+ formatInstant?: (instant: string) => string;
404
+ /**
405
+ * Show at most this many entries in a month or week day; the rest collapse behind a
406
+ * "+N more" toggle. Unset shows every entry.
407
+ */
408
+ maxEntriesPerDay?: number;
409
+ /**
410
+ * Called by the "+N more" toggle with the day and every entry on it. When set, the
411
+ * consumer shows them (a popover, a drawer, the day view) and the day stays collapsed;
412
+ * otherwise the day expands in place.
413
+ */
414
+ onShowMore?: (date: string, entries: SchedulingCalendarEntry[]) => void;
415
+ /**
416
+ * A small badge beside a day's date, e.g. a collision count. Keep it short (a number or a
417
+ * glyph): it shares a narrow column with the date and is clipped, not wrapped. It sits
418
+ * outside the date button, so give it its own accessible text (a visually hidden word next
419
+ * to the number). Return null for no badge.
420
+ */
421
+ renderDayBadge?: (date: string, entries: SchedulingCalendarEntry[]) => ReactNode;
422
+ loading?: boolean;
423
+ error?: string;
424
+ onRetry?: () => void;
425
+ className?: string;
426
+ labels?: Partial<SchedulingCalendarLabels>;
427
+ }
428
+ /** Month/week/agenda calendar for UTC ranges rendered in an explicit IANA time zone. */
429
+ declare function SchedulingCalendar({ entries, anchorDate, timeZone, view: controlledView, onViewChange, onAnchorDateChange, onSelectEntry, overlays, filter, renderEntry, locale, weekStartsOn, formatDate, formatInstant: formatInstantProp, maxEntriesPerDay, onShowMore, renderDayBadge, loading, error, onRetry, className, labels: labelOverrides, }: SchedulingCalendarProps): react.JSX.Element;
430
+
431
+ /**
432
+ * Every word the picker renders or announces (TENSOR RX-125, UIX-13). `{start}` and
433
+ * `{end}` are replaced with the locale-formatted dates.
434
+ */
435
+ interface DateRangePickerLabels {
436
+ previous: string;
437
+ previousMonth: string;
438
+ next: string;
439
+ nextMonth: string;
440
+ noneSelected: string;
441
+ startSelected: string;
442
+ rangeSelected: string;
443
+ rangeStart: string;
444
+ rangeEnd: string;
445
+ inRange: string;
446
+ }
447
+ declare const DEFAULT_DATE_RANGE_PICKER_LABELS: DateRangePickerLabels;
448
+ interface DateRangePickerProps {
449
+ value: DateRangeValue;
450
+ onChange: (value: DateRangeValue) => void;
451
+ visibleMonth?: string;
452
+ onVisibleMonthChange?: (month: string) => void;
453
+ months?: number;
454
+ min?: string;
455
+ max?: string;
456
+ isDateDisabled?: (date: string) => boolean;
457
+ locale?: string;
458
+ label?: string;
459
+ invalid?: boolean;
460
+ invalidMessage?: string;
461
+ disabled?: boolean;
462
+ className?: string;
463
+ /** Translatable words; English defaults in {@link DEFAULT_DATE_RANGE_PICKER_LABELS}. */
464
+ labels?: Partial<DateRangePickerLabels>;
465
+ }
466
+ /** Controlled, two-month range picker using the UIx calendar language. */
467
+ declare function DateRangePicker({ value, onChange, visibleMonth: controlledMonth, onVisibleMonthChange, months, min, max, isDateDisabled, locale, label, invalid, invalidMessage, disabled, className, labels: labelOverrides, }: DateRangePickerProps): react.JSX.Element;
468
+
469
+ /**
470
+ * Kit chrome strings by component (HAR-1358; TENSOR C20, MOTUS executive summary #3).
471
+ * Each entry overrides that component's English defaults for every instance below the
472
+ * provider; an explicit prop on one instance still wins.
473
+ *
474
+ * Client components read the provider. Server-renderable ones (`Pagination`, `BulkBar`)
475
+ * cannot read context: pass `labels` from `useUixLabels()` in a client parent, or translate
476
+ * on the server.
477
+ */
478
+ interface UixLabels {
479
+ modal?: {
480
+ close?: string;
481
+ };
482
+ drawer?: {
483
+ close?: string;
484
+ };
485
+ peek?: {
486
+ previous?: string;
487
+ next?: string;
488
+ close?: string;
489
+ };
490
+ toast?: {
491
+ dismiss?: string;
492
+ };
493
+ toaster?: {
494
+ region?: string;
495
+ };
496
+ appShell?: {
497
+ skipToContent?: string;
498
+ exitFocus?: string;
499
+ };
500
+ sidebar?: {
501
+ expand?: string;
502
+ collapse?: string;
503
+ };
504
+ searchSuggest?: {
505
+ clear?: string;
506
+ };
507
+ commandPalette?: {
508
+ input?: string;
509
+ };
510
+ confirmDialog?: {
511
+ typeToConfirm?: string;
512
+ compensation?: string;
513
+ };
514
+ schedulingCalendar?: Partial<SchedulingCalendarLabels>;
515
+ dateRangePicker?: Partial<DateRangePickerLabels>;
516
+ /** Read by `useUixLabels()` callers; `Pagination` itself is server-safe and takes `labels`. */
517
+ pagination?: Partial<PaginationLabels>;
518
+ /** Read by `useUixLabels()` callers; `BulkBar` itself is server-safe and takes `label`. */
519
+ bulkBar?: {
520
+ region?: string;
521
+ };
522
+ }
523
+ interface UixLabelsProviderProps {
524
+ labels: UixLabels;
525
+ children?: ReactNode;
526
+ }
527
+ /** Translates kit chrome once for a subtree. Nested providers merge per component. */
528
+ declare function UixLabelsProvider({ labels, children }: UixLabelsProviderProps): react.JSX.Element;
529
+ /** The chrome strings in effect here (empty outside a provider). */
530
+ declare function useUixLabels(): UixLabels;
531
+
206
532
  interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {
207
533
  size?: 'sm' | 'md';
208
534
  invalid?: boolean;
@@ -331,7 +657,7 @@ interface SearchSuggestProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onCha
331
657
  * (`aria-activedescendant`), Enter opens it (the first row when none is active), Escape closes the
332
658
  * list and a second Escape clears the text.
333
659
  */
334
- declare function SearchSuggest({ value, onValueChange, options, onSelect, label, placeholder, highlight, heading, headingAction, footer, loading, loadingLabel, empty, error, shortcutHint, clearLabel, status, size, open: openProp, strategy, onOpenChange, inputRef, autoFocus, name, className, onBlur, ...props }: SearchSuggestProps): react.JSX.Element;
660
+ declare function SearchSuggest({ value, onValueChange, options, onSelect, label, placeholder, highlight, heading, headingAction, footer, loading, loadingLabel, empty, error, shortcutHint, clearLabel: clearLabelProp, status, size, open: openProp, strategy, onOpenChange, inputRef, autoFocus, name, className, onBlur, ...props }: SearchSuggestProps): react.JSX.Element;
335
661
 
336
662
  /** One run of a result's text, emphasised or not. */
337
663
  interface SearchSegment {
@@ -415,7 +741,7 @@ interface ModalProps extends Omit<HTMLAttributes<HTMLDialogElement>, 'title'> {
415
741
  closeLabel?: string;
416
742
  role?: 'dialog' | 'alertdialog';
417
743
  }
418
- declare function Modal({ open, onClose, title, children, footer, className, closeLabel, role, ...rest }: ModalProps): react.JSX.Element;
744
+ declare function Modal({ open, onClose, title, children, footer, className, closeLabel: closeLabelProp, role, ...rest }: ModalProps): react.JSX.Element;
419
745
 
420
746
  interface ConfirmDialogProps {
421
747
  open: boolean;
@@ -428,9 +754,59 @@ interface ConfirmDialogProps {
428
754
  onCancel: () => void;
429
755
  pending?: boolean;
430
756
  destructive?: boolean;
757
+ /**
758
+ * Body below the description: consequences, a `<dl>` of what changes (HAR-1356; MOTUS B-A4).
759
+ * The description, body and compensation are the dialog's `aria-describedby`.
760
+ */
761
+ children?: ReactNode;
762
+ /** Why the last confirm failed. Shown in the dialog (`role="alert"`); the dialog stays open. */
763
+ error?: ReactNode;
764
+ /**
765
+ * Which button has focus when the dialog opens. Default: the type-to-confirm field when
766
+ * there is one, else Cancel for a `destructive` dialog, else the browser's first control.
767
+ */
768
+ initialFocus?: 'cancel' | 'confirm';
769
+ /** A third action at the start of the footer, e.g. "Save and leave" (MOTUS C-5). */
770
+ tertiaryLabel?: ReactNode;
771
+ onTertiary?: () => void | Promise<void>;
772
+ /**
773
+ * High-risk confirmation (TENSOR C2): Confirm stays disabled until the user types exactly
774
+ * this text, e.g. the record's name.
775
+ */
776
+ typeToConfirm?: string;
777
+ /** Label of the type-to-confirm field. `{value}` is replaced by `typeToConfirm`. */
778
+ typeToConfirmLabel?: string;
779
+ /** How the action is undone or compensated, shown as its own labelled block (TENSOR C2). */
780
+ compensation?: ReactNode;
781
+ /** Heading of the compensation block. Default "How to undo this". */
782
+ compensationLabel?: string;
431
783
  }
432
784
  /** Generic confirmation shell. Audit, authorization and compensation policy remain application-owned. */
433
- declare function ConfirmDialog({ open, title, description, confirmLabel, cancelLabel, closeLabel, onConfirm, onCancel, pending, destructive }: ConfirmDialogProps): react.JSX.Element;
785
+ declare function ConfirmDialog({ open, title, description, confirmLabel, cancelLabel, closeLabel, onConfirm, onCancel, pending, destructive, children, error, initialFocus, tertiaryLabel, onTertiary, typeToConfirm, typeToConfirmLabel: typeToConfirmLabelProp, compensation, compensationLabel: compensationLabelProp, }: ConfirmDialogProps): react.JSX.Element;
786
+ interface PopconfirmProps {
787
+ open: boolean;
788
+ /** The control that asked for confirmation; the step is placed against it and focus returns to it. */
789
+ anchor: RefObject<HTMLElement | null> | HTMLElement | null;
790
+ title: ReactNode;
791
+ description?: ReactNode;
792
+ confirmLabel: ReactNode;
793
+ cancelLabel: ReactNode;
794
+ onConfirm: () => void | Promise<void>;
795
+ /** Cancel, Escape and a press outside all call this. */
796
+ onCancel: () => void;
797
+ pending?: boolean;
798
+ destructive?: boolean;
799
+ /** How the action is undone, under its own heading (TENSOR C2 "single_click" tier). */
800
+ compensation?: ReactNode;
801
+ compensationLabel?: string;
802
+ placement?: Placement;
803
+ }
804
+ /**
805
+ * An anchored, single-step confirmation for low-risk actions (HAR-1356; TENSOR C2): a small
806
+ * `role="dialog"` on the kit `Popover`, focus on Cancel, Escape or a press outside cancels,
807
+ * and focus returns to the anchor. Use `ConfirmDialog` when the action is hard to undo.
808
+ */
809
+ declare function Popconfirm({ open, anchor, title, description, confirmLabel, cancelLabel, onConfirm, onCancel, pending, destructive, compensation, compensationLabel: compensationLabelProp, placement, }: PopconfirmProps): react.JSX.Element;
434
810
  interface PromptDialogProps {
435
811
  open: boolean;
436
812
  title: ReactNode;
@@ -459,11 +835,16 @@ interface DrawerProps extends Omit<HTMLAttributes<HTMLDialogElement>, 'title'> {
459
835
  * can't discard it; Escape and the close button still close. Default `true`.
460
836
  */
461
837
  dismissOnBackdrop?: boolean;
838
+ /**
839
+ * Edge the drawer slides from (HAR-1351). `end` (default) is the side sheet; `start` is
840
+ * the phone navigation drawer; `bottom` is a bottom sheet capped at 85% of the viewport.
841
+ */
842
+ side?: 'end' | 'start' | 'bottom';
462
843
  title?: ReactNode;
463
844
  children?: ReactNode;
464
845
  footer?: ReactNode;
465
846
  }
466
- declare function Drawer({ open, onClose, dismissOnBackdrop, title, children, footer, closeLabel, className, onClick, ...rest }: DrawerProps): react.JSX.Element;
847
+ declare function Drawer({ open, onClose, dismissOnBackdrop, side, title, children, footer, closeLabel: closeLabelProp, className, onClick, ...rest }: DrawerProps): react.JSX.Element;
467
848
 
468
849
  interface PeekProps extends Omit<HTMLAttributes<HTMLDialogElement>, 'title'> {
469
850
  /** TENSOR RX-125 (UIX-04): translatable; English default. */
@@ -481,12 +862,18 @@ interface PeekProps extends Omit<HTMLAttributes<HTMLDialogElement>, 'title'> {
481
862
  onNavNext?: () => void;
482
863
  hint?: string;
483
864
  }
484
- declare function Peek({ open, onClose, title, children, footer, onNavPrev, onNavNext, hint, previousLabel, nextLabel, closeLabel, className, onClick, ...rest }: PeekProps): react.JSX.Element;
865
+ declare function Peek({ open, onClose, title, children, footer, onNavPrev, onNavNext, hint, previousLabel: previousLabelProp, nextLabel: nextLabelProp, closeLabel: closeLabelProp, className, onClick, ...rest }: PeekProps): react.JSX.Element;
485
866
 
486
867
  interface CardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
487
868
  title?: ReactNode;
488
869
  /** Element for the title — pick a real heading to slot the card into the page outline (UIX-A11Y-4). Default `div` keeps legacy rendering. */
489
870
  titleAs?: 'h2' | 'h3' | 'h4' | 'div';
871
+ /**
872
+ * Id of the title element (HAR-1354; MOTUS B-A5), so a form, table or region elsewhere
873
+ * can point `aria-labelledby` at it. With a `role` (e.g. `role="region"`), the card is
874
+ * labelled by its title too; a plain card has no role, and ARIA forbids naming it.
875
+ */
876
+ titleId?: string;
490
877
  subtitle?: ReactNode;
491
878
  /**
492
879
  * Plain-text help behind a ? button after the title. Blank lines separate paragraphs;
@@ -499,7 +886,7 @@ interface CardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
499
886
  footer?: ReactNode;
500
887
  children?: ReactNode;
501
888
  }
502
- declare function Card({ title, titleAs: TitleTag, subtitle, help, helpLabel, headerAction, footer, children, className, ...props }: CardProps): react.JSX.Element;
889
+ declare function Card({ title, titleAs: TitleTag, titleId, subtitle, help, helpLabel, headerAction, footer, children, className, ...props }: CardProps): react.JSX.Element;
503
890
  interface CardLinkProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'title'> {
504
891
  title?: ReactNode;
505
892
  subtitle?: ReactNode;
@@ -633,8 +1020,26 @@ interface CollapsibleSectionProps extends Omit<DetailsHTMLAttributes<HTMLDetails
633
1020
  title: ReactNode;
634
1021
  summary?: ReactNode;
635
1022
  children?: ReactNode;
1023
+ /**
1024
+ * Mount the body only while it is needed (HAR-1352; TENSOR B32): `true` mounts it while
1025
+ * open and unmounts it on close; `'keep'` mounts it on first open and keeps it. For
1026
+ * bodies that fetch or chart. Default: always mounted (and server-renderable).
1027
+ */
1028
+ lazy?: boolean | 'keep';
1029
+ /**
1030
+ * Remember the open state for the session under this key (`sessionStorage`,
1031
+ * `uix:collapsible:<key>`). Applied after mount, so the server HTML uses `open`.
1032
+ */
1033
+ persistKey?: string;
1034
+ /** Each new value opens the section and scrolls it into view ("jump to SLA"). */
1035
+ openRequest?: number;
636
1036
  }
637
- declare function CollapsibleSection({ title, summary, children, className, ...props }: CollapsibleSectionProps): react.JSX.Element;
1037
+ /**
1038
+ * A `<details>` disclosure. Without `lazy`, `persistKey` or `openRequest` it is a plain,
1039
+ * server-renderable element that toggles without JavaScript; with any of them it becomes
1040
+ * a client component that tracks its open state.
1041
+ */
1042
+ declare function CollapsibleSection(props: CollapsibleSectionProps): react.JSX.Element;
638
1043
 
639
1044
  interface ListProps extends HTMLAttributes<HTMLDivElement> {
640
1045
  children?: ReactNode;
@@ -768,7 +1173,7 @@ interface AppShellProps extends HTMLAttributes<HTMLDivElement> {
768
1173
  /** TENSOR RX-125 (UIX-04): translatable; English default. */
769
1174
  exitFocusLabel?: ReactNode;
770
1175
  }
771
- declare function AppShell({ nav, collapsed, focus, onExitFocus, mainBleed, mainId, sidebar, topbar, children, skipToContentLabel, exitFocusLabel, className, ...props }: AppShellProps): react.JSX.Element;
1176
+ declare function AppShell({ nav, collapsed, focus, onExitFocus, mainBleed, mainId, sidebar, topbar, children, skipToContentLabel: skipToContentLabelProp, exitFocusLabel: exitFocusLabelProp, className, ...props }: AppShellProps): react.JSX.Element;
772
1177
 
773
1178
  interface SidebarProps extends HTMLAttributes<HTMLElement> {
774
1179
  collapsed?: boolean;
@@ -780,7 +1185,7 @@ interface SidebarProps extends HTMLAttributes<HTMLElement> {
780
1185
  expandLabel?: string;
781
1186
  collapseLabel?: string;
782
1187
  }
783
- declare function Sidebar({ collapsed, nav, onToggle, brand, toggleIcon, children, expandLabel, collapseLabel, className, ...props }: SidebarProps): react.JSX.Element;
1188
+ declare function Sidebar({ collapsed, nav, onToggle, brand, toggleIcon, children, expandLabel: expandLabelProp, collapseLabel: collapseLabelProp, className, ...props }: SidebarProps): react.JSX.Element;
784
1189
  interface SidebarSectionProps {
785
1190
  label?: string;
786
1191
  children?: ReactNode;
@@ -791,9 +1196,14 @@ interface NavItemProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
791
1196
  badge?: ReactNode;
792
1197
  active?: boolean;
793
1198
  as?: 'a' | 'button';
1199
+ /**
1200
+ * A second line under the label (a sub-label, a count, a long German term); it wraps,
1201
+ * and the row grows to fit (HAR-1355; TENSOR B31). Hidden in the rail.
1202
+ */
1203
+ description?: ReactNode;
794
1204
  children?: ReactNode;
795
1205
  }
796
- declare function NavItem({ icon, badge, active, as: Tag, children, className, ...props }: NavItemProps): react.JSX.Element;
1206
+ declare function NavItem({ icon, badge, active, as: Tag, description, children, className, ...props }: NavItemProps): react.JSX.Element;
797
1207
  interface NavGroupProps {
798
1208
  icon?: ReactNode;
799
1209
  label: ReactNode;
@@ -945,13 +1355,13 @@ interface ToastProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
945
1355
  onClose?: () => void;
946
1356
  leaving?: boolean;
947
1357
  }
948
- declare function Toast({ title, message, tone, icon, onClose, leaving, dismissLabel, className, ...props }: ToastProps): react.JSX.Element;
1358
+ declare function Toast({ title, message, tone, icon, onClose, leaving, dismissLabel: dismissLabelProp, className, ...props }: ToastProps): react.JSX.Element;
949
1359
  interface ToasterProps extends HTMLAttributes<HTMLDivElement> {
950
1360
  /** TENSOR RX-125 (UIX-04): translatable; English default. */
951
1361
  regionLabel?: string;
952
1362
  children?: ReactNode;
953
1363
  }
954
- declare function Toaster({ children, regionLabel, className, ...props }: ToasterProps): react.JSX.Element;
1364
+ declare function Toaster({ children, regionLabel: regionLabelProp, className, ...props }: ToasterProps): react.JSX.Element;
955
1365
 
956
1366
  interface TableWrapProps extends HTMLAttributes<HTMLDivElement> {
957
1367
  /**
@@ -1039,21 +1449,6 @@ interface HighlightedProps {
1039
1449
  /** Render `text` with case-insensitive matches of `query` wrapped in <mark>. */
1040
1450
  declare function Highlighted({ text, query }: HighlightedProps): react.JSX.Element;
1041
1451
 
1042
- /** TENSOR RX-125 (UIX-04): the pager's accessible names. */
1043
- interface PaginationLabels {
1044
- region: string;
1045
- previous: string;
1046
- next: string;
1047
- }
1048
- declare const DEFAULT_PAGINATION_LABELS: PaginationLabels;
1049
- interface PaginationProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
1050
- page: number;
1051
- pageCount: number;
1052
- onChange: (page: number) => void;
1053
- labels?: Partial<PaginationLabels>;
1054
- }
1055
- declare function Pagination({ page, pageCount, onChange, labels: labelOverrides, className, ...props }: PaginationProps): react.JSX.Element;
1056
-
1057
1452
  type PillTone = 'neutral' | 'success' | 'info' | 'warning' | 'danger' | 'critical' | 'muted' | 'attention' | 'overdue' | 'sla-ok' | 'sla-at-risk' | 'sla-breached' | 'p1' | 'p2' | 'p3' | 'p4' | 'p5';
1058
1453
  type PillTreatment = 'filled' | 'outline';
1059
1454
  interface StatusPillProps extends HTMLAttributes<HTMLSpanElement> {
@@ -1123,6 +1518,21 @@ interface StatProps extends HTMLAttributes<HTMLElement> {
1123
1518
  };
1124
1519
  /** Whether the editor this tile opens is currently open (`aria-expanded`). */
1125
1520
  expanded?: boolean;
1521
+ /**
1522
+ * What `onActivate` opens, for `aria-haspopup` (HAR-1350; TENSOR B6). Default `'dialog'`;
1523
+ * `'menu'` for a status menu; `false` for an in-place action (no chevron either).
1524
+ */
1525
+ haspopup?: 'dialog' | 'menu' | 'listbox' | false;
1526
+ /**
1527
+ * Makes the whole tile a link (HAR-1350; TENSOR B7, MOTUS B-A7). Server-renderable, unlike
1528
+ * `onActivate`. Ignored when `onActivate` is set. The forwarded ref reaches the `<a>` only
1529
+ * without `renderLink`.
1530
+ */
1531
+ href?: string;
1532
+ /** The link tile is the current page (`aria-current="page"`). */
1533
+ current?: boolean;
1534
+ /** Your router's link for `href`; default a plain `<a>`. */
1535
+ renderLink?: UixRenderLink;
1126
1536
  }
1127
1537
  /**
1128
1538
  * KPI / stat tile over `.uix-stat`. With `onActivate` the tile is a button; the forwarded
@@ -1130,9 +1540,119 @@ interface StatProps extends HTMLAttributes<HTMLElement> {
1130
1540
  */
1131
1541
  declare const Stat: react.ForwardRefExoticComponent<StatProps & react.RefAttributes<HTMLElement>>;
1132
1542
 
1133
- interface TooltipProps extends HTMLAttributes<HTMLSpanElement> {
1134
- /** Tooltip text. */
1135
- label: string;
1543
+ interface ChipProps extends Omit<HTMLAttributes<HTMLElement>, 'onClick'> {
1544
+ /** The chip's text. */
1545
+ children?: ReactNode;
1546
+ icon?: ReactNode;
1547
+ /** A trailing count, e.g. the number of matching rows. */
1548
+ count?: ReactNode;
1549
+ /** Toggle chip: `aria-pressed`, filled while on. Pair with `onPressedChange`. */
1550
+ pressed?: boolean;
1551
+ onPressedChange?: (pressed: boolean) => void;
1552
+ /** A chip that acts in place (e.g. opens the filter it shows for editing). */
1553
+ onClick?: () => void;
1554
+ /** A link chip. */
1555
+ href?: string;
1556
+ renderLink?: UixRenderLink;
1557
+ /** Adds a × button that removes the chip. */
1558
+ onRemove?: () => void;
1559
+ /**
1560
+ * Accessible name of the × button. `{label}` is replaced by the chip text when it is a
1561
+ * string. Default "Remove {label}"; pass a full name when the text is not a string.
1562
+ */
1563
+ removeLabel?: string;
1564
+ /** `add` is the dashed "+ Add filter" chip. */
1565
+ variant?: 'default' | 'add';
1566
+ disabled?: boolean;
1567
+ }
1568
+ /**
1569
+ * Filter, tag and token chip over `.uix-chip` (HAR-1360; TENSOR C7/B34, MOTUS C-6/B-A18).
1570
+ * Plain text, a toggle, a link or a button, optionally with a × that removes it.
1571
+ */
1572
+ declare function Chip({ children, icon, count, pressed, onPressedChange, onClick, href, renderLink, onRemove, removeLabel, variant, disabled, className, ...props }: ChipProps): react.JSX.Element;
1573
+ interface ChipGroupProps extends HTMLAttributes<HTMLDivElement> {
1574
+ /** Names the group, e.g. "Active filters". */
1575
+ label?: string;
1576
+ children?: ReactNode;
1577
+ }
1578
+ /** A wrapping row of chips with a group name. */
1579
+ declare function ChipGroup({ label, children, className, ...props }: ChipGroupProps): react.JSX.Element;
1580
+
1581
+ interface KbdProps extends HTMLAttributes<HTMLElement> {
1582
+ children?: ReactNode;
1583
+ }
1584
+ /** One keyboard key over `.uix-kbd` (HAR-1361; TENSOR C14, MOTUS B-A16). */
1585
+ declare function Kbd({ className, children, ...props }: KbdProps): react.JSX.Element;
1586
+ type KbdPlatform = 'mac' | 'other';
1587
+ interface KbdComboProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'children'> {
1588
+ /**
1589
+ * Keys in order, e.g. `['Mod', 'K']`. `Mod` is ⌘ on Apple and Ctrl elsewhere; `Shift`,
1590
+ * `Alt`, `Enter`, `Escape`, `Backspace`, `Tab` and the arrows get platform glyphs.
1591
+ */
1592
+ keys: string[];
1593
+ /** Fix the platform (tests, docs). Default: detected after mount; the server renders `other`. */
1594
+ platform?: KbdPlatform;
1595
+ /** Spoken names for keys, e.g. `{ Mod: 'Steuerung' }`; the glyphs stay. */
1596
+ keyLabels?: Partial<Record<string, string>>;
1597
+ }
1598
+ /**
1599
+ * A shortcut such as ⌘K / Ctrl+K. Screen readers hear the key names ("Command+K"), not the
1600
+ * glyphs. The platform is resolved at display time, after mount, so server and client agree.
1601
+ */
1602
+ declare function KbdCombo({ keys, platform, keyLabels, className, ...props }: KbdComboProps): react.JSX.Element;
1603
+
1604
+ type StepState = 'complete' | 'current' | 'upcoming' | 'waiting' | 'error';
1605
+ /** The state words read after each step's title (state is never colour alone). */
1606
+ interface StepStateLabels {
1607
+ complete: string;
1608
+ current: string;
1609
+ upcoming: string;
1610
+ waiting: string;
1611
+ error: string;
1612
+ }
1613
+ declare const DEFAULT_STEP_STATE_LABELS: StepStateLabels;
1614
+ interface StepsProps extends HTMLAttributes<HTMLOListElement> {
1615
+ /**
1616
+ * `horizontal` (default) lays the steps in a row and stacks them below 40rem;
1617
+ * `vertical` always stacks, with descriptions under each title.
1618
+ */
1619
+ orientation?: 'horizontal' | 'vertical';
1620
+ /** Names the list, e.g. "Intake progress". */
1621
+ label?: string;
1622
+ stateLabels?: Partial<StepStateLabels>;
1623
+ /** `Step` elements, in order. */
1624
+ children?: ReactNode;
1625
+ }
1626
+ interface StepProps extends Omit<LiHTMLAttributes<HTMLLIElement>, 'title'> {
1627
+ title: ReactNode;
1628
+ description?: ReactNode;
1629
+ state?: StepState;
1630
+ /** Marker content. Default: the step number; ✓ when complete; ! on error. */
1631
+ marker?: ReactNode;
1632
+ /** A navigable step (a wizard you can jump back in). */
1633
+ href?: string;
1634
+ renderLink?: UixRenderLink;
1635
+ onSelect?: () => void;
1636
+ /** Set by `Steps`. */
1637
+ index?: number;
1638
+ /** Set by `Steps`. */
1639
+ last?: boolean;
1640
+ /** Set by `Steps`. */
1641
+ stateLabels?: StepStateLabels;
1642
+ }
1643
+ /** Numbered progress through a multi-step flow (HAR-1362; TENSOR C13, MOTUS C-9). */
1644
+ declare function Steps({ orientation, label, stateLabels, className, children, ...props }: StepsProps): react.JSX.Element;
1645
+ declare function Step({ title, description, state, marker, href, renderLink, onSelect, index, last, stateLabels, className, ...props }: StepProps): react.JSX.Element;
1646
+
1647
+ interface TooltipProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'content'> {
1648
+ /** Tooltip text. Pass this or `content`. */
1649
+ label?: string;
1650
+ /**
1651
+ * Rich, non-interactive tooltip content, e.g. a short list (HAR-1349; TENSOR A3). It is
1652
+ * still a `role="tooltip"` description: no links or buttons inside — use `InfoTip` or
1653
+ * `Popover` for content the user must reach. Wins over `label` when both are set.
1654
+ */
1655
+ content?: ReactNode;
1136
1656
  /** Preferred placement. Default `'top'`. */
1137
1657
  placement?: Placement;
1138
1658
  children?: ReactNode;
@@ -1145,7 +1665,7 @@ interface TooltipProps extends HTMLAttributes<HTMLSpanElement> {
1145
1665
  * (document-level, per WCAG 1.4.13), and hoverable: the bubble stays open while
1146
1666
  * the pointer is over it (UIX-A11Y-1).
1147
1667
  */
1148
- declare function Tooltip({ label, placement, className, children, ...props }: TooltipProps): react.JSX.Element;
1668
+ declare function Tooltip({ label, content, placement, className, children, ...props }: TooltipProps): react.JSX.Element;
1149
1669
 
1150
1670
  interface InfoTipProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'content' | 'children'> {
1151
1671
  /**
@@ -1643,16 +2163,26 @@ interface PopoverProps extends HTMLAttributes<HTMLDivElement> {
1643
2163
  popover?: 'auto' | 'manual';
1644
2164
  /**
1645
2165
  * Element (or ref) to anchor against. When set, the popover is placed with
1646
- * cross-browser JS positioning — flip when it won't fit, shift to stay on-screen —
1647
- * instead of relying on CSS `anchor()`, which is Chromium-only and detaches the
1648
- * popover from its trigger everywhere else. The native Popover API still provides
1649
- * the top layer (so it escapes `overflow` clipping) and light-dismiss.
2166
+ * cross-browser JS positioning — flip when it won't fit, shift to stay on-screen.
2167
+ * Where the browser supports CSS anchor positioning, the placement is written as an
2168
+ * offset from the anchor, so it stays attached while the page scrolls; elsewhere it
2169
+ * follows scroll from JS. The native Popover API still provides the top layer (so it
2170
+ * escapes `overflow` clipping) and light-dismiss.
1650
2171
  */
1651
2172
  anchor?: RefObject<HTMLElement | null> | HTMLElement | null;
1652
2173
  /** Preferred placement when `anchor` is set. Default `'bottom-start'`. */
1653
2174
  placement?: Placement;
1654
2175
  /** Gap between the trigger and the popover, in px. Default 6. */
1655
2176
  offset?: number;
2177
+ /**
2178
+ * Close the popover once its `anchor` has scrolled completely out of view (outside the
2179
+ * viewport or a clipping ancestor), e.g. a picker opened from an editor that the user
2180
+ * scrolls away from. Focus inside the popover is let go rather than sent back to the
2181
+ * hidden anchor. Needs `anchor`. Default `false`.
2182
+ */
2183
+ closeWhenAnchorHidden?: boolean;
2184
+ /** Called when `closeWhenAnchorHidden` is about to close the popover. */
2185
+ onAnchorHidden?: () => void;
1656
2186
  children?: ReactNode;
1657
2187
  }
1658
2188
  /**
@@ -1660,7 +2190,52 @@ interface PopoverProps extends HTMLAttributes<HTMLDivElement> {
1660
2190
  * things like a filter popover, menu, or rich select by putting controls inside.
1661
2191
  * Pass `anchor` to get collision-aware, cross-browser placement (UIX-FIX-02).
1662
2192
  */
1663
- declare function Popover({ popover, anchor, placement, offset, className, children, ...props }: PopoverProps): react.JSX.Element;
2193
+ declare function Popover({ popover, anchor, placement, offset, closeWhenAnchorHidden, onAnchorHidden, className, children, ...props }: PopoverProps): react.JSX.Element;
2194
+
2195
+ interface MenuProps {
2196
+ /**
2197
+ * The menu button, usually a `Button`. It receives `aria-haspopup="menu"`,
2198
+ * `aria-expanded`, `aria-controls` and the open/keyboard handlers.
2199
+ */
2200
+ trigger: ReactElement;
2201
+ /** `MenuItem`, `MenuGroup` and `MenuSeparator`. */
2202
+ children?: ReactNode;
2203
+ /** Controlled open state; pair with `onOpenChange`. */
2204
+ open?: boolean;
2205
+ defaultOpen?: boolean;
2206
+ onOpenChange?: (open: boolean) => void;
2207
+ /** Accessible name of the menu. Default: labelled by the trigger. */
2208
+ label?: string;
2209
+ placement?: Placement;
2210
+ className?: string;
2211
+ }
2212
+ /**
2213
+ * A menu button with an APG menu (HAR-1359; TENSOR C1, MOTUS B-A14): ↓/↑ move, Home/End,
2214
+ * type-to-find, Enter/Space activate, Esc and Tab close, focus returns to the trigger.
2215
+ * The surface is the kit `Popover`, so it escapes clipping containers.
2216
+ */
2217
+ declare function Menu({ trigger, children, open: controlledOpen, defaultOpen, onOpenChange, label, placement, className }: MenuProps): react.JSX.Element;
2218
+ interface MenuItemProps {
2219
+ children?: ReactNode;
2220
+ /** Runs on click, Enter or Space; the menu then closes and focus returns to the trigger. */
2221
+ onSelect?: () => void;
2222
+ /** A link item; it navigates instead of running `onSelect`. */
2223
+ href?: string;
2224
+ renderLink?: UixRenderLink;
2225
+ icon?: ReactNode;
2226
+ /** Shortcut hint at the end of the row, e.g. `<KbdCombo keys={['Mod', 'D']} />`. */
2227
+ shortcut?: ReactNode;
2228
+ tone?: 'default' | 'danger';
2229
+ disabled?: boolean;
2230
+ className?: string;
2231
+ }
2232
+ declare function MenuItem({ children, onSelect, href, renderLink, icon, shortcut, tone, disabled, className }: MenuItemProps): react.JSX.Element;
2233
+ interface MenuGroupProps {
2234
+ label: ReactNode;
2235
+ children?: ReactNode;
2236
+ }
2237
+ declare function MenuGroup({ label, children }: MenuGroupProps): react.JSX.Element;
2238
+ declare function MenuSeparator(): react.JSX.Element;
1664
2239
 
1665
2240
  interface CommandPaletteProps extends HTMLAttributes<HTMLDivElement> {
1666
2241
  /** TENSOR RX-125 (UIX-04): translatable; English default. */
@@ -1675,7 +2250,7 @@ interface CommandPaletteProps extends HTMLAttributes<HTMLDivElement> {
1675
2250
  * a combobox over the listbox of `CommandItem`s; spreads override every default, so
1676
2251
  * consumers already passing their own roles/labels keep working.
1677
2252
  */
1678
- declare function CommandPalette({ inputProps, children, inputLabel, className, ...props }: CommandPaletteProps): react.JSX.Element;
2253
+ declare function CommandPalette({ inputProps, children, inputLabel: inputLabelProp, className, ...props }: CommandPaletteProps): react.JSX.Element;
1679
2254
  interface CommandGroupProps {
1680
2255
  label?: ReactNode;
1681
2256
  children?: ReactNode;
@@ -2226,135 +2801,6 @@ interface BuilderCanvasProps {
2226
2801
  /** Palette + sortable canvas + property panel scaffold. Owns interaction, never persistence. */
2227
2802
  declare function BuilderCanvas({ items, onItemsChange, palette, selectedId: controlledSelectedId, onSelect, renderItem, renderProperties, loading, error, onRetry, emptyMessage, className, labels: labelOverrides, }: BuilderCanvasProps): react.JSX.Element;
2228
2803
 
2229
- type SchedulingCalendarView = 'month' | 'week' | 'agenda';
2230
- type SchedulingEntryState = 'scheduled' | 'conflicted' | 'in-progress' | 'blackout-violation';
2231
- type SchedulingOverlayKind = 'maintenance' | 'blackout';
2232
- interface SchedulingCalendarEntry {
2233
- id: string;
2234
- title: string;
2235
- start: string;
2236
- end: string;
2237
- state?: SchedulingEntryState;
2238
- meta?: string;
2239
- }
2240
- interface SchedulingCalendarOverlay {
2241
- id: string;
2242
- label: string;
2243
- start: string;
2244
- end: string;
2245
- kind: SchedulingOverlayKind;
2246
- }
2247
- /**
2248
- * Every word the calendar renders (TENSOR RX-125, UIX-12). `{timeZone}`, `{view}`,
2249
- * `{title}`, `{state}`, `{start}`, `{end}` are placeholders.
2250
- */
2251
- interface SchedulingCalendarLabels {
2252
- region: string;
2253
- previous: string;
2254
- next: string;
2255
- viewGroup: string;
2256
- viewMonth: string;
2257
- viewWeek: string;
2258
- viewAgenda: string;
2259
- loading: string;
2260
- retry: string;
2261
- agenda: string;
2262
- agendaEmpty: string;
2263
- grid: string;
2264
- entry: string;
2265
- legend: string;
2266
- states: Record<SchedulingEntryState, string>;
2267
- }
2268
- declare const DEFAULT_SCHEDULING_CALENDAR_LABELS: SchedulingCalendarLabels;
2269
- interface SchedulingCalendarProps {
2270
- entries: SchedulingCalendarEntry[];
2271
- anchorDate: string;
2272
- timeZone: string;
2273
- view?: SchedulingCalendarView;
2274
- onViewChange?: (view: SchedulingCalendarView) => void;
2275
- onAnchorDateChange?: (date: string) => void;
2276
- onSelectEntry?: (entry: SchedulingCalendarEntry) => void;
2277
- overlays?: SchedulingCalendarOverlay[];
2278
- filter?: (entry: SchedulingCalendarEntry) => boolean;
2279
- renderEntry?: (entry: SchedulingCalendarEntry) => ReactNode;
2280
- locale?: string;
2281
- loading?: boolean;
2282
- error?: string;
2283
- onRetry?: () => void;
2284
- className?: string;
2285
- labels?: Partial<SchedulingCalendarLabels>;
2286
- }
2287
- /** Month/week/agenda calendar for UTC ranges rendered in an explicit IANA time zone. */
2288
- declare function SchedulingCalendar({ entries, anchorDate, timeZone, view: controlledView, onViewChange, onAnchorDateChange, onSelectEntry, overlays, filter, renderEntry, locale, loading, error, onRetry, className, labels: labelOverrides, }: SchedulingCalendarProps): react.JSX.Element;
2289
-
2290
- interface CalendarDay {
2291
- date: string;
2292
- day: number;
2293
- inMonth: boolean;
2294
- weekday: number;
2295
- }
2296
- interface DateRangeValue {
2297
- start?: string;
2298
- end?: string;
2299
- }
2300
- interface ZonedDateSpan {
2301
- start: string;
2302
- end: string;
2303
- }
2304
- declare function toDateKey(date: Date): string;
2305
- declare function addCalendarDays(value: string, amount: number): string;
2306
- declare function addCalendarMonths(value: string, amount: number): string;
2307
- declare function startOfMonth(value: string): string;
2308
- declare function buildMonthGrid(month: string, weekStartsOn?: 0 | 1): CalendarDay[];
2309
- declare function zonedDateKey(instant: string | Date, timeZone: string): string;
2310
- declare function zonedDateSpan(start: string, end: string, timeZone: string): ZonedDateSpan;
2311
- declare function enumerateDateSpan(span: ZonedDateSpan, limit?: number): string[];
2312
- declare function selectRangeDate(current: DateRangeValue, date: string): DateRangeValue;
2313
- declare function isDateInRange(date: string, value: DateRangeValue): boolean;
2314
- declare function isDateUnavailable(date: string, options: {
2315
- min?: string;
2316
- max?: string;
2317
- isDisabled?: (date: string) => boolean;
2318
- }): boolean;
2319
-
2320
- /**
2321
- * Every word the picker renders or announces (TENSOR RX-125, UIX-13). `{start}` and
2322
- * `{end}` are replaced with the locale-formatted dates.
2323
- */
2324
- interface DateRangePickerLabels {
2325
- previous: string;
2326
- previousMonth: string;
2327
- next: string;
2328
- nextMonth: string;
2329
- noneSelected: string;
2330
- startSelected: string;
2331
- rangeSelected: string;
2332
- rangeStart: string;
2333
- rangeEnd: string;
2334
- inRange: string;
2335
- }
2336
- declare const DEFAULT_DATE_RANGE_PICKER_LABELS: DateRangePickerLabels;
2337
- interface DateRangePickerProps {
2338
- value: DateRangeValue;
2339
- onChange: (value: DateRangeValue) => void;
2340
- visibleMonth?: string;
2341
- onVisibleMonthChange?: (month: string) => void;
2342
- months?: number;
2343
- min?: string;
2344
- max?: string;
2345
- isDateDisabled?: (date: string) => boolean;
2346
- locale?: string;
2347
- label?: string;
2348
- invalid?: boolean;
2349
- invalidMessage?: string;
2350
- disabled?: boolean;
2351
- className?: string;
2352
- /** Translatable words; English defaults in {@link DEFAULT_DATE_RANGE_PICKER_LABELS}. */
2353
- labels?: Partial<DateRangePickerLabels>;
2354
- }
2355
- /** Controlled, two-month range picker using the UIx calendar language. */
2356
- declare function DateRangePicker({ value, onChange, visibleMonth: controlledMonth, onVisibleMonthChange, months, min, max, isDateDisabled, locale, label, invalid, invalidMessage, disabled, className, labels: labelOverrides, }: DateRangePickerProps): react.JSX.Element;
2357
-
2358
2804
  interface RelationshipGraphNode {
2359
2805
  id: string;
2360
2806
  label: string;
@@ -2920,4 +3366,4 @@ declare function hsvToHex(value: HsvColor): string;
2920
3366
  declare function contrastRatio(background: string, foreground: string): number | undefined;
2921
3367
  declare function meetsContrast(background: string, foreground: string, minimum?: number): boolean;
2922
3368
 
2923
- export { type AccessStateProps, Alert, type AlertProps, type AlertTone, AppShell, type AppShellProps, type AppliedBrandProfileSnapshot, type AsyncOperationState, AsyncOperationStatus, type AsyncOperationStatusProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, type BoundedRelationshipGraph, type BrandProfile, BrandProfileEditor, type BrandProfileEditorLabels, type BrandProfileEditorProps, type BrandProfileLogo, type BrandProfileTypography, BrandProfiles, type BreadcrumbItem, Breadcrumbs, type BreadcrumbsProps, BuilderCanvas, type BuilderCanvasItem, type BuilderCanvasLabels, 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 ColorPickerLabels, 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, CopyButton, type CopyButtonProps, DEFAULT_BRAND_PROFILE_EDITOR_LABELS, DEFAULT_BUILDER_CANVAS_LABELS, DEFAULT_COLOR_PICKER_LABELS, DEFAULT_DATE_RANGE_PICKER_LABELS, DEFAULT_DIFF_VIEWER_LABELS, DEFAULT_MATCH_REVIEW_LABELS, DEFAULT_PAGINATION_LABELS, DEFAULT_RELATIONSHIP_GRAPH_LABELS, DEFAULT_RULE_BUILDER_LABELS, DEFAULT_SAVE_STATUS_LABELS, DEFAULT_SCHEDULING_CALENDAR_LABELS, DateRangePicker, type DateRangePickerLabels, type DateRangePickerProps, type DateRangeValue, DescriptionItem, type DescriptionItemProps, DescriptionList, type DescriptionListItem, type DescriptionListProps, DetailLayout, type DetailLayoutProps, DetailPage, type DetailPageLinkProps, type DetailPageMetric, type DetailPageProps, type DetailPageTab, type DiffEntry, type DiffKind, type DiffResolution, type DiffSummary, DiffViewer, type DiffViewerLabels, 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, type FoldedText, ForbiddenState, Highlighted, type HighlightedProps, type HsvColor, Inbox, InboxDetail, type InboxDetailProps, InboxItem, type InboxItemProps, InboxList, type InboxListProps, type InboxProps, InfoTip, type InfoTipProps, Input, InputGroup, type InputGroupProps, type InputProps, type JsonPrimitive, type JsonValue, Kanban, KanbanCard, type KanbanCardProps, KanbanColumn, type KanbanColumnProps, type KanbanMoveDirection, type KanbanProps, Label, type LabelProps, type LayeredColumn, type LayeredEdgeClassification, type LayeredEdgeKind, type LayeredItem, type LayeredLayout, type LayeredLayoutOptions, type LayeredNavigationKey, 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 MatchReviewLabels, 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 PaginationLabels, type PaginationProps, Peek, type PeekProps, type PillTone, type PillTreatment, Pipeline, type PipelineProps, PipelineStage, type PipelineStageProps, type PipelineStageState, Placement, Popover, type PopoverProps, type PositionedRelationshipNode, type Primitive, Progress, type ProgressProps, PromptDialog, type PromptDialogProps, Prose, type ProseProps, Radio, RadioGroup, type RadioGroupProps, type RadioProps, type RelatedLinkItem, RelatedLinks, type RelatedLinksProps, RelationshipGraph, type RelationshipGraphArrow, type RelationshipGraphCluster, type RelationshipGraphEdge, type RelationshipGraphLabels, type RelationshipGraphLegendItem, type RelationshipGraphNode, type RelationshipGraphProps, RelativeTime, type RelativeTimeFormatContext, type RelativeTimeProps, type RelativeTimeUnit, type RelativeTimeValue, ResourceGrid, type ResourceGridProps, type RgbColor, type RoutedEdge, type Row, RowAction, type RowActionProps, RowActions, type RowActionsProps, type RuleAction, type RuleActionDefinition, RuleBuilder, type RuleBuilderLabels, type RuleBuilderProps, type RuleCondition, type RuleDefinition, type RuleFieldDefinition, type RuleGroup, type RuleOperatorDefinition, type RuleValidationIssue, type RuleValueEditorProps, SaveStatus, type SaveStatusLabels, type SaveStatusProps, type SaveStatusState, type SavedViewItem, SavedViewMenu, type SavedViewMenuProps, type SavedViewSection, SchedulingCalendar, type SchedulingCalendarEntry, type SchedulingCalendarLabels, type SchedulingCalendarOverlay, type SchedulingCalendarProps, type SchedulingCalendarView, type SchedulingEntryState, type SchedulingOverlayKind, type SearchSegment, SearchSuggest, type SearchSuggestAction, type SearchSuggestOption, type SearchSuggestProps, SectionHead, type SectionHeadProps, type Segment, Segmented, SegmentedOption, type SegmentedOptionProps, type SegmentedProps, Select, type SelectAllState, type SelectProps, type ShellNav, Sidebar, type SidebarProps, SidebarSection, type SidebarSectionProps, 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 ViewMenuColumnLabels, type ViewMenuProps, type ViewState, type VirtualWindow, type ZonedDateSpan, addCalendarDays, addCalendarMonths, appendRuleNode, applyBrandProfile, applyFilters, boundRelationshipGraph, buildMonthGrid, buildThreeWayDiff, clampMetricValue, clampWidth, classifyLayeredEdges, clusterIdFor, contrastRatio, cx, enumerateDateSpan, filterComboboxOptions, findRuleNodeDepth, flattenTree, foldForSearch, hexToRgb, highlightSegments, hsvToHex, hsvToRgb, isDateInRange, isDateUnavailable, isRuleGroup, layeredNeighbor, layoutLayeredGraph, layoutRelationshipGraph, mapRuleGroup, matchFilter, meetsContrast, mergePinned, moveRuleNode, multiSort, nextSortDir, normalizeHex, parseDateValue, parseMetricValue, parseView, relationshipNeighbors, relativeTimeValue, removeRuleNode, reorder, restoreBrandProfile, rgbToHex, rgbToHsv, ruleDepth, searchRows, searchSegments, selectAllState, selectRangeDate, serializeView, shouldVirtualize, startOfMonth, stepMetricValue, summarizeDiff, summarizeRule, toDateKey, toggleId, togglePage, toggleSort, traverseRelationshipNode, treeNav, useAnchoredPosition, useDialog, useTable, useVirtualRows, validateRuleDefinition, virtualWindow, wrapEdgeLabel, zonedDateKey, zonedDateSpan };
3369
+ export { type AccessStateProps, Alert, type AlertProps, type AlertTone, AppShell, type AppShellProps, type AppliedBrandProfileSnapshot, type AsyncOperationState, AsyncOperationStatus, type AsyncOperationStatusProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, type BoundedRelationshipGraph, type BrandProfile, BrandProfileEditor, type BrandProfileEditorLabels, type BrandProfileEditorProps, type BrandProfileLogo, type BrandProfileTypography, BrandProfiles, type BreadcrumbItem, Breadcrumbs, type BreadcrumbsProps, BuilderCanvas, type BuilderCanvasItem, type BuilderCanvasLabels, type BuilderCanvasProps, type BuilderPaletteItem, BulkBar, type BulkBarProps, Button, ButtonGroup, type ButtonGroupProps, ButtonLink, type ButtonLinkProps, type ButtonProps, type ButtonSize, type ButtonVariant, type CalendarDay, type CalendarWeekday, Card, CardLink, type CardLinkProps, type CardProps, CellStrong, CellSub, Checkbox, type CheckboxProps, Chip, ChipGroup, type ChipGroupProps, type ChipProps, CollapsibleSection, type CollapsibleSectionProps, ColorPicker, type ColorPickerLabels, 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, CopyButton, type CopyButtonProps, DEFAULT_BRAND_PROFILE_EDITOR_LABELS, DEFAULT_BUILDER_CANVAS_LABELS, DEFAULT_COLOR_PICKER_LABELS, DEFAULT_DATE_RANGE_PICKER_LABELS, DEFAULT_DIFF_VIEWER_LABELS, DEFAULT_MATCH_REVIEW_LABELS, DEFAULT_PAGINATION_LABELS, DEFAULT_RELATIONSHIP_GRAPH_LABELS, DEFAULT_RULE_BUILDER_LABELS, DEFAULT_SAVE_STATUS_LABELS, DEFAULT_SCHEDULING_CALENDAR_LABELS, DEFAULT_STEP_STATE_LABELS, DateRangePicker, type DateRangePickerLabels, type DateRangePickerProps, type DateRangeValue, DescriptionItem, type DescriptionItemProps, DescriptionList, type DescriptionListItem, type DescriptionListProps, DetailLayout, type DetailLayoutProps, DetailPage, type DetailPageLinkProps, type DetailPageMetric, type DetailPageProps, type DetailPageTab, type DiffEntry, type DiffKind, type DiffResolution, type DiffSummary, DiffViewer, type DiffViewerLabels, 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, type FoldedText, ForbiddenState, Highlighted, type HighlightedProps, type HsvColor, Inbox, InboxDetail, type InboxDetailProps, InboxItem, type InboxItemProps, InboxList, type InboxListProps, type InboxProps, InfoTip, type InfoTipProps, Input, InputGroup, type InputGroupProps, type InputProps, type JsonPrimitive, type JsonValue, Kanban, KanbanCard, type KanbanCardProps, KanbanColumn, type KanbanColumnProps, type KanbanMoveDirection, type KanbanProps, Kbd, KbdCombo, type KbdComboProps, type KbdPlatform, type KbdProps, Label, type LabelProps, type LayeredColumn, type LayeredEdgeClassification, type LayeredEdgeKind, type LayeredItem, type LayeredLayout, type LayeredLayoutOptions, type LayeredNavigationKey, 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 MatchReviewLabels, type MatchReviewProps, Menu, MenuGroup, type MenuGroupProps, MenuItem, type MenuItemProps, type MenuProps, MenuSeparator, 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 PaginationLabels, type PaginationProps, Peek, type PeekProps, type PillTone, type PillTreatment, Pipeline, type PipelineProps, PipelineStage, type PipelineStageProps, type PipelineStageState, Placement, Popconfirm, type PopconfirmProps, Popover, type PopoverProps, type PositionedRelationshipNode, type Primitive, Progress, type ProgressProps, PromptDialog, type PromptDialogProps, Prose, type ProseProps, Radio, RadioGroup, type RadioGroupProps, type RadioProps, type RelatedLinkItem, RelatedLinks, type RelatedLinksProps, RelationshipGraph, type RelationshipGraphArrow, type RelationshipGraphCluster, type RelationshipGraphEdge, type RelationshipGraphLabels, type RelationshipGraphLegendItem, type RelationshipGraphNode, type RelationshipGraphProps, RelativeTime, type RelativeTimeFormatContext, type RelativeTimeProps, type RelativeTimeUnit, type RelativeTimeValue, ResourceGrid, type ResourceGridProps, type RgbColor, type RoutedEdge, type Row, RowAction, type RowActionProps, RowActions, type RowActionsProps, type RuleAction, type RuleActionDefinition, RuleBuilder, type RuleBuilderLabels, type RuleBuilderProps, type RuleCondition, type RuleDefinition, type RuleFieldDefinition, type RuleGroup, type RuleOperatorDefinition, type RuleValidationIssue, type RuleValueEditorProps, SaveStatus, type SaveStatusLabels, type SaveStatusProps, type SaveStatusState, type SavedViewItem, SavedViewMenu, type SavedViewMenuProps, type SavedViewSection, SchedulingCalendar, type SchedulingCalendarEntry, type SchedulingCalendarLabels, type SchedulingCalendarOverlay, type SchedulingCalendarProps, type SchedulingCalendarView, type SchedulingDatePart, type SchedulingEntryState, type SchedulingOverlayKind, type SearchSegment, SearchSuggest, type SearchSuggestAction, type SearchSuggestOption, type SearchSuggestProps, SectionHead, type SectionHeadProps, type Segment, Segmented, SegmentedOption, type SegmentedOptionProps, type SegmentedProps, Select, type SelectAllState, type SelectProps, type ShellNav, Sidebar, type SidebarProps, SidebarSection, type SidebarSectionProps, 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, Step, type StepProps, type StepState, type StepStateLabels, Steps, type StepsProps, 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 UixLabels, UixLabelsProvider, type UixLabelsProviderProps, type UixLinkProps, type UixRenderLink, type UseAnchoredPositionOptions, type UseTableOptions, type UseTableResult, type UseVirtualRowsOptions, type UseVirtualRowsResult, UserChip, type UserChipProps, ViewMenu, type ViewMenuColumn, type ViewMenuColumnLabels, type ViewMenuProps, type ViewState, type VirtualWindow, type ZonedDateSpan, addCalendarDays, addCalendarMonths, appendRuleNode, applyBrandProfile, applyFilters, boundRelationshipGraph, buildMonthGrid, buildThreeWayDiff, clampMetricValue, clampWidth, classifyLayeredEdges, clusterIdFor, contrastRatio, cx, enumerateDateSpan, filterComboboxOptions, findRuleNodeDepth, flattenTree, foldForSearch, hexToRgb, highlightSegments, hsvToHex, hsvToRgb, isDateInRange, isDateUnavailable, isRuleGroup, layeredNeighbor, layoutLayeredGraph, layoutRelationshipGraph, mapRuleGroup, matchFilter, meetsContrast, mergePinned, moveRuleNode, multiSort, nextSortDir, normalizeHex, parseDateValue, parseMetricValue, parseView, relationshipNeighbors, relativeTimeValue, removeRuleNode, renderPlainLink, reorder, restoreBrandProfile, rgbToHex, rgbToHsv, ruleDepth, searchRows, searchSegments, selectAllState, selectRangeDate, serializeView, shouldVirtualize, startOfMonth, stepMetricValue, summarizeDiff, summarizeRule, toDateKey, toggleId, togglePage, toggleSort, traverseRelationshipNode, treeNav, useAnchoredPosition, useDialog, useTable, useUixLabels, useVirtualRows, validateRuleDefinition, virtualWindow, wrapEdgeLabel, zonedDateKey, zonedDateSpan };