@gooddata/sdk-ui-kit 10.28.0-alpha.6 → 10.28.0-alpha.61

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 +1 -0
  85. package/esm/Dropdown/Dropdown.d.ts.map +1 -1
  86. package/esm/Dropdown/Dropdown.js +19 -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 +318 -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
@@ -2061,6 +2173,7 @@ export declare interface IDropdownProps {
2061
2173
  enableEventPropagation?: boolean;
2062
2174
  closeOnEscape?: boolean;
2063
2175
  autofocusOnOpen?: boolean;
2176
+ initialFocus?: React_2.RefObject<HTMLElement> | string;
2064
2177
  accessibilityConfig?: {
2065
2178
  popupRole?: "listbox" | "tree" | "grid" | "dialog";
2066
2179
  };
@@ -2327,6 +2440,14 @@ export declare interface IGranularGranteeUser extends IGranteeBase {
2327
2440
  inheritedPermissions: AccessGranularPermission[];
2328
2441
  }
2329
2442
 
2443
+ /**
2444
+ * @internal
2445
+ */
2446
+ export declare interface IHandleActionOptions {
2447
+ shouldPreventDefault?: boolean;
2448
+ shouldStopPropagation?: boolean;
2449
+ }
2450
+
2330
2451
  /**
2331
2452
  * @internal
2332
2453
  */
@@ -3236,6 +3357,11 @@ export declare interface IMetadataListProps {
3236
3357
  list?: IMetadataObjectBase[];
3237
3358
  }
3238
3359
 
3360
+ /**
3361
+ * @internal
3362
+ */
3363
+ export declare type IModifier = React_2.ModifierKey | `${typeof modifierNegator}${React_2.ModifierKey}`;
3364
+
3239
3365
  /**
3240
3366
  * @internal
3241
3367
  */
@@ -3713,6 +3839,7 @@ export declare interface IRecurrenceFormProps {
3713
3839
  showInheritValue?: boolean;
3714
3840
  isWhiteLabeled?: boolean;
3715
3841
  onRecurrenceDropdownOpen?: () => void;
3842
+ closeDropdownsOnParentScroll?: boolean;
3716
3843
  }
3717
3844
 
3718
3845
  /**
@@ -3736,6 +3863,7 @@ export declare interface IRecurrenceProps {
3736
3863
  showTimezoneInOccurrence?: boolean;
3737
3864
  isWhiteLabeled?: boolean;
3738
3865
  onRecurrenceDropdownOpen?: () => void;
3866
+ closeOnParentScroll?: boolean;
3739
3867
  }
3740
3868
 
3741
3869
  /**
@@ -3905,6 +4033,13 @@ export declare interface IScrollGradientProps {
3905
4033
  */
3906
4034
  export declare const isDateDatasetHeader: (obj: unknown) => obj is IDateDatasetHeader;
3907
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
+
3908
4043
  /**
3909
4044
  * @internal
3910
4045
  */
@@ -4297,15 +4432,22 @@ export declare interface ISubMenuProps extends IMenuStateConfig, Partial<IMenuPo
4297
4432
  */
4298
4433
  export declare interface ISyntaxHighlightingInputProps {
4299
4434
  value: string;
4435
+ label?: string;
4436
+ disabled?: boolean;
4437
+ className?: string;
4438
+ placeholder?: string;
4439
+ extensions?: Extension[];
4300
4440
  onChange: (value: string) => void;
4441
+ onFocus?: (event: FocusEvent, view: EditorView) => void;
4442
+ onBlur?: (event: FocusEvent, view: EditorView) => void;
4301
4443
  onApi?: (view: EditorView | null) => void;
4302
4444
  onCursor?: (from: number, to: number) => void;
4303
4445
  onKeyDown?: (event: KeyboardEvent, view: EditorView) => boolean;
4304
- placeholder?: string;
4305
- label?: string;
4306
- extensions?: Extension[];
4307
- className?: string;
4308
- disabled?: boolean;
4446
+ autocompletion?: {
4447
+ whenTyping?: boolean;
4448
+ aboveCursor?: boolean;
4449
+ };
4450
+ onCompletion?: CompletionSource;
4309
4451
  }
4310
4452
 
4311
4453
  /**
@@ -4386,6 +4528,7 @@ export declare interface ITimepickerOwnProps {
4386
4528
  skipNormalizeTime?: boolean;
4387
4529
  timeAnchor?: number;
4388
4530
  timeFormat?: string;
4531
+ closeOnParentScroll?: boolean;
4389
4532
  }
4390
4533
 
4391
4534
  /**
@@ -4460,21 +4603,63 @@ export declare interface IUiListboxStaticItem<T> {
4460
4603
  /**
4461
4604
  * @internal
4462
4605
  */
4463
- 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> {
4464
4646
  items: IUiMenuItem<T>[];
4465
- focusedItem: IUiMenuInteractiveItem<T> | undefined;
4466
- 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;
4467
4651
  onClose?: () => void;
4468
4652
  setFocusedId: React_2.Dispatch<React_2.SetStateAction<string | undefined>>;
4469
4653
  isItemFocusable: (item: IUiMenuItem<T>) => boolean;
4470
4654
  controlType: IUiMenuControlType;
4471
4655
  setControlType: React_2.Dispatch<React_2.SetStateAction<IUiMenuControlType>>;
4472
4656
  scrollToView: (element: HTMLElement | null) => void;
4473
- makeItemId: (item: IUiMenuItem<T>) => string;
4657
+ makeItemId: (item: IUiMenuItem<T>) => string | undefined;
4474
4658
  itemClassName?: ((item: IUiMenuItem<T>) => string | undefined) | string;
4475
- ItemComponent: React_2.ComponentType<UiMenuItemProps<T>>;
4659
+ ItemComponent: React_2.ComponentType<IUiMenuItemProps<T>>;
4476
4660
  menuComponentRef: React_2.RefObject<HTMLElement>;
4477
4661
  itemsContainerRef: React_2.RefObject<HTMLElement>;
4662
+ menuCtxData?: M;
4478
4663
  }
4479
4664
 
4480
4665
  /**
@@ -4482,6 +4667,11 @@ export declare interface IUiMenuContext<T extends IUiMenuItemData = object> exte
4482
4667
  */
4483
4668
  export declare type IUiMenuControlType = "keyboard" | "mouse" | "unknown";
4484
4669
 
4670
+ /**
4671
+ * @internal
4672
+ */
4673
+ export declare type IUiMenuFocusableItem<T extends IUiMenuItemData = object> = IUiMenuInteractiveItem<T> | IUiMenuContentItem<T>;
4674
+
4485
4675
  /**
4486
4676
  * @internal
4487
4677
  */
@@ -4493,6 +4683,13 @@ export declare type IUiMenuGroupItem<T extends IUiMenuItemData = object> = {
4493
4683
  subItems: IUiMenuItem<T>[];
4494
4684
  };
4495
4685
 
4686
+ /**
4687
+ * @internal
4688
+ */
4689
+ export declare interface IUiMenuGroupItemProps<T extends IUiMenuItemData = object> {
4690
+ item: IUiMenuGroupItem<T>;
4691
+ }
4692
+
4496
4693
  /**
4497
4694
  * @internal
4498
4695
  */
@@ -4508,7 +4705,23 @@ export declare type IUiMenuInteractiveItem<T extends IUiMenuItemData = object> =
4508
4705
  /**
4509
4706
  * @internal
4510
4707
  */
4511
- 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>;
4512
4725
 
4513
4726
  /**
4514
4727
  * @internal
@@ -4517,15 +4730,25 @@ export declare type IUiMenuItemData = {
4517
4730
  [type in IUiMenuItem<any>["type"]]?: unknown;
4518
4731
  };
4519
4732
 
4733
+ /**
4734
+ * @internal
4735
+ */
4736
+ export declare interface IUiMenuItemProps<T extends IUiMenuItemData = object> {
4737
+ item: IUiMenuItem<T>;
4738
+ }
4739
+
4520
4740
  /**
4521
4741
  * @internal
4522
4742
  */
4523
4743
  export declare interface IUiMenuPluggableComponents<T extends IUiMenuItemData = object> {
4524
- InteractiveItemComponent: React_2.ComponentType<UiMenuInteractiveItemProps<T>>;
4525
- InteractiveItemWrapperComponent: React_2.ComponentType<UiMenuInteractiveItemWrapperProps<T>>;
4526
- GroupItemComponent: React_2.ComponentType<UiMenuGroupItemProps<T>>;
4527
- StaticItemComponent: React_2.ComponentType<UiMenuStaticItemProps<T>>;
4528
- 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;
4529
4752
  }
4530
4753
 
4531
4754
  /**
@@ -4537,6 +4760,13 @@ export declare type IUiMenuStaticItem<T extends IUiMenuItemData = object> = {
4537
4760
  data: T["static"];
4538
4761
  };
4539
4762
 
4763
+ /**
4764
+ * @internal
4765
+ */
4766
+ export declare interface IUiMenuStaticItemProps<T extends IUiMenuItemData = object> {
4767
+ item: IUiMenuStaticItem<T>;
4768
+ }
4769
+
4540
4770
  /**
4541
4771
  * @internal
4542
4772
  */
@@ -4761,19 +4991,40 @@ export declare const LocaleSetting: React_2.VFC<ILocaleSettingProps>;
4761
4991
  /**
4762
4992
  * @internal
4763
4993
  */
4764
- 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;
4765
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;
4766
5020
  onFocusPrevious?: (event: T) => void;
5021
+ onFocusNext?: (event: T) => void;
4767
5022
  onFocusFirst?: (event: T) => void;
4768
5023
  onFocusLast?: (event: T) => void;
4769
5024
  onEnterLevel?: (event: T) => void;
4770
5025
  onLeaveLevel?: (event: T) => void;
4771
- onSelect?: (event: T) => void;
4772
- onClose?: (event: T) => void;
4773
5026
  onUnhandledKeyDown?: (event: T) => void;
4774
- shouldPreventDefault?: boolean;
4775
- shouldStopPropagation?: boolean;
4776
- }) => (event: T) => void;
5027
+ }, options?: IHandleActionOptions) => (event: T) => void;
4777
5028
 
