@gooddata/sdk-ui-kit 11.51.0-alpha.0 → 11.51.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.
Files changed (60) hide show
  1. package/esm/@ui/UiGeneralAccessRadio/UiGeneralAccessRadio.d.ts +3 -2
  2. package/esm/@ui/UiGeneralAccessRadio/UiGeneralAccessRadio.d.ts.map +1 -1
  3. package/esm/@ui/UiGeneralAccessRadio/UiGeneralAccessRadio.js +7 -3
  4. package/esm/@ui/UiGranteeAsyncPicker/UiGranteeAsyncPicker.d.ts +5 -0
  5. package/esm/@ui/UiGranteeAsyncPicker/UiGranteeAsyncPicker.d.ts.map +1 -1
  6. package/esm/@ui/UiGranteeAsyncPicker/UiGranteeAsyncPicker.js +3 -5
  7. package/esm/@ui/UiGranteeRowControls/UiGranteeRowControls.d.ts +10 -16
  8. package/esm/@ui/UiGranteeRowControls/UiGranteeRowControls.d.ts.map +1 -1
  9. package/esm/@ui/UiGranteeRowControls/UiGranteeRowControls.js +19 -32
  10. package/esm/@ui/UiLabelsChecklist/UiLabelsChecklist.d.ts +3 -1
  11. package/esm/@ui/UiLabelsChecklist/UiLabelsChecklist.d.ts.map +1 -1
  12. package/esm/@ui/UiLabelsChecklist/UiLabelsChecklist.js +12 -3
  13. package/esm/@ui/UiObjectShareDialog/UiObjectShareDialogCard.d.ts +9 -3
  14. package/esm/@ui/UiObjectShareDialog/UiObjectShareDialogCard.d.ts.map +1 -1
  15. package/esm/@ui/UiObjectShareDialog/UiObjectShareDialogCard.js +3 -3
  16. package/esm/@ui/UiPermissionMenu/UiPermissionMenu.d.ts +18 -10
  17. package/esm/@ui/UiPermissionMenu/UiPermissionMenu.d.ts.map +1 -1
  18. package/esm/@ui/UiPermissionMenu/UiPermissionMenu.js +45 -13
  19. package/esm/@ui/UiSubmenuHeader/UiSubmenuHeader.d.ts +4 -2
  20. package/esm/@ui/UiSubmenuHeader/UiSubmenuHeader.d.ts.map +1 -1
  21. package/esm/@ui/UiSubmenuHeader/UiSubmenuHeader.js +2 -2
  22. package/esm/@ui/hooks/useCloseOnEscape.d.ts +4 -1
  23. package/esm/@ui/hooks/useCloseOnEscape.d.ts.map +1 -1
  24. package/esm/@ui/hooks/useCloseOnEscape.js +11 -5
  25. package/esm/List/InvertableSelect/InvertableSelectVirtualised.d.ts.map +1 -1
  26. package/esm/List/InvertableSelect/InvertableSelectVirtualised.js +4 -1
  27. package/esm/ParameterControl/StringParameterControlDropdown.js +2 -2
  28. package/esm/Timezone/TimezoneSelect.d.ts +108 -0
  29. package/esm/Timezone/TimezoneSelect.d.ts.map +1 -0
  30. package/esm/Timezone/TimezoneSelect.js +90 -0
  31. package/esm/Timezone/timezones.d.ts +86 -0
  32. package/esm/Timezone/timezones.d.ts.map +1 -0
  33. package/esm/Timezone/timezones.js +253 -0
  34. package/esm/index.d.ts +3 -2
  35. package/esm/index.d.ts.map +1 -1
  36. package/esm/index.js +3 -2
  37. package/esm/locales.d.ts +9 -6
  38. package/esm/locales.d.ts.map +1 -1
  39. package/esm/locales.js +4 -3
  40. package/esm/sdk-ui-kit.d.ts +242 -62
  41. package/package.json +11 -11
  42. package/src/@ui/UiGranteeRowControls/UiGranteeRowControls.scss +0 -8
  43. package/src/@ui/UiLabelsChecklist/UiLabelsChecklist.scss +2 -2
  44. package/src/@ui/UiPermissionMenu/UiPermissionMenu.scss +5 -0
  45. package/src/@ui/index.scss +0 -1
  46. package/src/Timezone/TimezoneSelect.scss +22 -0
  47. package/styles/css/button.css.map +1 -1
  48. package/styles/css/header.css +3 -3
  49. package/styles/css/header.css.map +1 -1
  50. package/styles/css/main.css +192 -187
  51. package/styles/css/main.css.map +1 -1
  52. package/styles/scss/Button/_mixins.scss +5 -157
  53. package/styles/scss/Button/_placeholders.scss +169 -0
  54. package/styles/scss/button.scss +1 -0
  55. package/styles/scss/header.scss +8 -3
  56. package/styles/scss/main.scss +1 -0
  57. package/esm/@ui/UiMoreOptionsMenu/UiMoreOptionsMenu.d.ts +0 -28
  58. package/esm/@ui/UiMoreOptionsMenu/UiMoreOptionsMenu.d.ts.map +0 -1
  59. package/esm/@ui/UiMoreOptionsMenu/UiMoreOptionsMenu.js +0 -85
  60. package/src/@ui/UiMoreOptionsMenu/UiMoreOptionsMenu.scss +0 -10
