@gooddata/sdk-ui-kit 10.28.0-alpha.73 → 10.28.0-alpha.75

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.
@@ -52,7 +52,7 @@ export const makeMenuKeyboardNavigation = makeKeyboardNavigation({
52
52
  onFocusNext: [{ code: "ArrowDown" }],
53
53
  onFocusFirst: [{ code: "Home" }],
54
54
  onFocusLast: [{ code: "End" }],
55
- onEnterLevel: [{ code: "ArrowRight" }],
55
+ onEnterLevel: [{ code: ["ArrowRight", "F2"] }],
56
56
  onLeaveLevel: [{ code: "ArrowLeft" }],
57
57
  onSelect: [{ code: ["Enter", "Space"] }],
58
58
  onClose: [{ code: "Escape" }],
@@ -1 +1 @@
1
- {"version":3,"file":"keyboardNavigation.js","sourceRoot":"","sources":["../../../src/@ui/@utils/keyboardNavigation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keyboardNavigation.js","sourceRoot":"","sources":["../../../src/@ui/@utils/keyboardNavigation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import React from "react";
2
+ /**
3
+ * @internal
4
+ */
5
+ export declare const SELECT_ITEM_ACTION = "selectItem";
6
+ /**
7
+ * @internal
8
+ */
9
+ export declare function useListWithActionsKeyboardNavigation<Item, Action extends string>({ items, actionHandlers, getItemAdditionalActions, }: {
10
+ items: Item[];
11
+ actionHandlers: {
12
+ [key in Action | typeof SELECT_ITEM_ACTION]: (item: Item) => (() => void) | undefined;
13
+ };
14
+ getItemAdditionalActions: (item: Item) => Action[];
15
+ }): {
16
+ onKeyboardNavigation: (event: React.KeyboardEvent<Element>) => void;
17
+ onBlur: React.FocusEventHandler<Element>;
18
+ focusedAction: "selectItem" | Action;
19
+ focusedItem: Item;
20
+ };
21
+ //# sourceMappingURL=useListWithActionsKeyboardNavigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useListWithActionsKeyboardNavigation.d.ts","sourceRoot":"","sources":["../../../src/@ui/hooks/useListWithActionsKeyboardNavigation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B;;GAEG;AACH,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAY/C;;GAEG;AACH,wBAAgB,oCAAoC,CAAC,IAAI,EAAE,MAAM,SAAS,MAAM,EAAE,EAC9E,KAAK,EACL,cAAc,EACd,wBAAwB,GAC3B,EAAE;IACC,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,cAAc,EAAE;SAAG,GAAG,IAAI,MAAM,GAAG,OAAO,kBAAkB,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS;KAAE,CAAC;IAC1G,wBAAwB,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;CACtD;;;;;EAiDA"}
@@ -0,0 +1,128 @@
1
+ // (C) 2025 GoodData Corporation
2
+ import React from "react";
3
+ import { useAutoupdateRef } from "@gooddata/sdk-ui";
4
+ import { makeLinearKeyboardNavigation, makeMenuKeyboardNavigation } from "../@utils/keyboardNavigation.js";
5
+ /**
6
+ * @internal
7
+ */
8
+ export const SELECT_ITEM_ACTION = "selectItem";
9
+ /**
10
+ * @internal
11
+ */
12
+ export function useListWithActionsKeyboardNavigation({ items, actionHandlers, getItemAdditionalActions, }) {
13
+ const [focusedIndex, setFocusedIndex] = React.useState(0);
14
+ const focusedItem = focusedIndex === undefined ? undefined : items[focusedIndex];
15
+ const [focusedAction, setFocusedAction] = React.useState(SELECT_ITEM_ACTION);
16
+ const focusedItemAdditionalActions = React.useMemo(() => (focusedItem ? getItemAdditionalActions(focusedItem) : []), [focusedItem, getItemAdditionalActions]);
17
+ // If the items change and we're suddenly focusing on a nonexistent item
18
+ if (focusedIndex && focusedIndex > items.length - 1) {
19
+ setFocusedIndex(items.length - 1);
20
+ }
21
+ // If the item actions change and we're suddenly focusing on a nonexistent action
22
+ if (focusedAction !== SELECT_ITEM_ACTION && !focusedItemAdditionalActions.includes(focusedAction)) {
23
+ setFocusedAction(focusedItemAdditionalActions[0] ?? SELECT_ITEM_ACTION);
24
+ }
25
+ const keyboardNavigationDepsRef = useAutoupdateRef({
26
+ items,
27
+ focusedAction,
28
+ setFocusedIndex,
29
+ setFocusedAction,
30
+ focusedItemAdditionalActions,
31
+ focusedItem,
32
+ actionHandlers,
33
+ });
34
+ // There are two separate modes of control,
35
+ // one switches between items and one controls picking actions for a specific item
36
+ const selectionMode = focusedAction === SELECT_ITEM_ACTION ? "item" : "additionalAction";
37
+ const handleKeyboardNavigation = React.useMemo(() => {
38
+ return selectionMode === "item"
39
+ ? // Selecting items
40
+ makeItemSelectionNavigation(keyboardNavigationDepsRef)
41
+ : // Selecting actions
42
+ makeActionSelectionNavigation(keyboardNavigationDepsRef);
43
+ }, [keyboardNavigationDepsRef, selectionMode]);
44
+ const handleBlur = React.useCallback(() => {
45
+ setFocusedAction(SELECT_ITEM_ACTION);
46
+ }, []);
47
+ return { onKeyboardNavigation: handleKeyboardNavigation, onBlur: handleBlur, focusedAction, focusedItem };
48
+ }
49
+ function makeItemSelectionNavigation(depsRef) {
50
+ return makeMenuKeyboardNavigation({
51
+ onFocusPrevious: () => {
52
+ const { items, setFocusedIndex } = depsRef.current;
53
+ setFocusedIndex((currentIndex) => currentIndex === undefined || currentIndex === 0 ? items.length - 1 : currentIndex - 1);
54
+ },
55
+ onFocusNext: () => {
56
+ const { items, setFocusedIndex } = depsRef.current;
57
+ setFocusedIndex((currentIndex) => currentIndex === undefined || currentIndex === items.length - 1 ? 0 : currentIndex + 1);
58
+ },
59
+ onFocusFirst: () => {
60
+ const { setFocusedIndex } = depsRef.current;
61
+ setFocusedIndex(0);
62
+ },
63
+ onFocusLast: () => {
64
+ const { items, setFocusedIndex } = depsRef.current;
65
+ setFocusedIndex(items.length - 1);
66
+ },
67
+ onSelect: () => {
68
+ const { actionHandlers, focusedItem } = depsRef.current;
69
+ if (!focusedItem) {
70
+ return;
71
+ }
72
+ actionHandlers.selectItem(focusedItem)?.();
73
+ },
74
+ onEnterLevel: () => {
75
+ const { focusedItemAdditionalActions, setFocusedAction } = depsRef.current;
76
+ if (focusedItemAdditionalActions.length === 0) {
77
+ return;
78
+ }
79
+ setFocusedAction(focusedItemAdditionalActions[0]);
80
+ },
81
+ });
82
+ }
83
+ function makeActionSelectionNavigation(depsRef) {
84
+ return makeLinearKeyboardNavigation({
85
+ onFocusPrevious: () => {
86
+ const { focusedItemAdditionalActions, setFocusedAction } = depsRef.current;
87
+ setFocusedAction((currentAction) => {
88
+ if (currentAction === SELECT_ITEM_ACTION) {
89
+ return currentAction;
90
+ }
91
+ return (focusedItemAdditionalActions[focusedItemAdditionalActions.indexOf(currentAction) - 1] ??
92
+ focusedItemAdditionalActions.at(-1) ??
93
+ SELECT_ITEM_ACTION);
94
+ });
95
+ },
96
+ onFocusNext: () => {
97
+ const { focusedItemAdditionalActions, setFocusedAction } = depsRef.current;
98
+ setFocusedAction((currentAction) => {
99
+ if (currentAction === SELECT_ITEM_ACTION) {
100
+ return currentAction;
101
+ }
102
+ return (focusedItemAdditionalActions[focusedItemAdditionalActions.indexOf(currentAction) + 1] ??
103
+ focusedItemAdditionalActions[0] ??
104
+ SELECT_ITEM_ACTION);
105
+ });
106
+ },
107
+ onFocusFirst: () => {
108
+ const { focusedItemAdditionalActions, setFocusedAction } = depsRef.current;
109
+ setFocusedAction(focusedItemAdditionalActions[0] ?? SELECT_ITEM_ACTION);
110
+ },
111
+ onFocusLast: () => {
112
+ const { focusedItemAdditionalActions, setFocusedAction } = depsRef.current;
113
+ setFocusedAction(focusedItemAdditionalActions.at(-1) ?? SELECT_ITEM_ACTION);
114
+ },
115
+ onSelect: () => {
116
+ const { actionHandlers, focusedAction, focusedItem } = depsRef.current;
117
+ if (!focusedItem) {
118
+ return;
119
+ }
120
+ actionHandlers[focusedAction](focusedItem)?.();
121
+ },
122
+ onClose: () => {
123
+ const { setFocusedAction } = depsRef.current;
124
+ setFocusedAction(SELECT_ITEM_ACTION);
125
+ },
126
+ });
127
+ }
128
+ //# sourceMappingURL=useListWithActionsKeyboardNavigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useListWithActionsKeyboardNavigation.js","sourceRoot":"","sources":["../../../src/@ui/hooks/useListWithActionsKeyboardNavigation.ts"],"names":[],"mappings":"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"}
package/esm/index.d.ts CHANGED
@@ -112,4 +112,5 @@ export { getItemInteractiveParent, getSiblingItems, getNextSiblings, getPrevious
112
112
  export type { UiMenuProps, IUiMenuContext, IUiMenuItem, IUiMenuFocusableItem, IUiMenuStaticItem, IUiMenuStaticItemProps, IUiMenuInteractiveItem, IUiMenuInteractiveItemProps, IUiMenuGroupItem, IUiMenuGroupItemProps, IUiMenuInteractiveItemWrapperProps, IUiMenuContentItem, IUiMenuContentItemWrapperProps, IUiMenuContentItemProps, IUiMenuContentProps, IUiMenuItemProps, IUiMenuControlType, IUiMenuPluggableComponents, IUiMenuItemData, } from "./@ui/UiMenu/types.js";
113
113
  export { makeMenuKeyboardNavigation, makeLinearKeyboardNavigation, makeKeyboardNavigation, modifierNegator, } from "./@ui/@utils/keyboardNavigation.js";
114
114
  export type { IHandleActionOptions, IModifier } from "./@ui/@utils/keyboardNavigation.js";
115
+ export { useListWithActionsKeyboardNavigation, SELECT_ITEM_ACTION, } from "./@ui/hooks/useListWithActionsKeyboardNavigation.js";
115
116
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AACH,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACnF,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnF,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAC3F,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACzF,YAAY,EACR,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,aAAa,GAChB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,YAAY,EAAE,aAAa,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,YAAY,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACpF,YAAY,EACR,uBAAuB,EACvB,mCAAmC,GACtC,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,YAAY,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,YAAY,EACR,wBAAwB,EACxB,wBAAwB,EACxB,iCAAiC,GACpC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,wCAAwC,EAAE,MAAM,sEAAsE,CAAC;AAChI,OAAO,EACH,mBAAmB,EACnB,mCAAmC,GACtC,MAAM,iEAAiE,CAAC;AACzE,YAAY,EACR,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,wBAAwB,EACxB,yBAAyB,EACzB,6BAA6B,GAChC,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACH,4BAA4B,EAC5B,mCAAmC,GACtC,MAAM,kEAAkE,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,6DAA6D,CAAC;AACtG,OAAO,EAAE,mBAAmB,EAAE,MAAM,yDAAyD,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AAChG,OAAO,EACH,wBAAwB,EACxB,+BAA+B,GAClC,MAAM,8DAA8D,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4DAA4D,CAAC;AACpG,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EACH,wBAAwB,EACxB,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,0BAA0B,EAC1B,gBAAgB,EAChB,QAAQ,EACR,OAAO,EACP,mBAAmB,EACnB,kBAAkB,EAClB,2BAA2B,GAC9B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACR,WAAW,EACX,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,gBAAgB,EAChB,qBAAqB,EACrB,kCAAkC,EAClC,kBAAkB,EAClB,8BAA8B,EAC9B,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,0BAA0B,EAC1B,eAAe,GAClB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACH,0BAA0B,EAC1B,4BAA4B,EAC5B,sBAAsB,EACtB,eAAe,GAClB,MAAM,oCAAoC,CAAC;AAC5C,YAAY,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/esm/index.js CHANGED
@@ -96,4 +96,5 @@ export { DefaultUiMenuGroupItem } from "./@ui/UiMenu/components/defaults/Default
96
96
  export { typedUiMenuContextStore, getSelectedMenuId } from "./@ui/UiMenu/context.js";
97
97
  export { getItemInteractiveParent, getSiblingItems, getNextSiblings, getPreviousSiblings, getClosestFocusableSibling, unwrapGroupItems, findItem, getItem, findInteractiveItem, getInteractiveItem, getItemsByInteractiveParent, } from "./@ui/UiMenu/itemUtils.js";
98
98
  export { makeMenuKeyboardNavigation, makeLinearKeyboardNavigation, makeKeyboardNavigation, modifierNegator, } from "./@ui/@utils/keyboardNavigation.js";
99
+ export { useListWithActionsKeyboardNavigation, SELECT_ITEM_ACTION, } from "./@ui/hooks/useListWithActionsKeyboardNavigation.js";
99
100
  //# sourceMappingURL=index.js.map
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC;;;;;;;;GAQG;AACH,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACnF,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAGnF,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAUtD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AAKpF,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAO/D,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,wCAAwC,EAAE,MAAM,sEAAsE,CAAC;AAChI,OAAO,EACH,mBAAmB,EACnB,mCAAmC,GACtC,MAAM,iEAAiE,CAAC;AAWzE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACH,4BAA4B,EAC5B,mCAAmC,GACtC,MAAM,kEAAkE,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,6DAA6D,CAAC;AACtG,OAAO,EAAE,mBAAmB,EAAE,MAAM,yDAAyD,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AAChG,OAAO,EACH,wBAAwB,EACxB,+BAA+B,GAClC,MAAM,8DAA8D,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4DAA4D,CAAC;AACpG,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EACH,wBAAwB,EACxB,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,0BAA0B,EAC1B,gBAAgB,EAChB,QAAQ,EACR,OAAO,EACP,mBAAmB,EACnB,kBAAkB,EAClB,2BAA2B,GAC9B,MAAM,2BAA2B,CAAC;AAuBnC,OAAO,EACH,0BAA0B,EAC1B,4BAA4B,EAC5B,sBAAsB,EACtB,eAAe,GAClB,MAAM,oCAAoC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -135,6 +135,11 @@ export declare type ArrowOffsets = Record<string, ArrowOffset>;
135
135
  */
136
136
  export declare function AsyncList<T>(props: IAsyncListProps<T>): React_2.JSX.Element;
137
137
 
138
+ /**
139
+ * @internal
140
+ */
141
+ export declare const AutofocusOnMount: React_2.FC<React_2.HTMLProps<HTMLDivElement>>;
142
+
138
143
  /**
139
144
  * @internal
140
145
  */
@@ -5391,6 +5396,11 @@ export declare const scrollContextDefault: {
5391
5396
  */
5392
5397
  export declare const ScrollGradient: React_2.FC<IScrollGradientProps>;
5393
5398
 
5399
+ /**
5400
+ * @internal
5401
+ */
5402
+ export declare const SELECT_ITEM_ACTION = "selectItem";
5403
+
5394
5404
  /**
5395
5405
  * @internal
5396
5406
  */
@@ -6055,7 +6065,7 @@ export declare function unwrapGroupItems<T extends IUiMenuItemData = object>(ite
6055
6065
  *
6056
6066
  * @internal
6057
6067
  */
6058
- export declare const useAutofocusOnMount: (timeout?: number) => (node: HTMLElement | null) => void;
6068
+ export declare const useAutofocusOnMount: () => (node: HTMLElement | null) => void;
6059
6069
 
6060
6070
  /**
6061
6071
  * A helper hook to provide not just state/setState pair but also a debounced version of the state.
@@ -6138,6 +6148,22 @@ export declare function useInvertableSelectionStatusText<T>(selectedItems: T[],
6138
6148
  */
6139
6149
  export declare const useIsZoomed: (baseZoomLevel?: number) => boolean;
6140
6150
 
6151
+ /**
6152
+ * @internal
6153
+ */
6154
+ export declare function useListWithActionsKeyboardNavigation<Item, Action extends string>({ items, actionHandlers, getItemAdditionalActions, }: {
6155
+ items: Item[];
6156
+ actionHandlers: {
6157
+ [key in Action | typeof SELECT_ITEM_ACTION]: (item: Item) => (() => void) | undefined;
6158
+ };
6159
+ getItemAdditionalActions: (item: Item) => Action[];
6160
+ }): {
6161
+ onKeyboardNavigation: (event: React_2.KeyboardEvent<Element>) => void;
6162
+ onBlur: React_2.FocusEventHandler<Element>;
6163
+ focusedAction: "selectItem" | Action;
6164
+ focusedItem: Item;
6165
+ };
6166
+
6141
6167
  /**
6142
6168
  * Hook, testing whether screen width matches provided media query.
6143
6169
  *
@@ -1,7 +1,12 @@
1
+ import React from "react";
1
2
  /**
2
3
  * Focuses the element when it mounts.
3
4
  *
4
5
  * @internal
5
6
  */
6
- export declare const useAutofocusOnMount: (timeout?: number) => (node: HTMLElement | null) => void;
7
+ export declare const useAutofocusOnMount: () => (node: HTMLElement | null) => void;
8
+ /**
9
+ * @internal
10
+ */
11
+ export declare const AutofocusOnMount: React.FC<React.HTMLProps<HTMLDivElement>>;
7
12
  //# sourceMappingURL=useAutofocusOnMount.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAutofocusOnMount.d.ts","sourceRoot":"","sources":["../../src/utils/useAutofocusOnMount.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,aAAc,MAAM,YA6BhB,WAAW,GAAG,IAAI,SAQrD,CAAC"}
1
+ {"version":3,"file":"useAutofocusOnMount.d.ts","sourceRoot":"","sources":["../../src/utils/useAutofocusOnMount.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,eAoCI,WAAW,GAAG,IAAI,SAQrD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAItE,CAAC"}
@@ -1,34 +1,38 @@
1
1
  // (C) 2025 GoodData Corporation
2
2
  import React from "react";
3
3
  import { getFocusableElements, isElementFocusable } from "./domUtilities.js";
4
- import { useAutoupdateRef } from "@gooddata/sdk-ui";
5
4
  /**
6
5
  * Focuses the element when it mounts.
7
6
  *
8
7
  * @internal
9
8
  */
10
- export const useAutofocusOnMount = (timeout) => {
9
+ export const useAutofocusOnMount = () => {
11
10
  const [element, setElement] = React.useState(null);
12
11
  const hasFiredRef = React.useRef(false);
13
- const timeoutRef = useAutoupdateRef(timeout);
12
+ // If the element is outside of the viewport, calling focus() will not work.
13
+ // This can happen for example with floating elements, that are repositioned after they mount
14
14
  React.useEffect(() => {
15
- if (!element) {
15
+ if (!element || element.contains(document.activeElement)) {
16
16
  return undefined;
17
17
  }
18
- if (element.contains(document.activeElement)) {
19
- // Do not change focus, if the focused element is already inside the ref
20
- return undefined;
21
- }
22
- const elementToFocus = isElementFocusable(element)
23
- ? element
24
- : getFocusableElements(element).firstElement;
25
- const timeoutId = window.setTimeout(() => {
26
- elementToFocus?.focus();
27
- }, timeoutRef.current);
28
- return () => {
29
- window.clearTimeout(timeoutId);
30
- };
31
- }, [element, timeoutRef]);
18
+ const observer = new IntersectionObserver(() => {
19
+ if (!element) {
20
+ return;
21
+ }
22
+ const elementToFocus = isElementFocusable(element)
23
+ ? element
24
+ : getFocusableElements(element).firstElement;
25
+ // Focusing a newly created element sometimes fails if not done through requestAnimationFrame()
26
+ window.requestAnimationFrame(() => {
27
+ elementToFocus.focus();
28
+ if (document.activeElement === elementToFocus) {
29
+ observer.disconnect();
30
+ }
31
+ });
32
+ });
33
+ observer.observe(element);
34
+ return () => observer.disconnect();
35
+ }, [element]);
32
36
  return React.useCallback((node) => {
33
37
  if (hasFiredRef.current || !node) {
34
38
  return;
@@ -37,4 +41,11 @@ export const useAutofocusOnMount = (timeout) => {
37
41
  setElement(node);
38
42
  }, []);
39
43
  };
44
+ /**
45
+ * @internal
46
+ */
47
+ export const AutofocusOnMount = ({ ...props }) => {
48
+ const ref = useAutofocusOnMount();
49
+ return React.createElement("div", { ref: ref, ...props });
50
+ };
40
51
  //# sourceMappingURL=useAutofocusOnMount.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAutofocusOnMount.js","sourceRoot":"","sources":["../../src/utils/useAutofocusOnMount.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAgB,EAAE,EAAE;IACpD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAqB,IAAI,CAAC,CAAC;IAEvE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAE7C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YAC3C,wEAAwE;YACxE,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,CAAC;YAC9C,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC;QAEjD,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YACrC,cAAc,EAAE,KAAK,EAAE,CAAC;QAC5B,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;QAEvB,OAAO,GAAG,EAAE;YACR,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAE1B,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC,IAAwB,EAAE,EAAE;QAClD,IAAI,WAAW,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;YAC/B,OAAO;QACX,CAAC;QACD,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;QAE3B,UAAU,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC,EAAE,EAAE,CAAC,CAAC;AACX,CAAC,CAAC"}
1
+ {"version":3,"file":"useAutofocusOnMount.js","sourceRoot":"","sources":["../../src/utils/useAutofocusOnMount.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE7E;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACpC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAqB,IAAI,CAAC,CAAC;IAEvE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAExC,4EAA4E;IAC5E,6FAA6F;IAC7F,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACvD,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC,GAAG,EAAE;YAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,OAAO;YACX,CAAC;YAED,MAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,CAAC;gBAC9C,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC;YAEjD,+FAA+F;YAC/F,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE;gBAC9B,cAAc,CAAC,KAAK,EAAE,CAAC;gBAEvB,IAAI,QAAQ,CAAC,aAAa,KAAK,cAAc,EAAE,CAAC;oBAC5C,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAC1B,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE1B,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACvC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC,IAAwB,EAAE,EAAE;QAClD,IAAI,WAAW,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;YAC/B,OAAO;QACX,CAAC;QACD,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;QAE3B,UAAU,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC,EAAE,EAAE,CAAC,CAAC;AACX,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA8C,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACxF,MAAM,GAAG,GAAG,mBAAmB,EAAE,CAAC;IAElC,OAAO,6BAAK,GAAG,EAAE,GAAG,KAAM,KAAK,GAAI,CAAC;AACxC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-kit",
3
- "version": "10.28.0-alpha.73",
3
+ "version": "10.28.0-alpha.75",
4
4
  "description": "GoodData SDK - UI Building Components",
5
5
  "repository": {
6
6
  "type": "git",
@@ -75,11 +75,11 @@
75
75
  "@codemirror/autocomplete": "^6.18.6",
76
76
  "@lezer/highlight": "~1.2.1",
77
77
  "@codemirror/commands": "~6.8.1",
78
- "@gooddata/sdk-backend-spi": "10.28.0-alpha.73",
79
- "@gooddata/sdk-model": "10.28.0-alpha.73",
80
- "@gooddata/sdk-ui": "10.28.0-alpha.73",
81
- "@gooddata/util": "10.28.0-alpha.73",
82
- "@gooddata/sdk-ui-theme-provider": "10.28.0-alpha.73"
78
+ "@gooddata/sdk-backend-spi": "10.28.0-alpha.75",
79
+ "@gooddata/sdk-ui": "10.28.0-alpha.75",
80
+ "@gooddata/sdk-ui-theme-provider": "10.28.0-alpha.75",
81
+ "@gooddata/sdk-model": "10.28.0-alpha.75",
82
+ "@gooddata/util": "10.28.0-alpha.75"
83
83
  },
84
84
  "peerDependencies": {
85
85
  "react": "^16.10.0 || ^17.0.0 || ^18.0.0",
@@ -137,8 +137,8 @@
137
137
  "typescript": "5.3.3",
138
138
  "vitest": "3.0.8",
139
139
  "vitest-dom": "0.1.1",
140
- "@gooddata/reference-workspace": "10.28.0-alpha.73",
141
- "@gooddata/sdk-backend-mockingbird": "10.28.0-alpha.73"
140
+ "@gooddata/reference-workspace": "10.28.0-alpha.75",
141
+ "@gooddata/sdk-backend-mockingbird": "10.28.0-alpha.75"
142
142
  },
143
143
  "scripts": {
144
144
  "clean": "rm -rf ci dist esm coverage styles/css *.log tsconfig.tsbuildinfo",