@innovaccer/design-system 5.0.0-21 → 5.0.0-23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/CHANGELOG.md +209 -1
  2. package/README.md +1 -1
  3. package/css/dist/index.css +930 -439
  4. package/css/dist/index.css.map +1 -1
  5. package/css/src/ai-components/button.module.css +2 -2
  6. package/css/src/ai-components/chat.module.css +0 -13
  7. package/css/src/ai-components/chip.module.css +3 -2
  8. package/css/src/ai-components/iconButton.module.css +3 -4
  9. package/css/src/components/actionButton.module.css +1 -1
  10. package/css/src/components/actionCard.module.css +2 -3
  11. package/css/src/components/avatar.module.css +26 -4
  12. package/css/src/components/avatarGroup.module.css +19 -3
  13. package/css/src/components/avatarSelection.module.css +29 -6
  14. package/css/src/components/badge.module.css +1 -1
  15. package/css/src/components/breadcrumbs.module.css +2 -1
  16. package/css/src/components/button.module.css +52 -52
  17. package/css/src/components/calendar.module.css +109 -30
  18. package/css/src/components/chatInput.module.css +1 -0
  19. package/css/src/components/checkbox.module.css +12 -15
  20. package/css/src/components/chip.module.css +32 -18
  21. package/css/src/components/chipInput.module.css +7 -6
  22. package/css/src/components/collapsible.module.css +2 -2
  23. package/css/src/components/dropdown.module.css +1 -0
  24. package/css/src/components/horizontalNav.module.css +19 -7
  25. package/css/src/components/inlineMessage.module.css +1 -1
  26. package/css/src/components/input.module.css +11 -9
  27. package/css/src/components/link.module.css +8 -15
  28. package/css/src/components/linkButton.module.css +4 -4
  29. package/css/src/components/listbox.module.css +8 -4
  30. package/css/src/components/metricInput.module.css +6 -4
  31. package/css/src/components/radio.module.css +16 -16
  32. package/css/src/components/segmentedControl.module.css +3 -3
  33. package/css/src/components/select.module.css +3 -10
  34. package/css/src/components/selectionCard.module.css +6 -8
  35. package/css/src/components/slider.module.css +25 -2
  36. package/css/src/components/spinner.module.css +3 -3
  37. package/css/src/components/stepper.module.css +7 -6
  38. package/css/src/components/switch.module.css +22 -2
  39. package/css/src/components/tabs.module.css +35 -10
  40. package/css/src/components/text.module.css +1 -0
  41. package/css/src/components/textarea.module.css +6 -5
  42. package/css/src/components/toast.module.css +14 -41
  43. package/css/src/components/verticalNav.module.css +39 -7
  44. package/css/src/core/utilities.css +3 -3
  45. package/css/src/tokens/index.css +325 -59
  46. package/css/src/variables/index.css +20 -16
  47. package/dist/brotli/index.js +4 -4
  48. package/dist/brotli/index.js.br +0 -0
  49. package/dist/cjs/index.js +4 -4
  50. package/dist/core/accessibility/utils/useAccessibilityProps.d.ts +12 -4
  51. package/dist/core/ai-components/AIResponse/index.d.ts +1 -1
  52. package/dist/core/components/atoms/_chip/index.d.ts +5 -1
  53. package/dist/core/components/atoms/avatar/Avatar.d.ts +2 -0
  54. package/dist/core/components/atoms/avatarGroup/AvatarGroup.d.ts +2 -0
  55. package/dist/core/components/atoms/avatarSelection/AvatarSelection.d.ts +2 -0
  56. package/dist/core/components/atoms/chip/Chip.d.ts +3 -0
  57. package/dist/core/components/atoms/dropdown/DropdownButton.d.ts +2 -0
  58. package/dist/core/components/atoms/dropdown/DropdownList.d.ts +1 -0
  59. package/dist/core/components/atoms/dropdown/option/index.d.ts +1 -0
  60. package/dist/core/components/atoms/icon/Icon.d.ts +1 -0
  61. package/dist/core/components/atoms/legend/Legend.d.ts +1 -1
  62. package/dist/core/components/atoms/multiSlider/Handle.d.ts +5 -1
  63. package/dist/core/components/atoms/multiSlider/SliderUtils.d.ts +1 -1
  64. package/dist/core/components/atoms/pills/Pills.d.ts +1 -0
  65. package/dist/core/components/atoms/segmentedControl/SegmentedControlItem.d.ts +2 -0
  66. package/dist/core/components/atoms/spinner/Spinner.d.ts +1 -0
  67. package/dist/core/components/molecules/chipInput/ChipInput.d.ts +4 -0
  68. package/dist/core/components/molecules/fullscreenModal/FullscreenModal.d.ts +4 -0
  69. package/dist/core/components/molecules/modal/Modal.d.ts +8 -0
  70. package/dist/core/components/molecules/modal/ModalHeader.d.ts +1 -0
  71. package/dist/core/components/molecules/overlayFooter/OverlayFooter.d.ts +1 -0
  72. package/dist/core/components/molecules/overlayHeader/OverlayHeader.d.ts +1 -0
  73. package/dist/core/components/molecules/sidesheet/Sidesheet.d.ts +11 -0
  74. package/dist/core/components/molecules/stepper/Step.d.ts +3 -4
  75. package/dist/core/components/molecules/tabs/Tabs.d.ts +1 -0
  76. package/dist/core/components/molecules/tooltip/Tooltip.d.ts +2 -0
  77. package/dist/core/components/organisms/calendar/Calendar.d.ts +17 -2
  78. package/dist/core/components/organisms/calendar/utils.d.ts +54 -0
  79. package/dist/core/components/organisms/choiceList/ChoiceList.d.ts +7 -0
  80. package/dist/core/components/organisms/combobox/Combobox.d.ts +2 -0
  81. package/dist/core/components/organisms/combobox/trigger/ComboboxTrigger.d.ts +2 -0
  82. package/dist/core/components/organisms/combobox/trigger/MultiselectTrigger.d.ts +3 -0
  83. package/dist/core/components/organisms/datePicker/DatePicker.d.ts +2 -0
  84. package/dist/core/components/organisms/dateRangePicker/DateRangePicker.d.ts +2 -0
  85. package/dist/core/components/organisms/grid/Grid.d.ts +2 -0
  86. package/dist/core/components/organisms/horizontalNav/HorizontalNav.d.ts +3 -1
  87. package/dist/core/components/organisms/menu/Menu.d.ts +2 -0
  88. package/dist/core/components/organisms/menu/trigger/MenuTrigger.d.ts +1 -0
  89. package/dist/core/components/organisms/navigation/VerticalNavigation.d.ts +1 -0
  90. package/dist/core/components/organisms/pageHeader/PageHeader.d.ts +1 -0
  91. package/dist/core/components/organisms/select/SelectList.d.ts +1 -0
  92. package/dist/core/components/organisms/select/SelectOption.d.ts +1 -0
  93. package/dist/core/components/organisms/select/SelectTrigger.d.ts +1 -0
  94. package/dist/core/components/organisms/table/Table.d.ts +2 -0
  95. package/dist/core/components/organisms/timePicker/TimePickerWithInput.d.ts +1 -0
  96. package/dist/core/components/organisms/timePicker/TimePickerWithSearch.d.ts +2 -0
  97. package/dist/core/components/organisms/verticalNav/MenuItem.d.ts +1 -0
  98. package/dist/core/components/organisms/verticalNav/utils.d.ts +20 -0
  99. package/dist/core/utils/Keys.d.ts +4 -0
  100. package/dist/core/utils/docPage/AccessibilityPropTable.d.ts +7 -0
  101. package/dist/core/utils/docPage/accessibilityProps.d.ts +18 -0
  102. package/dist/core/utils/overlayHelper.d.ts +3 -0
  103. package/dist/esm/index.js +2817 -910
  104. package/dist/gzip/index.js +4 -4
  105. package/dist/gzip/index.js.gz +0 -0
  106. package/dist/index.umd.css +920 -429
  107. package/dist/index.umd.js +4 -4
  108. package/dist/types/tsconfig.type.tsbuildinfo +1 -1
  109. package/package.json +1 -1
