@gooddata/sdk-ui-kit 11.55.0-alpha.0 → 11.55.0-alpha.2
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/UiChip/ChipActionButton.d.ts +3 -0
- package/esm/@ui/UiChip/ChipActionButton.d.ts.map +1 -0
- package/esm/@ui/UiChip/ChipActionButton.js +8 -0
- package/esm/@ui/UiChip/ChipContent.d.ts +1 -1
- package/esm/@ui/UiChip/ChipContent.d.ts.map +1 -1
- package/esm/@ui/UiChip/ChipContent.js +6 -4
- package/esm/@ui/UiChip/ChipDeleteButton.d.ts +1 -1
- package/esm/@ui/UiChip/ChipDeleteButton.d.ts.map +1 -1
- package/esm/@ui/UiChip/ChipDeleteButton.js +2 -2
- package/esm/@ui/UiChip/UiChip.d.ts +1 -1
- package/esm/@ui/UiChip/UiChip.d.ts.map +1 -1
- package/esm/@ui/UiChip/UiChip.js +8 -5
- package/esm/@ui/UiChip/types.d.ts +19 -1
- package/esm/@ui/UiChip/types.d.ts.map +1 -1
- package/esm/@ui/UiMenu/components/defaults/DefaultUiMenuInteractiveItem.d.ts +1 -1
- package/esm/@ui/UiMenu/components/defaults/DefaultUiMenuInteractiveItem.d.ts.map +1 -1
- package/esm/@ui/UiMenu/components/defaults/DefaultUiMenuInteractiveItem.js +2 -2
- package/esm/@ui/UiMenu/types.d.ts +1 -0
- package/esm/@ui/UiMenu/types.d.ts.map +1 -1
- package/esm/List/InvertableSelect/InvertableSelectSelectionStatus.d.ts.map +1 -1
- package/esm/List/InvertableSelect/InvertableSelectSelectionStatus.js +27 -5
- package/esm/ParameterControl/ParameterControlButton.d.ts +3 -2
- package/esm/ParameterControl/ParameterControlButton.d.ts.map +1 -1
- package/esm/ParameterControl/ParameterControlButton.js +5 -2
- package/esm/Timezone/TimezoneSelect.d.ts +1 -1
- package/esm/Timezone/TimezoneSelect.d.ts.map +1 -1
- package/esm/Timezone/TimezoneSelect.js +10 -1
- package/esm/sdk-ui-kit.d.ts +15 -5
- package/package.json +17 -19
- package/src/@ui/UiChip/UiChip.scss +110 -15
- package/styles/css/main.css +86 -13
- package/styles/css/main.css.map +1 -1
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { type IChipActionButtonProps } from "./types.js";
|
|
2
|
+
export declare function ChipActionButton({ onAction, onActionKeyDown, actionAriaLabel, actionAriaDescribedBy, actionIcon, dataTestId }: IChipActionButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
//# sourceMappingURL=ChipActionButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChipActionButton.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiChip/ChipActionButton.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAIzD,wBAAgB,gBAAgB,CAAC,EAC7B,QAAQ,EACR,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,UAA+B,EAC/B,UAAU,EACb,EAAE,sBAAsB,2CAexB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// (C) 2025-2026 GoodData Corporation
|
|
3
|
+
import { bem } from "../@utils/bem.js";
|
|
4
|
+
import { UiIcon } from "../UiIcon/UiIcon.js";
|
|
5
|
+
const { e } = bem("gd-ui-kit-chip");
|
|
6
|
+
export function ChipActionButton({ onAction, onActionKeyDown, actionAriaLabel, actionAriaDescribedBy, actionIcon = "ellipsisVertical", dataTestId, }) {
|
|
7
|
+
return (_jsx("button", { "data-testid": dataTestId ? `${dataTestId}-action-button` : undefined, "aria-label": actionAriaLabel, "aria-describedby": actionAriaDescribedBy, className: e("action"), onClick: onAction, onKeyDown: onActionKeyDown, children: _jsx("span", { className: e("icon-action"), children: _jsx(UiIcon, { type: actionIcon, color: "complementary-6", size: 14 }) }) }));
|
|
8
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { type IChipContentProps } from "./types.js";
|
|
2
|
-
export declare function ChipContent({ label, tag, iconBefore, iconAfter, iconColor, onClick, onKeyDown, isActive, isLocked, isExpandable, isDisabled, isDeletable, accessibilityConfig, dataTestId, buttonRef, styleObj }: IChipContentProps): import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare function ChipContent({ label, tag, iconBefore, iconAfter, iconColor, variant, onClick, onKeyDown, isActive, isLocked, isExpandable, isDisabled, isDeletable, isActionable, accessibilityConfig, dataTestId, buttonRef, styleObj }: IChipContentProps): import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
//# sourceMappingURL=ChipContent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChipContent.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiChip/ChipContent.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAMpD,wBAAgB,WAAW,CAAC,EACxB,KAAK,EACL,GAAG,EACH,UAAU,EACV,SAAS,EACT,SAAqB,EACrB,OAAO,EACP,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,UAAU,EACV,SAAS,EACT,QAAQ,EACX,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"ChipContent.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiChip/ChipContent.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAMpD,wBAAgB,WAAW,CAAC,EACxB,KAAK,EACL,GAAG,EACH,UAAU,EACV,SAAS,EACT,SAAqB,EACrB,OAAkB,EAClB,OAAO,EACP,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,UAAU,EACV,SAAS,EACT,QAAQ,EACX,EAAE,iBAAiB,2CAuFnB"}
|
|
@@ -4,8 +4,8 @@ import { bem } from "../@utils/bem.js";
|
|
|
4
4
|
import { UiIcon } from "../UiIcon/UiIcon.js";
|
|
5
5
|
const { e } = bem("gd-ui-kit-chip");
|
|
6
6
|
const ICON_SIZE = 14;
|
|
7
|
-
export function ChipContent({ label, tag, iconBefore, iconAfter, iconColor = "primary", onClick, onKeyDown, isActive, isLocked, isExpandable, isDisabled, isDeletable, accessibilityConfig, dataTestId, buttonRef, styleObj, }) {
|
|
8
|
-
const { isExpanded, popupId, popupType, ariaHaspopup, ariaLabel, ariaLabelledBy, ariaControls, iconBeforeAriaLabel, } = accessibilityConfig ?? {};
|
|
7
|
+
export function ChipContent({ label, tag, iconBefore, iconAfter, iconColor = "primary", variant = "normal", onClick, onKeyDown, isActive, isLocked, isExpandable, isDisabled, isDeletable, isActionable, accessibilityConfig, dataTestId, buttonRef, styleObj, }) {
|
|
8
|
+
const { isExpanded, popupId, popupType, ariaHaspopup, ariaLabel, ariaLabelledBy, ariaControls, iconBeforeAriaLabel, iconAfterAriaLabel, } = accessibilityConfig ?? {};
|
|
9
9
|
const isDropdownTrigger = isExpandable || isExpanded !== undefined || popupId !== undefined;
|
|
10
10
|
const ariaDropdownProps = isDropdownTrigger
|
|
11
11
|
? {
|
|
@@ -16,9 +16,11 @@ export function ChipContent({ label, tag, iconBefore, iconAfter, iconColor = "pr
|
|
|
16
16
|
}
|
|
17
17
|
: {};
|
|
18
18
|
return (_jsxs("button", { "data-testid": dataTestId, className: e("trigger", {
|
|
19
|
+
variant,
|
|
20
|
+
isActive,
|
|
19
21
|
isDeletable,
|
|
22
|
+
isActionable,
|
|
20
23
|
hasIconAfter: !!iconAfter,
|
|
21
|
-
isActive,
|
|
22
24
|
isLocked: isLocked || isDisabled,
|
|
23
|
-
}), disabled: isDisabled, onClick: isLocked ? undefined : onClick, onKeyDown: onKeyDown, style: { ...styleObj }, ref: buttonRef, "aria-disabled": isLocked || isDisabled, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ...ariaDropdownProps, children: [iconBefore ? (_jsx("span", { className: e("icon-before"), children: _jsx(UiIcon, { type: iconBefore, color: iconColor, size: ICON_SIZE, accessibilityConfig: iconBeforeAriaLabel ? { ariaLabel: iconBeforeAriaLabel } : undefined }) })) : null, _jsx("span", { className: e("label"), children: label }), tag ? _jsx("span", { className: e("tag"), children: tag }) : null, isDisabled ? null : (_jsx(_Fragment, { children: isLocked ? (_jsx("span", { className: e("icon-lock"), children: _jsx(UiIcon, { type: "lock", color: "complementary-6", size: 14 }) })) : isExpandable ? (_jsx("span", { className: e("icon-chevron", { isActive }), children: _jsx(UiIcon, { type: isActive ? "chevronUp" : "chevronDown", color: "complementary-7", size: 8 }) })) : iconAfter ? (_jsx("span", { className: e("icon-after"), children: _jsx(UiIcon, { type: iconAfter, color: iconColor, size: ICON_SIZE }) })) : null }))] }));
|
|
25
|
+
}), disabled: isDisabled, onClick: isLocked ? undefined : onClick, onKeyDown: onKeyDown, style: { ...styleObj }, ref: buttonRef, "aria-disabled": isLocked || isDisabled, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ...ariaDropdownProps, children: [iconBefore ? (_jsx("span", { className: e("icon-before"), children: _jsx(UiIcon, { type: iconBefore, color: iconColor, size: ICON_SIZE, accessibilityConfig: iconBeforeAriaLabel ? { ariaLabel: iconBeforeAriaLabel } : undefined }) })) : null, _jsx("span", { className: e("label"), children: label }), tag ? _jsx("span", { className: e("tag"), children: tag }) : null, isDisabled ? null : (_jsx(_Fragment, { children: isLocked ? (_jsx("span", { className: e("icon-lock"), children: _jsx(UiIcon, { type: "lock", color: "complementary-6", size: 14 }) })) : isExpandable ? (_jsx("span", { className: e("icon-chevron", { isActive }), children: _jsx(UiIcon, { type: isActive ? "chevronUp" : "chevronDown", color: "complementary-7", size: 8 }) })) : iconAfter ? (_jsx("span", { className: e("icon-after"), children: _jsx(UiIcon, { type: iconAfter, color: iconColor, size: ICON_SIZE, accessibilityConfig: iconAfterAriaLabel ? { ariaLabel: iconAfterAriaLabel } : undefined }) })) : null }))] }));
|
|
24
26
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { type IChipDeleteButtonProps } from "./types.js";
|
|
2
|
-
export declare function ChipDeleteButton({ onDelete, onDeleteKeyDown, deleteAriaLabel, dataTestId }: IChipDeleteButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare function ChipDeleteButton({ onDelete, onDeleteKeyDown, deleteAriaLabel, deleteAriaDescribedBy, dataTestId }: IChipDeleteButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
//# sourceMappingURL=ChipDeleteButton.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChipDeleteButton.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiChip/ChipDeleteButton.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAIzD,wBAAgB,gBAAgB,CAAC,EAC7B,QAAQ,EACR,eAAe,EACf,eAAe,EACf,UAAU,EACb,EAAE,sBAAsB,
|
|
1
|
+
{"version":3,"file":"ChipDeleteButton.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiChip/ChipDeleteButton.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAIzD,wBAAgB,gBAAgB,CAAC,EAC7B,QAAQ,EACR,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,UAAU,EACb,EAAE,sBAAsB,2CAexB"}
|
|
@@ -3,6 +3,6 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
3
3
|
import { bem } from "../@utils/bem.js";
|
|
4
4
|
import { UiIcon } from "../UiIcon/UiIcon.js";
|
|
5
5
|
const { e } = bem("gd-ui-kit-chip");
|
|
6
|
-
export function ChipDeleteButton({ onDelete, onDeleteKeyDown, deleteAriaLabel, dataTestId, }) {
|
|
7
|
-
return (_jsx("button", { "data-testid": dataTestId ? `${dataTestId}-delete-button` : undefined, "aria-label": deleteAriaLabel, className: e("delete"), onClick: onDelete, onKeyDown: onDeleteKeyDown, children: _jsx("span", { className: e("icon-delete"), children: _jsx(UiIcon, { type: "cross", color: "complementary-6", size: 14 }) }) }));
|
|
6
|
+
export function ChipDeleteButton({ onDelete, onDeleteKeyDown, deleteAriaLabel, deleteAriaDescribedBy, dataTestId, }) {
|
|
7
|
+
return (_jsx("button", { "data-testid": dataTestId ? `${dataTestId}-delete-button` : undefined, "aria-label": deleteAriaLabel, "aria-describedby": deleteAriaDescribedBy, className: e("delete"), onClick: onDelete, onKeyDown: onDeleteKeyDown, children: _jsx("span", { className: e("icon-delete"), children: _jsx(UiIcon, { type: "cross", color: "complementary-6", size: 14 }) }) }));
|
|
8
8
|
}
|
|
@@ -2,5 +2,5 @@ import { type IUiChipProps } from "./types.js";
|
|
|
2
2
|
/**
|
|
3
3
|
* @internal
|
|
4
4
|
*/
|
|
5
|
-
export declare function UiChip({ label, tag, isDeletable, isActive, isLocked, isExpandable, isDisabled, maxWidth, iconBefore, iconAfter, iconColor, onClick,
|
|
5
|
+
export declare function UiChip({ label, tag, isDeletable, isActionable, isActive, isLocked, isExpandable, isDisabled, maxWidth, iconBefore, iconAfter, iconColor, onClick, onKeyDown, onDelete, onDeleteKeyDown, onAction, onActionKeyDown, accessibilityConfig, dataTestId, buttonRef, iconAction, variant, renderChipContent, renderActionButton }: IUiChipProps): import("react/jsx-runtime").JSX.Element;
|
|
6
6
|
//# sourceMappingURL=UiChip.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiChip.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiChip/UiChip.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UiChip.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiChip/UiChip.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/C;;GAEG;AACH,wBAAgB,MAAM,CAAC,EACnB,KAAK,EACL,GAAG,EACH,WAAmB,EACnB,YAAoB,EACpB,QAAgB,EAChB,QAAgB,EAChB,YAAmB,EACnB,UAAkB,EAClB,QAAQ,EACR,UAAU,EACV,SAAS,EACT,SAAqB,EACrB,OAAO,EACP,SAAS,EACT,QAAQ,EACR,eAAe,EACf,QAAQ,EACR,eAAe,EACf,mBAAmB,EACnB,UAAU,EACV,SAAS,EACT,UAAU,EACV,OAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EACrB,EAAE,YAAY,2CAuEd"}
|
package/esm/@ui/UiChip/UiChip.js
CHANGED
|
@@ -2,13 +2,14 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
// (C) 2025-2026 GoodData Corporation
|
|
3
3
|
import { useLayoutEffect, useRef, useState } from "react";
|
|
4
4
|
import { bem } from "../@utils/bem.js";
|
|
5
|
+
import { ChipActionButton } from "./ChipActionButton.js";
|
|
5
6
|
import { ChipContent } from "./ChipContent.js";
|
|
6
7
|
import { ChipDeleteButton } from "./ChipDeleteButton.js";
|
|
7
8
|
const { b } = bem("gd-ui-kit-chip");
|
|
8
9
|
/**
|
|
9
10
|
* @internal
|
|
10
11
|
*/
|
|
11
|
-
export function UiChip({ label, tag, isDeletable = false, isActive = false, isLocked = false, isExpandable = true, isDisabled = false, maxWidth, iconBefore, iconAfter, iconColor = "primary", onClick,
|
|
12
|
+
export function UiChip({ label, tag, isDeletable = false, isActionable = false, isActive = false, isLocked = false, isExpandable = true, isDisabled = false, maxWidth, iconBefore, iconAfter, iconColor = "primary", onClick, onKeyDown, onDelete, onDeleteKeyDown, onAction, onActionKeyDown, accessibilityConfig, dataTestId, buttonRef, iconAction, variant = "normal", renderChipContent, renderActionButton, }) {
|
|
12
13
|
const [styleObj, setStyleObj] = useState();
|
|
13
14
|
const defaultButtonRef = useRef(null);
|
|
14
15
|
const effectiveButtonRef = buttonRef || defaultButtonRef;
|
|
@@ -20,8 +21,10 @@ export function UiChip({ label, tag, isDeletable = false, isActive = false, isLo
|
|
|
20
21
|
setStyleObj({ width });
|
|
21
22
|
}
|
|
22
23
|
}, [label, tag, effectiveButtonRef]);
|
|
23
|
-
const { deleteAriaLabel, deleteAriaDescribedBy } = accessibilityConfig ?? {};
|
|
24
|
-
const chipContent = (_jsx(ChipContent, { label: label, tag: tag, iconBefore: iconBefore, iconAfter: iconAfter, iconColor: iconColor, onClick: onClick, onKeyDown: onKeyDown, isActive: isActive, isLocked: isLocked, isExpandable: isExpandable, isDisabled: isDisabled, isDeletable: isDeletable, maxWidth: maxWidth, accessibilityConfig: accessibilityConfig, dataTestId: dataTestId, buttonRef: effectiveButtonRef, styleObj: styleObj }));
|
|
25
|
-
const
|
|
26
|
-
return (_jsxs("div", { className: b(
|
|
24
|
+
const { deleteAriaLabel, deleteAriaDescribedBy, actionAriaLabel, actionAriaDescribedBy } = accessibilityConfig ?? {};
|
|
25
|
+
const chipContent = (_jsx(ChipContent, { label: label, tag: tag, variant: variant, iconBefore: iconBefore, iconAfter: iconAfter, iconColor: iconColor, onClick: onClick, onKeyDown: onKeyDown, isActive: isActive, isLocked: isLocked, isExpandable: isExpandable, isDisabled: isDisabled, isDeletable: isDeletable, isActionable: isActionable, maxWidth: maxWidth, accessibilityConfig: accessibilityConfig, dataTestId: dataTestId, buttonRef: effectiveButtonRef, styleObj: styleObj }));
|
|
26
|
+
const actionButton = isDeletable ? (_jsx(ChipDeleteButton, { onDelete: onDelete, onDeleteKeyDown: onDeleteKeyDown, deleteAriaLabel: deleteAriaLabel, deleteAriaDescribedBy: deleteAriaDescribedBy, dataTestId: dataTestId })) : isActionable ? (_jsx(ChipActionButton, { onAction: onAction, onActionKeyDown: onActionKeyDown, actionIcon: iconAction, actionAriaLabel: actionAriaLabel, actionAriaDescribedBy: actionAriaDescribedBy, dataTestId: dataTestId })) : null;
|
|
27
|
+
return (_jsxs("div", { className: b({
|
|
28
|
+
variant,
|
|
29
|
+
}), style: { maxWidth }, children: [renderChipContent ? renderChipContent(chipContent) : chipContent, actionButton && renderActionButton ? renderActionButton(actionButton) : actionButton] }));
|
|
27
30
|
}
|
|
@@ -10,6 +10,9 @@ export interface IUiChipAccessibilityConfig extends IAccessibilityConfigBase, ID
|
|
|
10
10
|
deleteAriaLabel?: string;
|
|
11
11
|
deleteAriaDescribedBy?: string;
|
|
12
12
|
iconBeforeAriaLabel?: string;
|
|
13
|
+
iconAfterAriaLabel?: string;
|
|
14
|
+
actionAriaLabel?: string;
|
|
15
|
+
actionAriaDescribedBy?: string;
|
|
13
16
|
}
|
|
14
17
|
/**
|
|
15
18
|
* @internal
|
|
@@ -18,23 +21,28 @@ export interface IUiChipProps {
|
|
|
18
21
|
label: string;
|
|
19
22
|
tag?: string;
|
|
20
23
|
isDeletable?: boolean;
|
|
24
|
+
isActionable?: boolean;
|
|
21
25
|
isActive?: boolean;
|
|
22
26
|
isLocked?: boolean;
|
|
23
27
|
isExpandable?: boolean;
|
|
24
28
|
isDisabled?: boolean;
|
|
25
29
|
maxWidth?: number;
|
|
30
|
+
iconAction?: IconType;
|
|
26
31
|
iconBefore?: IconType;
|
|
27
32
|
iconAfter?: IconType;
|
|
28
33
|
iconColor?: ThemeColor | "currentColor";
|
|
34
|
+
variant?: "normal" | "inactive";
|
|
29
35
|
onClick?: () => void;
|
|
30
36
|
onDelete?: () => void;
|
|
31
37
|
onKeyDown?: KeyboardEventHandler<HTMLButtonElement>;
|
|
32
38
|
onDeleteKeyDown?: KeyboardEventHandler<HTMLButtonElement>;
|
|
39
|
+
onAction?: () => void;
|
|
40
|
+
onActionKeyDown?: KeyboardEventHandler<HTMLButtonElement>;
|
|
33
41
|
accessibilityConfig?: IUiChipAccessibilityConfig;
|
|
34
42
|
dataTestId?: string;
|
|
35
43
|
buttonRef?: MutableRefObject<HTMLButtonElement>;
|
|
36
44
|
renderChipContent?: (content: ReactNode) => ReactNode;
|
|
37
|
-
|
|
45
|
+
renderActionButton?: (button: ReactNode) => ReactNode;
|
|
38
46
|
}
|
|
39
47
|
export interface IChipContentProps {
|
|
40
48
|
label: string;
|
|
@@ -50,6 +58,8 @@ export interface IChipContentProps {
|
|
|
50
58
|
isDisabled: boolean;
|
|
51
59
|
maxWidth?: number;
|
|
52
60
|
isDeletable: boolean;
|
|
61
|
+
isActionable: boolean;
|
|
62
|
+
variant?: "normal" | "inactive";
|
|
53
63
|
accessibilityConfig?: IUiChipAccessibilityConfig;
|
|
54
64
|
dataTestId?: string;
|
|
55
65
|
buttonRef: MutableRefObject<HTMLButtonElement> | RefObject<HTMLButtonElement | null>;
|
|
@@ -62,4 +72,12 @@ export interface IChipDeleteButtonProps {
|
|
|
62
72
|
deleteAriaDescribedBy?: string;
|
|
63
73
|
dataTestId?: string;
|
|
64
74
|
}
|
|
75
|
+
export interface IChipActionButtonProps {
|
|
76
|
+
onAction?: () => void;
|
|
77
|
+
onActionKeyDown?: KeyboardEventHandler<HTMLButtonElement>;
|
|
78
|
+
actionAriaLabel?: string;
|
|
79
|
+
actionAriaDescribedBy?: string;
|
|
80
|
+
actionIcon?: IconType;
|
|
81
|
+
dataTestId?: string;
|
|
82
|
+
}
|
|
65
83
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiChip/types.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,SAAS,EACjB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,KAAK,kCAAkC,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,0BACb,SAAQ,wBAAwB,EAAE,kCAAkC;IACpE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiChip/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { type IUiMenuInteractiveItemProps, type IUiMenuInteractiveItemWrapperPro
|
|
|
3
3
|
/**
|
|
4
4
|
* @internal
|
|
5
5
|
*/
|
|
6
|
-
export declare function DefaultUiMenuInteractiveItemWrapper<T extends IUiMenuItemData = object>({ item }: IUiMenuInteractiveItemWrapperProps<T>): ReactNode;
|
|
6
|
+
export declare function DefaultUiMenuInteractiveItemWrapper<T extends IUiMenuItemData = object>({ item, Component }: IUiMenuInteractiveItemWrapperProps<T>): ReactNode;
|
|
7
7
|
/**
|
|
8
8
|
* @internal
|
|
9
9
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultUiMenuInteractiveItem.d.ts","sourceRoot":"","sources":["../../../../../src/@ui/UiMenu/components/defaults/DefaultUiMenuInteractiveItem.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAuC,KAAK,SAAS,EAAyB,MAAM,OAAO,CAAC;AASnG,OAAO,EAEH,KAAK,2BAA2B,EAChC,KAAK,kCAAkC,EACvC,KAAK,eAAe,EACvB,MAAM,gBAAgB,CAAC;AAmBxB;;GAEG;AACH,wBAAgB,mCAAmC,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM,EAAE,EACpF,IAAI,
|
|
1
|
+
{"version":3,"file":"DefaultUiMenuInteractiveItem.d.ts","sourceRoot":"","sources":["../../../../../src/@ui/UiMenu/components/defaults/DefaultUiMenuInteractiveItem.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAuC,KAAK,SAAS,EAAyB,MAAM,OAAO,CAAC;AASnG,OAAO,EAEH,KAAK,2BAA2B,EAChC,KAAK,kCAAkC,EACvC,KAAK,eAAe,EACvB,MAAM,gBAAgB,CAAC;AAmBxB;;GAEG;AACH,wBAAgB,mCAAmC,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM,EAAE,EACpF,IAAI,EACJ,SAAS,EACZ,EAAE,kCAAkC,CAAC,CAAC,CAAC,GAAG,SAAS,CA0GnD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM,EAAE,EAC7E,IAAI,EACJ,SAAS,EACT,aAAa,EAChB,EAAE,2BAA2B,CAAC,CAAC,CAAC,GAAG,SAAS,CAoD5C"}
|
|
@@ -23,7 +23,7 @@ function getItemRole(selectionRole) {
|
|
|
23
23
|
/**
|
|
24
24
|
* @internal
|
|
25
25
|
*/
|
|
26
|
-
export function DefaultUiMenuInteractiveItemWrapper({ item, }) {
|
|
26
|
+
export function DefaultUiMenuInteractiveItemWrapper({ item, Component, }) {
|
|
27
27
|
const { useContextStore, createSelector } = typedUiMenuContextStore();
|
|
28
28
|
const selector = createSelector((ctx) => ({
|
|
29
29
|
onSelect: ctx.onSelect,
|
|
@@ -78,7 +78,7 @@ export function DefaultUiMenuInteractiveItemWrapper({ item, }) {
|
|
|
78
78
|
isDestructive: !!item.isDestructive,
|
|
79
79
|
}), typeof itemClassName === "function" ? itemClassName(item) : itemClassName);
|
|
80
80
|
const dataTestId = typeof itemDataTestId === "function" ? itemDataTestId(item) : itemDataTestId;
|
|
81
|
-
return (_jsx("li", { ref: scrollToItem, ...item.ariaAttributes, role: getItemRole(item.selectionRole), "aria-checked": item.selectionRole ? !!item.isSelected : item.ariaAttributes?.["aria-checked"], "aria-haspopup": item.subItems ? "menu" : item.ariaAttributes?.["aria-haspopup"], "aria-disabled": item.isDisabled, "aria-label": item.ariaAttributes?.["aria-label"], onMouseMove: handleMouseFocus, onClick: item.isDisabled ? undefined : handleSelect, tabIndex: -1, id: makeItemId(item), className: classNames, "data-testid": dataTestId, children: _jsx(InteractiveItemComponent, { item: item, isFocused: isFocused, isTooltipOpen: isTooltipOpen }) }));
|
|
81
|
+
return (_jsx("li", { ref: scrollToItem, ...item.ariaAttributes, role: getItemRole(item.selectionRole), "aria-checked": item.selectionRole ? !!item.isSelected : item.ariaAttributes?.["aria-checked"], "aria-haspopup": item.subItems ? "menu" : item.ariaAttributes?.["aria-haspopup"], "aria-disabled": item.isDisabled, "aria-label": item.ariaAttributes?.["aria-label"], onMouseMove: handleMouseFocus, onClick: item.isDisabled ? undefined : handleSelect, tabIndex: -1, id: makeItemId(item), className: classNames, "data-testid": dataTestId, children: Component ? (_jsx(Component, { item: item, isFocused: isFocused, isTooltipOpen: isTooltipOpen })) : (_jsx(InteractiveItemComponent, { item: item, isFocused: isFocused, isTooltipOpen: isTooltipOpen })) }));
|
|
82
82
|
}
|
|
83
83
|
/**
|
|
84
84
|
* @internal
|
|
@@ -89,6 +89,7 @@ export interface IUiMenuItemProps<T extends IUiMenuItemData = object> {
|
|
|
89
89
|
*/
|
|
90
90
|
export interface IUiMenuInteractiveItemWrapperProps<T extends IUiMenuItemData = object> {
|
|
91
91
|
item: IUiMenuInteractiveItem<T>;
|
|
92
|
+
Component?: ComponentType<IUiMenuInteractiveItemProps<T>>;
|
|
92
93
|
}
|
|
93
94
|
/**
|
|
94
95
|
* @internal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiMenu/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiMenu/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InvertableSelectSelectionStatus.d.ts","sourceRoot":"","sources":["../../../src/List/InvertableSelect/InvertableSelectSelectionStatus.tsx"],"names":[],"mappings":"AAQA;;GAEG;AACH,MAAM,WAAW,4BAA4B,CAAC,CAAC;IAC3C,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,CAAC,EAAE,CAAC;IACnB,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;CACrC;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,CAAC,EAC9C,aAAa,EAAE,CAAC,EAAE,EAClB,UAAU,EAAE,OAAO,EACnB,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAClC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAoC5D;
|
|
1
|
+
{"version":3,"file":"InvertableSelectSelectionStatus.d.ts","sourceRoot":"","sources":["../../../src/List/InvertableSelect/InvertableSelectSelectionStatus.tsx"],"names":[],"mappings":"AAQA;;GAEG;AACH,MAAM,WAAW,4BAA4B,CAAC,CAAC;IAC3C,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,CAAC,EAAE,CAAC;IACnB,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;CACrC;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,CAAC,EAC9C,aAAa,EAAE,CAAC,EAAE,EAClB,UAAU,EAAE,OAAO,EACnB,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAClC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAoC5D;AA6BD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,EACtC,aAAa,EACb,YAAY,EACZ,UAAU,EACb,EAAE,4BAA4B,CAAC,CAAC,CAAC,2CA4DjC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
// (C) 2007-2026 GoodData Corporation
|
|
3
|
-
import { useMemo } from "react";
|
|
4
|
-
import { useIntl } from "react-intl";
|
|
3
|
+
import { Children, useMemo } from "react";
|
|
4
|
+
import { FormattedMessage, useIntl } from "react-intl";
|
|
5
5
|
import { UiTooltip } from "../../@ui/UiTooltip/UiTooltip.js";
|
|
6
6
|
/**
|
|
7
7
|
* @internal
|
|
@@ -38,11 +38,26 @@ export function useInvertableSelectionStatusText(selectedItems, isInverted, getI
|
|
|
38
38
|
whole: stringChunks.join(" "),
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* The status bar is a flex container whose spacing comes from non-breaking spaces (see
|
|
43
|
+
* invertableSelect.scss), so every part of the message has to be its own element. The `label` tag
|
|
44
|
+
* renders the connective words with that spacing around them, while anything a translation leaves
|
|
45
|
+
* outside a tag is wrapped by {@link renderStatusChunks} without any spacing added - that is what
|
|
46
|
+
* lets one message read "is All" in English and "すべてを選択中" in Japanese.
|
|
47
|
+
*
|
|
48
|
+
* Each tag occurs at most once per message, so a constant key is enough to keep React quiet about
|
|
49
|
+
* the chunk array react-intl builds.
|
|
50
|
+
*/
|
|
51
|
+
const labelChunks = (chunks) => (_jsxs("span", { children: [" ", chunks, " "] }, "label"));
|
|
52
|
+
const boldChunks = (chunks) => _jsx("b", { children: chunks }, "value");
|
|
53
|
+
function renderStatusChunks(chunks) {
|
|
54
|
+
// Children.toArray flattens the nested chunks react-intl hands over and keys the elements.
|
|
55
|
+
return Children.toArray(chunks).map((chunk, index) => typeof chunk === "string" ? _jsx("span", { children: chunk.replaceAll(" ", " ") }, index) : chunk);
|
|
56
|
+
}
|
|
41
57
|
/**
|
|
42
58
|
* @internal
|
|
43
59
|
*/
|
|
44
60
|
export function InvertableSelectStatus({ selectedItems, getItemTitle, isInverted, }) {
|
|
45
|
-
const intl = useIntl();
|
|
46
61
|
const isSelectionEmpty = selectedItems.length === 0;
|
|
47
62
|
const isAll = isSelectionEmpty && isInverted;
|
|
48
63
|
const isNone = isSelectionEmpty && !isInverted;
|
|
@@ -50,6 +65,13 @@ export function InvertableSelectStatus({ selectedItems, getItemTitle, isInverted
|
|
|
50
65
|
const selectionString = useMemo(() => {
|
|
51
66
|
return selectedItems.map((selectedItem) => getItemTitle(selectedItem)).join(", ");
|
|
52
67
|
}, [selectedItems, getItemTitle]);
|
|
53
|
-
|
|
54
|
-
|
|
68
|
+
if (isAll) {
|
|
69
|
+
return (_jsx(FormattedMessage, { id: "gs.list.selectionStatus.all", values: { label: labelChunks, b: boldChunks }, children: (...chunks) => _jsx(_Fragment, { children: renderStatusChunks(chunks) }) }));
|
|
70
|
+
}
|
|
71
|
+
if (isNone) {
|
|
72
|
+
return (_jsx(FormattedMessage, { id: "gs.list.selectionStatus.none", values: { label: labelChunks, b: boldChunks }, children: (...chunks) => _jsx(_Fragment, { children: renderStatusChunks(chunks) }) }));
|
|
73
|
+
}
|
|
74
|
+
const selection = (_jsx(UiTooltip, { arrowPlacement: "top-start", triggerBy: ["hover"], content: selectionString, anchor: _jsxs(_Fragment, { children: [
|
|
75
|
+
_jsx("span", { className: "gd-shortened-text gd-selection-list s-dropdown-attribute-selection-list", children: selectionString }), `\xa0(${selectedItems.length})`] }) }));
|
|
76
|
+
return isAllExcept ? (_jsx(FormattedMessage, { id: "gs.list.selectionStatus.isNot", values: { selection, label: labelChunks, b: boldChunks }, children: (...chunks) => _jsx(_Fragment, { children: renderStatusChunks(chunks) }) })) : (_jsx(FormattedMessage, { id: "gs.list.selectionStatus.is", values: { selection, label: labelChunks, b: boldChunks }, children: (...chunks) => _jsx(_Fragment, { children: renderStatusChunks(chunks) }) }));
|
|
55
77
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { type ParameterValue } from "@gooddata/sdk-model";
|
|
1
|
+
import { type IParameterDefinition, type ParameterValue } from "@gooddata/sdk-model";
|
|
2
2
|
/**
|
|
3
3
|
* @internal
|
|
4
4
|
*/
|
|
5
5
|
export interface IParameterControlButtonProps {
|
|
6
6
|
name: string;
|
|
7
|
+
definition: IParameterDefinition;
|
|
7
8
|
value: ParameterValue;
|
|
8
9
|
isActive: boolean;
|
|
9
10
|
isDraggable?: boolean;
|
|
@@ -17,5 +18,5 @@ export interface IParameterControlButtonProps {
|
|
|
17
18
|
/**
|
|
18
19
|
* @internal
|
|
19
20
|
*/
|
|
20
|
-
export declare function ParameterControlButton({ name, value, isActive, isDraggable, isDragging, warningTooltip, dropdownId, onClick, className, "data-testid": dataTestId }: IParameterControlButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export declare function ParameterControlButton({ name, definition, value, isActive, isDraggable, isDragging, warningTooltip, dropdownId, onClick, className, "data-testid": dataTestId }: IParameterControlButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
21
22
|
//# sourceMappingURL=ParameterControlButton.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParameterControlButton.d.ts","sourceRoot":"","sources":["../../src/ParameterControl/ParameterControlButton.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"ParameterControlButton.d.ts","sourceRoot":"","sources":["../../src/ParameterControl/ParameterControlButton.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,cAAc,EAA0B,MAAM,qBAAqB,CAAC;AAS7G;;GAEG;AACH,MAAM,WAAW,4BAA4B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,oBAAoB,CAAC;IACjC,KAAK,EAAE,cAAc,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EACnC,IAAI,EACJ,UAAU,EACV,KAAK,EACL,QAAQ,EACR,WAAW,EACX,UAAU,EACV,cAAc,EACd,UAAU,EACV,OAAO,EACP,SAAS,EACT,aAAa,EAAE,UAAU,EAC5B,EAAE,4BAA4B,2CAsB9B"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
// (C) 2026 GoodData Corporation
|
|
3
3
|
import { defineMessages, useIntl } from "react-intl";
|
|
4
|
+
import { getParameterValueTitle } from "@gooddata/sdk-model";
|
|
4
5
|
import { UiControlButton } from "../@ui/UiControlButton/UiControlButton.js";
|
|
5
6
|
import { UiIcon } from "../@ui/UiIcon/UiIcon.js";
|
|
6
7
|
const messages = defineMessages({
|
|
@@ -9,8 +10,10 @@ const messages = defineMessages({
|
|
|
9
10
|
/**
|
|
10
11
|
* @internal
|
|
11
12
|
*/
|
|
12
|
-
export function ParameterControlButton({ name, value, isActive, isDraggable, isDragging, warningTooltip, dropdownId, onClick, className, "data-testid": dataTestId, }) {
|
|
13
|
+
export function ParameterControlButton({ name, definition, value, isActive, isDraggable, isDragging, warningTooltip, dropdownId, onClick, className, "data-testid": dataTestId, }) {
|
|
13
14
|
const intl = useIntl();
|
|
14
|
-
const subtitle = intl.formatMessage(messages.valueSubtitle, {
|
|
15
|
+
const subtitle = intl.formatMessage(messages.valueSubtitle, {
|
|
16
|
+
value: getParameterValueTitle(definition, value),
|
|
17
|
+
});
|
|
15
18
|
return (_jsx(UiControlButton, { title: name, subtitle: subtitle, isOpen: isActive, isDraggable: isDraggable, isDragging: isDragging, icon: warningTooltip ? _jsx(UiIcon, { type: "warning", size: 16, color: "currentColor" }) : undefined, isWarning: !!warningTooltip, warningTooltip: warningTooltip, dropdownId: dropdownId, onClick: onClick, className: className, "data-testid": dataTestId }));
|
|
16
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimezoneSelect.d.ts","sourceRoot":"","sources":["../../src/Timezone/TimezoneSelect.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAqB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TimezoneSelect.d.ts","sourceRoot":"","sources":["../../src/Timezone/TimezoneSelect.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAqB,MAAM,OAAO,CAAC;AAI7E,OAAO,EAAkC,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAMhG,OAAO,EAAY,KAAK,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAapF;;;;;GAKG;AACH,MAAM,WAAW,0BAA0B;IACvC;;;OAGG;IACH,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IAEvB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,gCAAiC,SAAQ,0BAA0B;IAChF;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAE1B;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACjC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAE3C;;OAEG;IACH,YAAY,CAAC,EAAE,0BAA0B,EAAE,CAAC;IAE5C;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,gCAAgC,KAAK,SAAS,CAAC;CACzE;AAED,KAAK,oBAAoB,GAAG,MAAM,GAAG,SAAS,CAAC;AAM/C,wBAAgB,iBAAiB,CAC7B,YAAY,EAAE,0BAA0B,EAAE,EAC1C,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,OAAO,GACrB,cAAc,CAAC,oBAAoB,CAAC,EAAE,CAqCxC;AAGD,wBAAgB,iBAAiB,CAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,YAAY,EAAE,0BAA0B,EAAE,GAC3C,MAAM,GAAG,SAAS,CAMpB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAC3B,KAAK,EACL,QAAQ,EACR,YAAiB,EACjB,WAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,EAAE,EACF,eAAe,EACf,YAAY,EACZ,UAAU,EACV,MAAM,EACN,WAAmB,EACnB,YAAY,EACf,EAAE,oBAAoB,GAAG,YAAY,CA8HrC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
// (C) 2026 GoodData Corporation
|
|
3
3
|
import { useMemo, useState } from "react";
|
|
4
|
+
import { useIntl } from "react-intl";
|
|
4
5
|
import { UiListbox } from "../@ui/UiListbox/UiListbox.js";
|
|
5
6
|
import { DETAILED_ANNOUNCEMENT_THRESHOLD, UiSearchResultsAnnouncement, } from "../@ui/UiSearchResultsAnnouncement/UiSearchResultsAnnouncement.js";
|
|
6
7
|
import { Dropdown } from "../Dropdown/Dropdown.js";
|
|
@@ -65,6 +66,7 @@ export function getSelectedItemId(value, specialItems) {
|
|
|
65
66
|
* @internal
|
|
66
67
|
*/
|
|
67
68
|
export function TimezoneSelect({ value, onChange, specialItems = [], placeholder = "", searchPlaceholder, ariaLabel, id, ariaDescribedBy, noMatchLabel, isDisabled, header, showTooltip = false, renderButton, }) {
|
|
69
|
+
const intl = useIntl();
|
|
68
70
|
const [searchString, setSearchString] = useState("");
|
|
69
71
|
const selectedSpecialItem = specialItems.find((item) => item.id === value);
|
|
70
72
|
const buttonLabel = selectedSpecialItem
|
|
@@ -86,6 +88,11 @@ export function TimezoneSelect({ value, onChange, specialItems = [], placeholder
|
|
|
86
88
|
ariaDescribedBy,
|
|
87
89
|
ariaExpanded: renderProps.isOpen,
|
|
88
90
|
popupType: "listbox",
|
|
91
|
+
// A plain button that toggles a listbox popup. Using role="button" (rather
|
|
92
|
+
// than the DropdownButton default of "combobox") avoids the WCAG 4.1.2
|
|
93
|
+
// requirement that a combobox always expose aria-controls — our listbox only
|
|
94
|
+
// exists in the DOM while open.
|
|
95
|
+
role: "button",
|
|
89
96
|
}, className: "gd-timezone-select__button s-timezone-select-button customizable" })), renderBody: ({ closeDropdown, ariaAttributes }) => (_jsxs("div", { className: "gd-timezone-select__body s-timezone-select-body", children: [header, _jsx("div", { className: "gd-timezone-select__search s-timezone-select-search", children: _jsx(Input, { value: searchString, onChange: (newValue) => setSearchString(newValue.toString()), placeholder: searchPlaceholder, autofocus: true, clearOnEsc: true, isSearch: true, isSmall: true, onEscKeyPress: (event) => {
|
|
90
97
|
if (searchString) {
|
|
91
98
|
event.stopPropagation();
|
|
@@ -94,7 +101,9 @@ export function TimezoneSelect({ value, onChange, specialItems = [], placeholder
|
|
|
94
101
|
closeDropdown();
|
|
95
102
|
}
|
|
96
103
|
}, accessibilityConfig: {
|
|
97
|
-
ariaLabel
|
|
104
|
+
ariaLabel: intl.formatMessage({
|
|
105
|
+
id: "timezoneSelect.search.accessibility.label",
|
|
106
|
+
}),
|
|
98
107
|
} }) }), _jsx(UiSearchResultsAnnouncement, { totalResults: searchString ? interactiveItems.length : undefined, resultValues: interactiveItems.length <= DETAILED_ANNOUNCEMENT_THRESHOLD
|
|
99
108
|
? interactiveItems.map((item) => item.stringTitle)
|
|
100
109
|
: undefined }), hasNoMatchingData ? (_jsx(NoData, { hasNoMatchingData: true, notFoundLabel: noMatchLabel, noDataLabel: noMatchLabel })) : (_jsx(UiListbox
|
package/esm/sdk-ui-kit.d.ts
CHANGED
|
@@ -748,7 +748,7 @@ export declare function DefaultUiMenuInteractiveItem<T extends IUiMenuItemData =
|
|
|
748
748
|
/**
|
|
749
749
|
* @internal
|
|
750
750
|
*/
|
|
751
|
-
export declare function DefaultUiMenuInteractiveItemWrapper<T extends IUiMenuItemData = object>({ item }: IUiMenuInteractiveItemWrapperProps<T>): ReactNode;
|
|
751
|
+
export declare function DefaultUiMenuInteractiveItemWrapper<T extends IUiMenuItemData = object>({ item, Component }: IUiMenuInteractiveItemWrapperProps<T>): ReactNode;
|
|
752
752
|
|
|
753
753
|
/**
|
|
754
754
|
* By default just renders the data.
|
|
@@ -5308,6 +5308,7 @@ export declare interface IOverlayState {
|
|
|
5308
5308
|
*/
|
|
5309
5309
|
export declare interface IParameterControlButtonProps {
|
|
5310
5310
|
name: string;
|
|
5311
|
+
definition: IParameterDefinition;
|
|
5311
5312
|
value: ParameterValue;
|
|
5312
5313
|
isActive: boolean;
|
|
5313
5314
|
isDraggable?: boolean;
|
|
@@ -6466,7 +6467,7 @@ export declare interface ITimezoneSelectProps {
|
|
|
6466
6467
|
*/
|
|
6467
6468
|
searchPlaceholder: string;
|
|
6468
6469
|
/**
|
|
6469
|
-
* Accessibility label of the
|
|
6470
|
+
* Accessibility label of the listbox.
|
|
6470
6471
|
*/
|
|
6471
6472
|
ariaLabel: string;
|
|
6472
6473
|
/**
|
|
@@ -7047,6 +7048,9 @@ export declare interface IUiChipAccessibilityConfig extends IAccessibilityConfig
|
|
|
7047
7048
|
deleteAriaLabel?: string;
|
|
7048
7049
|
deleteAriaDescribedBy?: string;
|
|
7049
7050
|
iconBeforeAriaLabel?: string;
|
|
7051
|
+
iconAfterAriaLabel?: string;
|
|
7052
|
+
actionAriaLabel?: string;
|
|
7053
|
+
actionAriaDescribedBy?: string;
|
|
7050
7054
|
}
|
|
7051
7055
|
|
|
7052
7056
|
/**
|
|
@@ -7056,23 +7060,28 @@ export declare interface IUiChipProps {
|
|
|
7056
7060
|
label: string;
|
|
7057
7061
|
tag?: string;
|
|
7058
7062
|
isDeletable?: boolean;
|
|
7063
|
+
isActionable?: boolean;
|
|
7059
7064
|
isActive?: boolean;
|
|
7060
7065
|
isLocked?: boolean;
|
|
7061
7066
|
isExpandable?: boolean;
|
|
7062
7067
|
isDisabled?: boolean;
|
|
7063
7068
|
maxWidth?: number;
|
|
7069
|
+
iconAction?: IconType;
|
|
7064
7070
|
iconBefore?: IconType;
|
|
7065
7071
|
iconAfter?: IconType;
|
|
7066
7072
|
iconColor?: ThemeColor | "currentColor";
|
|
7073
|
+
variant?: "normal" | "inactive";
|
|
7067
7074
|
onClick?: () => void;
|
|
7068
7075
|
onDelete?: () => void;
|
|
7069
7076
|
onKeyDown?: KeyboardEventHandler<HTMLButtonElement>;
|
|
7070
7077
|
onDeleteKeyDown?: KeyboardEventHandler<HTMLButtonElement>;
|
|
7078
|
+
onAction?: () => void;
|
|
7079
|
+
onActionKeyDown?: KeyboardEventHandler<HTMLButtonElement>;
|
|
7071
7080
|
accessibilityConfig?: IUiChipAccessibilityConfig;
|
|
7072
7081
|
dataTestId?: string;
|
|
7073
7082
|
buttonRef?: MutableRefObject<HTMLButtonElement>;
|
|
7074
7083
|
renderChipContent?: (content: ReactNode) => ReactNode;
|
|
7075
|
-
|
|
7084
|
+
renderActionButton?: (button: ReactNode) => ReactNode;
|
|
7076
7085
|
}
|
|
7077
7086
|
|
|
7078
7087
|
/** @internal */
|
|
@@ -8375,6 +8384,7 @@ export declare interface IUiMenuInteractiveItemProps<T extends IUiMenuItemData =
|
|
|
8375
8384
|
*/
|
|
8376
8385
|
export declare interface IUiMenuInteractiveItemWrapperProps<T extends IUiMenuItemData = object> {
|
|
8377
8386
|
item: IUiMenuInteractiveItem<T>;
|
|
8387
|
+
Component?: ComponentType<IUiMenuInteractiveItemProps<T>>;
|
|
8378
8388
|
}
|
|
8379
8389
|
|
|
8380
8390
|
/**
|
|
@@ -10241,7 +10251,7 @@ export declare function ParameterControl({ name, definition, value, resetValue,
|
|
|
10241
10251
|
/**
|
|
10242
10252
|
* @internal
|
|
10243
10253
|
*/
|
|
10244
|
-
export declare function ParameterControlButton({ name, value, isActive, isDraggable, isDragging, warningTooltip, dropdownId, onClick, className, "data-testid": dataTestId }: IParameterControlButtonProps): JSX.Element;
|
|
10254
|
+
export declare function ParameterControlButton({ name, definition, value, isActive, isDraggable, isDragging, warningTooltip, dropdownId, onClick, className, "data-testid": dataTestId }: IParameterControlButtonProps): JSX.Element;
|
|
10245
10255
|
|
|
10246
10256
|
/**
|
|
10247
10257
|
* Workspace-parameter catalog browser. Search, tag grouping, multi-select.
|
|
@@ -11018,7 +11028,7 @@ export declare function UiCheckbox({ checked, onChange, preventDefault, stopProp
|
|
|
11018
11028
|
/**
|
|
11019
11029
|
* @internal
|
|
11020
11030
|
*/
|
|
11021
|
-
export declare function UiChip({ label, tag, isDeletable, isActive, isLocked, isExpandable, isDisabled, maxWidth, iconBefore, iconAfter, iconColor, onClick,
|
|
11031
|
+
export declare function UiChip({ label, tag, isDeletable, isActionable, isActive, isLocked, isExpandable, isDisabled, maxWidth, iconBefore, iconAfter, iconColor, onClick, onKeyDown, onDelete, onDeleteKeyDown, onAction, onActionKeyDown, accessibilityConfig, dataTestId, buttonRef, iconAction, variant, renderChipContent, renderActionButton }: IUiChipProps): JSX.Element;
|
|
11022
11032
|
|
|
11023
11033
|
/**
|
|
11024
11034
|
* A composable combobox component that enables users to select from a filtered list of options.
|