@gooddata/sdk-ui-kit 11.53.0 → 11.54.0-alpha.0

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.
@@ -9,6 +9,13 @@ export interface IUiAddGranteeDialogCardProps {
9
9
  objectTitle: string;
10
10
  /** Loader passed straight through to the embedded `UiGranteeAsyncPicker`. */
11
11
  loadOptions: (search: string) => Promise<IUiGranteeAsyncOptions>;
12
+ /**
13
+ * Levels each picked grantee's menu renders disabled — the caller cannot grant a
14
+ * level they do not hold themselves. Passed through to the picker.
15
+ */
16
+ disabledLevels?: ReadonlyArray<PermissionMenuLevel>;
17
+ /** Tooltip shown on those disabled levels. */
18
+ disabledTooltip?: string;
12
19
  /**
13
20
  * Grantees currently picked. Single source of truth — the card derives all
14
21
  * row state from it and emits the next list via `onSelectedGranteesChange`.
@@ -59,5 +66,5 @@ export interface IUiAddGranteeDialogCardProps {
59
66
  *
60
67
  * @internal
61
68
  */
62
- export declare function UiAddGranteeDialogCard({ objectTitle, loadOptions, selectedGrantees, onSelectedGranteesChange, initialPermissionLevel, labels, onBack, onClose, onCancel, onShare, dataTestId }: IUiAddGranteeDialogCardProps): import("react/jsx-runtime").JSX.Element;
69
+ export declare function UiAddGranteeDialogCard({ objectTitle, loadOptions, disabledLevels, disabledTooltip, selectedGrantees, onSelectedGranteesChange, initialPermissionLevel, labels, onBack, onClose, onCancel, onShare, dataTestId }: IUiAddGranteeDialogCardProps): import("react/jsx-runtime").JSX.Element;
63
70
  //# sourceMappingURL=UiAddGranteeDialogCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UiAddGranteeDialogCard.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiAddGranteeDialog/UiAddGranteeDialogCard.tsx"],"names":[],"mappings":"AAWA,OAAO,EACH,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EAExB,MAAM,iDAAiD,CAAC;AAEzD,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAGxF,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAMnF;;GAEG;AACH,MAAM,WAAW,4BAA4B;IACzC,6EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAC;IAEpB,6EAA6E;IAC7E,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjE;;;OAGG;IACH,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAClD;;;;OAIG;IACH,wBAAwB,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAC7D;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,mBAAmB,CAAC;IAC7C;;;;OAIG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAE/C,+DAA+D;IAC/D,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,4DAA4D;IAC5D,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,uDAAuD;IACvD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,EACnC,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,wBAAwB,EACxB,sBAA+B,EAC/B,MAAM,EACN,MAAM,EACN,OAAO,EACP,QAAQ,EACR,OAAO,EACP,UAAU,EACb,EAAE,4BAA4B,2CAkD9B"}
1
+ {"version":3,"file":"UiAddGranteeDialogCard.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiAddGranteeDialog/UiAddGranteeDialogCard.tsx"],"names":[],"mappings":"AAWA,OAAO,EACH,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EAExB,MAAM,iDAAiD,CAAC;AAEzD,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAGxF,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAMnF;;GAEG;AACH,MAAM,WAAW,4BAA4B;IACzC,6EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAC;IAEpB,6EAA6E;IAC7E,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjE;;;OAGG;IACH,cAAc,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACpD,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAClD;;;;OAIG;IACH,wBAAwB,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAC7D;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,mBAAmB,CAAC;IAC7C;;;;OAIG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAE/C,+DAA+D;IAC/D,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,4DAA4D;IAC5D,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,uDAAuD;IACvD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,EACnC,WAAW,EACX,WAAW,EACX,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,wBAAwB,EACxB,sBAA+B,EAC/B,MAAM,EACN,MAAM,EACN,OAAO,EACP,QAAQ,EACR,OAAO,EACP,UAAU,EACb,EAAE,4BAA4B,2CAoD9B"}
@@ -23,7 +23,7 @@ const { b } = bem("gd-ui-kit-add-grantee-dialog");
23
23
  *