@@ -6,16 +6,24 @@ interface IProps {
6
6
  role?: AriaRoleType;
7
7
  tabIndex?: number;
8
8
  'aria-label'?: React.AriaAttributes['aria-label'];
9
+ 'aria-labelledby'?: React.AriaAttributes['aria-labelledby'];
10
+ 'aria-describedby'?: React.AriaAttributes['aria-describedby'];
11
+ 'aria-hidden'?: React.AriaAttributes['aria-hidden'];
9
12
  }
10
13
  declare const useAccessibilityProps: ({ onClick, onKeyDown, role, tabIndex, ...rest }: IProps) => {
14
+ 'aria-hidden'?: (boolean | "true" | "false") | undefined;
15
+ 'aria-describedby'?: string | undefined;
16
+ 'aria-labelledby'?: string | undefined;
17
+ 'aria-label'?: string | undefined;
18
+ onClick?: undefined;
19
+ role?: undefined;
20
+ tabIndex?: undefined;
21
+ onKeyDown?: undefined;
22
+ } | {
11
23
  onClick: (event: React.MouseEvent<HTMLElement>) => void;
12
24
  role: React.AriaRole;
13
25
  tabIndex: number;
14
26
  'aria-label': string | undefined;
15
27
  onKeyDown: (e: React.SyntheticEvent<HTMLElement>) => void;
16
- } | {
17
- role: React.AriaRole;
18
- tabIndex: number | undefined;
19
- 'aria-label': string | undefined;
20
28
  };
21
29
  export default useAccessibilityProps;
