@gooddata/sdk-ui-ext 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 (40) hide show
  1. package/NOTICE +4 -4
  2. package/esm/index.d.ts +3 -2
  3. package/esm/index.d.ts.map +1 -1
  4. package/esm/index.js +3 -1
  5. package/esm/internal/translations/en-US.localization-bundle.d.ts +4 -0
  6. package/esm/internal/translations/en-US.localization-bundle.d.ts.map +1 -1
  7. package/esm/internal/translations/en-US.localization-bundle.js +4 -0
  8. package/esm/sdk-ui-ext.d.ts +56 -305
  9. package/esm/share/ObjectShareDialog.d.ts +19 -23
  10. package/esm/share/ObjectShareDialog.d.ts.map +1 -1
  11. package/esm/share/ObjectShareDialog.js +85 -171
  12. package/esm/share/accessSummary.d.ts +18 -8
  13. package/esm/share/accessSummary.d.ts.map +1 -1
  14. package/esm/share/accessSummary.js +25 -13
  15. package/esm/share/messages.d.ts +7 -0
  16. package/esm/share/messages.d.ts.map +1 -1
  17. package/esm/share/messages.js +5 -0
  18. package/esm/share/objectShareController.helpers.d.ts +83 -5
  19. package/esm/share/objectShareController.helpers.d.ts.map +1 -1
  20. package/esm/share/objectShareController.helpers.js +144 -10
  21. package/esm/share/objectShareController.types.d.ts +63 -64
  22. package/esm/share/objectShareController.types.d.ts.map +1 -1
  23. package/esm/share/types.d.ts +4 -5
  24. package/esm/share/types.d.ts.map +1 -1
  25. package/esm/share/useAccessList.d.ts +64 -63
  26. package/esm/share/useAccessList.d.ts.map +1 -1
  27. package/esm/share/useAccessList.js +174 -221
  28. package/esm/share/useLabelScope.d.ts +18 -13
  29. package/esm/share/useLabelScope.d.ts.map +1 -1
  30. package/esm/share/useLabelScope.js +112 -123
  31. package/esm/share/useObjectShareController.d.ts +14 -17
  32. package/esm/share/useObjectShareController.d.ts.map +1 -1
  33. package/esm/share/useObjectShareController.js +211 -224
  34. package/esm/share/useObjectShareDialog.d.ts +90 -0
  35. package/esm/share/useObjectShareDialog.d.ts.map +1 -0
  36. package/esm/share/useObjectShareDialog.js +82 -0
  37. package/package.json +21 -21
  38. package/src/notificationsPanel/NotificationsPanel/DefaultNotificationsPanelButton.scss +4 -1
  39. package/styles/css/main.css +1 -1
  40. package/styles/css/main.css.map +1 -1
package/NOTICE CHANGED
@@ -7,9 +7,9 @@
7
7
 
8
8
  The following 3rd-party software packages may be used by or distributed with gooddata-ui-sdk. Any information relevant to third-party vendors listed below are collected using common, reasonable means.
9
9
 
10
- Date generated: 2026-7-30
10
+ Date generated: 2026-7-31
11
11
 
12
- Revision ID: d888e6fac3deae0511e0a86bfb269a788f76f3e1
12
+ Revision ID: 3d75430be0b9befd6c149fcb1b67712aeb5192fb
13
13
 
14
14
  ================================================================================
15
15
  ================================================================================
@@ -11521,7 +11521,7 @@ Package Title: require-from-string (2.0.2)
11521
11521
 
11522
11522
  Package Locator: npm+require-from-string$2.0.2
11523
11523
 
11524
- Package Depth: Direct
11524
+ Package Depth: Transitive
11525
11525
  --------------------------------------------------------------------------------
11526
11526
 
11527
11527
  * Declared Licenses *
@@ -29285,4 +29285,4 @@ POSSIBILITY OF SUCH DAMAGE.
29285
29285
  --------------------------------------------------------------------------------
29286
29286
  --------------------------------------------------------------------------------
29287
29287
 
29288
- Report Generated by FOSSA on 2026-7-30
29288
+ Report Generated by FOSSA on 2026-7-31
package/esm/index.d.ts CHANGED
@@ -76,7 +76,8 @@ export type { INotificationsPanelView } from "./notificationsPanel/types.js";
76
76
  export declare function provideCreateRoot(_fn: any): void;
77
77
  export { useInsightPagedList, type IUsePagedDropdownConfig, type IUsePagedDropdownResult, type ITabsIds, type InsightListSortBy, type InsightListSortDirection, } from "./internal/components/insightList/useInsightPagedList.js";
