@skyfall_ai/aegis 0.1.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +4122 -2715
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +1799 -857
- package/dist/index.d.ts +1799 -857
- package/dist/index.js +4934 -2677
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4889 -2613
- package/dist/index.mjs.map +1 -1
- package/package.json +10 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
|
-
import { ButtonHTMLAttributes, ReactNode,
|
|
2
|
+
import { InputHTMLAttributes, ButtonHTMLAttributes, ReactNode, HTMLAttributes, SelectHTMLAttributes, TextareaHTMLAttributes, MouseEvent, TableHTMLAttributes, TdHTMLAttributes, ThHTMLAttributes, ElementType, AnchorHTMLAttributes, LabelHTMLAttributes } from 'react';
|
|
3
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
|
+
import { TooltipProps as TooltipProps$1, LegendProps } from 'recharts';
|
|
4
5
|
|
|
5
6
|
/** Brand primary palette */
|
|
6
7
|
declare const brandPrimary: {
|
|
@@ -261,6 +262,25 @@ declare const focusRing: {
|
|
|
261
262
|
readonly outlineColor: "#2F6FE4";
|
|
262
263
|
};
|
|
263
264
|
|
|
265
|
+
interface TextFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {
|
|
266
|
+
/** Size of the input control */
|
|
267
|
+
size?: 'sm' | 'md' | 'lg';
|
|
268
|
+
/** Error state */
|
|
269
|
+
error?: boolean;
|
|
270
|
+
/** Full width */
|
|
271
|
+
fullWidth?: boolean;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* TextField — single-line text input.
|
|
275
|
+
*
|
|
276
|
+
* Accessibility:
|
|
277
|
+
* - Use with <Label> and associate via htmlFor/id
|
|
278
|
+
* - Use aria-describedby to link to HelperText or error messages
|
|
279
|
+
* - aria-invalid signals error state to assistive technology
|
|
280
|
+
* - Visible border change + color signals error (not color alone)
|
|
281
|
+
*/
|
|
282
|
+
declare const TextField: react.ForwardRefExoticComponent<TextFieldProps & react.RefAttributes<HTMLInputElement>>;
|
|
283
|
+
|
|
264
284
|
interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
265
285
|
/** Visual variant */
|
|
266
286
|
variant?: 'primary' | 'secondary' | 'ghost' | 'danger';
|
|
@@ -305,59 +325,25 @@ interface IconButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
|
305
325
|
*/
|
|
306
326
|
declare const IconButton: react.ForwardRefExoticComponent<IconButtonProps & react.RefAttributes<HTMLButtonElement>>;
|
|
307
327
|
|
|
308
|
-
interface
|
|
309
|
-
/**
|
|
328
|
+
interface ButtonGroupProps extends HTMLAttributes<HTMLDivElement> {
|
|
329
|
+
/** Layout direction */
|
|
330
|
+
orientation?: 'horizontal' | 'vertical';
|
|
331
|
+
/** Size applied to all child buttons */
|
|
310
332
|
size?: 'sm' | 'md' | 'lg';
|
|
311
|
-
/**
|
|
312
|
-
|
|
313
|
-
/** Full width */
|
|
314
|
-
fullWidth?: boolean;
|
|
315
|
-
}
|
|
316
|
-
/**
|
|
317
|
-
* Input — single-line text input.
|
|
318
|
-
*
|
|
319
|
-
* Accessibility:
|
|
320
|
-
* - Use with <Label> and associate via htmlFor/id
|
|
321
|
-
* - Use aria-describedby to link to HelperText or error messages
|
|
322
|
-
* - aria-invalid signals error state to assistive technology
|
|
323
|
-
* - Visible border change + color signals error (not color alone)
|
|
324
|
-
*/
|
|
325
|
-
declare const Input: react.ForwardRefExoticComponent<InputProps & react.RefAttributes<HTMLInputElement>>;
|
|
326
|
-
|
|
327
|
-
interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
|
|
328
|
-
/** Error state */
|
|
329
|
-
error?: boolean;
|
|
330
|
-
/** Full width */
|
|
331
|
-
fullWidth?: boolean;
|
|
332
|
-
/** Allow vertical resize */
|
|
333
|
-
resize?: 'none' | 'vertical' | 'both';
|
|
333
|
+
/** Whether buttons should share borders (connected style) */
|
|
334
|
+
connected?: boolean;
|
|
334
335
|
}
|
|
335
336
|
/**
|
|
336
|
-
*
|
|
337
|
+
* ButtonGroup — layout wrapper for grouping related buttons.
|
|
337
338
|
*
|
|
338
|
-
*
|
|
339
|
-
*
|
|
340
|
-
* - Link to HelperText via aria-describedby
|
|
341
|
-
*/
|
|
342
|
-
declare const Textarea: react.ForwardRefExoticComponent<TextareaProps & react.RefAttributes<HTMLTextAreaElement>>;
|
|
343
|
-
|
|
344
|
-
interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, 'size'> {
|
|
345
|
-
/** Size */
|
|
346
|
-
size?: 'sm' | 'md' | 'lg';
|
|
347
|
-
/** Error state */
|
|
348
|
-
error?: boolean;
|
|
349
|
-
/** Full width */
|
|
350
|
-
fullWidth?: boolean;
|
|
351
|
-
}
|
|
352
|
-
/**
|
|
353
|
-
* Select — native dropdown select.
|
|
339
|
+
* Renders multiple Button children in a connected or spaced row/column.
|
|
340
|
+
* When connected, adjacent buttons share borders for a toolbar appearance.
|
|
354
341
|
*
|
|
355
342
|
* Accessibility:
|
|
356
|
-
* - Uses
|
|
357
|
-
* -
|
|
358
|
-
* - Custom chevron is decorative (aria-hidden on the icon)
|
|
343
|
+
* - Uses role="group" with optional aria-label for grouping context
|
|
344
|
+
* - Individual buttons retain their own keyboard navigation
|
|
359
345
|
*/
|
|
360
|
-
declare
|
|
346
|
+
declare function ButtonGroup({ orientation, size, connected, className, children, ...props }: ButtonGroupProps): react_jsx_runtime.JSX.Element;
|
|
361
347
|
|
|
362
348
|
interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
|
|
363
349
|
/** Label text displayed next to the checkbox */
|
|
@@ -376,6 +362,41 @@ interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'typ
|
|
|
376
362
|
*/
|
|
377
363
|
declare const Checkbox: react.ForwardRefExoticComponent<CheckboxProps & react.RefAttributes<HTMLInputElement>>;
|
|
378
364
|
|
|
365
|
+
interface CheckboxGroupOption {
|
|
366
|
+
value: string;
|
|
367
|
+
label: string;
|
|
368
|
+
disabled?: boolean;
|
|
369
|
+
}
|
|
370
|
+
interface CheckboxGroupProps {
|
|
371
|
+
/** Group label rendered as fieldset legend */
|
|
372
|
+
label: string;
|
|
373
|
+
/** Shared name attribute for all checkboxes */
|
|
374
|
+
name: string;
|
|
375
|
+
/** Array of checkbox options */
|
|
376
|
+
options: CheckboxGroupOption[];
|
|
377
|
+
/** Currently selected values */
|
|
378
|
+
value?: string[];
|
|
379
|
+
/** Change handler — receives updated array of selected values */
|
|
380
|
+
onChange?: (value: string[]) => void;
|
|
381
|
+
/** Error message */
|
|
382
|
+
error?: string;
|
|
383
|
+
/** Layout direction */
|
|
384
|
+
orientation?: 'vertical' | 'horizontal';
|
|
385
|
+
/** Disabled state for all checkboxes */
|
|
386
|
+
disabled?: boolean;
|
|
387
|
+
/** Additional CSS class */
|
|
388
|
+
className?: string;
|
|
389
|
+
}
|
|
390
|
+
/**
|
|
391
|
+
* CheckboxGroup — group of checkboxes with fieldset/legend for accessibility.
|
|
392
|
+
*
|
|
393
|
+
* Accessibility:
|
|
394
|
+
* - Uses <fieldset> and <legend> for semantic grouping
|
|
395
|
+
* - Error message linked via role="alert"
|
|
396
|
+
* - Each checkbox is individually focusable
|
|
397
|
+
*/
|
|
398
|
+
declare function CheckboxGroup({ label, name, options, value, onChange, error, orientation, disabled, className, }: CheckboxGroupProps): react_jsx_runtime.JSX.Element;
|
|
399
|
+
|
|
379
400
|
interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
|
|
380
401
|
/** Label text */
|
|
381
402
|
label?: string;
|
|
@@ -392,6 +413,59 @@ interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'>
|
|
|
392
413
|
*/
|
|
393
414
|
declare const Radio: react.ForwardRefExoticComponent<RadioProps & react.RefAttributes<HTMLInputElement>>;
|
|
394
415
|
|
|
416
|
+
interface RadioGroupOption {
|
|
417
|
+
value: string;
|
|
418
|
+
label: string;
|
|
419
|
+
disabled?: boolean;
|
|
420
|
+
}
|
|
421
|
+
interface RadioGroupProps {
|
|
422
|
+
/** Group label rendered as fieldset legend */
|
|
423
|
+
label: string;
|
|
424
|
+
/** Shared name attribute for all radios */
|
|
425
|
+
name: string;
|
|
426
|
+
/** Array of radio options */
|
|
427
|
+
options: RadioGroupOption[];
|
|
428
|
+
/** Currently selected value */
|
|
429
|
+
value?: string;
|
|
430
|
+
/** Change handler — receives the selected value */
|
|
431
|
+
onChange?: (value: string) => void;
|
|
432
|
+
/** Error message */
|
|
433
|
+
error?: string;
|
|
434
|
+
/** Layout direction */
|
|
435
|
+
orientation?: 'vertical' | 'horizontal';
|
|
436
|
+
/** Disabled state for all radios */
|
|
437
|
+
disabled?: boolean;
|
|
438
|
+
/** Additional CSS class */
|
|
439
|
+
className?: string;
|
|
440
|
+
}
|
|
441
|
+
/**
|
|
442
|
+
* RadioGroup — group of radio buttons with fieldset/legend for accessibility.
|
|
443
|
+
*
|
|
444
|
+
* Accessibility:
|
|
445
|
+
* - Uses <fieldset> and <legend> for semantic grouping
|
|
446
|
+
* - Arrow keys navigate between radios within the group
|
|
447
|
+
* - Error message rendered with role="alert"
|
|
448
|
+
*/
|
|
449
|
+
declare function RadioGroup({ label, name, options, value, onChange, error, orientation, disabled, className, }: RadioGroupProps): react_jsx_runtime.JSX.Element;
|
|
450
|
+
|
|
451
|
+
interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, 'size'> {
|
|
452
|
+
/** Size */
|
|
453
|
+
size?: 'sm' | 'md' | 'lg';
|
|
454
|
+
/** Error state */
|
|
455
|
+
error?: boolean;
|
|
456
|
+
/** Full width */
|
|
457
|
+
fullWidth?: boolean;
|
|
458
|
+
}
|
|
459
|
+
/**
|
|
460
|
+
* Select — native dropdown select.
|
|
461
|
+
*
|
|
462
|
+
* Accessibility:
|
|
463
|
+
* - Uses native <select> for full keyboard and screen reader support
|
|
464
|
+
* - Associate with Label via htmlFor/id
|
|
465
|
+
* - Custom chevron is decorative (aria-hidden on the icon)
|
|
466
|
+
*/
|
|
467
|
+
declare const Select: react.ForwardRefExoticComponent<SelectProps & react.RefAttributes<HTMLSelectElement>>;
|
|
468
|
+
|
|
395
469
|
interface SwitchProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
|
|
396
470
|
/** Label text */
|
|
397
471
|
label?: string;
|
|
@@ -409,257 +483,328 @@ interface SwitchProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'
|
|
|
409
483
|
*/
|
|
410
484
|
declare const Switch: react.ForwardRefExoticComponent<SwitchProps & react.RefAttributes<HTMLInputElement>>;
|
|
411
485
|
|
|
412
|
-
interface
|
|
413
|
-
/**
|
|
414
|
-
|
|
486
|
+
interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
|
|
487
|
+
/** Error state */
|
|
488
|
+
error?: boolean;
|
|
489
|
+
/** Full width */
|
|
490
|
+
fullWidth?: boolean;
|
|
491
|
+
/** Allow vertical resize */
|
|
492
|
+
resize?: 'none' | 'vertical' | 'both';
|
|
415
493
|
}
|
|
416
494
|
/**
|
|
417
|
-
*
|
|
495
|
+
* Textarea — multi-line text input.
|
|
418
496
|
*
|
|
419
497
|
* Accessibility:
|
|
420
|
-
* -
|
|
421
|
-
* -
|
|
498
|
+
* - Associate with Label via htmlFor/id
|
|
499
|
+
* - Link to HelperText via aria-describedby
|
|
422
500
|
*/
|
|
423
|
-
declare
|
|
501
|
+
declare const Textarea: react.ForwardRefExoticComponent<TextareaProps & react.RefAttributes<HTMLTextAreaElement>>;
|
|
424
502
|
|
|
425
|
-
interface
|
|
426
|
-
/**
|
|
427
|
-
|
|
503
|
+
interface SliderProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'onChange' | 'value'> {
|
|
504
|
+
/** Current value */
|
|
505
|
+
value?: number;
|
|
506
|
+
/** Change handler */
|
|
507
|
+
onChange?: (value: number) => void;
|
|
508
|
+
/** Minimum value */
|
|
509
|
+
min?: number;
|
|
510
|
+
/** Maximum value */
|
|
511
|
+
max?: number;
|
|
512
|
+
/** Step increment */
|
|
513
|
+
step?: number;
|
|
514
|
+
/** Disabled state */
|
|
515
|
+
disabled?: boolean;
|
|
516
|
+
/** Size variant */
|
|
517
|
+
size?: 'sm' | 'md';
|
|
518
|
+
/** Accessible label text */
|
|
519
|
+
label?: string;
|
|
520
|
+
/** Show current value next to the slider */
|
|
521
|
+
showValue?: boolean;
|
|
522
|
+
/** Additional CSS class */
|
|
523
|
+
className?: string;
|
|
428
524
|
}
|
|
429
525
|
/**
|
|
430
|
-
*
|
|
526
|
+
* Slider — range input with custom styling.
|
|
431
527
|
*
|
|
432
528
|
* Accessibility:
|
|
433
|
-
* -
|
|
434
|
-
* -
|
|
435
|
-
* -
|
|
529
|
+
* - Uses native input[type="range"] for full keyboard and AT support
|
|
530
|
+
* - Label linked via htmlFor/id
|
|
531
|
+
* - aria-valuemin, aria-valuemax, aria-valuenow communicated natively
|
|
532
|
+
* - showValue provides visual readout of current value
|
|
436
533
|
*/
|
|
437
|
-
declare
|
|
534
|
+
declare const Slider: react.ForwardRefExoticComponent<SliderProps & react.RefAttributes<HTMLInputElement>>;
|
|
438
535
|
|
|
439
|
-
interface
|
|
440
|
-
/**
|
|
441
|
-
|
|
442
|
-
/**
|
|
443
|
-
|
|
536
|
+
interface NumberFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'onChange' | 'value' | 'prefix'> {
|
|
537
|
+
/** Current numeric value */
|
|
538
|
+
value?: number;
|
|
539
|
+
/** Change handler */
|
|
540
|
+
onChange?: (value: number) => void;
|
|
541
|
+
/** Minimum allowed value */
|
|
542
|
+
min?: number;
|
|
543
|
+
/** Maximum allowed value */
|
|
544
|
+
max?: number;
|
|
545
|
+
/** Increment step */
|
|
546
|
+
step?: number;
|
|
547
|
+
/** Size variant */
|
|
548
|
+
size?: 'sm' | 'md' | 'lg';
|
|
549
|
+
/** Error state */
|
|
550
|
+
error?: boolean;
|
|
551
|
+
/** Prefix text (e.g., "$") */
|
|
552
|
+
prefix?: string;
|
|
553
|
+
/** Suffix text (e.g., "mg") */
|
|
554
|
+
suffix?: string;
|
|
444
555
|
}
|
|
445
556
|
/**
|
|
446
|
-
*
|
|
557
|
+
* NumberField — numeric input with increment/decrement buttons.
|
|
447
558
|
*
|
|
448
559
|
* Accessibility:
|
|
449
|
-
* - Uses
|
|
450
|
-
*
|
|
451
|
-
* -
|
|
560
|
+
* - Uses native input[type="number"] for spinbutton role
|
|
561
|
+
* - Increment/decrement buttons have aria-labels
|
|
562
|
+
* - Buttons are hidden from tab order (input handles keyboard)
|
|
563
|
+
* - min/max constraints are communicated to AT
|
|
452
564
|
*/
|
|
453
|
-
declare
|
|
565
|
+
declare const NumberField: react.ForwardRefExoticComponent<NumberFieldProps & react.RefAttributes<HTMLInputElement>>;
|
|
454
566
|
|
|
455
|
-
interface
|
|
456
|
-
/**
|
|
457
|
-
|
|
567
|
+
interface SearchFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {
|
|
568
|
+
/** Size of the search control */
|
|
569
|
+
size?: 'sm' | 'md' | 'lg';
|
|
570
|
+
/** Error state */
|
|
571
|
+
error?: boolean;
|
|
572
|
+
/** Full width */
|
|
573
|
+
fullWidth?: boolean;
|
|
574
|
+
/** Callback when clear button is clicked */
|
|
575
|
+
onClear?: () => void;
|
|
576
|
+
/** Show the clear button when input has a value */
|
|
577
|
+
showClearButton?: boolean;
|
|
458
578
|
}
|
|
459
579
|
/**
|
|
460
|
-
*
|
|
580
|
+
* SearchField — search input with magnifying glass icon and optional clear button.
|
|
461
581
|
*
|
|
462
582
|
* Accessibility:
|
|
463
|
-
* -
|
|
464
|
-
* -
|
|
465
|
-
*
|
|
466
|
-
*/
|
|
467
|
-
declare function Badge({ status, className, children, ...props }: BadgeProps): react_jsx_runtime.JSX.Element;
|
|
468
|
-
|
|
469
|
-
interface AlertProps extends HTMLAttributes<HTMLDivElement> {
|
|
470
|
-
/** Semantic status */
|
|
471
|
-
status?: 'info' | 'success' | 'warning' | 'error';
|
|
472
|
-
/** Optional title */
|
|
473
|
-
title?: string;
|
|
474
|
-
/** Optional action element (e.g., a close button) */
|
|
475
|
-
action?: ReactNode;
|
|
476
|
-
}
|
|
477
|
-
/**
|
|
478
|
-
* Alert — contextual message banner.
|
|
479
|
-
*
|
|
480
|
-
* Accessibility:
|
|
481
|
-
* - Uses role="alert" for errors/warnings (live region, immediately announced)
|
|
482
|
-
* - Uses role="status" for info/success (polite announcement)
|
|
483
|
-
* - Icon + color + text ensures meaning is communicated multiple ways
|
|
583
|
+
* - Uses role="searchbox" for semantic search intent
|
|
584
|
+
* - Clear button has aria-label for screen readers
|
|
585
|
+
* - Search icon is decorative (aria-hidden)
|
|
484
586
|
*/
|
|
485
|
-
declare
|
|
587
|
+
declare const SearchField: react.ForwardRefExoticComponent<SearchFieldProps & react.RefAttributes<HTMLInputElement>>;
|
|
486
588
|
|
|
487
|
-
interface
|
|
488
|
-
|
|
589
|
+
interface AutocompleteOption {
|
|
590
|
+
value: string;
|
|
489
591
|
label: string;
|
|
490
|
-
content: ReactNode;
|
|
491
|
-
disabled?: boolean;
|
|
492
592
|
}
|
|
493
|
-
interface
|
|
494
|
-
/**
|
|
495
|
-
|
|
496
|
-
/**
|
|
497
|
-
|
|
498
|
-
/**
|
|
499
|
-
|
|
500
|
-
/**
|
|
593
|
+
interface AutocompleteProps {
|
|
594
|
+
/** Available options */
|
|
595
|
+
options: AutocompleteOption[];
|
|
596
|
+
/** Selected value */
|
|
597
|
+
value?: string;
|
|
598
|
+
/** Change handler — receives the selected value */
|
|
599
|
+
onChange?: (value: string) => void;
|
|
600
|
+
/** Callback when the text input changes */
|
|
601
|
+
onInputChange?: (inputValue: string) => void;
|
|
602
|
+
/** Placeholder text */
|
|
603
|
+
placeholder?: string;
|
|
604
|
+
/** Disabled state */
|
|
605
|
+
disabled?: boolean;
|
|
606
|
+
/** Error state */
|
|
607
|
+
error?: boolean;
|
|
608
|
+
/** Size variant */
|
|
609
|
+
size?: 'sm' | 'md' | 'lg';
|
|
610
|
+
/** Show a loading spinner in the dropdown */
|
|
611
|
+
loading?: boolean;
|
|
612
|
+
/** Text shown when no results match */
|
|
613
|
+
noResultsText?: string;
|
|
614
|
+
/** Additional CSS class */
|
|
501
615
|
className?: string;
|
|
502
616
|
}
|
|
503
617
|
/**
|
|
504
|
-
*
|
|
618
|
+
* Autocomplete — combobox input with filtered suggestions dropdown.
|
|
505
619
|
*
|
|
506
620
|
* Accessibility:
|
|
507
|
-
* -
|
|
508
|
-
* -
|
|
509
|
-
* -
|
|
510
|
-
* -
|
|
511
|
-
* - Only active panel is in the tab order (tabIndex=0 on active tab)
|
|
621
|
+
* - role="combobox" on input with aria-expanded, aria-controls, aria-activedescendant
|
|
622
|
+
* - Dropdown uses role="listbox" with role="option" items
|
|
623
|
+
* - Arrow keys navigate options, Enter selects, Escape closes
|
|
624
|
+
* - Full ARIA combobox pattern per WAI-ARIA 1.2
|
|
512
625
|
*/
|
|
513
|
-
declare function
|
|
626
|
+
declare function Autocomplete({ options, value, onChange, onInputChange, placeholder, disabled, error, size, loading, noResultsText, className, }: AutocompleteProps): react_jsx_runtime.JSX.Element;
|
|
514
627
|
|
|
515
|
-
interface
|
|
516
|
-
|
|
628
|
+
interface MultiSelectOption {
|
|
629
|
+
value: string;
|
|
630
|
+
label: string;
|
|
631
|
+
}
|
|
632
|
+
interface MultiSelectProps {
|
|
633
|
+
/** Available options */
|
|
634
|
+
options: MultiSelectOption[];
|
|
635
|
+
/** Currently selected values */
|
|
636
|
+
value?: string[];
|
|
637
|
+
/** Change handler — receives updated array of selected values */
|
|
638
|
+
onChange?: (value: string[]) => void;
|
|
639
|
+
/** Placeholder text */
|
|
640
|
+
placeholder?: string;
|
|
641
|
+
/** Disabled state */
|
|
642
|
+
disabled?: boolean;
|
|
643
|
+
/** Error state */
|
|
644
|
+
error?: boolean;
|
|
645
|
+
/** Size variant */
|
|
646
|
+
size?: 'sm' | 'md' | 'lg';
|
|
647
|
+
/** Maximum number of tags visible before showing "+N more" */
|
|
648
|
+
maxDisplayedTags?: number;
|
|
649
|
+
/** Additional CSS class */
|
|
517
650
|
className?: string;
|
|
518
|
-
/** Whether the modal is visible */
|
|
519
|
-
open: boolean;
|
|
520
|
-
/** Called when the modal should close */
|
|
521
|
-
onClose: () => void;
|
|
522
|
-
/** Modal title (rendered in header) */
|
|
523
|
-
title: ReactNode;
|
|
524
|
-
/** Max width */
|
|
525
|
-
size?: 'sm' | 'md' | 'lg' | 'xl';
|
|
526
|
-
/** Footer actions */
|
|
527
|
-
footer?: ReactNode;
|
|
528
651
|
}
|
|
529
652
|
/**
|
|
530
|
-
*
|
|
653
|
+
* MultiSelect — multi-value select with tags and dropdown checkboxes.
|
|
531
654
|
*
|
|
532
655
|
* Accessibility:
|
|
533
|
-
* - Uses
|
|
534
|
-
* -
|
|
535
|
-
* -
|
|
536
|
-
* - Escape
|
|
537
|
-
* - Scrim click closes the dialog
|
|
538
|
-
* - Healthcare note: for destructive actions (e.g., cancel appointment,
|
|
539
|
-
* delete record), always include clear confirmation language in the
|
|
540
|
-
* dialog and use danger-variant buttons
|
|
656
|
+
* - Uses role="combobox" with aria-expanded
|
|
657
|
+
* - Dropdown uses role="listbox" with role="option" items
|
|
658
|
+
* - Tags are removable via keyboard (Backspace removes last)
|
|
659
|
+
* - Escape closes dropdown, focus remains on control
|
|
541
660
|
*/
|
|
542
|
-
declare function
|
|
543
|
-
children?: ReactNode;
|
|
544
|
-
}): react_jsx_runtime.JSX.Element;
|
|
661
|
+
declare function MultiSelect({ options, value, onChange, placeholder, disabled, error, size, maxDisplayedTags, className, }: MultiSelectProps): react_jsx_runtime.JSX.Element;
|
|
545
662
|
|
|
546
|
-
interface
|
|
547
|
-
/**
|
|
548
|
-
|
|
549
|
-
/**
|
|
550
|
-
|
|
663
|
+
interface FileUploadProps {
|
|
664
|
+
/** Accepted file types (e.g., ".pdf,.jpg,image/*") */
|
|
665
|
+
accept?: string;
|
|
666
|
+
/** Allow multiple files */
|
|
667
|
+
multiple?: boolean;
|
|
668
|
+
/** Max file size in bytes */
|
|
669
|
+
maxSize?: number;
|
|
670
|
+
/** Callback when files are selected or dropped */
|
|
671
|
+
onFilesSelected?: (files: File[]) => void;
|
|
672
|
+
/** Disabled state */
|
|
673
|
+
disabled?: boolean;
|
|
674
|
+
/** Error message */
|
|
675
|
+
error?: string;
|
|
676
|
+
/** Additional CSS class */
|
|
677
|
+
className?: string;
|
|
551
678
|
}
|
|
552
679
|
/**
|
|
553
|
-
*
|
|
680
|
+
* FileUpload — dropzone for file upload with click and drag support.
|
|
554
681
|
*
|
|
555
682
|
* Accessibility:
|
|
556
|
-
* -
|
|
557
|
-
* -
|
|
558
|
-
* -
|
|
559
|
-
* -
|
|
560
|
-
* (monospace) and adequate row height for readability under stress
|
|
683
|
+
* - Keyboard accessible via Enter/Space to open file dialog
|
|
684
|
+
* - Uses role="button" on the dropzone
|
|
685
|
+
* - aria-describedby links to instructions
|
|
686
|
+
* - File list announced after selection
|
|
561
687
|
*/
|
|
562
|
-
declare function
|
|
563
|
-
declare function TableHead({ className, children, ...props }: HTMLAttributes<HTMLTableSectionElement>): react_jsx_runtime.JSX.Element;
|
|
564
|
-
declare function TableBody({ className, children, ...props }: HTMLAttributes<HTMLTableSectionElement>): react_jsx_runtime.JSX.Element;
|
|
565
|
-
declare function TableRow({ className, children, ...props }: HTMLAttributes<HTMLTableRowElement>): react_jsx_runtime.JSX.Element;
|
|
566
|
-
declare function TableHeaderCell({ className, children, ...props }: ThHTMLAttributes<HTMLTableCellElement>): react_jsx_runtime.JSX.Element;
|
|
567
|
-
declare function TableCell({ className, children, ...props }: TdHTMLAttributes<HTMLTableCellElement>): react_jsx_runtime.JSX.Element;
|
|
688
|
+
declare function FileUpload({ accept, multiple, maxSize, onFilesSelected, disabled, error, className, }: FileUploadProps): react_jsx_runtime.JSX.Element;
|
|
568
689
|
|
|
569
|
-
interface
|
|
570
|
-
/**
|
|
571
|
-
|
|
572
|
-
/**
|
|
573
|
-
|
|
574
|
-
/**
|
|
575
|
-
|
|
576
|
-
/**
|
|
577
|
-
|
|
578
|
-
/**
|
|
690
|
+
interface OTPInputProps {
|
|
691
|
+
/** Number of OTP digits */
|
|
692
|
+
length?: number;
|
|
693
|
+
/** Current value string */
|
|
694
|
+
value?: string;
|
|
695
|
+
/** Change handler — receives the full OTP string */
|
|
696
|
+
onChange?: (value: string) => void;
|
|
697
|
+
/** Error state */
|
|
698
|
+
error?: boolean;
|
|
699
|
+
/** Disabled state */
|
|
700
|
+
disabled?: boolean;
|
|
701
|
+
/** Auto-focus first input on mount */
|
|
702
|
+
autoFocus?: boolean;
|
|
703
|
+
/** Additional CSS class */
|
|
579
704
|
className?: string;
|
|
580
705
|
}
|
|
581
706
|
/**
|
|
582
|
-
*
|
|
707
|
+
* OTPInput — code/OTP input with separate boxes that auto-advance.
|
|
583
708
|
*
|
|
584
709
|
* Accessibility:
|
|
585
|
-
* -
|
|
586
|
-
* -
|
|
587
|
-
* -
|
|
588
|
-
* -
|
|
589
|
-
* Use for supplementary context only, since tooltips are easy to miss
|
|
590
|
-
* and not accessible on touch devices.
|
|
710
|
+
* - Each digit input has aria-label describing its position
|
|
711
|
+
* - Supports keyboard navigation (Backspace moves to previous)
|
|
712
|
+
* - Paste support fills all boxes at once
|
|
713
|
+
* - Error state communicated via aria-invalid
|
|
591
714
|
*/
|
|
592
|
-
declare function
|
|
715
|
+
declare function OTPInput({ length, value, onChange, error, disabled, autoFocus, className, }: OTPInputProps): react_jsx_runtime.JSX.Element;
|
|
593
716
|
|
|
594
|
-
interface
|
|
595
|
-
/**
|
|
596
|
-
|
|
717
|
+
interface ColorPickerProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
|
|
718
|
+
/** Current color value (hex) */
|
|
719
|
+
value?: string;
|
|
720
|
+
/** Called when color changes */
|
|
721
|
+
onChange?: (color: string) => void;
|
|
722
|
+
/** Predefined color swatches */
|
|
723
|
+
swatches?: string[];
|
|
724
|
+
/** Label */
|
|
725
|
+
label?: string;
|
|
726
|
+
/** Disabled state */
|
|
727
|
+
disabled?: boolean;
|
|
728
|
+
/** Size variant */
|
|
729
|
+
size?: 'sm' | 'md';
|
|
597
730
|
}
|
|
598
731
|
/**
|
|
599
|
-
*
|
|
732
|
+
* ColorPicker — color selection input with swatch palette and native picker.
|
|
733
|
+
*
|
|
734
|
+
* Provides a swatch grid for quick selection plus a native `<input type="color">`
|
|
735
|
+
* fallback for custom colors.
|
|
600
736
|
*
|
|
601
737
|
* Accessibility:
|
|
602
|
-
* -
|
|
603
|
-
* -
|
|
738
|
+
* - Swatch buttons have aria-label with hex value
|
|
739
|
+
* - Selected swatch indicated with aria-pressed
|
|
740
|
+
* - Native color input provides full keyboard + assistive tech support
|
|
604
741
|
*/
|
|
605
|
-
declare
|
|
742
|
+
declare const ColorPicker: react.ForwardRefExoticComponent<ColorPickerProps & react.RefAttributes<HTMLDivElement>>;
|
|
606
743
|
|
|
607
|
-
interface
|
|
608
|
-
/**
|
|
744
|
+
interface RatingProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
|
|
745
|
+
/** Current rating value (0 = no rating) */
|
|
746
|
+
value?: number;
|
|
747
|
+
/** Called when rating changes */
|
|
748
|
+
onChange?: (value: number) => void;
|
|
749
|
+
/** Maximum rating value */
|
|
750
|
+
max?: number;
|
|
751
|
+
/** Size variant */
|
|
609
752
|
size?: 'sm' | 'md' | 'lg';
|
|
610
|
-
/**
|
|
753
|
+
/** Whether the rating is read-only */
|
|
754
|
+
readOnly?: boolean;
|
|
755
|
+
/** Disabled state */
|
|
756
|
+
disabled?: boolean;
|
|
757
|
+
/** Label for accessibility */
|
|
611
758
|
label?: string;
|
|
759
|
+
/** Custom icon renderer — receives filled state */
|
|
760
|
+
renderIcon?: (filled: boolean, index: number) => React.ReactNode;
|
|
612
761
|
}
|
|
613
762
|
/**
|
|
614
|
-
*
|
|
763
|
+
* Rating — star-based rating input with keyboard navigation.
|
|
764
|
+
*
|
|
765
|
+
* Supports custom max values, read-only display, and custom icon rendering.
|
|
615
766
|
*
|
|
616
767
|
* Accessibility:
|
|
617
|
-
* -
|
|
618
|
-
* -
|
|
619
|
-
* -
|
|
620
|
-
* context ("Loading patient records...") so users understand what
|
|
621
|
-
* they are waiting for
|
|
768
|
+
* - Uses radio group pattern with arrow key navigation
|
|
769
|
+
* - Each star has aria-label with its value
|
|
770
|
+
* - Supports keyboard: ArrowLeft/Right to navigate, Enter/Space to select
|
|
622
771
|
*/
|
|
623
|
-
declare
|
|
772
|
+
declare const Rating: react.ForwardRefExoticComponent<RatingProps & react.RefAttributes<HTMLDivElement>>;
|
|
624
773
|
|
|
625
|
-
interface
|
|
626
|
-
/**
|
|
627
|
-
|
|
628
|
-
/**
|
|
629
|
-
|
|
630
|
-
/**
|
|
631
|
-
|
|
632
|
-
/**
|
|
633
|
-
|
|
774
|
+
interface TagInputProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
|
|
775
|
+
/** Current tag values */
|
|
776
|
+
value?: string[];
|
|
777
|
+
/** Called when tags change */
|
|
778
|
+
onChange?: (tags: string[]) => void;
|
|
779
|
+
/** Placeholder for the text input */
|
|
780
|
+
placeholder?: string;
|
|
781
|
+
/** Label */
|
|
782
|
+
label?: string;
|
|
783
|
+
/** Maximum number of tags allowed */
|
|
784
|
+
max?: number;
|
|
785
|
+
/** Size variant */
|
|
786
|
+
size?: 'sm' | 'md';
|
|
787
|
+
/** Disabled state */
|
|
788
|
+
disabled?: boolean;
|
|
789
|
+
/** Error state */
|
|
790
|
+
error?: boolean;
|
|
791
|
+
/** Characters that trigger tag creation (default: Enter, comma) */
|
|
792
|
+
separators?: string[];
|
|
793
|
+
/** Whether duplicates are allowed */
|
|
794
|
+
allowDuplicates?: boolean;
|
|
634
795
|
}
|
|
635
796
|
/**
|
|
636
|
-
*
|
|
797
|
+
* TagInput — multi-value text input that creates tag chips.
|
|
798
|
+
*
|
|
799
|
+
* Users type text and press Enter or comma to create tags.
|
|
800
|
+
* Tags can be removed with Backspace or by clicking the remove button.
|
|
637
801
|
*
|
|
638
802
|
* Accessibility:
|
|
639
|
-
* - aria-
|
|
640
|
-
* -
|
|
641
|
-
*
|
|
803
|
+
* - Tags have aria-label and remove button with aria-label
|
|
804
|
+
* - Backspace removes last tag when input is empty
|
|
805
|
+
* - Screen readers announce tag count via aria-describedby
|
|
642
806
|
*/
|
|
643
|
-
declare
|
|
644
|
-
|
|
645
|
-
type StatusBadgeStatus = 'active' | 'inactive' | 'pending' | 'critical' | 'discharged' | 'scheduled' | 'cancelled' | 'in-progress';
|
|
646
|
-
interface StatusBadgeProps extends HTMLAttributes<HTMLSpanElement> {
|
|
647
|
-
/** Healthcare status */
|
|
648
|
-
status: StatusBadgeStatus;
|
|
649
|
-
/** Size variant */
|
|
650
|
-
size?: 'sm' | 'md';
|
|
651
|
-
/** Show a colored status dot before the label */
|
|
652
|
-
dot?: boolean;
|
|
653
|
-
}
|
|
654
|
-
/**
|
|
655
|
-
* StatusBadge — enhanced badge for healthcare workflow statuses.
|
|
656
|
-
*
|
|
657
|
-
* Accessibility:
|
|
658
|
-
* - Always displays text label alongside color to avoid color-only indication
|
|
659
|
-
* - Healthcare note: maps each clinical status to an appropriate semantic
|
|
660
|
-
* color (critical = red, active = green, pending = amber, etc.)
|
|
661
|
-
*/
|
|
662
|
-
declare function StatusBadge({ status, size, dot, className, children, ...props }: StatusBadgeProps): react_jsx_runtime.JSX.Element;
|
|
807
|
+
declare const TagInput: react.ForwardRefExoticComponent<TagInputProps & react.RefAttributes<HTMLDivElement>>;
|
|
663
808
|
|
|
664
809
|
interface AvatarProps extends HTMLAttributes<HTMLSpanElement> {
|
|
665
810
|
/** Image source URL */
|
|
@@ -685,27 +830,145 @@ interface AvatarProps extends HTMLAttributes<HTMLSpanElement> {
|
|
|
685
830
|
*/
|
|
686
831
|
declare function Avatar({ src, alt, name, size, status, className, ...props }: AvatarProps): react_jsx_runtime.JSX.Element;
|
|
687
832
|
|
|
688
|
-
interface
|
|
689
|
-
/**
|
|
833
|
+
interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {
|
|
834
|
+
/** Status variant */
|
|
835
|
+
status?: 'neutral' | 'success' | 'warning' | 'error' | 'info';
|
|
836
|
+
}
|
|
837
|
+
/**
|
|
838
|
+
* Badge / StatusChip — small label for status or metadata.
|
|
839
|
+
*
|
|
840
|
+
* Accessibility:
|
|
841
|
+
* - Always include meaningful text content (not color alone)
|
|
842
|
+
* - In healthcare contexts, pair with text like "Active", "Pending",
|
|
843
|
+
* "Critical" rather than relying on color to communicate status
|
|
844
|
+
*/
|
|
845
|
+
declare function Badge({ status, className, children, ...props }: BadgeProps): react_jsx_runtime.JSX.Element;
|
|
846
|
+
|
|
847
|
+
interface ChipProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'onClick'> {
|
|
848
|
+
/** Visual color variant */
|
|
849
|
+
color?: 'neutral' | 'primary' | 'success' | 'warning' | 'error' | 'info';
|
|
850
|
+
/** Size */
|
|
851
|
+
size?: 'sm' | 'md';
|
|
852
|
+
/** Chip style */
|
|
853
|
+
variant?: 'filled' | 'outlined';
|
|
854
|
+
/** Icon or avatar slot (leading) */
|
|
690
855
|
icon?: ReactNode;
|
|
691
|
-
/**
|
|
692
|
-
|
|
693
|
-
/**
|
|
856
|
+
/** Whether the chip is clickable */
|
|
857
|
+
onClick?: (e: MouseEvent<HTMLSpanElement>) => void;
|
|
858
|
+
/** Show a delete/dismiss button */
|
|
859
|
+
onDelete?: (e: MouseEvent<HTMLButtonElement>) => void;
|
|
860
|
+
/** Disabled state */
|
|
861
|
+
disabled?: boolean;
|
|
862
|
+
}
|
|
863
|
+
/**
|
|
864
|
+
* Chip — compact interactive element for tags, filters, and selections.
|
|
865
|
+
*
|
|
866
|
+
* Distinct from Badge: Chip is interactive (clickable, deletable) and
|
|
867
|
+
* larger; Badge is a read-only status label.
|
|
868
|
+
*
|
|
869
|
+
* Accessibility:
|
|
870
|
+
* - Clickable chips render with role="button" and tabIndex
|
|
871
|
+
* - Delete button has an accessible aria-label
|
|
872
|
+
* - Disabled state applies aria-disabled
|
|
873
|
+
* - Healthcare note: useful for allergy tags, condition labels,
|
|
874
|
+
* insurance plan tags, filter selections
|
|
875
|
+
*/
|
|
876
|
+
declare const Chip: react.ForwardRefExoticComponent<ChipProps & react.RefAttributes<HTMLSpanElement>>;
|
|
877
|
+
|
|
878
|
+
interface DividerProps extends HTMLAttributes<HTMLHRElement> {
|
|
879
|
+
/** Spacing above and below */
|
|
880
|
+
spacing?: 'none' | 'sm' | 'md' | 'lg';
|
|
881
|
+
}
|
|
882
|
+
/**
|
|
883
|
+
* Divider — horizontal rule for visual separation.
|
|
884
|
+
*
|
|
885
|
+
* Accessibility:
|
|
886
|
+
* - Uses semantic <hr> which conveys a thematic break
|
|
887
|
+
* - role="separator" is implicit for <hr>
|
|
888
|
+
*/
|
|
889
|
+
declare function Divider({ spacing, className, ...props }: DividerProps): react_jsx_runtime.JSX.Element;
|
|
890
|
+
|
|
891
|
+
interface ListProps extends HTMLAttributes<HTMLUListElement> {
|
|
892
|
+
/** Show dividers between items */
|
|
893
|
+
divided?: boolean;
|
|
894
|
+
/** Padding inside list items */
|
|
895
|
+
padding?: 'none' | 'sm' | 'md';
|
|
896
|
+
}
|
|
897
|
+
/**
|
|
898
|
+
* List — composable list container for displaying groups of items.
|
|
899
|
+
*
|
|
900
|
+
* Accessibility:
|
|
901
|
+
* - Uses semantic <ul>/<li> structure
|
|
902
|
+
* - Interactive items rendered as buttons for keyboard access
|
|
903
|
+
* - Disabled items use aria-disabled
|
|
904
|
+
* - Selected items use aria-selected
|
|
905
|
+
*/
|
|
906
|
+
declare const List: react.ForwardRefExoticComponent<ListProps & react.RefAttributes<HTMLUListElement>>;
|
|
907
|
+
interface ListItemProps extends Omit<HTMLAttributes<HTMLLIElement>, 'prefix'> {
|
|
908
|
+
/** Click handler — makes the item interactive */
|
|
909
|
+
onClick?: () => void;
|
|
910
|
+
/** Whether this item is selected */
|
|
911
|
+
selected?: boolean;
|
|
912
|
+
/** Whether this item is disabled */
|
|
913
|
+
disabled?: boolean;
|
|
914
|
+
/** Leading element (icon, avatar, etc.) */
|
|
915
|
+
prefix?: ReactNode;
|
|
916
|
+
/** Trailing element (badge, action button, etc.) */
|
|
917
|
+
suffix?: ReactNode;
|
|
918
|
+
/** Secondary description text */
|
|
694
919
|
description?: string;
|
|
695
|
-
|
|
696
|
-
|
|
920
|
+
}
|
|
921
|
+
declare const ListItem: react.ForwardRefExoticComponent<ListItemProps & react.RefAttributes<HTMLLIElement>>;
|
|
922
|
+
|
|
923
|
+
interface TableProps extends TableHTMLAttributes<HTMLTableElement> {
|
|
924
|
+
/** Compact density for admin/operational views */
|
|
925
|
+
density?: 'default' | 'compact';
|
|
926
|
+
/** Striped rows for scan-ability */
|
|
927
|
+
striped?: boolean;
|
|
697
928
|
}
|
|
698
929
|
/**
|
|
699
|
-
*
|
|
930
|
+
* Table — data table with accessible defaults.
|
|
700
931
|
*
|
|
701
932
|
* Accessibility:
|
|
702
|
-
* -
|
|
703
|
-
* -
|
|
704
|
-
*
|
|
933
|
+
* - Semantic <table> / <thead> / <tbody> / <th> structure
|
|
934
|
+
* - Use scope="col" on header cells
|
|
935
|
+
* - For complex tables, use aria-describedby to link to a caption
|
|
936
|
+
* - Healthcare note: clinical data tables should use tabular numerals
|
|
937
|
+
* (monospace) and adequate row height for readability under stress
|
|
705
938
|
*/
|
|
706
|
-
declare function
|
|
939
|
+
declare function Table({ density, striped, className, children, ...props }: TableProps): react_jsx_runtime.JSX.Element;
|
|
940
|
+
declare function TableHead({ className, children, ...props }: HTMLAttributes<HTMLTableSectionElement>): react_jsx_runtime.JSX.Element;
|
|
941
|
+
declare function TableBody({ className, children, ...props }: HTMLAttributes<HTMLTableSectionElement>): react_jsx_runtime.JSX.Element;
|
|
942
|
+
declare function TableRow({ className, children, ...props }: HTMLAttributes<HTMLTableRowElement>): react_jsx_runtime.JSX.Element;
|
|
943
|
+
declare function TableHeaderCell({ className, children, ...props }: ThHTMLAttributes<HTMLTableCellElement>): react_jsx_runtime.JSX.Element;
|
|
944
|
+
declare function TableCell({ className, children, ...props }: TdHTMLAttributes<HTMLTableCellElement>): react_jsx_runtime.JSX.Element;
|
|
945
|
+
|
|
946
|
+
interface TooltipProps {
|
|
947
|
+
/** Tooltip content */
|
|
948
|
+
content: ReactNode;
|
|
949
|
+
/** Trigger element */
|
|
950
|
+
children: ReactNode;
|
|
951
|
+
/** Placement */
|
|
952
|
+
placement?: 'top' | 'bottom';
|
|
953
|
+
/** Delay before showing (ms) */
|
|
954
|
+
delay?: number;
|
|
955
|
+
/** Additional className */
|
|
956
|
+
className?: string;
|
|
957
|
+
}
|
|
958
|
+
/**
|
|
959
|
+
* Tooltip — supplementary text on hover/focus.
|
|
960
|
+
*
|
|
961
|
+
* Accessibility:
|
|
962
|
+
* - Shows on both hover and keyboard focus
|
|
963
|
+
* - Uses role="tooltip" with aria-describedby linking
|
|
964
|
+
* - Respects reduced motion preferences (no animation)
|
|
965
|
+
* - Healthcare note: never put critical information in tooltips alone.
|
|
966
|
+
* Use for supplementary context only, since tooltips are easy to miss
|
|
967
|
+
* and not accessible on touch devices.
|
|
968
|
+
*/
|
|
969
|
+
declare function Tooltip({ content, children, placement, delay, className }: TooltipProps): react_jsx_runtime.JSX.Element;
|
|
707
970
|
|
|
708
|
-
interface
|
|
971
|
+
interface ProgressProps extends HTMLAttributes<HTMLDivElement> {
|
|
709
972
|
/** Current value (0-100) */
|
|
710
973
|
value: number;
|
|
711
974
|
/** Maximum value (defaults to 100) */
|
|
@@ -720,7 +983,7 @@ interface ProgressBarProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
720
983
|
showValue?: boolean;
|
|
721
984
|
}
|
|
722
985
|
/**
|
|
723
|
-
*
|
|
986
|
+
* Progress — horizontal bar indicating completion or progress.
|
|
724
987
|
*
|
|
725
988
|
* Accessibility:
|
|
726
989
|
* - role="progressbar" with aria-valuenow, aria-valuemin, aria-valuemax
|
|
@@ -728,31 +991,93 @@ interface ProgressBarProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
728
991
|
* - Healthcare note: useful for treatment progress, form completion,
|
|
729
992
|
* or patient intake steps
|
|
730
993
|
*/
|
|
731
|
-
declare function
|
|
994
|
+
declare function Progress({ value, max, size, variant, label, showValue, className, ...props }: ProgressProps): react_jsx_runtime.JSX.Element;
|
|
732
995
|
|
|
733
|
-
interface
|
|
734
|
-
/**
|
|
735
|
-
|
|
736
|
-
/**
|
|
737
|
-
|
|
738
|
-
/**
|
|
739
|
-
|
|
740
|
-
/** Number of
|
|
741
|
-
|
|
996
|
+
interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {
|
|
997
|
+
/** Shape variant */
|
|
998
|
+
variant?: 'text' | 'circular' | 'rectangular';
|
|
999
|
+
/** Width (CSS value) */
|
|
1000
|
+
width?: string | number;
|
|
1001
|
+
/** Height (CSS value) */
|
|
1002
|
+
height?: string | number;
|
|
1003
|
+
/** Number of text lines (only for text variant) */
|
|
1004
|
+
lines?: number;
|
|
1005
|
+
}
|
|
1006
|
+
/**
|
|
1007
|
+
* Skeleton — placeholder loading indicator with shimmer animation.
|
|
1008
|
+
*
|
|
1009
|
+
* Accessibility:
|
|
1010
|
+
* - aria-hidden="true" since it is purely decorative
|
|
1011
|
+
* - Healthcare note: use Skeleton loaders in clinical dashboards to
|
|
1012
|
+
* indicate data is loading, reducing perceived wait time
|
|
1013
|
+
*/
|
|
1014
|
+
declare function Skeleton({ variant, width, height, lines, className, style, ...props }: SkeletonProps): react_jsx_runtime.JSX.Element;
|
|
1015
|
+
|
|
1016
|
+
interface SpinnerProps extends HTMLAttributes<HTMLSpanElement> {
|
|
1017
|
+
/** Size */
|
|
1018
|
+
size?: 'sm' | 'md' | 'lg';
|
|
1019
|
+
/** Accessible label */
|
|
1020
|
+
label?: string;
|
|
1021
|
+
}
|
|
1022
|
+
/**
|
|
1023
|
+
* Spinner / LoadingIndicator — visual loading state.
|
|
1024
|
+
*
|
|
1025
|
+
* Accessibility:
|
|
1026
|
+
* - role="status" with aria-label for screen reader announcement
|
|
1027
|
+
* - aria-live="polite" so loading state is announced without interrupting
|
|
1028
|
+
* - Healthcare note: in clinical workflows, always pair with text
|
|
1029
|
+
* context ("Loading patient records...") so users understand what
|
|
1030
|
+
* they are waiting for
|
|
1031
|
+
*/
|
|
1032
|
+
declare function Spinner({ size, label, className, ...props }: SpinnerProps): react_jsx_runtime.JSX.Element;
|
|
1033
|
+
|
|
1034
|
+
type StatusBadgeStatus = 'active' | 'inactive' | 'pending' | 'critical' | 'discharged' | 'scheduled' | 'cancelled' | 'in-progress';
|
|
1035
|
+
interface StatusBadgeProps extends HTMLAttributes<HTMLSpanElement> {
|
|
1036
|
+
/** Healthcare status */
|
|
1037
|
+
status: StatusBadgeStatus;
|
|
742
1038
|
/** Size variant */
|
|
743
1039
|
size?: 'sm' | 'md';
|
|
1040
|
+
/** Show a colored status dot before the label */
|
|
1041
|
+
dot?: boolean;
|
|
744
1042
|
}
|
|
745
1043
|
/**
|
|
746
|
-
*
|
|
1044
|
+
* StatusBadge — enhanced badge for healthcare workflow statuses.
|
|
747
1045
|
*
|
|
748
1046
|
* Accessibility:
|
|
749
|
-
* -
|
|
750
|
-
* -
|
|
751
|
-
*
|
|
752
|
-
* - Healthcare note: use pagination for patient lists, lab results,
|
|
753
|
-
* and audit logs to keep pages manageable
|
|
1047
|
+
* - Always displays text label alongside color to avoid color-only indication
|
|
1048
|
+
* - Healthcare note: maps each clinical status to an appropriate semantic
|
|
1049
|
+
* color (critical = red, active = green, pending = amber, etc.)
|
|
754
1050
|
*/
|
|
755
|
-
declare function
|
|
1051
|
+
declare function StatusBadge({ status, size, dot, className, children, ...props }: StatusBadgeProps): react_jsx_runtime.JSX.Element;
|
|
1052
|
+
|
|
1053
|
+
type TimelineItemVariant = 'default' | 'success' | 'warning' | 'error' | 'info';
|
|
1054
|
+
interface TimelineItem {
|
|
1055
|
+
/** Unique identifier */
|
|
1056
|
+
id: string;
|
|
1057
|
+
/** Event title */
|
|
1058
|
+
title: string;
|
|
1059
|
+
/** Optional description */
|
|
1060
|
+
description?: string;
|
|
1061
|
+
/** Timestamp display string */
|
|
1062
|
+
timestamp: string;
|
|
1063
|
+
/** Optional icon to replace the default dot */
|
|
1064
|
+
icon?: ReactNode;
|
|
1065
|
+
/** Visual variant */
|
|
1066
|
+
variant?: TimelineItemVariant;
|
|
1067
|
+
}
|
|
1068
|
+
interface TimelineProps extends HTMLAttributes<HTMLOListElement> {
|
|
1069
|
+
/** Timeline items in chronological order */
|
|
1070
|
+
items: TimelineItem[];
|
|
1071
|
+
}
|
|
1072
|
+
/**
|
|
1073
|
+
* Timeline — vertical timeline for displaying sequential events.
|
|
1074
|
+
*
|
|
1075
|
+
* Accessibility:
|
|
1076
|
+
* - Uses semantic <ol> for ordered event sequence
|
|
1077
|
+
* - Each event is an <li> for proper list semantics
|
|
1078
|
+
* - Icons are decorative (aria-hidden)
|
|
1079
|
+
*/
|
|
1080
|
+
declare function Timeline({ items, className, ...props }: TimelineProps): react_jsx_runtime.JSX.Element;
|
|
756
1081
|
|
|
757
1082
|
interface DescriptionListItem {
|
|
758
1083
|
/** Label / term */
|
|
@@ -779,456 +1104,644 @@ interface DescriptionListProps extends HTMLAttributes<HTMLDListElement> {
|
|
|
779
1104
|
*/
|
|
780
1105
|
declare function DescriptionList({ items, layout, columns, className, style, ...props }: DescriptionListProps): react_jsx_runtime.JSX.Element;
|
|
781
1106
|
|
|
782
|
-
interface
|
|
783
|
-
/**
|
|
784
|
-
|
|
785
|
-
/** Content rendered inside the popover */
|
|
786
|
-
content: ReactNode;
|
|
787
|
-
/** Controlled open state */
|
|
788
|
-
open?: boolean;
|
|
789
|
-
/** Callback when open state changes */
|
|
790
|
-
onOpenChange?: (open: boolean) => void;
|
|
791
|
-
/** Placement relative to the trigger */
|
|
792
|
-
placement?: 'top' | 'bottom' | 'left' | 'right';
|
|
793
|
-
/** Alignment along the placement axis */
|
|
794
|
-
align?: 'start' | 'center' | 'end';
|
|
1107
|
+
interface KbdProps extends HTMLAttributes<HTMLElement> {
|
|
1108
|
+
/** Size variant */
|
|
1109
|
+
size?: 'sm' | 'md';
|
|
795
1110
|
}
|
|
796
1111
|
/**
|
|
797
|
-
*
|
|
1112
|
+
* Kbd — keyboard shortcut / key indicator.
|
|
1113
|
+
*
|
|
1114
|
+
* Renders an inline `<kbd>` element styled to look like a physical key.
|
|
1115
|
+
* Use to display keyboard shortcuts in menus, tooltips, and documentation.
|
|
798
1116
|
*
|
|
799
1117
|
* Accessibility:
|
|
800
|
-
* -
|
|
801
|
-
* -
|
|
802
|
-
* - Click outside closes the popover
|
|
803
|
-
* - Healthcare note: use for additional context like patient quick-view,
|
|
804
|
-
* medication details, or field-level help without navigating away
|
|
1118
|
+
* - Uses semantic <kbd> element for screen readers
|
|
1119
|
+
* - Screen readers will announce the content as keyboard input
|
|
805
1120
|
*/
|
|
806
|
-
declare function
|
|
1121
|
+
declare function Kbd({ size, className, children, ...props }: KbdProps): react_jsx_runtime.JSX.Element;
|
|
807
1122
|
|
|
808
|
-
interface
|
|
809
|
-
/**
|
|
810
|
-
|
|
811
|
-
/**
|
|
1123
|
+
interface TreeNode {
|
|
1124
|
+
/** Unique identifier */
|
|
1125
|
+
id: string;
|
|
1126
|
+
/** Display label */
|
|
1127
|
+
label: string;
|
|
1128
|
+
/** Optional icon */
|
|
1129
|
+
icon?: ReactNode;
|
|
1130
|
+
/** Child nodes */
|
|
1131
|
+
children?: TreeNode[];
|
|
1132
|
+
/** Whether the node is disabled */
|
|
1133
|
+
disabled?: boolean;
|
|
1134
|
+
}
|
|
1135
|
+
interface TreeViewProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect'> {
|
|
1136
|
+
/** Tree data */
|
|
1137
|
+
data: TreeNode[];
|
|
1138
|
+
/** IDs of initially expanded nodes (uncontrolled) */
|
|
1139
|
+
defaultExpanded?: string[];
|
|
1140
|
+
/** IDs of expanded nodes (controlled) */
|
|
1141
|
+
expanded?: string[];
|
|
1142
|
+
/** Called when a node is expanded/collapsed */
|
|
1143
|
+
onExpandChange?: (expanded: string[]) => void;
|
|
1144
|
+
/** Currently selected node ID */
|
|
1145
|
+
selected?: string | null;
|
|
1146
|
+
/** Called when a node is selected */
|
|
1147
|
+
onSelect?: (nodeId: string, node: TreeNode) => void;
|
|
1148
|
+
/** Size variant */
|
|
1149
|
+
size?: 'sm' | 'md';
|
|
1150
|
+
/** Show connecting lines between levels */
|
|
1151
|
+
showLines?: boolean;
|
|
1152
|
+
}
|
|
1153
|
+
/**
|
|
1154
|
+
* TreeView — hierarchical data display with expand/collapse.
|
|
1155
|
+
*
|
|
1156
|
+
* Renders nested tree data with keyboard navigation, selection,
|
|
1157
|
+
* and optional connecting guide lines.
|
|
1158
|
+
*
|
|
1159
|
+
* Accessibility:
|
|
1160
|
+
* - Uses tree/treeitem/group ARIA roles
|
|
1161
|
+
* - Arrow keys expand/collapse nodes
|
|
1162
|
+
* - Enter/Space selects nodes
|
|
1163
|
+
* - aria-expanded on branch nodes
|
|
1164
|
+
*/
|
|
1165
|
+
declare const TreeView: react.ForwardRefExoticComponent<TreeViewProps & react.RefAttributes<HTMLDivElement>>;
|
|
1166
|
+
|
|
1167
|
+
type TypographyVariant = 'display-lg' | 'display-md' | 'heading-xl' | 'heading-lg' | 'heading-md' | 'heading-sm' | 'body-lg' | 'body-md' | 'body-sm' | 'label-lg' | 'label-md' | 'caption' | 'data' | 'code';
|
|
1168
|
+
type TypographyColor = 'primary' | 'secondary' | 'muted' | 'inverse' | 'success' | 'warning' | 'error' | 'info' | 'inherit';
|
|
1169
|
+
type TypographyWeight = 'regular' | 'medium' | 'semibold' | 'bold';
|
|
1170
|
+
type TypographyAlign = 'left' | 'center' | 'right';
|
|
1171
|
+
interface TypographyProps extends HTMLAttributes<HTMLElement> {
|
|
1172
|
+
/** Typographic scale variant */
|
|
1173
|
+
variant?: TypographyVariant;
|
|
1174
|
+
/** Text color */
|
|
1175
|
+
color?: TypographyColor;
|
|
1176
|
+
/** Font weight override */
|
|
1177
|
+
weight?: TypographyWeight;
|
|
1178
|
+
/** Text alignment */
|
|
1179
|
+
align?: TypographyAlign;
|
|
1180
|
+
/** Render as a specific HTML element (overrides the variant default) */
|
|
1181
|
+
as?: ElementType;
|
|
1182
|
+
/** Truncate with ellipsis */
|
|
1183
|
+
truncate?: boolean;
|
|
1184
|
+
/** Clamp to N lines */
|
|
1185
|
+
lineClamp?: number;
|
|
1186
|
+
}
|
|
1187
|
+
/**
|
|
1188
|
+
* Typography — text rendering primitive.
|
|
1189
|
+
*
|
|
1190
|
+
* Maps directly to the Aegis type scale tokens and provides a consistent
|
|
1191
|
+
* API for rendering text at any level of the hierarchy.
|
|
1192
|
+
*
|
|
1193
|
+
* Accessibility:
|
|
1194
|
+
* - Defaults to the semantically correct HTML element for each variant
|
|
1195
|
+
* (h1–h4 for headings, p for body, code for code, span for labels)
|
|
1196
|
+
* - Use `as` to override when the visual style and semantic level differ
|
|
1197
|
+
* - `color="inherit"` defers to the parent color
|
|
1198
|
+
*/
|
|
1199
|
+
declare const Typography: react.ForwardRefExoticComponent<TypographyProps & react.RefAttributes<HTMLElement>>;
|
|
1200
|
+
|
|
1201
|
+
interface AlertProps extends HTMLAttributes<HTMLDivElement> {
|
|
1202
|
+
/** Semantic status */
|
|
1203
|
+
status?: 'info' | 'success' | 'warning' | 'error';
|
|
1204
|
+
/** Optional title */
|
|
1205
|
+
title?: string;
|
|
1206
|
+
/** Optional action element (e.g., a close button) */
|
|
1207
|
+
action?: ReactNode;
|
|
1208
|
+
}
|
|
1209
|
+
/**
|
|
1210
|
+
* Alert — contextual message banner.
|
|
1211
|
+
*
|
|
1212
|
+
* Accessibility:
|
|
1213
|
+
* - Uses role="alert" for errors/warnings (live region, immediately announced)
|
|
1214
|
+
* - Uses role="status" for info/success (polite announcement)
|
|
1215
|
+
* - Icon + color + text ensures meaning is communicated multiple ways
|
|
1216
|
+
*/
|
|
1217
|
+
declare function Alert({ status, title, action, className, children, ...props }: AlertProps): react_jsx_runtime.JSX.Element;
|
|
1218
|
+
|
|
1219
|
+
interface BackdropProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onClick'> {
|
|
1220
|
+
/** Whether the backdrop is visible */
|
|
812
1221
|
open: boolean;
|
|
813
|
-
/** Called when the
|
|
814
|
-
|
|
815
|
-
/**
|
|
816
|
-
|
|
817
|
-
/**
|
|
818
|
-
|
|
819
|
-
/**
|
|
820
|
-
|
|
821
|
-
/** Footer actions */
|
|
822
|
-
footer?: ReactNode;
|
|
823
|
-
/** Drawer body content */
|
|
824
|
-
children?: ReactNode;
|
|
1222
|
+
/** Called when the backdrop is clicked */
|
|
1223
|
+
onClick?: (e: MouseEvent<HTMLDivElement>) => void;
|
|
1224
|
+
/** Whether clicking the backdrop should be ignored (e.g. mandatory dialog) */
|
|
1225
|
+
disableClick?: boolean;
|
|
1226
|
+
/** Whether to lock body scroll while open */
|
|
1227
|
+
lockScroll?: boolean;
|
|
1228
|
+
/** Visual intensity */
|
|
1229
|
+
variant?: 'default' | 'light' | 'opaque';
|
|
825
1230
|
}
|
|
826
1231
|
/**
|
|
827
|
-
*
|
|
1232
|
+
* Backdrop — fullscreen overlay primitive.
|
|
1233
|
+
*
|
|
1234
|
+
* Backdrop provides the scrim layer behind Modal, Drawer, and Dialog.
|
|
1235
|
+
* It handles body scroll locking, click-to-dismiss, and fade animation.
|
|
828
1236
|
*
|
|
829
1237
|
* Accessibility:
|
|
830
|
-
* -
|
|
831
|
-
* -
|
|
1238
|
+
* - aria-hidden="true" — the backdrop itself is not interactive content
|
|
1239
|
+
* - Focus management is the responsibility of the surface component (Modal, Drawer)
|
|
1240
|
+
* - Body scroll lock prevents background content from scrolling under the overlay
|
|
1241
|
+
*/
|
|
1242
|
+
declare function Backdrop({ open, onClick, disableClick, lockScroll, variant, className, children, ...props }: BackdropProps): react_jsx_runtime.JSX.Element | null;
|
|
1243
|
+
|
|
1244
|
+
interface DialogProps {
|
|
1245
|
+
/** Whether the dialog is open */
|
|
1246
|
+
open: boolean;
|
|
1247
|
+
/** Called when the user confirms */
|
|
1248
|
+
onConfirm: () => void;
|
|
1249
|
+
/** Called when the user cancels */
|
|
1250
|
+
onCancel: () => void;
|
|
1251
|
+
/** Dialog title */
|
|
1252
|
+
title: string;
|
|
1253
|
+
/** Message or content */
|
|
1254
|
+
message: string | ReactNode;
|
|
1255
|
+
/** Confirm button label */
|
|
1256
|
+
confirmLabel?: string;
|
|
1257
|
+
/** Cancel button label */
|
|
1258
|
+
cancelLabel?: string;
|
|
1259
|
+
/** Visual variant */
|
|
1260
|
+
variant?: 'default' | 'danger';
|
|
1261
|
+
/** Show loading state on confirm button */
|
|
1262
|
+
loading?: boolean;
|
|
1263
|
+
/** Additional class name */
|
|
1264
|
+
className?: string;
|
|
1265
|
+
}
|
|
1266
|
+
/**
|
|
1267
|
+
* Dialog — confirmation dialog built on native <dialog>.
|
|
1268
|
+
*
|
|
1269
|
+
* Accessibility:
|
|
1270
|
+
* - Uses native <dialog> for built-in focus trapping and Escape handling
|
|
832
1271
|
* - aria-labelledby links to the title
|
|
833
|
-
* -
|
|
834
|
-
* -
|
|
835
|
-
*
|
|
1272
|
+
* - aria-describedby links to the message
|
|
1273
|
+
* - Focus moves to cancel button on open (safe default)
|
|
1274
|
+
* - Escape key closes the dialog
|
|
1275
|
+
* - Backdrop click cancels
|
|
836
1276
|
*/
|
|
837
|
-
declare function
|
|
1277
|
+
declare function Dialog({ open, onConfirm, onCancel, title, message, confirmLabel, cancelLabel, variant, loading, className, }: DialogProps): react_jsx_runtime.JSX.Element;
|
|
838
1278
|
|
|
839
|
-
interface
|
|
840
|
-
/**
|
|
841
|
-
|
|
842
|
-
/**
|
|
843
|
-
|
|
844
|
-
/**
|
|
845
|
-
|
|
846
|
-
/**
|
|
847
|
-
|
|
848
|
-
/** Column width (CSS value) */
|
|
849
|
-
width?: string | number;
|
|
850
|
-
/** Text alignment */
|
|
851
|
-
align?: 'left' | 'center' | 'right';
|
|
1279
|
+
interface EmptyStateProps extends HTMLAttributes<HTMLDivElement> {
|
|
1280
|
+
/** Optional icon displayed above the title */
|
|
1281
|
+
icon?: ReactNode;
|
|
1282
|
+
/** Title text */
|
|
1283
|
+
title: string;
|
|
1284
|
+
/** Descriptive text below the title */
|
|
1285
|
+
description?: string;
|
|
1286
|
+
/** Optional action element (e.g., a button) */
|
|
1287
|
+
action?: ReactNode;
|
|
852
1288
|
}
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
emptyMessage?: string;
|
|
875
|
-
/** Row density */
|
|
876
|
-
density?: 'default' | 'compact' | 'comfortable';
|
|
877
|
-
/** Sticky header */
|
|
878
|
-
stickyHeader?: boolean;
|
|
879
|
-
/** Striped rows */
|
|
880
|
-
striped?: boolean;
|
|
881
|
-
/** Callback when a row is clicked */
|
|
882
|
-
onRowClick?: (row: T, index: number) => void;
|
|
1289
|
+
/**
|
|
1290
|
+
* EmptyState — centered placeholder for empty tables, lists, or views.
|
|
1291
|
+
*
|
|
1292
|
+
* Accessibility:
|
|
1293
|
+
* - Uses semantic heading and paragraph elements
|
|
1294
|
+
* - Healthcare note: provide clear, actionable guidance in empty states
|
|
1295
|
+
* (e.g., "No patients match your filters. Try adjusting your search.")
|
|
1296
|
+
*/
|
|
1297
|
+
declare function EmptyState({ icon, title, description, action, className, ...props }: EmptyStateProps): react_jsx_runtime.JSX.Element;
|
|
1298
|
+
|
|
1299
|
+
interface ErrorStateProps extends HTMLAttributes<HTMLDivElement> {
|
|
1300
|
+
/** Error title */
|
|
1301
|
+
title?: string;
|
|
1302
|
+
/** Descriptive message */
|
|
1303
|
+
description?: string;
|
|
1304
|
+
/** Custom icon (defaults to a warning icon) */
|
|
1305
|
+
icon?: ReactNode;
|
|
1306
|
+
/** Retry action element (e.g., a button) */
|
|
1307
|
+
action?: ReactNode;
|
|
1308
|
+
/** Error code or reference for support */
|
|
1309
|
+
errorCode?: string;
|
|
883
1310
|
}
|
|
884
1311
|
/**
|
|
885
|
-
*
|
|
1312
|
+
* ErrorState — centered error placeholder with retry action.
|
|
1313
|
+
*
|
|
1314
|
+
* Composes: Typography
|
|
1315
|
+
*
|
|
1316
|
+
* Use in place of content when a data fetch fails, a page errors,
|
|
1317
|
+
* or a section cannot render. Provides clear messaging, an optional
|
|
1318
|
+
* error code for support, and a retry action.
|
|
886
1319
|
*
|
|
887
1320
|
* Accessibility:
|
|
888
|
-
* -
|
|
889
|
-
* -
|
|
890
|
-
* - Selection checkboxes include accessible labels
|
|
891
|
-
* - Loading state announced via aria-busy
|
|
892
|
-
* - Healthcare note: designed for patient lists, lab results,
|
|
893
|
-
* appointment schedules, and other clinical data views
|
|
1321
|
+
* - Uses role="alert" to announce the error to screen readers
|
|
1322
|
+
* - Action button receives focus for quick retry
|
|
894
1323
|
*/
|
|
895
|
-
declare function
|
|
1324
|
+
declare function ErrorState({ title, description, icon, action, errorCode, className, ...props }: ErrorStateProps): react_jsx_runtime.JSX.Element;
|
|
896
1325
|
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
1326
|
+
type ToastStatus = 'info' | 'success' | 'warning' | 'error';
|
|
1327
|
+
interface ToastProps {
|
|
1328
|
+
/** Toast message */
|
|
1329
|
+
message: string;
|
|
1330
|
+
/** Optional title */
|
|
1331
|
+
title?: string;
|
|
1332
|
+
/** Status variant */
|
|
1333
|
+
status?: ToastStatus;
|
|
1334
|
+
/** Optional action element */
|
|
1335
|
+
action?: ReactNode;
|
|
1336
|
+
/** Called when toast is closed */
|
|
1337
|
+
onClose: () => void;
|
|
1338
|
+
/** Auto-dismiss duration in ms (0 to disable) */
|
|
1339
|
+
duration?: number;
|
|
1340
|
+
/** Additional class name */
|
|
1341
|
+
className?: string;
|
|
1342
|
+
}
|
|
1343
|
+
/**
|
|
1344
|
+
* Toast — transient notification that auto-dismisses.
|
|
1345
|
+
*
|
|
1346
|
+
* Accessibility:
|
|
1347
|
+
* - Uses role="alert" for error/warning (assertive), role="status" for info/success (polite)
|
|
1348
|
+
* - Close button has accessible label
|
|
1349
|
+
* - Auto-dismiss can be disabled for important messages
|
|
1350
|
+
* - Icon + color + text ensures meaning is communicated multiple ways
|
|
1351
|
+
*/
|
|
1352
|
+
declare function Toast({ message, title, status, action, onClose, duration, className, }: ToastProps): react_jsx_runtime.JSX.Element;
|
|
1353
|
+
|
|
1354
|
+
type BannerStatus = 'info' | 'success' | 'warning' | 'error';
|
|
1355
|
+
interface BannerProps extends HTMLAttributes<HTMLDivElement> {
|
|
1356
|
+
/** Status variant */
|
|
1357
|
+
status?: BannerStatus;
|
|
1358
|
+
/** Whether the banner can be dismissed */
|
|
1359
|
+
dismissible?: boolean;
|
|
1360
|
+
/** Called when dismiss button is clicked */
|
|
1361
|
+
onDismiss?: () => void;
|
|
1362
|
+
/** Optional action element */
|
|
1363
|
+
action?: ReactNode;
|
|
1364
|
+
/** Banner content */
|
|
909
1365
|
children: ReactNode;
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
1366
|
+
}
|
|
1367
|
+
/**
|
|
1368
|
+
* Banner — full-width banner for page-level messages.
|
|
1369
|
+
*
|
|
1370
|
+
* Accessibility:
|
|
1371
|
+
* - Uses role="alert" for error/warning (assertive announcement)
|
|
1372
|
+
* - Uses role="status" for info/success (polite announcement)
|
|
1373
|
+
* - Icon + color + text ensures meaning is communicated multiple ways
|
|
1374
|
+
* - Dismiss button has accessible label
|
|
1375
|
+
*/
|
|
1376
|
+
declare function Banner({ status, dismissible, onDismiss, action, children, className, ...props }: BannerProps): react_jsx_runtime.JSX.Element;
|
|
1377
|
+
|
|
1378
|
+
interface AccordionItem {
|
|
1379
|
+
/** Unique identifier */
|
|
1380
|
+
id: string;
|
|
1381
|
+
/** Header title */
|
|
1382
|
+
title: string;
|
|
1383
|
+
/** Panel content */
|
|
1384
|
+
content: ReactNode;
|
|
1385
|
+
}
|
|
1386
|
+
interface AccordionProps {
|
|
1387
|
+
/** Accordion items */
|
|
1388
|
+
items: AccordionItem[];
|
|
1389
|
+
/** Allow multiple panels to be open simultaneously */
|
|
1390
|
+
allowMultiple?: boolean;
|
|
1391
|
+
/** IDs of panels open by default */
|
|
1392
|
+
defaultOpenIds?: string[];
|
|
1393
|
+
/** Additional className */
|
|
913
1394
|
className?: string;
|
|
914
1395
|
}
|
|
915
1396
|
/**
|
|
916
|
-
*
|
|
1397
|
+
* Accordion — expandable/collapsible content sections.
|
|
917
1398
|
*
|
|
918
1399
|
* Accessibility:
|
|
919
|
-
* -
|
|
920
|
-
* -
|
|
921
|
-
* -
|
|
922
|
-
* -
|
|
1400
|
+
* - Button triggers with aria-expanded and aria-controls
|
|
1401
|
+
* - Content panels have role="region" and aria-labelledby
|
|
1402
|
+
* - Animated expand/collapse with proper height transitions
|
|
1403
|
+
* - Supports single or multiple open panels
|
|
923
1404
|
*/
|
|
924
|
-
declare function
|
|
1405
|
+
declare function Accordion({ items, allowMultiple, defaultOpenIds, className }: AccordionProps): react_jsx_runtime.JSX.Element;
|
|
925
1406
|
|
|
926
|
-
interface
|
|
927
|
-
/**
|
|
928
|
-
|
|
929
|
-
/**
|
|
930
|
-
|
|
931
|
-
/**
|
|
932
|
-
|
|
933
|
-
/** Callback when clear button is clicked */
|
|
934
|
-
onClear?: () => void;
|
|
935
|
-
/** Show the clear button when input has a value */
|
|
936
|
-
showClearButton?: boolean;
|
|
1407
|
+
interface AppBarProps extends HTMLAttributes<HTMLElement> {
|
|
1408
|
+
/** Logo or brand element */
|
|
1409
|
+
logo?: ReactNode;
|
|
1410
|
+
/** Navigation items (center/left area) */
|
|
1411
|
+
children?: ReactNode;
|
|
1412
|
+
/** Action elements on the right (profile, notifications, etc.) */
|
|
1413
|
+
actions?: ReactNode;
|
|
937
1414
|
}
|
|
938
1415
|
/**
|
|
939
|
-
*
|
|
1416
|
+
* AppBar — horizontal top navigation bar for application headers.
|
|
940
1417
|
*
|
|
941
1418
|
* Accessibility:
|
|
942
|
-
* - Uses
|
|
943
|
-
* -
|
|
944
|
-
* -
|
|
1419
|
+
* - Uses <header> with <nav> for semantic structure
|
|
1420
|
+
* - Navigation items should be provided as links or buttons
|
|
1421
|
+
* - Fixed height with clean horizontal layout
|
|
945
1422
|
*/
|
|
946
|
-
declare
|
|
1423
|
+
declare function AppBar({ logo, children, actions, className, ...props }: AppBarProps): react_jsx_runtime.JSX.Element;
|
|
947
1424
|
|
|
948
|
-
interface
|
|
949
|
-
/**
|
|
950
|
-
|
|
951
|
-
/**
|
|
952
|
-
|
|
953
|
-
/** Minimum allowed value */
|
|
954
|
-
min?: number;
|
|
955
|
-
/** Maximum allowed value */
|
|
956
|
-
max?: number;
|
|
957
|
-
/** Increment step */
|
|
958
|
-
step?: number;
|
|
959
|
-
/** Size variant */
|
|
960
|
-
size?: 'sm' | 'md' | 'lg';
|
|
961
|
-
/** Error state */
|
|
962
|
-
error?: boolean;
|
|
963
|
-
/** Prefix text (e.g., "$") */
|
|
964
|
-
prefix?: string;
|
|
965
|
-
/** Suffix text (e.g., "mg") */
|
|
966
|
-
suffix?: string;
|
|
1425
|
+
interface CardProps extends HTMLAttributes<HTMLDivElement> {
|
|
1426
|
+
/** Elevation level */
|
|
1427
|
+
elevation?: 'flat' | 'raised';
|
|
1428
|
+
/** Padding size */
|
|
1429
|
+
padding?: 'none' | 'sm' | 'md' | 'lg';
|
|
967
1430
|
}
|
|
968
1431
|
/**
|
|
969
|
-
*
|
|
1432
|
+
* Card — surface container for grouping related content.
|
|
1433
|
+
*
|
|
1434
|
+
* Composes: Paper
|
|
1435
|
+
*
|
|
1436
|
+
* Card is a constrained Paper preset with two elevation levels and
|
|
1437
|
+
* opinionated padding. Use Paper directly when you need full control
|
|
1438
|
+
* over surface, elevation, and radius.
|
|
970
1439
|
*
|
|
971
1440
|
* Accessibility:
|
|
972
|
-
* - Uses
|
|
973
|
-
*
|
|
974
|
-
* -
|
|
975
|
-
* - min/max constraints are communicated to AT
|
|
1441
|
+
* - Uses semantic HTML; add role="region" + aria-label when card
|
|
1442
|
+
* represents a distinct content section
|
|
1443
|
+
* - Border provides separation independent of shadow (not shadow alone)
|
|
976
1444
|
*/
|
|
977
|
-
declare
|
|
1445
|
+
declare function Card({ elevation, padding, className, children, ...props }: CardProps): react_jsx_runtime.JSX.Element;
|
|
978
1446
|
|
|
979
|
-
interface
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
1447
|
+
interface ModalProps {
|
|
1448
|
+
/** Additional className */
|
|
1449
|
+
className?: string;
|
|
1450
|
+
/** Whether the modal is visible */
|
|
1451
|
+
open: boolean;
|
|
1452
|
+
/** Called when the modal should close */
|
|
1453
|
+
onClose: () => void;
|
|
1454
|
+
/** Modal title (rendered in header) */
|
|
1455
|
+
title: ReactNode;
|
|
1456
|
+
/** Max width */
|
|
1457
|
+
size?: 'sm' | 'md' | 'lg' | 'xl';
|
|
1458
|
+
/** Footer actions */
|
|
1459
|
+
footer?: ReactNode;
|
|
983
1460
|
}
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1461
|
+
/**
|
|
1462
|
+
* Modal / Dialog — overlay dialog for focused interactions.
|
|
1463
|
+
*
|
|
1464
|
+
* Accessibility:
|
|
1465
|
+
* - Uses native <dialog> element for built-in focus trapping and Escape handling
|
|
1466
|
+
* - aria-labelledby links to the title
|
|
1467
|
+
* - Focus is moved into the dialog on open
|
|
1468
|
+
* - Escape key closes the dialog
|
|
1469
|
+
* - Scrim click closes the dialog
|
|
1470
|
+
* - Healthcare note: for destructive actions (e.g., cancel appointment,
|
|
1471
|
+
* delete record), always include clear confirmation language in the
|
|
1472
|
+
* dialog and use danger-variant buttons
|
|
1473
|
+
*/
|
|
1474
|
+
declare function Modal({ open, onClose, title, size, footer, className, children }: ModalProps & {
|
|
1475
|
+
children?: ReactNode;
|
|
1476
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1477
|
+
|
|
1478
|
+
interface PaperProps extends HTMLAttributes<HTMLDivElement> {
|
|
1479
|
+
/** Surface background */
|
|
1480
|
+
surface?: 'default' | 'subtle' | 'canvas' | 'raised' | 'overlay';
|
|
1481
|
+
/** Elevation level (shadow depth) */
|
|
1482
|
+
elevation?: 0 | 1 | 2 | 3 | 4;
|
|
1483
|
+
/** Border radius preset */
|
|
1484
|
+
radius?: 'none' | 'sm' | 'md' | 'lg' | 'xl';
|
|
1485
|
+
/** Whether to render a border */
|
|
1486
|
+
bordered?: boolean;
|
|
1487
|
+
/** Padding preset */
|
|
1488
|
+
padding?: 'none' | 'sm' | 'md' | 'lg';
|
|
1489
|
+
/** Render as a different HTML element */
|
|
1490
|
+
as?: 'div' | 'section' | 'article' | 'aside' | 'header' | 'footer';
|
|
1491
|
+
}
|
|
1492
|
+
/**
|
|
1493
|
+
* Paper — the foundational surface primitive.
|
|
1494
|
+
*
|
|
1495
|
+
* Paper provides a styled surface (background, border, shadow, radius)
|
|
1496
|
+
* without any layout opinions. It is the atom from which Card, Modal
|
|
1497
|
+
* content areas, Drawer panels, and other surface components compose.
|
|
1498
|
+
*
|
|
1499
|
+
* Accessibility:
|
|
1500
|
+
* - Paper is a visual primitive with no semantic role by default
|
|
1501
|
+
* - Use the `as` prop to select the correct semantic element
|
|
1502
|
+
* - Add `role` and `aria-label` when the surface represents a landmark
|
|
1503
|
+
*/
|
|
1504
|
+
declare const Paper: react.ForwardRefExoticComponent<PaperProps & react.RefAttributes<HTMLDivElement>>;
|
|
1505
|
+
|
|
1506
|
+
interface PopoverProps extends Omit<HTMLAttributes<HTMLDivElement>, 'content'> {
|
|
1507
|
+
/** Trigger element that opens the popover */
|
|
1508
|
+
trigger: ReactNode;
|
|
1509
|
+
/** Content rendered inside the popover */
|
|
1510
|
+
content: ReactNode;
|
|
1511
|
+
/** Controlled open state */
|
|
1512
|
+
open?: boolean;
|
|
1513
|
+
/** Callback when open state changes */
|
|
1514
|
+
onOpenChange?: (open: boolean) => void;
|
|
1515
|
+
/** Placement relative to the trigger */
|
|
1516
|
+
placement?: 'top' | 'bottom' | 'left' | 'right';
|
|
1517
|
+
/** Alignment along the placement axis */
|
|
1518
|
+
align?: 'start' | 'center' | 'end';
|
|
1519
|
+
}
|
|
1520
|
+
/**
|
|
1521
|
+
* Popover — positioned overlay content triggered by a reference element.
|
|
1522
|
+
*
|
|
1523
|
+
* Accessibility:
|
|
1524
|
+
* - Escape key closes the popover
|
|
1525
|
+
* - Focus is managed: moves into popover on open, returns on close
|
|
1526
|
+
* - Click outside closes the popover
|
|
1527
|
+
* - Healthcare note: use for additional context like patient quick-view,
|
|
1528
|
+
* medication details, or field-level help without navigating away
|
|
1529
|
+
*/
|
|
1530
|
+
declare function Popover({ trigger, content, open: controlledOpen, onOpenChange, placement, align, className, ...props }: PopoverProps): react_jsx_runtime.JSX.Element;
|
|
1531
|
+
|
|
1532
|
+
interface CollapsiblePanelProps {
|
|
1533
|
+
/** Panel title */
|
|
1534
|
+
title: string;
|
|
1535
|
+
/** Whether panel is open by default (uncontrolled) */
|
|
1536
|
+
defaultOpen?: boolean;
|
|
1537
|
+
/** Controlled open state */
|
|
1538
|
+
open?: boolean;
|
|
1539
|
+
/** Callback when open state changes */
|
|
1540
|
+
onToggle?: (open: boolean) => void;
|
|
1541
|
+
/** Panel content */
|
|
1542
|
+
children: ReactNode;
|
|
1543
|
+
/** Additional className */
|
|
1002
1544
|
className?: string;
|
|
1003
1545
|
}
|
|
1004
1546
|
/**
|
|
1005
|
-
*
|
|
1547
|
+
* CollapsiblePanel — a single collapsible section with animated expand/collapse.
|
|
1006
1548
|
*
|
|
1007
1549
|
* Accessibility:
|
|
1008
|
-
* -
|
|
1009
|
-
* -
|
|
1010
|
-
* -
|
|
1550
|
+
* - Button trigger with aria-expanded
|
|
1551
|
+
* - Content region with aria-labelledby linking to the trigger
|
|
1552
|
+
* - Chevron icon rotates on expand/collapse
|
|
1553
|
+
* - Supports both controlled and uncontrolled modes
|
|
1011
1554
|
*/
|
|
1012
|
-
declare function
|
|
1555
|
+
declare function CollapsiblePanel({ title, defaultOpen, open: controlledOpen, onToggle, children, className, }: CollapsiblePanelProps): react_jsx_runtime.JSX.Element;
|
|
1013
1556
|
|
|
1014
|
-
interface
|
|
1015
|
-
|
|
1557
|
+
interface BreadcrumbItem {
|
|
1558
|
+
/** Display label */
|
|
1016
1559
|
label: string;
|
|
1017
|
-
|
|
1560
|
+
/** Optional URL for link items */
|
|
1561
|
+
href?: string;
|
|
1562
|
+
/** Optional click handler */
|
|
1563
|
+
onClick?: () => void;
|
|
1018
1564
|
}
|
|
1019
|
-
interface
|
|
1020
|
-
/**
|
|
1021
|
-
|
|
1022
|
-
/**
|
|
1023
|
-
|
|
1024
|
-
/**
|
|
1025
|
-
options: RadioGroupOption[];
|
|
1026
|
-
/** Currently selected value */
|
|
1027
|
-
value?: string;
|
|
1028
|
-
/** Change handler — receives the selected value */
|
|
1029
|
-
onChange?: (value: string) => void;
|
|
1030
|
-
/** Error message */
|
|
1031
|
-
error?: string;
|
|
1032
|
-
/** Layout direction */
|
|
1033
|
-
orientation?: 'vertical' | 'horizontal';
|
|
1034
|
-
/** Disabled state for all radios */
|
|
1035
|
-
disabled?: boolean;
|
|
1036
|
-
/** Additional CSS class */
|
|
1565
|
+
interface BreadcrumbsProps {
|
|
1566
|
+
/** Breadcrumb path items */
|
|
1567
|
+
items: BreadcrumbItem[];
|
|
1568
|
+
/** Separator between items */
|
|
1569
|
+
separator?: ReactNode;
|
|
1570
|
+
/** Additional className */
|
|
1037
1571
|
className?: string;
|
|
1038
1572
|
}
|
|
1039
1573
|
/**
|
|
1040
|
-
*
|
|
1574
|
+
* Breadcrumbs — navigational aid showing the current location within a hierarchy.
|
|
1041
1575
|
*
|
|
1042
1576
|
* Accessibility:
|
|
1043
|
-
* -
|
|
1044
|
-
* -
|
|
1045
|
-
* -
|
|
1577
|
+
* - Wrapped in <nav> with aria-label="Breadcrumb"
|
|
1578
|
+
* - Uses semantic <ol>/<li> list structure
|
|
1579
|
+
* - Last item has aria-current="page" to indicate current location
|
|
1580
|
+
* - Separator is aria-hidden so screen readers skip it
|
|
1046
1581
|
*/
|
|
1047
|
-
declare function
|
|
1582
|
+
declare function Breadcrumbs({ items, separator, className }: BreadcrumbsProps): react_jsx_runtime.JSX.Element;
|
|
1048
1583
|
|
|
1049
|
-
interface
|
|
1050
|
-
/**
|
|
1051
|
-
value?: number;
|
|
1052
|
-
/** Change handler */
|
|
1053
|
-
onChange?: (value: number) => void;
|
|
1054
|
-
/** Minimum value */
|
|
1055
|
-
min?: number;
|
|
1056
|
-
/** Maximum value */
|
|
1057
|
-
max?: number;
|
|
1058
|
-
/** Step increment */
|
|
1059
|
-
step?: number;
|
|
1060
|
-
/** Disabled state */
|
|
1061
|
-
disabled?: boolean;
|
|
1062
|
-
/** Size variant */
|
|
1063
|
-
size?: 'sm' | 'md';
|
|
1064
|
-
/** Accessible label text */
|
|
1065
|
-
label?: string;
|
|
1066
|
-
/** Show current value next to the slider */
|
|
1067
|
-
showValue?: boolean;
|
|
1068
|
-
/** Additional CSS class */
|
|
1584
|
+
interface DrawerProps {
|
|
1585
|
+
/** Additional className */
|
|
1069
1586
|
className?: string;
|
|
1587
|
+
/** Whether the drawer is visible */
|
|
1588
|
+
open: boolean;
|
|
1589
|
+
/** Called when the drawer should close */
|
|
1590
|
+
onClose: () => void;
|
|
1591
|
+
/** Drawer title */
|
|
1592
|
+
title: ReactNode;
|
|
1593
|
+
/** Width preset */
|
|
1594
|
+
size?: 'sm' | 'md' | 'lg';
|
|
1595
|
+
/** Which side the drawer slides from */
|
|
1596
|
+
position?: 'left' | 'right';
|
|
1597
|
+
/** Footer actions */
|
|
1598
|
+
footer?: ReactNode;
|
|
1599
|
+
/** Drawer body content */
|
|
1600
|
+
children?: ReactNode;
|
|
1070
1601
|
}
|
|
1071
1602
|
/**
|
|
1072
|
-
*
|
|
1603
|
+
* Drawer — side panel overlay for detail views and forms.
|
|
1073
1604
|
*
|
|
1074
1605
|
* Accessibility:
|
|
1075
|
-
* - Uses native
|
|
1076
|
-
* -
|
|
1077
|
-
* - aria-
|
|
1078
|
-
* -
|
|
1606
|
+
* - Uses native <dialog> element for focus trapping
|
|
1607
|
+
* - Escape key closes the drawer
|
|
1608
|
+
* - aria-labelledby links to the title
|
|
1609
|
+
* - Scrim click closes the drawer
|
|
1610
|
+
* - Healthcare note: use drawers for patient detail views, order entry,
|
|
1611
|
+
* and contextual forms that don't require full-page navigation
|
|
1079
1612
|
*/
|
|
1080
|
-
declare
|
|
1613
|
+
declare function Drawer({ open, onClose, title, size, position, footer, className, children, }: DrawerProps): react_jsx_runtime.JSX.Element;
|
|
1081
1614
|
|
|
1082
|
-
interface
|
|
1083
|
-
/**
|
|
1084
|
-
|
|
1085
|
-
/**
|
|
1086
|
-
|
|
1087
|
-
/**
|
|
1088
|
-
|
|
1089
|
-
/**
|
|
1090
|
-
|
|
1091
|
-
/** Disabled state */
|
|
1615
|
+
interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
1616
|
+
/** Visual variant */
|
|
1617
|
+
variant?: 'default' | 'subtle' | 'standalone';
|
|
1618
|
+
/** Color */
|
|
1619
|
+
color?: 'primary' | 'secondary' | 'inherit';
|
|
1620
|
+
/** Whether to show an external indicator */
|
|
1621
|
+
external?: boolean;
|
|
1622
|
+
/** Icon slot (leading) */
|
|
1623
|
+
startIcon?: ReactNode;
|
|
1624
|
+
/** Disabled state (prevents navigation) */
|
|
1092
1625
|
disabled?: boolean;
|
|
1093
|
-
/** Error message */
|
|
1094
|
-
error?: string;
|
|
1095
|
-
/** Additional CSS class */
|
|
1096
|
-
className?: string;
|
|
1097
1626
|
}
|
|
1098
1627
|
/**
|
|
1099
|
-
*
|
|
1628
|
+
* Link — styled anchor primitive for navigation.
|
|
1629
|
+
*
|
|
1630
|
+
* Variants:
|
|
1631
|
+
* - `default` — underlined inline link
|
|
1632
|
+
* - `subtle` — underline on hover only
|
|
1633
|
+
* - `standalone` — no underline, bolder weight, for navigation items
|
|
1100
1634
|
*
|
|
1101
1635
|
* Accessibility:
|
|
1102
|
-
* -
|
|
1103
|
-
* -
|
|
1104
|
-
* - aria-
|
|
1105
|
-
* - File list announced after selection
|
|
1636
|
+
* - Uses native <a> element for full keyboard + screen reader support
|
|
1637
|
+
* - External links get target="_blank" with rel="noopener noreferrer"
|
|
1638
|
+
* - aria-disabled prevents interaction without removing from tab order
|
|
1106
1639
|
*/
|
|
1107
|
-
declare
|
|
1640
|
+
declare const Link: react.ForwardRefExoticComponent<LinkProps & react.RefAttributes<HTMLAnchorElement>>;
|
|
1108
1641
|
|
|
1109
|
-
interface
|
|
1110
|
-
/**
|
|
1111
|
-
|
|
1112
|
-
/**
|
|
1113
|
-
|
|
1114
|
-
/** Change handler — receives the full OTP string */
|
|
1115
|
-
onChange?: (value: string) => void;
|
|
1116
|
-
/** Error state */
|
|
1117
|
-
error?: boolean;
|
|
1642
|
+
interface MenuItemProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onClick'> {
|
|
1643
|
+
/** Leading icon */
|
|
1644
|
+
icon?: ReactNode;
|
|
1645
|
+
/** Trailing content (shortcut, badge, etc.) */
|
|
1646
|
+
trailing?: ReactNode;
|
|
1118
1647
|
/** Disabled state */
|
|
1119
1648
|
disabled?: boolean;
|
|
1120
|
-
/**
|
|
1121
|
-
|
|
1122
|
-
/**
|
|
1123
|
-
|
|
1649
|
+
/** Destructive / danger styling */
|
|
1650
|
+
danger?: boolean;
|
|
1651
|
+
/** Click handler */
|
|
1652
|
+
onClick?: (e: MouseEvent<HTMLDivElement>) => void;
|
|
1653
|
+
}
|
|
1654
|
+
declare function MenuItem({ icon, trailing, disabled, danger, onClick, className, children, ...props }: MenuItemProps): react_jsx_runtime.JSX.Element;
|
|
1655
|
+
declare function MenuDivider(): react_jsx_runtime.JSX.Element;
|
|
1656
|
+
interface MenuGroupProps {
|
|
1657
|
+
/** Group label */
|
|
1658
|
+
label: string;
|
|
1659
|
+
children: ReactNode;
|
|
1124
1660
|
}
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
*/
|
|
1134
|
-
declare function OTPInput({ length, value, onChange, error, disabled, autoFocus, className, }: OTPInputProps): react_jsx_runtime.JSX.Element;
|
|
1135
|
-
|
|
1136
|
-
interface DatePickerProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {
|
|
1137
|
-
/** Size variant */
|
|
1138
|
-
size?: 'sm' | 'md' | 'lg';
|
|
1139
|
-
/** Error state */
|
|
1140
|
-
error?: boolean;
|
|
1141
|
-
/** Full width */
|
|
1142
|
-
fullWidth?: boolean;
|
|
1143
|
-
/** Minimum date (ISO format YYYY-MM-DD) */
|
|
1144
|
-
min?: string;
|
|
1145
|
-
/** Maximum date (ISO format YYYY-MM-DD) */
|
|
1146
|
-
max?: string;
|
|
1661
|
+
declare function MenuGroup({ label, children }: MenuGroupProps): react_jsx_runtime.JSX.Element;
|
|
1662
|
+
interface MenuProps extends HTMLAttributes<HTMLDivElement> {
|
|
1663
|
+
/** The trigger element — a single React element */
|
|
1664
|
+
trigger: ReactNode;
|
|
1665
|
+
/** Horizontal alignment relative to trigger */
|
|
1666
|
+
align?: 'start' | 'end';
|
|
1667
|
+
/** Menu width */
|
|
1668
|
+
width?: number | 'trigger';
|
|
1147
1669
|
}
|
|
1148
1670
|
/**
|
|
1149
|
-
*
|
|
1671
|
+
* Menu — dropdown action menu surface.
|
|
1672
|
+
*
|
|
1673
|
+
* Composes MenuItem, MenuDivider, and MenuGroup as children.
|
|
1150
1674
|
*
|
|
1151
1675
|
* Accessibility:
|
|
1152
|
-
* -
|
|
1153
|
-
* -
|
|
1154
|
-
* -
|
|
1155
|
-
* -
|
|
1676
|
+
* - role="menu" on the dropdown, role="menuitem" on each item
|
|
1677
|
+
* - Arrow-key navigation between items
|
|
1678
|
+
* - Escape closes the menu
|
|
1679
|
+
* - Focus returns to trigger on close
|
|
1680
|
+
* - Click outside closes the menu
|
|
1681
|
+
* - Healthcare note: ideal for patient action menus, record options,
|
|
1682
|
+
* context menus on rows
|
|
1156
1683
|
*/
|
|
1157
|
-
declare
|
|
1684
|
+
declare function Menu({ trigger, align, width, className, children, ...props }: MenuProps): react_jsx_runtime.JSX.Element;
|
|
1158
1685
|
|
|
1159
|
-
interface
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
/**
|
|
1165
|
-
|
|
1166
|
-
/**
|
|
1167
|
-
|
|
1168
|
-
/** Change handler — receives updated array of selected values */
|
|
1169
|
-
onChange?: (value: string[]) => void;
|
|
1170
|
-
/** Placeholder text */
|
|
1171
|
-
placeholder?: string;
|
|
1172
|
-
/** Disabled state */
|
|
1173
|
-
disabled?: boolean;
|
|
1174
|
-
/** Error state */
|
|
1175
|
-
error?: boolean;
|
|
1686
|
+
interface PaginationProps extends Omit<HTMLAttributes<HTMLElement>, 'onChange'> {
|
|
1687
|
+
/** Current active page (1-based) */
|
|
1688
|
+
currentPage: number;
|
|
1689
|
+
/** Total number of pages */
|
|
1690
|
+
totalPages: number;
|
|
1691
|
+
/** Callback when page changes */
|
|
1692
|
+
onPageChange: (page: number) => void;
|
|
1693
|
+
/** Number of sibling pages to show around the current page */
|
|
1694
|
+
siblingCount?: number;
|
|
1176
1695
|
/** Size variant */
|
|
1177
|
-
size?: 'sm' | 'md'
|
|
1178
|
-
/** Maximum number of tags visible before showing "+N more" */
|
|
1179
|
-
maxDisplayedTags?: number;
|
|
1180
|
-
/** Additional CSS class */
|
|
1181
|
-
className?: string;
|
|
1696
|
+
size?: 'sm' | 'md';
|
|
1182
1697
|
}
|
|
1183
1698
|
/**
|
|
1184
|
-
*
|
|
1699
|
+
* Pagination — page navigation for paginated data.
|
|
1185
1700
|
*
|
|
1186
1701
|
* Accessibility:
|
|
1187
|
-
* -
|
|
1188
|
-
* -
|
|
1189
|
-
* -
|
|
1190
|
-
* -
|
|
1702
|
+
* - Wraps in <nav> with aria-label="Pagination"
|
|
1703
|
+
* - Current page indicated with aria-current="page"
|
|
1704
|
+
* - Previous/Next buttons disabled at boundaries
|
|
1705
|
+
* - Healthcare note: use pagination for patient lists, lab results,
|
|
1706
|
+
* and audit logs to keep pages manageable
|
|
1191
1707
|
*/
|
|
1192
|
-
declare function
|
|
1708
|
+
declare function Pagination({ currentPage, totalPages, onPageChange, siblingCount, size, className, ...props }: PaginationProps): react_jsx_runtime.JSX.Element | null;
|
|
1193
1709
|
|
|
1194
|
-
interface
|
|
1195
|
-
|
|
1710
|
+
interface SideNavItem {
|
|
1711
|
+
/** Display label */
|
|
1196
1712
|
label: string;
|
|
1713
|
+
/** Optional URL */
|
|
1714
|
+
href?: string;
|
|
1715
|
+
/** Optional click handler */
|
|
1716
|
+
onClick?: () => void;
|
|
1717
|
+
/** Optional icon element */
|
|
1718
|
+
icon?: ReactNode;
|
|
1719
|
+
/** Whether this item is the active/current page */
|
|
1720
|
+
active?: boolean;
|
|
1721
|
+
/** Nested child items */
|
|
1722
|
+
children?: SideNavItem[];
|
|
1197
1723
|
}
|
|
1198
|
-
interface
|
|
1199
|
-
/**
|
|
1200
|
-
|
|
1201
|
-
/**
|
|
1202
|
-
|
|
1203
|
-
/**
|
|
1204
|
-
|
|
1205
|
-
/**
|
|
1206
|
-
onInputChange?: (inputValue: string) => void;
|
|
1207
|
-
/** Placeholder text */
|
|
1208
|
-
placeholder?: string;
|
|
1209
|
-
/** Disabled state */
|
|
1210
|
-
disabled?: boolean;
|
|
1211
|
-
/** Error state */
|
|
1212
|
-
error?: boolean;
|
|
1213
|
-
/** Size variant */
|
|
1214
|
-
size?: 'sm' | 'md' | 'lg';
|
|
1215
|
-
/** Show a loading spinner in the dropdown */
|
|
1216
|
-
loading?: boolean;
|
|
1217
|
-
/** Text shown when no results match */
|
|
1218
|
-
noResultsText?: string;
|
|
1219
|
-
/** Additional CSS class */
|
|
1724
|
+
interface SideNavProps {
|
|
1725
|
+
/** Navigation items */
|
|
1726
|
+
items: SideNavItem[];
|
|
1727
|
+
/** Whether the sidebar is collapsed to icon-only mode */
|
|
1728
|
+
collapsed?: boolean;
|
|
1729
|
+
/** Callback when collapse state changes */
|
|
1730
|
+
onCollapse?: (collapsed: boolean) => void;
|
|
1731
|
+
/** Additional className */
|
|
1220
1732
|
className?: string;
|
|
1221
1733
|
}
|
|
1222
1734
|
/**
|
|
1223
|
-
*
|
|
1735
|
+
* SideNav — vertical sidebar navigation for dashboard layouts.
|
|
1224
1736
|
*
|
|
1225
1737
|
* Accessibility:
|
|
1226
|
-
* -
|
|
1227
|
-
* -
|
|
1228
|
-
* -
|
|
1229
|
-
* -
|
|
1738
|
+
* - Semantic <nav> with <ul>/<li> structure
|
|
1739
|
+
* - aria-current="page" on the active item
|
|
1740
|
+
* - Collapse toggle button with aria-label
|
|
1741
|
+
* - Title attribute on items when collapsed for tooltip-style labels
|
|
1742
|
+
* - Nested items rendered as sub-lists for proper hierarchy
|
|
1230
1743
|
*/
|
|
1231
|
-
declare function
|
|
1744
|
+
declare function SideNav({ items, collapsed, onCollapse, className }: SideNavProps): react_jsx_runtime.JSX.Element;
|
|
1232
1745
|
|
|
1233
1746
|
interface StepperStep {
|
|
1234
1747
|
label: string;
|
|
@@ -1257,196 +1770,389 @@ interface StepperProps {
|
|
|
1257
1770
|
*/
|
|
1258
1771
|
declare function Stepper({ steps, activeStep, orientation, onStepClick, className, }: StepperProps): react_jsx_runtime.JSX.Element;
|
|
1259
1772
|
|
|
1260
|
-
interface
|
|
1261
|
-
/** Unique identifier */
|
|
1773
|
+
interface Tab {
|
|
1262
1774
|
id: string;
|
|
1263
|
-
|
|
1264
|
-
title: string;
|
|
1265
|
-
/** Panel content */
|
|
1775
|
+
label: string;
|
|
1266
1776
|
content: ReactNode;
|
|
1777
|
+
disabled?: boolean;
|
|
1267
1778
|
}
|
|
1268
|
-
interface
|
|
1269
|
-
/**
|
|
1270
|
-
|
|
1271
|
-
/**
|
|
1272
|
-
|
|
1273
|
-
/**
|
|
1274
|
-
|
|
1275
|
-
/** Additional className */
|
|
1779
|
+
interface TabsProps {
|
|
1780
|
+
/** Tab definitions */
|
|
1781
|
+
tabs: Tab[];
|
|
1782
|
+
/** Controlled active tab id */
|
|
1783
|
+
activeTab?: string;
|
|
1784
|
+
/** Callback when tab changes */
|
|
1785
|
+
onTabChange?: (id: string) => void;
|
|
1786
|
+
/** Additional className for the wrapper */
|
|
1276
1787
|
className?: string;
|
|
1277
1788
|
}
|
|
1278
1789
|
/**
|
|
1279
|
-
*
|
|
1790
|
+
* Tabs — tabbed interface for switching between content panels.
|
|
1280
1791
|
*
|
|
1281
1792
|
* Accessibility:
|
|
1282
|
-
* -
|
|
1283
|
-
* -
|
|
1284
|
-
* -
|
|
1285
|
-
* -
|
|
1793
|
+
* - Full WAI-ARIA tabs pattern: role="tablist", role="tab", role="tabpanel"
|
|
1794
|
+
* - Arrow key navigation between tabs
|
|
1795
|
+
* - Home/End keys jump to first/last tab
|
|
1796
|
+
* - aria-selected, aria-controls, aria-labelledby for AT relationships
|
|
1797
|
+
* - Only active panel is in the tab order (tabIndex=0 on active tab)
|
|
1286
1798
|
*/
|
|
1287
|
-
declare function
|
|
1799
|
+
declare function Tabs({ tabs, activeTab, onTabChange, className }: TabsProps): react_jsx_runtime.JSX.Element;
|
|
1288
1800
|
|
|
1289
|
-
interface
|
|
1801
|
+
interface CommandItem {
|
|
1802
|
+
/** Unique identifier */
|
|
1803
|
+
id: string;
|
|
1290
1804
|
/** Display label */
|
|
1291
1805
|
label: string;
|
|
1292
|
-
/** Optional
|
|
1293
|
-
|
|
1294
|
-
/**
|
|
1295
|
-
|
|
1806
|
+
/** Optional description shown below the label */
|
|
1807
|
+
description?: string;
|
|
1808
|
+
/** Leading icon */
|
|
1809
|
+
icon?: ReactNode;
|
|
1810
|
+
/** Group/category name */
|
|
1811
|
+
group?: string;
|
|
1812
|
+
/** Keyboard shortcut hint */
|
|
1813
|
+
shortcut?: string;
|
|
1814
|
+
/** Whether the item is disabled */
|
|
1815
|
+
disabled?: boolean;
|
|
1816
|
+
/** Custom search keywords (in addition to label) */
|
|
1817
|
+
keywords?: string[];
|
|
1296
1818
|
}
|
|
1297
|
-
interface
|
|
1298
|
-
/**
|
|
1299
|
-
|
|
1300
|
-
/**
|
|
1301
|
-
|
|
1302
|
-
/**
|
|
1819
|
+
interface CommandPaletteProps {
|
|
1820
|
+
/** Whether the palette is open */
|
|
1821
|
+
open: boolean;
|
|
1822
|
+
/** Called when the palette should close */
|
|
1823
|
+
onClose: () => void;
|
|
1824
|
+
/** Available commands */
|
|
1825
|
+
items: CommandItem[];
|
|
1826
|
+
/** Called when a command is selected */
|
|
1827
|
+
onSelect: (item: CommandItem) => void;
|
|
1828
|
+
/** Placeholder text for the search input */
|
|
1829
|
+
placeholder?: string;
|
|
1830
|
+
/** Empty state message */
|
|
1831
|
+
emptyMessage?: string;
|
|
1832
|
+
/** Additional className for the overlay */
|
|
1303
1833
|
className?: string;
|
|
1304
1834
|
}
|
|
1305
1835
|
/**
|
|
1306
|
-
*
|
|
1836
|
+
* CommandPalette — keyboard-driven command search dialog (Cmd+K pattern).
|
|
1837
|
+
*
|
|
1838
|
+
* Renders a modal search input with filterable command list,
|
|
1839
|
+
* grouped results, keyboard navigation, and shortcut hints.
|
|
1307
1840
|
*
|
|
1308
1841
|
* Accessibility:
|
|
1309
|
-
* -
|
|
1310
|
-
* -
|
|
1311
|
-
* -
|
|
1312
|
-
* -
|
|
1842
|
+
* - Uses combobox + listbox ARIA pattern
|
|
1843
|
+
* - Arrow keys navigate items, Enter selects
|
|
1844
|
+
* - Escape closes the palette
|
|
1845
|
+
* - Focus is trapped within the dialog
|
|
1846
|
+
* - aria-activedescendant tracks highlighted item
|
|
1313
1847
|
*/
|
|
1314
|
-
declare
|
|
1848
|
+
declare const CommandPalette: react.ForwardRefExoticComponent<CommandPaletteProps & react.RefAttributes<HTMLDivElement>>;
|
|
1315
1849
|
|
|
1316
|
-
interface
|
|
1317
|
-
/**
|
|
1318
|
-
label
|
|
1319
|
-
/**
|
|
1320
|
-
|
|
1321
|
-
/**
|
|
1322
|
-
|
|
1323
|
-
/**
|
|
1324
|
-
|
|
1325
|
-
/**
|
|
1326
|
-
|
|
1327
|
-
/**
|
|
1328
|
-
children
|
|
1850
|
+
interface FormFieldProps {
|
|
1851
|
+
/** Label text for the field */
|
|
1852
|
+
label?: string;
|
|
1853
|
+
/** HTML for attribute to associate label with input */
|
|
1854
|
+
htmlFor?: string;
|
|
1855
|
+
/** Mark field as required */
|
|
1856
|
+
required?: boolean;
|
|
1857
|
+
/** Error message string — renders HelperText in error state */
|
|
1858
|
+
error?: string;
|
|
1859
|
+
/** Helper text displayed below the input */
|
|
1860
|
+
helperText?: string;
|
|
1861
|
+
/** The form control element (Input, Select, Textarea, etc.) */
|
|
1862
|
+
children: ReactNode;
|
|
1863
|
+
/** Disabled state — visually dims the field */
|
|
1864
|
+
disabled?: boolean;
|
|
1865
|
+
/** Additional CSS class */
|
|
1866
|
+
className?: string;
|
|
1329
1867
|
}
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1868
|
+
/**
|
|
1869
|
+
* FormField — composable wrapper that renders Label + input + HelperText/error.
|
|
1870
|
+
*
|
|
1871
|
+
* Accessibility:
|
|
1872
|
+
* - Generates aria-describedby linking between input and helper/error text
|
|
1873
|
+
* - Error messages use role="alert" via HelperText
|
|
1874
|
+
* - Required indicator on Label
|
|
1875
|
+
* - Disabled state dims the entire field
|
|
1876
|
+
*/
|
|
1877
|
+
declare function FormField({ label, htmlFor, required, error, helperText, children, disabled, className, }: FormFieldProps): react_jsx_runtime.JSX.Element;
|
|
1878
|
+
|
|
1879
|
+
interface ContainerProps extends HTMLAttributes<HTMLDivElement> {
|
|
1880
|
+
/** Max-width preset */
|
|
1881
|
+
maxWidth?: 'sm' | 'md' | 'lg' | 'xl' | 'full';
|
|
1882
|
+
/** Horizontal padding */
|
|
1883
|
+
padding?: 'none' | 'sm' | 'md' | 'lg';
|
|
1884
|
+
/** Center the container horizontally */
|
|
1885
|
+
centered?: boolean;
|
|
1886
|
+
/** Render as a different HTML element */
|
|
1887
|
+
as?: ElementType;
|
|
1888
|
+
}
|
|
1889
|
+
/**
|
|
1890
|
+
* Container — max-width content wrapper with responsive padding.
|
|
1891
|
+
*
|
|
1892
|
+
* Provides consistent horizontal padding and a constrained max-width
|
|
1893
|
+
* for page-level content sections.
|
|
1894
|
+
*
|
|
1895
|
+
* Accessibility:
|
|
1896
|
+
* - Purely presentational — no ARIA roles needed
|
|
1897
|
+
* - Use semantic HTML elements via the `as` prop (e.g., main, section)
|
|
1898
|
+
*/
|
|
1899
|
+
declare const Container: react.ForwardRefExoticComponent<ContainerProps & react.RefAttributes<HTMLDivElement>>;
|
|
1900
|
+
|
|
1901
|
+
interface GridProps extends HTMLAttributes<HTMLDivElement> {
|
|
1902
|
+
/** Number of columns (1-12) or 'auto' for auto-fill */
|
|
1903
|
+
columns?: number | 'auto';
|
|
1904
|
+
/** Gap between grid items */
|
|
1905
|
+
gap?: 'none' | 'sm' | 'md' | 'lg' | 'xl';
|
|
1906
|
+
/** Minimum item width when columns='auto' */
|
|
1907
|
+
minItemWidth?: number;
|
|
1908
|
+
/** Align items vertically */
|
|
1909
|
+
alignItems?: 'start' | 'center' | 'end' | 'stretch';
|
|
1910
|
+
}
|
|
1911
|
+
/**
|
|
1912
|
+
* Grid — CSS grid layout primitive.
|
|
1913
|
+
*
|
|
1914
|
+
* Provides a responsive grid with preset column counts or auto-fill
|
|
1915
|
+
* behavior based on minimum item width.
|
|
1916
|
+
*
|
|
1917
|
+
* Accessibility:
|
|
1918
|
+
* - Purely presentational — no ARIA roles needed
|
|
1919
|
+
* - Grid layout does not affect reading order for screen readers
|
|
1920
|
+
*/
|
|
1921
|
+
declare const Grid: react.ForwardRefExoticComponent<GridProps & react.RefAttributes<HTMLDivElement>>;
|
|
1922
|
+
|
|
1923
|
+
interface StackProps extends HTMLAttributes<HTMLDivElement> {
|
|
1924
|
+
/** Stack direction */
|
|
1925
|
+
direction?: 'vertical' | 'horizontal';
|
|
1926
|
+
/** Gap between items */
|
|
1927
|
+
gap?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
1928
|
+
/** Align items on the cross axis */
|
|
1929
|
+
align?: 'start' | 'center' | 'end' | 'stretch';
|
|
1930
|
+
/** Justify items on the main axis */
|
|
1931
|
+
justify?: 'start' | 'center' | 'end' | 'between' | 'around';
|
|
1932
|
+
/** Whether items should wrap */
|
|
1933
|
+
wrap?: boolean;
|
|
1934
|
+
/** Render as a different HTML element */
|
|
1935
|
+
as?: ElementType;
|
|
1936
|
+
}
|
|
1937
|
+
/**
|
|
1938
|
+
* Stack — flex layout primitive for vertical or horizontal spacing.
|
|
1939
|
+
*
|
|
1940
|
+
* The most common layout component: arranges children with consistent
|
|
1941
|
+
* gaps. Defaults to a vertical stack (column).
|
|
1942
|
+
*
|
|
1943
|
+
* Accessibility:
|
|
1944
|
+
* - Purely presentational — no ARIA roles needed
|
|
1945
|
+
* - Use semantic HTML via `as` prop when appropriate
|
|
1946
|
+
*/
|
|
1947
|
+
declare const Stack: react.ForwardRefExoticComponent<StackProps & react.RefAttributes<HTMLDivElement>>;
|
|
1948
|
+
|
|
1949
|
+
interface InputGroupProps {
|
|
1950
|
+
/** Content rendered before the input (e.g., icon, label, currency symbol) */
|
|
1951
|
+
startAddon?: ReactNode;
|
|
1952
|
+
/** Content rendered after the input (e.g., icon, button, unit label) */
|
|
1953
|
+
endAddon?: ReactNode;
|
|
1954
|
+
/** Size variant — matches TextField sizes */
|
|
1955
|
+
size?: 'sm' | 'md' | 'lg';
|
|
1956
|
+
/** Error state */
|
|
1957
|
+
error?: boolean;
|
|
1958
|
+
/** Disabled state */
|
|
1959
|
+
disabled?: boolean;
|
|
1337
1960
|
/** Additional className */
|
|
1338
1961
|
className?: string;
|
|
1962
|
+
/** Input element */
|
|
1963
|
+
children: ReactNode;
|
|
1339
1964
|
}
|
|
1340
1965
|
/**
|
|
1341
|
-
*
|
|
1966
|
+
* InputGroup — wrapper that adds prefix/suffix addons to an input.
|
|
1967
|
+
*
|
|
1968
|
+
* Wraps a TextField (or other input) with leading/trailing elements
|
|
1969
|
+
* like icons, currency symbols, units, or action buttons.
|
|
1342
1970
|
*
|
|
1343
1971
|
* Accessibility:
|
|
1344
|
-
* -
|
|
1345
|
-
* - aria-
|
|
1346
|
-
* - Collapse toggle button with aria-label
|
|
1347
|
-
* - Title attribute on items when collapsed for tooltip-style labels
|
|
1348
|
-
* - Nested items rendered as sub-lists for proper hierarchy
|
|
1972
|
+
* - Addons are presentational and should not duplicate input labels
|
|
1973
|
+
* - Use aria-describedby on the input to associate addon context
|
|
1349
1974
|
*/
|
|
1350
|
-
declare function
|
|
1975
|
+
declare function InputGroup({ startAddon, endAddon, size, error, disabled, className, children, }: InputGroupProps): react_jsx_runtime.JSX.Element;
|
|
1351
1976
|
|
|
1352
|
-
interface
|
|
1353
|
-
/**
|
|
1354
|
-
|
|
1355
|
-
/**
|
|
1356
|
-
|
|
1357
|
-
/**
|
|
1358
|
-
|
|
1977
|
+
interface ToolbarProps extends HTMLAttributes<HTMLDivElement> {
|
|
1978
|
+
/** Size variant — affects padding and child button sizing */
|
|
1979
|
+
size?: 'sm' | 'md';
|
|
1980
|
+
/** Visual variant */
|
|
1981
|
+
variant?: 'default' | 'outlined';
|
|
1982
|
+
/** Toolbar content (buttons, groups, dividers) */
|
|
1983
|
+
children: ReactNode;
|
|
1984
|
+
}
|
|
1985
|
+
interface ToolbarGroupProps extends HTMLAttributes<HTMLDivElement> {
|
|
1986
|
+
/** Group content */
|
|
1987
|
+
children: ReactNode;
|
|
1988
|
+
}
|
|
1989
|
+
interface ToolbarDividerProps extends HTMLAttributes<HTMLDivElement> {
|
|
1359
1990
|
}
|
|
1360
1991
|
/**
|
|
1361
|
-
*
|
|
1992
|
+
* Toolbar — horizontal action bar with grouped controls.
|
|
1993
|
+
*
|
|
1994
|
+
* Use with ToolbarGroup to visually separate related actions
|
|
1995
|
+
* and ToolbarDivider for explicit separators.
|
|
1362
1996
|
*
|
|
1363
1997
|
* Accessibility:
|
|
1364
|
-
* - Uses
|
|
1365
|
-
* -
|
|
1366
|
-
* - Fixed height with clean horizontal layout
|
|
1998
|
+
* - Uses toolbar ARIA role
|
|
1999
|
+
* - Children should be buttons or controls with labels
|
|
1367
2000
|
*/
|
|
1368
|
-
declare
|
|
2001
|
+
declare const Toolbar: react.ForwardRefExoticComponent<ToolbarProps & react.RefAttributes<HTMLDivElement>>;
|
|
2002
|
+
declare const ToolbarGroup: react.ForwardRefExoticComponent<ToolbarGroupProps & react.RefAttributes<HTMLDivElement>>;
|
|
2003
|
+
declare const ToolbarDivider: react.ForwardRefExoticComponent<ToolbarDividerProps & react.RefAttributes<HTMLDivElement>>;
|
|
1369
2004
|
|
|
1370
|
-
interface
|
|
1371
|
-
/**
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
2005
|
+
interface LabelProps extends LabelHTMLAttributes<HTMLLabelElement> {
|
|
2006
|
+
/** Mark the field as required — adds visual indicator */
|
|
2007
|
+
required?: boolean;
|
|
2008
|
+
}
|
|
2009
|
+
/**
|
|
2010
|
+
* Label — form field label.
|
|
2011
|
+
*
|
|
2012
|
+
* Accessibility:
|
|
2013
|
+
* - Always associate with an input via htmlFor
|
|
2014
|
+
* - Required indicator uses both visual (*) and sr-only text
|
|
2015
|
+
*/
|
|
2016
|
+
declare function Label({ required, className, children, ...props }: LabelProps): react_jsx_runtime.JSX.Element;
|
|
2017
|
+
|
|
2018
|
+
interface HelperTextProps extends HTMLAttributes<HTMLParagraphElement> {
|
|
2019
|
+
/** Render as error message */
|
|
2020
|
+
error?: boolean;
|
|
1383
2021
|
}
|
|
1384
2022
|
/**
|
|
1385
|
-
*
|
|
2023
|
+
* HelperText — descriptive or error text beneath a form field.
|
|
1386
2024
|
*
|
|
1387
2025
|
* Accessibility:
|
|
1388
|
-
* -
|
|
1389
|
-
* -
|
|
1390
|
-
* -
|
|
2026
|
+
* - Link to input via aria-describedby on the input, matching this element's id
|
|
2027
|
+
* - Error messages use role="alert" for immediate screen reader announcement
|
|
2028
|
+
* - Error state uses both color and icon (not color alone)
|
|
1391
2029
|
*/
|
|
1392
|
-
declare function
|
|
2030
|
+
declare function HelperText({ error, className, children, ...props }: HelperTextProps): react_jsx_runtime.JSX.Element;
|
|
1393
2031
|
|
|
1394
|
-
interface
|
|
1395
|
-
/**
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
2032
|
+
interface VisuallyHiddenProps extends HTMLAttributes<HTMLSpanElement> {
|
|
2033
|
+
/** Render as a different element */
|
|
2034
|
+
as?: 'span' | 'div' | 'label';
|
|
2035
|
+
}
|
|
2036
|
+
/**
|
|
2037
|
+
* VisuallyHidden — renders content that is hidden visually but accessible
|
|
2038
|
+
* to screen readers and other assistive technology.
|
|
2039
|
+
*
|
|
2040
|
+
* Use for:
|
|
2041
|
+
* - Labels for icon-only buttons
|
|
2042
|
+
* - Additional context for screen readers
|
|
2043
|
+
* - Skip navigation links
|
|
2044
|
+
* - Form labels that are visually unnecessary but needed for a11y
|
|
2045
|
+
*
|
|
2046
|
+
* This uses the standard screen-reader-only CSS technique that keeps
|
|
2047
|
+
* content in the document flow for assistive tech while hiding it
|
|
2048
|
+
* from sighted users.
|
|
2049
|
+
*/
|
|
2050
|
+
declare function VisuallyHidden({ as: Component, children, ...props }: VisuallyHiddenProps): react_jsx_runtime.JSX.Element;
|
|
2051
|
+
|
|
2052
|
+
interface PortalProps {
|
|
2053
|
+
/** Content to render in the portal */
|
|
2054
|
+
children: ReactNode;
|
|
2055
|
+
/** Target container element (defaults to document.body) */
|
|
2056
|
+
container?: Element | null;
|
|
2057
|
+
/** Whether the portal is active (renders inline when false) */
|
|
2058
|
+
disabled?: boolean;
|
|
2059
|
+
}
|
|
2060
|
+
/**
|
|
2061
|
+
* Portal — renders children into a DOM node outside the parent hierarchy.
|
|
2062
|
+
*
|
|
2063
|
+
* Use for overlays, tooltips, modals, and other floating content that
|
|
2064
|
+
* needs to escape stacking context or overflow constraints.
|
|
2065
|
+
*
|
|
2066
|
+
* Falls back to inline rendering during SSR or when disabled.
|
|
2067
|
+
*
|
|
2068
|
+
* Accessibility:
|
|
2069
|
+
* - Portal does not affect the accessibility tree
|
|
2070
|
+
* - Focus management is the responsibility of the portal content
|
|
2071
|
+
* - Ensure ARIA relationships (aria-describedby, aria-labelledby)
|
|
2072
|
+
* still work across the portal boundary
|
|
2073
|
+
*/
|
|
2074
|
+
declare function Portal({ children, container, disabled }: PortalProps): react_jsx_runtime.JSX.Element;
|
|
2075
|
+
|
|
2076
|
+
interface DataGridColumn<T = Record<string, unknown>> {
|
|
2077
|
+
/** Unique key for the column, used as the data accessor */
|
|
2078
|
+
key: string;
|
|
2079
|
+
/** Column header label */
|
|
2080
|
+
header: ReactNode;
|
|
2081
|
+
/** Custom render function for cell content */
|
|
2082
|
+
render?: (value: unknown, row: T, rowIndex: number) => ReactNode;
|
|
2083
|
+
/** Whether this column is sortable */
|
|
2084
|
+
sortable?: boolean;
|
|
2085
|
+
/** Column width (CSS value) */
|
|
2086
|
+
width?: string | number;
|
|
2087
|
+
/** Text alignment */
|
|
2088
|
+
align?: 'left' | 'center' | 'right';
|
|
2089
|
+
}
|
|
2090
|
+
type SortDirection = 'asc' | 'desc';
|
|
2091
|
+
interface DataGridProps<T = Record<string, unknown>> extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect'> {
|
|
2092
|
+
/** Column definitions */
|
|
2093
|
+
columns: DataGridColumn<T>[];
|
|
2094
|
+
/** Data array */
|
|
2095
|
+
data: T[];
|
|
2096
|
+
/** Enable row selection with checkboxes */
|
|
2097
|
+
selectable?: boolean;
|
|
2098
|
+
/** Callback when selection changes, receives array of selected row indices */
|
|
2099
|
+
onSelectionChange?: (selectedIndices: number[]) => void;
|
|
2100
|
+
/** Currently selected row indices (controlled) */
|
|
2101
|
+
selectedRows?: number[];
|
|
2102
|
+
/** Current sort column key */
|
|
2103
|
+
sortColumn?: string;
|
|
2104
|
+
/** Current sort direction */
|
|
2105
|
+
sortDirection?: SortDirection;
|
|
2106
|
+
/** Callback when a sortable column header is clicked */
|
|
2107
|
+
onSort?: (column: string, direction: SortDirection) => void;
|
|
2108
|
+
/** Show loading skeleton */
|
|
2109
|
+
loading?: boolean;
|
|
2110
|
+
/** Message shown when data is empty */
|
|
2111
|
+
emptyMessage?: string;
|
|
2112
|
+
/** Row density */
|
|
2113
|
+
density?: 'default' | 'compact' | 'comfortable';
|
|
2114
|
+
/** Sticky header */
|
|
2115
|
+
stickyHeader?: boolean;
|
|
2116
|
+
/** Striped rows */
|
|
2117
|
+
striped?: boolean;
|
|
2118
|
+
/** Callback when a row is clicked */
|
|
2119
|
+
onRowClick?: (row: T, index: number) => void;
|
|
1399
2120
|
}
|
|
1400
2121
|
/**
|
|
1401
|
-
*
|
|
2122
|
+
* DataGrid — composable data grid built on Table primitives.
|
|
1402
2123
|
*
|
|
1403
2124
|
* Accessibility:
|
|
1404
|
-
* -
|
|
1405
|
-
* -
|
|
1406
|
-
* -
|
|
1407
|
-
* -
|
|
2125
|
+
* - Built on semantic Table components (table/thead/tbody/tr/th/td)
|
|
2126
|
+
* - Sortable columns use aria-sort
|
|
2127
|
+
* - Selection checkboxes include accessible labels
|
|
2128
|
+
* - Loading state announced via aria-busy
|
|
2129
|
+
* - Healthcare note: designed for patient lists, lab results,
|
|
2130
|
+
* appointment schedules, and other clinical data views
|
|
1408
2131
|
*/
|
|
1409
|
-
declare
|
|
1410
|
-
interface ListItemProps extends Omit<HTMLAttributes<HTMLLIElement>, 'prefix'> {
|
|
1411
|
-
/** Click handler — makes the item interactive */
|
|
1412
|
-
onClick?: () => void;
|
|
1413
|
-
/** Whether this item is selected */
|
|
1414
|
-
selected?: boolean;
|
|
1415
|
-
/** Whether this item is disabled */
|
|
1416
|
-
disabled?: boolean;
|
|
1417
|
-
/** Leading element (icon, avatar, etc.) */
|
|
1418
|
-
prefix?: ReactNode;
|
|
1419
|
-
/** Trailing element (badge, action button, etc.) */
|
|
1420
|
-
suffix?: ReactNode;
|
|
1421
|
-
/** Secondary description text */
|
|
1422
|
-
description?: string;
|
|
1423
|
-
}
|
|
1424
|
-
declare const ListItem: react.ForwardRefExoticComponent<ListItemProps & react.RefAttributes<HTMLLIElement>>;
|
|
2132
|
+
declare function DataGrid<T extends Record<string, unknown>>({ columns, data, selectable, onSelectionChange, selectedRows, sortColumn, sortDirection, onSort, loading, emptyMessage, density, stickyHeader, striped, onRowClick, className, ...props }: DataGridProps<T>): react_jsx_runtime.JSX.Element;
|
|
1425
2133
|
|
|
1426
|
-
interface
|
|
1427
|
-
/**
|
|
1428
|
-
|
|
1429
|
-
/**
|
|
1430
|
-
|
|
1431
|
-
/**
|
|
1432
|
-
|
|
1433
|
-
/**
|
|
1434
|
-
|
|
1435
|
-
/**
|
|
1436
|
-
|
|
1437
|
-
/** Additional className */
|
|
1438
|
-
className?: string;
|
|
2134
|
+
interface DatePickerProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {
|
|
2135
|
+
/** Size variant */
|
|
2136
|
+
size?: 'sm' | 'md' | 'lg';
|
|
2137
|
+
/** Error state */
|
|
2138
|
+
error?: boolean;
|
|
2139
|
+
/** Full width */
|
|
2140
|
+
fullWidth?: boolean;
|
|
2141
|
+
/** Minimum date (ISO format YYYY-MM-DD) */
|
|
2142
|
+
min?: string;
|
|
2143
|
+
/** Maximum date (ISO format YYYY-MM-DD) */
|
|
2144
|
+
max?: string;
|
|
1439
2145
|
}
|
|
1440
2146
|
/**
|
|
1441
|
-
*
|
|
2147
|
+
* DatePicker — styled native date input for consistent appearance.
|
|
1442
2148
|
*
|
|
1443
2149
|
* Accessibility:
|
|
1444
|
-
* -
|
|
1445
|
-
* -
|
|
1446
|
-
* -
|
|
1447
|
-
* -
|
|
2150
|
+
* - Uses native input[type="date"] for built-in AT support
|
|
2151
|
+
* - Date picker popup provided by the browser
|
|
2152
|
+
* - aria-invalid signals error state
|
|
2153
|
+
* - Consistent sizing with other Aegis form controls
|
|
1448
2154
|
*/
|
|
1449
|
-
declare
|
|
2155
|
+
declare const DatePicker: react.ForwardRefExoticComponent<DatePickerProps & react.RefAttributes<HTMLInputElement>>;
|
|
1450
2156
|
|
|
1451
2157
|
type PatientStatus = 'active' | 'inactive' | 'critical';
|
|
1452
2158
|
interface PatientCardProps extends HTMLAttributes<HTMLDivElement> {
|
|
@@ -1460,7 +2166,12 @@ interface PatientCardProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
1460
2166
|
age: number;
|
|
1461
2167
|
/** Patient gender */
|
|
1462
2168
|
gender: string;
|
|
1463
|
-
/** Avatar
|
|
2169
|
+
/** Avatar image URL (preferred) */
|
|
2170
|
+
avatarSrc?: string;
|
|
2171
|
+
/**
|
|
2172
|
+
* @deprecated Use `avatarSrc` instead. Accepts a custom ReactNode for the avatar slot.
|
|
2173
|
+
* When both `avatar` and `avatarSrc` are provided, `avatarSrc` takes precedence.
|
|
2174
|
+
*/
|
|
1464
2175
|
avatar?: ReactNode;
|
|
1465
2176
|
/** Patient status */
|
|
1466
2177
|
status?: PatientStatus;
|
|
@@ -1472,12 +2183,14 @@ interface PatientCardProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
1472
2183
|
/**
|
|
1473
2184
|
* PatientCard — summary card displaying patient demographics and key info.
|
|
1474
2185
|
*
|
|
2186
|
+
* Composes: Card, Avatar, Badge, Typography, Chip, Divider
|
|
2187
|
+
*
|
|
1475
2188
|
* Accessibility:
|
|
1476
2189
|
* - Uses role="region" with aria-label for screen readers
|
|
1477
2190
|
* - Status communicated via text, not color alone
|
|
1478
|
-
* - Allergy list uses semantic
|
|
2191
|
+
* - Allergy list uses Chip components with semantic markup
|
|
1479
2192
|
*/
|
|
1480
|
-
declare function PatientCard({ name, mrn, dob, age, gender, avatar, status, allergies, primaryPhysician, className, ...props }: PatientCardProps): react_jsx_runtime.JSX.Element;
|
|
2193
|
+
declare function PatientCard({ name, mrn, dob, age, gender, avatarSrc, avatar, status, allergies, primaryPhysician, className, ...props }: PatientCardProps): react_jsx_runtime.JSX.Element;
|
|
1481
2194
|
|
|
1482
2195
|
type AppointmentStatus = 'scheduled' | 'checked-in' | 'in-progress' | 'completed' | 'cancelled' | 'no-show';
|
|
1483
2196
|
interface AppointmentCardProps extends HTMLAttributes<HTMLDivElement> {
|
|
@@ -1499,41 +2212,14 @@ interface AppointmentCardProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
1499
2212
|
/**
|
|
1500
2213
|
* AppointmentCard — displays appointment summary with status indicator.
|
|
1501
2214
|
*
|
|
2215
|
+
* Composes: Card, StatusBadge, Typography
|
|
2216
|
+
*
|
|
1502
2217
|
* Accessibility:
|
|
1503
2218
|
* - Uses role="region" with aria-label for context
|
|
1504
2219
|
* - Status conveyed via text label, not color alone
|
|
1505
2220
|
*/
|
|
1506
2221
|
declare function AppointmentCard({ patientName, date, time, type, provider, status, location, className, ...props }: AppointmentCardProps): react_jsx_runtime.JSX.Element;
|
|
1507
2222
|
|
|
1508
|
-
type TimelineItemVariant = 'default' | 'success' | 'warning' | 'error' | 'info';
|
|
1509
|
-
interface TimelineItem {
|
|
1510
|
-
/** Unique identifier */
|
|
1511
|
-
id: string;
|
|
1512
|
-
/** Event title */
|
|
1513
|
-
title: string;
|
|
1514
|
-
/** Optional description */
|
|
1515
|
-
description?: string;
|
|
1516
|
-
/** Timestamp display string */
|
|
1517
|
-
timestamp: string;
|
|
1518
|
-
/** Optional icon to replace the default dot */
|
|
1519
|
-
icon?: ReactNode;
|
|
1520
|
-
/** Visual variant */
|
|
1521
|
-
variant?: TimelineItemVariant;
|
|
1522
|
-
}
|
|
1523
|
-
interface TimelineProps extends HTMLAttributes<HTMLOListElement> {
|
|
1524
|
-
/** Timeline items in chronological order */
|
|
1525
|
-
items: TimelineItem[];
|
|
1526
|
-
}
|
|
1527
|
-
/**
|
|
1528
|
-
* Timeline — vertical timeline for displaying sequential events.
|
|
1529
|
-
*
|
|
1530
|
-
* Accessibility:
|
|
1531
|
-
* - Uses semantic <ol> for ordered event sequence
|
|
1532
|
-
* - Each event is an <li> for proper list semantics
|
|
1533
|
-
* - Icons are decorative (aria-hidden)
|
|
1534
|
-
*/
|
|
1535
|
-
declare function Timeline({ items, className, ...props }: TimelineProps): react_jsx_runtime.JSX.Element;
|
|
1536
|
-
|
|
1537
2223
|
type ClinicalSeverity = 'critical' | 'high' | 'moderate' | 'low';
|
|
1538
2224
|
interface ClinicalBannerProps extends HTMLAttributes<HTMLDivElement> {
|
|
1539
2225
|
/** Severity level */
|
|
@@ -1550,10 +2236,14 @@ interface ClinicalBannerProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
1550
2236
|
/**
|
|
1551
2237
|
* ClinicalBanner — prominent banner for critical clinical alerts.
|
|
1552
2238
|
*
|
|
2239
|
+
* Composes: Banner, Typography
|
|
2240
|
+
*
|
|
2241
|
+
* Wraps the core Banner component with healthcare-specific severity semantics
|
|
2242
|
+
* (critical / high / moderate / low) and an enhanced left-border accent.
|
|
2243
|
+
*
|
|
1553
2244
|
* Accessibility:
|
|
1554
|
-
* -
|
|
2245
|
+
* - Inherits Banner's role="alert" for urgent statuses
|
|
1555
2246
|
* - Icon + color + text ensures meaning is communicated multiple ways
|
|
1556
|
-
* - Dismiss button has accessible label
|
|
1557
2247
|
*/
|
|
1558
2248
|
declare function ClinicalBanner({ severity, title, dismissible, onDismiss, children, className, ...props }: ClinicalBannerProps): react_jsx_runtime.JSX.Element;
|
|
1559
2249
|
|
|
@@ -1579,8 +2269,9 @@ interface MedicationRowProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
1579
2269
|
/**
|
|
1580
2270
|
* MedicationRow — compact horizontal display of medication details.
|
|
1581
2271
|
*
|
|
2272
|
+
* Composes: StatusBadge, Typography
|
|
2273
|
+
*
|
|
1582
2274
|
* Accessibility:
|
|
1583
|
-
* - Uses role="row" semantics through div structure
|
|
1584
2275
|
* - Status communicated via text label, not color alone
|
|
1585
2276
|
* - All information is available as text content for screen readers
|
|
1586
2277
|
*/
|
|
@@ -1604,6 +2295,8 @@ interface LabResultRowProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
1604
2295
|
/**
|
|
1605
2296
|
* LabResultRow — displays a single lab test result with visual status indicator.
|
|
1606
2297
|
*
|
|
2298
|
+
* Composes: Badge, Typography
|
|
2299
|
+
*
|
|
1607
2300
|
* Accessibility:
|
|
1608
2301
|
* - Status conveyed via text label ("High", "Low", "Critical"), not color alone
|
|
1609
2302
|
* - Arrow indicators are supplementary (aria-hidden)
|
|
@@ -1632,99 +2325,348 @@ interface InsuranceCardProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
1632
2325
|
/**
|
|
1633
2326
|
* InsuranceCard — displays insurance plan summary information.
|
|
1634
2327
|
*
|
|
2328
|
+
* Composes: Card, Badge, Typography, DescriptionList, Divider
|
|
2329
|
+
*
|
|
1635
2330
|
* Accessibility:
|
|
1636
2331
|
* - Uses role="region" with aria-label for screen reader context
|
|
1637
2332
|
* - Status communicated via text label, not color alone
|
|
1638
|
-
* -
|
|
2333
|
+
* - DescriptionList provides semantic label-value pairs
|
|
1639
2334
|
*/
|
|
1640
2335
|
declare function InsuranceCard({ planName, memberId, groupNumber, planType, status, effectiveDate, expirationDate, className, ...props }: InsuranceCardProps): react_jsx_runtime.JSX.Element;
|
|
1641
2336
|
|
|
1642
|
-
type
|
|
1643
|
-
interface
|
|
1644
|
-
/**
|
|
1645
|
-
|
|
1646
|
-
/** Optional
|
|
1647
|
-
|
|
1648
|
-
/**
|
|
1649
|
-
|
|
1650
|
-
/**
|
|
1651
|
-
|
|
1652
|
-
/**
|
|
1653
|
-
|
|
1654
|
-
/**
|
|
1655
|
-
|
|
1656
|
-
/**
|
|
1657
|
-
|
|
2337
|
+
type ChartCardState = 'ready' | 'loading' | 'empty' | 'error';
|
|
2338
|
+
interface ChartCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
2339
|
+
/** Card title (e.g. "30-day patient adherence") */
|
|
2340
|
+
title?: ReactNode;
|
|
2341
|
+
/** Optional subtitle / explanation */
|
|
2342
|
+
subtitle?: ReactNode;
|
|
2343
|
+
/** Headline metric displayed prominently in the header */
|
|
2344
|
+
metric?: ReactNode;
|
|
2345
|
+
/** Trend chip beside the metric (use the Aegis Badge or any node) */
|
|
2346
|
+
trend?: ReactNode;
|
|
2347
|
+
/** Optional actions (filters, export, etc.) rendered in the header */
|
|
2348
|
+
actions?: ReactNode;
|
|
2349
|
+
/** Footer content rendered below the chart body */
|
|
2350
|
+
footer?: ReactNode;
|
|
2351
|
+
/** Visual padding density */
|
|
2352
|
+
density?: 'comfortable' | 'compact';
|
|
2353
|
+
/** Render state — controls whether children, loader, empty, or error renders */
|
|
2354
|
+
state?: ChartCardState;
|
|
2355
|
+
/** Custom empty-state node */
|
|
2356
|
+
emptyState?: ReactNode;
|
|
2357
|
+
/** Custom loading-state node */
|
|
2358
|
+
loadingState?: ReactNode;
|
|
2359
|
+
/** Custom error-state node */
|
|
2360
|
+
errorState?: ReactNode;
|
|
2361
|
+
/** Optional aria-label for the chart region */
|
|
2362
|
+
ariaLabel?: string;
|
|
1658
2363
|
}
|
|
1659
2364
|
/**
|
|
1660
|
-
*
|
|
2365
|
+
* ChartCard — the unifying shell for every Aegis chart component.
|
|
1661
2366
|
*
|
|
1662
|
-
*
|
|
1663
|
-
*
|
|
1664
|
-
*
|
|
1665
|
-
*
|
|
1666
|
-
*
|
|
2367
|
+
* Provides a consistent header (title, subtitle, headline metric, trend chip,
|
|
2368
|
+
* actions), body slot, footer slot, and built-in loading / empty / error states.
|
|
2369
|
+
*
|
|
2370
|
+
* Every chart component in Aegis composes this card so the system feels
|
|
2371
|
+
* cohesive and developers get visual states for free.
|
|
1667
2372
|
*/
|
|
1668
|
-
declare function
|
|
2373
|
+
declare function ChartCard({ title, subtitle, metric, trend, actions, footer, density, state, emptyState, loadingState, errorState, ariaLabel, className, children, ...props }: ChartCardProps): react_jsx_runtime.JSX.Element;
|
|
1669
2374
|
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
2375
|
+
/**
|
|
2376
|
+
* Skyfall Aegis — Chart Theme
|
|
2377
|
+
*
|
|
2378
|
+
* Centralized theme tokens for all Recharts-based components.
|
|
2379
|
+
* Reads from CSS custom properties so chart visuals stay in sync with
|
|
2380
|
+
* the rest of the Aegis design system.
|
|
2381
|
+
*/
|
|
2382
|
+
/**
|
|
2383
|
+
* The Aegis chart series palette. Order is intentional — earlier colors
|
|
2384
|
+
* are used first so simple charts always pull from the most credible,
|
|
2385
|
+
* brand-aligned hues before moving into supporting accents.
|
|
2386
|
+
*/
|
|
2387
|
+
declare const aegisSeriesPalette: readonly ["var(--aegis-data-vis-1)", "var(--aegis-data-vis-2)", "var(--aegis-data-vis-3)", "var(--aegis-data-vis-4)", "var(--aegis-data-vis-5)"];
|
|
2388
|
+
/**
|
|
2389
|
+
* Resolve a series color by index, wrapping the palette if more series
|
|
2390
|
+
* exist than available colors. Accepts an explicit override.
|
|
2391
|
+
*/
|
|
2392
|
+
declare function getSeriesColor(index: number, override?: string): string;
|
|
2393
|
+
/**
|
|
2394
|
+
* Token-driven chart theme. Used to style axes, gridlines, tooltips,
|
|
2395
|
+
* legends, etc. so every chart in Aegis feels like part of one system.
|
|
2396
|
+
*/
|
|
2397
|
+
declare const aegisChartTheme: {
|
|
2398
|
+
readonly axis: {
|
|
2399
|
+
readonly stroke: "var(--aegis-data-vis-axis)";
|
|
2400
|
+
readonly fontSize: 12;
|
|
2401
|
+
readonly fontFamily: "var(--aegis-font-family-sans)";
|
|
2402
|
+
readonly tickColor: "var(--aegis-color-text-muted)";
|
|
2403
|
+
};
|
|
2404
|
+
readonly grid: {
|
|
2405
|
+
readonly stroke: "var(--aegis-data-vis-gridline)";
|
|
2406
|
+
readonly strokeDasharray: "3 3";
|
|
2407
|
+
};
|
|
2408
|
+
readonly tooltip: {
|
|
2409
|
+
readonly background: "var(--aegis-color-surface-overlay)";
|
|
2410
|
+
readonly border: "var(--aegis-color-border-default)";
|
|
2411
|
+
readonly text: "var(--aegis-color-text-primary)";
|
|
2412
|
+
readonly muted: "var(--aegis-color-text-secondary)";
|
|
2413
|
+
};
|
|
2414
|
+
readonly reference: {
|
|
2415
|
+
readonly stroke: "var(--aegis-color-text-muted)";
|
|
2416
|
+
readonly strokeDasharray: "4 4";
|
|
2417
|
+
};
|
|
2418
|
+
};
|
|
2419
|
+
type ChartSeries<T = Record<string, unknown>> = {
|
|
2420
|
+
/** Property key on the data row that holds the series value */
|
|
2421
|
+
dataKey: keyof T & string;
|
|
2422
|
+
/** Display label for tooltip / legend */
|
|
2423
|
+
label?: string;
|
|
2424
|
+
/** Optional explicit color (defaults to Aegis palette) */
|
|
2425
|
+
color?: string;
|
|
2426
|
+
};
|
|
2427
|
+
type ValueFormatter = (value: number | string) => string;
|
|
2428
|
+
/** Default number formatter — locale-aware, with sensible compact behavior */
|
|
2429
|
+
declare const defaultValueFormatter: ValueFormatter;
|
|
2430
|
+
|
|
2431
|
+
interface ChartTooltipProps extends TooltipProps$1<number, string> {
|
|
2432
|
+
/** Optional formatter for displayed values */
|
|
2433
|
+
valueFormatter?: ValueFormatter;
|
|
2434
|
+
/** Optional formatter for the tooltip label (e.g. axis category) */
|
|
2435
|
+
labelFormatter?: (label: string) => string;
|
|
1691
2436
|
}
|
|
1692
2437
|
/**
|
|
1693
|
-
*
|
|
2438
|
+
* Aegis-styled tooltip used by every chart in the system.
|
|
1694
2439
|
*
|
|
1695
|
-
*
|
|
1696
|
-
* - Uses native <dialog> for built-in focus trapping and Escape handling
|
|
1697
|
-
* - aria-labelledby links to the title
|
|
1698
|
-
* - aria-describedby links to the message
|
|
1699
|
-
* - Focus moves to cancel button on open (safe default)
|
|
1700
|
-
* - Escape key closes the dialog
|
|
1701
|
-
* - Backdrop click cancels
|
|
2440
|
+
* Pass directly to Recharts `<Tooltip content={<ChartTooltip />} />`.
|
|
1702
2441
|
*/
|
|
1703
|
-
declare function
|
|
2442
|
+
declare function ChartTooltip({ active, payload, label, valueFormatter, labelFormatter, }: ChartTooltipProps): react_jsx_runtime.JSX.Element | null;
|
|
1704
2443
|
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
2444
|
+
/**
|
|
2445
|
+
* Aegis-styled chart legend. Pass to Recharts via:
|
|
2446
|
+
* <Legend content={<ChartLegend />} />
|
|
2447
|
+
*/
|
|
2448
|
+
declare function ChartLegend({ payload }: LegendProps): react_jsx_runtime.JSX.Element | null;
|
|
2449
|
+
|
|
2450
|
+
interface LineChartProps<T extends Record<string, unknown>> extends Omit<ChartCardProps, 'children'> {
|
|
2451
|
+
/** Row-shaped data — each row represents one x-axis category */
|
|
2452
|
+
data: T[];
|
|
2453
|
+
/** Property name on each row used for the x-axis */
|
|
2454
|
+
xKey: keyof T & string;
|
|
2455
|
+
/** One or more series definitions */
|
|
2456
|
+
series: ChartSeries<T>[];
|
|
2457
|
+
/** Chart height in pixels (defaults to 280) */
|
|
2458
|
+
height?: number;
|
|
2459
|
+
/** Show legend (defaults to true when more than one series) */
|
|
2460
|
+
showLegend?: boolean;
|
|
2461
|
+
/** Show grid (defaults to true) */
|
|
2462
|
+
showGrid?: boolean;
|
|
2463
|
+
/** Format values in tooltip / axis */
|
|
2464
|
+
valueFormatter?: ValueFormatter;
|
|
2465
|
+
/** Optional reference line value(s) (e.g. target threshold) */
|
|
2466
|
+
referenceLines?: {
|
|
2467
|
+
value: number;
|
|
2468
|
+
label?: string;
|
|
2469
|
+
}[];
|
|
2470
|
+
/** Smooth curves (defaults to true) */
|
|
2471
|
+
smooth?: boolean;
|
|
1717
2472
|
}
|
|
1718
2473
|
/**
|
|
1719
|
-
*
|
|
2474
|
+
* Aegis LineChart — wraps Recharts with Aegis tokens, shell, and states.
|
|
2475
|
+
*
|
|
2476
|
+
* Time-series and trend visualization for dashboards. Pair with KpiStatCard
|
|
2477
|
+
* for headline metrics or use standalone in a ChartCard layout.
|
|
2478
|
+
*/
|
|
2479
|
+
declare function LineChart<T extends Record<string, unknown>>({ data, xKey, series, height, showLegend, showGrid, valueFormatter, referenceLines, smooth, state, ...cardProps }: LineChartProps<T>): react_jsx_runtime.JSX.Element;
|
|
2480
|
+
|
|
2481
|
+
interface AreaChartProps<T extends Record<string, unknown>> extends Omit<ChartCardProps, 'children'> {
|
|
2482
|
+
data: T[];
|
|
2483
|
+
xKey: keyof T & string;
|
|
2484
|
+
series: ChartSeries<T>[];
|
|
2485
|
+
height?: number;
|
|
2486
|
+
showLegend?: boolean;
|
|
2487
|
+
showGrid?: boolean;
|
|
2488
|
+
/** Stack areas (false = overlapping) */
|
|
2489
|
+
stacked?: boolean;
|
|
2490
|
+
valueFormatter?: ValueFormatter;
|
|
2491
|
+
referenceLines?: {
|
|
2492
|
+
value: number;
|
|
2493
|
+
label?: string;
|
|
2494
|
+
}[];
|
|
2495
|
+
}
|
|
2496
|
+
/**
|
|
2497
|
+
* Aegis AreaChart — for cumulative trend / volume visualization.
|
|
2498
|
+
*
|
|
2499
|
+
* Set `stacked` to true to stack series on top of each other (e.g. cohort
|
|
2500
|
+
* composition over time).
|
|
2501
|
+
*/
|
|
2502
|
+
declare function AreaChart<T extends Record<string, unknown>>({ data, xKey, series, height, showLegend, showGrid, stacked, valueFormatter, referenceLines, state, ...cardProps }: AreaChartProps<T>): react_jsx_runtime.JSX.Element;
|
|
2503
|
+
|
|
2504
|
+
interface BarChartProps<T extends Record<string, unknown>> extends Omit<ChartCardProps, 'children'> {
|
|
2505
|
+
data: T[];
|
|
2506
|
+
xKey: keyof T & string;
|
|
2507
|
+
series: ChartSeries<T>[];
|
|
2508
|
+
height?: number;
|
|
2509
|
+
showLegend?: boolean;
|
|
2510
|
+
showGrid?: boolean;
|
|
2511
|
+
/** Stack bars (renders as a stacked bar chart) */
|
|
2512
|
+
stacked?: boolean;
|
|
2513
|
+
/** Render bars horizontally */
|
|
2514
|
+
horizontal?: boolean;
|
|
2515
|
+
valueFormatter?: ValueFormatter;
|
|
2516
|
+
referenceLines?: {
|
|
2517
|
+
value: number;
|
|
2518
|
+
label?: string;
|
|
2519
|
+
}[];
|
|
2520
|
+
}
|
|
2521
|
+
/**
|
|
2522
|
+
* Aegis BarChart — for categorical comparisons.
|
|
2523
|
+
*
|
|
2524
|
+
* Set `stacked` for stacked bars, `horizontal` for horizontal layout
|
|
2525
|
+
* (better for long category labels).
|
|
2526
|
+
*/
|
|
2527
|
+
declare function BarChart<T extends Record<string, unknown>>({ data, xKey, series, height, showLegend, showGrid, stacked, horizontal, valueFormatter, referenceLines, state, ...cardProps }: BarChartProps<T>): react_jsx_runtime.JSX.Element;
|
|
2528
|
+
|
|
2529
|
+
/**
|
|
2530
|
+
* Aegis StackedBarChart — convenience wrapper around BarChart with
|
|
2531
|
+
* `stacked` enabled by default. Use this when stacking is the default
|
|
2532
|
+
* intent (e.g. cohort breakdown over time).
|
|
2533
|
+
*/
|
|
2534
|
+
declare function StackedBarChart<T extends Record<string, unknown>>(props: Omit<BarChartProps<T>, 'stacked'>): react_jsx_runtime.JSX.Element;
|
|
2535
|
+
|
|
2536
|
+
interface DonutChartDatum {
|
|
2537
|
+
/** Display label for the slice */
|
|
2538
|
+
name: string;
|
|
2539
|
+
/** Numeric value */
|
|
2540
|
+
value: number;
|
|
2541
|
+
/** Optional explicit color (defaults to Aegis palette) */
|
|
2542
|
+
color?: string;
|
|
2543
|
+
}
|
|
2544
|
+
interface DonutChartProps extends Omit<ChartCardProps, 'children'> {
|
|
2545
|
+
data: DonutChartDatum[];
|
|
2546
|
+
/** Center label (e.g. total value) */
|
|
2547
|
+
centerLabel?: string;
|
|
2548
|
+
/** Center sublabel (e.g. "patients") */
|
|
2549
|
+
centerSublabel?: string;
|
|
2550
|
+
/** Render as full pie instead of donut */
|
|
2551
|
+
variant?: 'donut' | 'pie';
|
|
2552
|
+
/** Chart height (defaults to 280) */
|
|
2553
|
+
height?: number;
|
|
2554
|
+
/** Format slice values in tooltip */
|
|
2555
|
+
valueFormatter?: ValueFormatter;
|
|
2556
|
+
/** Show legend list to the right of the chart */
|
|
2557
|
+
showLegend?: boolean;
|
|
2558
|
+
}
|
|
2559
|
+
/**
|
|
2560
|
+
* Aegis DonutChart — for distribution / part-to-whole comparisons.
|
|
2561
|
+
*
|
|
2562
|
+
* Center label/sublabel slots support headline metrics inside the donut.
|
|
2563
|
+
* For pie semantics, set `variant="pie"`.
|
|
2564
|
+
*/
|
|
2565
|
+
declare function DonutChart({ data, centerLabel, centerSublabel, variant, height, valueFormatter, showLegend, state, ...cardProps }: DonutChartProps): react_jsx_runtime.JSX.Element;
|
|
2566
|
+
|
|
2567
|
+
interface SparklineProps {
|
|
2568
|
+
/** Array of numeric values OR row objects */
|
|
2569
|
+
data: number[] | Record<string, unknown>[];
|
|
2570
|
+
/** Property name when `data` is row-shaped (defaults to "value") */
|
|
2571
|
+
dataKey?: string;
|
|
2572
|
+
/** Render style */
|
|
2573
|
+
variant?: 'line' | 'area';
|
|
2574
|
+
/** Width in px (defaults to 120) — accepts any CSS length */
|
|
2575
|
+
width?: number | string;
|
|
2576
|
+
/** Height in px (defaults to 36) */
|
|
2577
|
+
height?: number | string;
|
|
2578
|
+
/** Line/area color (defaults to first Aegis series color) */
|
|
2579
|
+
color?: string;
|
|
2580
|
+
/** Stroke width (defaults to 2) */
|
|
2581
|
+
strokeWidth?: number;
|
|
2582
|
+
/** Optional accessible label */
|
|
2583
|
+
ariaLabel?: string;
|
|
2584
|
+
}
|
|
2585
|
+
/**
|
|
2586
|
+
* Aegis Sparkline — minimal inline trend chart for KPIs and table cells.
|
|
2587
|
+
*
|
|
2588
|
+
* Pure visual: no axes, grid, tooltip, or legend. Designed to live inside
|
|
2589
|
+
* stat cards, data grid cells, and dense dashboard surfaces.
|
|
2590
|
+
*/
|
|
2591
|
+
declare function Sparkline({ data, dataKey, variant, width, height, color, strokeWidth, ariaLabel, }: SparklineProps): react_jsx_runtime.JSX.Element;
|
|
2592
|
+
|
|
2593
|
+
type TrendDirection = 'up' | 'down' | 'neutral';
|
|
2594
|
+
interface KpiStatCardProps extends HTMLAttributes<HTMLDivElement> {
|
|
2595
|
+
/** Metric label (e.g. "Active patients") */
|
|
2596
|
+
label: string;
|
|
2597
|
+
/** Headline value (e.g. 1284 or "98.2%") */
|
|
2598
|
+
value: ReactNode;
|
|
2599
|
+
/** Optional unit/suffix shown next to the value */
|
|
2600
|
+
unit?: ReactNode;
|
|
2601
|
+
/** Percent change (number) — positive renders as up, negative as down */
|
|
2602
|
+
change?: number;
|
|
2603
|
+
/** Label for the change context (e.g. "vs last 30 days") */
|
|
2604
|
+
changeLabel?: string;
|
|
2605
|
+
/** Override trend direction (otherwise inferred from `change`) */
|
|
2606
|
+
trend?: TrendDirection;
|
|
2607
|
+
/**
|
|
2608
|
+
* For success-positive metrics, set `inverse` to flip color semantics
|
|
2609
|
+
* (e.g. "wait time" — a decrease is good).
|
|
2610
|
+
*/
|
|
2611
|
+
inverse?: boolean;
|
|
2612
|
+
/** Optional icon rendered top-right */
|
|
2613
|
+
icon?: ReactNode;
|
|
2614
|
+
/** Optional sparkline data — when present, renders an inline trend chart */
|
|
2615
|
+
sparklineData?: SparklineProps['data'];
|
|
2616
|
+
/** Sparkline color override */
|
|
2617
|
+
sparklineColor?: string;
|
|
2618
|
+
/** Sparkline render variant */
|
|
2619
|
+
sparklineVariant?: SparklineProps['variant'];
|
|
2620
|
+
/** Density variant */
|
|
2621
|
+
density?: 'comfortable' | 'compact';
|
|
2622
|
+
}
|
|
2623
|
+
/**
|
|
2624
|
+
* KpiStatCard — premium stat card with optional inline sparkline.
|
|
2625
|
+
*
|
|
2626
|
+
* The chart-aware evolution of StatCard. Use for headline KPIs in
|
|
2627
|
+
* dashboards. Pair with `inverse` for metrics where a decrease is positive
|
|
2628
|
+
* (e.g. wait time, error rate).
|
|
1720
2629
|
*
|
|
1721
2630
|
* Accessibility:
|
|
1722
|
-
* -
|
|
1723
|
-
*
|
|
1724
|
-
* -
|
|
1725
|
-
* - Dismiss button has accessible label
|
|
2631
|
+
* - Trend icons are aria-hidden; meaning is conveyed in visible text plus an
|
|
2632
|
+
* sr-only direction phrase.
|
|
2633
|
+
* - Sparkline accepts `aria-label` for screen reader trend description.
|
|
1726
2634
|
*/
|
|
1727
|
-
declare function
|
|
2635
|
+
declare function KpiStatCard({ label, value, unit, change, changeLabel, trend, inverse, icon, sparklineData, sparklineColor, sparklineVariant, density, className, ...props }: KpiStatCardProps): react_jsx_runtime.JSX.Element;
|
|
2636
|
+
|
|
2637
|
+
interface TrendStatCardProps<T extends Record<string, unknown>> extends HTMLAttributes<HTMLDivElement> {
|
|
2638
|
+
/** Metric label (e.g. "30-day readmissions") */
|
|
2639
|
+
label: string;
|
|
2640
|
+
/** Headline value */
|
|
2641
|
+
value: ReactNode;
|
|
2642
|
+
/** Optional unit (e.g. "%", "patients") */
|
|
2643
|
+
unit?: ReactNode;
|
|
2644
|
+
/** Trend chart data — row-shaped */
|
|
2645
|
+
data: T[];
|
|
2646
|
+
/** X-axis key on each row */
|
|
2647
|
+
xKey: keyof T & string;
|
|
2648
|
+
/** Y value key on each row */
|
|
2649
|
+
yKey: keyof T & string;
|
|
2650
|
+
/** Percent change value */
|
|
2651
|
+
change?: number;
|
|
2652
|
+
/** Change context label */
|
|
2653
|
+
changeLabel?: string;
|
|
2654
|
+
/** Inverse semantics — set true when a decrease is "good" */
|
|
2655
|
+
inverse?: boolean;
|
|
2656
|
+
/** Color override for the trend area */
|
|
2657
|
+
color?: string;
|
|
2658
|
+
/** Format values shown in tooltip */
|
|
2659
|
+
valueFormatter?: ValueFormatter;
|
|
2660
|
+
/** Chart height (defaults to 80) */
|
|
2661
|
+
chartHeight?: number;
|
|
2662
|
+
}
|
|
2663
|
+
/**
|
|
2664
|
+
* TrendStatCard — KPI card with a prominent trend chart underneath.
|
|
2665
|
+
*
|
|
2666
|
+
* Larger than KpiStatCard's inline sparkline, designed to fill more space
|
|
2667
|
+
* in dashboard rows where a trend story is the primary message.
|
|
2668
|
+
*/
|
|
2669
|
+
declare function TrendStatCard<T extends Record<string, unknown>>({ label, value, unit, data, xKey, yKey, change, changeLabel, inverse, color, valueFormatter, chartHeight, className, ...props }: TrendStatCardProps<T>): react_jsx_runtime.JSX.Element;
|
|
1728
2670
|
|
|
1729
2671
|
/** Merge CSS module class names, filtering out falsy values */
|
|
1730
2672
|
declare function cn(...classes: (string | false | null | undefined)[]): string;
|
|
@@ -1733,4 +2675,4 @@ type Size = 'sm' | 'md' | 'lg';
|
|
|
1733
2675
|
type Status = 'success' | 'warning' | 'error' | 'info';
|
|
1734
2676
|
type Variant = 'primary' | 'secondary' | 'ghost' | 'danger';
|
|
1735
2677
|
|
|
1736
|
-
export { Accordion, type AccordionItem, type AccordionProps, Alert, type AlertProps, AppointmentCard, type AppointmentCardProps, type AppointmentStatus, Autocomplete, type AutocompleteOption, type AutocompleteProps, Avatar, type AvatarProps, Badge, type BadgeProps, Banner, type BannerProps, type BannerStatus, type BreadcrumbItem, Breadcrumbs, type BreadcrumbsProps, Button, type ButtonProps, Card, type CardProps, Checkbox, CheckboxGroup, type CheckboxGroupOption, type CheckboxGroupProps, type CheckboxProps, ClinicalBanner, type ClinicalBannerProps, type ClinicalSeverity, CollapsiblePanel, type CollapsiblePanelProps,
|
|
2678
|
+
export { Accordion, type AccordionItem, type AccordionProps, Alert, type AlertProps, AppBar, type AppBarProps, AppointmentCard, type AppointmentCardProps, type AppointmentStatus, AreaChart, type AreaChartProps, Autocomplete, type AutocompleteOption, type AutocompleteProps, Avatar, type AvatarProps, Backdrop, type BackdropProps, Badge, type BadgeProps, Banner, type BannerProps, type BannerStatus, BarChart, type BarChartProps, type BreadcrumbItem, Breadcrumbs, type BreadcrumbsProps, Button, ButtonGroup, type ButtonGroupProps, type ButtonProps, Card, type CardProps, ChartCard, type ChartCardProps, type ChartCardState, ChartLegend, type ChartSeries, ChartTooltip, type ChartTooltipProps, Checkbox, CheckboxGroup, type CheckboxGroupOption, type CheckboxGroupProps, type CheckboxProps, Chip, type ChipProps, ClinicalBanner, type ClinicalBannerProps, type ClinicalSeverity, CollapsiblePanel, type CollapsiblePanelProps, ColorPicker, type ColorPickerProps, type CommandItem, CommandPalette, type CommandPaletteProps, Container, type ContainerProps, DataGrid, type DataGridColumn, type DataGridProps, DatePicker, type DatePickerProps, DescriptionList, type DescriptionListItem, type DescriptionListProps, Dialog, type DialogProps, Divider, type DividerProps, DonutChart, type DonutChartDatum, type DonutChartProps, Drawer, type DrawerProps, EmptyState, type EmptyStateProps, ErrorState, type ErrorStateProps, FileUpload, type FileUploadProps, FormField, type FormFieldProps, Grid, type GridProps, HelperText, type HelperTextProps, IconButton, type IconButtonProps, InputGroup, type InputGroupProps, InsuranceCard, type InsuranceCardProps, type InsurancePlanType, type InsuranceStatus, Kbd, type KbdProps, KpiStatCard, type KpiStatCardProps, LabResultRow, type LabResultRowProps, type LabResultStatus, Label, type LabelProps, LineChart, type LineChartProps, Link, type LinkProps, List, ListItem, type ListItemProps, type ListProps, MedicationRow, type MedicationRowProps, type MedicationStatus, Menu, MenuDivider, MenuGroup, type MenuGroupProps, MenuItem, type MenuItemProps, type MenuProps, Modal, type ModalProps, MultiSelect, type MultiSelectOption, type MultiSelectProps, NumberField, type NumberFieldProps, OTPInput, type OTPInputProps, Pagination, type PaginationProps, Paper, type PaperProps, PatientCard, type PatientCardProps, type PatientStatus, Popover, type PopoverProps, Portal, type PortalProps, Progress, type ProgressProps, Radio, RadioGroup, type RadioGroupOption, type RadioGroupProps, type RadioProps, Rating, type RatingProps, SearchField, type SearchFieldProps, Select, type SelectProps, SideNav, type SideNavItem, type SideNavProps, type Size, Skeleton, type SkeletonProps, Slider, type SliderProps, type SortDirection, Sparkline, type SparklineProps, Spinner, type SpinnerProps, Stack, type StackProps, StackedBarChart, type BarChartProps as StackedBarChartProps, type Status, StatusBadge, type StatusBadgeProps, type StatusBadgeStatus, Stepper, type StepperProps, type StepperStep, Switch, type SwitchProps, type Tab, Table, TableBody, TableCell, TableHead, TableHeaderCell, type TableProps, TableRow, Tabs, type TabsProps, TagInput, type TagInputProps, TextField, type TextFieldProps, Textarea, type TextareaProps, Timeline, type TimelineItem, type TimelineItemVariant, type TimelineProps, Toast, type ToastProps, type ToastStatus, Toolbar, ToolbarDivider, type ToolbarDividerProps, ToolbarGroup, type ToolbarGroupProps, type ToolbarProps, Tooltip, type TooltipProps, type TreeNode, TreeView, type TreeViewProps, type TrendDirection, TrendStatCard, type TrendStatCardProps, Typography, type TypographyAlign, type TypographyColor, type TypographyProps, type TypographyVariant, type TypographyWeight, type ValueFormatter, type Variant, VisuallyHidden, type VisuallyHiddenProps, accentTeal, aegisChartTheme, aegisSeriesPalette, border, borderStyle, borderWidth, brandPrimary, cn, container, controlSize, dataVis, defaultValueFormatter, duration, easing, focusRing, fontFamily, fontSize, fontWeight, getSeriesColor, grid, iconSize, lineHeight, modalSize, neutral, opacity, radius, semantic, shadow, sidebarDefault, space, surface, text, touchMin, tracking, zIndex };
|