@@ -120,7 +120,7 @@ export declare const AIResponse: {
120
120
  accessKey?: string | undefined | undefined;
121
121
  autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
122
122
  autoFocus?: boolean | undefined;
123
- contentEditable?: "inherit" | (boolean | "true" | "false") | "plaintext-only" | undefined;
123
+ contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
124
124
  contextMenu?: string | undefined | undefined;
125
125
  dir?: string | undefined | undefined;
126
126
  draggable?: (boolean | "true" | "false") | undefined;
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { Name } from '../chip/Chip';
2
+ import { Name, ChipType } from '../chip/Chip';
3
3
  import { BaseProps } from '@/utils/types';
4
4
  import { IconType, TChipSize } from '@/common.type';
5
5
  export type GenericChipProps = {
@@ -15,6 +15,10 @@ export type GenericChipProps = {
15
15
  name: Name;
16
16
  maxWidth?: string | number;
17
17
  size?: TChipSize;
18
+ type?: ChipType;
19
+ role?: string;
20
+ 'aria-label'?: string;
21
+ 'aria-labelledby'?: string;
18
22
  } & BaseProps;
19
23
  export declare const GenericChip: {
20
24
  (props: GenericChipProps): React.JSX.Element;
@@ -16,9 +16,11 @@ export type AvatarProps = {
16
16
  disabled?: boolean;
17
17
  role?: string;
18
18
  tabIndex?: number;
19
+ 'aria-label'?: string;
19
20
  presence?: TPresence;
20
21
  status?: React.ReactNode;
21
22
  strokeColor?: string;
23
+ 'aria-hidden'?: boolean;
22
24
  } & BaseProps;
23
25
  export declare const Avatar: {
24
26
  (props: AvatarProps): React.JSX.Element;
@@ -29,6 +29,8 @@ interface AvatarPopoverProps {
29
29
  searchComparator?: (searchValue: string, avatarData: AvatarData) => boolean;
30
30
  }
31
31
  export type AvatarGroupProps = {
32
+ 'aria-label'?: string;
33
+ 'aria-labelledby'?: string;
32
34
  list: AvatarData[];
33
35
  max?: number;
34
36
  borderColor?: string;
@@ -16,6 +16,8 @@ export interface AvatarData extends Record<string, any> {
16
16
  shape?: AvatarShape;
17
17
  }
18
18
  export interface AvatarSelectionProps extends BaseProps {
19
+ 'aria-label'?: string;
20
+ 'aria-labelledby'?: string;
19
21
  list: AvatarData[];
20
22
  max?: number;
21
23
  borderColor?: string;
@@ -18,6 +18,9 @@ export type ChipProps = {
18
18
  onClick?: (name: Name) => void;
19
19
  name: Name;
20
20
  maxWidth?: string | number;
21
+ role?: React.AriaRole;
22
+ 'aria-label'?: string;
23
+ 'aria-labelledby'?: string;
21
24
  } & BaseProps;
22
25
  export declare const Chip: {
23
26
  (props: ChipProps): React.JSX.Element;
@@ -10,6 +10,8 @@ export interface TriggerProps {
10
10
  disabled?: boolean;
11
11
  menu?: boolean;
12
12
  error?: boolean;
13
+ 'aria-label'?: string;
14
+ 'aria-labelledby'?: string;
13
15
  }
14
16
  export interface DropdownButtonProps extends TriggerProps {
15
17
  children?: string | number;
@@ -48,6 +48,7 @@ export interface DropdownListProps extends TriggerAndOptionProps {
48
48
  popoverOptions?: PopoverOptions;
49
49
  searchPlaceholder?: string;
50
50
  scrollIndex?: number;
51
+ optionsAriaLabel?: string;
51
52
  }
52
53
  interface OptionsProps extends DropdownListProps, BaseProps {
53
54
  listOptions: OptionSchema[];
@@ -24,6 +24,7 @@ export interface OptionTypeProps {
24
24
  dataTest?: string;
25
25
  optionData: OptionSchema;
26
26
  selected: boolean;
27
+ menu?: boolean;
27
28
  appearance?: IconProps['appearance'];
28
29
  color?: TextProps['color'];
29
30
  index: number;
@@ -11,6 +11,7 @@ export type IconProps = {
11
11
  onKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;
12
12
  children?: React.ReactNode;
13
13
  tabIndex?: React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>['tabIndex'];
14
+ 'aria-hidden'?: React.AriaAttributes['aria-hidden'];
14
15
  } & BaseProps;
15
16
  export declare const Icon: {
16
17
  (props: IconProps): React.JSX.Element;
@@ -7,7 +7,7 @@ export type LegendProps = {
7
7
  labelAppearance?: TextAppearance;
8
8
  iconSize?: number;
9
9
  labelWeight?: 'strong' | 'medium';
10
- onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;
10
+ onClick?: (e: React.MouseEvent<HTMLDivElement> | React.KeyboardEvent<HTMLDivElement>) => void;
11
11
  onMouseEnter?: (e: React.MouseEvent<HTMLDivElement>) => void;
12
12
  onMouseLeave?: (e: React.MouseEvent<HTMLDivElement>) => void;
13
13
  } & BaseProps;
@@ -20,11 +20,13 @@ export interface InternalHandleProps extends HandleProps {
20
20
  export interface HandleState {
21
21
  isHandleMoving?: boolean;
22
22
  isHandleHovered?: boolean;
23
+ isHandleFocused?: boolean;
23
24
  }
24
25
  export declare class Handle extends React.Component<InternalHandleProps, HandleState> {
25
26
  state: {
26
27
  isHandleMoving: boolean;
27
28
  isHandleHovered: boolean;
29
+ isHandleFocused: boolean;
28
30
  };
29
31
  handleElement: HTMLElement | null;
30
32
  refHandlers: {
@@ -34,7 +36,7 @@ export declare class Handle extends React.Component<InternalHandleProps, HandleS
34
36
  componentDidUpdate(_prevProps: InternalHandleProps, prevState: HandleState): void;
35
37
  mouseEventClientOffset: (event: MouseEvent | React.MouseEvent<HTMLElement>) => number;
36
38
  clientToValue: (clientPixel: number) => number;
37
- changeValue: (newValue: number, callback?: ((newValue: number) => void) | undefined) => number;
39
+ changeValue: (newValue: number, callback?: ((newValue: number) => void) | undefined, isDirectionalUpdate?: boolean) => number;
38
40
  endHandleMovement: (event: MouseEvent) => void;
39
41
  continueHandleMovement: (event: MouseEvent) => void;
40
42
  beginHandleMovement: (event: MouseEvent | React.MouseEvent<HTMLElement>) => void;
@@ -46,6 +48,8 @@ export declare class Handle extends React.Component<InternalHandleProps, HandleS
46
48
  };
47
49
  handleMouseOver: () => void;
48
50
  handleMouseLeave: () => void;
51
+ handleFocus: () => void;
52
+ handleBlur: () => void;
49
53
  render(): React.JSX.Element;
50
54
  removeDocumentEventListeners: () => void;
51
55
  }
@@ -2,7 +2,7 @@ export declare const formatPercentage: (ratio: number) => string;
2
2
  export declare const countDecimalPlaces: (value: number) => number;
3
3
  export declare const approxEqual: (a: number, b: number) => boolean;
4
4
  export declare const clamp: (value: number, min: number, max: number) => number;
5
- export declare const arraysEqual: (oldValues: number[], newValues: number[]) => boolean | undefined;
5
+ export declare const arraysEqual: (oldValues: number[], newValues: number[]) => boolean;
6
6
  export declare function argMin<T>(values: T[], argFn: (value: T) => any): T | undefined;
7
7
  export declare function fillValues<T>(values: T[], startIndex: number, endIndex: number, fillValue: T): void;
8
8
  export declare function isElementOfType(element: React.ReactElement): boolean;
@@ -5,6 +5,7 @@ export type PillsProps = {
5
5
  appearance?: AccentAppearance;
6
6
  subtle?: boolean;
7
7
  children?: string | number;
8
+ 'aria-label'?: string;
8
9
  } & BaseProps;
9
10
  export declare const Pills: {
10
11
  (props: PillsProps): React.JSX.Element;
@@ -11,6 +11,8 @@ export interface SegmentedControlItemProps extends BaseProps {
11
11
  tooltip?: string;
12
12
  disabled?: boolean;
13
13
  value?: SegmentedControlValue;
14
+ 'aria-label'?: string;
15
+ 'aria-labelledby'?: string;
14
16
  }
15
17
  export declare const SegmentedControlItem: {
16
18
  (props: SegmentedControlItemProps): React.JSX.Element | null;
@@ -5,6 +5,7 @@ export type SpinnerSize = 'xsmall' | 'small' | 'medium' | 'large';
5
5
  export type SpinnerProps = {
6
6
  appearance?: SpinnerAppearance;
7
7
  size?: SpinnerSize;
8
+ 'aria-label'?: string;
8
9
  } & BaseProps;
9
10
  export declare const Spinner: {
10
11
  (props: SpinnerProps): React.JSX.Element;
@@ -7,6 +7,7 @@ type ChipOptions = {
7
7
  iconType?: ChipProps['iconType'];
8
8
  clearButton?: ChipProps['clearButton'];
9
9
  maxWidth?: ChipProps['maxWidth'];
10
+ role?: ChipProps['role'];
10
11
  onClick?: (value: string, index: number) => void;
11
12
  };
12
13
  export type ChipInputSize = 'regular' | 'small';
@@ -24,6 +25,9 @@ export type ChipInputProps = {
24
25
  onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;
25
26
  onFocus?: (e: React.FocusEvent<HTMLInputElement>) => void;
26
27
  chipValidator?: (chip: string) => boolean;
28
+ 'aria-label'?: string;
29
+ 'aria-labelledby'?: string;
30
+ 'aria-describedby'?: string;
27
31
  } & BaseProps;
28
32
  export declare const ChipInput: {
29
33
  (props: ChipInputProps): React.JSX.Element;
@@ -13,6 +13,9 @@ export type FullscreenModalProps = {
13
13
  footer?: React.ReactNode;
14
14
  children?: React.ReactNode;
15
15
  closeOnEscape?: boolean;
16
+ 'aria-labelledby'?: string;
17
+ 'aria-label'?: string;
18
+ 'aria-describedby'?: string;
16
19
  } & BaseProps;
17
20
  interface ModalState {
18
21
  open: boolean;
@@ -21,6 +24,7 @@ interface ModalState {
21
24
  }
22
25
  declare class FullscreenModal extends React.Component<FullscreenModalProps, ModalState> {
23
26
  modalRef: React.RefObject<HTMLDivElement | null>;
27
+ autoHeadingId: string;
24
28
  element: Element;
25
29
  static defaultProps: {
26
30
  dimension: string;
@@ -15,6 +15,7 @@ export type ModalProps = {
15
15
  children?: React.ReactNode;
16
16
  seperator?: boolean;
17
17
  closeOnEscape?: boolean;
18
+ 'aria-labelledby'?: string;
18
19
  } & BaseProps;
19
20
  interface ModalState {
20
21
  open: boolean;
@@ -23,12 +24,19 @@ interface ModalState {
23
24
  }
24
25
  declare class Modal extends React.Component<ModalProps, ModalState> {
25
26
  modalRef: React.RefObject<HTMLDivElement | null>;
27
+ modalContentRef: React.RefObject<HTMLDivElement | null>;
28
+ previousActiveElement: HTMLElement | null;
29
+ autoHeadingId: string;
26
30
  element: Element;
27
31
  static defaultProps: {
28
32
  dimension: string;
33
+ closeOnEscape: boolean;
29
34
  };
30
35
  constructor(props: ModalProps);
31
36
  onCloseHandler: (event: KeyboardEvent) => void;
37
+ onFocusTrapKeyDown: (event: KeyboardEvent) => void;
38
+ activateFocusTrap: () => void;
39
+ deactivateFocusTrap: () => void;
32
40
  componentDidMount(): void;
33
41
  componentWillUnmount(): void;
34
42
  componentDidUpdate(prevProps: ModalProps): void;
@@ -7,6 +7,7 @@ export interface ModalHeaderProps extends BaseProps {
7
7
  seperator?: boolean;
8
8
  backIcon?: boolean;
9
9
  backIconCallback?: (e: React.MouseEvent<HTMLElement, MouseEvent>) => void;
10
+ headingId?: string;
10
11
  }
11
12
  export declare const ModalHeader: {
12
13
  (props: ModalHeaderProps): React.JSX.Element;
@@ -5,6 +5,7 @@ export interface OverlayFooterProps extends BaseProps {
5
5
  open?: boolean;
6
6
  children?: React.ReactNode;
7
7
  actions?: ButtonProps[];
8
+ skipFocusOnOpen?: boolean;
8
9
  }
9
10
  export declare const OverlayFooter: {
10
11
  (props: OverlayFooterProps): React.JSX.Element;
@@ -9,6 +9,7 @@ export interface OverlayHeaderProps extends BaseProps {
9
9
  backIcon?: boolean;
10
10
  backIconCallback?: (e: React.MouseEvent<HTMLElement, MouseEvent>) => void;
11
11
  headingClass?: string;
12
+ headingId?: string;
12
13
  }
13
14
  export declare const OverlayHeader: {
14
15
  (props: OverlayHeaderProps): React.JSX.Element;
@@ -16,6 +16,7 @@ export type SidesheetProps = {
16
16
  backdropClose?: boolean;
17
17
  closeOnEscape?: boolean;
18
18
  onClose?: (event?: Event | React.MouseEvent<HTMLElement, MouseEvent>, reason?: string) => void;
19
+ 'aria-labelledby'?: string;
19
20
  } & BaseProps;
20
21
  interface SidesheetState {
21
22
  open: boolean;
@@ -24,14 +25,24 @@ interface SidesheetState {
24
25
  }
25
26
  declare class Sidesheet extends React.Component<SidesheetProps, SidesheetState> {
26
27
  sidesheetRef: React.RefObject<HTMLDivElement | null>;
28
+ sidesheetContentRef: React.RefObject<HTMLDivElement | null>;
29
+ previousActiveElement: HTMLElement | null;
30
+ autofocusRAF: number | null;
31
+ autoHeadingId: string;
27
32
  element: Element;
28
33
  static defaultProps: {
29
34
  dimension: string;
30
35
  stickFooter: boolean;
31
36
  headerOptions: {};
37
+ closeOnEscape: boolean;
32
38
  };
33
39
  constructor(props: SidesheetProps);
34
40
  onCloseHandler: (event: KeyboardEvent) => void;
41
+ onFocusTrapKeyDown: (event: KeyboardEvent) => void;
42
+ focusFirstFocusable: () => void;
43
+ onOpenAnimationStart: (event: React.AnimationEvent<HTMLDivElement>) => void;
44
+ activateFocusTrap: () => void;
45
+ deactivateFocusTrap: () => void;
35
46
  componentDidMount(): void;
36
47
  componentWillUnmount(): void;
37
48
  componentDidUpdate(prevProps: SidesheetProps): void;
@@ -6,9 +6,8 @@ export interface StepProps {
6
6
  active: boolean;
7
7
  completed: boolean;
8
8
  onChange?: (label: string, value?: string | number) => void;
9
+ onKeyDown?: (e: React.KeyboardEvent) => void;
10
+ isTabStop?: boolean;
9
11
  }
10
- export declare const Step: {
11
- (props: StepProps): React.JSX.Element;
12
- displayName: string;
13
- };
12
+ export declare const Step: React.ForwardRefExoticComponent<StepProps & React.RefAttributes<HTMLDivElement>>;
14
13
  export default Step;
@@ -25,6 +25,7 @@ export type TabsProps = {
25
25
  headerClassName?: string;
26
26
  size?: TTabSize;
27
27
  maxWidth?: string | number;
28
+ 'aria-labelledby'?: string;
28
29
  } & BaseProps;
29
30
  export declare const Tabs: {
30
31
  (props: TabsProps): React.JSX.Element;
@@ -24,6 +24,8 @@ export declare const Tooltip: {
24
24
  };
25
25
  defaultProps: {
26
26
  hoverable: boolean;
27
+ showTooltip: boolean;
28
+ showOnTruncation: boolean;
27
29
  };
28
30
  };
29
31
  export default Tooltip;
@@ -37,6 +37,8 @@ export type SharedProps = {
37
37
  yearNav?: number;
38
38
  monthNav?: number;
39
39
  allowReverseSelection?: boolean;
40
+ 'aria-label'?: string;
41
+ 'aria-labelledby'?: string;
40
42
  } & BaseProps;
41
43
  export type CalendarProps = {
42
44
  onDateChange?: (date: Date) => void;
@@ -66,6 +68,11 @@ interface CalendarState {
66
68
  todayDate: number;
67
69
  currMonth: number;
68
70
  currYear: number;
71
+ focusedDateRow?: number;
72
+ focusedDateCol?: number;
73
+ focusedDateMonthIndex?: number;
74
+ focusedMonth?: number;
75
+ focusedYearIndex?: number;
69
76
  }
70
77
  export declare class Calendar extends React.Component<CalendarProps, CalendarState> {
71
78
  static defaultProps: {
@@ -75,16 +82,21 @@ export declare class Calendar extends React.Component<CalendarProps, CalendarSta
75
82
  firstDayOfWeek: string;
76
83
  jumpView: boolean;
77
84
  };
85
+ calendarWrapperRef: React.RefObject<HTMLDivElement | null>;
78
86
  constructor(props: CalendarProps);
79
87
  componentDidUpdate(prevProps: CalendarProps, prevState: CalendarState): void;
80
88
  updateState: (year: number, month?: number, date?: number) => void;
81
89
  getDateValue: (year: number, month: number, date: number) => Date | undefined;
82
90
  getNavDateInfo: (index: number) => Record<string, any>;
91
+ getDateGridPosition: (year: number, month: number, date: number) => {
92
+ row: number;
93
+ col: number;
94
+ } | null;
83
95
  getInRangeError: () => boolean;
84
96
  selectYear: (year: number) => () => void;
85
- yearMouseOverHandler: (year: number, isCurrentYear: boolean, isDisabled: boolean, ev: React.MouseEvent<HTMLDivElement>) => void;
97
+ yearMouseOverHandler: (year: number, isCurrentYear: boolean, isDisabled: boolean, ev: React.MouseEvent<HTMLButtonElement>) => void;
86
98
  selectMonth: (month: number) => () => void;
87
- monthMouseOverHandler: (month: number, isCurrentMonth: boolean, isDisabled: boolean, ev: React.MouseEvent<HTMLDivElement>) => void;
99
+ monthMouseOverHandler: (month: number, isCurrentMonth: boolean, isDisabled: boolean, ev: React.MouseEvent<HTMLButtonElement>) => void;
88
100
  selectDate: (index: number, date: number, prevMonthDayRange: number, dayRange: number) => void;
89
101
  calculateDate: (index: number, date: number, prevMonthDayRange: number, dayRange: number, isDateHovered: boolean) => Date | undefined;
90
102
  onNavIconClickHandler: (type: string) => () => void;
@@ -94,6 +106,9 @@ export declare class Calendar extends React.Component<CalendarProps, CalendarSta
94
106
  renderBodyYear: () => React.JSX.Element[];
95
107
  renderBodyMonth: () => React.JSX.Element[];
96
108
  onDateRowMouseLeaveHandler: () => void;
109
+ handleMonthCellKeyDown: (event: React.KeyboardEvent, _month: number, disabled: boolean) => void;
110
+ handleYearCellKeyDown: (event: React.KeyboardEvent, _year: number, _offset: number, disabled: boolean) => void;
111
+ handleDateCellKeyDown: (ev: React.KeyboardEvent, index: number, row: number, col: number, noOfRows: number, date: number, prevMonthDayRange: number, dayRange: number, inRangeError: boolean, rangePicker: boolean, startDate?: Date, endDate?: Date) => void;
97
112
  renderBodyDate: (index: number) => React.JSX.Element;
98
113
  renderEventsIndicator(size: string, active: boolean): React.JSX.Element;
99
114
  renderDateValues: (index: number) => React.JSX.Element[];
@@ -0,0 +1,54 @@
1
+ import * as React from 'react';
2
+ export declare const DATE_CELL_SELECTOR = "[data-calendar-date-cell]";
3
+ export declare const MONTH_CELL_SELECTOR = "[data-calendar-month-cell]";
4
+ export declare const YEAR_CELL_SELECTOR = "[data-calendar-year-cell]";
5
+ export interface FocusedCell {
6
+ row: number;
7
+ col: number;
8
+ }
9
+ export declare const focusDateCell: (container: HTMLElement, row: number, col: number, monthIndex?: number) => boolean;
10
+ export declare const focusMonthCell: (container: HTMLElement, monthIndex: number) => boolean;
11
+ export declare const focusYearCell: (container: HTMLElement, yearIndex: number) => boolean;
12
+ export declare const getFocusedDateCell: (container: HTMLElement) => FocusedCell | null;
13
+ export declare const navigateDateGrid: (direction: "up" | "down" | "left" | "right", row: number, col: number, totalRows: number) => {
14
+ row: number;
15
+ col: number;
16
+ } | null;
17
+ export declare const formatDateAriaLabel: (d: Date) => string;
18
+ export interface HandleDateViewKeyDownParams {
19
+ event: React.KeyboardEvent;
20
+ container: HTMLElement;
21
+ focusedRow: number;
22
+ focusedCol: number;
23
+ totalRows: number;
24
+ monthIndex: number;
25
+ onNavigate: (row: number, col: number) => void;
26
+ onSelect: () => void;
27
+ onPageUp: () => void;
28
+ onPageDown: () => void;
29
+ onShiftPageUp: () => void;
30
+ onShiftPageDown: () => void;
31
+ onEscape?: () => void;
32
+ }
33
+ export declare const handleDateViewKeyDown: (params: HandleDateViewKeyDownParams) => boolean;
34
+ export interface HandleMonthViewKeyDownParams {
35
+ event: React.KeyboardEvent;
36
+ container: HTMLElement;
37
+ focusedMonth: number;
38
+ onNavigate: (month: number) => void;
39
+ onSelect: (month: number) => void;
40
+ onEscape?: () => void;
41
+ }
42
+ export declare const handleMonthViewKeyDown: (params: HandleMonthViewKeyDownParams) => boolean;
43
+ export interface HandleYearViewKeyDownParams {
44
+ event: React.KeyboardEvent;
45
+ container: HTMLElement;
46
+ focusedYearIndex: number;
47
+ yearBlockStart: number;
48
+ onNavigate: (yearIndex: number) => void;
49
+ onSelect: (year: number) => void;
50
+ onPageUp: () => void;
51
+ onPageDown: () => void;
52
+ onEscape?: () => void;
53
+ }
54
+ export declare const handleYearViewKeyDown: (params: HandleYearViewKeyDownParams) => boolean;
@@ -9,6 +9,11 @@ export interface Choice {
9
9
  disabled?: boolean;
10
10
  helpText?: string;
11
11
  name: string;
12
+ 'aria-label'?: string;
13
+ 'aria-labelledby'?: string;
14
+ 'aria-describedby'?: string;
15
+ tabIndex?: number;
16
+ required?: boolean;
12
17
  }
13
18
  export type ChoiceListProps = {
14
19
  title?: string;
@@ -20,6 +25,8 @@ export type ChoiceListProps = {
20
25
  selected?: string[];
21
26
  onChange?: (event: ChangeEvent, selected: string[]) => void;
22
27
  wrapLabel?: boolean;
28
+ 'aria-label'?: string;
29
+ 'aria-labelledby'?: string;
23
30
  } & BaseProps;
24
31
  export declare const ChoiceList: {
25
32
  (props: ChoiceListProps): React.JSX.Element;
@@ -27,6 +27,8 @@ export interface ComboboxProps extends BaseProps {
27
27
  clearButton?: boolean;
28
28
  computeStyles?: object;
29
29
  className?: string;
30
+ 'aria-label'?: string;
31
+ 'aria-labelledby'?: string;
30
32
  }
31
33
  export declare const Combobox: {
32
34
  (props: ComboboxProps): React.JSX.Element;
@@ -17,6 +17,8 @@ interface ComboboxTriggerProps {
17
17
  size?: ComboboxInputSize;
18
18
  chipValue?: OptionType[];
19
19
  clearButton?: boolean;
20
+ 'aria-label'?: string;
21
+ 'aria-labelledby'?: string;
20
22
  }
21
23
  export declare const ComboboxTrigger: (props: ComboboxTriggerProps) => React.JSX.Element;
22
24
  export default ComboboxTrigger;
@@ -7,6 +7,7 @@ type ChipOptions = {
7
7
  type?: ChipProps['type'];
8
8
  iconType?: ChipProps['iconType'];
9
9
  clearButton?: ChipProps['clearButton'];
10
+ role?: ChipProps['role'];
10
11
  onClick?: (value: OptionType, index: number) => void;
11
12
  };
12
13
  export interface MultiSelectTriggerProps extends BaseProps {
@@ -27,6 +28,8 @@ export interface MultiSelectTriggerProps extends BaseProps {
27
28
  tabIndex?: number;
28
29
  forwardedRef?: React.Ref<HTMLInputElement>;
29
30
  role?: React.AriaRole;
31
+ 'aria-label'?: string;
32
+ 'aria-labelledby'?: string;
30
33
  }
31
34
  export declare const MultiSelectTrigger: React.ForwardRefExoticComponent<MultiSelectTriggerProps & React.RefAttributes<HTMLElement>>;
32
35
  export default MultiSelectTrigger;
@@ -18,6 +18,8 @@ export type DatePickerProps = SharedProps & {
18
18
  children?: React.ReactNode;
19
19
  onError?: (date: Date | undefined, dateVal?: string) => void;
20
20
  popoverOptions?: PopoverOptions;
21
+ 'aria-label'?: string;
22
+ 'aria-labelledby'?: string;
21
23
  };
22
24
  export interface DatePickerState {
23
25
  init: boolean;
@@ -24,6 +24,8 @@ export type DateRangePickerProps = SharedProps & {
24
24
  endInputOptions: InputOptions;
25
25
  validators: Validators;
26
26
  monthsInView?: CalendarProps['monthsInView'];
27
+ 'aria-label'?: string;
28
+ 'aria-labelledby'?: string;
27
29
  };
28
30
  export interface DateRangePickerState {
29
31
  init: boolean;
@@ -145,6 +145,8 @@ export type GridProps = BaseProps & {
145
145
  searchTerm?: string;
146
146
  highlightRegex?: (searchTerm: string) => RegExp;
147
147
  showNestedRowTrigger?: boolean;
148
+ 'aria-label'?: string;
149
+ 'aria-labelledby'?: string;
148
150
  };
149
151
  export interface GridState {
150
152
  init: boolean;
@@ -1,7 +1,9 @@
1
1
  import * as React from 'react';
2
2
  import { VerticalNavProps } from '@/index.type';
3
3
  import { BaseProps } from '@/utils/types';
4
- export type HorizontalNavProps = BaseProps & Pick<VerticalNavProps, 'menus' | 'active' | 'onClick'>;
4
+ export type HorizontalNavProps = BaseProps & Pick<VerticalNavProps, 'menus' | 'active' | 'onClick'> & {
5
+ 'aria-label'?: string;
6
+ };
5
7
  export type Align = 'left' | 'center';
6
8
  export declare const HorizontalNav: (props: HorizontalNavProps) => React.JSX.Element;
7
9
  export default HorizontalNav;
@@ -15,6 +15,8 @@ export type MenuProps = BaseProps & {
15
15
  };
16
16
  onToggle?: (open?: boolean) => void;
17
17
  disabled?: boolean;
18
+ 'aria-label'?: string;
19
+ 'aria-labelledby'?: string;
18
20
  };
19
21
  export declare const Menu: {
20
22
  (props: MenuProps): React.JSX.Element;
@@ -3,6 +3,7 @@ import { BaseProps } from '@/utils/types';
3
3
  export type MenuTriggerProps = BaseProps & {
4
4
  size?: 'tiny' | 'regular';
5
5
  appearance?: 'transparent' | 'basic';
6
+ 'aria-label'?: string;
6
7
  };
7
8
  export declare const MenuTrigger: (props: MenuTriggerProps) => React.JSX.Element;
8
9
  export default MenuTrigger;
@@ -11,6 +11,7 @@ export interface VerticalNavigationProps {
11
11
  footer?: boolean;
12
12
  onToggle?: (expanded: boolean) => void;
13
13
  autoCollapse?: boolean;
14
+ 'aria-label'?: string;
14
15
  }
15
16
  export declare const VerticalNavigation: (props: VerticalNavigationProps) => React.JSX.Element;
16
17
  export default VerticalNavigation;
@@ -14,6 +14,7 @@ export type PageHeaderProps = {
14
14
  button?: React.ReactNode;
15
15
  navigationPosition?: navigationPositionType;
16
16
  separator?: boolean;
17
+ 'aria-label'?: string;
17
18
  } & BaseProps;
18
19
  export declare const PageHeader: (props: PageHeaderProps) => React.JSX.Element;
19
20
  export default PageHeader;
@@ -7,6 +7,7 @@ export interface SelectListProps extends BaseProps {
7
7
  size?: TListboxSize;
8
8
  tagName?: TagType;
9
9
  showDivider?: boolean;
10
+ 'aria-label'?: string;
10
11
  }
11
12
  export declare const SelectList: (props: SelectListProps) => React.JSX.Element;
12
13
  export default SelectList;