24
24
  * @internal
25
25
  */
26
- export function UiAddGranteeDialogCard({ objectTitle, loadOptions, selectedGrantees, onSelectedGranteesChange, initialPermissionLevel = "VIEW", labels, onBack, onClose, onCancel, onShare, dataTestId, }) {
26
+ export function UiAddGranteeDialogCard({ objectTitle, loadOptions, disabledLevels, disabledTooltip, selectedGrantees, onSelectedGranteesChange, initialPermissionLevel = "VIEW", labels, onBack, onClose, onCancel, onShare, dataTestId, }) {
27
27
  const intl = useIntl();
28
28
  const dialogTitle = intl.formatMessage(olpObjectShareDialogMessages.title, { title: objectTitle });
29
29
  const backButton = (_jsx(UiIconButton, { icon: "chevronLeft", variant: "tertiary", size: "small", onClick: onBack, accessibilityConfig: { ariaLabel: intl.formatMessage(olpAddGranteeDialogMessages.back) } }));
@@ -33,7 +33,7 @@ export function UiAddGranteeDialogCard({ objectTitle, loadOptions, selectedGrant
33
33
  initialPermissionLevel,
34
34
  });
35
35
  return (_jsxs("div", { className: b(), "data-testid": dataTestId, children: [
36
- _jsx(UiDialogHeader, { title: dialogTitle, titleSize: "large", onClose: onClose, leading: backButton }), _jsx(UiGranteeAsyncPicker, { loadOptions: loadOptions, selectedGrantees: selectedGrantees, onSelect: select, onPermissionChange: changePermission, labels: labels, onLabelsChange: changeLabels, onRemove: remove }), _jsxs(UiDialogFooter, { divider: true, children: [
36
+ _jsx(UiDialogHeader, { title: dialogTitle, titleSize: "large", onClose: onClose, leading: backButton }), _jsx(UiGranteeAsyncPicker, { loadOptions: loadOptions, disabledLevels: disabledLevels, disabledTooltip: disabledTooltip, selectedGrantees: selectedGrantees, onSelect: select, onPermissionChange: changePermission, labels: labels, onLabelsChange: changeLabels, onRemove: remove }), _jsxs(UiDialogFooter, { divider: true, children: [
37
37
  _jsx(UiButton, { label: intl.formatMessage(commonDialogMessages.cancel), variant: "secondary", size: "medium", onClick: onCancel }), _jsx(UiButton, { label: intl.formatMessage(olpAddGranteeDialogMessages.add), variant: "primary", size: "medium", onClick: onShare, isDisabled: selectedGrantees.length === 0 })
38
38
  ] })
39
39
  ] }));
@@ -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;AAIpD,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,2CAyDnB"}
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;AAIpD,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,2CAwEnB"}
@@ -4,7 +4,7 @@ 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
  export function ChipContent({ label, tag, iconBefore, iconAfter, iconColor = "primary", onClick, onKeyDown, isActive, isLocked, isExpandable, isDisabled, isDeletable, accessibilityConfig, dataTestId, buttonRef, styleObj, }) {
7
- const { isExpanded, popupId, popupType, ariaHaspopup, ariaLabel, ariaLabelledBy, ariaControls } = accessibilityConfig ?? {};
7
+ const { isExpanded, popupId, popupType, ariaHaspopup, ariaLabel, ariaLabelledBy, ariaControls, iconBeforeAriaLabel, } = accessibilityConfig ?? {};
8
8
  const isDropdownTrigger = isExpandable || isExpanded !== undefined || popupId !== undefined;
9
9
  const ariaDropdownProps = isDropdownTrigger
10
10
  ? {
@@ -14,5 +14,5 @@ export function ChipContent({ label, tag, iconBefore, iconAfter, iconColor = "pr
14
14
  ...(isExpanded === undefined ? { "aria-expanded": isActive } : { "aria-expanded": isExpanded }),
15
15
  }
16
16
  : {};
17
- return (_jsxs("button", { "data-testid": dataTestId, className: e("trigger", { isDeletable, isActive, isLocked: isLocked || isDisabled }), 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: 15 }) })) : 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: 15 }) })) : null }))] }));
17
+ return (_jsxs("button", { "data-testid": dataTestId, className: e("trigger", { isDeletable, isActive, isLocked: isLocked || isDisabled }), 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: 15, 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: 15 }) })) : null }))] }));
18
18
  }
