@gooddata/sdk-ui-kit 11.41.0 → 11.42.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.
Files changed (50) hide show
  1. package/esm/@ui/UiAddGranteeDialog/UiAddGranteeDialog.d.ts +6 -4
  2. package/esm/@ui/UiAddGranteeDialog/UiAddGranteeDialog.d.ts.map +1 -1
  3. package/esm/@ui/UiAddGranteeDialog/UiAddGranteeDialog.js +6 -6
  4. package/esm/@ui/UiConfirmDialog/UiConfirmDialog.d.ts +10 -30
  5. package/esm/@ui/UiConfirmDialog/UiConfirmDialog.d.ts.map +1 -1
  6. package/esm/@ui/UiConfirmDialog/UiConfirmDialog.js +10 -22
  7. package/esm/@ui/UiConfirmDialog/UiConfirmDialogCard.d.ts +40 -0
  8. package/esm/@ui/UiConfirmDialog/UiConfirmDialogCard.d.ts.map +1 -0
  9. package/esm/@ui/UiConfirmDialog/UiConfirmDialogCard.js +26 -0
  10. package/esm/@ui/UiGranteeRowControls/UiGranteeRowControls.js +1 -1
  11. package/esm/@ui/UiModalDialog/UiDialogBody.d.ts +17 -0
  12. package/esm/@ui/UiModalDialog/UiDialogBody.d.ts.map +1 -0
  13. package/esm/@ui/UiModalDialog/UiDialogBody.js +24 -0
  14. package/esm/@ui/{UiDialogShell → UiModalDialog}/UiDialogFooter.d.ts.map +1 -1
  15. package/esm/@ui/{UiDialogShell → UiModalDialog}/UiDialogHeader.d.ts.map +1 -1
  16. package/esm/@ui/{UiDialogShell → UiModalDialog}/UiDialogHeader.js +1 -1
  17. package/esm/@ui/UiModalDialog/UiModalDialog.d.ts +51 -0
  18. package/esm/@ui/UiModalDialog/UiModalDialog.d.ts.map +1 -0
  19. package/esm/@ui/UiModalDialog/UiModalDialog.js +135 -0
  20. package/esm/@ui/UiObjectShareDialog/UiObjectShareDialog.d.ts +8 -49
  21. package/esm/@ui/UiObjectShareDialog/UiObjectShareDialog.d.ts.map +1 -1
  22. package/esm/@ui/UiObjectShareDialog/UiObjectShareDialog.js +9 -23
  23. package/esm/@ui/UiObjectShareDialog/UiObjectShareDialogCard.d.ts +59 -0
  24. package/esm/@ui/UiObjectShareDialog/UiObjectShareDialogCard.d.ts.map +1 -0
  25. package/esm/@ui/UiObjectShareDialog/UiObjectShareDialogCard.js +26 -0
  26. package/esm/@ui/UiTextInput/UiTextInput.d.ts +10 -1
  27. package/esm/@ui/UiTextInput/UiTextInput.d.ts.map +1 -1
  28. package/esm/@ui/UiTextInput/UiTextInput.js +3 -3
  29. package/esm/Overlay/OverlayContext.d.ts +1 -1
  30. package/esm/Overlay/OverlayContext.d.ts.map +1 -1
  31. package/esm/Overlay/OverlayContext.js +13 -5
  32. package/esm/index.d.ts +8 -5
  33. package/esm/index.d.ts.map +1 -1
  34. package/esm/index.js +7 -4
  35. package/esm/sdk-ui-kit.d.ts +138 -90
  36. package/esm/typings/utilities.d.ts.map +1 -1
  37. package/esm/typings/utilities.js +3 -1
  38. package/package.json +11 -11
  39. package/src/@ui/UiConfirmDialog/UiConfirmDialog.scss +0 -7
  40. package/src/@ui/{UiDialogShell/UiDialogShell.scss → UiModalDialog/UiModalDialog.scss} +23 -6
  41. package/src/@ui/UiPermissionMenu/UiPermissionMenu.scss +15 -2
  42. package/src/@ui/index.scss +1 -1
  43. package/styles/css/main.css +74 -58
  44. package/styles/css/main.css.map +1 -1
  45. package/esm/@ui/UiDialogShell/UiDialogShell.d.ts +0 -59
  46. package/esm/@ui/UiDialogShell/UiDialogShell.d.ts.map +0 -1
  47. package/esm/@ui/UiDialogShell/UiDialogShell.js +0 -36
  48. /package/esm/@ui/{UiDialogShell → UiModalDialog}/UiDialogFooter.d.ts +0 -0
  49. /package/esm/@ui/{UiDialogShell → UiModalDialog}/UiDialogFooter.js +0 -0
  50. /package/esm/@ui/{UiDialogShell → UiModalDialog}/UiDialogHeader.d.ts +0 -0
