@gooddata/sdk-ui-kit 10.28.0-alpha.5 → 10.28.0-alpha.50

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 (202) hide show
  1. package/esm/@ui/@types/size.d.ts +4 -0
  2. package/esm/@ui/@types/size.d.ts.map +1 -1
  3. package/esm/@ui/@types/size.js +1 -0
  4. package/esm/@ui/@types/size.js.map +1 -1
  5. package/esm/@ui/@utils/keyboardNavigation.d.ts +44 -12
  6. package/esm/@ui/@utils/keyboardNavigation.d.ts.map +1 -1
  7. package/esm/@ui/@utils/keyboardNavigation.js +55 -65
  8. package/esm/@ui/@utils/keyboardNavigation.js.map +1 -1
  9. package/esm/@ui/UiChip/UiChip.d.ts +2 -1
  10. package/esm/@ui/UiChip/UiChip.d.ts.map +1 -1
  11. package/esm/@ui/UiChip/UiChip.js +2 -2
  12. package/esm/@ui/UiChip/UiChip.js.map +1 -1
  13. package/esm/@ui/UiFocusTrap/UiFocusTrap.d.ts.map +1 -1
  14. package/esm/@ui/UiFocusTrap/UiFocusTrap.js +4 -1
  15. package/esm/@ui/UiFocusTrap/UiFocusTrap.js.map +1 -1
  16. package/esm/@ui/UiIconButton/UiIconButton.d.ts +2 -2
  17. package/esm/@ui/UiIconButton/UiIconButton.d.ts.map +1 -1
  18. package/esm/@ui/UiIconButton/UiIconButton.js +23 -2
  19. package/esm/@ui/UiIconButton/UiIconButton.js.map +1 -1
  20. package/esm/@ui/UiListbox/UiListbox.d.ts.map +1 -1
  21. package/esm/@ui/UiListbox/UiListbox.js +4 -5
  22. package/esm/@ui/UiListbox/UiListbox.js.map +1 -1
  23. package/esm/@ui/UiMenu/UiMenu.d.ts +1 -1
  24. package/esm/@ui/UiMenu/UiMenu.d.ts.map +1 -1
  25. package/esm/@ui/UiMenu/UiMenu.js +26 -6
  26. package/esm/@ui/UiMenu/UiMenu.js.map +1 -1
  27. package/esm/@ui/UiMenu/components/Item.d.ts +4 -0
  28. package/esm/@ui/UiMenu/components/Item.d.ts.map +1 -0
  29. package/esm/@ui/UiMenu/components/Item.js +26 -0
  30. package/esm/@ui/UiMenu/components/Item.js.map +1 -0
  31. package/esm/@ui/UiMenu/components/defaults/DefaultUiMenuContent.d.ts +10 -0
  32. package/esm/@ui/UiMenu/components/defaults/DefaultUiMenuContent.d.ts.map +1 -0
  33. package/esm/@ui/UiMenu/components/defaults/DefaultUiMenuContent.js +29 -0
  34. package/esm/@ui/UiMenu/components/defaults/DefaultUiMenuContent.js.map +1 -0
  35. package/esm/@ui/UiMenu/components/defaults/DefaultUiMenuContentItem.d.ts +12 -0
  36. package/esm/@ui/UiMenu/components/defaults/DefaultUiMenuContentItem.d.ts.map +1 -0
  37. package/esm/@ui/UiMenu/components/defaults/DefaultUiMenuContentItem.js +60 -0
  38. package/esm/@ui/UiMenu/components/defaults/DefaultUiMenuContentItem.js.map +1 -0
  39. package/esm/@ui/UiMenu/components/defaults/DefaultUiMenuGroupItem.d.ts +7 -0
  40. package/esm/@ui/UiMenu/components/defaults/DefaultUiMenuGroupItem.d.ts.map +1 -0
  41. package/esm/@ui/UiMenu/{defaults/DefaultUiMenuGroupItemComponent.js → components/defaults/DefaultUiMenuGroupItem.js} +5 -5
  42. package/esm/@ui/UiMenu/{defaults/DefaultUiMenuGroupItemComponent.js.map → components/defaults/DefaultUiMenuGroupItem.js.map} +1 -1
  43. package/esm/@ui/UiMenu/components/defaults/DefaultUiMenuHeader.d.ts +8 -0
  44. package/esm/@ui/UiMenu/components/defaults/DefaultUiMenuHeader.d.ts.map +1 -0
  45. package/esm/@ui/UiMenu/components/defaults/DefaultUiMenuHeader.js +49 -0
  46. package/esm/@ui/UiMenu/components/defaults/DefaultUiMenuHeader.js.map +1 -0
  47. package/esm/@ui/UiMenu/components/defaults/DefaultUiMenuInteractiveItem.d.ts +11 -0
  48. package/esm/@ui/UiMenu/components/defaults/DefaultUiMenuInteractiveItem.d.ts.map +1 -0
  49. package/esm/@ui/UiMenu/{defaults/DefaultUiMenuInteractiveItemComponent.js → components/defaults/DefaultUiMenuInteractiveItem.js} +7 -7
  50. package/esm/@ui/UiMenu/components/defaults/DefaultUiMenuInteractiveItem.js.map +1 -0
  51. package/esm/@ui/UiMenu/components/defaults/DefaultUiMenuStaticItem.d.ts +8 -0
  52. package/esm/@ui/UiMenu/components/defaults/DefaultUiMenuStaticItem.d.ts.map +1 -0
  53. package/esm/@ui/UiMenu/{defaults/DefaultUiMenuStaticItemComponent.js → components/defaults/DefaultUiMenuStaticItem.js} +3 -3
  54. package/esm/@ui/UiMenu/components/defaults/DefaultUiMenuStaticItem.js.map +1 -0
  55. package/esm/@ui/UiMenu/context.d.ts +6 -2
  56. package/esm/@ui/UiMenu/context.d.ts.map +1 -1
  57. package/esm/@ui/UiMenu/context.js +10 -0
  58. package/esm/@ui/UiMenu/context.js.map +1 -1
  59. package/esm/@ui/UiMenu/hooks.d.ts +10 -4
  60. package/esm/@ui/UiMenu/hooks.d.ts.map +1 -1
  61. package/esm/@ui/UiMenu/hooks.js +90 -37
  62. package/esm/@ui/UiMenu/hooks.js.map +1 -1
  63. package/esm/@ui/UiMenu/itemUtils.d.ts +60 -1
  64. package/esm/@ui/UiMenu/itemUtils.d.ts.map +1 -1
  65. package/esm/@ui/UiMenu/itemUtils.js +69 -1
  66. package/esm/@ui/UiMenu/itemUtils.js.map +1 -1
  67. package/esm/@ui/UiMenu/types.d.ts +65 -18
  68. package/esm/@ui/UiMenu/types.d.ts.map +1 -1
  69. package/esm/Button/Button.d.ts.map +1 -1
  70. package/esm/Button/Button.js +2 -2
  71. package/esm/Button/Button.js.map +1 -1
  72. package/esm/Button/typings.d.ts +1 -0
  73. package/esm/Button/typings.d.ts.map +1 -1
  74. package/esm/Dialog/DialogCloseButton.d.ts +3 -0
  75. package/esm/Dialog/DialogCloseButton.d.ts.map +1 -1
  76. package/esm/Dialog/DialogCloseButton.js +6 -2
  77. package/esm/Dialog/DialogCloseButton.js.map +1 -1
  78. package/esm/Dialog/index.d.ts +1 -0
  79. package/esm/Dialog/index.d.ts.map +1 -1
  80. package/esm/Dialog/index.js +2 -1
  81. package/esm/Dialog/index.js.map +1 -1
  82. package/esm/Dialog/typings.d.ts +3 -1
  83. package/esm/Dialog/typings.d.ts.map +1 -1
  84. package/esm/Dropdown/Dropdown.d.ts +2 -0
  85. package/esm/Dropdown/Dropdown.d.ts.map +1 -1
  86. package/esm/Dropdown/Dropdown.js +20 -20
  87. package/esm/Dropdown/Dropdown.js.map +1 -1
  88. package/esm/Header/generateHeaderAccountMenuItems.d.ts +0 -4
  89. package/esm/Header/generateHeaderAccountMenuItems.d.ts.map +1 -1
  90. package/esm/Header/generateHeaderAccountMenuItems.js +2 -6
  91. package/esm/Header/generateHeaderAccountMenuItems.js.map +1 -1
  92. package/esm/List/MenuList.d.ts.map +1 -1
  93. package/esm/List/MenuList.js +2 -2
  94. package/esm/List/MenuList.js.map +1 -1
  95. package/esm/List/guid.d.ts.map +1 -1
  96. package/esm/List/guid.js +5 -2
  97. package/esm/List/guid.js.map +1 -1
  98. package/esm/Menu/menuOpener/MenuOpener.js +2 -2
  99. package/esm/Menu/menuOpener/MenuOpener.js.map +1 -1
  100. package/esm/Overlay/Overlay.d.ts.map +1 -1
  101. package/esm/Overlay/Overlay.js +6 -2
  102. package/esm/Overlay/Overlay.js.map +1 -1
  103. package/esm/RecurrenceForm/DateTime.d.ts +1 -0
  104. package/esm/RecurrenceForm/DateTime.d.ts.map +1 -1
  105. package/esm/RecurrenceForm/DateTime.js +2 -2
  106. package/esm/RecurrenceForm/DateTime.js.map +1 -1
  107. package/esm/RecurrenceForm/Recurrence.d.ts +1 -0
  108. package/esm/RecurrenceForm/Recurrence.d.ts.map +1 -1
  109. package/esm/RecurrenceForm/Recurrence.js +2 -2
  110. package/esm/RecurrenceForm/Recurrence.js.map +1 -1
  111. package/esm/RecurrenceForm/RecurrenceForm.d.ts +1 -0
  112. package/esm/RecurrenceForm/RecurrenceForm.d.ts.map +1 -1
  113. package/esm/RecurrenceForm/RecurrenceForm.js +3 -3
  114. package/esm/RecurrenceForm/RecurrenceForm.js.map +1 -1
  115. package/esm/RecurrenceForm/RepeatTypeSelect.d.ts +1 -0
  116. package/esm/RecurrenceForm/RepeatTypeSelect.d.ts.map +1 -1
  117. package/esm/RecurrenceForm/RepeatTypeSelect.js +2 -2
  118. package/esm/RecurrenceForm/RepeatTypeSelect.js.map +1 -1
  119. package/esm/Timepicker/Timepicker.d.ts +1 -0
  120. package/esm/Timepicker/Timepicker.d.ts.map +1 -1
  121. package/esm/Timepicker/Timepicker.js +2 -2
  122. package/esm/Timepicker/Timepicker.js.map +1 -1
  123. package/esm/ZoomContext/ZoomContext.js +6 -6
  124. package/esm/ZoomContext/ZoomContext.js.map +1 -1
  125. package/esm/index.d.ts +14 -6
  126. package/esm/index.d.ts.map +1 -1
  127. package/esm/index.js +11 -4
  128. package/esm/index.js.map +1 -1
  129. package/esm/responsive/useMediaQuery.d.ts.map +1 -1
  130. package/esm/responsive/useMediaQuery.js +3 -1
  131. package/esm/responsive/useMediaQuery.js.map +1 -1
  132. package/esm/sdk-ui-kit.d.ts +319 -73
  133. package/esm/syntaxHighlightingInput/SyntaxHighlightingInput.d.ts +13 -5
  134. package/esm/syntaxHighlightingInput/SyntaxHighlightingInput.d.ts.map +1 -1
  135. package/esm/syntaxHighlightingInput/SyntaxHighlightingInput.js +5 -1
  136. package/esm/syntaxHighlightingInput/SyntaxHighlightingInput.js.map +1 -1
  137. package/esm/syntaxHighlightingInput/hooks/useAutocompletion.d.ts +16 -0
  138. package/esm/syntaxHighlightingInput/hooks/useAutocompletion.d.ts.map +1 -0
  139. package/esm/syntaxHighlightingInput/hooks/useAutocompletion.js +65 -0
  140. package/esm/syntaxHighlightingInput/hooks/useAutocompletion.js.map +1 -0
  141. package/esm/syntaxHighlightingInput/hooks/useChangeHandler.d.ts +8 -0
  142. package/esm/syntaxHighlightingInput/hooks/useChangeHandler.d.ts.map +1 -0
  143. package/esm/syntaxHighlightingInput/hooks/useChangeHandler.js +21 -0
  144. package/esm/syntaxHighlightingInput/hooks/useChangeHandler.js.map +1 -0
  145. package/esm/syntaxHighlightingInput/hooks/useCodemirror.d.ts +11 -9
  146. package/esm/syntaxHighlightingInput/hooks/useCodemirror.d.ts.map +1 -1
  147. package/esm/syntaxHighlightingInput/hooks/useCodemirror.js +41 -96
  148. package/esm/syntaxHighlightingInput/hooks/useCodemirror.js.map +1 -1
  149. package/esm/syntaxHighlightingInput/hooks/useCodemirrorChange.d.ts +4 -0
  150. package/esm/syntaxHighlightingInput/hooks/useCodemirrorChange.d.ts.map +1 -0
  151. package/esm/syntaxHighlightingInput/hooks/useCodemirrorChange.js +35 -0
  152. package/esm/syntaxHighlightingInput/hooks/useCodemirrorChange.js.map +1 -0
  153. package/esm/syntaxHighlightingInput/hooks/useCodemirrorEditable.d.ts +6 -0
  154. package/esm/syntaxHighlightingInput/hooks/useCodemirrorEditable.d.ts.map +1 -0
  155. package/esm/syntaxHighlightingInput/hooks/useCodemirrorEditable.js +24 -0
  156. package/esm/syntaxHighlightingInput/hooks/useCodemirrorEditable.js.map +1 -0
  157. package/esm/syntaxHighlightingInput/hooks/useCodemirrorEvents.d.ts +9 -0
  158. package/esm/syntaxHighlightingInput/hooks/useCodemirrorEvents.d.ts.map +1 -0
  159. package/esm/syntaxHighlightingInput/hooks/useCodemirrorEvents.js +26 -0
  160. package/esm/syntaxHighlightingInput/hooks/useCodemirrorEvents.js.map +1 -0
  161. package/esm/syntaxHighlightingInput/hooks/useCodemirrorKeymap.d.ts +8 -0
  162. package/esm/syntaxHighlightingInput/hooks/useCodemirrorKeymap.d.ts.map +1 -0
  163. package/esm/syntaxHighlightingInput/hooks/useCodemirrorKeymap.js +27 -0
  164. package/esm/syntaxHighlightingInput/hooks/useCodemirrorKeymap.js.map +1 -0
  165. package/esm/syntaxHighlightingInput/hooks/useCodemirrorOptions.d.ts +10 -0
  166. package/esm/syntaxHighlightingInput/hooks/useCodemirrorOptions.d.ts.map +1 -0
  167. package/esm/syntaxHighlightingInput/hooks/useCodemirrorOptions.js +21 -0
  168. package/esm/syntaxHighlightingInput/hooks/useCodemirrorOptions.js.map +1 -0
  169. package/esm/syntaxHighlightingInput/hooks/useEventHandlers.d.ts +20 -0
  170. package/esm/syntaxHighlightingInput/hooks/useEventHandlers.d.ts.map +1 -0
  171. package/esm/syntaxHighlightingInput/hooks/useEventHandlers.js +25 -0
  172. package/esm/syntaxHighlightingInput/hooks/useEventHandlers.js.map +1 -0
  173. package/esm/typings/accessibility.d.ts +1 -0
  174. package/esm/typings/accessibility.d.ts.map +1 -1
  175. package/esm/utils/domUtilities.d.ts +8 -1
  176. package/esm/utils/domUtilities.d.ts.map +1 -1
  177. package/esm/utils/domUtilities.js +8 -0
  178. package/esm/utils/domUtilities.js.map +1 -1
  179. package/esm/utils/useAutofocusOnMount.d.ts +7 -0
  180. package/esm/utils/useAutofocusOnMount.d.ts.map +1 -0
  181. package/esm/utils/useAutofocusOnMount.js +40 -0
  182. package/esm/utils/useAutofocusOnMount.js.map +1 -0
  183. package/package.json +9 -8
  184. package/src/@ui/UiMenu/UiMenu.scss +15 -7
  185. package/styles/css/header.css.map +1 -1
  186. package/styles/css/main.css +14 -7
  187. package/styles/css/main.css.map +1 -1
  188. package/styles/css/shareDialogSelectControl.css.map +1 -1
  189. package/styles/scss/header.scss +2 -4
  190. package/styles/scss/shareDialogSelectControl.scss +0 -1
  191. package/esm/@ui/UiMenu/defaults/DefaultUiMenuGroupItemComponent.d.ts +0 -7
  192. package/esm/@ui/UiMenu/defaults/DefaultUiMenuGroupItemComponent.d.ts.map +0 -1
  193. package/esm/@ui/UiMenu/defaults/DefaultUiMenuHeaderComponent.d.ts +0 -9
  194. package/esm/@ui/UiMenu/defaults/DefaultUiMenuHeaderComponent.d.ts.map +0 -1
  195. package/esm/@ui/UiMenu/defaults/DefaultUiMenuHeaderComponent.js +0 -39
  196. package/esm/@ui/UiMenu/defaults/DefaultUiMenuHeaderComponent.js.map +0 -1
  197. package/esm/@ui/UiMenu/defaults/DefaultUiMenuInteractiveItemComponent.d.ts +0 -11
  198. package/esm/@ui/UiMenu/defaults/DefaultUiMenuInteractiveItemComponent.d.ts.map +0 -1
  199. package/esm/@ui/UiMenu/defaults/DefaultUiMenuInteractiveItemComponent.js.map +0 -1
  200. package/esm/@ui/UiMenu/defaults/DefaultUiMenuStaticItemComponent.d.ts +0 -8
  201. package/esm/@ui/UiMenu/defaults/DefaultUiMenuStaticItemComponent.d.ts.map +0 -1
  202. package/esm/@ui/UiMenu/defaults/DefaultUiMenuStaticItemComponent.js.map +0 -1