@@ -9,6 +9,7 @@ import { type ThemeColor } from "../@types/themeColors.js";
9
9
  export interface IUiChipAccessibilityConfig extends IAccessibilityConfigBase, IDropdownButtonAccessibilityConfig {
10
10
  deleteAriaLabel?: string;
11
11
  deleteAriaDescribedBy?: string;
12
+ iconBeforeAriaLabel?: string;
12
13
  }
13
14
  /**
14
15
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiChip/types.ts"],"names":[],"mappings":"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"}
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;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,SAAS,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IACpD,eAAe,CAAC,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAC1D,mBAAmB,CAAC,EAAE,0BAA0B,CAAC;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IAChD,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,SAAS,CAAC;IACtD,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,SAAS,CAAC;CACzD;AAED,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,SAAS,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IACpD,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,mBAAmB,CAAC,EAAE,0BAA0B,CAAC;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IACrF,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACnC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB"}
@@ -67,6 +67,13 @@ export interface IUiGranteeAsyncPickerProps {
67
67
  onSelect: (option: IUiGranteeAsyncOption) => void;
68
68
  /** Fires when the user changes the permission level on a picked row. */
69
69
  onPermissionChange?: (grantee: IUiPickedGrantee, next: PermissionMenuLevel) => void;
70
+ /**
71
+ * Levels each picked grantee's menu renders disabled — the caller cannot grant a
72
+ * level they do not hold themselves. See {@link UiPermissionMenu}.
73
+ */
74
+ disabledLevels?: ReadonlyArray<PermissionMenuLevel>;
75
+ /** Tooltip shown on those disabled levels. */
76
+ disabledTooltip?: string;
70
77
  /** Fires when the user picks Remove access in the row's permission menu. */
71
78
  onRemove?: (grantee: IUiPickedGrantee) => void;
72
79
  /**
@@ -91,5 +98,5 @@ export interface IUiGranteeAsyncPickerProps {
91
98
  *
92
99
  * @internal
93
100
  */
94
- export declare function UiGranteeAsyncPicker({ loadOptions, selectedGrantees, onSelect, onPermissionChange, onRemove, labels, onLabelsChange, dataTestId }: IUiGranteeAsyncPickerProps): import("react/jsx-runtime").JSX.Element;
101
+ export declare function UiGranteeAsyncPicker({ loadOptions, selectedGrantees, onSelect, onPermissionChange, disabledLevels, disabledTooltip, onRemove, labels, onLabelsChange, dataTestId }: IUiGranteeAsyncPickerProps): import("react/jsx-runtime").JSX.Element;
95
102
  //# sourceMappingURL=UiGranteeAsyncPicker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UiGranteeAsyncPicker.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiGranteeAsyncPicker/UiGranteeAsyncPicker.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAOlD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EACH,KAAK,mBAAmB,EAG3B,MAAM,yCAAyC,CAAC;AAIjD;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IAClC,yFAAuF;IACvF,EAAE,EAAE,MAAM,CAAC;IACX;;yBAEqB;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,sBAAsB;IACtB,IAAI,EAAE,iBAAiB,CAAC;IACxB,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAiB,SAAQ,qBAAqB;IAC3D,gGAAgG;IAChG,eAAe,EAAE,mBAAmB,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACpC;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACnC,MAAM,EAAE,qBAAqB,EAAE,CAAC;IAChC,KAAK,EAAE,qBAAqB,EAAE,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACvC;;;;;OAKG;IACH,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjE;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACnD,6DAA6D;IAC7D,QAAQ,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAClD,wEAAwE;IACxE,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACpF,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC/C;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAC/C,4EAA4E;IAC5E,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACjF,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAOD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,EACjC,WAAW,EACX,gBAAqB,EACrB,QAAQ,EACR,kBAAkB,EAClB,QAAQ,EACR,MAAM,EACN,cAAc,EACd,UAAU,EACb,EAAE,0BAA0B,2CAuH5B"}