@@ -1338,11 +1338,67 @@ export declare const getSelectedMenuId: <T extends IUiMenuItemData = object, M =
1338
1338
  */
1339
1339
  export declare const getSiblingItems: <T extends IUiMenuItemData = object>(items: IUiMenuItem<T>[], itemId: string) => IUiMenuItem<T>[] | undefined;
1340
1340
 
1341
+ /**
1342
+ * Returns the timezone from the curated list matching the provided IANA timezone ID,
1343
+ * or undefined when the ID is not in the curated list.
1344
+ *
1345
+ * @internal
1346
+ */
1347
+ export declare function getTimezoneById(id: string | undefined): ITimezoneItem | undefined;
1348
+
1349
+ /**
1350
+ * Returns the display label used by the timezone picker: the friendly name with the GMT offset
1351
+ * as a suffix in brackets, e.g. "Prague (GMT+01:00)". The name falls back to the raw IANA ID
1352
+ * for zones outside the curated list, and the offset suffix is dropped when not known.
1353
+ *
1354
+ * The friendly name (not the IANA ID) is shown so the picker reads the same as the Home UI
1355
+ * timezone settings — the id-to-name mapping is not visible to users anywhere.
1356
+ *
1357
+ * @internal
1358
+ */
1359
+ export declare function getTimezoneDisplayLabel(id: string): string;
1360
+
1361
+ /**
1362
+ * Returns display labels for the provided IANA timezone ID.
1363
+ *
1364
+ * @remarks
1365
+ * The backend accepts any ICU-known timezone, so the ID may not be present in the curated list.
1366
+ * In that case the raw ID is used as the name and the offset label is computed via Intl
1367
+ * (empty when the runtime does not know the timezone either).
1368
+ *
1369
+ * @internal
1370
+ */
1371
+ export declare function getTimezoneLabels(id: string): Pick<ITimezoneItem, "name" | "offsetLabel">;
1372
+
1373
+ /**
1374
+ * Returns the curated list of timezones.
1375
+ *
1376
+ * @internal
1377
+ */
1378
+ export declare function getTimezones(): ITimezoneItem[];
1379
+
1380
+ /**
1381
+ * Returns the full display label of a timezone, combining the offset and the name,
1382
+ * e.g. "GMT+01:00 Prague". Use only where the merged label is actually displayed;
1383
+ * consumers that need the name or the offset alone should read the fields directly.
1384
+ *
1385
+ * @internal
1386
+ */
1387
+ export declare function getTimezoneTitle(item: Pick<ITimezoneItem, "name" | "offsetLabel">): string;
1388
+
1341
1389
  /**
1342
1390
  * @internal
1343
1391
  */
1344
1392
  export declare function getTypedUiTabsContextStore<TTabProps extends Record<any, any> = EmptyObject, TTabActionProps extends Record<any, any> = EmptyObject>(): IContextStore<IUiTabContext<TTabProps, TTabActionProps>>;
1345
1393
 