@@ -76,6 +76,7 @@ import type { MetricType } from '@gooddata/sdk-model';
76
76
  import { Middleware } from '@floating-ui/react';
77
77
  import { ModifierKey } from 'react';
78
78
  import { MouseEvent as MouseEvent_2 } from 'react';
79
+ import { MouseEventHandler } from 'react';
79
80
  import { MutableRefObject } from 'react';
80
81
  import { NamedExoticComponent } from 'react';
81
82
  import { ObjRef } from '@gooddata/sdk-model';
@@ -6295,6 +6296,8 @@ export declare interface ITypographyProps {
6295
6296
  * @internal
6296
6297
  */
6297
6298
  export declare interface IUiAddGranteeDialogProps {
6299
+ /** Whether the dialog is shown. */
6300
+ isOpen: boolean;
6298
6301
  /** Object title shown in the header — wrapped into `Share "\{title\}"`. */
6299
6302
  objectTitle: string;
6300
6303
  /** Current search query. */
@@ -6310,7 +6313,7 @@ export declare interface IUiAddGranteeDialogProps {
6310
6313
  selectedGrantee?: ReactNode;
6311
6314
  /** Fires when the user clicks the header back-arrow button. */
6312
6315
  onBack: () => void;
6313
- /** Fires when the user clicks the header X close button. */
6316
+ /** Fires when the user clicks the header X close button or dismisses the modal. */
6314
6317
  onClose: () => void;
6315
6318
  /** Fires when the user clicks Cancel in the footer. */
6316
6319
  onCancel: () => void;
@@ -6318,7 +6321,7 @@ export declare interface IUiAddGranteeDialogProps {
6318
6321
  onAdd: () => void;
6319
6322
  /** When true, the primary Add button is disabled. */
6320
6323
  isAddDisabled?: boolean;
6321
- /** Test id forwarded to the root element. */
6324
+ /** Test id forwarded to the modal overlay. */
6322
6325
  dataTestId?: string;
6323
6326
  }
6324
6327
 
@@ -6737,7 +6740,7 @@ export declare interface IUiComboboxState {
6737
6740
  /**
6738
6741
  * @internal
6739
6742
  */
6740
- export declare interface IUiConfirmDialogProps {
6743
+ export declare interface IUiConfirmDialogCardProps {
6741
6744
  /** Dialog title rendered inside the header. */
6742
6745
  title: string;
6743
6746
  /** Body content — typically a sentence or two of description. */
@@ -6752,10 +6755,18 @@ export declare interface IUiConfirmDialogProps {
6752
6755
  onCancel: () => void;
6753
6756
  /** Fires when the user clicks the footer confirm button. */
6754
6757
  onConfirm: () => void;
6755
- /** Test id forwarded to the root element. */
6758
+ /** Test id forwarded to the root of the card composition. */
6756
6759
  dataTestId?: string;
6757
6760
  }
6758
6761
 
6762
+ /**
6763
+ * @internal
6764
+ */
6765
+ export declare interface IUiConfirmDialogProps extends IUiConfirmDialogCardProps {
6766
+ /** Whether the dialog is shown. */
6767
+ isOpen: boolean;
6768
+ }
6769
+
6759
6770
  /**
6760
6771
  * @internal
6761
6772
  */
@@ -6818,6 +6829,14 @@ export declare interface IUiDateProps {
6818
6829
  allowRelative?: boolean;
6819
6830
  }
6820
6831
 
6832
+ /**
6833
+ * @internal
6834
+ */
6835
+ export declare interface IUiDialogBodyProps {
6836
+ /** Description content — typically a sentence or two of body text. */
6837
+ children: ReactNode;
6838
+ }
6839
+
6821
6840
  /**
6822
6841
  * @internal
6823
6842
  */
@@ -6846,48 +6865,6 @@ export declare interface IUiDialogHeaderProps {
6846
6865
  leading?: ReactNode;
6847
6866
  }
6848
6867
 
6849
- /**
6850
- * Accessibility config for a dialog. By default the shell wires
6851
- * `aria-labelledby` to the `UiDialogHeader` title via
6852
- * context — no config is needed when a header is present. For headerless
6853
- * dialogs, pass `ariaLabel`; to point at an external title
6854
- * element, pass `ariaLabelledBy`.
6855
- *
6856
- * @internal
6857
- */
6858
- export declare interface IUiDialogShellAccessibilityConfig {
6859
- ariaLabel?: string;
6860
- ariaLabelledBy?: string;
6861
- ariaDescribedBy?: string;
6862
- }
6863
-
6864
- /**
6865
- * @internal
6866
- */
6867
- export declare interface IUiDialogShellProps {
6868
- /** Header / body / footer composed by the caller. */
6869
- children: ReactNode;
6870
- /** Dialog width in px. Defaults to 540. */
6871
- width?: number;
6872
- /**
6873
- * When true, the dialog acts as a modal: focus is trapped inside,
6874
- * autofocus + return-focus-on-unmount apply, ESC fires `onClose`,
6875
- * and `aria-modal="true"` is set. Leave off for inline
6876
- * non-blocking dialog cards.
6877
- */
6878
- isModal?: boolean;
6879
- /** Fires when the user dismisses via ESC. Only active when `isModal`. */
6880
- onClose?: () => void;
6881
- /**
6882
- * Accessibility config. Usually unnecessary — when `UiDialogHeader`
6883
- * is used as a child the shell auto-wires `aria-labelledby` to
6884
- * the header's title.
6885
- */
6886
- accessibilityConfig?: IUiDialogShellAccessibilityConfig;
6887
- /** Test id forwarded to the root element. */
6888
- dataTestId?: string;
6889
- }
6890
-
6891
6868
  /**
6892
6869
  * @internal
6893
6870
  */
@@ -7774,6 +7751,30 @@ export declare interface IUiMenuSubview {
7774
7751
  payload?: Record<string, unknown>;
7775
7752
  }
7776
7753
 
7754
+ /**
7755
+ * @internal
7756
+ */
7757
+ export declare interface IUiModalDialogProps {
7758
+ /** Dialog content composed by the caller — typically `UiDialogHeader`,
7759
+ * an optional `UiDialogBody`, and `UiDialogFooter`. */
7760
+ children: ReactNode;
7761
+ /** Whether the modal is shown. */
7762
+ isOpen: boolean;
7763
+ /** Fires when the user dismisses via Esc, backdrop click, or `onClose` from inside. */
7764
+ onClose: () => void;
7765
+ /** Card width in px. Defaults to 540. */
7766
+ width?: number;
7767
+ /**
7768
+ * Overrides for the dialog landmark's accessible name. Usually unnecessary —
7769
+ * the landmark auto-wires `aria-labelledby` to the `UiDialogHeader` title
7770
+ * via context. For headerless dialogs, pass `ariaLabel`; to point at an
7771
+ * external title, pass `ariaLabelledBy`.
7772
+ */
7773
+ accessibilityConfig?: Pick<IAccessibilityConfigBase, "ariaLabel" | "ariaLabelledBy">;
7774
+ /** Test id forwarded to the overlay element. */
7775
+ dataTestId?: string;
7776
+ }
7777
+
7777
7778
  /**
7778
7779
  * @internal
7779
7780
  */
@@ -7794,6 +7795,32 @@ export declare interface IUiNavigationItem {
7794
7795
  tabIndex?: number;
7795
7796
  }
7796
7797
 
7798
+ /**
7799
+ * @internal
7800
+ */
7801
+ export declare interface IUiObjectShareDialogCardProps {
7802
+ /** Object title shown in the header — wrapped into `Share "\{title\}"`. */
7803
+ objectTitle: string;
7804
+ /** Fires when the user clicks the header X button OR the footer Close button. */
7805
+ onClose: () => void;
7806
+ /** Grantee rows shown inside the SHARED WITH section, in render order. */
7807
+ grantees: IUiObjectShareDialogGrantee[];
7808
+ /** Fires when the user clicks the + Add link in the SHARED WITH heading. */
7809
+ onAddClick: () => void;
7810
+ /** Selected general-access option. */
7811
+ generalAccess: GeneralAccessValue;
7812
+ /** Fires when the user picks a different general-access option. */
7813
+ onGeneralAccessChange: (value: GeneralAccessValue) => void;
7814
+ /**
7815
+ * Optional slot rendered next to the "All workspace members" row — typically a
7816
+ * `UiGranteeRowControls` pair for the workspace-wide labels picker
7817
+ * and permission level.
7818
+ */
7819
+ workspaceControls?: ReactNode;
7820
+ /** Test id forwarded to the root element. */
7821
+ dataTestId?: string;
7822
+ }
7823
+
7797
7824
  /**
7798
7825
  * Visual data for a single grantee row inside the dialog. The `controls`
7799
7826
  * slot lets the caller plug in the per-row controls (typically
@@ -7819,27 +7846,9 @@ export declare interface IUiObjectShareDialogGrantee {
7819
7846
  /**
7820
7847
  * @internal
7821
7848
  */
7822
- export declare interface IUiObjectShareDialogProps {
7823
- /** Object title shown in the header wrapped into `Share "\{title\}"`. */
7824
- objectTitle: string;
7825
- /** Fires when the user clicks the header X button OR the footer Close button. */
7826
- onClose: () => void;
7827
- /** Grantee rows shown inside the SHARED WITH section, in render order. */
7828
- grantees: IUiObjectShareDialogGrantee[];
7829
- /** Fires when the user clicks the + Add link in the SHARED WITH heading. */
7830
- onAddClick: () => void;
7831
- /** Selected general-access option. */
7832
- generalAccess: GeneralAccessValue;
7833
- /** Fires when the user picks a different general-access option. */
7834
- onGeneralAccessChange: (value: GeneralAccessValue) => void;
7835
- /**
7836
- * Optional slot rendered next to the "All workspace members" row — typically a
7837
- * `UiGranteeRowControls` pair for the workspace-wide labels picker
7838
- * and permission level.
7839
- */
7840
- workspaceControls?: ReactNode;
7841
- /** Test id forwarded to the root element. */
7842
- dataTestId?: string;
7849
+ export declare interface IUiObjectShareDialogProps extends IUiObjectShareDialogCardProps {
7850
+ /** Whether the dialog is shown. */
7851
+ isOpen: boolean;
7843
7852
  }
7844
7853
 
7845
7854
  /**
@@ -8434,6 +8443,14 @@ export declare interface IUiTextInputProps {
8434
8443
  accessibilityConfig?: IAccessibilityConfigBase;
8435
8444
  disabled?: boolean;
8436
8445
  autoFocus?: boolean;
8446
+ /** Forwarded to the input element. Use for autocomplete / combobox patterns. */
8447
+ onKeyDown?: KeyboardEventHandler<HTMLInputElement>;
8448
+ /** Forwarded to the input element. */
8449
+ onFocus?: FocusEventHandler<HTMLInputElement>;
8450
+ /** Forwarded to the input element. */
8451
+ onBlur?: FocusEventHandler<HTMLInputElement>;
8452
+ /** Forwarded to the input element. */
8453
+ onClick?: MouseEventHandler<HTMLInputElement>;
8437
8454
  /** Test id forwarded to the input element. */
8438
8455
  dataTestId?: string;
8439
8456
  }
@@ -9945,13 +9962,13 @@ export declare function Typography({ tagName: Tag, children, className, title, i
9945
9962
  export declare type TypographyTagName = "h1" | "h2" | "h3" | "p";
9946
9963
 
9947
9964
  /**
9948
- * Standalone dialog for adding a grantee, opened from the share dialog's
9965
+ * Modal dialog for adding a grantee, opened from the share dialog's
9949
9966
  * "+ Add" action. Lets the author search for a user or group, preview the
9950
9967
  * grantee they picked, and confirm adding them with the footer Add button.
9951
9968
  *
9952
9969
  * @internal
9953
9970
  */
9954
- export declare function UiAddGranteeDialog({ objectTitle, searchQuery, onSearchQueryChange, selectedGrantee, onBack, onClose, onCancel, onAdd, isAddDisabled, dataTestId }: IUiAddGranteeDialogProps): JSX.Element;
9971
+ export declare function UiAddGranteeDialog({ isOpen, objectTitle, searchQuery, onSearchQueryChange, selectedGrantee, onBack, onClose, onCancel, onAdd, isAddDisabled, dataTestId }: IUiAddGranteeDialogProps): JSX.Element;
9955
9972
 
9956
9973
  /**
9957
9974
  * @internal
@@ -10172,14 +10189,26 @@ export declare function UiComboboxPopup({ style, className, children, ...htmlPro
10172
10189
  export declare type UiComboboxPopupProps = HTMLAttributes<HTMLDivElement>;
10173
10190
 
10174
10191
  /**
10175
- * Compact modal confirm dialog used by the OLP share flow for actions that
10176
- * need explicit user confirmation (granting workspace access, restricting
10177
- * access, removing a grantee, transferring ownership). Always modal focus
10178
- * is trapped inside, autofocus + return-focus apply, and ESC fires onClose.
10192
+ * Modal confirm dialog used for actions that need explicit user confirmation
10193
+ * (granting workspace access, restricting access, removing a grantee,
10194
+ * transferring ownership). Wraps `UiConfirmDialogCard` in `UiModalDialog`
10195
+ * for the full modal contract portal, dimmed backdrop, focus trap,
10196
+ * Esc and backdrop dismiss.
10179
10197
  *
10180
10198
  * @internal
10181
10199
  */
10182
- export declare function UiConfirmDialog({ title, description, confirmLabel, confirmVariant, onClose, onCancel, onConfirm, dataTestId }: IUiConfirmDialogProps): JSX.Element;
10200
+ export declare function UiConfirmDialog({ isOpen, ...cardProps }: IUiConfirmDialogProps): JSX.Element;
10201
+
10202
+ /**
10203
+ * Confirm dialog composition — header, description body, footer with Cancel
10204
+ * and Confirm buttons. Designed to be rendered inside `UiModalDialog`, which
10205
+ * provides the modal chrome (portal, backdrop, card surface, focus trap,
10206
+ * dismiss). `UiConfirmDialog` wraps this composition in `UiModalDialog`
10207
+ * with the right width and exposes the combined surface to callers.
10208
+ *
10209
+ * @internal
10210
+ */
10211
+ export declare function UiConfirmDialogCard({ title, description, confirmLabel, confirmVariant, onClose, onCancel, onConfirm, dataTestId }: IUiConfirmDialogCardProps): JSX.Element;
10183
10212
 
10184
10213
  /**
10185
10214
  * Generic chip-shaped dropdown trigger primitive. One source of truth for filter-bar chip
@@ -10204,29 +10233,28 @@ export declare function UiCopyButton({ label, clipboardContent, successMessage,
10204
10233
  export declare function UiDate({ date, locale, relativeThresholdMs, absoluteOptions, allowRelative }: IUiDateProps): JSX.Element;
10205
10234
 
10206
10235
  /**
10207
- * Dialog footer: right-aligned cluster of action buttons. Optionally renders
10208
- * a 1px divider above the actions.
10236
+ * Dialog description body slot for cards whose meaning lives in a single
10237
+ * block of text (confirm dialogs). Carries the dialog's `descriptionId` so
10238
+ * the modal landmark's `aria-describedby` resolves to this element.
10209
10239
  *
10210
10240
  * @internal
10211
10241
  */
10212
- export declare function UiDialogFooter({ children, divider }: IUiDialogFooterProps): JSX.Element;
10242
+ export declare function UiDialogBody({ children }: IUiDialogBodyProps): JSX.Element;
10213
10243
 
10214
10244
  /**
10215
- * Dialog header: optional leading slot + title + optional close X.
10245
+ * Dialog footer: right-aligned cluster of action buttons. Optionally renders
10246
+ * a 1px divider above the actions.
10216
10247
  *
10217
10248
  * @internal
10218
10249
  */
10219
- export declare function UiDialogHeader({ title, titleSize, onClose, leading }: IUiDialogHeaderProps): JSX.Element;
10250
+ export declare function UiDialogFooter({ children, divider }: IUiDialogFooterProps): JSX.Element;
10220
10251
 
10221
10252
  /**
10222
- * Plain dialog card chrome 4px radius, soft shadow, complementary-0 fill,
10223
- * 20px padding. Holds whatever the caller composes inside. Set
10224
- * `isModal` for blocking dialogs (adds focus trap, autofocus,
10225
- * return-focus, ESC handling and `aria-modal`).
10253
+ * Dialog header: optional leading slot + title + optional close X.
10226
10254
  *
10227
10255
  * @internal
10228
10256
  */
10229
- export declare function UiDialogShell({ children, width, isModal, onClose, accessibilityConfig, dataTestId }: IUiDialogShellProps): JSX.Element;
10257
+ export declare function UiDialogHeader({ title, titleSize, onClose, leading }: IUiDialogHeaderProps): JSX.Element;
10230
10258
 
10231
10259
  /**
10232
10260
  * @internal
@@ -10445,19 +10473,39 @@ export declare type UiListboxAriaAttributes = Omit<IDropdownBodyRenderProps["ari
10445
10473
  */
10446
10474
  export declare function UiMenu<T extends IUiMenuItemData = object, M extends object = object>(props: IUiMenuProps<T, M>): ReactNode;
10447
10475
 
10476
+ /**
10477
+ * Modal dialog — portal, dimmed backdrop, card chrome (radius, shadow, fill,
10478
+ * padding), focus management, dismiss-on-outside / Esc, and the dialog
10479
+ * landmark (`role="dialog"`, `aria-modal="true"`). Compose `UiDialogHeader`,
10480
+ * an optional `UiDialogBody`, and `UiDialogFooter` as children.
10481
+ *
10482
+ * @internal
10483
+ */
10484
+ export declare function UiModalDialog({ children, isOpen, onClose, width, accessibilityConfig, dataTestId }: IUiModalDialogProps): JSX.Element | null;
10485
+
10448
10486
  /**
10449
10487
  * @internal
10450
10488
  */
10451
10489
  export declare function UiNavigationBypass({ label, items, onItemClick, style }: IUiNavigationBypassProps): JSX.Element;
10452
10490
 
10453
10491
  /**
10454
- * Root component for the OLP share dialog — composes the header, the grantee
10455
- * list (with its `+ Add` action), the general-access radio, and the
10456
- * footer Close button.
10492
+ * Object share dialog — wraps `UiObjectShareDialogCard` in `UiModalDialog`
10493
+ * for the full modal contract (portal, dimmed backdrop, focus trap, Esc
10494
+ * and backdrop dismiss).
10495
+ *
10496
+ * @internal
10497
+ */
10498
+ export declare function UiObjectShareDialog({ isOpen, ...cardProps }: IUiObjectShareDialogProps): JSX.Element;
10499
+
10500
+ /**
10501
+ * Object share dialog card — header, grantee list, general-access radio,
10502
+ * footer Close button. Renders inline as a plain card. For modal behavior
10503
+ * (portal, backdrop, focus trap, dismiss), use `UiObjectShareDialog`
10504
+ * which wraps this in `UiModalDialog`.
10457
10505
  *
10458
10506
  * @internal
10459
10507
  */
10460
- export declare function UiObjectShareDialog({ objectTitle, onClose, grantees, onAddClick, generalAccess, onGeneralAccessChange, workspaceControls, dataTestId }: IUiObjectShareDialogProps): JSX.Element;
10508
+ export declare function UiObjectShareDialogCard({ objectTitle, onClose, grantees, onAddClick, generalAccess, onGeneralAccessChange, workspaceControls, dataTestId }: IUiObjectShareDialogCardProps): JSX.Element;
10461
10509
 
10462
10510
  /**
10463
10511
  * @internal
@@ -10636,7 +10684,7 @@ export declare function UiTags({ tags, tagOptions, addLabel, nameLabel, cancelLa
10636
10684
  *
10637
10685
  * @internal
10638
10686
  */
10639
- export declare function UiTextInput({ type, value, onChange, label, placeholder, iconBefore, iconAfter, onIconAfter, accessibilityConfig, disabled, autoFocus, dataTestId }: IUiTextInputProps): JSX.Element;
10687
+ export declare function UiTextInput({ type, value, onChange, label, placeholder, iconBefore, iconAfter, onIconAfter, accessibilityConfig, disabled, autoFocus, onKeyDown, onFocus, onBlur, onClick, dataTestId }: IUiTextInputProps): JSX.Element;
10640
10688
 
10641
10689
  /**
10642
10690
  * Interpolation values accepted by `react-intl`'s `formatMessage`, **narrowed
@@ -11077,7 +11125,7 @@ export declare const useOverlayZIndex: (uuid: string) => number | undefined;
11077
11125
  *
11078
11126
  * @internal
11079
11127
  */
11080
- export declare function useOverlayZIndexWithRegister(): number | undefined;
11128
+ export declare function useOverlayZIndexWithRegister(): number;
11081
11129
 
11082
11130
  /**
11083
11131
  * Hook to consume responsive context.
@@ -1 +1 @@
1
- {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/typings/utilities.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAEnE;;;GAGG;AACH,oBAAY,aAAa;IACrB,cAAc,KAAK;IACnB,eAAe,KAAK;CACvB;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAC3C,mBAAmB,CAAC,EAAE,wBAAwB,GAC/C,cAAc,CAAC,WAAW,CAAC,CAe7B"}
1
+ {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/typings/utilities.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAEnE;;;GAGG;AACH,oBAAY,aAAa;IACrB,cAAc,KAAK;IACnB,eAAe,KAAK;CACvB;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAC3C,mBAAmB,CAAC,EAAE,wBAAwB,GAC/C,cAAc,CAAC,WAAW,CAAC,CAiB7B"}
@@ -1,4 +1,4 @@
1
- // (C) 2020-2025 GoodData Corporation
1
+ // (C) 2020-2026 GoodData Corporation
2
2
  export { ENUM_KEY_CODE };
3
3
  /**
4
4
  * @deprecated use `event.key` or `event.code`. See https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode
@@ -25,5 +25,7 @@ export function accessibilityConfigToAttributes(accessibilityConfig) {
25
25
  "aria-controls": accessibilityConfig.ariaControls,
26
26
  "aria-haspopup": accessibilityConfig.ariaHaspopup,
27
27
  "aria-pressed": accessibilityConfig.ariaPressed,
28
+ "aria-autocomplete": accessibilityConfig.ariaAutocomplete,
29
+ "aria-activedescendant": accessibilityConfig.ariaActiveDescendant,
28
30
  };
29
31
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-kit",
3
- "version": "11.41.0",
3
+ "version": "11.42.0-alpha.0",
4
4
  "description": "GoodData SDK - UI Building Components",
5
5
  "license": "MIT",
6
6
  "author": "GoodData Corporation",
@@ -75,11 +75,11 @@
75
75
  "tslib": "2.8.1",
76
76
  "unified": "^11.0.5",
77
77
  "uuid": "11.1.1",
78
- "@gooddata/sdk-backend-spi": "11.41.0",
79
- "@gooddata/sdk-model": "11.41.0",
80
- "@gooddata/sdk-ui": "11.41.0",
81
- "@gooddata/sdk-ui-theme-provider": "11.41.0",
82
- "@gooddata/util": "11.41.0"
78
+ "@gooddata/sdk-backend-spi": "11.42.0-alpha.0",
79
+ "@gooddata/sdk-model": "11.42.0-alpha.0",
80
+ "@gooddata/sdk-ui": "11.42.0-alpha.0",
81
+ "@gooddata/util": "11.42.0-alpha.0",
82
+ "@gooddata/sdk-ui-theme-provider": "11.42.0-alpha.0"
83
83
  },
84
84
  "devDependencies": {
85
85
  "@microsoft/api-documenter": "^7.17.0",
@@ -128,11 +128,11 @@
128
128
  "typescript": "5.9.3",
129
129
  "vitest": "4.1.8",
130
130
  "vitest-dom": "0.1.1",
131
- "@gooddata/eslint-config": "11.41.0",
132
- "@gooddata/reference-workspace": "11.41.0",
133
- "@gooddata/oxlint-config": "11.41.0",
134
- "@gooddata/stylelint-config": "11.41.0",
135
- "@gooddata/sdk-backend-mockingbird": "11.41.0"
131
+ "@gooddata/eslint-config": "11.42.0-alpha.0",
132
+ "@gooddata/oxlint-config": "11.42.0-alpha.0",
133
+ "@gooddata/reference-workspace": "11.42.0-alpha.0",
134
+ "@gooddata/sdk-backend-mockingbird": "11.42.0-alpha.0",
135
+ "@gooddata/stylelint-config": "11.42.0-alpha.0"
136
136
  },
137
137
  "peerDependencies": {
138
138
  "react": "^18.0.0 || ^19.0.0",
@@ -3,11 +3,4 @@
3
3
  .gd-ui-kit-confirm-dialog {
4
4
  display: flex;
5
5
  flex-direction: column;
6
-
7
- &__body {
8
- font-size: 14px;
9
- line-height: 20px;
10
- color: var(--gd-palette-complementary-7);
11
- margin-bottom: var(--gd-spacing-20px);
12
- }
13
6
  }
@@ -1,12 +1,22 @@
1
1
  // (C) 2026 GoodData Corporation
2
2
 
3
- .gd-ui-kit-dialog-shell {
3
+ .gd-ui-kit-modal-dialog {
4
4
  display: flex;
5
- flex-direction: column;
6
- padding: var(--gd-spacing-20px);
7
- background-color: var(--gd-palette-complementary-0);
8
- border-radius: var(--gd-modal-borderRadius);
9
- box-shadow: 0 2px 8px var(--gd-shadow-color);
5
+ align-items: center;
6
+ justify-content: center;
7
+ background: var(--gd-modal-outsideBackgroundColor);
8
+
9
+ &__card {
10
+ display: flex;
11
+ flex-direction: column;
12
+ max-height: calc(100vh - 80px);
13
+ overflow-y: auto;
14
+ overscroll-behavior: contain;
15
+ padding: var(--gd-spacing-20px);
16
+ background-color: var(--gd-palette-complementary-0);
17
+ border-radius: var(--gd-modal-borderRadius);
18
+ box-shadow: 0 2px 8px var(--gd-shadow-color);
19
+ }
10
20
  }
11
21
 
12
22
  .gd-ui-kit-dialog-header {
@@ -43,6 +53,13 @@
43
53
  }
44
54
  }
45
55
 
56
+ .gd-ui-kit-dialog-body {
57
+ font-size: 14px;
58
+ line-height: 20px;
59
+ color: var(--gd-palette-complementary-7);
60
+ margin-bottom: var(--gd-spacing-20px);
61
+ }
62
+
46
63
  .gd-ui-kit-dialog-footer {
47
64
  display: flex;
48
65
  justify-content: flex-end;
@@ -24,6 +24,14 @@
24
24
  &__item-row {
25
25
  display: flex;
26
26
  align-items: stretch;
27
+
28
+ // Hover/focus highlight covers the full row (label button + adjacent
29
+ // tooltip-icon button), not just the label button. The two buttons
30
+ // are siblings — a partial highlight would look broken.
31
+ &:hover,
32
+ &:focus-within {
33
+ background: var(--gd-palette-complementary-2);
34
+ }
27
35
  }
28
36
 
29
37
  &__item {
@@ -40,11 +48,16 @@
40
48
  font: inherit;
41
49
  color: var(--gd-palette-complementary-8);
42
50
 
43
- &:hover,
44
51
  &:focus-visible {
45
- background: var(--gd-palette-complementary-2);
46
52
  outline: none;
47
53
  }
54
+
55
+ // Selected radio item — same convention as the legacy share dialog,
56
+ // which renders the active permission level in primary-base.
57
+ &[aria-checked="true"] {
58
+ color: var(--gd-palette-primary-base);
59
+ font-weight: 700;
60
+ }
48
61
  }
49
62
 
50
63
  &__item-label {
@@ -31,13 +31,13 @@
31
31
  @use "./UiInlineTextGenerator/UiInlineTextGenerator.scss";
32
32
  @use "./UiErrorPage/UiErrorPage.scss";
33
33
  @use "./UiSectionHeading/UiSectionHeading.scss";
34
- @use "./UiDialogShell/UiDialogShell.scss";
35
34
  @use "./UiConfirmDialog/UiConfirmDialog.scss";
36
35
  @use "./UiTextInput/UiTextInput.scss";
37
36
  @use "./UiRadio/UiRadio.scss";
38
37
  @use "./UiRadioRow/UiRadioRow.scss";
39
38
  @use "./UiAvatar/UiAvatar.scss";
40
39
  @use "./UiGranteeRow/UiGranteeRow.scss";
40
+ @use "./UiModalDialog/UiModalDialog.scss";
41
41
  @use "./UiObjectShareDialog/UiObjectShareDialog.scss";
42
42
  @use "./UiAddGranteeDialog/UiAddGranteeDialog.scss";
43
43
  @use "./UiGeneralAccessRadio/UiGeneralAccessRadio.scss";