@gooddata/sdk-ui-kit 11.39.0-alpha.3 → 11.39.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/@ui/@types/icon.d.ts +1 -1
- package/esm/@ui/UiAddGranteeDialog/UiAddGranteeDialog.d.ts +39 -0
- package/esm/@ui/UiAddGranteeDialog/UiAddGranteeDialog.js +30 -0
- package/esm/@ui/UiAvatar/UiAvatar.d.ts +40 -0
- package/esm/@ui/UiAvatar/UiAvatar.js +19 -0
- package/esm/@ui/UiButton/UiButton.d.ts +1 -1
- package/esm/@ui/UiDialogShell/UiDialogFooter.d.ts +1 -1
- package/esm/@ui/UiDialogShell/UiDialogHeader.d.ts +1 -1
- package/esm/@ui/UiDialogShell/UiDialogShell.d.ts +10 -10
- package/esm/@ui/UiDialogShell/UiDialogShell.js +2 -2
- package/esm/@ui/UiGeneralAccessRadio/UiGeneralAccessRadio.d.ts +32 -0
- package/esm/@ui/UiGeneralAccessRadio/UiGeneralAccessRadio.js +22 -0
- package/esm/@ui/UiGranteeAvatar/UiGranteeAvatar.d.ts +30 -0
- package/esm/@ui/UiGranteeAvatar/UiGranteeAvatar.js +25 -0
- package/esm/@ui/UiGranteeRow/UiGranteeRow.d.ts +26 -0
- package/esm/@ui/UiGranteeRow/UiGranteeRow.js +19 -0
- package/esm/@ui/UiIcon/icons.js +1 -0
- package/esm/@ui/UiMenu/hooks.js +2 -4
- package/esm/@ui/UiObjectShareDialog/UiObjectShareDialog.d.ts +57 -0
- package/esm/@ui/UiObjectShareDialog/UiObjectShareDialog.js +28 -0
- package/esm/@ui/UiRadio/UiRadio.d.ts +40 -0
- package/esm/@ui/UiRadio/UiRadio.js +23 -0
- package/esm/@ui/UiRadioRow/UiRadioRow.d.ts +33 -0
- package/esm/@ui/UiRadioRow/UiRadioRow.js +19 -0
- package/esm/@ui/UiTextInput/UiTextInput.d.ts +55 -0
- package/esm/@ui/UiTextInput/UiTextInput.js +24 -0
- package/esm/index.d.ts +9 -0
- package/esm/index.js +9 -0
- package/esm/locales.d.ts +61 -0
- package/esm/locales.js +27 -0
- package/esm/sdk-ui-kit.d.ts +374 -14
- package/package.json +11 -11
- package/src/@ui/UiAddGranteeDialog/UiAddGranteeDialog.scss +22 -0
- package/src/@ui/UiAvatar/UiAvatar.scss +22 -0
- package/src/@ui/UiDialogShell/UiDialogShell.scss +0 -1
- package/src/@ui/UiGeneralAccessRadio/UiGeneralAccessRadio.scss +8 -0
- package/src/@ui/UiGranteeRow/UiGranteeRow.scss +36 -0
- package/src/@ui/UiObjectShareDialog/UiObjectShareDialog.scss +12 -0
- package/src/@ui/UiRadio/UiRadio.scss +63 -0
- package/src/@ui/UiRadioRow/UiRadioRow.scss +44 -0
- package/src/@ui/UiSectionHeading/UiSectionHeading.scss +0 -1
- package/src/@ui/UiTextInput/UiTextInput.scss +68 -0
- package/src/@ui/index.scss +17 -0
- package/src/FilterGroupItem/FilterGroupItem.scss +13 -24
- package/styles/css/main.css +285 -20
- package/styles/css/main.css.map +1 -1
package/esm/sdk-ui-kit.d.ts
CHANGED
|
@@ -1134,6 +1134,13 @@ export declare const GD_COLOR_STATE_HOVER = "#94a1ad";
|
|
|
1134
1134
|
*/
|
|
1135
1135
|
export declare const GD_COLOR_WHITE = "#fff";
|
|
1136
1136
|
|
|
1137
|
+
/**
|
|
1138
|
+
* Which general-access option is currently selected.
|
|
1139
|
+
*
|
|
1140
|
+
* @internal
|
|
1141
|
+
*/
|
|
1142
|
+
export declare type GeneralAccessValue = "RESTRICTED" | "WORKSPACE";
|
|
1143
|
+
|
|
1137
1144
|
/**
|
|
1138
1145
|
* @internal
|
|
1139
1146
|
*/
|
|
@@ -1333,6 +1340,13 @@ export declare const GOODSTRAP_DRAG_EVENT = "goodstrap.drag";
|
|
|
1333
1340
|
*/
|
|
1334
1341
|
export declare const GOODSTRAP_SCROLLED_EVENT = "goodstrap.scrolled";
|
|
1335
1342
|
|
|
1343
|
+
/**
|
|
1344
|
+
* Visual variant of a grantee avatar.
|
|
1345
|
+
*
|
|
1346
|
+
* @internal
|
|
1347
|
+
*/
|
|
1348
|
+
export declare type GranteeAvatarKind = "user" | "group";
|
|
1349
|
+
|
|
1336
1350
|
/**
|
|
1337
1351
|
* @internal
|
|
1338
1352
|
*/
|
|
@@ -2584,7 +2598,7 @@ export declare function IconTreeMap({ className, width, height, color, ariaHidde
|
|
|
2584
2598
|
/**
|
|
2585
2599
|
* @internal
|
|
2586
2600
|
*/
|
|
2587
|
-
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" | "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";
|
|
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";
|
|
2588
2602
|
|
|
2589
2603
|
/**
|
|
2590
2604
|
* @internal
|
|
@@ -6264,6 +6278,37 @@ export declare interface ITypographyProps {
|
|
|
6264
6278
|
id?: string;
|
|
6265
6279
|
}
|
|
6266
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
|
+
|
|
6267
6312
|
/**
|
|
6268
6313
|
* @internal
|
|
6269
6314
|
*/
|
|
@@ -6432,6 +6477,37 @@ export declare interface IUiAutofocusOptions {
|
|
|
6432
6477
|
initialFocus?: string | RefObject<HTMLElement | null>;
|
|
6433
6478
|
}
|
|
6434
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
|
+
|
|
6435
6511
|
/**
|
|
6436
6512
|
* @internal
|
|
6437
6513
|
*/
|
|
@@ -6498,7 +6574,7 @@ export declare interface IUiButtonProps {
|
|
|
6498
6574
|
tabIndex?: number;
|
|
6499
6575
|
/**
|
|
6500
6576
|
* When true, the button is focused on mount via the native HTML
|
|
6501
|
-
*
|
|
6577
|
+
* `autofocus` attribute. Use sparingly — best fit is the safest
|
|
6502
6578
|
* action in a confirmation dialog so accidental Enter presses cancel
|
|
6503
6579
|
* rather than confirm a destructive action.
|
|
6504
6580
|
*/
|
|
@@ -6723,7 +6799,7 @@ export declare interface IUiDialogFooterProps {
|
|
|
6723
6799
|
children: ReactNode;
|
|
6724
6800
|
/**
|
|
6725
6801
|
* When true, draws a 1px complementary-3 divider above the footer and adds
|
|
6726
|
-
* matching top padding. ObjectShareDialog and
|
|
6802
|
+
* matching top padding. ObjectShareDialog and AddGranteeDialog want this;
|
|
6727
6803
|
* ConfirmDialog does not.
|
|
6728
6804
|
*/
|
|
6729
6805
|
divider?: boolean;
|
|
@@ -6735,7 +6811,7 @@ export declare interface IUiDialogFooterProps {
|
|
|
6735
6811
|
export declare interface IUiDialogHeaderProps {
|
|
6736
6812
|
/** Title shown in the header. */
|
|
6737
6813
|
title: string;
|
|
6738
|
-
/** Title size —
|
|
6814
|
+
/** Title size — `"default"` = 18/26, `"large"` = 20/26. */
|
|
6739
6815
|
titleSize?: DialogHeaderTitleSize;
|
|
6740
6816
|
/** Fires when the user clicks the X close button. Omit to hide the X. */
|
|
6741
6817
|
onClose?: () => void;
|
|
@@ -6745,10 +6821,10 @@ export declare interface IUiDialogHeaderProps {
|
|
|
6745
6821
|
|
|
6746
6822
|
/**
|
|
6747
6823
|
* Accessibility config for a dialog. By default the shell wires
|
|
6748
|
-
*
|
|
6824
|
+
* `aria-labelledby` to the `UiDialogHeader` title via
|
|
6749
6825
|
* context — no config is needed when a header is present. For headerless
|
|
6750
|
-
* dialogs, pass
|
|
6751
|
-
* element, pass
|
|
6826
|
+
* dialogs, pass `ariaLabel`; to point at an external title
|
|
6827
|
+
* element, pass `ariaLabelledBy`.
|
|
6752
6828
|
*
|
|
6753
6829
|
* @internal
|
|
6754
6830
|
*/
|
|
@@ -6768,16 +6844,16 @@ export declare interface IUiDialogShellProps {
|
|
|
6768
6844
|
width?: number;
|
|
6769
6845
|
/**
|
|
6770
6846
|
* When true, the dialog acts as a modal: focus is trapped inside,
|
|
6771
|
-
* autofocus + return-focus-on-unmount apply, ESC fires
|
|
6772
|
-
* and
|
|
6847
|
+
* autofocus + return-focus-on-unmount apply, ESC fires `onClose`,
|
|
6848
|
+
* and `aria-modal="true"` is set. Leave off for inline
|
|
6773
6849
|
* non-blocking dialog cards.
|
|
6774
6850
|
*/
|
|
6775
6851
|
isModal?: boolean;
|
|
6776
|
-
/** Fires when the user dismisses via ESC. Only active when
|
|
6852
|
+
/** Fires when the user dismisses via ESC. Only active when `isModal`. */
|
|
6777
6853
|
onClose?: () => void;
|
|
6778
6854
|
/**
|
|
6779
|
-
* Accessibility config. Usually unnecessary — when
|
|
6780
|
-
* is used as a child the shell auto-wires
|
|
6855
|
+
* Accessibility config. Usually unnecessary — when `UiDialogHeader`
|
|
6856
|
+
* is used as a child the shell auto-wires `aria-labelledby` to
|
|
6781
6857
|
* the header's title.
|
|
6782
6858
|
*/
|
|
6783
6859
|
accessibilityConfig?: IUiDialogShellAccessibilityConfig;
|
|
@@ -7052,6 +7128,58 @@ export declare type IUiFocusManagerProps = {
|
|
|
7052
7128
|
children: ReactNode;
|
|
7053
7129
|
};
|
|
7054
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
|
+
|
|
7055
7183
|
/**
|
|
7056
7184
|
* @internal
|
|
7057
7185
|
*/
|
|
@@ -7488,6 +7616,54 @@ export declare interface IUiNavigationItem {
|
|
|
7488
7616
|
tabIndex?: number;
|
|
7489
7617
|
}
|
|
7490
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
|
+
|
|
7491
7667
|
/**
|
|
7492
7668
|
* @internal
|
|
7493
7669
|
*/
|
|
@@ -7647,6 +7823,61 @@ export declare interface IUiPopoverProps {
|
|
|
7647
7823
|
onClose?: () => void;
|
|
7648
7824
|
}
|
|
7649
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
|
+
|
|
7650
7881
|
/**
|
|
7651
7882
|
* @internal
|
|
7652
7883
|
*/
|
|
@@ -7931,6 +8162,53 @@ export declare interface IUiTagsProps {
|
|
|
7931
8162
|
accessibilityConfig?: IAccessibilityConfigBase;
|
|
7932
8163
|
}
|
|
7933
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
|
+
|
|
7934
8212
|
/**
|
|
7935
8213
|
* @internal
|
|
7936
8214
|
*/
|
|
@@ -9286,6 +9564,15 @@ export declare function Typography({ tagName: Tag, children, className, title, i
|
|
|
9286
9564
|
*/
|
|
9287
9565
|
export declare type TypographyTagName = "h1" | "h2" | "h3" | "p";
|
|
9288
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
|
+
|
|
9289
9576
|
/**
|
|
9290
9577
|
* @internal
|
|
9291
9578
|
*/
|
|
@@ -9364,6 +9651,15 @@ export declare function UiAutofocus({ root, children, ...options }: {
|
|
|
9364
9651
|
children: ReactNode;
|
|
9365
9652
|
} & IUiAutofocusOptions): FunctionComponentElement<any>;
|
|
9366
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
|
+
|
|
9367
9663
|
/**
|
|
9368
9664
|
* @internal
|
|
9369
9665
|
*/
|
|
@@ -9539,8 +9835,8 @@ export declare function UiDialogHeader({ title, titleSize, onClose, leading }: I
|
|
|
9539
9835
|
/**
|
|
9540
9836
|
* Plain dialog card chrome — 4px radius, soft shadow, complementary-0 fill,
|
|
9541
9837
|
* 20px padding. Holds whatever the caller composes inside. Set
|
|
9542
|
-
*
|
|
9543
|
-
* return-focus, ESC handling and
|
|
9838
|
+
* `isModal` for blocking dialogs (adds focus trap, autofocus,
|
|
9839
|
+
* return-focus, ESC handling and `aria-modal`).
|
|
9544
9840
|
*
|
|
9545
9841
|
* @internal
|
|
9546
9842
|
*/
|
|
@@ -9623,6 +9919,33 @@ export declare function UiFocusTrap({ root, children, focusCheckFn }: {
|
|
|
9623
9919
|
focusCheckFn?: (element: HTMLElement) => boolean;
|
|
9624
9920
|
}): FunctionComponentElement<any>;
|
|
9625
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
|
+
|
|
9626
9949
|
/**
|
|
9627
9950
|
* @internal
|
|
9628
9951
|
*/
|
|
@@ -9693,6 +10016,15 @@ export declare function UiMenu<T extends IUiMenuItemData = object, M extends obj
|
|
|
9693
10016
|
*/
|
|
9694
10017
|
export declare function UiNavigationBypass({ label, items, onItemClick, style }: IUiNavigationBypassProps): JSX.Element;
|
|
9695
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
|
+
|
|
9696
10028
|
/**
|
|
9697
10029
|
* @internal
|
|
9698
10030
|
*/
|
|
@@ -9728,6 +10060,25 @@ export declare type UiPaginationButtonSize = "small" | "large";
|
|
|
9728
10060
|
*/
|
|
9729
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;
|
|
9730
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
|
+
|
|
9731
10082
|
/**
|
|
9732
10083
|
* @internal
|
|
9733
10084
|
*/
|
|
@@ -9834,6 +10185,15 @@ export declare type UiTagProps = {
|
|
|
9834
10185
|
*/
|
|
9835
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;
|
|
9836
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
|
+
|
|
9837
10197
|
/**
|
|
9838
10198
|
* @internal
|
|
9839
10199
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddata/sdk-ui-kit",
|
|
3
|
-
"version": "11.39.0
|
|
3
|
+
"version": "11.39.0",
|
|
4
4
|
"description": "GoodData SDK - UI Building Components",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "GoodData Corporation",
|
|
@@ -75,11 +75,11 @@
|
|
|
75
75
|
"tslib": "2.8.1",
|
|
76
76
|
"unified": "^11.0.5",
|
|
77
77
|
"uuid": "11.1.0",
|
|
78
|
-
"@gooddata/sdk-backend-spi": "11.39.0
|
|
79
|
-
"@gooddata/sdk-
|
|
80
|
-
"@gooddata/sdk-ui": "11.39.0
|
|
81
|
-
"@gooddata/
|
|
82
|
-
"@gooddata/
|
|
78
|
+
"@gooddata/sdk-backend-spi": "11.39.0",
|
|
79
|
+
"@gooddata/sdk-ui": "11.39.0",
|
|
80
|
+
"@gooddata/sdk-ui-theme-provider": "11.39.0",
|
|
81
|
+
"@gooddata/sdk-model": "11.39.0",
|
|
82
|
+
"@gooddata/util": "11.39.0"
|
|
83
83
|
},
|
|
84
84
|
"devDependencies": {
|
|
85
85
|
"@microsoft/api-documenter": "^7.17.0",
|
|
@@ -128,11 +128,11 @@
|
|
|
128
128
|
"typescript": "5.9.3",
|
|
129
129
|
"vitest": "4.1.0",
|
|
130
130
|
"vitest-dom": "0.1.1",
|
|
131
|
-
"@gooddata/eslint-config": "11.39.0
|
|
132
|
-
"@gooddata/oxlint-config": "11.39.0
|
|
133
|
-
"@gooddata/reference-workspace": "11.39.0
|
|
134
|
-
"@gooddata/sdk-backend-mockingbird": "11.39.0
|
|
135
|
-
"@gooddata/stylelint-config": "11.39.0
|
|
131
|
+
"@gooddata/eslint-config": "11.39.0",
|
|
132
|
+
"@gooddata/oxlint-config": "11.39.0",
|
|
133
|
+
"@gooddata/reference-workspace": "11.39.0",
|
|
134
|
+
"@gooddata/sdk-backend-mockingbird": "11.39.0",
|
|
135
|
+
"@gooddata/stylelint-config": "11.39.0"
|
|
136
136
|
},
|
|
137
137
|
"peerDependencies": {
|
|
138
138
|
"react": "^18.0.0 || ^19.0.0",
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
|
|
3
|
+
.gd-ui-kit-add-grantee-dialog {
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-direction: column;
|
|
6
|
+
gap: var(--gd-spacing-10px);
|
|
7
|
+
padding-bottom: var(--gd-spacing-5px);
|
|
8
|
+
|
|
9
|
+
&__preview {
|
|
10
|
+
display: flex;
|
|
11
|
+
align-items: center;
|
|
12
|
+
min-height: 50px;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
&__empty-state {
|
|
16
|
+
flex: 1 1 auto;
|
|
17
|
+
text-align: center;
|
|
18
|
+
font-size: 14px;
|
|
19
|
+
line-height: 20px;
|
|
20
|
+
color: var(--gd-palette-complementary-6);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
|
|
3
|
+
@use "../themeColorsMap" as themeColorsMap;
|
|
4
|
+
|
|
5
|
+
.gd-ui-kit-avatar {
|
|
6
|
+
display: inline-flex;
|
|
7
|
+
align-items: center;
|
|
8
|
+
justify-content: center;
|
|
9
|
+
flex-shrink: 0;
|
|
10
|
+
border-radius: 50%;
|
|
11
|
+
width: var(--gd-avatar-size);
|
|
12
|
+
height: var(--gd-avatar-size);
|
|
13
|
+
background-color: var(--gd-avatar-background-color);
|
|
14
|
+
|
|
15
|
+
&--background {
|
|
16
|
+
@each $key, $value in themeColorsMap.$theme-colors-map {
|
|
17
|
+
&-#{$key} {
|
|
18
|
+
--gd-avatar-background-color: var(--gd-palette-#{$value});
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|