@@ -13,6 +13,7 @@
13
13
 
14
14
  import { AccessGranularPermission } from '@gooddata/sdk-model';
15
15
  import { ColorFormats } from 'tinycolor2';
16
+ import { CompletionSource } from '@codemirror/autocomplete';
16
17
  import { Component } from 'react';
17
18
  import { CSSProperties } from 'react';
18
19
  import { DebouncedFunc } from 'lodash';
@@ -25,6 +26,7 @@ import { IAnalyticalBackend } from '@gooddata/sdk-backend-spi';
25
26
  import { IAuditableUsers } from '@gooddata/sdk-model';
26
27
  import { IColorPalette } from '@gooddata/sdk-model';
27
28
  import { IColorPaletteDefinition } from '@gooddata/sdk-model';
29
+ import { IContextStore } from '@gooddata/sdk-ui';
28
30
  import { IExecutionConfig } from '@gooddata/sdk-model';
29
31
  import { IFilter } from '@gooddata/sdk-model';
30
32
  import { ILocale } from '@gooddata/sdk-ui';
@@ -560,15 +562,51 @@ export declare function DefaultUiListboxInteractiveItemComponent<T>({ item, isFo
560
562
  export declare function DefaultUiListboxStaticItemComponent<T>({ item, }: UiListboxStaticItemProps<T>): React_2.ReactNode;
561
563
 
562
564
  /**
565
+ * Container for rendering custom content in menu.
563
566
  * @internal
564
567
  */
565
- export declare function DefaultUiMenuInteractiveItemComponent<T extends IUiMenuItemData = object>({ item, isFocused, onSelect, }: UiMenuInteractiveItemProps<T>): React_2.ReactNode;
568
+ export declare const DefaultUiMenuContent: React_2.MemoExoticComponent<(<T extends IUiMenuItemData = object>({ item }: {
569
+ item: IUiMenuContentItem<T>;
570
+ }) => React_2.ReactElement)>;
571
+
572
+ /**
573
+ * @internal
574
+ */
575
+ export declare function DefaultUiMenuContentItem<T extends IUiMenuItemData = object>({ item, isFocused, onSelect, }: IUiMenuContentItemProps<T>): React_2.ReactNode;
576
+
577
+ /**
578
+ * Default component for rendering content menu items.
579
+ * @internal
580
+ */
581
+ export declare const DefaultUiMenuContentItemWrapper: React_2.MemoExoticComponent<(<T extends IUiMenuItemData = object>({ item }: IUiMenuContentItemWrapperProps<T>) => React_2.ReactElement)>;
582
+
583
+ /**
584
+ * @internal
585
+ */
586
+ export declare function DefaultUiMenuGroupItem<T extends IUiMenuItemData = object>({ item, }: IUiMenuGroupItemProps<T>): React_2.ReactNode;
587
+
588
+ /**
589
+ * Renders the submenu header when in a submenu.
590
+ * If not in a submenu, returns null.
591
+ * @internal
592
+ */
593
+ export declare const DefaultUiMenuHeader: React_2.FC;
594
+
595
+ /**
596
+ * @internal
597
+ */
598
+ export declare function DefaultUiMenuInteractiveItem<T extends IUiMenuItemData = object>({ item, isFocused, onSelect, }: IUiMenuInteractiveItemProps<T>): React_2.ReactNode;
599
+
600
+ /**
601
+ * @internal
602
+ */
603
+ export declare function DefaultUiMenuInteractiveItemWrapper<T extends IUiMenuItemData = object>({ item, }: IUiMenuInteractiveItemWrapperProps<T>): React_2.ReactNode;
566
604
 
567
605
  /**
568
606
  * By default just renders the data.
569
607
  * @internal
570
608
  */
571
- export declare const DefaultUiMenuStaticItemComponent: React_2.MemoExoticComponent<(<T extends IUiMenuItemData = object>({ item }: UiMenuStaticItemProps<T>) => React_2.ReactElement)>;
609
+ export declare const DefaultUiMenuStaticItem: React_2.MemoExoticComponent<(<T extends IUiMenuItemData = object>({ item }: IUiMenuStaticItemProps<T>) => React_2.ReactElement)>;
572
610
 
573
611
  /**
574
612
  * @internal
@@ -620,6 +658,11 @@ export declare const Dialog: React_2.NamedExoticComponent<IDialogProps>;
620
658
  */
621
659
  export declare const DialogBase: React_2.NamedExoticComponent<IDialogBaseProps>;
622
660
 
661
+ /**
662
+ * @internal
663
+ */
664
+ export declare const DialogCloseButton: React_2.FC<IDialogCloseButtonProps>;
665
+
623
666
  /**
624
667
  * @internal
625
668
  */
@@ -746,6 +789,18 @@ export declare const FilterLabel: React_2.FC<WithIntlProps<IFilterLabelProps & W
746
789
  WrappedComponent: React_2.ComponentType<IFilterLabelProps & WrappedComponentProps>;
747
790
  };
748
791
 
792
+ /**
793
+ * Finds an interactive menu item that matches the predicate.
794
+ * @internal
795
+ */
796
+ export declare const findInteractiveItem: <T extends IUiMenuItemData = object>(items: IUiMenuItem<T>[], predicate: (item: IUiMenuInteractiveItem<T>) => boolean) => IUiMenuInteractiveItem<T>;
797
+
798
+ /**
799
+ * Recursively finds an item in the menu tree that matches the predicate.
800
+ * @internal
801
+ */
802
+ export declare const findItem: <T extends IUiMenuItemData = object>(items: IUiMenuItem<T>[], predicate: (item: IUiMenuItem<T>) => boolean) => IUiMenuItem<T>;
803
+
749
804
  /**
750
805
  * @internal
751
806
  */
@@ -812,11 +867,6 @@ export declare const GD_COLOR_STATE_HOVER = "#94a1ad";
812
867
  */
813
868
  export declare const GD_COLOR_WHITE = "#fff";
814
869
 
815
- /**
816
- * @internal
817
- */
818
- export declare function generateHeaderAccountMenuItems(workspacePermissions: IWorkspacePermissions, uiSettings: IUiSettings, workspaceId?: string, showOnlyLogoutItem?: boolean, featureFlags?: ISettings): IHeaderMenuItem[];
819
-
820
870
  /**
821
871
  * @internal
822
872
  */
@@ -842,6 +892,17 @@ export declare function generateHeaderStaticHelpMenuItems(documentationUrl?: str
842
892
  */
843
893
  export declare function generateSupportUrl(projectId?: string, sessionId?: string, userEmail?: string, url?: string): string;
844
894
 
895
+ /**
896
+ * Gets the closest focusable sibling item in the specified direction.
897
+ * @internal
898
+ */
899
+ export declare const getClosestFocusableSibling: <T extends IUiMenuItemData = object>(args: {
900
+ items: IUiMenuItem<T>[];
901
+ isItemFocusable: (item: IUiMenuItem<T>) => boolean;
902
+ itemId?: string;
903
+ direction: "forward" | "backward";
904
+ }) => IUiMenuItem<T>;
905
+
845
906
  /**
846
907
  * This function transforms a color palette into an array of max ten colors which is used
847
908
  * to render the color palette in styling picker.
@@ -881,7 +942,7 @@ export declare const getDefaultEmbedTypeOptions: (embedType: EmbedType) => Embed
881
942
  * @param element - the element to get the focusable elements from
882
943
  * @returns an object containing the focusable elements, the first focusable element, and the last focusable element
883
944
  */
884
- export declare const getFocusableElements: (element?: HTMLElement) => {
945
+ export declare const getFocusableElements: (element?: HTMLElement | null) => {
885
946
  focusableElements: NodeListOf<HTMLElement>;
886
947
  firstElement: HTMLElement;
887
948
  lastElement: HTMLElement;
@@ -897,6 +958,36 @@ export declare const getGranteeItemTestId: (grantee: GranteeItem, prefix?: "opti
897
958
  */
898
959
  export declare const getHeightWithUnitsForEmbedCode: (codeOption: EmbedOptionsType) => string | number;
899
960
 
961
+ /**
962
+ * Gets an interactive menu item by its ID.
963
+ * @internal
964
+ */
965
+ export declare const getInteractiveItem: <T extends IUiMenuItemData = object>(items: IUiMenuItem<T>[], itemId: string) => IUiMenuInteractiveItem<T>;
966
+
967
+ /**
968
+ * Gets a menu item by its ID.
969
+ * @internal
970
+ */
971
+ export declare const getItem: <T extends IUiMenuItemData = object>(items: IUiMenuItem<T>[], itemId: string) => IUiMenuItem<T>;
972
+
973
+ /**
974
+ * Gets the interactive parent of a menu item.
975
+ * @internal
976
+ */
977
+ export declare const getItemInteractiveParent: <T extends IUiMenuItemData = object>(items: IUiMenuItem<T>[], itemId: string) => IUiMenuInteractiveItem<T>;
978
+
979
+ /**
980
+ * Gets all items under a specific interactive parent item.
981
+ * @internal
982
+ */
983
+ export declare const getItemsByInteractiveParent: <T extends IUiMenuItemData = object>(items: IUiMenuItem<T>[], parentId?: string) => IUiMenuItem<T>[];
984
+
985
+ /**
986
+ * Gets all next sibling items of a menu item with wraparound.
987
+ * @internal
988
+ */
989
+ export declare const getNextSiblings: <T extends IUiMenuItemData = object>(items: IUiMenuItem<T>[], itemId: string) => IUiMenuItem<T>[];
990
+
900
991
  /**
901
992
  * @internal
902
993
  */
@@ -929,11 +1020,28 @@ export declare type GetPositionedSelfRegion = {
929
1020
  alignPoint: IAlignPoint;
930
1021
  };
931
1022
 
1023
+ /**
1024
+ * Gets all previous sibling items of a menu item with wraparound.
1025
+ * @internal
1026
+ */
1027
+ export declare const getPreviousSiblings: <T extends IUiMenuItemData = object>(items: IUiMenuItem<T>[], itemId: string) => IUiMenuItem<T>[];
1028
+
932
1029
  /**
933
1030
  * @internal
934
1031
  */
935
1032
  export declare function getRecommendedDateDataset<T extends IDateDataset>(items: T[]): T;
936
1033
 
1034
+ /**
1035
+ * @internal
1036
+ */
1037
+ export declare const getSelectedMenuId: <T extends IUiMenuItemData = object, M = object>(context: IUiMenuContext<T, M>) => string | undefined;
1038
+
1039
+ /**
1040
+ * Gets all sibling items of a menu item.
1041
+ * @internal
1042
+ */
1043
+ export declare const getSiblingItems: <T extends IUiMenuItemData = object>(items: IUiMenuItem<T>[], itemId: string) => IUiMenuItem<T>[];
1044
+
937
1045
  /**
938
1046
  * @internal
939
1047
  */
@@ -1097,6 +1205,7 @@ export declare interface IAccessibilityConfigBase {
1097
1205
  ariaDescribedBy?: React.AriaAttributes["aria-describedby"];
1098
1206
  role?: React.HTMLAttributes<HTMLElement>["role"];
1099
1207
  ariaExpanded?: "true" | "false";
1208
+ ariaControls?: string;
1100
1209
  }
1101
1210
 
1102
1211
  /**
@@ -1399,6 +1508,7 @@ export declare interface IButtonAccessibilityConfig extends IAccessibilityConfig
1399
1508
  */
1400
1509
  export declare interface IButtonProps {
1401
1510
  id?: string;
1511
+ dataId?: string;
1402
1512
  className?: string;
1403
1513
  disabled?: boolean;
1404
1514
  tabIndex?: number;
@@ -1789,7 +1899,9 @@ export declare interface IDialogBaseProps {
1789
1899
  /**
1790
1900
  * @internal
1791
1901
  */
1792
- export declare type IDialogCloseButtonProps = Pick<IDialogBaseProps, "onClose" | "accessibilityConfig">;
1902
+ export declare type IDialogCloseButtonProps = Pick<IDialogBaseProps, "onClose" | "accessibilityConfig"> & {
1903
+ className?: string;
1904
+ };
1793
1905
 
1794
1906
  /**
1795
1907
  * @internal
@@ -1940,6 +2052,7 @@ export declare interface IDropdownButtonRenderProps {
1940
2052
  toggleDropdown: (desiredState?: boolean | unknown) => void;
1941
2053
  ariaAttributes: {
1942
2054
  role: "button" | string;
2055
+ "data-popupId": string;
1943
2056
  } & Pick<React_2.AriaAttributes, "aria-haspopup" | "aria-expanded" | "aria-controls">;
1944
2057
  }
1945
2058
 
@@ -2060,6 +2173,7 @@ export declare interface IDropdownProps {
2060
2173
  enableEventPropagation?: boolean;
2061
2174
  closeOnEscape?: boolean;
2062
2175
  autofocusOnOpen?: boolean;
2176
+ initialFocus?: React_2.RefObject<HTMLElement> | string;
2063
2177
  accessibilityConfig?: {
2064
2178
  popupRole?: "listbox" | "tree" | "grid" | "dialog";
2065
2179
  };
@@ -2326,6 +2440,14 @@ export declare interface IGranularGranteeUser extends IGranteeBase {
2326
2440
  inheritedPermissions: AccessGranularPermission[];
2327
2441
  }
2328
2442
 
2443
+ /**
2444
+ * @internal
2445
+ */
2446
+ export declare interface IHandleActionOptions {
2447
+ shouldPreventDefault?: boolean;
2448
+ shouldStopPropagation?: boolean;
2449
+ }
2450
+
2329
2451
  /**
2330
2452
  * @internal
2331
2453
  */
@@ -3235,6 +3357,11 @@ export declare interface IMetadataListProps {
3235
3357
  list?: IMetadataObjectBase[];
3236
3358
  }
3237
3359
 
3360
+ /**
3361
+ * @internal
3362
+ */
3363
+ export declare type IModifier = React_2.ModifierKey | `${typeof modifierNegator}${React_2.ModifierKey}`;
3364
+
3238
3365
  /**
3239
3366
  * @internal
3240
3367
  */
@@ -3712,6 +3839,7 @@ export declare interface IRecurrenceFormProps {
3712
3839
  showInheritValue?: boolean;
3713
3840
  isWhiteLabeled?: boolean;
3714
3841
  onRecurrenceDropdownOpen?: () => void;
3842
+ closeDropdownsOnParentScroll?: boolean;
3715
3843
  }
3716
3844
 
3717
3845
  /**
@@ -3735,6 +3863,7 @@ export declare interface IRecurrenceProps {
3735
3863
  showTimezoneInOccurrence?: boolean;
3736
3864
  isWhiteLabeled?: boolean;
3737
3865
  onRecurrenceDropdownOpen?: () => void;
3866
+ closeOnParentScroll?: boolean;
3738
3867
  }
3739
3868
 
3740
3869
  /**
@@ -3904,6 +4033,13 @@ export declare interface IScrollGradientProps {
3904
4033
  */
3905
4034
  export declare const isDateDatasetHeader: (obj: unknown) => obj is IDateDatasetHeader;
3906
4035
 
4036
+ /**
4037
+ * @internal
4038
+ * @param element - the element to test for focusability
4039
+ * @returns whether or not the supplied element is focusable
4040
+ */
4041
+ export declare const isElementFocusable: (element?: HTMLElement | null) => boolean;
4042
+
3907
4043
  /**
3908
4044
  * @internal
3909
4045
  */
@@ -4296,15 +4432,22 @@ export declare interface ISubMenuProps extends IMenuStateConfig, Partial<IMenuPo
4296
4432
  */
4297
4433
  export declare interface ISyntaxHighlightingInputProps {
4298
4434
  value: string;
4435
+ label?: string;
4436
+ disabled?: boolean;
4437
+ className?: string;
4438
+ placeholder?: string;
4439
+ extensions?: Extension[];
4299
4440
  onChange: (value: string) => void;
4441
+ onFocus?: (event: FocusEvent, view: EditorView) => void;
4442
+ onBlur?: (event: FocusEvent, view: EditorView) => void;
4300
4443
  onApi?: (view: EditorView | null) => void;
4301
4444
  onCursor?: (from: number, to: number) => void;
4302
4445
  onKeyDown?: (event: KeyboardEvent, view: EditorView) => boolean;
4303
- placeholder?: string;
4304
- label?: string;
4305
- extensions?: Extension[];
4306
- className?: string;
4307
- disabled?: boolean;
4446
+ autocompletion?: {
4447
+ whenTyping?: boolean;
4448
+ aboveCursor?: boolean;
4449
+ };
4450
+ onCompletion?: CompletionSource;
4308
4451
  }
4309
4452
 
4310
4453
  /**
@@ -4385,6 +4528,7 @@ export declare interface ITimepickerOwnProps {
4385
4528
  skipNormalizeTime?: boolean;
4386
4529
  timeAnchor?: number;
4387
4530
  timeFormat?: string;
4531
+ closeOnParentScroll?: boolean;
4388
4532
  }
4389
4533
 
4390
4534
  /**
@@ -4459,21 +4603,63 @@ export declare interface IUiListboxStaticItem<T> {
4459
4603
  /**
4460
4604
  * @internal
4461
4605
  */
4462
- export declare interface IUiMenuContext<T extends IUiMenuItemData = object> extends IUiMenuPluggableComponents<T> {
4606
+ export declare type IUiMenuContentItem<T extends IUiMenuItemData = object> = {
4607
+ type: "content";
4608
+ id: string;
4609
+ stringTitle: string;
4610
+ isDisabled?: boolean;
4611
+ showComponentOnly?: boolean;
4612
+ data: T["content"];
4613
+ Component: React_2.ComponentType<{
4614
+ onBack: () => void;
4615
+ onClose: () => void;
4616
+ }>;
4617
+ };
4618
+
4619
+ /**
4620
+ * @internal
4621
+ */
4622
+ export declare interface IUiMenuContentItemProps<T extends IUiMenuItemData = object> {
4623
+ item: IUiMenuContentItem<T>;
4624
+ isFocused: boolean;
4625
+ onSelect: () => void;
4626
+ }
4627
+
4628
+ /**
4629
+ * @internal
4630
+ */
4631
+ export declare interface IUiMenuContentItemWrapperProps<T extends IUiMenuItemData = object> {
4632
+ item: IUiMenuContentItem<T>;
4633
+ }
4634
+
4635
+ /**
4636
+ * @internal
4637
+ */
4638
+ export declare interface IUiMenuContentProps<T extends IUiMenuItemData = object> {
4639
+ item: IUiMenuContentItem<T>;
4640
+ }
4641
+
4642
+ /**
4643
+ * @internal
4644
+ */
4645
+ export declare interface IUiMenuContext<T extends IUiMenuItemData = object, M = object> extends IUiMenuPluggableComponents<T> {
4463
4646
  items: IUiMenuItem<T>[];
4464
- focusedItem: IUiMenuInteractiveItem<T> | undefined;
4465
- onSelect: (item: IUiMenuInteractiveItem<T> | undefined) => void;
4647
+ focusedItem: IUiMenuFocusableItem<T> | undefined;
4648
+ shownCustomContentItemId?: string;
4649
+ setShownCustomContentItemId: React_2.Dispatch<React_2.SetStateAction<string | undefined>>;
4650
+ onSelect: (item: IUiMenuFocusableItem<T> | undefined) => void;
4466
4651
  onClose?: () => void;
4467
4652
  setFocusedId: React_2.Dispatch<React_2.SetStateAction<string | undefined>>;
4468
4653
  isItemFocusable: (item: IUiMenuItem<T>) => boolean;
4469
4654
  controlType: IUiMenuControlType;
4470
4655
  setControlType: React_2.Dispatch<React_2.SetStateAction<IUiMenuControlType>>;
4471
4656
  scrollToView: (element: HTMLElement | null) => void;
4472
- makeItemId: (item: IUiMenuItem<T>) => string;
4657
+ makeItemId: (item: IUiMenuItem<T>) => string | undefined;
4473
4658
  itemClassName?: ((item: IUiMenuItem<T>) => string | undefined) | string;
4474
- ItemComponent: React_2.ComponentType<UiMenuItemProps<T>>;
4659
+ ItemComponent: React_2.ComponentType<IUiMenuItemProps<T>>;
4475
4660
  menuComponentRef: React_2.RefObject<HTMLElement>;
4476
4661
  itemsContainerRef: React_2.RefObject<HTMLElement>;
4662
+ menuCtxData?: M;
4477
4663
  }
4478
4664
 
4479
4665
  /**
@@ -4481,6 +4667,11 @@ export declare interface IUiMenuContext<T extends IUiMenuItemData = object> exte
4481
4667
  */
4482
4668
  export declare type IUiMenuControlType = "keyboard" | "mouse" | "unknown";
4483
4669
 
4670
+ /**
4671
+ * @internal
4672
+ */
4673
+ export declare type IUiMenuFocusableItem<T extends IUiMenuItemData = object> = IUiMenuInteractiveItem<T> | IUiMenuContentItem<T>;
4674
+
4484
4675
  /**
4485
4676
  * @internal
4486
4677
  */
@@ -4492,6 +4683,13 @@ export declare type IUiMenuGroupItem<T extends IUiMenuItemData = object> = {
4492
4683
  subItems: IUiMenuItem<T>[];
4493
4684
  };
4494
4685
 
4686
+ /**
4687
+ * @internal
4688
+ */
4689
+ export declare interface IUiMenuGroupItemProps<T extends IUiMenuItemData = object> {
4690
+ item: IUiMenuGroupItem<T>;
4691
+ }
4692
+
4495
4693
  /**
4496
4694
  * @internal
4497
4695
  */
@@ -4507,7 +4705,23 @@ export declare type IUiMenuInteractiveItem<T extends IUiMenuItemData = object> =
4507
4705
  /**
4508
4706
  * @internal
4509
4707
  */
4510
- export declare type IUiMenuItem<T extends IUiMenuItemData = object> = IUiMenuStaticItem<T> | IUiMenuInteractiveItem<T> | IUiMenuGroupItem<T>;
4708
+ export declare interface IUiMenuInteractiveItemProps<T extends IUiMenuItemData = object> {
4709
+ item: IUiMenuInteractiveItem<T>;
4710
+ isFocused: boolean;
4711
+ onSelect: () => void;
4712
+ }
4713
+
4714
+ /**
4715
+ * @internal
4716
+ */
4717
+ export declare interface IUiMenuInteractiveItemWrapperProps<T extends IUiMenuItemData = object> {
4718
+ item: IUiMenuInteractiveItem<T>;
4719
+ }
4720
+
4721
+ /**
4722
+ * @internal
4723
+ */
4724
+ export declare type IUiMenuItem<T extends IUiMenuItemData = object> = IUiMenuStaticItem<T> | IUiMenuInteractiveItem<T> | IUiMenuGroupItem<T> | IUiMenuContentItem<T>;
4511
4725
 
4512
4726
  /**
4513
4727
  * @internal
@@ -4516,15 +4730,25 @@ export declare type IUiMenuItemData = {
4516
4730
  [type in IUiMenuItem<any>["type"]]?: unknown;
4517
4731
  };
4518
4732
 
4733
+ /**
4734
+ * @internal
4735
+ */
4736
+ export declare interface IUiMenuItemProps<T extends IUiMenuItemData = object> {
4737
+ item: IUiMenuItem<T>;
4738
+ }
4739
+
4519
4740
  /**
4520
4741
  * @internal
4521
4742
  */
4522
4743
  export declare interface IUiMenuPluggableComponents<T extends IUiMenuItemData = object> {
4523
- InteractiveItemComponent: React_2.ComponentType<UiMenuInteractiveItemProps<T>>;
4524
- InteractiveItemWrapperComponent: React_2.ComponentType<UiMenuInteractiveItemWrapperProps<T>>;
4525
- GroupItemComponent: React_2.ComponentType<UiMenuGroupItemProps<T>>;
4526
- StaticItemComponent: React_2.ComponentType<UiMenuStaticItemProps<T>>;
4527
- MenuHeaderComponent: React_2.ComponentType;
4744
+ InteractiveItem: React_2.ComponentType<IUiMenuInteractiveItemProps<T>>;
4745
+ InteractiveItemWrapper: React_2.ComponentType<IUiMenuInteractiveItemWrapperProps<T>>;
4746
+ GroupItem: React_2.ComponentType<IUiMenuGroupItemProps<T>>;
4747
+ StaticItem: React_2.ComponentType<IUiMenuStaticItemProps<T>>;
4748
+ ContentItemWrapper: React_2.ComponentType<IUiMenuContentItemWrapperProps<T>>;
4749
+ ContentItem: React_2.ComponentType<IUiMenuContentItemProps<T>>;
4750
+ Content: React_2.ComponentType<IUiMenuContentProps<T>>;
4751
+ MenuHeader: React_2.ComponentType;
4528
4752
  }
4529
4753
 
4530
4754
  /**
@@ -4536,6 +4760,13 @@ export declare type IUiMenuStaticItem<T extends IUiMenuItemData = object> = {
4536
4760
  data: T["static"];
4537
4761
  };
4538
4762
 
4763
+ /**
4764
+ * @internal
4765
+ */
4766
+ export declare interface IUiMenuStaticItemProps<T extends IUiMenuItemData = object> {
4767
+ item: IUiMenuStaticItem<T>;
4768
+ }
4769
+
4539
4770
  /**
4540
4771
  * @internal
4541
4772
  */
@@ -4760,19 +4991,40 @@ export declare const LocaleSetting: React_2.VFC<ILocaleSettingProps>;
4760
4991
  /**
4761
4992
  * @internal
4762
4993
  */
4763
- export declare const makeMenuKeyboardNavigation: <T extends KeyboardEvent | KeyboardEvent_2<Element> = KeyboardEvent_2<Element>>({ onFocusPrevious, onFocusNext, onFocusFirst, onFocusLast, onEnterLevel, onLeaveLevel, onSelect, onClose, onUnhandledKeyDown, shouldPreventDefault, shouldStopPropagation, }: {
4994
+ export declare const makeKeyboardNavigation: <ActionKeysMap extends {
4995
+ [action: string]: {
4996
+ code: string | string[];
4997
+ modifiers?: IModifier[];
4998
+ }[];
4999
+ }>(actionKeysMap: ActionKeysMap) => <T extends KeyboardEvent | React_2.KeyboardEvent<Element> = React_2.KeyboardEvent<Element>>(handlers: { [action in keyof ActionKeysMap | "onUnhandledKeyDown"]?: (event: T) => void; }, options?: IHandleActionOptions) => (event: T) => void;
5000
+
5001
+ /**
5002
+ * @internal
5003
+ */
5004
+ export declare const makeLinearKeyboardNavigation: <T extends KeyboardEvent | React_2.KeyboardEvent<Element> = React_2.KeyboardEvent<Element>>(handlers: {
5005
+ onSelect?: (event: T) => void;
5006
+ onClose?: (event: T) => void;
5007
+ onFocusPrevious?: (event: T) => void;
4764
5008
  onFocusNext?: (event: T) => void;
5009
+ onFocusFirst?: (event: T) => void;
5010
+ onFocusLast?: (event: T) => void;
5011
+ onUnhandledKeyDown?: (event: T) => void;
5012
+ }, options?: IHandleActionOptions) => (event: T) => void;
5013
+
5014
+ /**
5015
+ * @internal
5016
+ */
5017
+ export declare const makeMenuKeyboardNavigation: <T extends KeyboardEvent | React_2.KeyboardEvent<Element> = React_2.KeyboardEvent<Element>>(handlers: {
5018
+ onSelect?: (event: T) => void;
5019
+ onClose?: (event: T) => void;
4765
5020
  onFocusPrevious?: (event: T) => void;
5021
+ onFocusNext?: (event: T) => void;
4766
5022
  onFocusFirst?: (event: T) => void;
4767
5023
  onFocusLast?: (event: T) => void;
4768
5024
  onEnterLevel?: (event: T) => void;
4769
5025
  onLeaveLevel?: (event: T) => void;
4770
- onSelect?: (event: T) => void;
4771
- onClose?: (event: T) => void;
4772
5026
  onUnhandledKeyDown?: (event: T) => void;
4773
- shouldPreventDefault?: boolean;
4774
- shouldStopPropagation?: boolean;
4775
- }) => (event: T) => void;
5027
+ }, options?: IHandleActionOptions) => (event: T) => void;
4776
5028
 
4777
5029
  /**
4778
5030
  * @internal
@@ -4828,6 +5080,11 @@ export declare const META_DATA_TIMEZONE = "Europe/Prague";
4828
5080
  */
4829
5081
  export declare const MetadataList: React_2.FC<IMetadataListProps>;
4830
5082
 
5083
+ /**
5084
+ * @internal
5085
+ */
5086
+ export declare const modifierNegator: "!";
5087
+
4831
5088
  /**
4832
5089
  * @internal
4833
5090
  */
@@ -5265,6 +5522,11 @@ export declare type SizeMedium = "medium";
5265
5522
  */
5266
5523
  export declare type SizeSmall = "small";
5267
5524
 
5525
+ /**
5526
+ * @internal
5527
+ */
5528
+ export declare type SizeXSmall = "xsmall";
5529
+
5268
5530
  /**
5269
5531
  * @internal
5270
5532
  */
@@ -5496,6 +5758,11 @@ export declare type TStylingEditorDialogFooterProps = {
5496
5758
  */
5497
5759
  export declare type TUTMContent = "main_menu_help_documentation" | "main_menu_help_university" | "main_menu_help_community" | "main_menu_help_support" | "main_menu_help_ticket" | "main_menu_help_slack";
5498
5760
 
5761
+ /**
5762
+ * @internal
5763
+ */
5764
+ export declare const typedUiMenuContextStore: <T extends IUiMenuItemData = object, M = object>() => IContextStore<IUiMenuContext<T, M>>;
5765
+
5499
5766
  /**
5500
5767
  * @internal
5501
5768
  */
@@ -5531,7 +5798,7 @@ export declare interface UiButtonProps {
5531
5798
  /**
5532
5799
  * @internal
5533
5800
  */
5534
- export declare const UiChip: ({ label, tag, isDeletable, isActive, isLocked, iconBefore, onClick, onDelete, accessibilityConfig, }: UiChipProps) => React_2.JSX.Element;
5801
+ export declare const UiChip: ({ label, tag, isDeletable, isActive, isLocked, iconBefore, onClick, onDelete, onDeleteKeyDown, accessibilityConfig, }: UiChipProps) => React_2.JSX.Element;
5535
5802
 
5536
5803
  /**
5537
5804
  * @internal
@@ -5545,6 +5812,7 @@ export declare interface UiChipProps {
5545
5812
  iconBefore?: IconType;
5546
5813
  onClick?: () => void;
5547
5814
  onDelete?: () => void;
5815
+ onDeleteKeyDown?: (event: React_2.KeyboardEvent<HTMLButtonElement>) => void;
5548
5816
  accessibilityConfig?: IUiChipAccessibilityConfig;
5549
5817
  }
5550
5818
 
@@ -5598,7 +5866,7 @@ export declare const UiIconButton: React_2.ForwardRefExoticComponent<UiIconButto
5598
5866
  export declare interface UiIconButtonProps {
5599
5867
  icon: IconType;
5600
5868
  label: string;
5601
- size?: SizeSmall | SizeMedium | SizeLarge;
5869
+ size?: SizeXSmall | SizeSmall | SizeMedium | SizeLarge;
5602
5870
  variant?: VariantPrimary | VariantSecondary | VariantTertiary | VariantPopOut | VariantDanger;
5603
5871
  isDisabled?: boolean;
5604
5872
  onClick?: (e: React_2.MouseEvent<HTMLButtonElement>) => void;
@@ -5670,47 +5938,18 @@ export declare interface UiListboxStaticItemProps<T> {
5670
5938
  *
5671
5939
  * @internal
5672
5940
  */
5673
- export declare function UiMenu<T extends IUiMenuItemData = object>(props: UiMenuProps<T>): React_2.ReactNode;
5674
-
5675
- /**
5676
- * @internal
5677
- */
5678
- export declare interface UiMenuGroupItemProps<T extends IUiMenuItemData = object> {
5679
- item: IUiMenuGroupItem<T>;
5680
- }
5681
-
5682
- /**
5683
- * @internal
5684
- */
5685
- export declare interface UiMenuInteractiveItemProps<T extends IUiMenuItemData = object> {
5686
- item: IUiMenuInteractiveItem<T>;
5687
- isFocused: boolean;
5688
- onSelect: () => void;
5689
- }
5690
-
5691
- /**
5692
- * @internal
5693
- */
5694
- export declare interface UiMenuInteractiveItemWrapperProps<T extends IUiMenuItemData = object> {
5695
- item: IUiMenuInteractiveItem<T>;
5696
- }
5697
-
5698
- /**
5699
- * @internal
5700
- */
5701
- export declare interface UiMenuItemProps<T extends IUiMenuItemData = object> {
5702
- item: IUiMenuItem<T>;
5703
- }
5941
+ export declare function UiMenu<T extends IUiMenuItemData = object, M extends object = object>(props: UiMenuProps<T, M>): React_2.ReactNode;
5704
5942
 
5705
5943
  /**
5706
5944
  * @internal
5707
5945
  */
5708
- export declare interface UiMenuProps<T extends IUiMenuItemData = object> extends Partial<IUiMenuPluggableComponents<T>> {
5946
+ export declare interface UiMenuProps<T extends IUiMenuItemData = object, M = object> extends Partial<IUiMenuPluggableComponents<T>> {
5709
5947
  items: IUiMenuItem<T>[];
5710
- className?: string;
5948
+ className?: ((context: IUiMenuContext<T>) => string | undefined) | string;
5711
5949
  itemClassName?: ((item: IUiMenuItem<T>) => string | undefined) | string;
5712
5950
  maxWidth?: number;
5713
5951
  onSelect?: (item: IUiMenuInteractiveItem<T>) => void;
5952
+ onLevelChange?: (level: number, item?: IUiMenuContentItem<T> | IUiMenuInteractiveItem<T>) => void;
5714
5953
  onClose?: () => void;
5715
5954
  onUnhandledKeyDown?: (event: React_2.KeyboardEvent, context: IUiMenuContext<T>) => void;
5716
5955
  shouldKeyboardActionPreventDefault?: boolean;
@@ -5718,13 +5957,7 @@ export declare interface UiMenuProps<T extends IUiMenuItemData = object> extends
5718
5957
  shouldCloseOnSelect?: boolean;
5719
5958
  isDisabledFocusable?: boolean;
5720
5959
  ariaAttributes: Omit<IDropdownBodyRenderProps["ariaAttributes"], "role">;
5721
- }
5722
-
5723
- /**
5724
- * @internal
5725
- */
5726
- export declare interface UiMenuStaticItemProps<T extends IUiMenuItemData = object> {
5727
- item: IUiMenuStaticItem<T>;
5960
+ menuCtxData?: M;
5728
5961
  }
5729
5962
 
5730
5963
  /**
@@ -5801,6 +6034,19 @@ export declare type UnitsType = "px" | "%" | "rem" | "em";
5801
6034
  */
5802
6035
  export declare const unrelatedHeader: IDateDatasetHeader;
5803
6036
 
6037
+ /**
6038
+ * Unwraps items from group containers into a flat array.
6039
+ * @internal
6040
+ */
6041
+ export declare function unwrapGroupItems<T extends IUiMenuItemData = object>(items: IUiMenuItem<T>[]): IUiMenuItem<T>[];
6042
+
6043
+ /**
6044
+ * Focuses the element when it mounts.
6045
+ *
6046
+ * @internal
6047
+ */
6048
+ export declare const useAutofocusOnMount: (timeout?: number) => (node: HTMLElement | null) => void;
6049
+
5804
6050
  /**
5805
6051
  * A helper hook to provide not just state/setState pair but also a debounced version of the state.
5806
6052
  * @internal