1
+ {"version":3,"file":"UiGranteeAsyncPicker.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiGranteeAsyncPicker/UiGranteeAsyncPicker.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAOlD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EACH,KAAK,mBAAmB,EAG3B,MAAM,yCAAyC,CAAC;AAIjD;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IAClC,yFAAuF;IACvF,EAAE,EAAE,MAAM,CAAC;IACX;;yBAEqB;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,sBAAsB;IACtB,IAAI,EAAE,iBAAiB,CAAC;IACxB,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAiB,SAAQ,qBAAqB;IAC3D,gGAAgG;IAChG,eAAe,EAAE,mBAAmB,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACpC;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACnC,MAAM,EAAE,qBAAqB,EAAE,CAAC;IAChC,KAAK,EAAE,qBAAqB,EAAE,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACvC;;;;;OAKG;IACH,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjE;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACnD,6DAA6D;IAC7D,QAAQ,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAClD,wEAAwE;IACxE,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACpF;;;OAGG;IACH,cAAc,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACpD,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC/C;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAC/C,4EAA4E;IAC5E,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACjF,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAOD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,EACjC,WAAW,EACX,gBAAqB,EACrB,QAAQ,EACR,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,QAAQ,EACR,MAAM,EACN,cAAc,EACd,UAAU,EACb,EAAE,0BAA0B,2CAyH5B"}
@@ -18,7 +18,7 @@ const { b, e } = bem("gd-ui-kit-grantee-async-picker");
18
18
  *
19
19
  * @internal
20
20
  */
21
- export function UiGranteeAsyncPicker({ loadOptions, selectedGrantees = [], onSelect, onPermissionChange, onRemove, labels, onLabelsChange, dataTestId, }) {
21
+ export function UiGranteeAsyncPicker({ loadOptions, selectedGrantees = [], onSelect, onPermissionChange, disabledLevels, disabledTooltip, onRemove, labels, onLabelsChange, dataTestId, }) {
22
22
  const intl = useIntl();
23
23
  const groupsLabel = intl.formatMessage(uiGranteeAsyncPickerMessages.sectionGroups);
24
24
  const usersLabel = intl.formatMessage(uiGranteeAsyncPickerMessages.sectionUsers);
@@ -70,6 +70,6 @@ export function UiGranteeAsyncPicker({ loadOptions, selectedGrantees = [], onSel
70
70
  } })
71
71
  ] }), selectedGrantees.length === 0 ? (_jsx("div", { className: e("empty-state"), children: intl.formatMessage(olpAddGranteeDialogMessages.emptyState) })) : null, selectedGrantees.length > 0 ? (_jsx("ul", { className: e("picked-list"), children: selectedGrantees.map((g) => {
72
72
  const triggerLabel = intl.formatMessage(permissionLevelMessage(g.permissionLevel));
73
- return (_jsx("li", { className: e("picked-item"), children: _jsx(UiGranteeRow, { kind: g.kind, name: g.name, email: g.email, controls: _jsx(UiPermissionMenu, { selectedLevel: g.permissionLevel, onPermissionChange: (next) => onPermissionChange?.(g, next), labels: scopeLabels, selectedLabelIds: g.labelIds ?? allLabelIds, onLabelsChange: (ids) => onLabelsChange?.(g, ids), onRemoveAccess: onRemove ? () => onRemove(g) : undefined, anchor: _jsx(UiButton, { label: triggerLabel, variant: "dropdownInline", size: "small", iconAfter: "navigateDown" }) }) }) }, g.id));
73
+ return (_jsx("li", { className: e("picked-item"), children: _jsx(UiGranteeRow, { kind: g.kind, name: g.name, email: g.email, controls: _jsx(UiPermissionMenu, { selectedLevel: g.permissionLevel, onPermissionChange: (next) => onPermissionChange?.(g, next), disabledLevels: disabledLevels, disabledTooltip: disabledTooltip, labels: scopeLabels, selectedLabelIds: g.labelIds ?? allLabelIds, onLabelsChange: (ids) => onLabelsChange?.(g, ids), onRemoveAccess: onRemove ? () => onRemove(g) : undefined, anchor: _jsx(UiButton, { label: triggerLabel, variant: "dropdownInline", size: "small", iconAfter: "navigateDown" }) }) }) }, g.id));
74
74
  }) })) : null] }));
