@gooddata/sdk-ui-kit 11.39.0-alpha.2 → 11.39.0-alpha.4

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 (54) hide show
  1. package/esm/@ui/@types/icon.d.ts +1 -1
  2. package/esm/@ui/UiAddGranteeDialog/UiAddGranteeDialog.d.ts +39 -0
  3. package/esm/@ui/UiAddGranteeDialog/UiAddGranteeDialog.js +30 -0
  4. package/esm/@ui/UiAvatar/UiAvatar.d.ts +40 -0
  5. package/esm/@ui/UiAvatar/UiAvatar.js +19 -0
  6. package/esm/@ui/UiButton/UiButton.d.ts +7 -0
  7. package/esm/@ui/UiButton/UiButton.js +2 -2
  8. package/esm/@ui/UiConfirmDialog/UiConfirmDialog.d.ts +38 -0
  9. package/esm/@ui/UiConfirmDialog/UiConfirmDialog.js +28 -0
  10. package/esm/@ui/UiDialogShell/UiDialogFooter.d.ts +21 -0
  11. package/esm/@ui/UiDialogShell/UiDialogFooter.js +12 -0
  12. package/esm/@ui/UiDialogShell/UiDialogHeader.d.ts +26 -0
  13. package/esm/@ui/UiDialogShell/UiDialogHeader.js +19 -0
  14. package/esm/@ui/UiDialogShell/UiDialogShell.d.ts +58 -0
  15. package/esm/@ui/UiDialogShell/UiDialogShell.js +36 -0
  16. package/esm/@ui/UiGeneralAccessRadio/UiGeneralAccessRadio.d.ts +32 -0
  17. package/esm/@ui/UiGeneralAccessRadio/UiGeneralAccessRadio.js +22 -0
  18. package/esm/@ui/UiGranteeAvatar/UiGranteeAvatar.d.ts +30 -0
  19. package/esm/@ui/UiGranteeAvatar/UiGranteeAvatar.js +25 -0
  20. package/esm/@ui/UiGranteeRow/UiGranteeRow.d.ts +26 -0
  21. package/esm/@ui/UiGranteeRow/UiGranteeRow.js +19 -0
  22. package/esm/@ui/UiIcon/icons.js +5 -0
  23. package/esm/@ui/UiMenu/hooks.js +2 -4
  24. package/esm/@ui/UiObjectShareDialog/UiObjectShareDialog.d.ts +57 -0
  25. package/esm/@ui/UiObjectShareDialog/UiObjectShareDialog.js +28 -0
  26. package/esm/@ui/UiRadio/UiRadio.d.ts +40 -0
  27. package/esm/@ui/UiRadio/UiRadio.js +23 -0
  28. package/esm/@ui/UiRadioRow/UiRadioRow.d.ts +33 -0
  29. package/esm/@ui/UiRadioRow/UiRadioRow.js +19 -0
  30. package/esm/@ui/UiSectionHeading/UiSectionHeading.d.ts +18 -0
  31. package/esm/@ui/UiSectionHeading/UiSectionHeading.js +14 -0
  32. package/esm/@ui/UiTextInput/UiTextInput.d.ts +55 -0
  33. package/esm/@ui/UiTextInput/UiTextInput.js +24 -0
  34. package/esm/index.d.ts +14 -0
  35. package/esm/index.js +14 -0
  36. package/esm/locales.d.ts +69 -0
  37. package/esm/locales.js +32 -1
  38. package/esm/sdk-ui-kit.d.ts +528 -1
  39. package/package.json +11 -11
  40. package/src/@ui/UiAddGranteeDialog/UiAddGranteeDialog.scss +22 -0
  41. package/src/@ui/UiAvatar/UiAvatar.scss +22 -0
  42. package/src/@ui/UiConfirmDialog/UiConfirmDialog.scss +13 -0
  43. package/src/@ui/UiDialogShell/UiDialogShell.scss +56 -0
  44. package/src/@ui/UiGeneralAccessRadio/UiGeneralAccessRadio.scss +8 -0
  45. package/src/@ui/UiGranteeRow/UiGranteeRow.scss +36 -0
  46. package/src/@ui/UiObjectShareDialog/UiObjectShareDialog.scss +12 -0
  47. package/src/@ui/UiRadio/UiRadio.scss +63 -0
  48. package/src/@ui/UiRadioRow/UiRadioRow.scss +44 -0
  49. package/src/@ui/UiSectionHeading/UiSectionHeading.scss +28 -0
  50. package/src/@ui/UiTextInput/UiTextInput.scss +68 -0
  51. package/src/@ui/index.scss +20 -0
  52. package/src/FilterGroupItem/FilterGroupItem.scss +13 -24
  53. package/styles/css/main.css +370 -18
  54. package/styles/css/main.css.map +1 -1
@@ -478,6 +478,13 @@ export declare const ConfirmDialog: NamedExoticComponent<IConfirmDialogBaseProps
478
478
  */
479
479
  export declare const ConfirmDialogBase: NamedExoticComponent<IConfirmDialogBaseProps>;
480
480
 
481
+ /**
482
+ * Visual variant of the confirm button.
483
+ *
484
+ * @internal
485
+ */
486
+ export declare type ConfirmDialogVariant = VariantPrimary | VariantDanger;
487
+
481
488
  /**
482
489
  * @internal
483
490
  */