4778
5029
  /**
4779
5030
  * @internal
@@ -4829,6 +5080,11 @@ export declare const META_DATA_TIMEZONE = "Europe/Prague";
4829
5080
  */
4830
5081
  export declare const MetadataList: React_2.FC<IMetadataListProps>;
4831
5082
 
5083
+ /**
5084
+ * @internal
5085
+ */
5086
+ export declare const modifierNegator: "!";
5087
+
4832
5088
  /**
4833
5089
  * @internal
4834
5090
  */
@@ -5266,6 +5522,11 @@ export declare type SizeMedium = "medium";
5266
5522
  */
5267
5523
  export declare type SizeSmall = "small";
5268
5524
 
5525
+ /**
5526
+ * @internal
5527
+ */
5528
+ export declare type SizeXSmall = "xsmall";
5529
+
5269
5530
  /**
5270
5531
  * @internal
5271
5532
  */
@@ -5497,6 +5758,11 @@ export declare type TStylingEditorDialogFooterProps = {
5497
5758
  */
5498
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";
5499
5760
 
5761
+ /**
5762
+ * @internal
5763
+ */
5764
+ export declare const typedUiMenuContextStore: <T extends IUiMenuItemData = object, M = object>() => IContextStore<IUiMenuContext<T, M>>;
5765
+
5500
5766
  /**
5501
5767
  * @internal
5502
5768
  */
@@ -5532,7 +5798,7 @@ export declare interface UiButtonProps {
5532
5798
  /**
5533
5799
  * @internal
5534
5800
  */
5535
- 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;
5536
5802
 
5537
5803
  /**
5538
5804
  * @internal
@@ -5546,6 +5812,7 @@ export declare interface UiChipProps {
5546
5812
  iconBefore?: IconType;
5547
5813
  onClick?: () => void;
5548
5814
  onDelete?: () => void;
5815
+ onDeleteKeyDown?: (event: React_2.KeyboardEvent<HTMLButtonElement>) => void;
5549
5816
  accessibilityConfig?: IUiChipAccessibilityConfig;
5550
5817
  }
5551
5818
 
@@ -5599,7 +5866,7 @@ export declare const UiIconButton: React_2.ForwardRefExoticComponent<UiIconButto
5599
5866
  export declare interface UiIconButtonProps {
5600
5867
  icon: IconType;
5601
5868
  label: string;
5602
- size?: SizeSmall | SizeMedium | SizeLarge;
5869
+ size?: SizeXSmall | SizeSmall | SizeMedium | SizeLarge;
5603
5870
  variant?: VariantPrimary | VariantSecondary | VariantTertiary | VariantPopOut | VariantDanger;
5604
5871
  isDisabled?: boolean;
5605
5872
  onClick?: (e: React_2.MouseEvent<HTMLButtonElement>) => void;
@@ -5671,47 +5938,18 @@ export declare interface UiListboxStaticItemProps<T> {
5671
5938
  *
5672
5939
  * @internal
5673
5940
  */
5674
- export declare function UiMenu<T extends IUiMenuItemData = object>(props: UiMenuProps<T>): React_2.ReactNode;
5675
-
5676
- /**
5677
- * @internal
5678
- */
5679
- export declare interface UiMenuGroupItemProps<T extends IUiMenuItemData = object> {
5680
- item: IUiMenuGroupItem<T>;
5681
- }
5682
-
5683
- /**
5684
- * @internal
5685
- */
5686
- export declare interface UiMenuInteractiveItemProps<T extends IUiMenuItemData = object> {
5687
- item: IUiMenuInteractiveItem<T>;
5688
- isFocused: boolean;
5689
- onSelect: () => void;
5690
- }
5691
-
5692
- /**
5693
- * @internal
5694
- */
5695
- export declare interface UiMenuInteractiveItemWrapperProps<T extends IUiMenuItemData = object> {
5696
- item: IUiMenuInteractiveItem<T>;
5697
- }
5698
-
5699
- /**
5700
- * @internal
5701
- */
5702
- export declare interface UiMenuItemProps<T extends IUiMenuItemData = object> {
5703
- item: IUiMenuItem<T>;
5704
- }
5941
+ export declare function UiMenu<T extends IUiMenuItemData = object, M extends object = object>(props: UiMenuProps<T, M>): React_2.ReactNode;
5705
5942
 
5706
5943
  /**
5707
5944
  * @internal
5708
5945
  */
5709
- 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>> {
5710
5947
  items: IUiMenuItem<T>[];
5711
- className?: string;
5948
+ className?: ((context: IUiMenuContext<T>) => string | undefined) | string;
5712
5949
  itemClassName?: ((item: IUiMenuItem<T>) => string | undefined) | string;
5713
5950
  maxWidth?: number;
5714
5951
  onSelect?: (item: IUiMenuInteractiveItem<T>) => void;
5952
+ onLevelChange?: (level: number, item?: IUiMenuContentItem<T> | IUiMenuInteractiveItem<T>) => void;
5715
5953
  onClose?: () => void;
5716
5954
  onUnhandledKeyDown?: (event: React_2.KeyboardEvent, context: IUiMenuContext<T>) => void;
5717
5955
  shouldKeyboardActionPreventDefault?: boolean;
@@ -5719,13 +5957,7 @@ export declare interface UiMenuProps<T extends IUiMenuItemData = object> extends
5719
5957
  shouldCloseOnSelect?: boolean;
5720
5958
  isDisabledFocusable?: boolean;
5721
5959
  ariaAttributes: Omit<IDropdownBodyRenderProps["ariaAttributes"], "role">;
5722
- }
5723
-
5724
- /**
5725
- * @internal
5726
- */
5727
- export declare interface UiMenuStaticItemProps<T extends IUiMenuItemData = object> {
5728
- item: IUiMenuStaticItem<T>;
5960
+ menuCtxData?: M;
5729
5961
  }
5730
5962
 
5731
5963
  /**
@@ -5802,6 +6034,19 @@ export declare type UnitsType = "px" | "%" | "rem" | "em";
5802
6034
  */
5803
6035
  export declare const unrelatedHeader: IDateDatasetHeader;
5804
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
+
5805
6050
  /**
5806
6051
  * A helper hook to provide not just state/setState pair but also a debounced version of the state.
5807
6052
  * @internal