75
75
  }
@@ -6521,6 +6521,13 @@ export declare interface IUiAddGranteeDialogCardProps {
6521
6521
  objectTitle: string;
6522
6522
  /** Loader passed straight through to the embedded `UiGranteeAsyncPicker`. */
6523
6523
  loadOptions: (search: string) => Promise<IUiGranteeAsyncOptions>;
6524
+ /**
6525
+ * Levels each picked grantee's menu renders disabled — the caller cannot grant a
6526
+ * level they do not hold themselves. Passed through to the picker.
6527
+ */
6528
+ disabledLevels?: ReadonlyArray<PermissionMenuLevel>;
6529
+ /** Tooltip shown on those disabled levels. */
6530
+ disabledTooltip?: string;
6524
6531
  /**
6525
6532
  * Grantees currently picked. Single source of truth — the card derives all
6526
6533
  * row state from it and emits the next list via `onSelectedGranteesChange`.
@@ -6965,6 +6972,7 @@ export declare interface IUiCheckboxProps {
6965
6972
  export declare interface IUiChipAccessibilityConfig extends IAccessibilityConfigBase, IDropdownButtonAccessibilityConfig {
6966
6973
  deleteAriaLabel?: string;
6967
6974
  deleteAriaDescribedBy?: string;
6975
+ iconBeforeAriaLabel?: string;
6968
6976
  }
6969
6977
 
6970
6978
  /**
@@ -7738,6 +7746,13 @@ export declare interface IUiGranteeAsyncPickerProps {
7738
7746
  onSelect: (option: IUiGranteeAsyncOption) => void;
7739
7747
  /** Fires when the user changes the permission level on a picked row. */
7740
7748
  onPermissionChange?: (grantee: IUiPickedGrantee, next: PermissionMenuLevel) => void;
7749
+ /**
7750
+ * Levels each picked grantee's menu renders disabled — the caller cannot grant a
7751
+ * level they do not hold themselves. See {@link UiPermissionMenu}.
7752
+ */
7753
+ disabledLevels?: ReadonlyArray<PermissionMenuLevel>;
7754
+ /** Tooltip shown on those disabled levels. */
7755
+ disabledTooltip?: string;
7741
7756
  /** Fires when the user picks Remove access in the row's permission menu. */
7742
7757
  onRemove?: (grantee: IUiPickedGrantee) => void;
7743
7758
  /**
@@ -10760,7 +10775,7 @@ export declare function UiAddGranteeDialog({ isOpen, ...cardProps }: IUiAddGrant
10760
10775
  *
10761
10776
  * @internal
10762
10777
  */
10763
- export declare function UiAddGranteeDialogCard({ objectTitle, loadOptions, selectedGrantees, onSelectedGranteesChange, initialPermissionLevel, labels, onBack, onClose, onCancel, onShare, dataTestId }: IUiAddGranteeDialogCardProps): JSX.Element;
10778
+ export declare function UiAddGranteeDialogCard({ objectTitle, loadOptions, disabledLevels, disabledTooltip, selectedGrantees, onSelectedGranteesChange, initialPermissionLevel, labels, onBack, onClose, onCancel, onShare, dataTestId }: IUiAddGranteeDialogCardProps): JSX.Element;
10764
10779
 
10765
10780
  /**
10766
10781
  * @internal
@@ -11180,7 +11195,7 @@ export declare function UiGeneralAccessRadio({ value, onChange, disabled, worksp
11180
11195
  *
11181
11196
  * @internal
11182
11197
  */
11183
- export declare function UiGranteeAsyncPicker({ loadOptions, selectedGrantees, onSelect, onPermissionChange, onRemove, labels, onLabelsChange, dataTestId }: IUiGranteeAsyncPickerProps): JSX.Element;
11198
+ export declare function UiGranteeAsyncPicker({ loadOptions, selectedGrantees, onSelect, onPermissionChange, disabledLevels, disabledTooltip, onRemove, labels, onLabelsChange, dataTestId }: IUiGranteeAsyncPickerProps): JSX.Element;
11184
11199
 
11185
11200
  /**
11186
11201
  * 32×32 circle avatar used by the OLP share-dialog grantee list. Thin wrapper
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-kit",
3
- "version": "11.53.0",
3
+ "version": "11.54.0-alpha.0",
4
4
  "description": "GoodData SDK - UI Building Components",
5
5
  "license": "MIT",
6
6
  "author": "GoodData Corporation",
@@ -78,11 +78,11 @@
78
78
  "unified": "^11.0.5",
79
79
  "uuid": "11.1.1",
80
80
  "yaml": "2.8.3",
81
- "@gooddata/sdk-backend-spi": "11.53.0",
82
- "@gooddata/sdk-model": "11.53.0",
83
- "@gooddata/sdk-ui": "11.53.0",
84
- "@gooddata/sdk-ui-theme-provider": "11.53.0",
85
- "@gooddata/util": "11.53.0"
81
+ "@gooddata/sdk-backend-spi": "11.54.0-alpha.0",
82
+ "@gooddata/sdk-model": "11.54.0-alpha.0",
83
+ "@gooddata/sdk-ui-theme-provider": "11.54.0-alpha.0",
84
+ "@gooddata/util": "11.54.0-alpha.0",
85
+ "@gooddata/sdk-ui": "11.54.0-alpha.0"
86
86
  },
87
87
  "devDependencies": {
88
88
  "@microsoft/api-documenter": "^7.17.0",
@@ -131,11 +131,11 @@
131
131
  "typescript": "5.9.3",
132
132
  "vitest": "4.1.8",
133
133
  "vitest-dom": "0.1.1",
134
- "@gooddata/eslint-config": "11.53.0",
135
- "@gooddata/oxlint-config": "11.53.0",
136
- "@gooddata/reference-workspace": "11.53.0",
137
- "@gooddata/sdk-backend-mockingbird": "11.53.0",
138
- "@gooddata/stylelint-config": "11.53.0"
134
+ "@gooddata/eslint-config": "11.54.0-alpha.0",
135
+ "@gooddata/oxlint-config": "11.54.0-alpha.0",
136
+ "@gooddata/reference-workspace": "11.54.0-alpha.0",
137
+ "@gooddata/sdk-backend-mockingbird": "11.54.0-alpha.0",
138
+ "@gooddata/stylelint-config": "11.54.0-alpha.0"
139
139
  },
140
140
  "peerDependencies": {
141
141
  "react": "^18.0.0 || ^19.0.0",