@gooddata/sdk-ui-kit 11.39.0-alpha.1 → 11.39.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/UiButton/UiButton.d.ts +7 -0
- package/esm/@ui/UiButton/UiButton.js +2 -2
- package/esm/@ui/UiConfirmDialog/UiConfirmDialog.d.ts +38 -0
- package/esm/@ui/UiConfirmDialog/UiConfirmDialog.js +28 -0
- package/esm/@ui/UiDialogShell/UiDialogFooter.d.ts +21 -0
- package/esm/@ui/UiDialogShell/UiDialogFooter.js +12 -0
- package/esm/@ui/UiDialogShell/UiDialogHeader.d.ts +26 -0
- package/esm/@ui/UiDialogShell/UiDialogHeader.js +19 -0
- package/esm/@ui/UiDialogShell/UiDialogShell.d.ts +58 -0
- package/esm/@ui/UiDialogShell/UiDialogShell.js +36 -0
- package/esm/@ui/UiIcon/icons.js +4 -0
- package/esm/@ui/UiSectionHeading/UiSectionHeading.d.ts +18 -0
- package/esm/@ui/UiSectionHeading/UiSectionHeading.js +14 -0
- package/esm/index.d.ts +5 -0
- package/esm/index.js +5 -0
- package/esm/locales.d.ts +8 -0
- package/esm/locales.js +5 -1
- package/esm/sdk-ui-kit.d.ts +168 -1
- package/package.json +11 -11
- package/src/@ui/UiConfirmDialog/UiConfirmDialog.scss +13 -0
- package/src/@ui/UiDialogShell/UiDialogShell.scss +57 -0
- package/src/@ui/UiSectionHeading/UiSectionHeading.scss +29 -0
- package/src/@ui/index.scss +3 -0
- package/styles/css/main.css +87 -0
- package/styles/css/main.css.map +1 -1
package/esm/sdk-ui-kit.d.ts
CHANGED
|
@@ -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
|
*/
|
|
@@ -2570,7 +2584,7 @@ export declare function IconTreeMap({ className, width, height, color, ariaHidde
|
|
|
2570
2584
|
/**
|
|
2571
2585
|
* @internal
|
|
2572
2586
|
*/
|
|
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";
|
|
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";
|
|
2574
2588
|
|
|
2575
2589
|
/**
|
|
2576
2590
|
* @internal
|
|
@@ -6482,6 +6496,13 @@ export declare interface IUiButtonProps {
|
|
|
6482
6496
|
accessibilityConfig?: IUiButtonAccessibilityConfig;
|
|
6483
6497
|
maxWidth?: number;
|
|
6484
6498
|
tabIndex?: number;
|
|
6499
|
+
/**
|
|
6500
|
+
* When true, the button is focused on mount via the native HTML
|
|
6501
|
+
* <code>autofocus</code> attribute. Use sparingly — best fit is the safest
|
|
6502
|
+
* action in a confirmation dialog so accidental Enter presses cancel
|
|
6503
|
+
* rather than confirm a destructive action.
|
|
6504
|
+
*/
|
|
6505
|
+
autoFocus?: boolean;
|
|
6485
6506
|
}
|
|
6486
6507
|
|
|
6487
6508
|
/**
|
|
@@ -6617,6 +6638,28 @@ export declare interface IUiComboboxState {
|
|
|
6617
6638
|
creatable: boolean;
|
|
6618
6639
|
}
|
|
6619
6640
|
|
|
6641
|
+
/**
|
|
6642
|
+
* @internal
|
|
6643
|
+
*/
|
|
6644
|
+
export declare interface IUiConfirmDialogProps {
|
|
6645
|
+
/** Dialog title rendered inside the header. */
|
|
6646
|
+
title: string;
|
|
6647
|
+
/** Body content — typically a sentence or two of description. */
|
|
6648
|
+
description: ReactNode;
|
|
6649
|
+
/** Label for the confirm button — e.g. "Confirm", "Remove", "Transfer". */
|
|
6650
|
+
confirmLabel: string;
|
|
6651
|
+
/** Visual variant of the confirm button. */
|
|
6652
|
+
confirmVariant?: ConfirmDialogVariant;
|
|
6653
|
+
/** Fires when the user clicks the header X close button. */
|
|
6654
|
+
onClose: () => void;
|
|
6655
|
+
/** Fires when the user clicks the footer Cancel button. */
|
|
6656
|
+
onCancel: () => void;
|
|
6657
|
+
/** Fires when the user clicks the footer confirm button. */
|
|
6658
|
+
onConfirm: () => void;
|
|
6659
|
+
/** Test id forwarded to the root element. */
|
|
6660
|
+
dataTestId?: string;
|
|
6661
|
+
}
|
|
6662
|
+
|
|
6620
6663
|
/**
|
|
6621
6664
|
* @internal
|
|
6622
6665
|
*/
|
|
@@ -6672,6 +6715,76 @@ export declare interface IUiDateProps {
|
|
|
6672
6715
|
allowRelative?: boolean;
|
|
6673
6716
|
}
|
|
6674
6717
|
|
|
6718
|
+
/**
|
|
6719
|
+
* @internal
|
|
6720
|
+
*/
|
|
6721
|
+
export declare interface IUiDialogFooterProps {
|
|
6722
|
+
/** Right-aligned cluster of footer controls (typically Cancel + primary). */
|
|
6723
|
+
children: ReactNode;
|
|
6724
|
+
/**
|
|
6725
|
+
* When true, draws a 1px complementary-3 divider above the footer and adds
|
|
6726
|
+
* matching top padding. ObjectShareDialog and AddGranteeScreen want this;
|
|
6727
|
+
* ConfirmDialog does not.
|
|
6728
|
+
*/
|
|
6729
|
+
divider?: boolean;
|
|
6730
|
+
}
|
|
6731
|
+
|
|
6732
|
+
/**
|
|
6733
|
+
* @internal
|
|
6734
|
+
*/
|
|
6735
|
+
export declare interface IUiDialogHeaderProps {
|
|
6736
|
+
/** Title shown in the header. */
|
|
6737
|
+
title: string;
|
|
6738
|
+
/** Title size — <code>"default"</code> = 18/26, <code>"large"</code> = 20/26. */
|
|
6739
|
+
titleSize?: DialogHeaderTitleSize;
|
|
6740
|
+
/** Fires when the user clicks the X close button. Omit to hide the X. */
|
|
6741
|
+
onClose?: () => void;
|
|
6742
|
+
/** Optional leading slot rendered before the title (e.g. a back button). */
|
|
6743
|
+
leading?: ReactNode;
|
|
6744
|
+
}
|
|
6745
|
+
|
|
6746
|
+
/**
|
|
6747
|
+
* Accessibility config for a dialog. By default the shell wires
|
|
6748
|
+
* <code>aria-labelledby</code> to the <code>UiDialogHeader</code> title via
|
|
6749
|
+
* context — no config is needed when a header is present. For headerless
|
|
6750
|
+
* dialogs, pass <code>ariaLabel</code>; to point at an external title
|
|
6751
|
+
* element, pass <code>ariaLabelledBy</code>.
|
|
6752
|
+
*
|
|
6753
|
+
* @internal
|
|
6754
|
+
*/
|
|
6755
|
+
export declare interface IUiDialogShellAccessibilityConfig {
|
|
6756
|
+
ariaLabel?: string;
|
|
6757
|
+
ariaLabelledBy?: string;
|
|
6758
|
+
ariaDescribedBy?: string;
|
|
6759
|
+
}
|
|
6760
|
+
|
|
6761
|
+
/**
|
|
6762
|
+
* @internal
|
|
6763
|
+
*/
|
|
6764
|
+
export declare interface IUiDialogShellProps {
|
|
6765
|
+
/** Header / body / footer composed by the caller. */
|
|
6766
|
+
children: ReactNode;
|
|
6767
|
+
/** Dialog width in px. Defaults to 540. */
|
|
6768
|
+
width?: number;
|
|
6769
|
+
/**
|
|
6770
|
+
* When true, the dialog acts as a modal: focus is trapped inside,
|
|
6771
|
+
* autofocus + return-focus-on-unmount apply, ESC fires <code>onClose</code>,
|
|
6772
|
+
* and <code>aria-modal="true"</code> is set. Leave off for inline
|
|
6773
|
+
* non-blocking dialog cards.
|
|
6774
|
+
*/
|
|
6775
|
+
isModal?: boolean;
|
|
6776
|
+
/** Fires when the user dismisses via ESC. Only active when <code>isModal</code>. */
|
|
6777
|
+
onClose?: () => void;
|
|
6778
|
+
/**
|
|
6779
|
+
* Accessibility config. Usually unnecessary — when <code>UiDialogHeader</code>
|
|
6780
|
+
* is used as a child the shell auto-wires <code>aria-labelledby</code> to
|
|
6781
|
+
* the header's title.
|
|
6782
|
+
*/
|
|
6783
|
+
accessibilityConfig?: IUiDialogShellAccessibilityConfig;
|
|
6784
|
+
/** Test id forwarded to the root element. */
|
|
6785
|
+
dataTestId?: string;
|
|
6786
|
+
}
|
|
6787
|
+
|
|
6675
6788
|
/**
|
|
6676
6789
|
* @internal
|
|
6677
6790
|
*/
|
|
@@ -7542,6 +7655,16 @@ export declare interface IUiReturnFocusOnUnmountOptions {
|
|
|
7542
7655
|
focusVisible?: boolean;
|
|
7543
7656
|
}
|
|
7544
7657
|
|
|
7658
|
+
/**
|
|
7659
|
+
* @internal
|
|
7660
|
+
*/
|
|
7661
|
+
export declare interface IUiSectionHeadingProps {
|
|
7662
|
+
/** Section label rendered in 11px upper-case complementary-6. */
|
|
7663
|
+
label: string;
|
|
7664
|
+
/** Optional action rendered after the rule (e.g. a link or button). */
|
|
7665
|
+
action?: ReactNode;
|
|
7666
|
+
}
|
|
7667
|
+
|
|
7545
7668
|
/**
|
|
7546
7669
|
* @internal
|
|
7547
7670
|
*/
|
|
@@ -9366,6 +9489,16 @@ export declare function UiComboboxPopup({ style, className, children, ...htmlPro
|
|
|
9366
9489
|
/** @internal */
|
|
9367
9490
|
export declare type UiComboboxPopupProps = HTMLAttributes<HTMLDivElement>;
|
|
9368
9491
|
|
|
9492
|
+
/**
|
|
9493
|
+
* Compact modal confirm dialog used by the OLP share flow for actions that
|
|
9494
|
+
* need explicit user confirmation (granting workspace access, restricting
|
|
9495
|
+
* access, removing a grantee, transferring ownership). Always modal — focus
|
|
9496
|
+
* is trapped inside, autofocus + return-focus apply, and ESC fires onClose.
|
|
9497
|
+
*
|
|
9498
|
+
* @internal
|
|
9499
|
+
*/
|
|
9500
|
+
export declare function UiConfirmDialog({ title, description, confirmLabel, confirmVariant, onClose, onCancel, onConfirm, dataTestId }: IUiConfirmDialogProps): JSX.Element;
|
|
9501
|
+
|
|
9369
9502
|
/**
|
|
9370
9503
|
* Generic chip-shaped dropdown trigger primitive. One source of truth for filter-bar chip
|
|
9371
9504
|
* visuals; consumed by both attribute filter chips and parameter chips.
|
|
@@ -9388,6 +9521,31 @@ export declare function UiCopyButton({ label, clipboardContent, successMessage,
|
|
|
9388
9521
|
*/
|
|
9389
9522
|
export declare function UiDate({ date, locale, relativeThresholdMs, absoluteOptions, allowRelative }: IUiDateProps): JSX.Element;
|
|
9390
9523
|
|
|
9524
|
+
/**
|
|
9525
|
+
* Dialog footer: right-aligned cluster of action buttons. Optionally renders
|
|
9526
|
+
* a 1px divider above the actions.
|
|
9527
|
+
*
|
|
9528
|
+
* @internal
|
|
9529
|
+
*/
|
|
9530
|
+
export declare function UiDialogFooter({ children, divider }: IUiDialogFooterProps): JSX.Element;
|
|
9531
|
+
|
|
9532
|
+
/**
|
|
9533
|
+
* Dialog header: optional leading slot + title + optional close X.
|
|
9534
|
+
*
|
|
9535
|
+
* @internal
|
|
9536
|
+
*/
|
|
9537
|
+
export declare function UiDialogHeader({ title, titleSize, onClose, leading }: IUiDialogHeaderProps): JSX.Element;
|
|
9538
|
+
|
|
9539
|
+
/**
|
|
9540
|
+
* Plain dialog card chrome — 4px radius, soft shadow, complementary-0 fill,
|
|
9541
|
+
* 20px padding. Holds whatever the caller composes inside. Set
|
|
9542
|
+
* <code>isModal</code> for blocking dialogs (adds focus trap, autofocus,
|
|
9543
|
+
* return-focus, ESC handling and <code>aria-modal</code>).
|
|
9544
|
+
*
|
|
9545
|
+
* @internal
|
|
9546
|
+
*/
|
|
9547
|
+
export declare function UiDialogShell({ children, width, isModal, onClose, accessibilityConfig, dataTestId }: IUiDialogShellProps): JSX.Element;
|
|
9548
|
+
|
|
9391
9549
|
/**
|
|
9392
9550
|
* @internal
|
|
9393
9551
|
*/
|
|
@@ -9590,6 +9748,15 @@ export declare function UiReturnFocusOnUnmount({ children, ...options }: IUiRetu
|
|
|
9590
9748
|
*/
|
|
9591
9749
|
export declare function UiSearchResultsAnnouncement({ totalResults, resultValues, announcementDelay }: ISearchResultsAnnouncementProps): JSX.Element;
|
|
9592
9750
|
|
|
9751
|
+
/**
|
|
9752
|
+
* "LABEL ────── action" pattern used by dialog sections (e.g. SHARED WITH +
|
|
9753
|
+
* Add link). The horizontal rule fills the space between the label and the
|
|
9754
|
+
* trailing action.
|
|
9755
|
+
*
|
|
9756
|
+
* @internal
|
|
9757
|
+
*/
|
|
9758
|
+
export declare function UiSectionHeading({ label, action }: IUiSectionHeadingProps): JSX.Element;
|
|
9759
|
+
|
|
9593
9760
|
/**
|
|
9594
9761
|
* @internal
|
|
9595
9762
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddata/sdk-ui-kit",
|
|
3
|
-
"version": "11.39.0-alpha.
|
|
3
|
+
"version": "11.39.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.39.0-alpha.
|
|
79
|
-
"@gooddata/sdk-
|
|
80
|
-
"@gooddata/sdk-
|
|
81
|
-
"@gooddata/
|
|
82
|
-
"@gooddata/
|
|
78
|
+
"@gooddata/sdk-backend-spi": "11.39.0-alpha.3",
|
|
79
|
+
"@gooddata/sdk-model": "11.39.0-alpha.3",
|
|
80
|
+
"@gooddata/sdk-ui": "11.39.0-alpha.3",
|
|
81
|
+
"@gooddata/util": "11.39.0-alpha.3",
|
|
82
|
+
"@gooddata/sdk-ui-theme-provider": "11.39.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.39.0-alpha.
|
|
132
|
-
"@gooddata/oxlint-config": "11.39.0-alpha.
|
|
133
|
-
"@gooddata/reference-workspace": "11.39.0-alpha.
|
|
134
|
-
"@gooddata/
|
|
135
|
-
"@gooddata/
|
|
131
|
+
"@gooddata/eslint-config": "11.39.0-alpha.3",
|
|
132
|
+
"@gooddata/oxlint-config": "11.39.0-alpha.3",
|
|
133
|
+
"@gooddata/reference-workspace": "11.39.0-alpha.3",
|
|
134
|
+
"@gooddata/sdk-backend-mockingbird": "11.39.0-alpha.3",
|
|
135
|
+
"@gooddata/stylelint-config": "11.39.0-alpha.3"
|
|
136
136
|
},
|
|
137
137
|
"peerDependencies": {
|
|
138
138
|
"react": "^18.0.0 || ^19.0.0",
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
|
|
3
|
+
.gd-ui-kit-confirm-dialog {
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-direction: column;
|
|
6
|
+
|
|
7
|
+
&__body {
|
|
8
|
+
font-size: 14px;
|
|
9
|
+
line-height: 20px;
|
|
10
|
+
color: var(--gd-palette-complementary-7);
|
|
11
|
+
margin-bottom: var(--gd-spacing-20px);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
|
|
3
|
+
.gd-ui-kit-dialog-shell {
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-direction: column;
|
|
6
|
+
padding: var(--gd-spacing-20px);
|
|
7
|
+
background-color: var(--gd-palette-complementary-0);
|
|
8
|
+
font-family: var(--gd-font-family);
|
|
9
|
+
border-radius: var(--gd-modal-borderRadius);
|
|
10
|
+
box-shadow: 0 2px 8px var(--gd-shadow-color);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.gd-ui-kit-dialog-header {
|
|
14
|
+
display: flex;
|
|
15
|
+
align-items: center;
|
|
16
|
+
gap: var(--gd-spacing-15px);
|
|
17
|
+
margin-bottom: var(--gd-spacing-20px);
|
|
18
|
+
|
|
19
|
+
&__leading {
|
|
20
|
+
display: inline-flex;
|
|
21
|
+
align-items: center;
|
|
22
|
+
flex-shrink: 0;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
&__title {
|
|
26
|
+
flex: 1 1 auto;
|
|
27
|
+
min-width: 0;
|
|
28
|
+
margin: 0;
|
|
29
|
+
font-weight: 700;
|
|
30
|
+
color: var(--gd-palette-complementary-8);
|
|
31
|
+
overflow: hidden;
|
|
32
|
+
text-overflow: ellipsis;
|
|
33
|
+
white-space: nowrap;
|
|
34
|
+
|
|
35
|
+
&--size-default {
|
|
36
|
+
font-size: 18px;
|
|
37
|
+
line-height: 26px;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
&--size-large {
|
|
41
|
+
font-size: 20px;
|
|
42
|
+
line-height: 26px;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.gd-ui-kit-dialog-footer {
|
|
48
|
+
display: flex;
|
|
49
|
+
justify-content: flex-end;
|
|
50
|
+
gap: var(--gd-spacing-10px);
|
|
51
|
+
|
|
52
|
+
&--divider {
|
|
53
|
+
margin-top: var(--gd-spacing-15px);
|
|
54
|
+
padding-top: var(--gd-spacing-15px);
|
|
55
|
+
border-top: 1px solid var(--gd-palette-complementary-3);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
|
|
3
|
+
.gd-ui-kit-section-heading {
|
|
4
|
+
display: flex;
|
|
5
|
+
align-items: center;
|
|
6
|
+
gap: var(--gd-spacing-15px);
|
|
7
|
+
font-family: var(--gd-font-family);
|
|
8
|
+
|
|
9
|
+
&__label {
|
|
10
|
+
font-size: 11px;
|
|
11
|
+
line-height: 23px;
|
|
12
|
+
font-weight: 700;
|
|
13
|
+
text-transform: uppercase;
|
|
14
|
+
color: var(--gd-palette-complementary-6);
|
|
15
|
+
flex-shrink: 0;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
&__rule {
|
|
19
|
+
flex: 1 1 auto;
|
|
20
|
+
height: 1px;
|
|
21
|
+
background-color: var(--gd-palette-complementary-3);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&__action {
|
|
25
|
+
flex-shrink: 0;
|
|
26
|
+
display: inline-flex;
|
|
27
|
+
align-items: center;
|
|
28
|
+
}
|
|
29
|
+
}
|
package/src/@ui/index.scss
CHANGED
|
@@ -30,3 +30,6 @@
|
|
|
30
30
|
@use "./UiBreadcrumb/UiBreadcrumb.scss";
|
|
31
31
|
@use "./UiInlineTextGenerator/UiInlineTextGenerator.scss";
|
|
32
32
|
@use "./UiErrorPage/UiErrorPage.scss";
|
|
33
|
+
@use "./UiSectionHeading/UiSectionHeading.scss";
|
|
34
|
+
@use "./UiDialogShell/UiDialogShell.scss";
|
|
35
|
+
@use "./UiConfirmDialog/UiConfirmDialog.scss";
|
package/styles/css/main.css
CHANGED
|
@@ -3319,6 +3319,93 @@
|
|
|
3319
3319
|
line-height: 23px;
|
|
3320
3320
|
}
|
|
3321
3321
|
|
|
3322
|
+
.gd-ui-kit-section-heading {
|
|
3323
|
+
display: flex;
|
|
3324
|
+
align-items: center;
|
|
3325
|
+
gap: var(--gd-spacing-15px);
|
|
3326
|
+
font-family: var(--gd-font-family);
|
|
3327
|
+
}
|
|
3328
|
+
.gd-ui-kit-section-heading__label {
|
|
3329
|
+
font-size: 11px;
|
|
3330
|
+
line-height: 23px;
|
|
3331
|
+
font-weight: 700;
|
|
3332
|
+
text-transform: uppercase;
|
|
3333
|
+
color: var(--gd-palette-complementary-6);
|
|
3334
|
+
flex-shrink: 0;
|
|
3335
|
+
}
|
|
3336
|
+
.gd-ui-kit-section-heading__rule {
|
|
3337
|
+
flex: 1 1 auto;
|
|
3338
|
+
height: 1px;
|
|
3339
|
+
background-color: var(--gd-palette-complementary-3);
|
|
3340
|
+
}
|
|
3341
|
+
.gd-ui-kit-section-heading__action {
|
|
3342
|
+
flex-shrink: 0;
|
|
3343
|
+
display: inline-flex;
|
|
3344
|
+
align-items: center;
|
|
3345
|
+
}
|
|
3346
|
+
|
|
3347
|
+
.gd-ui-kit-dialog-shell {
|
|
3348
|
+
display: flex;
|
|
3349
|
+
flex-direction: column;
|
|
3350
|
+
padding: var(--gd-spacing-20px);
|
|
3351
|
+
background-color: var(--gd-palette-complementary-0);
|
|
3352
|
+
font-family: var(--gd-font-family);
|
|
3353
|
+
border-radius: var(--gd-modal-borderRadius);
|
|
3354
|
+
box-shadow: 0 2px 8px var(--gd-shadow-color);
|
|
3355
|
+
}
|
|
3356
|
+
|
|
3357
|
+
.gd-ui-kit-dialog-header {
|
|
3358
|
+
display: flex;
|
|
3359
|
+
align-items: center;
|
|
3360
|
+
gap: var(--gd-spacing-15px);
|
|
3361
|
+
margin-bottom: var(--gd-spacing-20px);
|
|
3362
|
+
}
|
|
3363
|
+
.gd-ui-kit-dialog-header__leading {
|
|
3364
|
+
display: inline-flex;
|
|
3365
|
+
align-items: center;
|
|
3366
|
+
flex-shrink: 0;
|
|
3367
|
+
}
|
|
3368
|
+
.gd-ui-kit-dialog-header__title {
|
|
3369
|
+
flex: 1 1 auto;
|
|
3370
|
+
min-width: 0;
|
|
3371
|
+
margin: 0;
|
|
3372
|
+
font-weight: 700;
|
|
3373
|
+
color: var(--gd-palette-complementary-8);
|
|
3374
|
+
overflow: hidden;
|
|
3375
|
+
text-overflow: ellipsis;
|
|
3376
|
+
white-space: nowrap;
|
|
3377
|
+
}
|
|
3378
|
+
.gd-ui-kit-dialog-header__title--size-default {
|
|
3379
|
+
font-size: 18px;
|
|
3380
|
+
line-height: 26px;
|
|
3381
|
+
}
|
|
3382
|
+
.gd-ui-kit-dialog-header__title--size-large {
|
|
3383
|
+
font-size: 20px;
|
|
3384
|
+
line-height: 26px;
|
|
3385
|
+
}
|
|
3386
|
+
|
|
3387
|
+
.gd-ui-kit-dialog-footer {
|
|
3388
|
+
display: flex;
|
|
3389
|
+
justify-content: flex-end;
|
|
3390
|
+
gap: var(--gd-spacing-10px);
|
|
3391
|
+
}
|
|
3392
|
+
.gd-ui-kit-dialog-footer--divider {
|
|
3393
|
+
margin-top: var(--gd-spacing-15px);
|
|
3394
|
+
padding-top: var(--gd-spacing-15px);
|
|
3395
|
+
border-top: 1px solid var(--gd-palette-complementary-3);
|
|
3396
|
+
}
|
|
3397
|
+
|
|
3398
|
+
.gd-ui-kit-confirm-dialog {
|
|
3399
|
+
display: flex;
|
|
3400
|
+
flex-direction: column;
|
|
3401
|
+
}
|
|
3402
|
+
.gd-ui-kit-confirm-dialog__body {
|
|
3403
|
+
font-size: 14px;
|
|
3404
|
+
line-height: 20px;
|
|
3405
|
+
color: var(--gd-palette-complementary-7);
|
|
3406
|
+
margin-bottom: var(--gd-spacing-20px);
|
|
3407
|
+
}
|
|
3408
|
+
|
|
3322
3409
|
.sr-only {
|
|
3323
3410
|
position: absolute;
|
|
3324
3411
|
width: 1px;
|