@gooddata/sdk-ui-kit 11.55.0-alpha.2 → 11.55.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/@ui/@types/icon.d.ts +1 -1
- package/esm/@ui/@types/icon.d.ts.map +1 -1
- package/esm/@ui/UiColorPicker/UiColorPicker.d.ts +6 -0
- package/esm/@ui/UiColorPicker/UiColorPicker.d.ts.map +1 -0
- package/esm/@ui/UiColorPicker/UiColorPicker.js +49 -0
- package/esm/@ui/UiColorPicker/colorValue.d.ts +58 -0
- package/esm/@ui/UiColorPicker/colorValue.d.ts.map +1 -0
- package/esm/@ui/UiColorPicker/colorValue.js +90 -0
- package/esm/@ui/UiColorPicker/components/UiColorSlider.d.ts +19 -0
- package/esm/@ui/UiColorPicker/components/UiColorSlider.d.ts.map +1 -0
- package/esm/@ui/UiColorPicker/components/UiColorSlider.js +35 -0
- package/esm/@ui/UiColorPicker/components/UiColorValueField.d.ts +12 -0
- package/esm/@ui/UiColorPicker/components/UiColorValueField.d.ts.map +1 -0
- package/esm/@ui/UiColorPicker/components/UiColorValueField.js +40 -0
- package/esm/@ui/UiColorPicker/components/UiColorWheel.d.ts +9 -0
- package/esm/@ui/UiColorPicker/components/UiColorWheel.d.ts.map +1 -0
- package/esm/@ui/UiColorPicker/components/UiColorWheel.js +43 -0
- package/esm/@ui/UiColorPicker/types.d.ts +70 -0
- package/esm/@ui/UiColorPicker/types.d.ts.map +1 -0
- package/esm/@ui/UiColorPicker/types.js +2 -0
- package/esm/@ui/UiFloatingElement/UiFloatingElement.d.ts +1 -1
- package/esm/@ui/UiFloatingElement/UiFloatingElement.d.ts.map +1 -1
- package/esm/@ui/UiFloatingElement/UiFloatingElement.js +3 -1
- package/esm/@ui/UiFloatingElement/types.d.ts +19 -0
- package/esm/@ui/UiFloatingElement/types.d.ts.map +1 -1
- package/esm/@ui/UiFloatingElement/types.js +1 -1
- package/esm/@ui/UiFloatingElement/useFloatingPosition.d.ts +1 -1
- package/esm/@ui/UiFloatingElement/useFloatingPosition.d.ts.map +1 -1
- package/esm/@ui/UiFloatingElement/useFloatingPosition.js +17 -4
- package/esm/@ui/UiIcon/icons.d.ts.map +1 -1
- package/esm/@ui/UiIcon/icons.js +27 -0
- package/esm/@ui/hooks/useCloseOnOutsideClick.d.ts.map +1 -1
- package/esm/@ui/hooks/useCloseOnOutsideClick.js +2 -1
- package/esm/@ui/hooks/usePointerTrack.d.ts +23 -0
- package/esm/@ui/hooks/usePointerTrack.d.ts.map +1 -0
- package/esm/@ui/hooks/usePointerTrack.js +45 -0
- package/esm/Bubble/Bubble.d.ts +2 -2
- package/esm/Bubble/Bubble.d.ts.map +1 -1
- package/esm/Bubble/Bubble.js +1 -1
- package/esm/Datepicker/Datepicker.d.ts +2 -2
- package/esm/Datepicker/Datepicker.d.ts.map +1 -1
- package/esm/Dialog/ConfirmDialog.d.ts +2 -1
- package/esm/Dialog/ConfirmDialog.d.ts.map +1 -1
- package/esm/FilterLabel/FilterLabel.d.ts +2 -1
- package/esm/FilterLabel/FilterLabel.d.ts.map +1 -1
- package/esm/FilterLabel/FilterLabel.js +2 -2
- package/esm/Form/Checkbox.d.ts +2 -1
- package/esm/Form/Checkbox.d.ts.map +1 -1
- package/esm/Form/InputWithNumberFormat.d.ts +2 -2
- package/esm/Form/InputWithNumberFormat.d.ts.map +1 -1
- package/esm/Form/InputWithNumberFormat.js +1 -1
- package/esm/List/LegacyMultiSelectListItem.d.ts +2 -1
- package/esm/List/LegacyMultiSelectListItem.d.ts.map +1 -1
- package/esm/List/LegacyMultiSelectListItem.js +1 -1
- package/esm/List/MultiSelectListItem.d.ts +2 -1
- package/esm/List/MultiSelectListItem.d.ts.map +1 -1
- package/esm/Overlay/ErrorOverlay.d.ts +2 -2
- package/esm/Overlay/ErrorOverlay.d.ts.map +1 -1
- package/esm/ParameterControl/AllowedValuesParameterControlDropdown.d.ts +6 -5
- package/esm/ParameterControl/AllowedValuesParameterControlDropdown.d.ts.map +1 -1
- package/esm/ParameterControl/AllowedValuesParameterControlDropdown.js +5 -4
- package/esm/ParameterControl/NumberParameterControlDropdown.d.ts +9 -10
- package/esm/ParameterControl/NumberParameterControlDropdown.d.ts.map +1 -1
- package/esm/ParameterControl/NumberParameterControlDropdown.js +11 -4
- package/esm/ParameterControl/ParameterControl.d.ts +13 -8
- package/esm/ParameterControl/ParameterControl.d.ts.map +1 -1
- package/esm/ParameterControl/ParameterControl.js +19 -6
- package/esm/ParameterControl/ParameterControlDropdown.d.ts +6 -3
- package/esm/ParameterControl/ParameterControlDropdown.d.ts.map +1 -1
- package/esm/ParameterControl/ParameterControlDropdown.js +5 -4
- package/esm/ParameterControl/StringParameterControlDropdown.d.ts +9 -10
- package/esm/ParameterControl/StringParameterControlDropdown.d.ts.map +1 -1
- package/esm/ParameterControl/StringParameterControlDropdown.js +11 -4
- package/esm/ParameterControl/submitMode.d.ts +18 -0
- package/esm/ParameterControl/submitMode.d.ts.map +1 -0
- package/esm/ParameterControl/submitMode.js +2 -0
- package/esm/Spinner/Spinner.d.ts +2 -1
- package/esm/Spinner/Spinner.d.ts.map +1 -1
- package/esm/Spinner/Spinner.js +2 -2
- package/esm/Timepicker/Timepicker.d.ts +3 -2
- package/esm/Timepicker/Timepicker.d.ts.map +1 -1
- package/esm/index.d.ts +4 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +2 -0
- package/esm/measureNumberFormat/MeasureNumberFormat.d.ts +2 -2
- package/esm/measureNumberFormat/MeasureNumberFormat.d.ts.map +1 -1
- package/esm/sdk-ui-kit.d.ts +156 -11
- package/package.json +13 -14
- package/src/@ui/UiColorPicker/UiColorPicker.scss +120 -0
- package/src/@ui/index.scss +1 -0
- package/styles/css/main.css +81 -0
- package/styles/css/main.css.map +1 -1
package/esm/sdk-ui-kit.d.ts
CHANGED
|
@@ -87,6 +87,7 @@ import { OnError } from '@gooddata/sdk-ui';
|
|
|
87
87
|
import { OnLoadingChanged } from '@gooddata/sdk-ui';
|
|
88
88
|
import { ParameterValue } from '@gooddata/sdk-model';
|
|
89
89
|
import { Placement } from '@floating-ui/react';
|
|
90
|
+
import { PointerEvent as PointerEvent_2 } from 'react';
|
|
90
91
|
import { PrimitiveType } from 'react-intl';
|
|
91
92
|
import { PropsWithChildren } from 'react';
|
|
92
93
|
import { PropsWithoutRef } from 'react';
|
|
@@ -2720,7 +2721,7 @@ export declare function IconTreeMap({ className, width, height, color, ariaHidde
|
|
|
2720
2721
|
/**
|
|
2721
2722
|
* @internal
|
|
2722
2723
|
*/
|
|
2723
|
-
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" | "building" | "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" | "speechBubble" | "pieChart" | "timezone";
|
|
2724
|
+
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" | "building" | "printer" | "picture" | "visualization" | "dashboard" | "metric" | "fact" | "ldmAttribute" | "ldmKey" | "ldmLabel" | "sharp" | "attribute" | "horn" | "cw" | "ccw" | "table" | "directionColumn" | "directionRow" | "alignLeft" | "alignCenter" | "alignRight" | "alignTop" | "alignMiddle" | "alignBottom" | "imageContain" | "imageCover" | "imageFill" | "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" | "speechBubble" | "pieChart" | "timezone";
|
|
2724
2725
|
|
|
2725
2726
|
/**
|
|
2726
2727
|
* @internal
|
|
@@ -5323,16 +5324,20 @@ export declare interface IParameterControlButtonProps {
|
|
|
5323
5324
|
/**
|
|
5324
5325
|
* @internal
|
|
5325
5326
|
*/
|
|
5326
|
-
export declare
|
|
5327
|
+
export declare type IParameterControlProps = {
|
|
5327
5328
|
name: string;
|
|
5328
5329
|
definition: IParameterDefinition;
|
|
5329
5330
|
value: ParameterValue;
|
|
5330
5331
|
resetValue?: ParameterValue;
|
|
5331
5332
|
inputId?: string;
|
|
5332
5333
|
ariaAttributes?: IDropdownBodyRenderProps["ariaAttributes"];
|
|
5333
|
-
|
|
5334
|
-
|
|
5335
|
-
|
|
5334
|
+
/**
|
|
5335
|
+
* The control calls this itself after a commit-mode Apply, and after the user selects an
|
|
5336
|
+
* allowed value. The footer Cancel or Close button also calls this. Close does not remove the
|
|
5337
|
+
* staged value.
|
|
5338
|
+
*/
|
|
5339
|
+
onClose: () => void;
|
|
5340
|
+
} & ParameterSubmitModeProps<ParameterValue>;
|
|
5336
5341
|
|
|
5337
5342
|
/**
|
|
5338
5343
|
* @internal
|
|
@@ -5349,6 +5354,17 @@ export declare interface IParameterPickerProps {
|
|
|
5349
5354
|
onCancel: () => void;
|
|
5350
5355
|
}
|
|
5351
5356
|
|
|
5357
|
+
/**
|
|
5358
|
+
* @internal
|
|
5359
|
+
*/
|
|
5360
|
+
export declare interface IPointerTrackHandlers {
|
|
5361
|
+
onPointerDown: (event: PointerEvent_2<HTMLElement>) => void;
|
|
5362
|
+
onPointerMove: (event: PointerEvent_2<HTMLElement>) => void;
|
|
5363
|
+
onPointerUp: (event: PointerEvent_2<HTMLElement>) => void;
|
|
5364
|
+
onPointerCancel: (event: PointerEvent_2<HTMLElement>) => void;
|
|
5365
|
+
onLostPointerCapture: (event: PointerEvent_2<HTMLElement>) => void;
|
|
5366
|
+
}
|
|
5367
|
+
|
|
5352
5368
|
/**
|
|
5353
5369
|
* @internal
|
|
5354
5370
|
*/
|
|
@@ -7084,6 +7100,81 @@ export declare interface IUiChipProps {
|
|
|
7084
7100
|
renderActionButton?: (button: ReactNode) => ReactNode;
|
|
7085
7101
|
}
|
|
7086
7102
|
|
|
7103
|
+
/**
|
|
7104
|
+
* What every picker takes, whichever way it reports the color it gathers.
|
|
7105
|
+
*
|
|
7106
|
+
* @internal
|
|
7107
|
+
*/
|
|
7108
|
+
export declare interface IUiColorPickerBaseProps {
|
|
7109
|
+
/**
|
|
7110
|
+
* The color to start from. The picker follows it when it changes.
|
|
7111
|
+
*
|
|
7112
|
+
* @remarks
|
|
7113
|
+
* Never feed the picker the color it just reported: read in again it loses the hue that a gray,
|
|
7114
|
+
* black or white cannot carry, and the handle jumps off the wheel mid-drag. A caller applying
|
|
7115
|
+
* changes live should hold the color it seeds the picker with apart from the one it stores.
|
|
7116
|
+
*/
|
|
7117
|
+
initialRgbColor: IUiColorPickerRgb | IUiColorPickerRgba;
|
|
7118
|
+
/**
|
|
7119
|
+
* Adds an opacity control and lets the reported color carry one.
|
|
7120
|
+
*
|
|
7121
|
+
* @remarks
|
|
7122
|
+
* Off by default: a consumer that stores a color without an opacity would drop the one the user
|
|
7123
|
+
* had set, without saying so.
|
|
7124
|
+
*/
|
|
7125
|
+
supportsAlpha?: boolean;
|
|
7126
|
+
}
|
|
7127
|
+
|
|
7128
|
+
/**
|
|
7129
|
+
* A picker that gathers a color and reports it once, when confirmed.
|
|
7130
|
+
*
|
|
7131
|
+
* @internal
|
|
7132
|
+
*/
|
|
7133
|
+
export declare interface IUiColorPickerCommitProps extends IUiColorPickerBaseProps {
|
|
7134
|
+
onSubmit: (color: IUiColorPickerRgba) => void;
|
|
7135
|
+
/**
|
|
7136
|
+
* Dismisses the picker, leaving the color as it was.
|
|
7137
|
+
*/
|
|
7138
|
+
onCancel: () => void;
|
|
7139
|
+
onChange?: never;
|
|
7140
|
+
}
|
|
7141
|
+
|
|
7142
|
+
/**
|
|
7143
|
+
* A picker that reports every change as it is made, and so has nothing to confirm or take back: the
|
|
7144
|
+
* color is already applied, and going back from it is the caller's to offer.
|
|
7145
|
+
*
|
|
7146
|
+
* @internal
|
|
7147
|
+
*/
|
|
7148
|
+
export declare interface IUiColorPickerLiveProps extends IUiColorPickerBaseProps {
|
|
7149
|
+
onChange: (color: IUiColorPickerRgba) => void;
|
|
7150
|
+
onSubmit?: never;
|
|
7151
|
+
}
|
|
7152
|
+
|
|
7153
|
+
/**
|
|
7154
|
+
* @internal
|
|
7155
|
+
*/
|
|
7156
|
+
export declare type IUiColorPickerProps = IUiColorPickerCommitProps | IUiColorPickerLiveProps;
|
|
7157
|
+
|
|
7158
|
+
/**
|
|
7159
|
+
* Channels, each 0 to 255.
|
|
7160
|
+
*
|
|
7161
|
+
* @internal
|
|
7162
|
+
*/
|
|
7163
|
+
export declare interface IUiColorPickerRgb {
|
|
7164
|
+
r: number;
|
|
7165
|
+
g: number;
|
|
7166
|
+
b: number;
|
|
7167
|
+
}
|
|
7168
|
+
|
|
7169
|
+
/**
|
|
7170
|
+
* Channels, each 0 to 255, with opacity from 0 (transparent) to 1 (opaque).
|
|
7171
|
+
*
|
|
7172
|
+
* @internal
|
|
7173
|
+
*/
|
|
7174
|
+
export declare interface IUiColorPickerRgba extends IUiColorPickerRgb {
|
|
7175
|
+
a: number;
|
|
7176
|
+
}
|
|
7177
|
+
|
|
7087
7178
|
/** @internal */
|
|
7088
7179
|
export declare interface IUiComboboxInputProps {
|
|
7089
7180
|
/**
|
|
@@ -7694,6 +7785,23 @@ export declare interface IUiFloatingElementProps {
|
|
|
7694
7785
|
strategy?: Strategy;
|
|
7695
7786
|
offset?: OffsetOptions;
|
|
7696
7787
|
autoFlip?: boolean;
|
|
7788
|
+
/**
|
|
7789
|
+
* Whether the floating element may slide over its anchor to stay in view.
|
|
7790
|
+
*
|
|
7791
|
+
* @remarks
|
|
7792
|
+
* By default it only slides along the side it is placed on. An anchor taller than the viewport
|
|
7793
|
+
* has room on neither side, which leaves the element off the screen.
|
|
7794
|
+
*/
|
|
7795
|
+
allowOverlapAnchor?: boolean;
|
|
7796
|
+
/**
|
|
7797
|
+
* Element the floating element is kept inside of, instead of the window.
|
|
7798
|
+
*
|
|
7799
|
+
* @remarks
|
|
7800
|
+
* The portal puts it outside whatever the anchor scrolls in, so by default only the window
|
|
7801
|
+
* constrains it. Pass the element rather than its rect, so the position is measured again as
|
|
7802
|
+
* the element moves.
|
|
7803
|
+
*/
|
|
7804
|
+
overflowBoundary?: Element;
|
|
7697
7805
|
closeOnOutsideClick?: boolean;
|
|
7698
7806
|
closeOnEscape?: boolean;
|
|
7699
7807
|
closeOnParentScroll?: boolean;
|
|
@@ -9637,6 +9745,8 @@ export declare interface IUseFloatingPositionOptions {
|
|
|
9637
9745
|
strategy?: Strategy;
|
|
9638
9746
|
offset?: OffsetOptions;
|
|
9639
9747
|
autoFlip?: boolean;
|
|
9748
|
+
allowOverlapAnchor?: boolean;
|
|
9749
|
+
overflowBoundary?: Element;
|
|
9640
9750
|
fallbackPlacements?: Placement[];
|
|
9641
9751
|
arrowRef?: RefObject<SVGSVGElement | null>;
|
|
9642
9752
|
customMiddleware?: Middleware[];
|
|
@@ -10240,13 +10350,13 @@ export declare type PageOrientation = "PORTRAIT" | "LANDSCAPE";
|
|
|
10240
10350
|
export declare type PageSize = "A3" | "A4" | "LETTER";
|
|
10241
10351
|
|
|
10242
10352
|
/**
|
|
10243
|
-
*
|
|
10244
|
-
*
|
|
10245
|
-
* here.
|
|
10353
|
+
* Controls the full parameter edit session. It selects the control variant from `definition.type`
|
|
10354
|
+
* and the constraint shape, then gives the commit or staged mode to that variant. To add a
|
|
10355
|
+
* variant, add a sibling control and a new case here.
|
|
10246
10356
|
*
|
|
10247
10357
|
* @internal
|
|
10248
10358
|
*/
|
|
10249
|
-
export declare function ParameterControl(
|
|
10359
|
+
export declare function ParameterControl(props: IParameterControlProps): JSX.Element;
|
|
10250
10360
|
|
|
10251
10361
|
/**
|
|
10252
10362
|
* @internal
|
|
@@ -10261,6 +10371,24 @@ export declare function ParameterControlButton({ name, definition, value, isActi
|
|
|
10261
10371
|
*/
|
|
10262
10372
|
export declare function ParameterPicker({ parameters, excludedKeys, isLoading, maxListHeight, onAdd, onCancel }: IParameterPickerProps): JSX.Element;
|
|
10263
10373
|
|
|
10374
|
+
/**
|
|
10375
|
+
* Submit mode of a parameter control edit session.
|
|
10376
|
+
*
|
|
10377
|
+
* - `commit`: the control sends the value through `onCommit` only, when the user clicks Apply.
|
|
10378
|
+
* The footer shows Cancel and Apply.
|
|
10379
|
+
* - `staged`: the control sends each valid draft through `onStage` immediately. The footer shows
|
|
10380
|
+
* only Close. Close does not remove the staged value.
|
|
10381
|
+
*
|
|
10382
|
+
* @internal
|
|
10383
|
+
*/
|
|
10384
|
+
export declare type ParameterSubmitModeProps<TValue> = {
|
|
10385
|
+
mode: "commit";
|
|
10386
|
+
onCommit: (value: TValue) => void;
|
|
10387
|
+
} | {
|
|
10388
|
+
mode: "staged";
|
|
10389
|
+
onStage: (value: TValue) => void;
|
|
10390
|
+
};
|
|
10391
|
+
|
|
10264
10392
|
/**
|
|
10265
10393
|
* Message descriptor of a permission level's display label ("Can edit & share" /
|
|
10266
10394
|
* "Can view & share" / "Can view") — for triggers anchoring {@link UiPermissionMenu}.
|
|
@@ -11030,6 +11158,11 @@ export declare function UiCheckbox({ checked, onChange, preventDefault, stopProp
|
|
|
11030
11158
|
*/
|
|
11031
11159
|
export declare function UiChip({ label, tag, isDeletable, isActionable, isActive, isLocked, isExpandable, isDisabled, maxWidth, iconBefore, iconAfter, iconColor, onClick, onKeyDown, onDelete, onDeleteKeyDown, onAction, onActionKeyDown, accessibilityConfig, dataTestId, buttonRef, iconAction, variant, renderChipContent, renderActionButton }: IUiChipProps): JSX.Element;
|
|
11032
11160
|
|
|
11161
|
+
/**
|
|
11162
|
+
* @internal
|
|
11163
|
+
*/
|
|
11164
|
+
export declare function UiColorPicker(props: IUiColorPickerProps): JSX.Element;
|
|
11165
|
+
|
|
11033
11166
|
/**
|
|
11034
11167
|
* A composable combobox component that enables users to select from a filtered list of options.
|
|
11035
11168
|
*
|
|
@@ -11233,7 +11366,7 @@ export declare function UiErrorPage({ title, description, dataTestId, accessibil
|
|
|
11233
11366
|
*
|
|
11234
11367
|
* @internal
|
|
11235
11368
|
*/
|
|
11236
|
-
export declare function UiFloatingElement({ children, anchor, isOpen, onClose, placement, alignPoints, strategy, offset, autoFlip, closeOnOutsideClick, closeOnEscape, closeOnParentScroll, closeOnMouseDrag, ignoreClicksOn, shouldCloseOnClick, zIndex: zIndexProp, className, contentClassName, style, width, maxWidth, maxHeight, accessibilityConfig, onPlacementChange }: IUiFloatingElementProps): JSX.Element | null;
|
|
11369
|
+
export declare function UiFloatingElement({ children, anchor, isOpen, onClose, placement, alignPoints, strategy, offset, autoFlip, allowOverlapAnchor, overflowBoundary, closeOnOutsideClick, closeOnEscape, closeOnParentScroll, closeOnMouseDrag, ignoreClicksOn, shouldCloseOnClick, zIndex: zIndexProp, className, contentClassName, style, width, maxWidth, maxHeight, accessibilityConfig, onPlacementChange }: IUiFloatingElementProps): JSX.Element | null;
|
|
11237
11370
|
|
|
11238
11371
|
/**
|
|
11239
11372
|
* `UiFloatingElement` plus the kit's canonical popup chrome (background,
|
|
@@ -11882,7 +12015,7 @@ export declare function useFileSelection({ rules, multiple, onValidateFile, onFi
|
|
|
11882
12015
|
*
|
|
11883
12016
|
* @internal
|
|
11884
12017
|
*/
|
|
11885
|
-
export declare function useFloatingPosition({ isOpen, onOpenChange, placement: placementProp, alignPoints, strategy, offset: offsetProp, autoFlip, fallbackPlacements: fallbackPlacementsProp, arrowRef, customMiddleware, maxWidth, maxHeight, zIndex: zIndexProp, shiftPadding }: IUseFloatingPositionOptions): IUseFloatingPositionResult;
|
|
12018
|
+
export declare function useFloatingPosition({ isOpen, onOpenChange, placement: placementProp, alignPoints, strategy, offset: offsetProp, autoFlip, allowOverlapAnchor, overflowBoundary, fallbackPlacements: fallbackPlacementsProp, arrowRef, customMiddleware, maxWidth, maxHeight, zIndex: zIndexProp, shiftPadding }: IUseFloatingPositionOptions): IUseFloatingPositionResult;
|
|
11886
12019
|
|
|
11887
12020
|
/**
|
|
11888
12021
|
* @internal
|
|
@@ -12073,6 +12206,18 @@ export declare const useOverlayZIndex: (uuid: string) => number | undefined;
|
|
|
12073
12206
|
*/
|
|
12074
12207
|
export declare function useOverlayZIndexWithRegister(): number;
|
|
12075
12208
|
|
|
12209
|
+
/**
|
|
12210
|
+
* Follows a press and everything it drags through.
|
|
12211
|
+
*
|
|
12212
|
+
* @remarks
|
|
12213
|
+
* The handlers must be spread on the element the gesture is measured against: they report
|
|
12214
|
+
* `currentTarget`, and a caller that reads a child's or a parent's size instead will place the value
|
|
12215
|
+
* somewhere the pointer is not.
|
|
12216
|
+
*
|
|
12217
|
+
* @internal
|
|
12218
|
+
*/
|
|
12219
|
+
export declare function usePointerTrack(track: (event: PointerEvent_2<HTMLElement>) => void): IPointerTrackHandlers;
|
|
12220
|
+
|
|
12076
12221
|
/**
|
|
12077
12222
|
* Hook to consume responsive context.
|
|
12078
12223
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddata/sdk-ui-kit",
|
|
3
|
-
"version": "11.55.0-alpha.
|
|
3
|
+
"version": "11.55.0-alpha.4",
|
|
4
4
|
"description": "GoodData SDK - UI Building Components",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "GoodData Corporation",
|
|
@@ -78,11 +78,11 @@
|
|
|
78
78
|
"unified": "^11.0.5",
|
|
79
79
|
"uuid": "11.1.1",
|
|
80
80
|
"yaml": "2.8.3",
|
|
81
|
-
"@gooddata/sdk-backend-spi": "11.55.0-alpha.
|
|
82
|
-
"@gooddata/sdk-model": "11.55.0-alpha.
|
|
83
|
-
"@gooddata/sdk-ui": "11.55.0-alpha.
|
|
84
|
-
"@gooddata/util": "11.55.0-alpha.
|
|
85
|
-
"@gooddata/sdk-ui-theme-provider": "11.55.0-alpha.
|
|
81
|
+
"@gooddata/sdk-backend-spi": "11.55.0-alpha.4",
|
|
82
|
+
"@gooddata/sdk-model": "11.55.0-alpha.4",
|
|
83
|
+
"@gooddata/sdk-ui": "11.55.0-alpha.4",
|
|
84
|
+
"@gooddata/util": "11.55.0-alpha.4",
|
|
85
|
+
"@gooddata/sdk-ui-theme-provider": "11.55.0-alpha.4"
|
|
86
86
|
},
|
|
87
87
|
"devDependencies": {
|
|
88
88
|
"@microsoft/api-documenter": "7.30.10",
|
|
@@ -103,7 +103,6 @@
|
|
|
103
103
|
"@typescript-eslint/eslint-plugin": "8.58.0",
|
|
104
104
|
"@typescript-eslint/parser": "8.58.0",
|
|
105
105
|
"@typescript/native-preview": "7.0.0-dev.20260202.1",
|
|
106
|
-
"@vitest/eslint-plugin": "1.6.19",
|
|
107
106
|
"dependency-cruiser": "17.3.10",
|
|
108
107
|
"eslint": "^9.39.2",
|
|
109
108
|
"eslint-plugin-headers": "1.3.3",
|
|
@@ -117,8 +116,8 @@
|
|
|
117
116
|
"happy-dom": "20.9.0",
|
|
118
117
|
"kefir": "3.8.8",
|
|
119
118
|
"npm-run-all": "4.1.5",
|
|
120
|
-
"oxfmt": "0.
|
|
121
|
-
"oxlint": "1.
|
|
119
|
+
"oxfmt": "0.58.0",
|
|
120
|
+
"oxlint": "1.57.0",
|
|
122
121
|
"oxlint-tsgolint": "0.15.0",
|
|
123
122
|
"raf": "3.4.1",
|
|
124
123
|
"react": "19.1.1",
|
|
@@ -129,11 +128,11 @@
|
|
|
129
128
|
"typescript": "5.9.3",
|
|
130
129
|
"vitest": "4.1.8",
|
|
131
130
|
"vitest-dom": "0.1.1",
|
|
132
|
-
"@gooddata/eslint-config": "11.55.0-alpha.
|
|
133
|
-
"@gooddata/oxlint-config": "11.55.0-alpha.
|
|
134
|
-
"@gooddata/reference-workspace": "11.55.0-alpha.
|
|
135
|
-
"@gooddata/
|
|
136
|
-
"@gooddata/
|
|
131
|
+
"@gooddata/eslint-config": "11.55.0-alpha.4",
|
|
132
|
+
"@gooddata/oxlint-config": "11.55.0-alpha.4",
|
|
133
|
+
"@gooddata/reference-workspace": "11.55.0-alpha.4",
|
|
134
|
+
"@gooddata/sdk-backend-mockingbird": "11.55.0-alpha.4",
|
|
135
|
+
"@gooddata/stylelint-config": "11.55.0-alpha.4"
|
|
137
136
|
},
|
|
138
137
|
"peerDependencies": {
|
|
139
138
|
"react": "^18.0.0 || ^19.0.0",
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
// (C) 2007-2026 GoodData Corporation
|
|
2
|
+
|
|
3
|
+
.gd-ui-kit-color-picker {
|
|
4
|
+
--color-picker-handle: 14px;
|
|
5
|
+
|
|
6
|
+
width: 200px;
|
|
7
|
+
padding: 15px;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
// Hue runs around the wheel and saturation out from the middle, which the geometry in UiColorWheel.tsx
|
|
11
|
+
// reads back. The two agree only because the conic gradient starts where the screen angle is
|
|
12
|
+
// measured from - at 3 o'clock, running clockwise - so a gradient position is a hue is an angle.
|
|
13
|
+
//
|
|
14
|
+
// Painted at a fixed lightness, not the one being edited: at either extreme every hue renders the
|
|
15
|
+
// same white or black, and a wheel that followed it would leave nothing to aim at.
|
|
16
|
+
.gd-ui-kit-color-picker__wheel {
|
|
17
|
+
position: relative;
|
|
18
|
+
width: 100%;
|
|
19
|
+
aspect-ratio: 1;
|
|
20
|
+
margin-bottom: 15px;
|
|
21
|
+
border-radius: 50%;
|
|
22
|
+
cursor: crosshair;
|
|
23
|
+
// Without this a drag on a touch screen scrolls the page instead of picking a color.
|
|
24
|
+
touch-action: none;
|
|
25
|
+
user-select: none;
|
|
26
|
+
background:
|
|
27
|
+
radial-gradient(circle closest-side, hsl(0deg 0% 50%) 0%, transparent 100%),
|
|
28
|
+
conic-gradient(
|
|
29
|
+
from 90deg,
|
|
30
|
+
hsl(0deg 100% 50%),
|
|
31
|
+
hsl(60deg 100% 50%),
|
|
32
|
+
hsl(120deg 100% 50%),
|
|
33
|
+
hsl(180deg 100% 50%),
|
|
34
|
+
hsl(240deg 100% 50%),
|
|
35
|
+
hsl(300deg 100% 50%),
|
|
36
|
+
hsl(360deg 100% 50%)
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
&:focus-visible {
|
|
40
|
+
outline: 2px solid var(--gd-palette-primary-base);
|
|
41
|
+
outline-offset: 2px;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.gd-ui-kit-color-picker__slider {
|
|
46
|
+
position: relative;
|
|
47
|
+
height: var(--color-picker-handle);
|
|
48
|
+
margin-bottom: 15px;
|
|
49
|
+
border-radius: calc(var(--color-picker-handle) / 2);
|
|
50
|
+
cursor: pointer;
|
|
51
|
+
touch-action: none;
|
|
52
|
+
// A drag would otherwise select the labels around the control and show an I-beam over it.
|
|
53
|
+
user-select: none;
|
|
54
|
+
// Shows through wherever a track is not fully opaque, which is what marks it as see-through.
|
|
55
|
+
background: repeating-conic-gradient(
|
|
56
|
+
var(--gd-palette-complementary-2) 0% 25%,
|
|
57
|
+
var(--gd-palette-complementary-0) 0% 50%
|
|
58
|
+
)
|
|
59
|
+
50% / 8px 8px;
|
|
60
|
+
|
|
61
|
+
&:focus-visible {
|
|
62
|
+
outline: 2px solid var(--gd-palette-primary-base);
|
|
63
|
+
outline-offset: 2px;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.gd-ui-kit-color-picker__slider-track {
|
|
68
|
+
position: absolute;
|
|
69
|
+
inset: 0;
|
|
70
|
+
border-radius: inherit;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// Placed by its middle, which is what the positions the controls set mean. The border counts
|
|
74
|
+
// towards its size, or the offset that centres it would be short by the border on each side.
|
|
75
|
+
.gd-ui-kit-color-picker__wheel-thumb,
|
|
76
|
+
.gd-ui-kit-color-picker__slider-thumb {
|
|
77
|
+
position: absolute;
|
|
78
|
+
box-sizing: border-box;
|
|
79
|
+
width: var(--color-picker-handle);
|
|
80
|
+
height: var(--color-picker-handle);
|
|
81
|
+
margin: calc(var(--color-picker-handle) / -2) 0 0 calc(var(--color-picker-handle) / -2);
|
|
82
|
+
border: 2px solid var(--gd-palette-complementary-0);
|
|
83
|
+
border-radius: 50%;
|
|
84
|
+
box-shadow: 0 0 2px var(--gd-palette-complementary-6);
|
|
85
|
+
// The handle only reports where the value is; the gesture belongs to the control under it.
|
|
86
|
+
pointer-events: none;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.gd-ui-kit-color-picker__slider-thumb {
|
|
90
|
+
top: 50%;
|
|
91
|
+
// Stops half a handle short of each end, so it stays inside the track it reads against.
|
|
92
|
+
left: calc(
|
|
93
|
+
var(--color-picker-handle) / 2 + (100% - var(--color-picker-handle)) *
|
|
94
|
+
var(--color-picker-slider-position)
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.gd-ui-kit-color-picker__value {
|
|
99
|
+
display: flex;
|
|
100
|
+
align-items: center;
|
|
101
|
+
gap: 5px;
|
|
102
|
+
|
|
103
|
+
// A text input asks for a width of its own and a flex item will not shrink below what it asks
|
|
104
|
+
// for, so without this the notation button is pushed out of the panel.
|
|
105
|
+
.gd-ui-kit-text-input {
|
|
106
|
+
flex: 1;
|
|
107
|
+
min-width: 0;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.gd-ui-kit-color-picker__actions {
|
|
112
|
+
display: flex;
|
|
113
|
+
justify-content: space-between;
|
|
114
|
+
gap: 10px;
|
|
115
|
+
padding: 15px 0 0;
|
|
116
|
+
|
|
117
|
+
.gd-ui-kit-button {
|
|
118
|
+
flex: 1;
|
|
119
|
+
}
|
|
120
|
+
}
|
package/src/@ui/index.scss
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
@use "./UiSkeleton/UiSkeleton.scss";
|
|
9
9
|
@use "./UiPagedVirtualList/UiPagedVirtualList.scss";
|
|
10
10
|
@use "./UiChip/UiChip.scss";
|
|
11
|
+
@use "./UiColorPicker/UiColorPicker.scss";
|
|
11
12
|
@use "./UiControlButton/UiControlButton.scss";
|
|
12
13
|
@use "./UiCombobox/UiCombobox.scss";
|
|
13
14
|
@use "./UiAutocomplete/UiAutocomplete.scss";
|
package/styles/css/main.css
CHANGED
|
@@ -1376,6 +1376,87 @@
|
|
|
1376
1376
|
transition: var(--gd-transition-all);
|
|
1377
1377
|
}
|
|
1378
1378
|
|
|
1379
|
+
.gd-ui-kit-color-picker {
|
|
1380
|
+
--color-picker-handle: 14px;
|
|
1381
|
+
width: 200px;
|
|
1382
|
+
padding: 15px;
|
|
1383
|
+
}
|
|
1384
|
+
|
|
1385
|
+
.gd-ui-kit-color-picker__wheel {
|
|
1386
|
+
position: relative;
|
|
1387
|
+
width: 100%;
|
|
1388
|
+
aspect-ratio: 1;
|
|
1389
|
+
margin-bottom: 15px;
|
|
1390
|
+
border-radius: 50%;
|
|
1391
|
+
cursor: crosshair;
|
|
1392
|
+
touch-action: none;
|
|
1393
|
+
user-select: none;
|
|
1394
|
+
background: radial-gradient(circle closest-side, hsl(0, 0%, 50%) 0%, transparent 100%), conic-gradient(from 90deg, hsl(0, 100%, 50%), hsl(60, 100%, 50%), hsl(120, 100%, 50%), hsl(180, 100%, 50%), hsl(240, 100%, 50%), hsl(300, 100%, 50%), hsl(0, 100%, 50%));
|
|
1395
|
+
}
|
|
1396
|
+
.gd-ui-kit-color-picker__wheel:focus-visible {
|
|
1397
|
+
outline: 2px solid var(--gd-palette-primary-base);
|
|
1398
|
+
outline-offset: 2px;
|
|
1399
|
+
}
|
|
1400
|
+
|
|
1401
|
+
.gd-ui-kit-color-picker__slider {
|
|
1402
|
+
position: relative;
|
|
1403
|
+
height: var(--color-picker-handle);
|
|
1404
|
+
margin-bottom: 15px;
|
|
1405
|
+
border-radius: calc(var(--color-picker-handle) / 2);
|
|
1406
|
+
cursor: pointer;
|
|
1407
|
+
touch-action: none;
|
|
1408
|
+
user-select: none;
|
|
1409
|
+
background: repeating-conic-gradient(var(--gd-palette-complementary-2) 0% 25%, var(--gd-palette-complementary-0) 0% 50%) 50%/8px 8px;
|
|
1410
|
+
}
|
|
1411
|
+
.gd-ui-kit-color-picker__slider:focus-visible {
|
|
1412
|
+
outline: 2px solid var(--gd-palette-primary-base);
|
|
1413
|
+
outline-offset: 2px;
|
|
1414
|
+
}
|
|
1415
|
+
|
|
1416
|
+
.gd-ui-kit-color-picker__slider-track {
|
|
1417
|
+
position: absolute;
|
|
1418
|
+
inset: 0;
|
|
1419
|
+
border-radius: inherit;
|
|
1420
|
+
}
|
|
1421
|
+
|
|
1422
|
+
.gd-ui-kit-color-picker__wheel-thumb,
|
|
1423
|
+
.gd-ui-kit-color-picker__slider-thumb {
|
|
1424
|
+
position: absolute;
|
|
1425
|
+
box-sizing: border-box;
|
|
1426
|
+
width: var(--color-picker-handle);
|
|
1427
|
+
height: var(--color-picker-handle);
|
|
1428
|
+
margin: calc(var(--color-picker-handle) / -2) 0 0 calc(var(--color-picker-handle) / -2);
|
|
1429
|
+
border: 2px solid var(--gd-palette-complementary-0);
|
|
1430
|
+
border-radius: 50%;
|
|
1431
|
+
box-shadow: 0 0 2px var(--gd-palette-complementary-6);
|
|
1432
|
+
pointer-events: none;
|
|
1433
|
+
}
|
|
1434
|
+
|
|
1435
|
+
.gd-ui-kit-color-picker__slider-thumb {
|
|
1436
|
+
top: 50%;
|
|
1437
|
+
left: calc(var(--color-picker-handle) / 2 + (100% - var(--color-picker-handle)) * var(--color-picker-slider-position));
|
|
1438
|
+
}
|
|
1439
|
+
|
|
1440
|
+
.gd-ui-kit-color-picker__value {
|
|
1441
|
+
display: flex;
|
|
1442
|
+
align-items: center;
|
|
1443
|
+
gap: 5px;
|
|
1444
|
+
}
|
|
1445
|
+
.gd-ui-kit-color-picker__value .gd-ui-kit-text-input {
|
|
1446
|
+
flex: 1;
|
|
1447
|
+
min-width: 0;
|
|
1448
|
+
}
|
|
1449
|
+
|
|
1450
|
+
.gd-ui-kit-color-picker__actions {
|
|
1451
|
+
display: flex;
|
|
1452
|
+
justify-content: space-between;
|
|
1453
|
+
gap: 10px;
|
|
1454
|
+
padding: 15px 0 0;
|
|
1455
|
+
}
|
|
1456
|
+
.gd-ui-kit-color-picker__actions .gd-ui-kit-button {
|
|
1457
|
+
flex: 1;
|
|
1458
|
+
}
|
|
1459
|
+
|
|
1379
1460
|
/* ==========================================================================
|
|
1380
1461
|
Variables
|
|
1381
1462
|
========================================================================== */
|