1394
+ /**
1395
+ * Returns the curated timezone that matches the offsets of the browser/runtime timezone.
1396
+ * Falls back to UTC when no curated timezone matches.
1397
+ *
1398
+ * @internal
1399
+ */
1400
+ export declare function getUserTimezone(): ITimezoneItem;
1401
+
1346
1402
  /**
1347
1403
  * Custom event name for goodstrap drag events.
1348
1404
  * Used by Overlay to handle closeOnMouseDrag and other drag-related behaviors.
@@ -6259,6 +6315,130 @@ export declare interface ITimepickerOwnProps {
6259
6315
  closeOnParentScroll?: boolean;
6260
6316
  }
6261
6317
 
6318
+ /**
6319
+ * Item describing a single timezone from the curated list.
6320
+ *
6321
+ * @internal
6322
+ */
6323
+ export declare interface ITimezoneItem {
6324
+ /**
6325
+ * IANA timezone ID, e.g. "Europe/Prague".
6326
+ */
6327
+ id: string;
6328
+ /**
6329
+ * Human readable name without the offset, e.g. "Prague" or "Pacific Time (US & Canada)".
6330
+ */
6331
+ name: string;
6332
+ /**
6333
+ * GMT offset label, e.g. "GMT+01:00".
6334
+ */
6335
+ offsetLabel: string;
6336
+ /**
6337
+ * Offset from UTC in minutes as observed in January (northern hemisphere winter).
6338
+ */
6339
+ januaryOffset: number;
6340
+ /**
6341
+ * Offset from UTC in minutes as observed in June (northern hemisphere summer).
6342
+ */
6343
+ juneOffset: number;
6344
+ }
6345
+
6346
+ /**
6347
+ * Render props passed to a custom trigger renderer of {@link TimezoneSelect}.
6348
+ *
6349
+ * Extends the {@link IDropdownButtonRenderProps} contract of the underlying dropdown
6350
+ * (toggle/open/close callbacks, isOpen, buttonRef and accessibility props) with the
6351
+ * current selection so that custom triggers can display it.
6352
+ *
6353
+ * @internal
6354
+ */
6355
+ export declare interface ITimezoneSelectButtonRenderProps extends IDropdownButtonRenderProps {
6356
+ /**
6357
+ * Human-readable label of the current selection: the matching special item label,
6358
+ * the selected timezone as "name (offset)" (e.g. "Prague (GMT+01:00)"),
6359
+ * or the placeholder when nothing is selected.
6360
+ */
6361
+ buttonLabel: string;
6362
+ /**
6363
+ * Currently selected timezone ID (IANA ID, a special item ID or undefined).
6364
+ */
6365
+ value: string | undefined;
6366
+ /**
6367
+ * Whether the select is disabled. Custom triggers should reflect this state.
6368
+ */
6369
+ isDisabled?: boolean;
6370
+ }
6371
+
6372
+ /**
6373
+ * All label props are required so that callers pass localized strings — the component
6374
+ * has no built-in English defaults to leak into the UI.
6375
+ *
6376
+ * @internal
6377
+ */
6378
+ export declare interface ITimezoneSelectProps {
6379
+ /**
6380
+ * Currently selected timezone ID (IANA ID, a special item ID or undefined).
6381
+ */
6382
+ value?: string;
6383
+ /**
6384
+ * Called when the user selects a timezone.
6385
+ */
6386
+ onChange: (id: string | undefined) => void;
6387
+ /**
6388
+ * Items rendered above the divider, ahead of the curated timezone list.
6389
+ */
6390
+ specialItems?: ITimezoneSelectSpecialItem[];
6391
+ /**
6392
+ * Label of the dropdown button when nothing is selected and no special item matches.
6393
+ */
6394
+ placeholder?: string;
6395
+ /**
6396
+ * Placeholder of the search input.
6397
+ */
6398
+ searchPlaceholder: string;
6399
+ /**
6400
+ * Accessibility label of the search input and the listbox.
6401
+ */
6402
+ ariaLabel: string;
6403
+ /**
6404
+ * Label shown when the search yields no results.
6405
+ */
6406
+ noMatchLabel: string;
6407
+ isDisabled?: boolean;
6408
+ /**
6409
+ * Optional content rendered above the search input (e.g. a dialog-like header).
6410
+ */
6411
+ header?: ReactNode;
6412
+ /**
6413
+ * Custom renderer of the dropdown trigger. When not provided, a standard dropdown
6414
+ * button showing the current selection is rendered.
6415
+ *
6416
+ * Use this to embed the select in surfaces where the default button does not fit,
6417
+ * e.g. as an item of an options menu. The renderer receives the dropdown render props
6418
+ * ({@link IDropdownButtonRenderProps}: toggleDropdown, isOpen, buttonRef, accessibility
6419
+ * props, ...) together with the current selection ({@link ITimezoneSelectButtonRenderProps}).
6420
+ */
6421
+ renderButton?: (props: ITimezoneSelectButtonRenderProps) => ReactNode;
6422
+ }
6423
+
6424
+ /**
6425
+ * Special item rendered above the divider in {@link TimezoneSelect}, ahead of the curated
6426
+ * timezone list. Callers use these for entries like "Default (workspace)" or "From browser (...)".
6427
+ *
6428
+ * @internal
6429
+ */
6430
+ export declare interface ITimezoneSelectSpecialItem {
6431
+ /**
6432
+ * Value emitted by onChange when this item is selected. Undefined typically represents
6433
+ * "no explicit timezone" (e.g. inherit the workspace setting).
6434
+ */
6435
+ id: string | undefined;
6436
+ /**
6437
+ * Display label of the item.
6438
+ */
6439
+ label: string;
6440
+ }
6441
+
6262
6442
  /**
6263
6443
  * @internal
6264
6444
  */
@@ -7342,9 +7522,10 @@ export declare interface IUiGeneralAccessRadioProps {
7342
7522
  /**
7343
7523
  * Workspace-wide permission level, used to keep the `All workspace members`
7344
7524
  * description in sync with the level picked in `workspaceControls`
7345
- * (`view` → "can view", `share` → "can view and share"). Defaults to `view`.
7525
+ * (`VIEW` → "can view", `SHARE` → "can view and share", `EDIT` "can edit").
7526
+ * Defaults to `VIEW`.
7346
7527
  */
7347
- workspaceLevel?: "VIEW" | "SHARE";
7528
+ workspaceLevel?: "VIEW" | "SHARE" | "EDIT";
7348
7529
  /** Test id forwarded to the root element. */
7349
7530
  dataTestId?: string;
7350
7531
  }
