@gooddata/sdk-ui-kit 10.26.0-alpha.50 → 10.26.0-alpha.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/@ui/UiListbox/UiListbox.d.ts +1 -1
- package/esm/@ui/UiListbox/UiListbox.d.ts.map +1 -1
- package/esm/@ui/UiListbox/UiListbox.js +43 -31
- package/esm/@ui/UiListbox/UiListbox.js.map +1 -1
- package/esm/@ui/UiListbox/defaults/DefaultUiListboxInteractiveItemComponent.d.ts +7 -0
- package/esm/@ui/UiListbox/defaults/DefaultUiListboxInteractiveItemComponent.d.ts.map +1 -0
- package/esm/@ui/UiListbox/defaults/DefaultUiListboxInteractiveItemComponent.js +16 -0
- package/esm/@ui/UiListbox/defaults/DefaultUiListboxInteractiveItemComponent.js.map +1 -0
- package/esm/@ui/UiListbox/defaults/DefaultUiListboxStaticItemComponent.d.ts +12 -0
- package/esm/@ui/UiListbox/defaults/DefaultUiListboxStaticItemComponent.d.ts.map +1 -0
- package/esm/@ui/UiListbox/defaults/DefaultUiListboxStaticItemComponent.js +18 -0
- package/esm/@ui/UiListbox/defaults/DefaultUiListboxStaticItemComponent.js.map +1 -0
- package/esm/@ui/UiListbox/defaults/firstCharacterSearch.d.ts +1 -1
- package/esm/@ui/UiListbox/defaults/firstCharacterSearch.d.ts.map +1 -1
- package/esm/@ui/UiListbox/defaults/firstCharacterSearch.js +8 -3
- package/esm/@ui/UiListbox/defaults/firstCharacterSearch.js.map +1 -1
- package/esm/@ui/UiListbox/types.d.ts +36 -13
- package/esm/@ui/UiListbox/types.d.ts.map +1 -1
- package/esm/index.d.ts +3 -2
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +2 -1
- package/esm/index.js.map +1 -1
- package/esm/sdk-ui-kit.d.ts +52 -25
- package/package.json +8 -8
- package/esm/@ui/UiListbox/defaults/DefaultUiListboxItemComponent.d.ts +0 -15
- package/esm/@ui/UiListbox/defaults/DefaultUiListboxItemComponent.d.ts.map +0 -1
- package/esm/@ui/UiListbox/defaults/DefaultUiListboxItemComponent.js +0 -31
- package/esm/@ui/UiListbox/defaults/DefaultUiListboxItemComponent.js.map +0 -1
@@ -7,5 +7,5 @@ import { UiListboxProps } from "./types.js";
|
|
7
7
|
*
|
8
8
|
* @internal
|
9
9
|
*/
|
10
|
-
export declare function UiListbox<
|
10
|
+
export declare function UiListbox<InteractiveItemData, StaticItemData>({ items, className, maxWidth, onSelect, onClose, selectedItemId, ariaAttributes, shouldKeyboardActionPreventDefault, shouldKeyboardActionStopPropagation, shouldCloseOnSelect, isDisabledFocusable, InteractiveItemComponent, StaticItemComponent, onUnhandledKeyDown, }: UiListboxProps<InteractiveItemData, StaticItemData>): React.ReactNode;
|
11
11
|
//# sourceMappingURL=UiListbox.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"UiListbox.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiListbox/UiListbox.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,
|
1
|
+
{"version":3,"file":"UiListbox.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiListbox/UiListbox.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,EAA8D,cAAc,EAAE,MAAM,YAAY,CAAC;AAGxG;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,mBAAmB,EAAE,cAAc,EAAE,EAC3D,KAAK,EACL,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,cAAc,EACd,cAAc,EAEd,kCAAkC,EAClC,mCAAmC,EACnC,mBAA0B,EAC1B,mBAA2B,EAE3B,wBAAmE,EACnE,mBAAyD,EAEzD,kBAAyC,GAC5C,EAAE,cAAc,CAAC,mBAAmB,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,SAAS,CAyKvE"}
|
@@ -5,8 +5,9 @@ import { useId } from "../../utils/useId.js";
|
|
5
5
|
import { b, e } from "./listboxBem.js";
|
6
6
|
import { makeMenuKeyboardNavigation } from "../@utils/keyboardNavigation.js";
|
7
7
|
import { useAutoupdateRef } from "@gooddata/sdk-ui";
|
8
|
-
import {
|
8
|
+
import { DefaultUiListboxInteractiveItemComponent } from "./defaults/DefaultUiListboxInteractiveItemComponent.js";
|
9
9
|
import { firstCharacterSearch } from "./defaults/firstCharacterSearch.js";
|
10
|
+
import { DefaultUiListboxStaticItemComponent } from "./defaults/DefaultUiListboxStaticItemComponent.js";
|
10
11
|
/**
|
11
12
|
* An accessible listbox component that can be navigated by keyboard.
|
12
13
|
* Usable in a <Dropdown /> component.
|
@@ -14,36 +15,44 @@ import { firstCharacterSearch } from "./defaults/firstCharacterSearch.js";
|
|
14
15
|
*
|
15
16
|
* @internal
|
16
17
|
*/
|
17
|
-
export function UiListbox({ items, className, maxWidth, onSelect, onClose, selectedItemId, ariaAttributes, shouldKeyboardActionPreventDefault, shouldKeyboardActionStopPropagation,
|
18
|
+
export function UiListbox({ items, className, maxWidth, onSelect, onClose, selectedItemId, ariaAttributes, shouldKeyboardActionPreventDefault, shouldKeyboardActionStopPropagation, shouldCloseOnSelect = true, isDisabledFocusable = false, InteractiveItemComponent = DefaultUiListboxInteractiveItemComponent, StaticItemComponent = DefaultUiListboxStaticItemComponent, onUnhandledKeyDown = firstCharacterSearch, }) {
|
19
|
+
const isItemFocusable = React.useCallback((item) => {
|
20
|
+
if (!item || item.type !== "interactive") {
|
21
|
+
return false;
|
22
|
+
}
|
23
|
+
return isDisabledFocusable || !item.isDisabled;
|
24
|
+
}, [isDisabledFocusable]);
|
18
25
|
const [focusedIndex, setFocusedIndex] = React.useState(() => {
|
19
|
-
// First try to find the selected item if it's
|
20
|
-
const selectedIndex = items.findIndex((item) => item.id === selectedItemId &&
|
26
|
+
// First try to find the selected item if it's focusable
|
27
|
+
const selectedIndex = items.findIndex((item) => item.id === selectedItemId && isItemFocusable(item));
|
21
28
|
if (selectedIndex >= 0) {
|
22
29
|
return selectedIndex;
|
23
30
|
}
|
24
|
-
// Otherwise find the first
|
25
|
-
const
|
26
|
-
return
|
31
|
+
// Otherwise find the first focusable item
|
32
|
+
const firstFocusableIndex = items.findIndex(isItemFocusable);
|
33
|
+
return firstFocusableIndex >= 0 ? firstFocusableIndex : undefined;
|
27
34
|
});
|
28
35
|
const itemRefs = React.useRef([]);
|
29
36
|
// Update refs array size when items change. The actual refs are updated during render.
|
30
37
|
React.useEffect(() => {
|
31
38
|
itemRefs.current = itemRefs.current.slice(0, items.length);
|
32
39
|
}, [items]);
|
40
|
+
const focusedItem = focusedIndex == null ? undefined : items[focusedIndex];
|
41
|
+
const focusedItemNode = focusedIndex == null ? undefined : itemRefs.current[focusedIndex];
|
33
42
|
// Scroll focused item into view
|
34
43
|
React.useEffect(() => {
|
35
|
-
|
36
|
-
|
37
|
-
focusedItem.scrollIntoView({ block: "nearest" });
|
44
|
+
if (!focusedItemNode) {
|
45
|
+
return;
|
38
46
|
}
|
39
|
-
|
47
|
+
focusedItemNode.scrollIntoView({ block: "nearest" });
|
48
|
+
}, [focusedItemNode]);
|
40
49
|
const handleSelectItem = React.useCallback((item) => {
|
41
50
|
if (!item || item.isDisabled) {
|
42
51
|
return;
|
43
52
|
}
|
44
53
|
onSelect?.(item);
|
45
|
-
onClose?.();
|
46
|
-
}, [onClose, onSelect]);
|
54
|
+
shouldCloseOnSelect && onClose?.();
|
55
|
+
}, [onClose, onSelect, shouldCloseOnSelect]);
|
47
56
|
const contextRef = useAutoupdateRef({
|
48
57
|
itemRefs,
|
49
58
|
focusedIndex,
|
@@ -52,15 +61,16 @@ export function UiListbox({ items, className, maxWidth, onSelect, onClose, selec
|
|
52
61
|
onSelect: handleSelectItem,
|
53
62
|
setFocusedIndex,
|
54
63
|
selectedItemId,
|
64
|
+
isItemFocusable,
|
55
65
|
});
|
56
66
|
const handleKeyDown = React.useMemo(() => makeMenuKeyboardNavigation({
|
57
67
|
shouldPreventDefault: shouldKeyboardActionPreventDefault,
|
58
68
|
shouldStopPropagation: shouldKeyboardActionStopPropagation,
|
59
69
|
onFocusPrevious: () => {
|
60
70
|
setFocusedIndex((prevIndex) => {
|
61
|
-
let newIndex = prevIndex - 1;
|
62
|
-
// Skip
|
63
|
-
while (newIndex >= 0 && items[newIndex]
|
71
|
+
let newIndex = (prevIndex ?? 0) - 1;
|
72
|
+
// Skip non-focusable items
|
73
|
+
while (newIndex >= 0 && !isItemFocusable(items[newIndex])) {
|
64
74
|
newIndex--;
|
65
75
|
}
|
66
76
|
return newIndex >= 0 ? newIndex : prevIndex;
|
@@ -68,31 +78,31 @@ export function UiListbox({ items, className, maxWidth, onSelect, onClose, selec
|
|
68
78
|
},
|
69
79
|
onFocusNext: () => {
|
70
80
|
setFocusedIndex((prevIndex) => {
|
71
|
-
let newIndex = prevIndex + 1;
|
72
|
-
// Skip
|
73
|
-
while (newIndex < items.length && items[newIndex]
|
81
|
+
let newIndex = (prevIndex ?? 0) + 1;
|
82
|
+
// Skip non-focusable items
|
83
|
+
while (newIndex < items.length && !isItemFocusable(items[newIndex])) {
|
74
84
|
newIndex++;
|
75
85
|
}
|
76
86
|
return newIndex < items.length ? newIndex : prevIndex;
|
77
87
|
});
|
78
88
|
},
|
79
89
|
onFocusFirst: () => {
|
80
|
-
// Find the first
|
81
|
-
const
|
82
|
-
setFocusedIndex(
|
90
|
+
// Find the first focusable item
|
91
|
+
const firstFocusableIndex = items.findIndex(isItemFocusable);
|
92
|
+
setFocusedIndex(firstFocusableIndex >= 0 ? firstFocusableIndex : undefined);
|
83
93
|
},
|
84
94
|
onFocusLast: () => {
|
85
|
-
// Find the last
|
95
|
+
// Find the last focusable item
|
86
96
|
for (let i = items.length - 1; i >= 0; i--) {
|
87
|
-
if (
|
97
|
+
if (isItemFocusable(items[i])) {
|
88
98
|
setFocusedIndex(i);
|
89
99
|
return;
|
90
100
|
}
|
91
101
|
}
|
92
|
-
setFocusedIndex(
|
102
|
+
setFocusedIndex(undefined);
|
93
103
|
},
|
94
104
|
onSelect: () => {
|
95
|
-
handleSelectItem(
|
105
|
+
focusedItem && focusedItem.type === "interactive" && handleSelectItem(focusedItem);
|
96
106
|
},
|
97
107
|
onClose: () => {
|
98
108
|
onClose?.();
|
@@ -102,8 +112,9 @@ export function UiListbox({ items, className, maxWidth, onSelect, onClose, selec
|
|
102
112
|
},
|
103
113
|
}), [
|
104
114
|
contextRef,
|
105
|
-
|
115
|
+
focusedItem,
|
106
116
|
handleSelectItem,
|
117
|
+
isItemFocusable,
|
107
118
|
items,
|
108
119
|
onClose,
|
109
120
|
onUnhandledKeyDown,
|
@@ -112,10 +123,11 @@ export function UiListbox({ items, className, maxWidth, onSelect, onClose, selec
|
|
112
123
|
]);
|
113
124
|
const listboxId = useId();
|
114
125
|
return (React.createElement("div", { className: cx(b(), className), style: { maxWidth } },
|
115
|
-
React.createElement("ul", {
|
116
|
-
React.createElement(
|
126
|
+
React.createElement("ul", { className: e("items"), tabIndex: 0, onKeyDown: handleKeyDown, "aria-activedescendant": makeItemId(listboxId, focusedItem), ...ariaAttributes, role: "listbox" }, items.map((item, index) => item.type === "interactive" ? (React.createElement("li", { key: item.id, ref: (el) => (itemRefs.current[index] = el), role: "option", "aria-selected": item.id === selectedItemId, "aria-disabled": item.isDisabled, tabIndex: -1, id: makeItemId(listboxId, item) },
|
127
|
+
React.createElement(InteractiveItemComponent, { onSelect: () => {
|
117
128
|
handleSelectItem(item);
|
118
|
-
}, item: item, isFocused: index === focusedIndex, isSelected: item.id === selectedItemId })))))
|
129
|
+
}, item: item, isFocused: index === focusedIndex, isSelected: item.id === selectedItemId }))) : (React.createElement("li", { key: item.id ?? index, ref: (el) => (itemRefs.current[index] = el) },
|
130
|
+
React.createElement(StaticItemComponent, { item: item })))))));
|
119
131
|
}
|
120
|
-
const makeItemId = (listboxId, item) => `item-${listboxId}-${item.id}
|
132
|
+
const makeItemId = (listboxId, item) => item && item.type === "interactive" ? `item-${listboxId}-${item.id}` : undefined;
|
121
133
|
//# sourceMappingURL=UiListbox.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"UiListbox.js","sourceRoot":"","sources":["../../../src/@ui/UiListbox/UiListbox.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"UiListbox.js","sourceRoot":"","sources":["../../../src/@ui/UiListbox/UiListbox.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import React from "react";
|
2
|
+
import { UiListboxInteractiveItemProps } from "../types.js";
|
3
|
+
/**
|
4
|
+
* @internal
|
5
|
+
*/
|
6
|
+
export declare function DefaultUiListboxInteractiveItemComponent<T>({ item, isFocused, isSelected, onSelect, }: UiListboxInteractiveItemProps<T>): React.ReactNode;
|
7
|
+
//# sourceMappingURL=DefaultUiListboxInteractiveItemComponent.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"DefaultUiListboxInteractiveItemComponent.d.ts","sourceRoot":"","sources":["../../../../src/@ui/UiListbox/defaults/DefaultUiListboxInteractiveItemComponent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAE5D;;GAEG;AACH,wBAAgB,wCAAwC,CAAC,CAAC,EAAE,EACxD,IAAI,EACJ,SAAS,EACT,UAAU,EACV,QAAQ,GACX,EAAE,6BAA6B,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAepD"}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
2
|
+
import React from "react";
|
3
|
+
import { e } from "../listboxBem.js";
|
4
|
+
import { ShortenedText } from "../../../ShortenedText/index.js";
|
5
|
+
/**
|
6
|
+
* @internal
|
7
|
+
*/
|
8
|
+
export function DefaultUiListboxInteractiveItemComponent({ item, isFocused, isSelected, onSelect, }) {
|
9
|
+
return (React.createElement("div", { className: e("item", {
|
10
|
+
isFocused,
|
11
|
+
isSelected,
|
12
|
+
isDisabled: !!item.isDisabled,
|
13
|
+
}), onClick: item.isDisabled ? undefined : onSelect },
|
14
|
+
React.createElement(ShortenedText, { className: e("item-title"), ellipsisPosition: "end" }, item.stringTitle)));
|
15
|
+
}
|
16
|
+
//# sourceMappingURL=DefaultUiListboxInteractiveItemComponent.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"DefaultUiListboxInteractiveItemComponent.js","sourceRoot":"","sources":["../../../../src/@ui/UiListbox/defaults/DefaultUiListboxInteractiveItemComponent.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,kBAAkB,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGhE;;GAEG;AACH,MAAM,UAAU,wCAAwC,CAAI,EACxD,IAAI,EACJ,SAAS,EACT,UAAU,EACV,QAAQ,GACuB;IAC/B,OAAO,CACH,6BACI,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;YACjB,SAAS;YACT,UAAU;YACV,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU;SAChC,CAAC,EACF,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;QAE/C,oBAAC,aAAa,IAAC,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,gBAAgB,EAAE,KAAK,IAC7D,IAAI,CAAC,WAAW,CACL,CACd,CACT,CAAC;AACN,CAAC"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import React from "react";
|
2
|
+
import { IUiListboxStaticItem, UiListboxStaticItemProps } from "../types.js";
|
3
|
+
/**
|
4
|
+
* @internal
|
5
|
+
*/
|
6
|
+
export declare const separatorStaticItem: IUiListboxStaticItem<React.ReactNode>;
|
7
|
+
/**
|
8
|
+
* By default just renders the data.
|
9
|
+
* @internal
|
10
|
+
*/
|
11
|
+
export declare function DefaultUiListboxStaticItemComponent<T>({ item, }: UiListboxStaticItemProps<T>): React.ReactNode;
|
12
|
+
//# sourceMappingURL=DefaultUiListboxStaticItemComponent.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"DefaultUiListboxStaticItemComponent.d.ts","sourceRoot":"","sources":["../../../../src/@ui/UiListbox/defaults/DefaultUiListboxStaticItemComponent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE7E;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,oBAAoB,CAAC,KAAK,CAAC,SAAS,CAGrE,CAAC;AAEF;;;GAGG;AACH,wBAAgB,mCAAmC,CAAC,CAAC,EAAE,EACnD,IAAI,GACP,EAAE,wBAAwB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAE/C"}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
2
|
+
import React from "react";
|
3
|
+
import { Separator } from "../../../List/index.js";
|
4
|
+
/**
|
5
|
+
* @internal
|
6
|
+
*/
|
7
|
+
export const separatorStaticItem = {
|
8
|
+
data: React.createElement(Separator, null),
|
9
|
+
type: "static",
|
10
|
+
};
|
11
|
+
/**
|
12
|
+
* By default just renders the data.
|
13
|
+
* @internal
|
14
|
+
*/
|
15
|
+
export function DefaultUiListboxStaticItemComponent({ item, }) {
|
16
|
+
return item.data;
|
17
|
+
}
|
18
|
+
//# sourceMappingURL=DefaultUiListboxStaticItemComponent.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"DefaultUiListboxStaticItemComponent.js","sourceRoot":"","sources":["../../../../src/@ui/UiListbox/defaults/DefaultUiListboxStaticItemComponent.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGnD;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAA0C;IACtE,IAAI,EAAE,oBAAC,SAAS,OAAG;IACnB,IAAI,EAAE,QAAQ;CACjB,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,mCAAmC,CAAI,EACnD,IAAI,GACsB;IAC1B,OAAO,IAAI,CAAC,IAAuB,CAAC;AACxC,CAAC"}
|
@@ -4,5 +4,5 @@ import { IListboxContext } from "../types.js";
|
|
4
4
|
* This is a basic implementation of moving focus to items on character key press.
|
5
5
|
* Having this functionality is recommended by the listbox spec.
|
6
6
|
*/
|
7
|
-
export declare function firstCharacterSearch(event: React.KeyboardEvent, { items, focusedIndex, setFocusedIndex }: IListboxContext<
|
7
|
+
export declare function firstCharacterSearch<InteractiveItemData, StaticItemData>(event: React.KeyboardEvent, { items, focusedIndex, setFocusedIndex, isItemFocusable, }: IListboxContext<InteractiveItemData, StaticItemData>): void;
|
8
8
|
//# sourceMappingURL=firstCharacterSearch.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"firstCharacterSearch.d.ts","sourceRoot":"","sources":["../../../../src/@ui/UiListbox/defaults/firstCharacterSearch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;;GAGG;AACH,wBAAgB,oBAAoB,
|
1
|
+
{"version":3,"file":"firstCharacterSearch.d.ts","sourceRoot":"","sources":["../../../../src/@ui/UiListbox/defaults/firstCharacterSearch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,mBAAmB,EAAE,cAAc,EACpE,KAAK,EAAE,KAAK,CAAC,aAAa,EAC1B,EACI,KAAK,EACL,YAAY,EACZ,eAAe,EACf,eAAe,GAClB,EAAE,eAAe,CAAC,mBAAmB,EAAE,cAAc,CAAC,QAgC1D"}
|
@@ -3,18 +3,23 @@
|
|
3
3
|
* This is a basic implementation of moving focus to items on character key press.
|
4
4
|
* Having this functionality is recommended by the listbox spec.
|
5
5
|
*/
|
6
|
-
export function firstCharacterSearch(event, { items, focusedIndex, setFocusedIndex }) {
|
6
|
+
export function firstCharacterSearch(event, { items, focusedIndex, setFocusedIndex, isItemFocusable, }) {
|
7
7
|
const char = event.key.toLowerCase();
|
8
8
|
if (char.length !== 1) {
|
9
9
|
return;
|
10
10
|
}
|
11
|
-
const itemIndex = items.findIndex((item, index) => index > focusedIndex &&
|
11
|
+
const itemIndex = items.findIndex((item, index) => index > focusedIndex &&
|
12
|
+
isItemFocusable(item) &&
|
13
|
+
item.type === "interactive" &&
|
14
|
+
item.stringTitle.toLowerCase().startsWith(char));
|
12
15
|
if (itemIndex !== -1) {
|
13
16
|
setFocusedIndex(itemIndex);
|
14
17
|
return;
|
15
18
|
}
|
16
19
|
// If not found after the current index, start from the beginning
|
17
|
-
const fromStartIndex = items.findIndex((item) => item
|
20
|
+
const fromStartIndex = items.findIndex((item) => isItemFocusable(item) &&
|
21
|
+
item.type === "interactive" &&
|
22
|
+
item.stringTitle.toLowerCase().startsWith(char));
|
18
23
|
if (fromStartIndex !== -1) {
|
19
24
|
setFocusedIndex(fromStartIndex);
|
20
25
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"firstCharacterSearch.js","sourceRoot":"","sources":["../../../../src/@ui/UiListbox/defaults/firstCharacterSearch.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAMhC;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAChC,KAA0B,EAC1B,
|
1
|
+
{"version":3,"file":"firstCharacterSearch.js","sourceRoot":"","sources":["../../../../src/@ui/UiListbox/defaults/firstCharacterSearch.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAMhC;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAChC,KAA0B,EAC1B,EACI,KAAK,EACL,YAAY,EACZ,eAAe,EACf,eAAe,GACoC;IAEvD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;IAErC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO;IACX,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAC7B,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACZ,KAAK,GAAG,YAAY;QACpB,eAAe,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,IAAI,KAAK,aAAa;QAC3B,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CACtD,CAAC;IAEF,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;QACnB,eAAe,CAAC,SAAS,CAAC,CAAC;QAC3B,OAAO;IACX,CAAC;IAED,iEAAiE;IACjE,MAAM,cAAc,GAAG,KAAK,CAAC,SAAS,CAClC,CAAC,IAAI,EAAE,EAAE,CACL,eAAe,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,IAAI,KAAK,aAAa;QAC3B,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CACtD,CAAC;IAEF,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;QACxB,eAAe,CAAC,cAAc,CAAC,CAAC;IACpC,CAAC;AACL,CAAC"}
|
@@ -3,7 +3,16 @@ import { IDropdownBodyRenderProps } from "../../Dropdown/index.js";
|
|
3
3
|
/**
|
4
4
|
* @internal
|
5
5
|
*/
|
6
|
-
export interface
|
6
|
+
export interface IUiListboxStaticItem<T> {
|
7
|
+
type: "static";
|
8
|
+
id?: string;
|
9
|
+
data: T;
|
10
|
+
}
|
11
|
+
/**
|
12
|
+
* @internal
|
13
|
+
*/
|
14
|
+
export interface IUiListboxInteractiveItem<T> {
|
15
|
+
type: "interactive";
|
7
16
|
id: string;
|
8
17
|
stringTitle: string;
|
9
18
|
isDisabled?: boolean;
|
@@ -12,8 +21,12 @@ export interface IUiListboxItem<T> {
|
|
12
21
|
/**
|
13
22
|
* @internal
|
14
23
|
*/
|
15
|
-
export
|
16
|
-
|
24
|
+
export type IUiListboxItem<InteractiveItemData, StaticItemData = React.ReactNode> = IUiListboxStaticItem<StaticItemData> | IUiListboxInteractiveItem<InteractiveItemData>;
|
25
|
+
/**
|
26
|
+
* @internal
|
27
|
+
*/
|
28
|
+
export interface UiListboxInteractiveItemProps<T> {
|
29
|
+
item: IUiListboxInteractiveItem<T>;
|
17
30
|
isFocused: boolean;
|
18
31
|
isSelected: boolean;
|
19
32
|
onSelect: () => void;
|
@@ -21,29 +34,39 @@ export interface UiListboxItemProps<T> {
|
|
21
34
|
/**
|
22
35
|
* @internal
|
23
36
|
*/
|
24
|
-
export interface
|
25
|
-
|
37
|
+
export interface UiListboxStaticItemProps<T> {
|
38
|
+
item: IUiListboxStaticItem<T>;
|
39
|
+
}
|
40
|
+
/**
|
41
|
+
* @internal
|
42
|
+
*/
|
43
|
+
export interface IListboxContext<InteractiveItemData, StaticItemData = React.ReactNode> {
|
44
|
+
items: IUiListboxItem<InteractiveItemData, StaticItemData>[];
|
26
45
|
itemRefs: React.MutableRefObject<(HTMLLIElement | null)[]>;
|
27
|
-
onSelect: (item:
|
46
|
+
onSelect: (item: IUiListboxInteractiveItem<InteractiveItemData>) => void;
|
28
47
|
onClose?: () => void;
|
29
|
-
selectedItemId
|
30
|
-
focusedIndex: number;
|
48
|
+
selectedItemId: string | undefined;
|
49
|
+
focusedIndex: number | undefined;
|
31
50
|
setFocusedIndex: React.Dispatch<React.SetStateAction<number>>;
|
51
|
+
isItemFocusable: (item: IUiListboxItem<InteractiveItemData, StaticItemData>) => boolean;
|
32
52
|
}
|
33
53
|
/**
|
34
54
|
* @internal
|
35
55
|
*/
|
36
|
-
export interface UiListboxProps<
|
37
|
-
items: IUiListboxItem<
|
56
|
+
export interface UiListboxProps<InteractiveItemData, StaticItemData = React.ReactNode> {
|
57
|
+
items: IUiListboxItem<InteractiveItemData, StaticItemData>[];
|
38
58
|
className?: string;
|
39
59
|
maxWidth?: number;
|
40
|
-
onSelect?: (item:
|
60
|
+
onSelect?: (item: IUiListboxInteractiveItem<InteractiveItemData>) => void;
|
41
61
|
onClose?: () => void;
|
42
|
-
onUnhandledKeyDown?: (event: React.KeyboardEvent, context: IListboxContext<
|
62
|
+
onUnhandledKeyDown?: (event: React.KeyboardEvent, context: IListboxContext<InteractiveItemData, StaticItemData>) => void;
|
43
63
|
selectedItemId?: string;
|
44
|
-
|
64
|
+
InteractiveItemComponent?: React.ComponentType<UiListboxInteractiveItemProps<InteractiveItemData>>;
|
65
|
+
StaticItemComponent?: React.ComponentType<UiListboxStaticItemProps<StaticItemData>>;
|
45
66
|
shouldKeyboardActionPreventDefault?: boolean;
|
46
67
|
shouldKeyboardActionStopPropagation?: boolean;
|
68
|
+
shouldCloseOnSelect?: boolean;
|
69
|
+
isDisabledFocusable?: boolean;
|
47
70
|
ariaAttributes: IDropdownBodyRenderProps["ariaAttributes"];
|
48
71
|
}
|
49
72
|
//# sourceMappingURL=types.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiListbox/types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiListbox/types.ts"],"names":[],"mappings":"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"}
|
package/esm/index.d.ts
CHANGED
@@ -92,6 +92,7 @@ export type { UiPagedVirtualListProps, UiPagedVirtualListSkeletonItemProps, } fr
|
|
92
92
|
export { UiFocusTrap } from "./@ui/UiFocusTrap/UiFocusTrap.js";
|
93
93
|
export type { UiFocusTrapProps } from "./@ui/UiFocusTrap/UiFocusTrap.js";
|
94
94
|
export { UiListbox } from "./@ui/UiListbox/UiListbox.js";
|
95
|
-
export {
|
96
|
-
export
|
95
|
+
export { DefaultUiListboxInteractiveItemComponent } from "./@ui/UiListbox/defaults/DefaultUiListboxInteractiveItemComponent.js";
|
96
|
+
export { separatorStaticItem, DefaultUiListboxStaticItemComponent, } from "./@ui/UiListbox/defaults/DefaultUiListboxStaticItemComponent.js";
|
97
|
+
export type { UiListboxProps, IListboxContext, IUiListboxItem, IUiListboxStaticItem, UiListboxStaticItemProps, IUiListboxInteractiveItem, UiListboxInteractiveItemProps, } from "./@ui/UiListbox/types.js";
|
97
98
|
//# sourceMappingURL=index.d.ts.map
|
package/esm/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/esm/index.js
CHANGED
@@ -81,5 +81,6 @@ export { UiSkeleton } from "./@ui/UiSkeleton/UiSkeleton.js";
|
|
81
81
|
export { UiPagedVirtualList } from "./@ui/UiPagedVirtualList/UiPagedVirtualList.js";
|
82
82
|
export { UiFocusTrap } from "./@ui/UiFocusTrap/UiFocusTrap.js";
|
83
83
|
export { UiListbox } from "./@ui/UiListbox/UiListbox.js";
|
84
|
-
export {
|
84
|
+
export { DefaultUiListboxInteractiveItemComponent } from "./@ui/UiListbox/defaults/DefaultUiListboxInteractiveItemComponent.js";
|
85
|
+
export { separatorStaticItem, DefaultUiListboxStaticItemComponent, } from "./@ui/UiListbox/defaults/DefaultUiListboxStaticItemComponent.js";
|
85
86
|
//# 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,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,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;AAE/D,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,
|
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,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,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;AAE/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"}
|
package/esm/sdk-ui-kit.d.ts
CHANGED
@@ -548,7 +548,13 @@ export declare const defaultThemeMetadataObject: IThemeDefinition;
|
|
548
548
|
/**
|
549
549
|
* @internal
|
550
550
|
*/
|
551
|
-
export declare function
|
551
|
+
export declare function DefaultUiListboxInteractiveItemComponent<T>({ item, isFocused, isSelected, onSelect, }: UiListboxInteractiveItemProps<T>): React_2.ReactNode;
|
552
|
+
|
553
|
+
/**
|
554
|
+
* By default just renders the data.
|
555
|
+
* @internal
|
556
|
+
*/
|
557
|
+
export declare function DefaultUiListboxStaticItemComponent<T>({ item, }: UiListboxStaticItemProps<T>): React_2.ReactNode;
|
552
558
|
|
553
559
|
/**
|
554
560
|
* @internal
|
@@ -2840,14 +2846,15 @@ export declare interface ILegacySingleSelectListProps<T> {
|
|
2840
2846
|
/**
|
2841
2847
|
* @internal
|
2842
2848
|
*/
|
2843
|
-
export declare interface IListboxContext<
|
2844
|
-
items: IUiListboxItem<
|
2849
|
+
export declare interface IListboxContext<InteractiveItemData, StaticItemData = React_2.ReactNode> {
|
2850
|
+
items: IUiListboxItem<InteractiveItemData, StaticItemData>[];
|
2845
2851
|
itemRefs: React_2.MutableRefObject<(HTMLLIElement | null)[]>;
|
2846
|
-
onSelect: (item:
|
2852
|
+
onSelect: (item: IUiListboxInteractiveItem<InteractiveItemData>) => void;
|
2847
2853
|
onClose?: () => void;
|
2848
|
-
selectedItemId
|
2849
|
-
focusedIndex: number;
|
2854
|
+
selectedItemId: string | undefined;
|
2855
|
+
focusedIndex: number | undefined;
|
2850
2856
|
setFocusedIndex: React_2.Dispatch<React_2.SetStateAction<number>>;
|
2857
|
+
isItemFocusable: (item: IUiListboxItem<InteractiveItemData, StaticItemData>) => boolean;
|
2851
2858
|
}
|
2852
2859
|
|
2853
2860
|
/**
|
@@ -4278,13 +4285,28 @@ export declare interface IUiChipAccessibilityConfig extends IAccessibilityConfig
|
|
4278
4285
|
/**
|
4279
4286
|
* @internal
|
4280
4287
|
*/
|
4281
|
-
export declare interface
|
4288
|
+
export declare interface IUiListboxInteractiveItem<T> {
|
4289
|
+
type: "interactive";
|
4282
4290
|
id: string;
|
4283
4291
|
stringTitle: string;
|
4284
4292
|
isDisabled?: boolean;
|
4285
4293
|
data: T;
|
4286
4294
|
}
|
4287
4295
|
|
4296
|
+
/**
|
4297
|
+
* @internal
|
4298
|
+
*/
|
4299
|
+
export declare type IUiListboxItem<InteractiveItemData, StaticItemData = React_2.ReactNode> = IUiListboxStaticItem<StaticItemData> | IUiListboxInteractiveItem<InteractiveItemData>;
|
4300
|
+
|
4301
|
+
/**
|
4302
|
+
* @internal
|
4303
|
+
*/
|
4304
|
+
export declare interface IUiListboxStaticItem<T> {
|
4305
|
+
type: "static";
|
4306
|
+
id?: string;
|
4307
|
+
data: T;
|
4308
|
+
}
|
4309
|
+
|
4288
4310
|
/**
|
4289
4311
|
* @internal
|
4290
4312
|
*/
|
@@ -4506,11 +4528,6 @@ export declare const LoadingSpinner: React_2.FC<ILoadingSpinner>;
|
|
4506
4528
|
*/
|
4507
4529
|
export declare const LocaleSetting: React_2.VFC<ILocaleSettingProps>;
|
4508
4530
|
|
4509
|
-
/**
|
4510
|
-
* @internal
|
4511
|
-
*/
|
4512
|
-
export declare const makeSeparatorItem: () => IUiListboxItem<typeof separatorItemSymbol>;
|
4513
|
-
|
4514
4531
|
/**
|
4515
4532
|
* @internal
|
4516
4533
|
*/
|
@@ -4875,11 +4892,6 @@ export declare type SelectedTime = {
|
|
4875
4892
|
*/
|
4876
4893
|
export declare const Separator: React_2.FC;
|
4877
4894
|
|
4878
|
-
/**
|
4879
|
-
* @internal
|
4880
|
-
*/
|
4881
|
-
export declare const separatorItemSymbol: unique symbol;
|
4882
|
-
|
4883
4895
|
/**
|
4884
4896
|
* @internal
|
4885
4897
|
*/
|
@@ -4893,6 +4905,11 @@ export declare type Separators = {
|
|
4893
4905
|
decimal: string;
|
4894
4906
|
};
|
4895
4907
|
|
4908
|
+
/**
|
4909
|
+
* @internal
|
4910
|
+
*/
|
4911
|
+
export declare const separatorStaticItem: IUiListboxStaticItem<React_2.ReactNode>;
|
4912
|
+
|
4896
4913
|
/**
|
4897
4914
|
* @internal
|
4898
4915
|
*/
|
@@ -5343,13 +5360,13 @@ export declare interface UiIconProps {
|
|
5343
5360
|
*
|
5344
5361
|
* @internal
|
5345
5362
|
*/
|
5346
|
-
export declare function UiListbox<
|
5363
|
+
export declare function UiListbox<InteractiveItemData, StaticItemData>({ items, className, maxWidth, onSelect, onClose, selectedItemId, ariaAttributes, shouldKeyboardActionPreventDefault, shouldKeyboardActionStopPropagation, shouldCloseOnSelect, isDisabledFocusable, InteractiveItemComponent, StaticItemComponent, onUnhandledKeyDown, }: UiListboxProps<InteractiveItemData, StaticItemData>): React_2.ReactNode;
|
5347
5364
|
|
5348
5365
|
/**
|
5349
5366
|
* @internal
|
5350
5367
|
*/
|
5351
|
-
export declare interface
|
5352
|
-
item:
|
5368
|
+
export declare interface UiListboxInteractiveItemProps<T> {
|
5369
|
+
item: IUiListboxInteractiveItem<T>;
|
5353
5370
|
isFocused: boolean;
|
5354
5371
|
isSelected: boolean;
|
5355
5372
|
onSelect: () => void;
|
@@ -5358,20 +5375,30 @@ export declare interface UiListboxItemProps<T> {
|
|
5358
5375
|
/**
|
5359
5376
|
* @internal
|
5360
5377
|
*/
|
5361
|
-
export declare interface UiListboxProps<
|
5362
|
-
items: IUiListboxItem<
|
5378
|
+
export declare interface UiListboxProps<InteractiveItemData, StaticItemData = React_2.ReactNode> {
|
5379
|
+
items: IUiListboxItem<InteractiveItemData, StaticItemData>[];
|
5363
5380
|
className?: string;
|
5364
5381
|
maxWidth?: number;
|
5365
|
-
onSelect?: (item:
|
5382
|
+
onSelect?: (item: IUiListboxInteractiveItem<InteractiveItemData>) => void;
|
5366
5383
|
onClose?: () => void;
|
5367
|
-
onUnhandledKeyDown?: (event: React_2.KeyboardEvent, context: IListboxContext<
|
5384
|
+
onUnhandledKeyDown?: (event: React_2.KeyboardEvent, context: IListboxContext<InteractiveItemData, StaticItemData>) => void;
|
5368
5385
|
selectedItemId?: string;
|
5369
|
-
|
5386
|
+
InteractiveItemComponent?: React_2.ComponentType<UiListboxInteractiveItemProps<InteractiveItemData>>;
|
5387
|
+
StaticItemComponent?: React_2.ComponentType<UiListboxStaticItemProps<StaticItemData>>;
|
5370
5388
|
shouldKeyboardActionPreventDefault?: boolean;
|
5371
5389
|
shouldKeyboardActionStopPropagation?: boolean;
|
5390
|
+
shouldCloseOnSelect?: boolean;
|
5391
|
+
isDisabledFocusable?: boolean;
|
5372
5392
|
ariaAttributes: IDropdownBodyRenderProps["ariaAttributes"];
|
5373
5393
|
}
|
5374
5394
|
|
5395
|
+
/**
|
5396
|
+
* @internal
|
5397
|
+
*/
|
5398
|
+
export declare interface UiListboxStaticItemProps<T> {
|
5399
|
+
item: IUiListboxStaticItem<T>;
|
5400
|
+
}
|
5401
|
+
|
5375
5402
|
/**
|
5376
5403
|
* @internal
|
5377
5404
|
*/
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@gooddata/sdk-ui-kit",
|
3
|
-
"version": "10.26.0-alpha.
|
3
|
+
"version": "10.26.0-alpha.51",
|
4
4
|
"description": "GoodData SDK - UI Building Components",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
@@ -69,11 +69,11 @@
|
|
69
69
|
"tslib": "^2.5.0",
|
70
70
|
"uuid": "^8.3.2",
|
71
71
|
"unified": "^11.0.5",
|
72
|
-
"@gooddata/sdk-backend-spi": "10.26.0-alpha.
|
73
|
-
"@gooddata/sdk-model": "10.26.0-alpha.
|
74
|
-
"@gooddata/sdk-ui
|
75
|
-
"@gooddata/
|
76
|
-
"@gooddata/
|
72
|
+
"@gooddata/sdk-backend-spi": "10.26.0-alpha.51",
|
73
|
+
"@gooddata/sdk-model": "10.26.0-alpha.51",
|
74
|
+
"@gooddata/sdk-ui": "10.26.0-alpha.51",
|
75
|
+
"@gooddata/util": "10.26.0-alpha.51",
|
76
|
+
"@gooddata/sdk-ui-theme-provider": "10.26.0-alpha.51"
|
77
77
|
},
|
78
78
|
"peerDependencies": {
|
79
79
|
"react": "^16.10.0 || ^17.0.0 || ^18.0.0",
|
@@ -132,8 +132,8 @@
|
|
132
132
|
"typescript": "5.3.3",
|
133
133
|
"vitest": "3.0.8",
|
134
134
|
"vitest-dom": "0.1.1",
|
135
|
-
"@gooddata/
|
136
|
-
"@gooddata/
|
135
|
+
"@gooddata/sdk-backend-mockingbird": "10.26.0-alpha.51",
|
136
|
+
"@gooddata/reference-workspace": "10.26.0-alpha.51"
|
137
137
|
},
|
138
138
|
"scripts": {
|
139
139
|
"clean": "rm -rf ci dist esm coverage styles/css *.log tsconfig.tsbuildinfo",
|
@@ -1,15 +0,0 @@
|
|
1
|
-
import React from "react";
|
2
|
-
import { IUiListboxItem, UiListboxItemProps } from "../types.js";
|
3
|
-
/**
|
4
|
-
* @internal
|
5
|
-
*/
|
6
|
-
export declare const separatorItemSymbol: unique symbol;
|
7
|
-
/**
|
8
|
-
* @internal
|
9
|
-
*/
|
10
|
-
export declare const makeSeparatorItem: () => IUiListboxItem<typeof separatorItemSymbol>;
|
11
|
-
/**
|
12
|
-
* @internal
|
13
|
-
*/
|
14
|
-
export declare function DefaultUiListboxItemComponent<T>({ item, isFocused, isSelected, onSelect, }: UiListboxItemProps<T>): React.ReactNode;
|
15
|
-
//# sourceMappingURL=DefaultUiListboxItemComponent.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"DefaultUiListboxItemComponent.d.ts","sourceRoot":"","sources":["../../../../src/@ui/UiListbox/defaults/DefaultUiListboxItemComponent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,mBAAmB,eAAsB,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,iBAAiB,QAAO,eAAe,0BAA0B,CAK5E,CAAC;AAEH;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,EAC7C,IAAI,EACJ,SAAS,EACT,UAAU,EACV,QAAQ,GACX,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAiBzC"}
|
@@ -1,31 +0,0 @@
|
|
1
|
-
// (C) 2025 GoodData Corporation
|
2
|
-
import React from "react";
|
3
|
-
import { Separator } from "../../../List/index.js";
|
4
|
-
import { e } from "../listboxBem.js";
|
5
|
-
import { ShortenedText } from "../../../ShortenedText/index.js";
|
6
|
-
import { v4 as uuid } from "uuid";
|
7
|
-
/**
|
8
|
-
* @internal
|
9
|
-
*/
|
10
|
-
export const separatorItemSymbol = Symbol("separator");
|
11
|
-
/**
|
12
|
-
* @internal
|
13
|
-
*/
|
14
|
-
export const makeSeparatorItem = () => ({
|
15
|
-
id: `separator-${uuid()}`,
|
16
|
-
data: separatorItemSymbol,
|
17
|
-
stringTitle: "Separator",
|
18
|
-
isDisabled: true,
|
19
|
-
});
|
20
|
-
/**
|
21
|
-
* @internal
|
22
|
-
*/
|
23
|
-
export function DefaultUiListboxItemComponent({ item, isFocused, isSelected, onSelect, }) {
|
24
|
-
return item.data === separatorItemSymbol ? (React.createElement(Separator, null)) : (React.createElement("div", { className: e("item", {
|
25
|
-
isFocused,
|
26
|
-
isSelected,
|
27
|
-
isDisabled: !!item.isDisabled,
|
28
|
-
}), onClick: item.isDisabled ? undefined : onSelect },
|
29
|
-
React.createElement(ShortenedText, { className: e("item-title"), ellipsisPosition: "end" }, item.stringTitle)));
|
30
|
-
}
|
31
|
-
//# sourceMappingURL=DefaultUiListboxItemComponent.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"DefaultUiListboxItemComponent.js","sourceRoot":"","sources":["../../../../src/@ui/UiListbox/defaults/DefaultUiListboxItemComponent.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,CAAC,EAAE,MAAM,kBAAkB,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAGlC;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvD;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAA+C,EAAE,CAAC,CAAC;IAChF,EAAE,EAAE,aAAa,IAAI,EAAE,EAAE;IACzB,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,WAAW;IACxB,UAAU,EAAE,IAAI;CACnB,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAAI,EAC7C,IAAI,EACJ,SAAS,EACT,UAAU,EACV,QAAQ,GACY;IACpB,OAAO,IAAI,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC,CAAC,CACvC,oBAAC,SAAS,OAAG,CAChB,CAAC,CAAC,CAAC,CACA,6BACI,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;YACjB,SAAS;YACT,UAAU;YACV,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU;SAChC,CAAC,EACF,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;QAE/C,oBAAC,aAAa,IAAC,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,gBAAgB,EAAE,KAAK,IAC7D,IAAI,CAAC,WAAW,CACL,CACd,CACT,CAAC;AACN,CAAC"}
|