@@ -832,6 +839,13 @@ export declare const DialogBase: NamedExoticComponent<IDialogBaseProps>;
832
839
  */
833
840
  export declare function DialogCloseButton(props: IDialogCloseButtonProps): JSX.Element;
834
841
 
842
+ /**
843
+ * Title sizing variant.
844
+ *
845
+ * @internal
846
+ */
847
+ export declare type DialogHeaderTitleSize = "default" | "large";
848
+
835
849
  /**
836
850
  * @internal
837
851
  */
@@ -1120,6 +1134,13 @@ export declare const GD_COLOR_STATE_HOVER = "#94a1ad";
1120
1134
  */
1121
1135
  export declare const GD_COLOR_WHITE = "#fff";
1122
1136
 
1137
+ /**
1138
+ * Which general-access option is currently selected.
1139
+ *
1140
+ * @internal
1141
+ */
1142
+ export declare type GeneralAccessValue = "RESTRICTED" | "WORKSPACE";
1143
+
1123
1144
  /**
1124
1145
  * @internal
1125
1146
  */
@@ -1319,6 +1340,13 @@ export declare const GOODSTRAP_DRAG_EVENT = "goodstrap.drag";
1319
1340
  */
1320
1341
  export declare const GOODSTRAP_SCROLLED_EVENT = "goodstrap.scrolled";
1321
1342
 
1343
+ /**
1344
+ * Visual variant of a grantee avatar.
1345
+ *
1346
+ * @internal
1347
+ */
1348
+ export declare type GranteeAvatarKind = "user" | "group";
1349
+
1322
1350
  /**
1323
1351
  * @internal
1324
1352
  */