@@ -7357,6 +7538,10 @@ export declare interface IUiGeneralAccessRadioProps {
7357
7538
  export declare interface IUiGranteeAsyncOption {
7358
7539
  /** Stable identifier — used as the React key and as the value passed to `onSelect`. */
7359
7540
  id: string;
7541
+ /** Backend ref of the user/group, carried through selection so the consumer can
7542
+ * write the grant against the exact ref (preserves Uri-vs-Id; `id` is a lossy
7543
+ * serialization). */
7544
+ ref: ObjRef;
7360
7545
  /** Avatar variant. */
7361
7546
  kind: GranteeAvatarKind;
7362
7547
  /** Display name shown on the row. */
@@ -7426,29 +7611,23 @@ export declare interface IUiGranteeRowControlsProps {
7426
7611
  /** Locked items are always treated as selected. */
7427
7612
  labels: ReadonlyArray<IUiLabelsChecklistItem>;
7428
7613
  selectedLabelIds: ReadonlyArray<string>;
7429
- /** The level to display. `EDIT` renders read-only; VIEW/SHARE are selectable. */
7614
+ /** The grantee's current permission level anchors the permission menu. */
7430
7615
  permissionLevel: AccessGranularPermission;
7431
7616
  /**
7432
- * Set only when the grantee inherits a higher permission than `permissionLevel`
7433
- * (e.g. from a group); drives the warning badge. Undefined when not elevated.
7617
+ * CONTRACT: set only when the grantee inherits a higher permission than
7618
+ * `permissionLevel` (e.g. via a group) the control renders the warning badge
7619
+ * whenever this is set and does not re-check the ordering. Undefined when the
7620
+ * assigned level already is the effective one.
7434
7621
  */
7435
7622
  effectivePermission?: AccessGranularPermission;
7436
- /**
7437
- * Merge every action into the permission dropdown: the labels drill-in and
7438
- * Remove access render inside {@link UiPermissionMenu} (no "⋯" menu), and
7439
- * the level dropdown is offered even for an EDIT row. Used for the signed-in
7440
- * user's own row when they manage their own access.
7441
- */
7442
- mergedControls?: boolean;
7443
7623
  /** Levels rendered disabled in the permission menu — see {@link UiPermissionMenu}. */
7444
7624
  disabledLevels?: ReadonlyArray<PermissionMenuLevel>;
7445
7625
  /** Tooltip shown on disabled level rows in place of the level's info text. */
7446
7626
  disabledTooltip?: string;
7447
7627
  onLabelsChange: (selectedIds: string[]) => void;
7448
- /** Fires only for selectable rows (VIEW/SHARE); EDIT rows have no level control. */
7449
7628
  onPermissionChange: (level: PermissionMenuLevel) => void;
7450
7629
  onRemoveAccess?: () => void;
7451
- /** Disables both triggers, e.g. while the row's change is saving. */
7630
+ /** Disables the permission trigger, e.g. while the row's change is saving. */
7452
7631
  isDisabled?: boolean;
7453
7632
  dataTestId?: string;
7454
7633
  }
@@ -7632,6 +7811,8 @@ export declare interface IUiLabelsChecklistProps {
7632
7811
  onBack: () => void;
7633
7812
  /** Dismisses the menu; Cancel and (post-commit) Apply both call it. */
7634
7813
  onClose: () => void;
7814
+ /** Focus the Back button on mount — e.g. when opened as a drill-in so keyboard focus follows. */
7815
+ autoFocus?: boolean;
7635
7816
  dataTestId?: string;
7636
7817
  }
7637
7818
 
@@ -8045,24 +8226,6 @@ export declare interface IUiModalDialogProps {
8045
8226
  dataTestId?: string;
8046
8227
  }
8047
8228
 
8048
- /**
8049
- * @internal
8050
- */
8051
- export declare interface IUiMoreOptionsMenuProps {
8052
- /** Empty/omitted hides the "Manage labels access" row (e.g. facts have no labels). */
8053
- labels?: ReadonlyArray<IUiLabelsChecklistItem>;
8054
- /** Locked items are always treated as selected. */
8055
- selectedLabelIds?: ReadonlyArray<string>;
8056
- onLabelsChange?: (selectedIds: string[]) => void;
8057
- /**
8058
- * Omit to hide the row. Used for read-only permission rows (e.g. EDIT), whose
8059
- * level control has no dropdown to host Remove access — so the action lives here.
8060
- */
8061
- onRemoveAccess?: () => void;
8062
- isDisabled?: boolean;
8063
- dataTestId?: string;
8064
- }
8065
-
8066
8229
  /**
8067
8230
  * @internal
8068
8231
  */
@@ -8093,6 +8256,12 @@ export declare interface IUiObjectShareDialogCardProps {
8093
8256
  onClose: () => void;
8094
8257
  /** Grantee rows shown inside the SHARED WITH section, in render order. */
8095
8258
  grantees: IUiObjectShareDialogGrantee[];
8259
+ /**
8260
+ * When true, skeleton rows stand in for the grantee list and the
8261
+ * general-access radio — set it while the access list is loading, so the
8262
+ * placeholders (empty list, Restricted) aren't mistaken for a real policy.
8263
+ */
8264
+ isLoading?: boolean;
8096
8265
  /** Fires when the user clicks the + Add link in the SHARED WITH heading. */
8097
8266
  onAddClick: () => void;
8098
8267
  /** Disables the + Add action — e.g. while the object's labels are still loading. */
@@ -8116,9 +8285,9 @@ export declare interface IUiObjectShareDialogCardProps {
8116
8285
  workspaceControls?: ReactNode;
8117
8286
  /**
8118
8287
  * Workspace-wide permission level, so the "All workspace members" description
8119
- * matches the level picked in `workspaceControls`. Defaults to `view`.
8288
+ * matches the level picked in `workspaceControls`. Defaults to `VIEW`.
8120
8289
  */
8121
- workspaceLevel?: "VIEW" | "SHARE";
8290
+ workspaceLevel?: "VIEW" | "SHARE" | "EDIT";
8122
8291
  /**
8123
8292
  * Optional error notice. When set, it replaces the grantee list and
8124
8293
  * general-access sections (which can't reflect a real policy on a failed
@@ -8297,7 +8466,7 @@ export declare interface IUiPermissionMenuProps {
8297
8466
  onPermissionChange: (level: PermissionMenuLevel) => void;
8298
8467
  /**
8299
8468
  * Levels rendered disabled (`aria-disabled`, click blocked) — e.g. levels
8300
- * above the caller's own when they manage their own access.
8469
+ * the signed-in user may not pick because they exceed their own.
8301
8470
  */
8302
8471
  disabledLevels?: ReadonlyArray<PermissionMenuLevel>;
8303
8472
  /** Tooltip shown on disabled level rows in place of the level's info text. */
@@ -8539,6 +8708,8 @@ export declare interface IUiSubmenuHeaderProps {
8539
8708
  tooltipText?: string;
8540
8709
  onBack?: (e: MouseEvent_2<HTMLButtonElement>) => void;
8541
8710
  onClose?: (e: MouseEvent_2<HTMLButtonElement>) => void;
8711
+ /** Ref to the back button, e.g. to focus it when the submenu opens. */
8712
+ backButtonRef?: Ref<HTMLButtonElement>;
8542
8713
  backAriaLabel?: string;
8543
8714
  closeAriaLabel?: string;
8544
8715
  useShortenedTitle?: boolean;
@@ -9800,13 +9971,21 @@ export declare function ParameterControlButton({ name, value, isActive, isDragga
9800
9971
  export declare function ParameterPicker({ parameters, excludedKeys, isLoading, maxListHeight, onAdd, onCancel }: IParameterPickerProps): JSX.Element;
9801
9972
 
9802
9973
  /**
9803
- * Selectable permission level. The menu and the add-grantee picker only ever
9804
- * assign VIEW or SHARE EDIT is shown as a read-only row (via the model's
9805
- * `AccessGranularPermission`) and is never selectable from the UI.
9974
+ * Message descriptor of a permission level's display label ("Can edit & share" /
9975
+ * "Can view & share" / "Can view") for triggers anchoring {@link UiPermissionMenu}.
9806
9976
  *
9807
9977
  * @internal
9808
9978
  */
9809
- export declare type PermissionMenuLevel = "VIEW" | "SHARE";
9979
+ export declare function permissionLevelMessage(level: PermissionMenuLevel): MessageDescriptor;
9980
+
9981
+ /**
9982
+ * Selectable permission level, mirroring the model's `AccessGranularPermission`:
9983
+ * EDIT ("Can edit & share"), SHARE ("Can view & share") and VIEW ("Can view")
9984
+ * are all assignable from the menu.
9985
+ *
9986
+ * @internal
9987
+ */
9988
+ export declare type PermissionMenuLevel = "VIEW" | "SHARE" | "EDIT";
9810
9989
 
9811
9990
  /**
9812
9991
  * @internal
@@ -10274,6 +10453,14 @@ export declare type ThemeColor = "primary" | "success" | "warning" | "error" | "
10274
10453
  */
10275
10454
  export declare const Timepicker: NamedExoticComponent<ITimepickerOwnProps>;
10276
10455
 
10456
+ /**
10457
+ * Searchable dropdown for picking a timezone from the curated list, with optional special
10458
+ * items (e.g. "Default (workspace)", "From browser (...)") rendered above a divider.
10459
+ *
10460
+ * @internal
10461
+ */
10462
+ export declare function TimezoneSelect({ value, onChange, specialItems, placeholder, searchPlaceholder, ariaLabel, noMatchLabel, isDisabled, header, renderButton }: ITimezoneSelectProps): ReactElement;
10463
+
10277
10464
  /**
10278
10465
  * @internal
10279
10466
  */
@@ -10819,13 +11006,13 @@ export declare function UiGranteeAvatar({ kind, decorative, dataTestId }: IUiGra
10819
11006
  export declare function UiGranteeRow({ kind, name, email, isPending, controls, dataTestId }: IUiGranteeRowProps): JSX.Element;
10820
11007
 
10821
11008
  /**
10822
- * Per-row controls in the OLP share dialog: a permission trigger
10823
- * ({@link UiPermissionMenu}) plus a "⋯" menu ({@link UiMoreOptionsMenu}) for
10824
- * labels access, with an optional inherited-permission warning badge.
11009
+ * Per-row controls in the OLP share dialog: the permission dropdown
11010
+ * ({@link UiPermissionMenu}) hosting the level choice, the labels drill-in and
11011
+ * Remove access, with an optional inherited-permission warning badge.
10825
11012
  *
10826
11013
  * @internal
10827
11014
  */
10828
- export declare function UiGranteeRowControls({ labels, selectedLabelIds, permissionLevel, effectivePermission, mergedControls, disabledLevels, disabledTooltip, onLabelsChange, onPermissionChange, onRemoveAccess, isDisabled, dataTestId }: IUiGranteeRowControlsProps): JSX.Element;
11015
+ export declare function UiGranteeRowControls({ labels, selectedLabelIds, permissionLevel, effectivePermission, disabledLevels, disabledTooltip, onLabelsChange, onPermissionChange, onRemoveAccess, isDisabled, dataTestId }: IUiGranteeRowControlsProps): JSX.Element;
10829
11016
 
10830
11017
  /**
10831
11018
  * @internal
@@ -10874,7 +11061,7 @@ export declare function UiLabelRow({ label, kind, suffix, leading, labelId, onCl
10874
11061
  *
10875
11062
  * @internal
10876
11063
  */
10877
- export declare function UiLabelsChecklist({ items, defaultSelectedIds, onApply, onBack, onClose, dataTestId }: IUiLabelsChecklistProps): JSX.Element;
11064
+ export declare function UiLabelsChecklist({ items, defaultSelectedIds, onApply, onBack, onClose, autoFocus, dataTestId }: IUiLabelsChecklistProps): JSX.Element;
10878
11065
 
10879
11066
  /**
10880
11067
  * Read-only list of labels — uppercase heading + N `UiLabelRow`s.
@@ -10939,16 +11126,6 @@ export declare function UiMenu<T extends IUiMenuItemData = object, M extends obj
10939
11126
  */
10940
11127
  export declare function UiModalDialog({ children, isOpen, onClose, width, accessibilityConfig, dataTestId }: IUiModalDialogProps): JSX.Element | null;
10941
11128
 
10942
- /**
10943
- * Per-grantee "⋯" menu: "Manage labels access" (drills into {@link UiLabelsChecklist})
10944
- * and "Remove access". Each row shows only when its data/handler is given. Remove
10945
- * access appears here for read-only permission rows whose level control has no
10946
- * dropdown to host it.
10947
- *
10948
- * @internal
10949
- */
10950
- export declare function UiMoreOptionsMenu({ labels, selectedLabelIds, onLabelsChange, onRemoveAccess, isDisabled, dataTestId }: IUiMoreOptionsMenuProps): JSX.Element;
10951
-
10952
11129
  /**
10953
11130
  * @internal
10954
11131
  */
@@ -10971,7 +11148,7 @@ export declare function UiObjectShareDialog({ isOpen, ...cardProps }: IUiObjectS
10971
11148
  *
10972
11149
  * @internal
10973
11150
  */
10974
- export declare function UiObjectShareDialogCard({ objectTitle, onClose, grantees, onAddClick, isAddDisabled, generalAccess, onGeneralAccessChange, isGeneralAccessDisabled, workspaceAccessInherited, workspaceControls, workspaceLevel, error, dataTestId }: IUiObjectShareDialogCardProps): JSX.Element;
11151
+ export declare function UiObjectShareDialogCard({ objectTitle, onClose, grantees, isLoading, onAddClick, isAddDisabled, generalAccess, onGeneralAccessChange, isGeneralAccessDisabled, workspaceAccessInherited, workspaceControls, workspaceLevel, error, dataTestId }: IUiObjectShareDialogCardProps): JSX.Element;
10975
11152
 
10976
11153
  /**
10977
11154
  * @internal
@@ -11004,11 +11181,11 @@ export declare type UiPaginationButtonDirection = "previous" | "next";
11004
11181
  export declare type UiPaginationButtonSize = "small" | "large";
11005
11182
 
11006
11183
  /**
11007
- * Per-grantee permission popover. Renders a fixed set of rows — two
11008
- * permission levels (Can view & share / Can view), an optional divider,
11009
- * an optional labels drill-in and an optional Remove access action row.
11010
- * Each level row carries an `infoCircle` tooltip; disabled level rows
11011
- * (`disabledLevels`) swap it for `disabledTooltip`.
11184
+ * Per-grantee permission popover. Renders a fixed set of rows — three
11185
+ * permission levels (Can edit & share / Can view & share / Can view), an
11186
+ * optional divider, an optional labels drill-in and an optional Remove access
11187
+ * action row. Each level row carries an `infoCircle` tooltip; disabled level
11188
+ * rows (`disabledLevels`) swap it for `disabledTooltip`.
11012
11189
  *
11013
11190
  * @internal
11014
11191
  */
@@ -11099,7 +11276,7 @@ export declare function UiStaticTreeview<Level>(props: IUiStaticTreeViewProps<Le
11099
11276
  * Title can render as Typography h3 or ShortenedText h3.
11100
11277
  * @internal
11101
11278
  */
11102
- export declare function UiSubmenuHeader({ title, tooltipText, onBack, onClose, backAriaLabel, closeAriaLabel, useShortenedTitle, textColor, backgroundColor, height, titleId }: IUiSubmenuHeaderProps): JSX.Element;
11279
+ export declare function UiSubmenuHeader({ title, tooltipText, onBack, onClose, backButtonRef, backAriaLabel, closeAriaLabel, useShortenedTitle, textColor, backgroundColor, height, titleId }: IUiSubmenuHeaderProps): JSX.Element;
11103
11280
 
11104
11281
  /**
11105
11282
  * @internal
@@ -11336,9 +11513,12 @@ export declare function useAsyncTableResponsiveColumns<T>(columns: Array<IUiAsyn
11336
11513
  /**
11337
11514
  * Hook to trigger a callback when pressing the Escape key.
11338
11515
  *
11516
+ * @param capture - When true, listens in the capture phase and stops propagation, so a nested
11517
+ * overlay can dismiss on Escape without an ancestor (e.g. a Dropdown) also closing.
11518
+ *
11339
11519
  * @internal
11340
11520
  */
11341
- export declare function useCloseOnEscape(isOpen: boolean, onClose: () => void): void;
11521
+ export declare function useCloseOnEscape(isOpen: boolean, onClose: () => void, capture?: boolean): void;
11342
11522
 
11343
11523
  /**
11344
11524
  * Hook to trigger a callback when a mouse drag event occurs.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-kit",
3
- "version": "11.51.0-alpha.0",
3
+ "version": "11.51.0-alpha.2",
4
4
  "description": "GoodData SDK - UI Building Components",
5
5
  "license": "MIT",
6
6
  "author": "GoodData Corporation",
@@ -76,11 +76,11 @@
76
76
  "tslib": "2.8.1",
77
77
  "unified": "^11.0.5",
78
78
  "uuid": "11.1.1",
79
- "@gooddata/sdk-backend-spi": "11.51.0-alpha.0",
80
- "@gooddata/sdk-model": "11.51.0-alpha.0",
81
- "@gooddata/sdk-ui": "11.51.0-alpha.0",
82
- "@gooddata/sdk-ui-theme-provider": "11.51.0-alpha.0",
83
- "@gooddata/util": "11.51.0-alpha.0"
79
+ "@gooddata/sdk-backend-spi": "11.51.0-alpha.2",
80
+ "@gooddata/sdk-model": "11.51.0-alpha.2",
81
+ "@gooddata/sdk-ui": "11.51.0-alpha.2",
82
+ "@gooddata/util": "11.51.0-alpha.2",
83
+ "@gooddata/sdk-ui-theme-provider": "11.51.0-alpha.2"
84
84
  },
85
85
  "devDependencies": {
86
86
  "@microsoft/api-documenter": "^7.17.0",
@@ -129,11 +129,11 @@
129
129
  "typescript": "5.9.3",
130
130
  "vitest": "4.1.8",
131
131
  "vitest-dom": "0.1.1",
132
- "@gooddata/eslint-config": "11.51.0-alpha.0",
133
- "@gooddata/oxlint-config": "11.51.0-alpha.0",
134
- "@gooddata/reference-workspace": "11.51.0-alpha.0",
135
- "@gooddata/sdk-backend-mockingbird": "11.51.0-alpha.0",
136
- "@gooddata/stylelint-config": "11.51.0-alpha.0"
132
+ "@gooddata/oxlint-config": "11.51.0-alpha.2",
133
+ "@gooddata/eslint-config": "11.51.0-alpha.2",
134
+ "@gooddata/sdk-backend-mockingbird": "11.51.0-alpha.2",
135
+ "@gooddata/reference-workspace": "11.51.0-alpha.2",
136
+ "@gooddata/stylelint-config": "11.51.0-alpha.2"
137
137
  },
138
138
  "peerDependencies": {
139
139
  "react": "^18.0.0 || ^19.0.0",
@@ -12,12 +12,4 @@
12
12
  align-items: center;
13
13
  cursor: default;
14
14
  }
15
-
16
- // Static label for a display-only level (EDIT): the grant can't be managed
17
- // from this dialog, so it reads as plain text with no dropdown affordance.
18
- &__readonly-permission {
19
- font-size: 12px;
20
- color: var(--gd-palette-complementary-6);
21
- white-space: nowrap;
22
- }
23
15
  }
@@ -1,7 +1,7 @@
1
1
  // (C) 2026 GoodData Corporation
2
2
 
3
- // Rendered as a UiMenu content view its parent (UiMoreOptionsMenu) already
4
- // cancels the popover padding, so this lays out normally (no negative margin).
3
+ // Rendered as a drill-in view of UiPermissionMenu, which already cancels the
4
+ // popover padding, so this lays out normally (no negative margin).
5
5
 
6
6
  .gd-ui-kit-labels-checklist {
7
7
  align-self: stretch;
@@ -7,6 +7,11 @@
7
7
  align-self: stretch;
8
8
  display: flex;
9
9
  flex-direction: column;
10
+ // Bound the popover so the labels drill-in stays on screen when an attribute
11
+ // has many labels — the checklist's own items area scrolls (overflow-y:auto)
12
+ // only once an ancestor caps the height. Matches the 300px the removed
13
+ // UiMoreOptionsMenu supplied via UiMenu.
14
+ max-height: 300px;
10
15
  margin: calc(-1 * var(--gd-spacing-10px));
11
16
 
12
17
  &__items {
@@ -48,7 +48,6 @@
48
48
  @use "./UiLabelsChecklist/UiLabelsChecklist.scss";
49
49
  @use "./UiLabelRow/UiLabelRow.scss";
50
50
  @use "./UiLabelsList/UiLabelsList.scss";
51
- @use "./UiMoreOptionsMenu/UiMoreOptionsMenu.scss";
52
51
  @use "./UiPermissionMenu/UiPermissionMenu.scss";
53
52
  @use "./UiGranteeRowControls/UiGranteeRowControls.scss";
54
53
  @use "./UiToast/UiToast.scss";
@@ -0,0 +1,22 @@
1
+ // (C) 2026 GoodData Corporation
2
+
3
+ @use "../../styles/scss/variables";
4
+
5
+ .gd-timezone-select__body {
6
+ width: 300px;
7
+ }
8
+
9
+ .gd-timezone-select__search {
10
+ padding: 10px;
11
+ }
12
+
13
+ .gd-timezone-select__body .gd-ui-kit-listbox {
14
+ padding-top: 0;
15
+
16
+ // design: resting selection is indicated by primary text color only; the default
17
+ // dimmed-blue background applies again once the selected item is hovered or focused
18
+ .gd-ui-kit-listbox__item--isSelected {
19
+ background-color: transparent;
20
+ color: variables.$is-selected-color;
21
+ }
22
+ }
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../scss/mixins.scss","../scss/Button/_variables.scss","../scss/Button/_mixins.scss","../scss/variables.scss","../scss/button.scss"],"names":[],"mappings":"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","file":"button.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../scss/mixins.scss","../scss/Button/_variables.scss","../scss/Button/_placeholders.scss","../scss/variables.scss","../scss/button.scss"],"names":[],"mappings":"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","file":"button.css"}
@@ -431,7 +431,7 @@ a.gd-list-help-menu-item.gd-list-item:focus {
431
431
  }
432
432
 
433
433
  .gd-header-chat {
434
- --gd-icon-fill-color: #fff;
434
+ --gd-icon-fill-color: currentColor;
435
435
  height: 100%;
436
436
  margin: 0;
437
437
  width: 32px;
@@ -587,14 +587,14 @@ a.gd-list-help-menu-item.gd-list-item:focus {
587
587
  .anchor-tag-header-help,
588
588
  .anchor-tag-header-help:active,
589
589
  .anchor-tag-header-help:focus {
590
- color: #fff;
590
+ color: inherit;
591
591
  opacity: 0.8;
592
592
  text-decoration: none;
593
593
  }
594
594
  .anchor-tag-header-help:hover,
595
595
  .anchor-tag-header-help:active:hover,
596
596
  .anchor-tag-header-help:focus:hover {
597
- color: #fff;
597
+ color: inherit;
598
598
  text-decoration: none;
599
599
  opacity: 1;
600
600
  }