@skyfall_ai/aegis 0.2.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +3782 -2916
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +1480 -873
- package/dist/index.d.ts +1480 -873
- package/dist/index.js +4183 -2730
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4254 -2810
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
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
4
|
import { TooltipProps as TooltipProps$1, LegendProps } from 'recharts';
|
|
5
5
|
|
|
@@ -262,6 +262,25 @@ declare const focusRing: {
|
|
|
262
262
|
readonly outlineColor: "#2F6FE4";
|
|
263
263
|
};
|
|
264
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
|
+
|
|
265
284
|
interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
266
285
|
/** Visual variant */
|
|
267
286
|
variant?: 'primary' | 'secondary' | 'ghost' | 'danger';
|
|
@@ -306,59 +325,25 @@ interface IconButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
|
306
325
|
*/
|
|
307
326
|
declare const IconButton: react.ForwardRefExoticComponent<IconButtonProps & react.RefAttributes<HTMLButtonElement>>;
|
|
308
327
|
|
|
309
|
-
interface
|
|
310
|
-
/**
|
|
328
|
+
interface ButtonGroupProps extends HTMLAttributes<HTMLDivElement> {
|
|
329
|
+
/** Layout direction */
|
|
330
|
+
orientation?: 'horizontal' | 'vertical';
|
|
331
|
+
/** Size applied to all child buttons */
|
|
311
332
|
size?: 'sm' | 'md' | 'lg';
|
|
312
|
-
/**
|
|
313
|
-
|
|
314
|
-
/** Full width */
|
|
315
|
-
fullWidth?: boolean;
|
|
316
|
-
}
|
|
317
|
-
/**
|
|
318
|
-
* Input — single-line text input.
|
|
319
|
-
*
|
|
320
|
-
* Accessibility:
|
|
321
|
-
* - Use with <Label> and associate via htmlFor/id
|
|
322
|
-
* - Use aria-describedby to link to HelperText or error messages
|
|
323
|
-
* - aria-invalid signals error state to assistive technology
|
|
324
|
-
* - Visible border change + color signals error (not color alone)
|
|
325
|
-
*/
|
|
326
|
-
declare const Input: react.ForwardRefExoticComponent<InputProps & react.RefAttributes<HTMLInputElement>>;
|
|
327
|
-
|
|
328
|
-
interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
|
|
329
|
-
/** Error state */
|
|
330
|
-
error?: boolean;
|
|
331
|
-
/** Full width */
|
|
332
|
-
fullWidth?: boolean;
|
|
333
|
-
/** Allow vertical resize */
|
|
334
|
-
resize?: 'none' | 'vertical' | 'both';
|
|
333
|
+
/** Whether buttons should share borders (connected style) */
|
|
334
|
+
connected?: boolean;
|
|
335
335
|
}
|
|
336
336
|
/**
|
|
337
|
-
*
|
|
337
|
+
* ButtonGroup — layout wrapper for grouping related buttons.
|
|
338
338
|
*
|
|
339
|
-
*
|
|
340
|
-
*
|
|
341
|
-
* - Link to HelperText via aria-describedby
|
|
342
|
-
*/
|
|
343
|
-
declare const Textarea: react.ForwardRefExoticComponent<TextareaProps & react.RefAttributes<HTMLTextAreaElement>>;
|
|
344
|
-
|
|
345
|
-
interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, 'size'> {
|
|
346
|
-
/** Size */
|
|
347
|
-
size?: 'sm' | 'md' | 'lg';
|
|
348
|
-
/** Error state */
|
|
349
|
-
error?: boolean;
|
|
350
|
-
/** Full width */
|
|
351
|
-
fullWidth?: boolean;
|
|
352
|
-
}
|
|
353
|
-
/**
|
|
354
|
-
* 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.
|
|
355
341
|
*
|
|
356
342
|
* Accessibility:
|
|
357
|
-
* - Uses
|
|
358
|
-
* -
|
|
359
|
-
* - 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
|
|
360
345
|
*/
|
|
361
|
-
declare
|
|
346
|
+
declare function ButtonGroup({ orientation, size, connected, className, children, ...props }: ButtonGroupProps): react_jsx_runtime.JSX.Element;
|
|
362
347
|
|
|
363
348
|
interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
|
|
364
349
|
/** Label text displayed next to the checkbox */
|
|
@@ -377,6 +362,41 @@ interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'typ
|
|
|
377
362
|
*/
|
|
378
363
|
declare const Checkbox: react.ForwardRefExoticComponent<CheckboxProps & react.RefAttributes<HTMLInputElement>>;
|
|
379
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
|
+
|
|
380
400
|
interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
|
|
381
401
|
/** Label text */
|
|
382
402
|
label?: string;
|
|
@@ -393,6 +413,59 @@ interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'>
|
|
|
393
413
|
*/
|
|
394
414
|
declare const Radio: react.ForwardRefExoticComponent<RadioProps & react.RefAttributes<HTMLInputElement>>;
|
|
395
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
|
+
|
|
396
469
|
interface SwitchProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
|
|
397
470
|
/** Label text */
|
|
398
471
|
label?: string;
|
|
@@ -410,257 +483,328 @@ interface SwitchProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'
|
|
|
410
483
|
*/
|
|
411
484
|
declare const Switch: react.ForwardRefExoticComponent<SwitchProps & react.RefAttributes<HTMLInputElement>>;
|
|
412
485
|
|
|
413
|
-
interface
|
|
414
|
-
/**
|
|
415
|
-
|
|
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';
|
|
416
493
|
}
|
|
417
494
|
/**
|
|
418
|
-
*
|
|
495
|
+
* Textarea — multi-line text input.
|
|
419
496
|
*
|
|
420
497
|
* Accessibility:
|
|
421
|
-
* -
|
|
422
|
-
* -
|
|
498
|
+
* - Associate with Label via htmlFor/id
|
|
499
|
+
* - Link to HelperText via aria-describedby
|
|
423
500
|
*/
|
|
424
|
-
declare
|
|
501
|
+
declare const Textarea: react.ForwardRefExoticComponent<TextareaProps & react.RefAttributes<HTMLTextAreaElement>>;
|
|
425
502
|
|
|
426
|
-
interface
|
|
427
|
-
/**
|
|
428
|
-
|
|
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;
|
|
429
524
|
}
|
|
430
525
|
/**
|
|
431
|
-
*
|
|
526
|
+
* Slider — range input with custom styling.
|
|
432
527
|
*
|
|
433
528
|
* Accessibility:
|
|
434
|
-
* -
|
|
435
|
-
* -
|
|
436
|
-
* -
|
|
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
|
|
437
533
|
*/
|
|
438
|
-
declare
|
|
534
|
+
declare const Slider: react.ForwardRefExoticComponent<SliderProps & react.RefAttributes<HTMLInputElement>>;
|
|
439
535
|
|
|
440
|
-
interface
|
|
441
|
-
/**
|
|
442
|
-
|
|
443
|
-
/**
|
|
444
|
-
|
|
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;
|
|
445
555
|
}
|
|
446
556
|
/**
|
|
447
|
-
*
|
|
557
|
+
* NumberField — numeric input with increment/decrement buttons.
|
|
448
558
|
*
|
|
449
559
|
* Accessibility:
|
|
450
|
-
* - Uses
|
|
451
|
-
*
|
|
452
|
-
* -
|
|
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
|
|
453
564
|
*/
|
|
454
|
-
declare
|
|
565
|
+
declare const NumberField: react.ForwardRefExoticComponent<NumberFieldProps & react.RefAttributes<HTMLInputElement>>;
|
|
455
566
|
|
|
456
|
-
interface
|
|
457
|
-
/**
|
|
458
|
-
|
|
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;
|
|
459
578
|
}
|
|
460
579
|
/**
|
|
461
|
-
*
|
|
580
|
+
* SearchField — search input with magnifying glass icon and optional clear button.
|
|
462
581
|
*
|
|
463
582
|
* Accessibility:
|
|
464
|
-
* -
|
|
465
|
-
* -
|
|
466
|
-
*
|
|
467
|
-
*/
|
|
468
|
-
declare function Badge({ status, className, children, ...props }: BadgeProps): react_jsx_runtime.JSX.Element;
|
|
469
|
-
|
|
470
|
-
interface AlertProps extends HTMLAttributes<HTMLDivElement> {
|
|
471
|
-
/** Semantic status */
|
|
472
|
-
status?: 'info' | 'success' | 'warning' | 'error';
|
|
473
|
-
/** Optional title */
|
|
474
|
-
title?: string;
|
|
475
|
-
/** Optional action element (e.g., a close button) */
|
|
476
|
-
action?: ReactNode;
|
|
477
|
-
}
|
|
478
|
-
/**
|
|
479
|
-
* Alert — contextual message banner.
|
|
480
|
-
*
|
|
481
|
-
* Accessibility:
|
|
482
|
-
* - Uses role="alert" for errors/warnings (live region, immediately announced)
|
|
483
|
-
* - Uses role="status" for info/success (polite announcement)
|
|
484
|
-
* - 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)
|
|
485
586
|
*/
|
|
486
|
-
declare
|
|
587
|
+
declare const SearchField: react.ForwardRefExoticComponent<SearchFieldProps & react.RefAttributes<HTMLInputElement>>;
|
|
487
588
|
|
|
488
|
-
interface
|
|
489
|
-
|
|
589
|
+
interface AutocompleteOption {
|
|
590
|
+
value: string;
|
|
490
591
|
label: string;
|
|
491
|
-
content: ReactNode;
|
|
492
|
-
disabled?: boolean;
|
|
493
592
|
}
|
|
494
|
-
interface
|
|
495
|
-
/**
|
|
496
|
-
|
|
497
|
-
/**
|
|
498
|
-
|
|
499
|
-
/**
|
|
500
|
-
|
|
501
|
-
/**
|
|
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 */
|
|
502
615
|
className?: string;
|
|
503
616
|
}
|
|
504
617
|
/**
|
|
505
|
-
*
|
|
618
|
+
* Autocomplete — combobox input with filtered suggestions dropdown.
|
|
506
619
|
*
|
|
507
620
|
* Accessibility:
|
|
508
|
-
* -
|
|
509
|
-
* -
|
|
510
|
-
* -
|
|
511
|
-
* -
|
|
512
|
-
* - 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
|
|
513
625
|
*/
|
|
514
|
-
declare function
|
|
626
|
+
declare function Autocomplete({ options, value, onChange, onInputChange, placeholder, disabled, error, size, loading, noResultsText, className, }: AutocompleteProps): react_jsx_runtime.JSX.Element;
|
|
515
627
|
|
|
516
|
-
interface
|
|
517
|
-
|
|
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 */
|
|
518
650
|
className?: string;
|
|
519
|
-
/** Whether the modal is visible */
|
|
520
|
-
open: boolean;
|
|
521
|
-
/** Called when the modal should close */
|
|
522
|
-
onClose: () => void;
|
|
523
|
-
/** Modal title (rendered in header) */
|
|
524
|
-
title: ReactNode;
|
|
525
|
-
/** Max width */
|
|
526
|
-
size?: 'sm' | 'md' | 'lg' | 'xl';
|
|
527
|
-
/** Footer actions */
|
|
528
|
-
footer?: ReactNode;
|
|
529
651
|
}
|
|
530
652
|
/**
|
|
531
|
-
*
|
|
653
|
+
* MultiSelect — multi-value select with tags and dropdown checkboxes.
|
|
532
654
|
*
|
|
533
655
|
* Accessibility:
|
|
534
|
-
* - Uses
|
|
535
|
-
* -
|
|
536
|
-
* -
|
|
537
|
-
* - Escape
|
|
538
|
-
* - Scrim click closes the dialog
|
|
539
|
-
* - Healthcare note: for destructive actions (e.g., cancel appointment,
|
|
540
|
-
* delete record), always include clear confirmation language in the
|
|
541
|
-
* 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
|
|
542
660
|
*/
|
|
543
|
-
declare function
|
|
544
|
-
children?: ReactNode;
|
|
545
|
-
}): react_jsx_runtime.JSX.Element;
|
|
661
|
+
declare function MultiSelect({ options, value, onChange, placeholder, disabled, error, size, maxDisplayedTags, className, }: MultiSelectProps): react_jsx_runtime.JSX.Element;
|
|
546
662
|
|
|
547
|
-
interface
|
|
548
|
-
/**
|
|
549
|
-
|
|
550
|
-
/**
|
|
551
|
-
|
|
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;
|
|
552
678
|
}
|
|
553
679
|
/**
|
|
554
|
-
*
|
|
680
|
+
* FileUpload — dropzone for file upload with click and drag support.
|
|
555
681
|
*
|
|
556
682
|
* Accessibility:
|
|
557
|
-
* -
|
|
558
|
-
* -
|
|
559
|
-
* -
|
|
560
|
-
* -
|
|
561
|
-
* (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
|
|
562
687
|
*/
|
|
563
|
-
declare function
|
|
564
|
-
declare function TableHead({ className, children, ...props }: HTMLAttributes<HTMLTableSectionElement>): react_jsx_runtime.JSX.Element;
|
|
565
|
-
declare function TableBody({ className, children, ...props }: HTMLAttributes<HTMLTableSectionElement>): react_jsx_runtime.JSX.Element;
|
|
566
|
-
declare function TableRow({ className, children, ...props }: HTMLAttributes<HTMLTableRowElement>): react_jsx_runtime.JSX.Element;
|
|
567
|
-
declare function TableHeaderCell({ className, children, ...props }: ThHTMLAttributes<HTMLTableCellElement>): react_jsx_runtime.JSX.Element;
|
|
568
|
-
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;
|
|
569
689
|
|
|
570
|
-
interface
|
|
571
|
-
/**
|
|
572
|
-
|
|
573
|
-
/**
|
|
574
|
-
|
|
575
|
-
/**
|
|
576
|
-
|
|
577
|
-
/**
|
|
578
|
-
|
|
579
|
-
/**
|
|
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 */
|
|
580
704
|
className?: string;
|
|
581
705
|
}
|
|
582
706
|
/**
|
|
583
|
-
*
|
|
707
|
+
* OTPInput — code/OTP input with separate boxes that auto-advance.
|
|
584
708
|
*
|
|
585
709
|
* Accessibility:
|
|
586
|
-
* -
|
|
587
|
-
* -
|
|
588
|
-
* -
|
|
589
|
-
* -
|
|
590
|
-
* Use for supplementary context only, since tooltips are easy to miss
|
|
591
|
-
* 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
|
|
592
714
|
*/
|
|
593
|
-
declare function
|
|
715
|
+
declare function OTPInput({ length, value, onChange, error, disabled, autoFocus, className, }: OTPInputProps): react_jsx_runtime.JSX.Element;
|
|
594
716
|
|
|
595
|
-
interface
|
|
596
|
-
/**
|
|
597
|
-
|
|
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';
|
|
598
730
|
}
|
|
599
731
|
/**
|
|
600
|
-
*
|
|
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.
|
|
601
736
|
*
|
|
602
737
|
* Accessibility:
|
|
603
|
-
* -
|
|
604
|
-
* -
|
|
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
|
|
605
741
|
*/
|
|
606
|
-
declare
|
|
742
|
+
declare const ColorPicker: react.ForwardRefExoticComponent<ColorPickerProps & react.RefAttributes<HTMLDivElement>>;
|
|
607
743
|
|
|
608
|
-
interface
|
|
609
|
-
/**
|
|
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 */
|
|
610
752
|
size?: 'sm' | 'md' | 'lg';
|
|
611
|
-
/**
|
|
753
|
+
/** Whether the rating is read-only */
|
|
754
|
+
readOnly?: boolean;
|
|
755
|
+
/** Disabled state */
|
|
756
|
+
disabled?: boolean;
|
|
757
|
+
/** Label for accessibility */
|
|
612
758
|
label?: string;
|
|
759
|
+
/** Custom icon renderer — receives filled state */
|
|
760
|
+
renderIcon?: (filled: boolean, index: number) => React.ReactNode;
|
|
613
761
|
}
|
|
614
762
|
/**
|
|
615
|
-
*
|
|
763
|
+
* Rating — star-based rating input with keyboard navigation.
|
|
764
|
+
*
|
|
765
|
+
* Supports custom max values, read-only display, and custom icon rendering.
|
|
616
766
|
*
|
|
617
767
|
* Accessibility:
|
|
618
|
-
* -
|
|
619
|
-
* -
|
|
620
|
-
* -
|
|
621
|
-
* context ("Loading patient records...") so users understand what
|
|
622
|
-
* 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
|
|
623
771
|
*/
|
|
624
|
-
declare
|
|
772
|
+
declare const Rating: react.ForwardRefExoticComponent<RatingProps & react.RefAttributes<HTMLDivElement>>;
|
|
625
773
|
|
|
626
|
-
interface
|
|
627
|
-
/**
|
|
628
|
-
|
|
629
|
-
/**
|
|
630
|
-
|
|
631
|
-
/**
|
|
632
|
-
|
|
633
|
-
/**
|
|
634
|
-
|
|
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;
|
|
635
795
|
}
|
|
636
796
|
/**
|
|
637
|
-
*
|
|
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.
|
|
638
801
|
*
|
|
639
802
|
* Accessibility:
|
|
640
|
-
* - aria-
|
|
641
|
-
* -
|
|
642
|
-
*
|
|
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
|
|
643
806
|
*/
|
|
644
|
-
declare
|
|
645
|
-
|
|
646
|
-
type StatusBadgeStatus = 'active' | 'inactive' | 'pending' | 'critical' | 'discharged' | 'scheduled' | 'cancelled' | 'in-progress';
|
|
647
|
-
interface StatusBadgeProps extends HTMLAttributes<HTMLSpanElement> {
|
|
648
|
-
/** Healthcare status */
|
|
649
|
-
status: StatusBadgeStatus;
|
|
650
|
-
/** Size variant */
|
|
651
|
-
size?: 'sm' | 'md';
|
|
652
|
-
/** Show a colored status dot before the label */
|
|
653
|
-
dot?: boolean;
|
|
654
|
-
}
|
|
655
|
-
/**
|
|
656
|
-
* StatusBadge — enhanced badge for healthcare workflow statuses.
|
|
657
|
-
*
|
|
658
|
-
* Accessibility:
|
|
659
|
-
* - Always displays text label alongside color to avoid color-only indication
|
|
660
|
-
* - Healthcare note: maps each clinical status to an appropriate semantic
|
|
661
|
-
* color (critical = red, active = green, pending = amber, etc.)
|
|
662
|
-
*/
|
|
663
|
-
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>>;
|
|
664
808
|
|
|
665
809
|
interface AvatarProps extends HTMLAttributes<HTMLSpanElement> {
|
|
666
810
|
/** Image source URL */
|
|
@@ -686,27 +830,145 @@ interface AvatarProps extends HTMLAttributes<HTMLSpanElement> {
|
|
|
686
830
|
*/
|
|
687
831
|
declare function Avatar({ src, alt, name, size, status, className, ...props }: AvatarProps): react_jsx_runtime.JSX.Element;
|
|
688
832
|
|
|
689
|
-
interface
|
|
690
|
-
/**
|
|
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) */
|
|
691
855
|
icon?: ReactNode;
|
|
692
|
-
/**
|
|
693
|
-
|
|
694
|
-
/**
|
|
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 */
|
|
695
919
|
description?: string;
|
|
696
|
-
|
|
697
|
-
|
|
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;
|
|
698
928
|
}
|
|
699
929
|
/**
|
|
700
|
-
*
|
|
930
|
+
* Table — data table with accessible defaults.
|
|
701
931
|
*
|
|
702
932
|
* Accessibility:
|
|
703
|
-
* -
|
|
704
|
-
* -
|
|
705
|
-
*
|
|
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
|
|
706
938
|
*/
|
|
707
|
-
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;
|
|
708
970
|
|
|
709
|
-
interface
|
|
971
|
+
interface ProgressProps extends HTMLAttributes<HTMLDivElement> {
|
|
710
972
|
/** Current value (0-100) */
|
|
711
973
|
value: number;
|
|
712
974
|
/** Maximum value (defaults to 100) */
|
|
@@ -721,7 +983,7 @@ interface ProgressBarProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
721
983
|
showValue?: boolean;
|
|
722
984
|
}
|
|
723
985
|
/**
|
|
724
|
-
*
|
|
986
|
+
* Progress — horizontal bar indicating completion or progress.
|
|
725
987
|
*
|
|
726
988
|
* Accessibility:
|
|
727
989
|
* - role="progressbar" with aria-valuenow, aria-valuemin, aria-valuemax
|
|
@@ -729,31 +991,93 @@ interface ProgressBarProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
729
991
|
* - Healthcare note: useful for treatment progress, form completion,
|
|
730
992
|
* or patient intake steps
|
|
731
993
|
*/
|
|
732
|
-
declare function
|
|
994
|
+
declare function Progress({ value, max, size, variant, label, showValue, className, ...props }: ProgressProps): react_jsx_runtime.JSX.Element;
|
|
733
995
|
|
|
734
|
-
interface
|
|
735
|
-
/**
|
|
736
|
-
|
|
737
|
-
/**
|
|
738
|
-
|
|
739
|
-
/**
|
|
740
|
-
|
|
741
|
-
/** Number of
|
|
742
|
-
|
|
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;
|
|
743
1038
|
/** Size variant */
|
|
744
1039
|
size?: 'sm' | 'md';
|
|
1040
|
+
/** Show a colored status dot before the label */
|
|
1041
|
+
dot?: boolean;
|
|
745
1042
|
}
|
|
746
1043
|
/**
|
|
747
|
-
*
|
|
1044
|
+
* StatusBadge — enhanced badge for healthcare workflow statuses.
|
|
748
1045
|
*
|
|
749
1046
|
* Accessibility:
|
|
750
|
-
* -
|
|
751
|
-
* -
|
|
752
|
-
*
|
|
753
|
-
* - Healthcare note: use pagination for patient lists, lab results,
|
|
754
|
-
* 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.)
|
|
755
1050
|
*/
|
|
756
|
-
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;
|
|
757
1081
|
|
|
758
1082
|
interface DescriptionListItem {
|
|
759
1083
|
/** Label / term */
|
|
@@ -780,456 +1104,644 @@ interface DescriptionListProps extends HTMLAttributes<HTMLDListElement> {
|
|
|
780
1104
|
*/
|
|
781
1105
|
declare function DescriptionList({ items, layout, columns, className, style, ...props }: DescriptionListProps): react_jsx_runtime.JSX.Element;
|
|
782
1106
|
|
|
783
|
-
interface
|
|
784
|
-
/**
|
|
785
|
-
|
|
786
|
-
/** Content rendered inside the popover */
|
|
787
|
-
content: ReactNode;
|
|
788
|
-
/** Controlled open state */
|
|
789
|
-
open?: boolean;
|
|
790
|
-
/** Callback when open state changes */
|
|
791
|
-
onOpenChange?: (open: boolean) => void;
|
|
792
|
-
/** Placement relative to the trigger */
|
|
793
|
-
placement?: 'top' | 'bottom' | 'left' | 'right';
|
|
794
|
-
/** Alignment along the placement axis */
|
|
795
|
-
align?: 'start' | 'center' | 'end';
|
|
1107
|
+
interface KbdProps extends HTMLAttributes<HTMLElement> {
|
|
1108
|
+
/** Size variant */
|
|
1109
|
+
size?: 'sm' | 'md';
|
|
796
1110
|
}
|
|
797
1111
|
/**
|
|
798
|
-
*
|
|
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.
|
|
799
1116
|
*
|
|
800
1117
|
* Accessibility:
|
|
801
|
-
* -
|
|
802
|
-
* -
|
|
803
|
-
* - Click outside closes the popover
|
|
804
|
-
* - Healthcare note: use for additional context like patient quick-view,
|
|
805
|
-
* 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
|
|
806
1120
|
*/
|
|
807
|
-
declare function
|
|
1121
|
+
declare function Kbd({ size, className, children, ...props }: KbdProps): react_jsx_runtime.JSX.Element;
|
|
808
1122
|
|
|
809
|
-
interface
|
|
810
|
-
/**
|
|
811
|
-
|
|
812
|
-
/**
|
|
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 */
|
|
813
1221
|
open: boolean;
|
|
814
|
-
/** Called when the
|
|
815
|
-
|
|
816
|
-
/**
|
|
817
|
-
|
|
818
|
-
/**
|
|
819
|
-
|
|
820
|
-
/**
|
|
821
|
-
|
|
822
|
-
/** Footer actions */
|
|
823
|
-
footer?: ReactNode;
|
|
824
|
-
/** Drawer body content */
|
|
825
|
-
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';
|
|
826
1230
|
}
|
|
827
1231
|
/**
|
|
828
|
-
*
|
|
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.
|
|
829
1236
|
*
|
|
830
1237
|
* Accessibility:
|
|
831
|
-
* -
|
|
832
|
-
* -
|
|
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
|
|
833
1271
|
* - aria-labelledby links to the title
|
|
834
|
-
* -
|
|
835
|
-
* -
|
|
836
|
-
*
|
|
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
|
|
837
1276
|
*/
|
|
838
|
-
declare function
|
|
1277
|
+
declare function Dialog({ open, onConfirm, onCancel, title, message, confirmLabel, cancelLabel, variant, loading, className, }: DialogProps): react_jsx_runtime.JSX.Element;
|
|
839
1278
|
|
|
840
|
-
interface
|
|
841
|
-
/**
|
|
842
|
-
|
|
843
|
-
/**
|
|
844
|
-
|
|
845
|
-
/**
|
|
846
|
-
|
|
847
|
-
/**
|
|
848
|
-
|
|
849
|
-
/** Column width (CSS value) */
|
|
850
|
-
width?: string | number;
|
|
851
|
-
/** Text alignment */
|
|
852
|
-
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;
|
|
853
1288
|
}
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
emptyMessage?: string;
|
|
876
|
-
/** Row density */
|
|
877
|
-
density?: 'default' | 'compact' | 'comfortable';
|
|
878
|
-
/** Sticky header */
|
|
879
|
-
stickyHeader?: boolean;
|
|
880
|
-
/** Striped rows */
|
|
881
|
-
striped?: boolean;
|
|
882
|
-
/** Callback when a row is clicked */
|
|
883
|
-
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;
|
|
884
1310
|
}
|
|
885
1311
|
/**
|
|
886
|
-
*
|
|
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.
|
|
887
1319
|
*
|
|
888
1320
|
* Accessibility:
|
|
889
|
-
* -
|
|
890
|
-
* -
|
|
891
|
-
* - Selection checkboxes include accessible labels
|
|
892
|
-
* - Loading state announced via aria-busy
|
|
893
|
-
* - Healthcare note: designed for patient lists, lab results,
|
|
894
|
-
* 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
|
|
895
1323
|
*/
|
|
896
|
-
declare function
|
|
1324
|
+
declare function ErrorState({ title, description, icon, action, errorCode, className, ...props }: ErrorStateProps): react_jsx_runtime.JSX.Element;
|
|
897
1325
|
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
/** Additional CSS class */
|
|
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 */
|
|
914
1341
|
className?: string;
|
|
915
1342
|
}
|
|
916
1343
|
/**
|
|
917
|
-
*
|
|
1344
|
+
* Toast — transient notification that auto-dismisses.
|
|
918
1345
|
*
|
|
919
1346
|
* Accessibility:
|
|
920
|
-
* -
|
|
921
|
-
* -
|
|
922
|
-
* -
|
|
923
|
-
* -
|
|
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
|
|
924
1351
|
*/
|
|
925
|
-
declare function
|
|
1352
|
+
declare function Toast({ message, title, status, action, onClose, duration, className, }: ToastProps): react_jsx_runtime.JSX.Element;
|
|
926
1353
|
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
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 */
|
|
1365
|
+
children: ReactNode;
|
|
938
1366
|
}
|
|
939
1367
|
/**
|
|
940
|
-
*
|
|
1368
|
+
* Banner — full-width banner for page-level messages.
|
|
941
1369
|
*
|
|
942
1370
|
* Accessibility:
|
|
943
|
-
* - Uses role="
|
|
944
|
-
* -
|
|
945
|
-
* -
|
|
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
|
|
946
1375
|
*/
|
|
947
|
-
declare
|
|
1376
|
+
declare function Banner({ status, dismissible, onDismiss, action, children, className, ...props }: BannerProps): react_jsx_runtime.JSX.Element;
|
|
948
1377
|
|
|
949
|
-
interface
|
|
950
|
-
/**
|
|
951
|
-
|
|
952
|
-
/**
|
|
953
|
-
|
|
954
|
-
/**
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
/**
|
|
959
|
-
|
|
960
|
-
/**
|
|
961
|
-
|
|
962
|
-
/**
|
|
963
|
-
|
|
964
|
-
/**
|
|
965
|
-
|
|
966
|
-
/** Suffix text (e.g., "mg") */
|
|
967
|
-
suffix?: string;
|
|
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 */
|
|
1394
|
+
className?: string;
|
|
968
1395
|
}
|
|
969
1396
|
/**
|
|
970
|
-
*
|
|
1397
|
+
* Accordion — expandable/collapsible content sections.
|
|
971
1398
|
*
|
|
972
1399
|
* Accessibility:
|
|
973
|
-
* -
|
|
974
|
-
* -
|
|
975
|
-
* -
|
|
976
|
-
* -
|
|
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
|
|
977
1404
|
*/
|
|
978
|
-
declare
|
|
1405
|
+
declare function Accordion({ items, allowMultiple, defaultOpenIds, className }: AccordionProps): react_jsx_runtime.JSX.Element;
|
|
979
1406
|
|
|
980
|
-
interface
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
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;
|
|
984
1414
|
}
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
/**
|
|
997
|
-
|
|
998
|
-
/**
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1415
|
+
/**
|
|
1416
|
+
* AppBar — horizontal top navigation bar for application headers.
|
|
1417
|
+
*
|
|
1418
|
+
* Accessibility:
|
|
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
|
|
1422
|
+
*/
|
|
1423
|
+
declare function AppBar({ logo, children, actions, className, ...props }: AppBarProps): react_jsx_runtime.JSX.Element;
|
|
1424
|
+
|
|
1425
|
+
interface CardProps extends HTMLAttributes<HTMLDivElement> {
|
|
1426
|
+
/** Elevation level */
|
|
1427
|
+
elevation?: 'flat' | 'raised';
|
|
1428
|
+
/** Padding size */
|
|
1429
|
+
padding?: 'none' | 'sm' | 'md' | 'lg';
|
|
1430
|
+
}
|
|
1431
|
+
/**
|
|
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.
|
|
1439
|
+
*
|
|
1440
|
+
* Accessibility:
|
|
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)
|
|
1444
|
+
*/
|
|
1445
|
+
declare function Card({ elevation, padding, className, children, ...props }: CardProps): react_jsx_runtime.JSX.Element;
|
|
1446
|
+
|
|
1447
|
+
interface ModalProps {
|
|
1448
|
+
/** Additional className */
|
|
1003
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;
|
|
1460
|
+
}
|
|
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';
|
|
1004
1491
|
}
|
|
1005
1492
|
/**
|
|
1006
|
-
*
|
|
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.
|
|
1007
1498
|
*
|
|
1008
1499
|
* Accessibility:
|
|
1009
|
-
* -
|
|
1010
|
-
* -
|
|
1011
|
-
* -
|
|
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
|
|
1012
1503
|
*/
|
|
1013
|
-
declare
|
|
1504
|
+
declare const Paper: react.ForwardRefExoticComponent<PaperProps & react.RefAttributes<HTMLDivElement>>;
|
|
1014
1505
|
|
|
1015
|
-
interface
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
value?: string;
|
|
1029
|
-
/** Change handler — receives the selected value */
|
|
1030
|
-
onChange?: (value: string) => void;
|
|
1031
|
-
/** Error message */
|
|
1032
|
-
error?: string;
|
|
1033
|
-
/** Layout direction */
|
|
1034
|
-
orientation?: 'vertical' | 'horizontal';
|
|
1035
|
-
/** Disabled state for all radios */
|
|
1036
|
-
disabled?: boolean;
|
|
1037
|
-
/** Additional CSS class */
|
|
1038
|
-
className?: string;
|
|
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';
|
|
1039
1519
|
}
|
|
1040
1520
|
/**
|
|
1041
|
-
*
|
|
1521
|
+
* Popover — positioned overlay content triggered by a reference element.
|
|
1042
1522
|
*
|
|
1043
1523
|
* Accessibility:
|
|
1044
|
-
* -
|
|
1045
|
-
* -
|
|
1046
|
-
* -
|
|
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
|
|
1047
1529
|
*/
|
|
1048
|
-
declare function
|
|
1530
|
+
declare function Popover({ trigger, content, open: controlledOpen, onOpenChange, placement, align, className, ...props }: PopoverProps): react_jsx_runtime.JSX.Element;
|
|
1049
1531
|
|
|
1050
|
-
interface
|
|
1051
|
-
/**
|
|
1052
|
-
|
|
1053
|
-
/**
|
|
1054
|
-
|
|
1055
|
-
/**
|
|
1056
|
-
|
|
1057
|
-
/**
|
|
1058
|
-
|
|
1059
|
-
/**
|
|
1060
|
-
|
|
1061
|
-
/**
|
|
1062
|
-
disabled?: boolean;
|
|
1063
|
-
/** Size variant */
|
|
1064
|
-
size?: 'sm' | 'md';
|
|
1065
|
-
/** Accessible label text */
|
|
1066
|
-
label?: string;
|
|
1067
|
-
/** Show current value next to the slider */
|
|
1068
|
-
showValue?: boolean;
|
|
1069
|
-
/** Additional CSS class */
|
|
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 */
|
|
1070
1544
|
className?: string;
|
|
1071
1545
|
}
|
|
1072
1546
|
/**
|
|
1073
|
-
*
|
|
1547
|
+
* CollapsiblePanel — a single collapsible section with animated expand/collapse.
|
|
1074
1548
|
*
|
|
1075
1549
|
* Accessibility:
|
|
1076
|
-
* -
|
|
1077
|
-
* -
|
|
1078
|
-
* -
|
|
1079
|
-
* -
|
|
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
|
|
1080
1554
|
*/
|
|
1081
|
-
declare
|
|
1555
|
+
declare function CollapsiblePanel({ title, defaultOpen, open: controlledOpen, onToggle, children, className, }: CollapsiblePanelProps): react_jsx_runtime.JSX.Element;
|
|
1082
1556
|
|
|
1083
|
-
interface
|
|
1084
|
-
/**
|
|
1085
|
-
|
|
1086
|
-
/**
|
|
1087
|
-
|
|
1088
|
-
/**
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
/**
|
|
1093
|
-
|
|
1094
|
-
/**
|
|
1095
|
-
|
|
1096
|
-
/** Additional
|
|
1557
|
+
interface BreadcrumbItem {
|
|
1558
|
+
/** Display label */
|
|
1559
|
+
label: string;
|
|
1560
|
+
/** Optional URL for link items */
|
|
1561
|
+
href?: string;
|
|
1562
|
+
/** Optional click handler */
|
|
1563
|
+
onClick?: () => void;
|
|
1564
|
+
}
|
|
1565
|
+
interface BreadcrumbsProps {
|
|
1566
|
+
/** Breadcrumb path items */
|
|
1567
|
+
items: BreadcrumbItem[];
|
|
1568
|
+
/** Separator between items */
|
|
1569
|
+
separator?: ReactNode;
|
|
1570
|
+
/** Additional className */
|
|
1097
1571
|
className?: string;
|
|
1098
1572
|
}
|
|
1099
1573
|
/**
|
|
1100
|
-
*
|
|
1574
|
+
* Breadcrumbs — navigational aid showing the current location within a hierarchy.
|
|
1101
1575
|
*
|
|
1102
1576
|
* Accessibility:
|
|
1103
|
-
* -
|
|
1104
|
-
* - Uses
|
|
1105
|
-
* - aria-
|
|
1106
|
-
* -
|
|
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
|
|
1107
1581
|
*/
|
|
1108
|
-
declare function
|
|
1582
|
+
declare function Breadcrumbs({ items, separator, className }: BreadcrumbsProps): react_jsx_runtime.JSX.Element;
|
|
1109
1583
|
|
|
1110
|
-
interface
|
|
1111
|
-
/**
|
|
1112
|
-
length?: number;
|
|
1113
|
-
/** Current value string */
|
|
1114
|
-
value?: string;
|
|
1115
|
-
/** Change handler — receives the full OTP string */
|
|
1116
|
-
onChange?: (value: string) => void;
|
|
1117
|
-
/** Error state */
|
|
1118
|
-
error?: boolean;
|
|
1119
|
-
/** Disabled state */
|
|
1120
|
-
disabled?: boolean;
|
|
1121
|
-
/** Auto-focus first input on mount */
|
|
1122
|
-
autoFocus?: boolean;
|
|
1123
|
-
/** Additional CSS class */
|
|
1584
|
+
interface DrawerProps {
|
|
1585
|
+
/** Additional className */
|
|
1124
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;
|
|
1125
1601
|
}
|
|
1126
1602
|
/**
|
|
1127
|
-
*
|
|
1603
|
+
* Drawer — side panel overlay for detail views and forms.
|
|
1128
1604
|
*
|
|
1129
1605
|
* Accessibility:
|
|
1130
|
-
* -
|
|
1131
|
-
* -
|
|
1132
|
-
* -
|
|
1133
|
-
* -
|
|
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
|
|
1134
1612
|
*/
|
|
1135
|
-
declare function
|
|
1613
|
+
declare function Drawer({ open, onClose, title, size, position, footer, className, children, }: DrawerProps): react_jsx_runtime.JSX.Element;
|
|
1136
1614
|
|
|
1137
|
-
interface
|
|
1138
|
-
/**
|
|
1139
|
-
|
|
1140
|
-
/**
|
|
1141
|
-
|
|
1142
|
-
/**
|
|
1143
|
-
|
|
1144
|
-
/**
|
|
1145
|
-
|
|
1146
|
-
/**
|
|
1147
|
-
|
|
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) */
|
|
1625
|
+
disabled?: boolean;
|
|
1148
1626
|
}
|
|
1149
1627
|
/**
|
|
1150
|
-
*
|
|
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
|
|
1151
1634
|
*
|
|
1152
1635
|
* Accessibility:
|
|
1153
|
-
* - Uses native
|
|
1154
|
-
* -
|
|
1155
|
-
* - aria-
|
|
1156
|
-
* - Consistent sizing with other Aegis form controls
|
|
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
|
|
1157
1639
|
*/
|
|
1158
|
-
declare const
|
|
1640
|
+
declare const Link: react.ForwardRefExoticComponent<LinkProps & react.RefAttributes<HTMLAnchorElement>>;
|
|
1159
1641
|
|
|
1160
|
-
interface
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
/** Available options */
|
|
1166
|
-
options: MultiSelectOption[];
|
|
1167
|
-
/** Currently selected values */
|
|
1168
|
-
value?: string[];
|
|
1169
|
-
/** Change handler — receives updated array of selected values */
|
|
1170
|
-
onChange?: (value: string[]) => void;
|
|
1171
|
-
/** Placeholder text */
|
|
1172
|
-
placeholder?: string;
|
|
1642
|
+
interface MenuItemProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onClick'> {
|
|
1643
|
+
/** Leading icon */
|
|
1644
|
+
icon?: ReactNode;
|
|
1645
|
+
/** Trailing content (shortcut, badge, etc.) */
|
|
1646
|
+
trailing?: ReactNode;
|
|
1173
1647
|
/** Disabled state */
|
|
1174
1648
|
disabled?: boolean;
|
|
1175
|
-
/**
|
|
1176
|
-
|
|
1177
|
-
/**
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
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;
|
|
1660
|
+
}
|
|
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';
|
|
1183
1669
|
}
|
|
1184
1670
|
/**
|
|
1185
|
-
*
|
|
1671
|
+
* Menu — dropdown action menu surface.
|
|
1672
|
+
*
|
|
1673
|
+
* Composes MenuItem, MenuDivider, and MenuGroup as children.
|
|
1186
1674
|
*
|
|
1187
1675
|
* Accessibility:
|
|
1188
|
-
* -
|
|
1189
|
-
* -
|
|
1190
|
-
* -
|
|
1191
|
-
* -
|
|
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
|
|
1683
|
+
*/
|
|
1684
|
+
declare function Menu({ trigger, align, width, className, children, ...props }: MenuProps): react_jsx_runtime.JSX.Element;
|
|
1685
|
+
|
|
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;
|
|
1695
|
+
/** Size variant */
|
|
1696
|
+
size?: 'sm' | 'md';
|
|
1697
|
+
}
|
|
1698
|
+
/**
|
|
1699
|
+
* Pagination — page navigation for paginated data.
|
|
1700
|
+
*
|
|
1701
|
+
* Accessibility:
|
|
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
|
|
1192
1707
|
*/
|
|
1193
|
-
declare function
|
|
1708
|
+
declare function Pagination({ currentPage, totalPages, onPageChange, siblingCount, size, className, ...props }: PaginationProps): react_jsx_runtime.JSX.Element | null;
|
|
1194
1709
|
|
|
1195
|
-
interface
|
|
1196
|
-
|
|
1710
|
+
interface SideNavItem {
|
|
1711
|
+
/** Display label */
|
|
1197
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[];
|
|
1198
1723
|
}
|
|
1199
|
-
interface
|
|
1200
|
-
/**
|
|
1201
|
-
|
|
1202
|
-
/**
|
|
1203
|
-
|
|
1204
|
-
/**
|
|
1205
|
-
|
|
1206
|
-
/**
|
|
1207
|
-
onInputChange?: (inputValue: string) => void;
|
|
1208
|
-
/** Placeholder text */
|
|
1209
|
-
placeholder?: string;
|
|
1210
|
-
/** Disabled state */
|
|
1211
|
-
disabled?: boolean;
|
|
1212
|
-
/** Error state */
|
|
1213
|
-
error?: boolean;
|
|
1214
|
-
/** Size variant */
|
|
1215
|
-
size?: 'sm' | 'md' | 'lg';
|
|
1216
|
-
/** Show a loading spinner in the dropdown */
|
|
1217
|
-
loading?: boolean;
|
|
1218
|
-
/** Text shown when no results match */
|
|
1219
|
-
noResultsText?: string;
|
|
1220
|
-
/** 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 */
|
|
1221
1732
|
className?: string;
|
|
1222
1733
|
}
|
|
1223
1734
|
/**
|
|
1224
|
-
*
|
|
1735
|
+
* SideNav — vertical sidebar navigation for dashboard layouts.
|
|
1225
1736
|
*
|
|
1226
1737
|
* Accessibility:
|
|
1227
|
-
* -
|
|
1228
|
-
* -
|
|
1229
|
-
* -
|
|
1230
|
-
* -
|
|
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
|
|
1231
1743
|
*/
|
|
1232
|
-
declare function
|
|
1744
|
+
declare function SideNav({ items, collapsed, onCollapse, className }: SideNavProps): react_jsx_runtime.JSX.Element;
|
|
1233
1745
|
|
|
1234
1746
|
interface StepperStep {
|
|
1235
1747
|
label: string;
|
|
@@ -1258,196 +1770,389 @@ interface StepperProps {
|
|
|
1258
1770
|
*/
|
|
1259
1771
|
declare function Stepper({ steps, activeStep, orientation, onStepClick, className, }: StepperProps): react_jsx_runtime.JSX.Element;
|
|
1260
1772
|
|
|
1261
|
-
interface
|
|
1262
|
-
/** Unique identifier */
|
|
1773
|
+
interface Tab {
|
|
1263
1774
|
id: string;
|
|
1264
|
-
|
|
1265
|
-
title: string;
|
|
1266
|
-
/** Panel content */
|
|
1775
|
+
label: string;
|
|
1267
1776
|
content: ReactNode;
|
|
1777
|
+
disabled?: boolean;
|
|
1268
1778
|
}
|
|
1269
|
-
interface
|
|
1270
|
-
/**
|
|
1271
|
-
|
|
1272
|
-
/**
|
|
1273
|
-
|
|
1274
|
-
/**
|
|
1275
|
-
|
|
1276
|
-
/** 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 */
|
|
1277
1787
|
className?: string;
|
|
1278
1788
|
}
|
|
1279
1789
|
/**
|
|
1280
|
-
*
|
|
1790
|
+
* Tabs — tabbed interface for switching between content panels.
|
|
1281
1791
|
*
|
|
1282
1792
|
* Accessibility:
|
|
1283
|
-
* -
|
|
1284
|
-
* -
|
|
1285
|
-
* -
|
|
1286
|
-
* -
|
|
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)
|
|
1287
1798
|
*/
|
|
1288
|
-
declare function
|
|
1799
|
+
declare function Tabs({ tabs, activeTab, onTabChange, className }: TabsProps): react_jsx_runtime.JSX.Element;
|
|
1289
1800
|
|
|
1290
|
-
interface
|
|
1801
|
+
interface CommandItem {
|
|
1802
|
+
/** Unique identifier */
|
|
1803
|
+
id: string;
|
|
1291
1804
|
/** Display label */
|
|
1292
1805
|
label: string;
|
|
1293
|
-
/** Optional
|
|
1294
|
-
|
|
1295
|
-
/**
|
|
1296
|
-
|
|
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[];
|
|
1297
1818
|
}
|
|
1298
|
-
interface
|
|
1299
|
-
/**
|
|
1300
|
-
|
|
1301
|
-
/**
|
|
1302
|
-
|
|
1303
|
-
/**
|
|
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 */
|
|
1304
1833
|
className?: string;
|
|
1305
1834
|
}
|
|
1306
1835
|
/**
|
|
1307
|
-
*
|
|
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.
|
|
1308
1840
|
*
|
|
1309
1841
|
* Accessibility:
|
|
1310
|
-
* -
|
|
1311
|
-
* -
|
|
1312
|
-
* -
|
|
1313
|
-
* -
|
|
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
|
|
1314
1847
|
*/
|
|
1315
|
-
declare
|
|
1848
|
+
declare const CommandPalette: react.ForwardRefExoticComponent<CommandPaletteProps & react.RefAttributes<HTMLDivElement>>;
|
|
1316
1849
|
|
|
1317
|
-
interface
|
|
1318
|
-
/**
|
|
1319
|
-
label
|
|
1320
|
-
/**
|
|
1321
|
-
|
|
1322
|
-
/**
|
|
1323
|
-
|
|
1324
|
-
/**
|
|
1325
|
-
|
|
1326
|
-
/**
|
|
1327
|
-
|
|
1328
|
-
/**
|
|
1329
|
-
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;
|
|
1330
1867
|
}
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
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;
|
|
1338
1960
|
/** Additional className */
|
|
1339
1961
|
className?: string;
|
|
1962
|
+
/** Input element */
|
|
1963
|
+
children: ReactNode;
|
|
1340
1964
|
}
|
|
1341
1965
|
/**
|
|
1342
|
-
*
|
|
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.
|
|
1343
1970
|
*
|
|
1344
1971
|
* Accessibility:
|
|
1345
|
-
* -
|
|
1346
|
-
* - aria-
|
|
1347
|
-
* - Collapse toggle button with aria-label
|
|
1348
|
-
* - Title attribute on items when collapsed for tooltip-style labels
|
|
1349
|
-
* - 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
|
|
1350
1974
|
*/
|
|
1351
|
-
declare function
|
|
1975
|
+
declare function InputGroup({ startAddon, endAddon, size, error, disabled, className, children, }: InputGroupProps): react_jsx_runtime.JSX.Element;
|
|
1352
1976
|
|
|
1353
|
-
interface
|
|
1354
|
-
/**
|
|
1355
|
-
|
|
1356
|
-
/**
|
|
1357
|
-
|
|
1358
|
-
/**
|
|
1359
|
-
|
|
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> {
|
|
1990
|
+
}
|
|
1991
|
+
/**
|
|
1992
|
+
* Toolbar — horizontal action bar with grouped controls.
|
|
1993
|
+
*
|
|
1994
|
+
* Use with ToolbarGroup to visually separate related actions
|
|
1995
|
+
* and ToolbarDivider for explicit separators.
|
|
1996
|
+
*
|
|
1997
|
+
* Accessibility:
|
|
1998
|
+
* - Uses toolbar ARIA role
|
|
1999
|
+
* - Children should be buttons or controls with labels
|
|
2000
|
+
*/
|
|
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>>;
|
|
2004
|
+
|
|
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;
|
|
2021
|
+
}
|
|
2022
|
+
/**
|
|
2023
|
+
* HelperText — descriptive or error text beneath a form field.
|
|
2024
|
+
*
|
|
2025
|
+
* Accessibility:
|
|
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)
|
|
2029
|
+
*/
|
|
2030
|
+
declare function HelperText({ error, className, children, ...props }: HelperTextProps): react_jsx_runtime.JSX.Element;
|
|
2031
|
+
|
|
2032
|
+
interface VisuallyHiddenProps extends HTMLAttributes<HTMLSpanElement> {
|
|
2033
|
+
/** Render as a different element */
|
|
2034
|
+
as?: 'span' | 'div' | 'label';
|
|
1360
2035
|
}
|
|
1361
2036
|
/**
|
|
1362
|
-
*
|
|
2037
|
+
* VisuallyHidden — renders content that is hidden visually but accessible
|
|
2038
|
+
* to screen readers and other assistive technology.
|
|
1363
2039
|
*
|
|
1364
|
-
*
|
|
1365
|
-
* -
|
|
1366
|
-
* -
|
|
1367
|
-
* -
|
|
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.
|
|
1368
2049
|
*/
|
|
1369
|
-
declare function
|
|
2050
|
+
declare function VisuallyHidden({ as: Component, children, ...props }: VisuallyHiddenProps): react_jsx_runtime.JSX.Element;
|
|
1370
2051
|
|
|
1371
|
-
interface
|
|
1372
|
-
/**
|
|
1373
|
-
|
|
1374
|
-
/**
|
|
1375
|
-
|
|
1376
|
-
/**
|
|
1377
|
-
|
|
1378
|
-
/** Label for the change (e.g. "vs last month") */
|
|
1379
|
-
changeLabel?: string;
|
|
1380
|
-
/** Trend direction */
|
|
1381
|
-
trend?: 'up' | 'down' | 'neutral';
|
|
1382
|
-
/** Optional icon */
|
|
1383
|
-
icon?: ReactNode;
|
|
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;
|
|
1384
2059
|
}
|
|
1385
2060
|
/**
|
|
1386
|
-
*
|
|
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.
|
|
1387
2067
|
*
|
|
1388
2068
|
* Accessibility:
|
|
1389
|
-
* -
|
|
1390
|
-
* -
|
|
1391
|
-
* -
|
|
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
|
|
1392
2073
|
*/
|
|
1393
|
-
declare function
|
|
2074
|
+
declare function Portal({ children, container, disabled }: PortalProps): react_jsx_runtime.JSX.Element;
|
|
1394
2075
|
|
|
1395
|
-
interface
|
|
1396
|
-
/**
|
|
1397
|
-
|
|
1398
|
-
/**
|
|
1399
|
-
|
|
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;
|
|
1400
2120
|
}
|
|
1401
2121
|
/**
|
|
1402
|
-
*
|
|
2122
|
+
* DataGrid — composable data grid built on Table primitives.
|
|
1403
2123
|
*
|
|
1404
2124
|
* Accessibility:
|
|
1405
|
-
* -
|
|
1406
|
-
* -
|
|
1407
|
-
* -
|
|
1408
|
-
* -
|
|
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
|
|
1409
2131
|
*/
|
|
1410
|
-
declare
|
|
1411
|
-
interface ListItemProps extends Omit<HTMLAttributes<HTMLLIElement>, 'prefix'> {
|
|
1412
|
-
/** Click handler — makes the item interactive */
|
|
1413
|
-
onClick?: () => void;
|
|
1414
|
-
/** Whether this item is selected */
|
|
1415
|
-
selected?: boolean;
|
|
1416
|
-
/** Whether this item is disabled */
|
|
1417
|
-
disabled?: boolean;
|
|
1418
|
-
/** Leading element (icon, avatar, etc.) */
|
|
1419
|
-
prefix?: ReactNode;
|
|
1420
|
-
/** Trailing element (badge, action button, etc.) */
|
|
1421
|
-
suffix?: ReactNode;
|
|
1422
|
-
/** Secondary description text */
|
|
1423
|
-
description?: string;
|
|
1424
|
-
}
|
|
1425
|
-
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;
|
|
1426
2133
|
|
|
1427
|
-
interface
|
|
1428
|
-
/**
|
|
1429
|
-
|
|
1430
|
-
/**
|
|
1431
|
-
|
|
1432
|
-
/**
|
|
1433
|
-
|
|
1434
|
-
/**
|
|
1435
|
-
|
|
1436
|
-
/**
|
|
1437
|
-
|
|
1438
|
-
/** Additional className */
|
|
1439
|
-
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;
|
|
1440
2145
|
}
|
|
1441
2146
|
/**
|
|
1442
|
-
*
|
|
2147
|
+
* DatePicker — styled native date input for consistent appearance.
|
|
1443
2148
|
*
|
|
1444
2149
|
* Accessibility:
|
|
1445
|
-
* -
|
|
1446
|
-
* -
|
|
1447
|
-
* -
|
|
1448
|
-
* -
|
|
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
|
|
1449
2154
|
*/
|
|
1450
|
-
declare
|
|
2155
|
+
declare const DatePicker: react.ForwardRefExoticComponent<DatePickerProps & react.RefAttributes<HTMLInputElement>>;
|
|
1451
2156
|
|
|
1452
2157
|
type PatientStatus = 'active' | 'inactive' | 'critical';
|
|
1453
2158
|
interface PatientCardProps extends HTMLAttributes<HTMLDivElement> {
|
|
@@ -1461,7 +2166,12 @@ interface PatientCardProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
1461
2166
|
age: number;
|
|
1462
2167
|
/** Patient gender */
|
|
1463
2168
|
gender: string;
|
|
1464
|
-
/** 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
|
+
*/
|
|
1465
2175
|
avatar?: ReactNode;
|
|
1466
2176
|
/** Patient status */
|
|
1467
2177
|
status?: PatientStatus;
|
|
@@ -1473,12 +2183,14 @@ interface PatientCardProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
1473
2183
|
/**
|
|
1474
2184
|
* PatientCard — summary card displaying patient demographics and key info.
|
|
1475
2185
|
*
|
|
2186
|
+
* Composes: Card, Avatar, Badge, Typography, Chip, Divider
|
|
2187
|
+
*
|
|
1476
2188
|
* Accessibility:
|
|
1477
2189
|
* - Uses role="region" with aria-label for screen readers
|
|
1478
2190
|
* - Status communicated via text, not color alone
|
|
1479
|
-
* - Allergy list uses semantic
|
|
2191
|
+
* - Allergy list uses Chip components with semantic markup
|
|
1480
2192
|
*/
|
|
1481
|
-
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;
|
|
1482
2194
|
|
|
1483
2195
|
type AppointmentStatus = 'scheduled' | 'checked-in' | 'in-progress' | 'completed' | 'cancelled' | 'no-show';
|
|
1484
2196
|
interface AppointmentCardProps extends HTMLAttributes<HTMLDivElement> {
|
|
@@ -1500,41 +2212,14 @@ interface AppointmentCardProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
1500
2212
|
/**
|
|
1501
2213
|
* AppointmentCard — displays appointment summary with status indicator.
|
|
1502
2214
|
*
|
|
2215
|
+
* Composes: Card, StatusBadge, Typography
|
|
2216
|
+
*
|
|
1503
2217
|
* Accessibility:
|
|
1504
2218
|
* - Uses role="region" with aria-label for context
|
|
1505
2219
|
* - Status conveyed via text label, not color alone
|
|
1506
2220
|
*/
|
|
1507
2221
|
declare function AppointmentCard({ patientName, date, time, type, provider, status, location, className, ...props }: AppointmentCardProps): react_jsx_runtime.JSX.Element;
|
|
1508
2222
|
|
|
1509
|
-
type TimelineItemVariant = 'default' | 'success' | 'warning' | 'error' | 'info';
|
|
1510
|
-
interface TimelineItem {
|
|
1511
|
-
/** Unique identifier */
|
|
1512
|
-
id: string;
|
|
1513
|
-
/** Event title */
|
|
1514
|
-
title: string;
|
|
1515
|
-
/** Optional description */
|
|
1516
|
-
description?: string;
|
|
1517
|
-
/** Timestamp display string */
|
|
1518
|
-
timestamp: string;
|
|
1519
|
-
/** Optional icon to replace the default dot */
|
|
1520
|
-
icon?: ReactNode;
|
|
1521
|
-
/** Visual variant */
|
|
1522
|
-
variant?: TimelineItemVariant;
|
|
1523
|
-
}
|
|
1524
|
-
interface TimelineProps extends HTMLAttributes<HTMLOListElement> {
|
|
1525
|
-
/** Timeline items in chronological order */
|
|
1526
|
-
items: TimelineItem[];
|
|
1527
|
-
}
|
|
1528
|
-
/**
|
|
1529
|
-
* Timeline — vertical timeline for displaying sequential events.
|
|
1530
|
-
*
|
|
1531
|
-
* Accessibility:
|
|
1532
|
-
* - Uses semantic <ol> for ordered event sequence
|
|
1533
|
-
* - Each event is an <li> for proper list semantics
|
|
1534
|
-
* - Icons are decorative (aria-hidden)
|
|
1535
|
-
*/
|
|
1536
|
-
declare function Timeline({ items, className, ...props }: TimelineProps): react_jsx_runtime.JSX.Element;
|
|
1537
|
-
|
|
1538
2223
|
type ClinicalSeverity = 'critical' | 'high' | 'moderate' | 'low';
|
|
1539
2224
|
interface ClinicalBannerProps extends HTMLAttributes<HTMLDivElement> {
|
|
1540
2225
|
/** Severity level */
|
|
@@ -1551,10 +2236,14 @@ interface ClinicalBannerProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
1551
2236
|
/**
|
|
1552
2237
|
* ClinicalBanner — prominent banner for critical clinical alerts.
|
|
1553
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
|
+
*
|
|
1554
2244
|
* Accessibility:
|
|
1555
|
-
* -
|
|
2245
|
+
* - Inherits Banner's role="alert" for urgent statuses
|
|
1556
2246
|
* - Icon + color + text ensures meaning is communicated multiple ways
|
|
1557
|
-
* - Dismiss button has accessible label
|
|
1558
2247
|
*/
|
|
1559
2248
|
declare function ClinicalBanner({ severity, title, dismissible, onDismiss, children, className, ...props }: ClinicalBannerProps): react_jsx_runtime.JSX.Element;
|
|
1560
2249
|
|
|
@@ -1580,8 +2269,9 @@ interface MedicationRowProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
1580
2269
|
/**
|
|
1581
2270
|
* MedicationRow — compact horizontal display of medication details.
|
|
1582
2271
|
*
|
|
2272
|
+
* Composes: StatusBadge, Typography
|
|
2273
|
+
*
|
|
1583
2274
|
* Accessibility:
|
|
1584
|
-
* - Uses role="row" semantics through div structure
|
|
1585
2275
|
* - Status communicated via text label, not color alone
|
|
1586
2276
|
* - All information is available as text content for screen readers
|
|
1587
2277
|
*/
|
|
@@ -1605,6 +2295,8 @@ interface LabResultRowProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
1605
2295
|
/**
|
|
1606
2296
|
* LabResultRow — displays a single lab test result with visual status indicator.
|
|
1607
2297
|
*
|
|
2298
|
+
* Composes: Badge, Typography
|
|
2299
|
+
*
|
|
1608
2300
|
* Accessibility:
|
|
1609
2301
|
* - Status conveyed via text label ("High", "Low", "Critical"), not color alone
|
|
1610
2302
|
* - Arrow indicators are supplementary (aria-hidden)
|
|
@@ -1633,100 +2325,15 @@ interface InsuranceCardProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
1633
2325
|
/**
|
|
1634
2326
|
* InsuranceCard — displays insurance plan summary information.
|
|
1635
2327
|
*
|
|
2328
|
+
* Composes: Card, Badge, Typography, DescriptionList, Divider
|
|
2329
|
+
*
|
|
1636
2330
|
* Accessibility:
|
|
1637
2331
|
* - Uses role="region" with aria-label for screen reader context
|
|
1638
2332
|
* - Status communicated via text label, not color alone
|
|
1639
|
-
* -
|
|
2333
|
+
* - DescriptionList provides semantic label-value pairs
|
|
1640
2334
|
*/
|
|
1641
2335
|
declare function InsuranceCard({ planName, memberId, groupNumber, planType, status, effectiveDate, expirationDate, className, ...props }: InsuranceCardProps): react_jsx_runtime.JSX.Element;
|
|
1642
2336
|
|
|
1643
|
-
type ToastStatus = 'info' | 'success' | 'warning' | 'error';
|
|
1644
|
-
interface ToastProps {
|
|
1645
|
-
/** Toast message */
|
|
1646
|
-
message: string;
|
|
1647
|
-
/** Optional title */
|
|
1648
|
-
title?: string;
|
|
1649
|
-
/** Status variant */
|
|
1650
|
-
status?: ToastStatus;
|
|
1651
|
-
/** Optional action element */
|
|
1652
|
-
action?: ReactNode;
|
|
1653
|
-
/** Called when toast is closed */
|
|
1654
|
-
onClose: () => void;
|
|
1655
|
-
/** Auto-dismiss duration in ms (0 to disable) */
|
|
1656
|
-
duration?: number;
|
|
1657
|
-
/** Additional class name */
|
|
1658
|
-
className?: string;
|
|
1659
|
-
}
|
|
1660
|
-
/**
|
|
1661
|
-
* Toast — transient notification that auto-dismisses.
|
|
1662
|
-
*
|
|
1663
|
-
* Accessibility:
|
|
1664
|
-
* - Uses role="alert" for error/warning (assertive), role="status" for info/success (polite)
|
|
1665
|
-
* - Close button has accessible label
|
|
1666
|
-
* - Auto-dismiss can be disabled for important messages
|
|
1667
|
-
* - Icon + color + text ensures meaning is communicated multiple ways
|
|
1668
|
-
*/
|
|
1669
|
-
declare function Toast({ message, title, status, action, onClose, duration, className, }: ToastProps): react_jsx_runtime.JSX.Element;
|
|
1670
|
-
|
|
1671
|
-
interface ConfirmDialogProps {
|
|
1672
|
-
/** Whether the dialog is open */
|
|
1673
|
-
open: boolean;
|
|
1674
|
-
/** Called when the user confirms */
|
|
1675
|
-
onConfirm: () => void;
|
|
1676
|
-
/** Called when the user cancels */
|
|
1677
|
-
onCancel: () => void;
|
|
1678
|
-
/** Dialog title */
|
|
1679
|
-
title: string;
|
|
1680
|
-
/** Message or content */
|
|
1681
|
-
message: string | ReactNode;
|
|
1682
|
-
/** Confirm button label */
|
|
1683
|
-
confirmLabel?: string;
|
|
1684
|
-
/** Cancel button label */
|
|
1685
|
-
cancelLabel?: string;
|
|
1686
|
-
/** Visual variant */
|
|
1687
|
-
variant?: 'default' | 'danger';
|
|
1688
|
-
/** Show loading state on confirm button */
|
|
1689
|
-
loading?: boolean;
|
|
1690
|
-
/** Additional class name */
|
|
1691
|
-
className?: string;
|
|
1692
|
-
}
|
|
1693
|
-
/**
|
|
1694
|
-
* ConfirmDialog — confirmation dialog built on native <dialog>.
|
|
1695
|
-
*
|
|
1696
|
-
* Accessibility:
|
|
1697
|
-
* - Uses native <dialog> for built-in focus trapping and Escape handling
|
|
1698
|
-
* - aria-labelledby links to the title
|
|
1699
|
-
* - aria-describedby links to the message
|
|
1700
|
-
* - Focus moves to cancel button on open (safe default)
|
|
1701
|
-
* - Escape key closes the dialog
|
|
1702
|
-
* - Backdrop click cancels
|
|
1703
|
-
*/
|
|
1704
|
-
declare function ConfirmDialog({ open, onConfirm, onCancel, title, message, confirmLabel, cancelLabel, variant, loading, className, }: ConfirmDialogProps): react_jsx_runtime.JSX.Element;
|
|
1705
|
-
|
|
1706
|
-
type BannerStatus = 'info' | 'success' | 'warning' | 'error';
|
|
1707
|
-
interface BannerProps extends HTMLAttributes<HTMLDivElement> {
|
|
1708
|
-
/** Status variant */
|
|
1709
|
-
status?: BannerStatus;
|
|
1710
|
-
/** Whether the banner can be dismissed */
|
|
1711
|
-
dismissible?: boolean;
|
|
1712
|
-
/** Called when dismiss button is clicked */
|
|
1713
|
-
onDismiss?: () => void;
|
|
1714
|
-
/** Optional action element */
|
|
1715
|
-
action?: ReactNode;
|
|
1716
|
-
/** Banner content */
|
|
1717
|
-
children: ReactNode;
|
|
1718
|
-
}
|
|
1719
|
-
/**
|
|
1720
|
-
* Banner — full-width banner for page-level messages.
|
|
1721
|
-
*
|
|
1722
|
-
* Accessibility:
|
|
1723
|
-
* - Uses role="alert" for error/warning (assertive announcement)
|
|
1724
|
-
* - Uses role="status" for info/success (polite announcement)
|
|
1725
|
-
* - Icon + color + text ensures meaning is communicated multiple ways
|
|
1726
|
-
* - Dismiss button has accessible label
|
|
1727
|
-
*/
|
|
1728
|
-
declare function Banner({ status, dismissible, onDismiss, action, children, className, ...props }: BannerProps): react_jsx_runtime.JSX.Element;
|
|
1729
|
-
|
|
1730
2337
|
type ChartCardState = 'ready' | 'loading' | 'empty' | 'error';
|
|
1731
2338
|
interface ChartCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
1732
2339
|
/** Card title (e.g. "30-day patient adherence") */
|
|
@@ -2068,4 +2675,4 @@ type Size = 'sm' | 'md' | 'lg';
|
|
|
2068
2675
|
type Status = 'success' | 'warning' | 'error' | 'info';
|
|
2069
2676
|
type Variant = 'primary' | 'secondary' | 'ghost' | 'danger';
|
|
2070
2677
|
|
|
2071
|
-
export { Accordion, type AccordionItem, type AccordionProps, Alert, type AlertProps, AppointmentCard, type AppointmentCardProps, type AppointmentStatus, AreaChart, type AreaChartProps, Autocomplete, type AutocompleteOption, type AutocompleteProps, Avatar, type AvatarProps, Badge, type BadgeProps, Banner, type BannerProps, type BannerStatus, BarChart, type BarChartProps, type BreadcrumbItem, Breadcrumbs, type BreadcrumbsProps, Button, type ButtonProps, Card, type CardProps, ChartCard, type ChartCardProps, type ChartCardState, ChartLegend, type ChartSeries, ChartTooltip, type ChartTooltipProps, 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 };
|