78
78
  export { ObjectShareDialog, type IObjectShareDialogProps } from "./share/ObjectShareDialog.js";
79
- export { useObjectShareController as useObjectShare } from "./share/useObjectShareController.js";
79
+ export { sortShareableLabels } from "./share/objectShareController.helpers.js";
80
+ export { accessListToSummary } from "./share/accessSummary.js";
81
+ export { isPermissionsNotAvailable } from "./share/accessErrors.js";
80
82
  export type { IObjectAccessSummary, IObjectShareLabel } from "./share/types.js";
81
- export type { IGranteeIdentityFacts, IObjectShareController, IObjectShareControllerActions, IObjectShareControllerState, IObjectShareGrantee, ISelfIdentity, IUseObjectShareOptions, ObjectSharePermissionLevel, } from "./share/objectShareController.types.js";
82
83
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/esm/index.js CHANGED
@@ -70,4 +70,6 @@ export function provideCreateRoot(_fn) {
70
70
  }
71
71
  export { useInsightPagedList, } from "./internal/components/insightList/useInsightPagedList.js";
72
72
  export { ObjectShareDialog } from "./share/ObjectShareDialog.js";
73
- export { useObjectShareController as useObjectShare } from "./share/useObjectShareController.js";
73
+ export { sortShareableLabels } from "./share/objectShareController.helpers.js";
74
+ export { accessListToSummary } from "./share/accessSummary.js";
75
+ export { isPermissionsNotAvailable } from "./share/accessErrors.js";
@@ -2511,6 +2511,10 @@ export declare const en_US: {
2511
2511
  text: string;
2512
2512
  crowdinContext: string;
2513
2513
  };