@@ -2570,7 +2598,7 @@ export declare function IconTreeMap({ className, width, height, color, ariaHidde
2570
2598
  /**
2571
2599
  * @internal
2572
2600
  */
2573
- export declare type IconType = "aiAgent" | "aiAgentDisabled" | "brain" | "brainDisabled" | "check" | "checkCircle" | "certification" | "plus" | "plusCircle" | "sync" | "alert" | "alertPaused" | "close" | "cross" | "edit" | "crossCircle" | "question" | "chevronUp" | "chevronRight" | "chevronDown" | "chevronLeft" | "date" | "navigateUp" | "navigateDown" | "navigateRight" | "navigateLeft" | "download" | "slack" | "expand" | "exclamationCircle" | "book" | "visible" | "invisible" | "lock" | "unlock" | "ai" | "aiFill" | "drawer" | "drawerEmpty" | "prohibited" | "dropDown" | "dropRight" | "clock" | "clockPaused" | "questionMark" | "upload" | "expandRectangle" | "file" | "number" | "code" | "user" | "userPlus" | "users" | "magic" | "tab" | "pauseCircle" | "filter" | "timer" | "mail" | "envelope" | "copy" | "rain" | "earth" | "geoCollection" | "geoCollectionUpload" | "minimize" | "shrink" | "copyright" | "ellipsis" | "pencil" | "folder" | "folderPlus" | "trash" | "arrowUp" | "arrowRight" | "arrowDown" | "arrowLeft" | "undo" | "redo" | "trendDown" | "trendUp" | "save" | "minus" | "minusCircle" | "percent" | "enter" | "enterRight" | "money" | "ghost" | "warning" | "home" | "settings" | "search" | "university" | "printer" | "picture" | "visualization" | "dashboard" | "metric" | "fact" | "ldmAttribute" | "sharp" | "attribute" | "horn" | "cw" | "ccw" | "table" | "directionColumn" | "directionRow" | "header" | "genai" | "genai2" | "explainai" | "hiddenForAi" | "box" | "ellipsisVertical" | "list" | "drillTo" | "hierarchy" | "history" | "history2" | "thumbsUp" | "thumbsDown" | "send" | "visualizationArea" | "visualizationTable" | "visualizationTreemap" | "visualizationScatter" | "visualizationDonut" | "visualizationHeadline" | "visualizationColumn" | "visualizationLine" | "visualizationPyramid" | "visualizationFunnel" | "visualizationHeatmap" | "visualizationBubble" | "visualizationPie" | "visualizationBar" | "visualizationCombo" | "visualizationBullet" | "visualizationWaterfall" | "visualizationDependencywheel" | "visualizationSankey" | "visualizationPushpin" | "visualizationRepeater" | "visualizationXirr" | "link" | "externalLink" | "click" | "fileXlsx" | "filePptx" | "filePdf" | "fileImage" | "fileCsvFormatted" | "fileCsvRaw" | "aiDocument" | "recommendation" | "streamUp" | "streamDown" | "stream" | "density" | "parameter" | "pin" | "unpin";
2601
+ export declare type IconType = "aiAgent" | "aiAgentDisabled" | "brain" | "brainDisabled" | "check" | "checkCircle" | "certification" | "plus" | "plusCircle" | "sync" | "alert" | "alertPaused" | "close" | "cross" | "edit" | "crossCircle" | "question" | "chevronUp" | "chevronRight" | "chevronDown" | "chevronLeft" | "date" | "navigateUp" | "navigateDown" | "navigateRight" | "navigateLeft" | "download" | "slack" | "expand" | "exclamationCircle" | "book" | "visible" | "invisible" | "lock" | "unlock" | "ai" | "aiFill" | "drawer" | "drawerEmpty" | "prohibited" | "dropDown" | "dropRight" | "clock" | "clockPaused" | "questionMark" | "upload" | "expandRectangle" | "file" | "number" | "code" | "user" | "userPlus" | "users" | "magic" | "tab" | "pauseCircle" | "filter" | "timer" | "mail" | "envelope" | "copy" | "rain" | "earth" | "geoCollection" | "geoCollectionUpload" | "minimize" | "shrink" | "copyright" | "ellipsis" | "pencil" | "folder" | "folderSmall" | "folderPlus" | "trash" | "arrowUp" | "arrowRight" | "arrowDown" | "arrowLeft" | "undo" | "redo" | "trendDown" | "trendUp" | "save" | "minus" | "minusCircle" | "percent" | "enter" | "enterRight" | "money" | "ghost" | "warning" | "home" | "settings" | "search" | "university" | "printer" | "picture" | "visualization" | "dashboard" | "metric" | "fact" | "ldmAttribute" | "ldmKey" | "ldmLabel" | "sharp" | "attribute" | "horn" | "cw" | "ccw" | "table" | "directionColumn" | "directionRow" | "header" | "genai" | "genai2" | "explainai" | "hiddenForAi" | "box" | "ellipsisVertical" | "list" | "drillTo" | "hierarchy" | "history" | "history2" | "thumbsUp" | "thumbsDown" | "send" | "visualizationArea" | "visualizationTable" | "visualizationTreemap" | "visualizationScatter" | "visualizationDonut" | "visualizationHeadline" | "visualizationColumn" | "visualizationLine" | "visualizationPyramid" | "visualizationFunnel" | "visualizationHeatmap" | "visualizationBubble" | "visualizationPie" | "visualizationBar" | "visualizationCombo" | "visualizationBullet" | "visualizationWaterfall" | "visualizationDependencywheel" | "visualizationSankey" | "visualizationPushpin" | "visualizationRepeater" | "visualizationXirr" | "link" | "externalLink" | "click" | "fileXlsx" | "filePptx" | "filePdf" | "fileImage" | "fileCsvFormatted" | "fileCsvRaw" | "aiDocument" | "recommendation" | "streamUp" | "streamDown" | "stream" | "density" | "parameter" | "pin" | "unpin";
2574
2602
 
2575
2603
  /**
2576
2604
  * @internal
@@ -6250,6 +6278,37 @@ export declare interface ITypographyProps {
6250
6278
  id?: string;
6251
6279
  }
6252
6280
 
6281
+ /**
6282
+ * @internal
6283
+ */
6284
+ export declare interface IUiAddGranteeDialogProps {
6285
+ /** Object title shown in the header — wrapped into `Share "\{title\}"`. */
6286
+ objectTitle: string;
6287
+ /** Current search query. */
6288
+ searchQuery: string;
6289
+ /** Fires when the user edits the search query. */
6290
+ onSearchQueryChange: (next: string) => void;
6291
+ /**
6292
+ * Optional slot rendered between the search input and the bottom divider.
6293
+ * When empty, the screen falls back to a "No user or group selected"
6294
+ * placeholder. Callers typically render a single `UiGranteeRow`
6295
+ * here to preview the grantee they've picked from the search dropdown.
6296
+ */
6297
+ selectedGrantee?: ReactNode;
6298
+ /** Fires when the user clicks the header back-arrow button. */
6299
+ onBack: () => void;
6300
+ /** Fires when the user clicks the header X close button. */
6301
+ onClose: () => void;
6302
+ /** Fires when the user clicks Cancel in the footer. */
6303
+ onCancel: () => void;
6304
+ /** Fires when the user clicks the primary Add button in the footer. */
6305
+ onAdd: () => void;
6306
+ /** When true, the primary Add button is disabled. */
6307
+ isAddDisabled?: boolean;
6308
+ /** Test id forwarded to the root element. */
6309
+ dataTestId?: string;
6310
+ }
6311
+
6253
6312
  /**
6254
6313
  * @internal
6255
6314
  */
@@ -6418,6 +6477,37 @@ export declare interface IUiAutofocusOptions {
6418
6477
  initialFocus?: string | RefObject<HTMLElement | null>;
6419
6478
  }
6420
6479
 
6480
+ /**
6481
+ * @internal
6482
+ */
6483
+ export declare interface IUiAvatarProps {
6484
+ /** Icon rendered inside the circle. */
6485
+ icon: IconType;
6486
+ /** Outer circle size in px. Defaults to 32. */
6487
+ size?: number;
6488
+ /** Background tone of the circle. Defaults to `complementary-2`. */
6489
+ backgroundColor?: ThemeColor;
6490
+ /** Icon tone. Defaults to `complementary-5`. */
6491
+ iconColor?: ThemeColor;
6492
+ /**
6493
+ * Icon size in px. Defaults to `Math.round(size * ICON_TO_AVATAR_RATIO)`,
6494
+ * which mirrors the 14/32 proportion used across the kit's avatars.
6495
+ */
6496
+ iconSize?: number;
6497
+ /**
6498
+ * Accessibility config for the avatar. Provide an `ariaLabel`
6499
+ * when the avatar carries meaning (e.g. a stand-alone "who" indicator).
6500
+ * Use `ariaHidden: true` when the avatar sits next to a visible
6501
+ * name and would only duplicate that name for screen-reader users.
6502
+ */
6503
+ accessibilityConfig?: {
6504
+ ariaLabel?: string;
6505
+ ariaHidden?: boolean;
6506
+ };
6507
+ /** Test id forwarded to the root element. */
6508
+ dataTestId?: string;
6509
+ }
6510
+
6421
6511
  /**
6422
6512
  * @internal
6423
6513
  */
@@ -6482,6 +6572,13 @@ export declare interface IUiButtonProps {
6482
6572
  accessibilityConfig?: IUiButtonAccessibilityConfig;
6483
6573
  maxWidth?: number;
6484
6574
  tabIndex?: number;
6575
+ /**
6576
+ * When true, the button is focused on mount via the native HTML
6577
+ * `autofocus` attribute. Use sparingly — best fit is the safest
6578
+ * action in a confirmation dialog so accidental Enter presses cancel
6579
+ * rather than confirm a destructive action.
6580
+ */
6581
+ autoFocus?: boolean;
6485
6582
  }
6486
6583
 
6487
6584
  /**
@@ -6617,6 +6714,28 @@ export declare interface IUiComboboxState {
6617
6714
  creatable: boolean;
6618
6715
  }
6619
6716
 
6717
+ /**
6718
+ * @internal
6719
+ */
6720
+ export declare interface IUiConfirmDialogProps {
6721
+ /** Dialog title rendered inside the header. */
6722
+ title: string;
6723
+ /** Body content — typically a sentence or two of description. */
6724
+ description: ReactNode;
6725
+ /** Label for the confirm button — e.g. "Confirm", "Remove", "Transfer". */
6726
+ confirmLabel: string;
6727
+ /** Visual variant of the confirm button. */
6728
+ confirmVariant?: ConfirmDialogVariant;
6729
+ /** Fires when the user clicks the header X close button. */
6730
+ onClose: () => void;
6731
+ /** Fires when the user clicks the footer Cancel button. */
6732
+ onCancel: () => void;
6733
+ /** Fires when the user clicks the footer confirm button. */
6734
+ onConfirm: () => void;
6735
+ /** Test id forwarded to the root element. */
6736
+ dataTestId?: string;
6737
+ }
6738
+
6620
6739
  /**
6621
6740
  * @internal
6622
6741
  */
@@ -6672,6 +6791,76 @@ export declare interface IUiDateProps {
6672
6791
  allowRelative?: boolean;
6673
6792
  }
6674
6793
 
6794
+ /**
6795
+ * @internal
6796
+ */
6797
+ export declare interface IUiDialogFooterProps {
6798
+ /** Right-aligned cluster of footer controls (typically Cancel + primary). */
6799
+ children: ReactNode;
6800
+ /**
6801
+ * When true, draws a 1px complementary-3 divider above the footer and adds
6802
+ * matching top padding. ObjectShareDialog and AddGranteeDialog want this;
6803
+ * ConfirmDialog does not.
6804
+ */
6805
+ divider?: boolean;
6806
+ }
6807
+
6808
+ /**
6809
+ * @internal
6810
+ */
6811
+ export declare interface IUiDialogHeaderProps {
6812
+ /** Title shown in the header. */
6813
+ title: string;
6814
+ /** Title size — `"default"` = 18/26, `"large"` = 20/26. */
6815
+ titleSize?: DialogHeaderTitleSize;
6816
+ /** Fires when the user clicks the X close button. Omit to hide the X. */
6817
+ onClose?: () => void;
6818
+ /** Optional leading slot rendered before the title (e.g. a back button). */
6819
+ leading?: ReactNode;
6820
+ }
6821
+
6822
+ /**
6823
+ * Accessibility config for a dialog. By default the shell wires
6824
+ * `aria-labelledby` to the `UiDialogHeader` title via
6825
+ * context — no config is needed when a header is present. For headerless
6826
+ * dialogs, pass `ariaLabel`; to point at an external title
6827
+ * element, pass `ariaLabelledBy`.
6828
+ *
6829
+ * @internal
6830
+ */
6831
+ export declare interface IUiDialogShellAccessibilityConfig {
6832
+ ariaLabel?: string;
6833
+ ariaLabelledBy?: string;
6834
+ ariaDescribedBy?: string;
6835
+ }
6836
+
6837
+ /**
6838
+ * @internal
6839
+ */
6840
+ export declare interface IUiDialogShellProps {
6841
+ /** Header / body / footer composed by the caller. */
6842
+ children: ReactNode;
6843
+ /** Dialog width in px. Defaults to 540. */
6844
+ width?: number;
6845
+ /**
6846
+ * When true, the dialog acts as a modal: focus is trapped inside,
6847
+ * autofocus + return-focus-on-unmount apply, ESC fires `onClose`,
6848
+ * and `aria-modal="true"` is set. Leave off for inline
6849
+ * non-blocking dialog cards.
6850
+ */
6851
+ isModal?: boolean;
6852
+ /** Fires when the user dismisses via ESC. Only active when `isModal`. */
6853
+ onClose?: () => void;
6854
+ /**
6855
+ * Accessibility config. Usually unnecessary — when `UiDialogHeader`
6856
+ * is used as a child the shell auto-wires `aria-labelledby` to
6857
+ * the header's title.
6858
+ */
6859
+ accessibilityConfig?: IUiDialogShellAccessibilityConfig;
6860
+ /** Test id forwarded to the root element. */
6861
+ dataTestId?: string;
6862
+ }
6863
+
6675
6864
  /**
6676
6865
  * @internal
6677
6866
  */
@@ -6939,6 +7128,58 @@ export declare type IUiFocusManagerProps = {
6939
7128
  children: ReactNode;
6940
7129
  };
6941
7130
 
7131
+ /**
7132
+ * @internal
7133
+ */
7134
+ export declare interface IUiGeneralAccessRadioProps {
7135
+ /** Selected option. */
7136
+ value: GeneralAccessValue;
7137
+ /** Fired when the user picks a different option. */
7138
+ onChange: (value: GeneralAccessValue) => void;
7139
+ /**
7140
+ * Optional slot rendered to the right of the `All workspace members`
7141
+ * row — typically the `UiGranteeRowControls` pair that lets the
7142
+ * author pick labels and the workspace-wide permission level.
7143
+ */
7144
+ workspaceControls?: ReactNode;
7145
+ /** Test id forwarded to the root element. */
7146
+ dataTestId?: string;
7147
+ }
7148
+
7149
+ /**
7150
+ * @internal
7151
+ */
7152
+ export declare interface IUiGranteeAvatarProps {
7153
+ /** Visual kind — drives which silhouette is rendered. */
7154
+ kind: GranteeAvatarKind;
7155
+ /**
7156
+ * When true, the avatar is hidden from assistive tech. Use when the
7157
+ * avatar sits next to a visible name and would only duplicate that name
7158
+ * for screen-reader users (e.g. inside `UiGranteeRow`).
7159
+ */
7160
+ decorative?: boolean;
7161
+ /** Test id forwarded to the root element. */
7162
+ dataTestId?: string;
7163
+ }
7164
+
7165
+ /**
7166
+ * @internal
7167
+ */
7168
+ export declare interface IUiGranteeRowProps {
7169
+ /** Visual kind — drives the avatar silhouette. */
7170
+ kind: GranteeAvatarKind;
7171
+ /** Display name shown on the first line. */
7172
+ name: string;
7173
+ /** Optional email subline shown below the name. */
7174
+ email?: string;
7175
+ /** When true, an "Owner" tag is rendered between the text block and the controls slot. */
7176
+ isOwner?: boolean;
7177
+ /** Trailing controls slot — typically the `UiGranteeRowControls` trigger pair. */
7178
+ controls?: ReactNode;
7179
+ /** Test id forwarded to the root element. */
7180
+ dataTestId?: string;
7181
+ }
7182
+
6942
7183
  /**
6943
7184
  * @internal
6944
7185
  */
@@ -7375,6 +7616,54 @@ export declare interface IUiNavigationItem {
7375
7616
  tabIndex?: number;
7376
7617
  }
7377
7618
 
7619
+ /**
7620
+ * Visual data for a single grantee row inside the dialog. The `controls`
7621
+ * slot lets the caller plug in the per-row controls (typically
7622
+ * `UiGranteeRowControls`).
7623
+ *
7624
+ * @internal
7625
+ */
7626
+ export declare interface IUiObjectShareDialogGrantee {
7627
+ /** Stable identifier — used as the React key for the row. */
7628
+ id: string;
7629
+ /** Avatar variant. */
7630
+ kind: GranteeAvatarKind;
7631
+ /** Display name. */
7632
+ name: string;
7633
+ /** Optional email subline. */
7634
+ email?: string;
7635
+ /** When true, the row is rendered with the "Owner" tag instead of controls. */
7636
+ isOwner?: boolean;
7637
+ /** Per-row controls — usually `UiGranteeRowControls`. Owner rows leave this empty. */
7638
+ controls?: ReactNode;
7639
+ }
7640
+
7641
+ /**
7642
+ * @internal
7643
+ */
7644
+ export declare interface IUiObjectShareDialogProps {
7645
+ /** Object title shown in the header — wrapped into `Share "\{title\}"`. */
7646
+ objectTitle: string;
7647
+ /** Fires when the user clicks the header X button OR the footer Close button. */
7648
+ onClose: () => void;
7649
+ /** Grantee rows shown inside the SHARED WITH section, in render order. */
7650
+ grantees: IUiObjectShareDialogGrantee[];
7651
+ /** Fires when the user clicks the + Add link in the SHARED WITH heading. */
7652
+ onAddClick: () => void;
7653
+ /** Selected general-access option. */
7654
+ generalAccess: GeneralAccessValue;
7655
+ /** Fires when the user picks a different general-access option. */
7656
+ onGeneralAccessChange: (value: GeneralAccessValue) => void;
7657
+ /**
7658
+ * Optional slot rendered next to the "All workspace members" row — typically a
7659
+ * `UiGranteeRowControls` pair for the workspace-wide labels picker
7660
+ * and permission level.
7661
+ */
7662
+ workspaceControls?: ReactNode;
7663
+ /** Test id forwarded to the root element. */
7664
+ dataTestId?: string;
7665
+ }
7666
+
7378
7667
  /**
7379
7668
  * @internal
7380
7669
  */
@@ -7534,6 +7823,61 @@ export declare interface IUiPopoverProps {
7534
7823
  onClose?: () => void;
7535
7824
  }
7536
7825
 
7826
+ /**
7827
+ * @internal
7828
+ */
7829
+ export declare interface IUiRadioProps {
7830
+ /** Whether this radio is selected. */
7831
+ checked: boolean;
7832
+ /** Fires when the user toggles the radio. */
7833
+ onChange?: (e: ChangeEvent<HTMLInputElement>) => void;
7834
+ /**
7835
+ * `name` attribute shared by a group of mutually exclusive radios —
7836
+ * required by HTML radios.
7837
+ */
7838
+ name?: string;
7839
+ /** Value sent with the change event — the picked option's identifier. */
7840
+ value?: string;
7841
+ disabled?: boolean;
7842
+ accessibilityConfig?: IAccessibilityConfigBase;
7843
+ tabIndex?: number;
7844
+ /** Optional inline label rendered next to the radio circle. */
7845
+ label?: string;
7846
+ /**
7847
+ * Id set on the native input. When omitted a stable id is generated.
7848
+ * Pass an explicit id when an ancestor renders its own
7849
+ * `<label htmlFor={id}>` (e.g. `UiRadioRow`) so the two stay associated.
7850
+ */
7851
+ id?: string;
7852
+ dataTestId?: string;
7853
+ }
7854
+
7855
+ /**
7856
+ * @internal
7857
+ */
7858
+ export declare interface IUiRadioRowProps {
7859
+ /** Whether this row's radio is selected. */
7860
+ checked: boolean;
7861
+ /** Fires when the user picks this row. */
7862
+ onChange?: () => void;
7863
+ /**
7864
+ * `name` attribute shared by a group of mutually exclusive
7865
+ * radio rows.
7866
+ */
7867
+ name?: string;
7868
+ /** Value sent on the change — typically the row's option identifier. */
7869
+ value?: string;
7870
+ /** Primary label, bold complementary-8. */
7871
+ title: string;
7872
+ /** Optional descriptive subline, regular complementary-6. */
7873
+ description?: string;
7874
+ /** Optional trailing content rendered after the text (e.g. row controls). */
7875
+ trailing?: ReactNode;
7876
+ disabled?: boolean;
7877
+ /** Test id forwarded to the root element. */
7878
+ dataTestId?: string;
7879
+ }
7880
+
7537
7881
  /**
7538
7882
  * @internal
7539
7883
  */
@@ -7542,6 +7886,16 @@ export declare interface IUiReturnFocusOnUnmountOptions {
7542
7886
  focusVisible?: boolean;
7543
7887
  }
7544
7888
 
7889
+ /**
7890
+ * @internal
7891
+ */
7892
+ export declare interface IUiSectionHeadingProps {
7893
+ /** Section label rendered in 11px upper-case complementary-6. */
7894
+ label: string;
7895
+ /** Optional action rendered after the rule (e.g. a link or button). */
7896
+ action?: ReactNode;
7897
+ }
7898
+
7545
7899
  /**
7546
7900
  * @internal
7547
7901
  */
@@ -7808,6 +8162,53 @@ export declare interface IUiTagsProps {
7808
8162
  accessibilityConfig?: IAccessibilityConfigBase;
7809
8163
  }
7810
8164
 
8165
+ /**
8166
+ * Clickable trailing icon button (e.g. a clear button). Bundles its own
8167
+ * accessible name so the button can never be rendered unnamed.
8168
+ *
8169
+ * @internal
8170
+ */
8171
+ export declare interface IUiTextInputIconAfterButton {
8172
+ /** Icon rendered inside the button. */
8173
+ icon: IconType;
8174
+ /** Fires on click. */
8175
+ onClick: () => void;
8176
+ /** Accessible name for the icon-only button. */
8177
+ ariaLabel: string;
8178
+ }
8179
+
8180
+ /**
8181
+ * @internal
8182
+ */
8183
+ export declare interface IUiTextInputProps {
8184
+ /** HTML input `type`. Defaults to `"text"`. */
8185
+ type?: "text" | "search" | "email" | "url";
8186
+ /** Current value. */
8187
+ value: string;
8188
+ /** Fires with the next value on every change. */
8189
+ onChange: (next: string) => void;
8190
+ /** Optional label rendered above the input. */
8191
+ label?: string;
8192
+ /** Placeholder shown when the input is empty. */
8193
+ placeholder?: string;
8194
+ /** Optional icon rendered inside the input at the start. */
8195
+ iconBefore?: IconType;
8196
+ /** Optional static (non-interactive) icon rendered inside the input at the end. */
8197
+ iconAfter?: IconType;
8198
+ /**
8199
+ * Optional interactive trailing icon button (e.g. a clear button). Takes
8200
+ * precedence over `iconAfter`. Carries its own `ariaLabel`, so the button
8201
+ * always has an accessible name.
8202
+ */
8203
+ onIconAfter?: IUiTextInputIconAfterButton;
8204
+ /** Accessibility config forwarded to the input element. */
8205
+ accessibilityConfig?: IAccessibilityConfigBase;
8206
+ disabled?: boolean;
8207
+ autoFocus?: boolean;
8208
+ /** Test id forwarded to the input element. */
8209
+ dataTestId?: string;
8210
+ }
8211
+
7811
8212
  /**
7812
8213
  * @internal
7813
8214
  */
@@ -9163,6 +9564,15 @@ export declare function Typography({ tagName: Tag, children, className, title, i
9163
9564
  */
9164
9565
  export declare type TypographyTagName = "h1" | "h2" | "h3" | "p";
9165
9566
 
9567
+ /**
9568
+ * Standalone dialog for adding a grantee, opened from the share dialog's
9569
+ * "+ Add" action. Lets the author search for a user or group, preview the
9570
+ * grantee they picked, and confirm adding them with the footer Add button.
9571
+ *
9572
+ * @internal
9573
+ */
9574
+ export declare function UiAddGranteeDialog({ objectTitle, searchQuery, onSearchQueryChange, selectedGrantee, onBack, onClose, onCancel, onAdd, isAddDisabled, dataTestId }: IUiAddGranteeDialogProps): JSX.Element;
9575
+
9166
9576
  /**
9167
9577
  * @internal
9168
9578
  */
@@ -9241,6 +9651,15 @@ export declare function UiAutofocus({ root, children, ...options }: {
9241
9651
  children: ReactNode;
9242
9652
  } & IUiAutofocusOptions): FunctionComponentElement<any>;
9243
9653
 
9654
+ /**
9655
+ * Circle avatar with a centered icon. Generic small "who" indicator
9656
+ * (grantees, presence, audit log, activity feed, ...). Wrap in a
9657
+ * domain-specific component to pick the right icon + label per kind.
9658
+ *
9659
+ * @internal
9660
+ */
9661
+ export declare function UiAvatar({ icon, size, backgroundColor, iconColor, iconSize, accessibilityConfig, dataTestId }: IUiAvatarProps): JSX.Element;
9662
+
9244
9663
  /**
9245
9664
  * @internal
9246
9665
  */
@@ -9366,6 +9785,16 @@ export declare function UiComboboxPopup({ style, className, children, ...htmlPro
9366
9785
  /** @internal */
9367
9786
  export declare type UiComboboxPopupProps = HTMLAttributes<HTMLDivElement>;
9368
9787
 
9788
+ /**
9789
+ * Compact modal confirm dialog used by the OLP share flow for actions that
9790
+ * need explicit user confirmation (granting workspace access, restricting
9791
+ * access, removing a grantee, transferring ownership). Always modal — focus
9792
+ * is trapped inside, autofocus + return-focus apply, and ESC fires onClose.
9793
+ *
9794
+ * @internal
9795
+ */
9796
+ export declare function UiConfirmDialog({ title, description, confirmLabel, confirmVariant, onClose, onCancel, onConfirm, dataTestId }: IUiConfirmDialogProps): JSX.Element;
9797
+
9369
9798
  /**
9370
9799
  * Generic chip-shaped dropdown trigger primitive. One source of truth for filter-bar chip
9371
9800
  * visuals; consumed by both attribute filter chips and parameter chips.
@@ -9388,6 +9817,31 @@ export declare function UiCopyButton({ label, clipboardContent, successMessage,
9388
9817
  */
9389
9818
  export declare function UiDate({ date, locale, relativeThresholdMs, absoluteOptions, allowRelative }: IUiDateProps): JSX.Element;
9390
9819
 
9820
+ /**
9821
+ * Dialog footer: right-aligned cluster of action buttons. Optionally renders
9822
+ * a 1px divider above the actions.
9823
+ *
9824
+ * @internal
9825
+ */
9826
+ export declare function UiDialogFooter({ children, divider }: IUiDialogFooterProps): JSX.Element;
9827
+
9828
+ /**
9829
+ * Dialog header: optional leading slot + title + optional close X.
9830
+ *
9831
+ * @internal
9832
+ */
9833
+ export declare function UiDialogHeader({ title, titleSize, onClose, leading }: IUiDialogHeaderProps): JSX.Element;
9834
+
9835
+ /**
9836
+ * Plain dialog card chrome — 4px radius, soft shadow, complementary-0 fill,
9837
+ * 20px padding. Holds whatever the caller composes inside. Set
9838
+ * `isModal` for blocking dialogs (adds focus trap, autofocus,
9839
+ * return-focus, ESC handling and `aria-modal`).
9840
+ *
9841
+ * @internal
9842
+ */
9843
+ export declare function UiDialogShell({ children, width, isModal, onClose, accessibilityConfig, dataTestId }: IUiDialogShellProps): JSX.Element;
9844
+
9391
9845
  /**
9392
9846
  * @internal
9393
9847
  */
@@ -9465,6 +9919,33 @@ export declare function UiFocusTrap({ root, children, focusCheckFn }: {
9465
9919
  focusCheckFn?: (element: HTMLElement) => boolean;
9466
9920
  }): FunctionComponentElement<any>;
9467
9921
 
9922
+ /**
9923
+ * Two-row radio used by the OLP share dialog to choose between restricting
9924
+ * access to the listed grantees and granting access to every workspace
9925
+ * member. Composes `UiRadioRow` for each option.
9926
+ *
9927
+ * @internal
9928
+ */
9929
+ export declare function UiGeneralAccessRadio({ value, onChange, workspaceControls, dataTestId }: IUiGeneralAccessRadioProps): JSX.Element;
9930
+
9931
+ /**
9932
+ * 32×32 circle avatar used by the OLP share-dialog grantee list. Thin wrapper
9933
+ * over `UiAvatar` that picks the right silhouette and i18n
9934
+ * accessibility label per grantee kind. Pass `decorative` when
9935
+ * the avatar is paired with a visible name in the same row.
9936
+ *
9937
+ * @internal
9938
+ */
9939
+ export declare function UiGranteeAvatar({ kind, decorative, dataTestId }: IUiGranteeAvatarProps): JSX.Element;
9940
+
9941
+ /**
9942
+ * Grantee row used by the OLP share dialog. Renders avatar + name + optional
9943
+ * email subline + optional "Owner" tag + trailing controls slot.
9944
+ *
9945
+ * @internal
9946
+ */
9947
+ export declare function UiGranteeRow({ kind, name, email, isOwner, controls, dataTestId }: IUiGranteeRowProps): JSX.Element;
9948
+
9468
9949
  /**
9469
9950
  * @internal
9470
9951
  */
@@ -9535,6 +10016,15 @@ export declare function UiMenu<T extends IUiMenuItemData = object, M extends obj
9535
10016
  */
9536
10017
  export declare function UiNavigationBypass({ label, items, onItemClick, style }: IUiNavigationBypassProps): JSX.Element;
9537
10018
 
10019
+ /**
10020
+ * Root component for the OLP share dialog — composes the header, the grantee
10021
+ * list (with its `+ Add` action), the general-access radio, and the
10022
+ * footer Close button.
10023
+ *
10024
+ * @internal
10025
+ */
10026
+ export declare function UiObjectShareDialog({ objectTitle, onClose, grantees, onAddClick, generalAccess, onGeneralAccessChange, workspaceControls, dataTestId }: IUiObjectShareDialogProps): JSX.Element;
10027
+
9538
10028
  /**
9539
10029
  * @internal
9540
10030
  */
@@ -9570,6 +10060,25 @@ export declare type UiPaginationButtonSize = "small" | "large";
9570
10060
  */
9571
10061
  export declare function UiPopover({ id, accessibilityConfig, anchor, width, title, tabIndex, disabled, content, footer, closeText, closeVisible, initialFocus, returnFocusTo, triggerBy, returnFocusAfterClose, focusCheckFn, enableFocusTrap, onOpen, onClose }: IUiPopoverProps): JSX.Element;
9572
10062
 
10063
+ /**
10064
+ * Standalone radio control — renders a native `<input type="radio">` for
10065
+ * accessibility and a custom 14px circle for the visual. The input is overlaid
10066
+ * on the circle, so clicking the circle toggles it. Renders no wrapping
10067
+ * `<label>`: an optional inline label is a sibling associated via `htmlFor`,
10068
+ * which lets `UiRadioRow` supply its own label without nesting.
10069
+ *
10070
+ * @internal
10071
+ */
10072
+ export declare function UiRadio({ checked, onChange, name, value, disabled, accessibilityConfig, tabIndex, label, id, dataTestId }: IUiRadioProps): JSX.Element;
10073
+
10074
+ /**
10075
+ * Selectable row composed of a radio + title + optional description + optional
10076
+ * trailing slot. Mirror of `UiLabelChecklistRow` for the radio case.
10077
+ *
10078
+ * @internal
10079
+ */
10080
+ export declare function UiRadioRow({ checked, onChange, name, value, title, description, trailing, disabled, dataTestId }: IUiRadioRowProps): JSX.Element;
10081
+
9573
10082
  /**
9574
10083
  * @internal
9575
10084
  */
@@ -9590,6 +10099,15 @@ export declare function UiReturnFocusOnUnmount({ children, ...options }: IUiRetu
9590
10099
  */
9591
10100
  export declare function UiSearchResultsAnnouncement({ totalResults, resultValues, announcementDelay }: ISearchResultsAnnouncementProps): JSX.Element;
9592
10101
 
10102
+ /**
10103
+ * "LABEL ────── action" pattern used by dialog sections (e.g. SHARED WITH +
10104
+ * Add link). The horizontal rule fills the space between the label and the
10105
+ * trailing action.
10106
+ *
10107
+ * @internal
10108
+ */
10109
+ export declare function UiSectionHeading({ label, action }: IUiSectionHeadingProps): JSX.Element;
10110
+
9593
10111
  /**
9594
10112
  * @internal
9595
10113
  */
@@ -9667,6 +10185,15 @@ export declare type UiTagProps = {
9667
10185
  */
9668
10186
  export declare function UiTags({ tags, tagOptions, addLabel, nameLabel, cancelLabel, closeLabel, saveLabel, noTagsLabel, moreLabel, removeLabel, creatableLabel, mode, canDeleteTags, canCreateTag, readOnly, onTagClick, onTagAdd, onTagRemove, accessibilityConfig }: IUiTagsProps): JSX.Element;
9669
10187
 
10188
+ /**
10189
+ * Single-line text input with optional label and leading / trailing icons.
10190
+ * The kit's canonical text-field rendering: 32px height, 1px
10191
+ * complementary-4 border, inset shadow, primary-blue focus state.
10192
+ *
10193
+ * @internal
10194
+ */
10195
+ export declare function UiTextInput({ type, value, onChange, label, placeholder, iconBefore, iconAfter, onIconAfter, accessibilityConfig, disabled, autoFocus, dataTestId }: IUiTextInputProps): JSX.Element;
10196
+
9670
10197
  /**
9671
10198
  * @internal
9672
10199
  */