@gooddata/sdk-ui-kit 11.40.0-alpha.1 → 11.40.0-alpha.3
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/UiAsyncTable/UiAsyncTable/UiAsyncTableCheckbox.js +7 -1
- package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableDropdownItem.js +2 -2
- package/esm/@ui/UiCheckbox/UiCheckbox.d.ts +13 -1
- package/esm/@ui/UiCheckbox/UiCheckbox.js +14 -4
- package/esm/@ui/UiGranteeRowControls/UiGranteeRowControls.d.ts +32 -0
- package/esm/@ui/UiGranteeRowControls/UiGranteeRowControls.js +31 -0
- package/esm/@ui/UiIcon/icons.js +3 -0
- package/esm/@ui/UiLabelChecklistRow/UiLabelChecklistRow.d.ts +33 -0
- package/esm/@ui/UiLabelChecklistRow/UiLabelChecklistRow.js +26 -0
- package/esm/@ui/UiLabelRow/UiLabelRow.d.ts +52 -0
- package/esm/@ui/UiLabelRow/UiLabelRow.js +18 -0
- package/esm/@ui/UiLabelsList/UiLabelsList.d.ts +30 -0
- package/esm/@ui/UiLabelsList/UiLabelsList.js +24 -0
- package/esm/@ui/UiLabelsPicker/UiLabelsPicker.d.ts +63 -0
- package/esm/@ui/UiLabelsPicker/UiLabelsPicker.js +89 -0
- package/esm/@ui/UiPermissionMenu/UiPermissionMenu.d.ts +43 -0
- package/esm/@ui/UiPermissionMenu/UiPermissionMenu.js +113 -0
- package/esm/@ui/UiPopover/UiPopover.d.ts +14 -2
- package/esm/@ui/UiPopover/UiPopover.js +21 -5
- package/esm/index.d.ts +6 -0
- package/esm/index.js +6 -0
- package/esm/locales.d.ts +54 -0
- package/esm/locales.js +22 -0
- package/esm/sdk-ui-kit.d.ts +289 -3
- package/package.json +11 -11
- package/src/@ui/UiCheckbox/UiCheckbox.scss +29 -8
- package/src/@ui/UiGranteeRowControls/UiGranteeRowControls.scss +8 -0
- package/src/@ui/UiLabelRow/UiLabelRow.scss +40 -0
- package/src/@ui/UiLabelsList/UiLabelsList.scss +21 -0
- package/src/@ui/UiLabelsPicker/UiLabelsPicker.scss +29 -0
- package/src/@ui/UiPermissionMenu/UiPermissionMenu.scss +66 -0
- package/src/@ui/index.scss +5 -0
- package/styles/css/main.css +158 -7
- package/styles/css/main.css.map +1 -1
package/esm/sdk-ui-kit.d.ts
CHANGED
|
@@ -2598,7 +2598,7 @@ export declare function IconTreeMap({ className, width, height, color, ariaHidde
|
|
|
2598
2598
|
/**
|
|
2599
2599
|
* @internal
|
|
2600
2600
|
*/
|
|
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";
|
|
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" | "infoCircle" | "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";
|
|
2602
2602
|
|
|
2603
2603
|
/**
|
|
2604
2604
|
* @internal
|
|
@@ -5949,6 +5949,16 @@ export declare interface ISingleSelectListItemProps {
|
|
|
5949
5949
|
dataTestId?: string;
|
|
5950
5950
|
}
|
|
5951
5951
|
|
|
5952
|
+
/**
|
|
5953
|
+
* Predicate the picker uses to decide whether an item is effectively selected:
|
|
5954
|
+
* locked items always count as selected, otherwise membership in the staged
|
|
5955
|
+
* `selected` set. Exported so consumers (e.g. the grantee row counter) can
|
|
5956
|
+
* apply the same rule without re-encoding it.
|
|
5957
|
+
*
|
|
5958
|
+
* @internal
|
|
5959
|
+
*/
|
|
5960
|
+
export declare const isLabelsPickerItemChecked: (item: IUiLabelsPickerItem, selectedIds: readonly string[]) => boolean;
|
|
5961
|
+
|
|
5952
5962
|
/**
|
|
5953
5963
|
* @internal
|
|
5954
5964
|
*/
|
|
@@ -6602,6 +6612,12 @@ export declare interface IUiCheckboxProps {
|
|
|
6602
6612
|
accessibilityConfig?: IAccessibilityConfigBase;
|
|
6603
6613
|
tabIndex?: number;
|
|
6604
6614
|
label?: string;
|
|
6615
|
+
/**
|
|
6616
|
+
* Id set on the native input. When omitted a stable id is generated.
|
|
6617
|
+
* Pass an explicit id when an ancestor renders its own
|
|
6618
|
+
* `<label htmlFor={id}>` so the two stay associated.
|
|
6619
|
+
*/
|
|
6620
|
+
id?: string;
|
|
6605
6621
|
}
|
|
6606
6622
|
|
|
6607
6623
|
/**
|
|
@@ -7162,6 +7178,28 @@ export declare interface IUiGranteeAvatarProps {
|
|
|
7162
7178
|
dataTestId?: string;
|
|
7163
7179
|
}
|
|
7164
7180
|
|
|
7181
|
+
/**
|
|
7182
|
+
* @internal
|
|
7183
|
+
*/
|
|
7184
|
+
export declare interface IUiGranteeRowControlsProps {
|
|
7185
|
+
/** All labels available on the parent attribute. */
|
|
7186
|
+
labels: ReadonlyArray<IUiLabelsPickerItem>;
|
|
7187
|
+
/** Currently selected label ids. Locked items are always treated as selected. */
|
|
7188
|
+
selectedLabelIds: ReadonlyArray<string>;
|
|
7189
|
+
/** Current permission level for the grantee. */
|
|
7190
|
+
permissionLevel: PermissionMenuLevel;
|
|
7191
|
+
/** Fires when the labels picker commits a new selection. */
|
|
7192
|
+
onLabelsChange: (selectedIds: string[]) => void;
|
|
7193
|
+
/** Fires when the user picks a new permission level. */
|
|
7194
|
+
onPermissionChange: (level: PermissionMenuLevel) => void;
|
|
7195
|
+
/** Fires when the user picks Transfer ownership in the permission menu. */
|
|
7196
|
+
onTransferOwnership?: () => void;
|
|
7197
|
+
/** Fires when the user picks Remove access in the permission menu. */
|
|
7198
|
+
onRemoveAccess?: () => void;
|
|
7199
|
+
/** Test id forwarded to the root element. */
|
|
7200
|
+
dataTestId?: string;
|
|
7201
|
+
}
|
|
7202
|
+
|
|
7165
7203
|
/**
|
|
7166
7204
|
* @internal
|
|
7167
7205
|
*/
|
|
@@ -7255,6 +7293,135 @@ export declare interface IUiInlineTextGeneratorResult {
|
|
|
7255
7293
|
text: string;
|
|
7256
7294
|
}
|
|
7257
7295
|
|
|
7296
|
+
/**
|
|
7297
|
+
* @internal
|
|
7298
|
+
*/
|
|
7299
|
+
export declare interface IUiLabelChecklistRowProps {
|
|
7300
|
+
/** Label text. */
|
|
7301
|
+
label: string;
|
|
7302
|
+
/** Determines the leading icon. Omit for a generic label icon. */
|
|
7303
|
+
kind?: LabelRowKind;
|
|
7304
|
+
/** Optional trailing suffix passed through to `UiLabelRow`. */
|
|
7305
|
+
suffix?: string;
|
|
7306
|
+
/** Whether the label is selected for inclusion. */
|
|
7307
|
+
checked: boolean;
|
|
7308
|
+
/**
|
|
7309
|
+
* When true the row is rendered but cannot be toggled. Use for the primary
|
|
7310
|
+
* key row, which is always included.
|
|
7311
|
+
*/
|
|
7312
|
+
disabled?: boolean;
|
|
7313
|
+
/** Fires when the user toggles the checkbox. */
|
|
7314
|
+
onChange?: (checked: boolean) => void;
|
|
7315
|
+
/** Test id forwarded to the root element. */
|
|
7316
|
+
dataTestId?: string;
|
|
7317
|
+
}
|
|
7318
|
+
|
|
7319
|
+
/**
|
|
7320
|
+
* @internal
|
|
7321
|
+
*/
|
|
7322
|
+
export declare interface IUiLabelRowProps {
|
|
7323
|
+
/** Label text. */
|
|
7324
|
+
label: string;
|
|
7325
|
+
/** Determines the leading icon. Omit for a generic label icon. */
|
|
7326
|
+
kind?: LabelRowKind;
|
|
7327
|
+
/**
|
|
7328
|
+
* Optional trailing suffix text rendered after the label (e.g.
|
|
7329
|
+
* "Primary key", "Default label"). The kit primitive does not format
|
|
7330
|
+
* domain-specific copy — callers translate and pass the string.
|
|
7331
|
+
*/
|
|
7332
|
+
suffix?: string;
|
|
7333
|
+
/**
|
|
7334
|
+
* Optional content rendered before the kind icon. Used by
|
|
7335
|
+
* `UiLabelChecklistRow` to inject the row's checkbox.
|
|
7336
|
+
*/
|
|
7337
|
+
leading?: ReactNode;
|
|
7338
|
+
/**
|
|
7339
|
+
* Optional id set on the inner label `<span>` so an interactive ancestor
|
|
7340
|
+
* can use it as `aria-labelledby` — e.g. `UiLabelChecklistRow` binds the
|
|
7341
|
+
* row checkbox's accessible name to this id instead of wrapping the row
|
|
7342
|
+
* in a `<label>` (which is invalid HTML around a `<div>`).
|
|
7343
|
+
*/
|
|
7344
|
+
labelId?: string;
|
|
7345
|
+
/**
|
|
7346
|
+
* Optional row click handler. Used by `UiLabelChecklistRow` to delegate
|
|
7347
|
+
* clicks anywhere on the row to the inner checkbox without nesting the
|
|
7348
|
+
* row inside a `<label>`. Not fired when the click originates inside an
|
|
7349
|
+
* interactive descendant.
|
|
7350
|
+
*/
|
|
7351
|
+
onClick?: () => void;
|
|
7352
|
+
/** Test id forwarded to the root element. */
|
|
7353
|
+
dataTestId?: string;
|
|
7354
|
+
}
|
|
7355
|
+
|
|
7356
|
+
/**
|
|
7357
|
+
* One label entry in the list.
|
|
7358
|
+
*
|
|
7359
|
+
* @internal
|
|
7360
|
+
*/
|
|
7361
|
+
export declare interface IUiLabelsListItem {
|
|
7362
|
+
/** Stable identifier for React keys. */
|
|
7363
|
+
id: string;
|
|
7364
|
+
/** Label text. */
|
|
7365
|
+
label: string;
|
|
7366
|
+
/** Drives the icon + suffix. Omit for a regular label. */
|
|
7367
|
+
kind?: LabelRowKind;
|
|
7368
|
+
}
|
|
7369
|
+
|
|
7370
|
+
/**
|
|
7371
|
+
* @internal
|
|
7372
|
+
*/
|
|
7373
|
+
export declare interface IUiLabelsListProps {
|
|
7374
|
+
/** Label items to render in source order. */
|
|
7375
|
+
items: ReadonlyArray<IUiLabelsListItem>;
|
|
7376
|
+
/** Test id forwarded to the root element. */
|
|
7377
|
+
dataTestId?: string;
|
|
7378
|
+
}
|
|
7379
|
+
|
|
7380
|
+
/**
|
|
7381
|
+
* One label entry in the picker.
|
|
7382
|
+
*
|
|
7383
|
+
* @internal
|
|
7384
|
+
*/
|
|
7385
|
+
export declare interface IUiLabelsPickerItem {
|
|
7386
|
+
/** Stable identifier — used as the React key and in selection state. */
|
|
7387
|
+
id: string;
|
|
7388
|
+
/** Label text. */
|
|
7389
|
+
label: string;
|
|
7390
|
+
/** Drives the icon + suffix. Omit for a regular label. */
|
|
7391
|
+
kind?: LabelRowKind;
|
|
7392
|
+
/**
|
|
7393
|
+
* When true the item is rendered locked (checked + disabled). Used for
|
|
7394
|
+
* the primary-key row, which is always included.
|
|
7395
|
+
*/
|
|
7396
|
+
locked?: boolean;
|
|
7397
|
+
}
|
|
7398
|
+
|
|
7399
|
+
/**
|
|
7400
|
+
* @internal
|
|
7401
|
+
*/
|
|
7402
|
+
export declare interface IUiLabelsPickerProps {
|
|
7403
|
+
/** Element that opens the picker on click. */
|
|
7404
|
+
anchor: ReactElement<any>;
|
|
7405
|
+
/** All available label items, in source order. */
|
|
7406
|
+
items: ReadonlyArray<IUiLabelsPickerItem>;
|
|
7407
|
+
/**
|
|
7408
|
+
* Initial set of selected item ids. Locked items are always treated as
|
|
7409
|
+
* selected regardless of what's passed here. Consumers that need to
|
|
7410
|
+
* reset the staged state when switching contexts (e.g. picking labels
|
|
7411
|
+
* for a different grantee) should pass `key={contextId}` so React
|
|
7412
|
+
* remounts the picker body.
|
|
7413
|
+
*/
|
|
7414
|
+
defaultSelectedIds: ReadonlyArray<string>;
|
|
7415
|
+
/**
|
|
7416
|
+
* Fires when the user clicks Apply with the (locked-augmented) set of
|
|
7417
|
+
* selected ids. The picker keeps its own staged state — the caller is
|
|
7418
|
+
* notified only on commit.
|
|
7419
|
+
*/
|
|
7420
|
+
onApply: (selectedIds: string[]) => void;
|
|
7421
|
+
/** Test id forwarded to the picker body. */
|
|
7422
|
+
dataTestId?: string;
|
|
7423
|
+
}
|
|
7424
|
+
|
|
7258
7425
|
/**
|
|
7259
7426
|
* @internal
|
|
7260
7427
|
*/
|
|
@@ -7786,12 +7953,52 @@ export declare interface IUiPaginationButtonProps {
|
|
|
7786
7953
|
accessibilityConfig?: IAccessibilityConfigBase;
|
|
7787
7954
|
}
|
|
7788
7955
|
|
|
7956
|
+
/**
|
|
7957
|
+
* @internal
|
|
7958
|
+
*/
|
|
7959
|
+
export declare interface IUiPermissionMenuProps {
|
|
7960
|
+
/** Element that opens the menu on click. */
|
|
7961
|
+
anchor: ReactElement<any>;
|
|
7962
|
+
/** Currently selected permission level — drives `aria-checked`. */
|
|
7963
|
+
selectedLevel?: PermissionMenuLevel;
|
|
7964
|
+
/** Fires when the user picks a permission level. */
|
|
7965
|
+
onPermissionChange: (level: PermissionMenuLevel) => void;
|
|
7966
|
+
/** Fires when the user picks Transfer ownership. */
|
|
7967
|
+
onTransferOwnership?: () => void;
|
|
7968
|
+
/**
|
|
7969
|
+
* Fires when the user picks the Labels entry. Display the count via
|
|
7970
|
+
* `labelsCounter`.
|
|
7971
|
+
*/
|
|
7972
|
+
onLabelsClick?: () => void;
|
|
7973
|
+
/**
|
|
7974
|
+
* Counter shown next to the Labels row (e.g. `"4/4"`). Hidden
|
|
7975
|
+
* if omitted.
|
|
7976
|
+
*/
|
|
7977
|
+
labelsCounter?: string;
|
|
7978
|
+
/** Fires when the user picks Remove access. */
|
|
7979
|
+
onRemoveAccess?: () => void;
|
|
7980
|
+
/** Test id forwarded to the menu body. */
|
|
7981
|
+
dataTestId?: string;
|
|
7982
|
+
}
|
|
7983
|
+
|
|
7789
7984
|
/**
|
|
7790
7985
|
* @internal
|
|
7791
7986
|
*/
|
|
7792
7987
|
export declare interface IUiPopoverProps {
|
|
7793
7988
|
id?: string;
|
|
7794
7989
|
anchor: ReactElement<any>;
|
|
7990
|
+
/**
|
|
7991
|
+
* Accessibility attributes forwarded to the anchor element (the trigger).
|
|
7992
|
+
* `ariaHaspopup` defaults to `"dialog"` — pass
|
|
7993
|
+
* `"menu"` for menu-style popovers, `"listbox"` for
|
|
7994
|
+
* single-select pickers, etc. Set `ariaHaspopup: false` to
|
|
7995
|
+
* suppress. (Separate from `accessibilityConfig`, which targets
|
|
7996
|
+
* the popover content surface.)
|
|
7997
|
+
*/
|
|
7998
|
+
anchorAccessibilityConfig?: {
|
|
7999
|
+
ariaHaspopup?: "dialog" | "menu" | "listbox" | "tree" | "grid" | false;
|
|
8000
|
+
ariaControls?: AriaAttributes["aria-controls"];
|
|
8001
|
+
};
|
|
7795
8002
|
width?: "default" | number;
|
|
7796
8003
|
disabled?: boolean;
|
|
7797
8004
|
tabIndex?: number;
|
|
@@ -8578,6 +8785,14 @@ export declare interface IZoomContextState {
|
|
|
8578
8785
|
hasVisualViewport: boolean;
|
|
8579
8786
|
}
|
|
8580
8787
|
|
|
8788
|
+
/**
|
|
8789
|
+
* Display-form kind. Drives the icon only — the trailing suffix text is
|
|
8790
|
+
* supplied by the caller via `suffix`. Omit for a regular label.
|
|
8791
|
+
*
|
|
8792
|
+
* @internal
|
|
8793
|
+
*/
|
|
8794
|
+
export declare type LabelRowKind = "primary" | "default";
|
|
8795
|
+
|
|
8581
8796
|
/**
|
|
8582
8797
|
* @internal
|
|
8583
8798
|
*/
|
|
@@ -8995,6 +9210,13 @@ export declare function ParameterControlDropdown({ name, value, resetValue, cons
|
|
|
8995
9210
|
*/
|
|
8996
9211
|
export declare function ParameterPicker({ parameters, excludedKeys, isLoading, maxListHeight, onAdd, onCancel }: IParameterPickerProps): JSX.Element;
|
|
8997
9212
|
|
|
9213
|
+
/**
|
|
9214
|
+
* Permission level offered by the menu.
|
|
9215
|
+
*
|
|
9216
|
+
* @internal
|
|
9217
|
+
*/
|
|
9218
|
+
export declare type PermissionMenuLevel = "VIEW" | "SHARE";
|
|
9219
|
+
|
|
8998
9220
|
/**
|
|
8999
9221
|
* @internal
|
|
9000
9222
|
*/
|
|
@@ -9710,9 +9932,15 @@ export declare type UiButtonSegmentedControlProps = Omit<ComponentPropsWithRef<"
|
|
|
9710
9932
|
export declare const UiCard: ForwardRefExoticComponent<IUiCardProps & RefAttributes<HTMLDivElement>>;
|
|
9711
9933
|
|
|
9712
9934
|
/**
|
|
9935
|
+
* Checkbox control — renders a native `<input type="checkbox">` for
|
|
9936
|
+
* accessibility and a custom 14px box for the visual. The input is overlaid on
|
|
9937
|
+
* the box, so clicking the box toggles it. Renders no wrapping `<label>`: an
|
|
9938
|
+
* optional inline label is a sibling associated via `htmlFor`, which lets an
|
|
9939
|
+
* ancestor row supply its own label without nesting.
|
|
9940
|
+
*
|
|
9713
9941
|
* @internal
|
|
9714
9942
|
*/
|
|
9715
|
-
export declare function UiCheckbox({ checked, onChange, preventDefault, indeterminate, disabled, accessibilityConfig, tabIndex, label }: IUiCheckboxProps): JSX.Element;
|
|
9943
|
+
export declare function UiCheckbox({ checked, onChange, preventDefault, indeterminate, disabled, accessibilityConfig, tabIndex, label, id }: IUiCheckboxProps): JSX.Element;
|
|
9716
9944
|
|
|
9717
9945
|
/**
|
|
9718
9946
|
* @internal
|
|
@@ -9946,6 +10174,16 @@ export declare function UiGranteeAvatar({ kind, decorative, dataTestId }: IUiGra
|
|
|
9946
10174
|
*/
|
|
9947
10175
|
export declare function UiGranteeRow({ kind, name, email, isOwner, controls, dataTestId }: IUiGranteeRowProps): JSX.Element;
|
|
9948
10176
|
|
|
10177
|
+
/**
|
|
10178
|
+
* Pair of controls shown on every grantee row in the OLP share dialog:
|
|
10179
|
+
* a labels-picker trigger and a permission-menu trigger. Both triggers are
|
|
10180
|
+
* Tertiary `small` `UiButton`s with `chevronDown`
|
|
10181
|
+
* and open their respective popovers on click.
|
|
10182
|
+
*
|
|
10183
|
+
* @internal
|
|
10184
|
+
*/
|
|
10185
|
+
export declare function UiGranteeRowControls({ labels, selectedLabelIds, permissionLevel, onLabelsChange, onPermissionChange, onTransferOwnership, onRemoveAccess, dataTestId }: IUiGranteeRowControlsProps): JSX.Element;
|
|
10186
|
+
|
|
9949
10187
|
/**
|
|
9950
10188
|
* @internal
|
|
9951
10189
|
*/
|
|
@@ -9966,6 +10204,44 @@ export declare type UiIconButtonProps = IUiIconButtonPublicProps;
|
|
|
9966
10204
|
*/
|
|
9967
10205
|
export declare const UiInlineTextGenerator: ForwardRefExoticComponent<IUiInlineTextGeneratorProps & RefAttributes<HTMLDivElement>>;
|
|
9968
10206
|
|
|
10207
|
+
/**
|
|
10208
|
+
* Selectable label row used inside the Labels picker. The row delegates row
|
|
10209
|
+
* clicks to the inner checkbox and binds the checkbox's accessible name to
|
|
10210
|
+
* the row's label span via `aria-labelledby` — instead of wrapping the row
|
|
10211
|
+
* in a `<label>` element (which is invalid HTML around the row's `<div>`).
|
|
10212
|
+
* `disabled` locks the row for the primary-key case.
|
|
10213
|
+
*
|
|
10214
|
+
* @internal
|
|
10215
|
+
*/
|
|
10216
|
+
export declare function UiLabelChecklistRow({ label, kind, suffix, checked, disabled, onChange, dataTestId }: IUiLabelChecklistRowProps): JSX.Element;
|
|
10217
|
+
|
|
10218
|
+
/**
|
|
10219
|
+
* Read-only label row — icon + label + optional caller-supplied suffix. Used
|
|
10220
|
+
* inside the Labels list and (via `UiLabelChecklistRow`) the
|
|
10221
|
+
* Labels picker.
|
|
10222
|
+
*
|
|
10223
|
+
* @internal
|
|
10224
|
+
*/
|
|
10225
|
+
export declare function UiLabelRow({ label, kind, suffix, leading, labelId, onClick, dataTestId }: IUiLabelRowProps): JSX.Element;
|
|
10226
|
+
|
|
10227
|
+
/**
|
|
10228
|
+
* Read-only list of labels — uppercase heading + N `UiLabelRow`s.
|
|
10229
|
+
* Renders only the panel content; whoever needs a popover wraps it.
|
|
10230
|
+
*
|
|
10231
|
+
* @internal
|
|
10232
|
+
*/
|
|
10233
|
+
export declare function UiLabelsList({ items, dataTestId }: IUiLabelsListProps): JSX.Element;
|
|
10234
|
+
|
|
10235
|
+
/**
|
|
10236
|
+
* Per-label picker popover. Anchored on a click target; stages selection
|
|
10237
|
+
* internally and commits via `onApply`. Locked items are always included
|
|
10238
|
+
* — at render time via {@link isLabelsPickerItemChecked} and again at
|
|
10239
|
+
* commit via the locked-aware filter.
|
|
10240
|
+
*
|
|
10241
|
+
* @internal
|
|
10242
|
+
*/
|
|
10243
|
+
export declare function UiLabelsPicker({ anchor, items, defaultSelectedIds, onApply, dataTestId }: IUiLabelsPickerProps): JSX.Element;
|
|
10244
|
+
|
|
9969
10245
|
/**
|
|
9970
10246
|
* @internal
|
|
9971
10247
|
*/
|
|
@@ -10055,10 +10331,20 @@ export declare type UiPaginationButtonDirection = "previous" | "next";
|
|
|
10055
10331
|
*/
|
|
10056
10332
|
export declare type UiPaginationButtonSize = "small" | "large";
|
|
10057
10333
|
|
|
10334
|
+
/**
|
|
10335
|
+
* Per-grantee permission popover. Renders a fixed set of rows — two
|
|
10336
|
+
* permission levels (Can view & share / Can view), an optional divider,
|
|
10337
|
+
* and optional Transfer ownership / Labels / Remove access action rows.
|
|
10338
|
+
* Each level row carries an `infoCircle` tooltip.
|
|
10339
|
+
*
|
|
10340
|
+
* @internal
|
|
10341
|
+
*/
|
|
10342
|
+
export declare function UiPermissionMenu({ anchor, selectedLevel, onPermissionChange, onTransferOwnership, onLabelsClick, labelsCounter, onRemoveAccess, dataTestId }: IUiPermissionMenuProps): JSX.Element;
|
|
10343
|
+
|
|
10058
10344
|
/**
|
|
10059
10345
|
* @internal
|
|
10060
10346
|
*/
|
|
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;
|
|
10347
|
+
export declare function UiPopover({ id, accessibilityConfig, anchor, anchorAccessibilityConfig, width, title, tabIndex, disabled, content, footer, closeText, closeVisible, initialFocus, returnFocusTo, triggerBy, returnFocusAfterClose, focusCheckFn, enableFocusTrap, onOpen, onClose }: IUiPopoverProps): JSX.Element;
|
|
10062
10348
|
|
|
10063
10349
|
/**
|
|
10064
10350
|
* Standalone radio control — renders a native `<input type="radio">` for
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddata/sdk-ui-kit",
|
|
3
|
-
"version": "11.40.0-alpha.
|
|
3
|
+
"version": "11.40.0-alpha.3",
|
|
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.40.0-alpha.
|
|
79
|
-
"@gooddata/sdk-
|
|
80
|
-
"@gooddata/sdk-
|
|
81
|
-
"@gooddata/sdk-ui-theme-provider": "11.40.0-alpha.
|
|
82
|
-
"@gooddata/util": "11.40.0-alpha.
|
|
78
|
+
"@gooddata/sdk-backend-spi": "11.40.0-alpha.3",
|
|
79
|
+
"@gooddata/sdk-ui": "11.40.0-alpha.3",
|
|
80
|
+
"@gooddata/sdk-model": "11.40.0-alpha.3",
|
|
81
|
+
"@gooddata/sdk-ui-theme-provider": "11.40.0-alpha.3",
|
|
82
|
+
"@gooddata/util": "11.40.0-alpha.3"
|
|
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.40.0-alpha.
|
|
132
|
-
"@gooddata/oxlint-config": "11.40.0-alpha.
|
|
133
|
-
"@gooddata/reference-workspace": "11.40.0-alpha.
|
|
134
|
-
"@gooddata/sdk-backend-mockingbird": "11.40.0-alpha.
|
|
135
|
-
"@gooddata/stylelint-config": "11.40.0-alpha.
|
|
131
|
+
"@gooddata/eslint-config": "11.40.0-alpha.3",
|
|
132
|
+
"@gooddata/oxlint-config": "11.40.0-alpha.3",
|
|
133
|
+
"@gooddata/reference-workspace": "11.40.0-alpha.3",
|
|
134
|
+
"@gooddata/sdk-backend-mockingbird": "11.40.0-alpha.3",
|
|
135
|
+
"@gooddata/stylelint-config": "11.40.0-alpha.3"
|
|
136
136
|
},
|
|
137
137
|
"peerDependencies": {
|
|
138
138
|
"react": "^18.0.0 || ^19.0.0",
|
|
@@ -3,14 +3,28 @@
|
|
|
3
3
|
.gd-ui-kit-checkbox {
|
|
4
4
|
display: inline-flex;
|
|
5
5
|
align-items: center;
|
|
6
|
-
cursor: pointer;
|
|
7
6
|
user-select: none;
|
|
8
7
|
|
|
8
|
+
&__control {
|
|
9
|
+
position: relative;
|
|
10
|
+
display: inline-flex;
|
|
11
|
+
flex-shrink: 0;
|
|
12
|
+
width: 14px;
|
|
13
|
+
height: 14px;
|
|
14
|
+
}
|
|
15
|
+
|
|
9
16
|
&__input {
|
|
10
17
|
position: absolute;
|
|
18
|
+
inset: 0;
|
|
19
|
+
width: 100%;
|
|
20
|
+
height: 100%;
|
|
21
|
+
margin: 0;
|
|
11
22
|
opacity: 0;
|
|
12
|
-
|
|
13
|
-
|
|
23
|
+
cursor: pointer;
|
|
24
|
+
|
|
25
|
+
&:disabled {
|
|
26
|
+
cursor: not-allowed;
|
|
27
|
+
}
|
|
14
28
|
}
|
|
15
29
|
|
|
16
30
|
&__box {
|
|
@@ -20,16 +34,12 @@
|
|
|
20
34
|
border: 1px solid var(--gd-palette-complementary-5);
|
|
21
35
|
border-radius: 2px;
|
|
22
36
|
position: relative;
|
|
37
|
+
pointer-events: none;
|
|
23
38
|
transition:
|
|
24
39
|
background-color 0.2s,
|
|
25
40
|
border-color 0.2s;
|
|
26
41
|
background-color: var(--gd-palette-complementary-0);
|
|
27
42
|
|
|
28
|
-
&:hover:not(&--disabled) {
|
|
29
|
-
border-color: var(--gd-palette-complementary-6);
|
|
30
|
-
box-shadow: 0 1px 2px 0 rgba(31, 53, 74, 0.15) inset;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
43
|
&::after {
|
|
34
44
|
box-sizing: border-box;
|
|
35
45
|
content: "";
|
|
@@ -66,6 +76,16 @@
|
|
|
66
76
|
&--disabled {
|
|
67
77
|
border-color: var(--gd-palette-complementary-3);
|
|
68
78
|
}
|
|
79
|
+
|
|
80
|
+
&--checked#{&}--disabled {
|
|
81
|
+
background-color: var(--gd-palette-complementary-4);
|
|
82
|
+
border-color: var(--gd-palette-complementary-4);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
&__input:hover:not(:disabled) + &__box {
|
|
87
|
+
border-color: var(--gd-palette-complementary-6);
|
|
88
|
+
box-shadow: 0 1px 2px 0 rgba(31, 53, 74, 0.15) inset;
|
|
69
89
|
}
|
|
70
90
|
|
|
71
91
|
&__input:focus-visible + &__box {
|
|
@@ -75,5 +95,6 @@
|
|
|
75
95
|
&__label {
|
|
76
96
|
margin-left: 8px;
|
|
77
97
|
user-select: none;
|
|
98
|
+
cursor: pointer;
|
|
78
99
|
}
|
|
79
100
|
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
|
|
3
|
+
.gd-ui-kit-label-row {
|
|
4
|
+
display: flex;
|
|
5
|
+
align-items: center;
|
|
6
|
+
gap: var(--gd-spacing-5px);
|
|
7
|
+
padding: var(--gd-spacing-5px) var(--gd-spacing-10px);
|
|
8
|
+
font-size: 12px;
|
|
9
|
+
line-height: 18px;
|
|
10
|
+
|
|
11
|
+
&__leading {
|
|
12
|
+
display: inline-flex;
|
|
13
|
+
align-items: center;
|
|
14
|
+
flex-shrink: 0;
|
|
15
|
+
padding-right: var(--gd-spacing-5px);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
&__icon {
|
|
19
|
+
display: inline-flex;
|
|
20
|
+
align-items: center;
|
|
21
|
+
flex-shrink: 0;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&__label {
|
|
25
|
+
flex: 0 1 auto;
|
|
26
|
+
min-width: 0;
|
|
27
|
+
font-weight: 700;
|
|
28
|
+
color: var(--gd-palette-complementary-8);
|
|
29
|
+
overflow: hidden;
|
|
30
|
+
text-overflow: ellipsis;
|
|
31
|
+
white-space: nowrap;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&__suffix {
|
|
35
|
+
flex: 1 1 auto;
|
|
36
|
+
min-width: 0;
|
|
37
|
+
color: var(--gd-palette-complementary-6);
|
|
38
|
+
font-weight: 400;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
|
|
3
|
+
.gd-ui-kit-labels-list {
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-direction: column;
|
|
6
|
+
|
|
7
|
+
&__heading {
|
|
8
|
+
padding: var(--gd-spacing-10px) var(--gd-spacing-10px) var(--gd-spacing-5px);
|
|
9
|
+
font-size: 10px;
|
|
10
|
+
font-weight: 700;
|
|
11
|
+
line-height: 14px;
|
|
12
|
+
letter-spacing: 0.04em;
|
|
13
|
+
text-transform: uppercase;
|
|
14
|
+
color: var(--gd-palette-complementary-6);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&__items {
|
|
18
|
+
display: flex;
|
|
19
|
+
flex-direction: column;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
|
|
3
|
+
// Rendered inside UiPopover.__content (which adds 10px padding + 20px gap).
|
|
4
|
+
// Pull the padding back so the rows stretch edge-to-edge of the popover and
|
|
5
|
+
// disable the gap. The actions strip sits flush at the bottom with its own
|
|
6
|
+
// top border.
|
|
7
|
+
|
|
8
|
+
.gd-ui-kit-labels-picker {
|
|
9
|
+
align-self: stretch;
|
|
10
|
+
display: flex;
|
|
11
|
+
flex-direction: column;
|
|
12
|
+
// UiPopover's __content adds 10px padding all around. Pull it back so rows
|
|
13
|
+
// reach edge-to-edge of the popover; the popover sets its own width.
|
|
14
|
+
margin: calc(-1 * var(--gd-spacing-10px));
|
|
15
|
+
|
|
16
|
+
&__items {
|
|
17
|
+
display: flex;
|
|
18
|
+
flex-direction: column;
|
|
19
|
+
padding: var(--gd-spacing-10px) 0;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
&__actions {
|
|
23
|
+
display: flex;
|
|
24
|
+
justify-content: flex-end;
|
|
25
|
+
gap: var(--gd-spacing-10px);
|
|
26
|
+
padding: var(--gd-spacing-10px);
|
|
27
|
+
border-top: 1px solid var(--gd-palette-complementary-3);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
|
|
3
|
+
// Rendered inside UiPopover.__content (which adds 10px padding all around).
|
|
4
|
+
// Pull the padding back so rows span the popover edge-to-edge.
|
|
5
|
+
|
|
6
|
+
.gd-ui-kit-permission-menu {
|
|
7
|
+
align-self: stretch;
|
|
8
|
+
display: flex;
|
|
9
|
+
flex-direction: column;
|
|
10
|
+
margin: calc(-1 * var(--gd-spacing-10px));
|
|
11
|
+
|
|
12
|
+
&__items {
|
|
13
|
+
display: flex;
|
|
14
|
+
flex-direction: column;
|
|
15
|
+
padding: var(--gd-spacing-5px) 0;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
&__divider {
|
|
19
|
+
height: 1px;
|
|
20
|
+
margin: var(--gd-spacing-5px) 0;
|
|
21
|
+
background: var(--gd-palette-complementary-3);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&__item-row {
|
|
25
|
+
display: flex;
|
|
26
|
+
align-items: stretch;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
&__item {
|
|
30
|
+
flex: 1 1 auto;
|
|
31
|
+
min-width: 0;
|
|
32
|
+
display: flex;
|
|
33
|
+
align-items: center;
|
|
34
|
+
gap: var(--gd-spacing-5px);
|
|
35
|
+
padding: var(--gd-spacing-5px) var(--gd-spacing-10px);
|
|
36
|
+
border: 0;
|
|
37
|
+
background: transparent;
|
|
38
|
+
cursor: pointer;
|
|
39
|
+
text-align: left;
|
|
40
|
+
font: inherit;
|
|
41
|
+
color: var(--gd-palette-complementary-8);
|
|
42
|
+
|
|
43
|
+
&:hover,
|
|
44
|
+
&:focus-visible {
|
|
45
|
+
background: var(--gd-palette-complementary-2);
|
|
46
|
+
outline: none;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
&__item-label {
|
|
51
|
+
flex: 1 1 auto;
|
|
52
|
+
min-width: 0;
|
|
53
|
+
font-size: 12px;
|
|
54
|
+
line-height: 18px;
|
|
55
|
+
overflow: hidden;
|
|
56
|
+
text-overflow: ellipsis;
|
|
57
|
+
white-space: nowrap;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
&__item-counter {
|
|
61
|
+
flex-shrink: 0;
|
|
62
|
+
font-size: 12px;
|
|
63
|
+
line-height: 18px;
|
|
64
|
+
color: var(--gd-palette-complementary-6);
|
|
65
|
+
}
|
|
66
|
+
}
|