2514
+ "objectShare.workspaceLevel.inherited": {
2515
+ text: string;
2516
+ crowdinContext: string;
2517
+ };
2514
2518
  "objectShare.grantee.you": {
2515
2519
  text: string;
2516
2520
  crowdinContext: string;
@@ -1 +1 @@
1
- {"version":3,"file":"en-US.localization-bundle.d.ts","sourceRoot":"","sources":["../../../src/internal/translations/en-US.localization-bundle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6sFjB,CAAC"}
1
+ {"version":3,"file":"en-US.localization-bundle.d.ts","sourceRoot":"","sources":["../../../src/internal/translations/en-US.localization-bundle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAitFjB,CAAC"}
@@ -2513,6 +2513,10 @@ export const en_US = {
2513
2513
  "text": "You can't set higher permissions for yourself.",
2514
2514
  "crowdinContext": "Warning that lowering your own permission is one-way. Shown both as the body of the self-restrict confirm dialog and as the tooltip on permission options that are disabled because they are higher than the user's current level — the copy is identical in both places by design."
2515
2515
  },
2516
+ "objectShare.workspaceLevel.inherited": {
2517
+ "text": "This permission is granted from a parent workspace and cannot be lowered here.",
2518
+ "crowdinContext": "Tooltip on permission options in the all-workspace-members permission menu that are disabled because a parent workspace already grants a higher workspace-wide level, so picking a lower level here could not take effect."
2519
+ },
2516
2520
  "objectShare.grantee.you": {
2517
2521
  "text": "{name} (you)",
2518
2522
  "crowdinContext": "Display name of the signed-in user's own row in the share dialog grantee list. {name} is the user's full name."
@@ -43,13 +43,12 @@ import { ILoadingProps } from '@gooddata/sdk-ui';
43
43
  import { ILocale } from '@gooddata/sdk-ui';
44
44
  import { INotification } from '@gooddata/sdk-model';
45
45
  import { IntlShape } from 'react-intl';
46
+ import type { IObjectAccessList } from '@gooddata/sdk-model';
46
47
  import type { IObjectPermissionsObject } from '@gooddata/sdk-backend-spi';
47
48
  import { IPivotTableConfig } from '@gooddata/sdk-ui-pivot';
48
49
  import { ISettings } from '@gooddata/sdk-model';
49
50
  import { ITab } from '@gooddata/sdk-ui-kit';
50
51
  import { ITheme } from '@gooddata/sdk-model';
51
- import type { IUiGranteeAsyncOptions } from '@gooddata/sdk-ui-kit';
52
- import type { IUiPickedGrantee } from '@gooddata/sdk-ui-kit';
53
52
  import { IUserWorkspaceSettings } from '@gooddata/sdk-backend-spi';
54
53
  import { IVisualizationCallbacks } from '@gooddata/sdk-ui';
55
54
  import { IWidgetUrlBuilder } from '@gooddata/sdk-ui';
@@ -67,6 +66,16 @@ import { UiAsyncTableVariant } from '@gooddata/sdk-ui-kit';
67
66
  import { UiSkeleton } from '@gooddata/sdk-ui-kit';
68
67
  import { UseCancelablePromiseStatus } from '@gooddata/sdk-ui';
69
68
 
69
+ /**
70
+ * The access summary of a fetched access list — effective workspace access plus the
71
+ * explicit grantee count. The single derivation shared by an inline access row (a
72
+ * consumer's own page-level fetch) and {@link ObjectShareDialog}'s `onSummaryChange`,
73
+ * so the two can never disagree on what a list means.
74
+ *
75
+ * @internal
76
+ */
77
+ export declare function accessListToSummary(list: IObjectAccessList): IObjectAccessSummary;
78
+
70
79
  /**
71
80
  * @internal
72
81
  */
@@ -668,19 +677,6 @@ export declare interface IGrantedDataSource {
668
677
  accessSource?: DataSourceAccessSource;
669
678
  }
670
679
 
671
- /**
672
- * Known identity facts of a grantee: real name/email only, never an id fallback.
673
- * Undefined fields are unknown and may be backfilled.
674
- *
675
- * @internal
676
- */
677
- export declare interface IGranteeIdentityFacts {
678
- /** Real full name (users) / group name, when known. */
679
- name?: string;
680
- /** Real email, when known (users only). */
681
- email?: string;
682
- }
683
-
684
680
  /**
685
681
  * @internal
686
682
  */
@@ -1444,9 +1440,8 @@ export declare function InsightView(props: IInsightViewProps): JSX.Element;
1444
1440
  *
1445
1441
  * - `generalAccess` — `RESTRICTED` if only named grantees can access the object;
1446
1442
  * `WORKSPACE` if the workspace-wide rule grant is present with non-empty permissions.
1447
- * - `workspaceLevel` — the rule grant's permission level; `VIEW` by default,
1448
- * `SHARE` when the rule explicitly permits `SHARE`. EDIT is intentionally not
1449
- * surfaced (the UI caps at VIEW/SHARE).
1443
+ * - `workspaceLevel` — the rule grant's permission level: the strongest level the
1444
+ * rule permits, `VIEW` by default.
1450
1445
  * - `granteeCount` — number of named grantees (users + groups). Excludes the
1451
1446
  * workspace-wide rule grant itself.
1452
1447
  *
@@ -1454,153 +1449,10 @@ export declare function InsightView(props: IInsightViewProps): JSX.Element;
1454
1449
  */
1455
1450
  export declare interface IObjectAccessSummary {
1456
1451
  generalAccess: GeneralAccessValue;
1457
- workspaceLevel: "VIEW" | "SHARE";
1452
+ workspaceLevel: AccessGranularPermission;
1458
1453
  granteeCount: number;
1459
1454
  }
1460
1455
 
1461
- /**
1462
- * @internal
1463
- */
1464
- export declare interface IObjectShareController {
1465
- state: IObjectShareControllerState;
1466
- actions: IObjectShareControllerActions;
1467
- }
1468
-
1469
- /**
1470
- * @internal
1471
- */
1472
- export declare interface IObjectShareControllerActions {
1473
- /** Reset transient dialog state (subview + pending buffers). Call on dialog close. */
1474
- reset: () => void;
1475
- openAddGrantee: () => void;
1476
- closeAddGrantee: () => void;
1477
- setPendingGrantees: (next: IUiPickedGrantee[]) => void;
1478
- /**
1479
- * Loader for the add-grantee picker. Wraps `getAvailableAssignees` with
1480
- * client-side search + already-picked filtering, returning the picker's
1481
- * `{ groups, users }` shape. Excludes already-granted grantees.
1482
- */
1483
- loadOptions: (search: string) => Promise<IUiGranteeAsyncOptions>;
1484
- /** Commit all pending grantees to the backend. */
1485
- confirmAddGrantees: () => Promise<void>;
1486
- /** Change the permission level for a single grantee. Auto-saves. */
1487
- changePermissionLevel: (granteeId: string, level: ObjectSharePermissionLevel) => Promise<void>;
1488
- /** Remove a grantee. Auto-saves. */
1489
- removeGrantee: (granteeId: string) => Promise<void>;
1490
- /**
1491
- * Scope a grantee's access to the given label ids (the primary label is always
1492
- * kept). Sends a per-label VIEW/none grant for each label that changed. Auto-saves.
1493
- */
1494
- changeGranteeLabels: (granteeId: string, selectedLabelIds: string[]) => Promise<void>;
1495
- /** Stage a general access change; opens the confirm dialog. */
1496
- requestGeneralAccessChange: (next: GeneralAccessValue) => void;
1497
- cancelGeneralAccessChange: () => void;
1498
- /** Commit the pending general access change. Auto-saves. */
1499
- confirmGeneralAccessChange: () => Promise<void>;
1500
- /**
1501
- * Change the all-workspace-members rule's permission level (VIEW/SHARE).
1502
- * Only meaningful while general access is WORKSPACE. Auto-saves, no confirm —
1503
- * unlike the high-impact RESTRICTED↔WORKSPACE toggle, this only re-grades an
1504
- * already-granted rule.
1505
- */
1506
- changeWorkspaceLevel: (level: "VIEW" | "SHARE") => Promise<void>;
1507
- }
1508
-
1509
- /**
1510
- * @internal
1511
- */
1512
- export declare interface IObjectShareControllerState {
1513
- subview: "main" | "addGrantee";
1514
- status: "idle" | "loading" | "success" | "error" | "saving";
1515
- error?: Error;
1516
- /**
1517
- * Whether object-level permissions are unavailable to the current user — the
1518
- * manage-gated access-list endpoint returned 404, the backend's signal that
1519
- * the caller cannot manage this object's sharing. Distinct from a transient
1520
- * load error (5xx / network), which may still resolve: consumers use this to
1521
- * hide the share UI entirely rather than to retry.
1522
- */
1523
- accessUnavailable: boolean;
1524
- summary: IObjectAccessSummary | undefined;
1525
- /**
1526
- * Stable serialized key of the current target's ref, or undefined when none.
1527
- * Consumers key target-scoped transient UI (e.g. a staged confirmation) on it,
1528
- * so nothing staged for one object can be applied to another.
1529
- */
1530
- targetKey: string | undefined;
1531
- /**
1532
- * Signed-in user's identity, once the profile resolves. Feeds their
1533
- * synthesized row when they can manage the object without holding any
1534
- * grant (administrator access) and the grantee list is empty.
1535
- */
1536
- selfIdentity: ISelfIdentity | undefined;
1537
- /**
1538
- * Whether the profile request resolved successfully. Until then — or after a
1539
- * silently-swallowed failure — `isSelf` on the rows is only its unresolved
1540
- * default, so a sole grantee row cannot be told apart from the caller's own
1541
- * grant and must not be offered destructive controls.
1542
- */
1543
- selfIdentityResolved: boolean;
1544
- /**
1545
- * Whether the manage-gated access list was LOADED with zero explicit grants —
1546
- * the caller reached it without holding a grant of their own. A load-time
1547
- * fact (never recomputed from the live list): removing your own sole grant
1548
- * empties the list but does not make this true.
1549
- */
1550
- seededWithoutGrants: boolean;
1551
- grantees: IObjectShareGrantee[];
1552
- generalAccess: GeneralAccessValue;
1553
- /**
1554
- * Permission level of the all-workspace-members rule when general access is
1555
- * WORKSPACE. Drives the workspace row's permission dropdown. Meaningless (and
1556
- * not shown) while general access is RESTRICTED. Capped at VIEW/SHARE — EDIT is
1557
- * never offered for the workspace rule.
1558
- */
1559
- workspaceLevel: "VIEW" | "SHARE";
1560
- /**
1561
- * Whether workspace-wide access is (at least partly) inherited from a parent
1562
- * workspace. Inherited rule access grants every user of this workspace access
1563
- * too, yet cannot be revoked from here — consumers disable the Restricted
1564
- * option and explain why. `generalAccess` and `workspaceLevel` are effective
1565
- * values that already account for it.
1566
- */
1567
- workspaceAccessInherited: boolean;
1568
- /**
1569
- * Whether the workspace-rule level dropdown must be read-only: this workspace
1570
- * holds no rule of its own to re-grade (access is inherited-only), or an
1571
- * inherited SHARE pins the effective level regardless of the direct grant.
1572
- */
1573
- workspaceLevelLocked: boolean;
1574
- /**
1575
- * Whether a workspace-level re-grade is in flight. Consumers disable the
1576
- * workspace permission dropdown while true so rapid toggles can't issue
1577
- * overlapping writes that settle out of order.
1578
- */
1579
- workspaceLevelSaving: boolean;
1580
- /**
1581
- * Labels (display forms) of the shared attribute, in source order. Empty for
1582
- * objects without labels (e.g. facts) — the labels picker is then hidden.
1583
- */
1584
- labels: IObjectShareLabel[];
1585
- /**
1586
- * Whether per-label scope resolution has finished. While false, a grantee's
1587
- * label scope is not yet known: consumers must not treat a missing
1588
- * `selectedLabelIdsByGrantee` entry as "all selected" for editing, and should
1589
- * keep the Add action disabled.
1590
- */
1591
- labelsResolved: boolean;
1592
- /**
1593
- * Per-grantee label scope: grantee id → the label ids that grantee can access.
1594
- * The primary label is always included. Empty entry means "all labels" has not
1595
- * yet been resolved; consumers should treat a missing entry as all-selected.
1596
- */
1597
- selectedLabelIdsByGrantee: Record<string, string[]>;
1598
- /** Pending confirm — when set, the confirm dialog is visible. */
1599
- pendingGeneralAccess?: GeneralAccessValue;
1600
- /** Grantees staged in the add-grantee dialog before confirmation. */
1601
- pendingGrantees: IUiPickedGrantee[];
1602
- }
1603
-
1604
1456
  /**
1605
1457
  * Props for {@link ObjectShareDialog}.
1606
1458
  *
@@ -1611,16 +1463,23 @@ export declare interface IObjectShareDialogProps {
1611
1463
  target: IObjectPermissionsObject | undefined;
1612
1464
  /** Object title rendered in the dialog header ('Share "\{title\}"'). */
1613
1465
  objectTitle: string;
1614
- /** Whether the dialog is shown. Owned by the consumer. */
1466
+ /**
1467
+ * Whether the dialog is shown. Owned by the consumer. While false nothing is
1468
+ * mounted — each open starts a fresh dialog session and closing discards it
1469
+ * (see the component doc).
1470
+ */
1615
1471
  isOpen: boolean;
1616
1472
  /** Called when the dialog requests to close (backdrop, close button, after share). */
1617
1473
  onClose: () => void;
1618
- /** Fires after each successful access mutation — e.g. to refresh an inline access row. */
1619
- onSaved?: () => void;
1474
+ /**
1475
+ * Fires with the current access summary whenever the displayed access changes —
1476
+ * when the list loads, and after each summary-affecting mutation. Lets a consumer
1477
+ * keep an inline access row in sync without refetching.
1478
+ */
1479
+ onSummaryChange?: (summary: IObjectAccessSummary) => void;
1620
1480
  /**
1621
1481
  * Labels (display forms) of the shared attribute, enabling the per-grantee
1622
- * label-scope picker. Omit for objects without labels (e.g. facts). Ignored
1623
- * when `controller` is supplied (pass `labels` to {@link useObjectShare} instead).
1482
+ * label-scope picker. Omit for objects without labels (e.g. facts).
1624
1483
  */
1625
1484
  labels?: IObjectShareLabel[];
1626
1485
  /**
@@ -1635,54 +1494,8 @@ export declare interface IObjectShareDialogProps {
1635
1494
  * control (Add, row controls, general access) is disabled: the label set is
1636
1495
  * unknown, so any access change would diff against an empty scope and silently
1637
1496
  * orphan real per-label grants. Omit for objects without labels (e.g. facts).
1638
- * Ignored when `controller` is supplied (pass `labelsError` to
1639
- * {@link useObjectShare} instead).
1640
1497
  */
1641
1498
  labelsError?: boolean;
1642
- /**
1643
- * Escape hatch: supply a controller from {@link useObjectShare} to share its
1644
- * single access-list fetch with an inline summary row. When omitted, the
1645
- * dialog manages its own controller from `target`/`onSaved`/`labels`.
1646
- */
1647
- controller?: IObjectShareController;
1648
- }
1649
-
1650
- /**
1651
- * Dialog row derived from a backend grant. `name`/`email` are real facts only;
1652
- * display fallbacks are `granteeDisplayPair`'s concern.
1653
- *
1654
- * @internal
1655
- */
1656
- export declare interface IObjectShareGrantee extends IGranteeIdentityFacts {
1657
- /** Stable id used as the dialog row's React key. `user:<ref>` / `group:<ref>`. */
1658
- id: string;
1659
- kind: "user" | "group";
1660
- granteeRef: ObjRef;
1661
- /**
1662
- * Whether this row is the signed-in user's own grant. Derived from the
1663
- * profile, so it holds for rows of any origin (fetched or optimistic).
1664
- */
1665
- isSelf?: boolean;
1666
- level: ObjectSharePermissionLevel;
1667
- /**
1668
- * Effective permission when it is *higher* than the directly-granted `level`
1669
- * because the grantee inherits a stronger permission (e.g. via a group).
1670
- * Undefined when the direct grant already is the effective permission. Drives
1671
- * the row's "effective permission" warning badge.
1672
- */
1673
- effectivePermission?: ObjectSharePermissionLevel;
1674
- /**
1675
- * Whether the grantee inherits SHARE (e.g. via a group), regardless of the
1676
- * current direct `level`. Retained from the fetch so `effectivePermission` can
1677
- * be recomputed locally when the direct level changes (no refetch).
1678
- */
1679
- inheritsShare?: boolean;
1680
- /**
1681
- * Row-level in-flight state for optimistic updates: `"saving"` while a level
1682
- * change or freshly-added grant is being committed, `"removing"` while a
1683
- * removal is in flight. Undefined when the row reflects committed state.
1684
- */
1685
- pending?: "saving" | "removing";
1686
1499
  }
1687
1500
 
1688
1501
  /**
@@ -1716,16 +1529,6 @@ export declare interface IObjectShareLabel {
1716
1529
  */
1717
1530
  export declare function isDrillDownDefinition(obj: unknown): obj is IDrillDownDefinition;
1718
1531
 
1719
- /**
1720
- * Signed-in user's identity: real facts plus the stable `id` (profile login)
1721
- * used as the display fallback, mirroring grantee rows.
1722
- *
1723
- * @internal
1724
- */
1725
- export declare interface ISelfIdentity extends IGranteeIdentityFacts {
1726
- id: string;
1727
- }
1728
-
1729
1532
  /**
1730
1533
  * @alpha
1731
1534
  */
@@ -1777,6 +1580,18 @@ export declare type ISizeInfoDefault = ISizeInfo & {
1777
1580
  default: number;
1778
1581
  };
1779
1582
 
1583
+ /**
1584
+ * Whether an access-list error means object-level permissions aren't available to
1585
+ * the caller: the manage-gated permissions endpoint returns **404** for an object
1586
+ * (or label) the caller can't manage. We match that exact status and nothing else
1587
+ * — a transient failure (5xx / 403 / network) may still resolve, so it must not be
1588
+ * read as a permanent "no". If the backend ever signals this with a different
1589
+ * status, widen here deliberately, in coordination with the backend.
1590
+ *
1591
+ * @internal
1592
+ */
1593
+ export declare function isPermissionsNotAvailable(error: unknown): boolean;
1594
+
1780
1595
  /**
1781
1596
  * Type guard for ISizeInfoDefault
1782
1597
  *
@@ -1807,42 +1622,6 @@ export declare interface ITabsIds {
1807
1622
  all: string;
1808
1623
  }
1809
1624
 
1810
- /**
1811
- * Options for {@link useObjectShare}.
1812
- *
1813
- * @internal
1814
- */
1815
- export declare interface IUseObjectShareOptions {
1816
- /**
1817
- * Fires after each successful access mutation (add grantee, change level,
1818
- * remove, general access toggle). Use it to keep UI outside the dialog in
1819
- * sync with edits made inside it (e.g. refresh an inline access row).
1820
- */
1821
- onSaved?: () => void;
1822
- /**
1823
- * Labels (display forms) of the shared attribute, enabling the per-grantee
1824
- * label-scope picker. Omit for objects without labels (e.g. facts).
1825
- */
1826
- labels?: IObjectShareLabel[];
1827
- /**
1828
- * Whether loading the object's labels failed. While true the controller stays
1829
- * label-unresolved so every access-changing control is disabled: with the
1830
- * label set unknown, reconciling access would diff against an empty set and
1831
- * silently orphan any real per-label grants. Distinct from an object that
1832
- * genuinely has no labels (omit `labels`), where editing is safe.
1833
- */
1834
- labelsError?: boolean;
1835
- /**
1836
- * Whether the object's labels are still loading. While true the controller stays
1837
- * label-unresolved (same gating as `labelsError`): the labels aren't passed yet,
1838
- * so an empty list must not be mistaken for a label-free object — otherwise row
1839
- * controls would reconcile against an empty set and orphan real per-label grants.
1840
- */
1841
- labelsLoading?: boolean;
1842
- /** Whether the share dialog is open; a summary-only consumer leaves it false. */
1843
- isOpen?: boolean;
1844
- }
1845
-
1846
1625
  /**
1847
1626
  * Config for useInsightPagedList hook
1848
1627
  * @internal
@@ -2012,28 +1791,15 @@ export declare function NotificationsPanel(props: INotificationsPanelProps): JSX
2012
1791
  * be safely co-mounted; focus, backdrop and portal lifecycles are owned by
2013
1792
  * `UiModalDialog` inside the kit.
2014
1793
  *
2015
- * Mount unconditionally and toggle via `isOpen`; the contents stay invisible
2016
- * while closed. For the common case pass plain props and let the dialog own its
2017
- * controller:
2018
- *
2019
- * ```tsx
2020
- * <ObjectShareDialog target={ref} objectTitle={title} isOpen={open} onClose={close} />
2021
- * ```
1794
+ * One open = one dialog session over one fixed `target`: the session (the
1795
+ * controller, its fetches, every transient pending rows, staged confirms,
1796
+ * optimistic edits) exists only while `isOpen`, enforced here, so the component
1797
+ * may safely stay mounted across open/close cycles. Do not swap the target —
1798
+ * or the backend/workspace context — while open; close and reopen instead.
2022
1799
  *
2023
1800
  * @internal
2024
1801
  */
2025
- export declare function ObjectShareDialog({ target, objectTitle, isOpen, onClose, onSaved, labels, labelsLoading, labelsError, controller }: IObjectShareDialogProps): JSX.Element;
2026
-
2027
- /**
2028
- * Permission level surfaced in the share dialog — the model's granular access
2029
- * permission (VIEW / EDIT / SHARE). `EDIT` is display-only: the dialog reflects
2030
- * an EDIT grant as a read-only "Can edit" row but cannot assign or change it
2031
- * (granting EDIT is not part of the share UI), so only VIEW and SHARE are
2032
- * selectable in the permission menu.
2033
- *
2034
- * @internal
2035
- */
2036
- export declare type ObjectSharePermissionLevel = AccessGranularPermission;
1802
+ export declare function ObjectShareDialog(props: IObjectShareDialogProps): JSX.Element | null;
2037
1803
 
2038
1804
  /**
2039
1805
  * @alpha
@@ -2094,6 +1860,18 @@ export declare const RICH_TEXT_WIDGET_SIZE_INFO_NEW_DEFAULT: IVisualizationDefau
2094
1860
  */
2095
1861
  export declare type ScheduleAutomationsColumnName = "nextRun" | "attachments";
2096
1862
 
1863
+ /**
1864
+ * Deterministic display order for an attribute's labels — the backend returns
1865
+ * display forms in an order that isn't guaranteed stable. Primary (key) label
1866
+ * first, then the rest case-insensitive by title with the label id as a stable
1867
+ * tiebreaker. Shared by the detail-page labels popup and the share dialog's
1868
+ * label-access checklist so the two never disagree. Returns a new array; the
1869
+ * input is not mutated.
1870
+ *
1871
+ * @internal
1872
+ */
1873
+ export declare function sortShareableLabels(labels: readonly IObjectShareLabel[]): IObjectShareLabel[];
1874
+
2097
1875
  /**
2098
1876
  * @internal
2099
1877
  */
@@ -2140,33 +1918,6 @@ export declare function useInsightPickerState(author?: string): {
2140
1918
  onTagFilterChange: Dispatch<SetStateAction<string[]>>;
2141
1919
  };
2142
1920
 
2143
- /**
2144
- * Manages the share dialog state and backend I/O for a single shareable object.
2145
- *
2146
- * The access list is fetched once and seeded into local state, which is the
2147
- * source of truth while the dialog/summary is mounted. Each access change is
2148
- * written through to local state immediately and sent to the backend; on failure
2149
- * the one changed entry is rolled back. There is no post-write refetch, so the
2150
- * grantee list never blanks and never fights the backend's read-after-write lag.
2151
- * Top-level open/close is the consumer's concern (see {@link ObjectShareDialog}).
2152
- *
2153
- * Mutations follow a **commit-on-interaction** model: each access change is sent
2154
- * immediately; the general-access toggle goes through a confirm step because it
2155
- * is high-impact. There is no batched Save. The list is fetched eagerly so
2156
- * `state.summary` also drives an inline access row while closed.
2157
- *
2158
- * Most consumers do not call this directly — render {@link ObjectShareDialog} with
2159
- * plain props and it owns its controller. Call this (exported as `useObjectShare`)
2160
- * only to share a single access-list fetch between the dialog and an inline summary
2161
- * row: call it once, read `state.summary` for the row, and pass the controller into
2162
- * the dialog. Grantee rows carry identity facts only (`name`/`email` are undefined
2163
- * when unknown); the display fallback order is not exposed, so {@link ObjectShareDialog}
2164
- * is the only sanctioned row renderer.
2165
- *
2166
- * @internal
2167
- */
2168
- export declare function useObjectShare(target: IObjectPermissionsObject | undefined, options?: IUseObjectShareOptions): IObjectShareController;
2169
-
2170
1921
  /**
2171
1922
  * @internal
2172
1923
  */
@@ -1,6 +1,5 @@
1
1
  import type { IObjectPermissionsObject } from "@gooddata/sdk-backend-spi";
2
- import type { IObjectShareController } from "./objectShareController.types.js";
3
- import type { IObjectShareLabel } from "./types.js";
2
+ import type { IObjectAccessSummary, IObjectShareLabel } from "./types.js";
4
3
  /**
5
4
  * Props for {@link ObjectShareDialog}.
6
5
  *
@@ -11,16 +10,23 @@ export interface IObjectShareDialogProps {
11
10
  target: IObjectPermissionsObject | undefined;
12
11
  /** Object title rendered in the dialog header ('Share "\{title\}"'). */
13
12
  objectTitle: string;
14
- /** Whether the dialog is shown. Owned by the consumer. */
13
+ /**
14
+ * Whether the dialog is shown. Owned by the consumer. While false nothing is
15
+ * mounted — each open starts a fresh dialog session and closing discards it
16
+ * (see the component doc).
17
+ */
15
18
  isOpen: boolean;
16
19
  /** Called when the dialog requests to close (backdrop, close button, after share). */
17
20
  onClose: () => void;
18
- /** Fires after each successful access mutation — e.g. to refresh an inline access row. */
19
- onSaved?: () => void;
21
+ /**
22
+ * Fires with the current access summary whenever the displayed access changes —
23
+ * when the list loads, and after each summary-affecting mutation. Lets a consumer
24
+ * keep an inline access row in sync without refetching.
25
+ */
26
+ onSummaryChange?: (summary: IObjectAccessSummary) => void;
20
27
  /**
21
28
  * Labels (display forms) of the shared attribute, enabling the per-grantee
22
- * label-scope picker. Omit for objects without labels (e.g. facts). Ignored
23
- * when `controller` is supplied (pass `labels` to {@link useObjectShare} instead).
29
+ * label-scope picker. Omit for objects without labels (e.g. facts).
24
30
  */
25
31
  labels?: IObjectShareLabel[];
26
32
  /**
@@ -35,16 +41,8 @@ export interface IObjectShareDialogProps {
35
41
  * control (Add, row controls, general access) is disabled: the label set is
36
42
  * unknown, so any access change would diff against an empty scope and silently
37
43
  * orphan real per-label grants. Omit for objects without labels (e.g. facts).
38
- * Ignored when `controller` is supplied (pass `labelsError` to
39
- * {@link useObjectShare} instead).
40
44
  */
41
45
  labelsError?: boolean;
42
- /**
43
- * Escape hatch: supply a controller from {@link useObjectShare} to share its
44
- * single access-list fetch with an inline summary row. When omitted, the
45
- * dialog manages its own controller from `target`/`onSaved`/`labels`.
46
- */
47
- controller?: IObjectShareController;
48
46
  }
49
47
  /**
50
48
  * Connected share dialog. Renders the main share modal, the add-grantee
@@ -53,15 +51,13 @@ export interface IObjectShareDialogProps {
53
51
  * be safely co-mounted; focus, backdrop and portal lifecycles are owned by
54
52
  * `UiModalDialog` inside the kit.
55
53
  *
56
- * Mount unconditionally and toggle via `isOpen`; the contents stay invisible
57
- * while closed. For the common case pass plain props and let the dialog own its
58
- * controller:
59
- *
60
- * ```tsx
61
- * <ObjectShareDialog target={ref} objectTitle={title} isOpen={open} onClose={close} />
62
- * ```
54
+ * One open = one dialog session over one fixed `target`: the session (the
55
+ * controller, its fetches, every transient pending rows, staged confirms,
56
+ * optimistic edits) exists only while `isOpen`, enforced here, so the component
57
+ * may safely stay mounted across open/close cycles. Do not swap the target —
58
+ * or the backend/workspace context — while open; close and reopen instead.
63
59
  *
64
60
  * @internal
65
61
  */
66
- export declare function ObjectShareDialog({ target, objectTitle, isOpen, onClose, onSaved, labels, labelsLoading, labelsError, controller }: IObjectShareDialogProps): import("react/jsx-runtime").JSX.Element;
62
+ export declare function ObjectShareDialog(props: IObjectShareDialogProps): import("react/jsx-runtime").JSX.Element | null;
67
63
  //# sourceMappingURL=ObjectShareDialog.d.ts.map