@gooddata/sdk-ui-kit 11.13.0-alpha.1 → 11.13.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableBulkActions.d.ts.map +1 -1
  2. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableBulkActions.js +2 -2
  3. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableBulkActions.js.map +1 -1
  4. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableDropdownItem.d.ts +1 -2
  5. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableDropdownItem.d.ts.map +1 -1
  6. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableDropdownItem.js +3 -3
  7. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableDropdownItem.js.map +1 -1
  8. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableFilter.d.ts.map +1 -1
  9. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableFilter.js +2 -1
  10. package/esm/@ui/UiAsyncTable/UiAsyncTable/UiAsyncTableFilter.js.map +1 -1
  11. package/esm/@ui/UiAsyncTable/types.d.ts +3 -0
  12. package/esm/@ui/UiAsyncTable/types.d.ts.map +1 -1
  13. package/esm/@ui/UiBadge/UiBadge.d.ts +0 -1
  14. package/esm/@ui/UiBadge/UiBadge.d.ts.map +1 -1
  15. package/esm/@ui/UiBadge/UiBadge.js +0 -1
  16. package/esm/@ui/UiBadge/UiBadge.js.map +1 -1
  17. package/esm/@ui/UiButton/UiButton.d.ts.map +1 -1
  18. package/esm/@ui/UiButton/UiButton.js +1 -1
  19. package/esm/@ui/UiButton/UiButton.js.map +1 -1
  20. package/esm/@ui/UiCheckbox/UiCheckbox.d.ts.map +1 -1
  21. package/esm/@ui/UiCheckbox/UiCheckbox.js +1 -1
  22. package/esm/@ui/UiCheckbox/UiCheckbox.js.map +1 -1
  23. package/esm/@ui/UiPaginationButton/UiPaginationButton.d.ts +85 -0
  24. package/esm/@ui/UiPaginationButton/UiPaginationButton.d.ts.map +1 -0
  25. package/esm/@ui/UiPaginationButton/UiPaginationButton.js +28 -0
  26. package/esm/@ui/UiPaginationButton/UiPaginationButton.js.map +1 -0
  27. package/esm/ChartSorting/ChartSorting.d.ts +0 -4
  28. package/esm/ChartSorting/ChartSorting.d.ts.map +1 -1
  29. package/esm/ChartSorting/ChartSorting.js +1 -4
  30. package/esm/ChartSorting/ChartSorting.js.map +1 -1
  31. package/esm/ColorPicker/ColorPicker.d.ts +1 -4
  32. package/esm/ColorPicker/ColorPicker.d.ts.map +1 -1
  33. package/esm/ColorPicker/ColorPicker.js +6 -7
  34. package/esm/ColorPicker/ColorPicker.js.map +1 -1
  35. package/esm/DocumentHeader/DocumentHeader.d.ts +1 -1
  36. package/esm/DocumentHeader/DocumentHeader.d.ts.map +1 -1
  37. package/esm/DocumentHeader/DocumentHeader.js +1 -1
  38. package/esm/DocumentHeader/DocumentHeader.js.map +1 -1
  39. package/esm/DocumentHeader/index.d.ts +1 -1
  40. package/esm/DocumentHeader/index.d.ts.map +1 -1
  41. package/esm/DocumentHeader/index.js +2 -1
  42. package/esm/DocumentHeader/index.js.map +1 -1
  43. package/esm/FilterLabel/FilterLabel.d.ts +1 -4
  44. package/esm/FilterLabel/FilterLabel.d.ts.map +1 -1
  45. package/esm/FilterLabel/FilterLabel.js +7 -7
  46. package/esm/FilterLabel/FilterLabel.js.map +1 -1
  47. package/esm/Form/InputWithNumberFormat.d.ts +2 -39
  48. package/esm/Form/InputWithNumberFormat.d.ts.map +1 -1
  49. package/esm/Form/InputWithNumberFormat.js +33 -50
  50. package/esm/Form/InputWithNumberFormat.js.map +1 -1
  51. package/esm/Header/Header.d.ts +1 -2
  52. package/esm/Header/Header.d.ts.map +1 -1
  53. package/esm/Header/Header.js +7 -7
  54. package/esm/Header/Header.js.map +1 -1
  55. package/esm/Header/HeaderDataMenu.d.ts +0 -1
  56. package/esm/Header/HeaderDataMenu.d.ts.map +1 -1
  57. package/esm/Header/HeaderDataMenu.js +1 -1
  58. package/esm/Header/HeaderDataMenu.js.map +1 -1
  59. package/esm/Header/HeaderHelp.d.ts +0 -1
  60. package/esm/Header/HeaderHelp.d.ts.map +1 -1
  61. package/esm/Header/HeaderHelp.js +1 -1
  62. package/esm/Header/HeaderHelp.js.map +1 -1
  63. package/esm/Header/HeaderMenu.d.ts +1 -2
  64. package/esm/Header/HeaderMenu.d.ts.map +1 -1
  65. package/esm/Header/HeaderMenu.js +4 -4
  66. package/esm/Header/HeaderMenu.js.map +1 -1
  67. package/esm/Header/HeaderWorkspacePicker.d.ts +0 -1
  68. package/esm/Header/HeaderWorkspacePicker.d.ts.map +1 -1
  69. package/esm/Header/HeaderWorkspacePicker.js +1 -1
  70. package/esm/Header/HeaderWorkspacePicker.js.map +1 -1
  71. package/esm/Header/HeaderWorkspacePickerItem.d.ts +0 -1
  72. package/esm/Header/HeaderWorkspacePickerItem.d.ts.map +1 -1
  73. package/esm/Header/HeaderWorkspacePickerItem.js +1 -1
  74. package/esm/Header/HeaderWorkspacePickerItem.js.map +1 -1
  75. package/esm/List/InsightListItem.d.ts +1 -4
  76. package/esm/List/InsightListItem.d.ts.map +1 -1
  77. package/esm/List/InsightListItem.js +3 -6
  78. package/esm/List/InsightListItem.js.map +1 -1
  79. package/esm/List/LegacyInvertableList.d.ts +0 -1
  80. package/esm/List/LegacyInvertableList.d.ts.map +1 -1
  81. package/esm/List/LegacyInvertableList.js +3 -4
  82. package/esm/List/LegacyInvertableList.js.map +1 -1
  83. package/esm/List/LegacyMultiSelectList.d.ts +1 -2
  84. package/esm/List/LegacyMultiSelectList.d.ts.map +1 -1
  85. package/esm/List/LegacyMultiSelectList.js +7 -12
  86. package/esm/List/LegacyMultiSelectList.js.map +1 -1
  87. package/esm/List/LegacyMultiSelectListItem.d.ts +0 -6
  88. package/esm/List/LegacyMultiSelectListItem.d.ts.map +1 -1
  89. package/esm/List/LegacyMultiSelectListItem.js +1 -2
  90. package/esm/List/LegacyMultiSelectListItem.js.map +1 -1
  91. package/esm/List/MultiSelectList.d.ts +1 -5
  92. package/esm/List/MultiSelectList.d.ts.map +1 -1
  93. package/esm/List/MultiSelectList.js +6 -6
  94. package/esm/List/MultiSelectList.js.map +1 -1
  95. package/esm/List/index.d.ts +2 -2
  96. package/esm/List/index.d.ts.map +1 -1
  97. package/esm/List/index.js +2 -2
  98. package/esm/List/index.js.map +1 -1
  99. package/esm/Overlay/ErrorOverlay.d.ts.map +1 -1
  100. package/esm/Overlay/ErrorOverlay.js +4 -4
  101. package/esm/Overlay/ErrorOverlay.js.map +1 -1
  102. package/esm/SettingWidget/StylingSettingWidget/StylingSettingWidget.d.ts +2 -2
  103. package/esm/SettingWidget/StylingSettingWidget/StylingSettingWidget.d.ts.map +1 -1
  104. package/esm/SettingWidget/StylingSettingWidget/StylingSettingWidget.js +2 -6
  105. package/esm/SettingWidget/StylingSettingWidget/StylingSettingWidget.js.map +1 -1
  106. package/esm/index.d.ts +2 -0
  107. package/esm/index.d.ts.map +1 -1
  108. package/esm/index.js +1 -0
  109. package/esm/index.js.map +1 -1
  110. package/esm/measureNumberFormat/MeasureNumberFormat.d.ts +1 -2
  111. package/esm/measureNumberFormat/MeasureNumberFormat.d.ts.map +1 -1
  112. package/esm/measureNumberFormat/MeasureNumberFormat.js +6 -6
  113. package/esm/measureNumberFormat/MeasureNumberFormat.js.map +1 -1
  114. package/esm/measureNumberFormat/customFormatDialog/CustomFormatDialog.js +4 -4
  115. package/esm/measureNumberFormat/customFormatDialog/CustomFormatDialog.js.map +1 -1
  116. package/esm/measureNumberFormat/customFormatDialog/DocumentationLink.d.ts +3 -7
  117. package/esm/measureNumberFormat/customFormatDialog/DocumentationLink.d.ts.map +1 -1
  118. package/esm/measureNumberFormat/customFormatDialog/DocumentationLink.js +2 -3
  119. package/esm/measureNumberFormat/customFormatDialog/DocumentationLink.js.map +1 -1
  120. package/esm/measureNumberFormat/customFormatDialog/FormatInput.d.ts +3 -7
  121. package/esm/measureNumberFormat/customFormatDialog/FormatInput.d.ts.map +1 -1
  122. package/esm/measureNumberFormat/customFormatDialog/FormatInput.js +4 -5
  123. package/esm/measureNumberFormat/customFormatDialog/FormatInput.js.map +1 -1
  124. package/esm/measureNumberFormat/customFormatDialog/formatTemplatesDropdown/DropdownItem.d.ts +2 -2
  125. package/esm/measureNumberFormat/customFormatDialog/formatTemplatesDropdown/DropdownItem.d.ts.map +1 -1
  126. package/esm/measureNumberFormat/customFormatDialog/formatTemplatesDropdown/DropdownItem.js +2 -3
  127. package/esm/measureNumberFormat/customFormatDialog/formatTemplatesDropdown/DropdownItem.js.map +1 -1
  128. package/esm/measureNumberFormat/customFormatDialog/formatTemplatesDropdown/DropdownToggleButton.d.ts +2 -2
  129. package/esm/measureNumberFormat/customFormatDialog/formatTemplatesDropdown/DropdownToggleButton.d.ts.map +1 -1
  130. package/esm/measureNumberFormat/customFormatDialog/formatTemplatesDropdown/DropdownToggleButton.js +1 -2
  131. package/esm/measureNumberFormat/customFormatDialog/formatTemplatesDropdown/DropdownToggleButton.js.map +1 -1
  132. package/esm/measureNumberFormat/customFormatDialog/formatTemplatesDropdown/FormatTemplatesDropdown.js +2 -2
  133. package/esm/measureNumberFormat/customFormatDialog/formatTemplatesDropdown/FormatTemplatesDropdown.js.map +1 -1
  134. package/esm/measureNumberFormat/customFormatDialog/previewSection/ExtendedPreview.js +1 -1
  135. package/esm/measureNumberFormat/customFormatDialog/previewSection/ExtendedPreview.js.map +1 -1
  136. package/esm/measureNumberFormat/customFormatDialog/previewSection/Preview.d.ts +2 -7
  137. package/esm/measureNumberFormat/customFormatDialog/previewSection/Preview.d.ts.map +1 -1
  138. package/esm/measureNumberFormat/customFormatDialog/previewSection/Preview.js +3 -3
  139. package/esm/measureNumberFormat/customFormatDialog/previewSection/Preview.js.map +1 -1
  140. package/esm/measureNumberFormat/customFormatDialog/shared/PreviewRows.d.ts +1 -2
  141. package/esm/measureNumberFormat/customFormatDialog/shared/PreviewRows.d.ts.map +1 -1
  142. package/esm/measureNumberFormat/customFormatDialog/shared/PreviewRows.js +1 -2
  143. package/esm/measureNumberFormat/customFormatDialog/shared/PreviewRows.js.map +1 -1
  144. package/esm/measureNumberFormat/hooks/useCurrencyFormatDefaults.d.ts +21 -0
  145. package/esm/measureNumberFormat/hooks/useCurrencyFormatDefaults.d.ts.map +1 -0
  146. package/esm/measureNumberFormat/hooks/useCurrencyFormatDefaults.js +49 -0
  147. package/esm/measureNumberFormat/hooks/useCurrencyFormatDefaults.js.map +1 -0
  148. package/esm/measureNumberFormat/index.d.ts +4 -0
  149. package/esm/measureNumberFormat/index.d.ts.map +1 -1
  150. package/esm/measureNumberFormat/index.js +4 -1
  151. package/esm/measureNumberFormat/index.js.map +1 -1
  152. package/esm/measureNumberFormat/presets/currencyPresets.d.ts +28 -0
  153. package/esm/measureNumberFormat/presets/currencyPresets.d.ts.map +1 -0
  154. package/esm/measureNumberFormat/presets/currencyPresets.js +42 -0
  155. package/esm/measureNumberFormat/presets/currencyPresets.js.map +1 -0
  156. package/esm/measureNumberFormat/validation/currencyFormatValidator.d.ts +55 -0
  157. package/esm/measureNumberFormat/validation/currencyFormatValidator.d.ts.map +1 -0
  158. package/esm/measureNumberFormat/validation/currencyFormatValidator.js +118 -0
  159. package/esm/measureNumberFormat/validation/currencyFormatValidator.js.map +1 -0
  160. package/esm/sdk-ui-kit.d.ts +211 -59
  161. package/package.json +9 -9
  162. package/src/@ui/UiPaginationButton/UiPaginationButton.scss +56 -0
  163. package/src/@ui/index.scss +1 -0
  164. package/styles/css/main.css +40 -0
  165. package/styles/css/main.css.map +1 -1
@@ -51,7 +51,8 @@ import { IMeasureSortTarget } from '@gooddata/sdk-model';
51
51
  import { IMetadataObjectBase } from '@gooddata/sdk-model';
52
52
  import { IntlShape } from 'react-intl';
53
53
  import { ISeparators } from '@gooddata/sdk-ui';
54
- import { ISeparators as ISeparators_2 } from '@gooddata/sdk-model';
54
+ import { ISeparators as ISeparators_2 } from '@gooddata/number-formatter';
55
+ import { ISeparators as ISeparators_3 } from '@gooddata/sdk-model';
55
56
  import { ISettings } from '@gooddata/sdk-model';
56
57
  import { ISortItem } from '@gooddata/sdk-model';
57
58
  import { ITheme } from '@gooddata/sdk-model';
@@ -64,6 +65,7 @@ import { KeyboardEventHandler } from 'react';
64
65
  import { LocalIdRef } from '@gooddata/sdk-model';
65
66
  import { MemoExoticComponent } from 'react';
66
67
  import { MessageDescriptor } from 'react-intl';
68
+ import type { MetricType } from '@gooddata/sdk-model';
67
69
  import { ModifierKey } from 'react';
68
70
  import { MouseEvent as MouseEvent_2 } from 'react';
69
71
  import { MutableRefObject } from 'react';
@@ -148,7 +150,7 @@ export declare type Alignment = {
148
150
  /**
149
151
  * @internal
150
152
  */
151
- export declare const AppHeader: ComponentType<Omit<WithIntlProps<IAppHeaderProps & WrappedComponentProps>, "theme" | "themeIsLoading" | "themeStatus">>;
153
+ export declare const AppHeader: ComponentType<Omit<IAppHeaderProps, "theme" | "themeIsLoading" | "themeStatus">>;
152
154
 
153
155
  /**
154
156
  * @internal
@@ -417,9 +419,7 @@ export declare type Color = string;
417
419
  /**
418
420
  * @internal
419
421
  */
420
- export declare const ColorPicker: FC<WithIntlProps<IColorPickerProps & WrappedComponentProps>> & {
421
- WrappedComponent: ComponentType<IColorPickerProps & WrappedComponentProps>;
422
- };
422
+ export declare function ColorPicker(props: IColorPickerProps): JSX.Element;
423
423
 
424
424
  /**
425
425
  * @internal
@@ -468,6 +468,29 @@ export declare function ContentDivider({ className }: {
468
468
  */
469
469
  export declare type CopyCodeOriginType = "keyboard" | "button";
470
470
 
471
+ /**
472
+ * Creates localized currency format presets.
473
+ *
474
+ * @param formatMessage - Function to format localized messages (e.g., from react-intl)
475
+ * @returns Array of currency format presets with localized names
476
+ * @internal
477
+ */
478
+ export declare function createCurrencyPresets(formatMessage: (descriptor: {
479
+ id: string;
480
+ }) => string): IFormatPreset[];
481
+
482
+ /**
483
+ * Base currency preset definitions.
484
+ * These are the raw preset data that can be used to create localized presets.
485
+ * @internal
486
+ */
487
+ export declare const CURRENCY_PRESET_DEFINITIONS: readonly ICurrencyPresetDefinition[];
488
+
489
+ /**
490
+ * @alpha
491
+ */
492
+ export declare type CurrencyFormatValidationErrorCode = "empty" | "invalidFormat" | "missingCurrencySymbol" | "missingDecimalPlaces";
493
+
471
494
  /**
472
495
  * @internal
473
496
  */
@@ -833,9 +856,7 @@ export declare function FilterGroupItem({ title, subtitle, selectedItemsCount, s
833
856
  /**
834
857
  * @internal
835
858
  */
836
- export declare const FilterLabel: FC<WithIntlProps<IFilterLabelProps & WrappedComponentProps>> & {
837
- WrappedComponent: ComponentType<IFilterLabelProps & WrappedComponentProps>;
838
- };
859
+ export declare const FilterLabel: NamedExoticComponent<IFilterLabelProps>;
839
860
 
840
861
  /**
841
862
  * @internal
@@ -2321,6 +2342,56 @@ export declare function IconWebsite({ color, className, width, height }: IIconPr
2321
2342
  */
2322
2343
  export declare function IconWidget({ color, className, width, height }: IIconProps): JSX.Element;
2323
2344
 
2345
+ /**
2346
+ * @alpha
2347
+ */
2348
+ export declare interface ICurrencyFormatValidationError {
2349
+ code: CurrencyFormatValidationErrorCode;
2350
+ /**
2351
+ * Indexes of sections (0-based) that failed validation.
2352
+ * The value is only present for section-driven validations.
2353
+ */
2354
+ sectionIndexes?: number[];
2355
+ message: string;
2356
+ }
2357
+
2358
+ /**
2359
+ * @alpha
2360
+ */
2361
+ export declare interface ICurrencyFormatValidationOptions {
2362
+ /**
2363
+ * Sample value used to verify the formatter does not throw.
2364
+ * Defaults to 12345.67 to cover both thousands and decimals.
2365
+ */
2366
+ sampleValue?: number;
2367
+ /**
2368
+ * Number of mandatory decimal places each section must contain.
2369
+ * Set to 0 (or a negative value) to skip the decimal check.
2370
+ * Defaults to 2.
2371
+ */
2372
+ requiredDecimalPlaces?: number;
2373
+ separators?: ISeparators_2;
2374
+ }
2375
+
2376
+ /**
2377
+ * @alpha
2378
+ */
2379
+ export declare interface ICurrencyFormatValidationResult {
2380
+ isValid: boolean;
2381
+ errors: ICurrencyFormatValidationError[];
2382
+ }
2383
+
2384
+ /**
2385
+ * Base currency preset definitions without localized names.
2386
+ * @internal
2387
+ */
2388
+ export declare interface ICurrencyPresetDefinition {
2389
+ localIdentifier: string;
2390
+ format: string;
2391
+ previewNumber: number;
2392
+ messageId: string;
2393
+ }
2394
+
2324
2395
  /**
2325
2396
  * @internal
2326
2397
  */
@@ -2413,7 +2484,7 @@ export declare interface IDescriptionPanelProps {
2413
2484
  useReferences?: boolean;
2414
2485
  LoadingComponent?: ComponentType;
2415
2486
  filters?: IFilter[];
2416
- separators?: ISeparators_2;
2487
+ separators?: ISeparators_3;
2417
2488
  execConfig?: IExecutionConfig;
2418
2489
  id?: string;
2419
2490
  }
@@ -3470,7 +3541,7 @@ export declare interface IInsightListItemProps {
3470
3541
  type?: string;
3471
3542
  width?: number;
3472
3543
  filters?: IFilter[];
3473
- separators?: ISeparators_2;
3544
+ separators?: ISeparators_3;
3474
3545
  onClick?: () => void;
3475
3546
  onDelete?: () => void;
3476
3547
  onDescriptionPanelOpen?: () => void;
@@ -3894,7 +3965,6 @@ export declare interface ILegacyListState {
3894
3965
  * @internal
3895
3966
  */
3896
3967
  export declare interface ILegacyMultiSelectListItemProps {
3897
- intl: IntlShape;
3898
3968
  isLoading?: boolean;
3899
3969
  onMouseOut?: (source: any) => void;
3900
3970
  onMouseOver?: (source: any) => void;
@@ -4257,7 +4327,6 @@ export declare interface IMultiSelectListItemProps {
4257
4327
  * @internal
4258
4328
  */
4259
4329
  export declare interface IMultiSelectListProps<T> {
4260
- intl: IntlShape;
4261
4330
  height?: number;
4262
4331
  width?: number;
4263
4332
  itemHeight?: number;
@@ -4435,49 +4504,13 @@ export declare interface InputState {
4435
4504
  /**
4436
4505
  * @internal
4437
4506
  */
4438
- export declare class InputWithNumberFormat extends PureComponent<InputWithNumberFormatProps, InputWithNumberFormatState> {
4439
- private input;
4440
- static defaultProps: {
4441
- separators: {
4442
- thousand: string;
4443
- decimal: string;
4444
- };
4445
- autofocus: boolean;
4446
- className: string;
4447
- clearOnEsc: boolean;
4448
- disabled: boolean;
4449
- hasError: boolean;
4450
- hasWarning: boolean;
4451
- isSearch: boolean;
4452
- isSmall: boolean;
4453
- maxlength: number;
4454
- onChange: (..._: any[]) => void;
4455
- onEscKeyPress: (..._: any[]) => void;
4456
- onEnterKeyPress: (..._: any[]) => void;
4457
- onBlur: (..._: any[]) => void;
4458
- onFocus: (..._: any[]) => void;
4459
- placeholder: string;
4460
- prefix: string;
4461
- readonly: boolean;
4462
- suffix: string;
4463
- label: string;
4464
- labelPositionTop: boolean;
4465
- value: string;
4466
- };
4467
- constructor(props: InputWithNumberFormatProps);
4468
- UNSAFE_componentWillReceiveProps({ value: newValue }: InputWithNumberFormatProps): void;
4469
- onChange: (value: number, e: ChangeEvent<HTMLInputElement>) => void;
4470
- onFocus: (e: FocusEvent_2<HTMLInputElement>) => void;
4471
- onBlur: (e: FocusEvent_2<HTMLInputElement>) => void;
4472
- handleCaretShift(e: ChangeEvent<HTMLInputElement>): void;
4473
- render(): JSX.Element;
4474
- }
4507
+ export declare const InputWithNumberFormat: NamedExoticComponent<InputWithNumberFormatProps>;
4475
4508
 
4476
4509
  /**
4477
4510
  * @internal
4478
4511
  */
4479
4512
  export declare interface InputWithNumberFormatOwnProps {
4480
- separators: Separators;
4513
+ separators?: Separators;
4481
4514
  }
4482
4515
 
4483
4516
  /**
@@ -4506,9 +4539,7 @@ export declare function InsightIcon({ visualizationUrl, iconProps, }: IInsightIc
4506
4539
  /**
4507
4540
  * @internal
4508
4541
  */
4509
- export declare const InsightListItem: FC<WithIntlProps<IInsightListItemProps & WrappedComponentProps>> & {
4510
- WrappedComponent: ComponentType<IInsightListItemProps & WrappedComponentProps>;
4511
- };
4542
+ export declare function InsightListItem({ title, description, updated, type, isSelected, isLoading, filters, separators, LoadingComponent, onClick, onDescriptionPanelOpen, showDescriptionPanel, useRichText, useReferences, richTextExecConfig, width, isLocked, onDelete, metadataTimeZone, }: IInsightListItemProps): JSX.Element;
4512
4543
 
4513
4544
  /**
4514
4545
  * @internal
@@ -4853,7 +4884,7 @@ export declare interface IRichTextProps {
4853
4884
  /**
4854
4885
  * Separators to be used for rendering references.
4855
4886
  */
4856
- separators?: ISeparators_2;
4887
+ separators?: ISeparators_3;
4857
4888
  /**
4858
4889
  * @alpha
4859
4890
  */
@@ -4948,6 +4979,14 @@ export declare interface IScrollGradientProps {
4948
4979
  children?: ReactNode;
4949
4980
  }
4950
4981
 
4982
+ /**
4983
+ * Checks if a format string represents a currency format.
4984
+ * A currency format is one where at least one numeric section contains a currency symbol.
4985
+ *
4986
+ * @alpha
4987
+ */
4988
+ export declare function isCurrencyFormat(format: string | undefined | null): boolean;
4989
+
4951
4990
  /**
4952
4991
  * @internal
4953
4992
  */
@@ -5411,7 +5450,7 @@ export declare interface IStylingSettingWidgetProps<T extends StylingPickerItemC
5411
5450
  className?: string;
5412
5451
  shouldDisableCancelButton?: boolean;
5413
5452
  shouldDisableApplyButton?: boolean;
5414
- onApply?: (ref: ObjRef) => void;
5453
+ onApply?: (ref: ObjRef | null) => void;
5415
5454
  onCancel?: () => void;
5416
5455
  onListActionClick?: () => void;
5417
5456
  onItemEdit?: (modifiedItem: IStylingPickerItem<T>) => void;
@@ -5419,7 +5458,7 @@ export declare interface IStylingSettingWidgetProps<T extends StylingPickerItemC
5419
5458
  locale?: string;
5420
5459
  onHelpClick?: () => void;
5421
5460
  onItemMenuToggle?: (ref: ObjRef) => void;
5422
- onItemSelect?: (ref: ObjRef) => void;
5461
+ onItemSelect?: (ref: ObjRef | null) => void;
5423
5462
  isEditingSupported?: boolean;
5424
5463
  isSavingActionInProgress?: boolean;
5425
5464
  }
@@ -6444,9 +6483,7 @@ export declare const modifierNegator: "!";
6444
6483
  /**
6445
6484
  * @internal
6446
6485
  */
6447
- export declare const MultiSelectList: FC<WithIntlProps<IMultiSelectListProps<unknown>>> & {
6448
- WrappedComponent: ComponentType<IMultiSelectListProps<unknown>>;
6449
- };
6486
+ export declare function MultiSelectList<T>({ isMobile, width, height, items, itemHeight, itemsCount, onScrollEnd, renderItem, selectedItems, listClassNames, onSelectAll, onSelectNone, isInverted, isSearching, isSelected, filteredItemsCount, selectAllCheckbox, tagName, }: IMultiSelectListProps<T>): JSX.Element;
6450
6487
 
6451
6488
  /**
6452
6489
  * @internal
@@ -7183,6 +7220,7 @@ export declare interface UiAsyncTableAccessibilityConfig<T> {
7183
7220
  export declare interface UiAsyncTableBulkAction {
7184
7221
  label: string;
7185
7222
  onClick: () => void;
7223
+ accessibilityConfig?: IAccessibilityConfigBase;
7186
7224
  }
7187
7225
 
7188
7226
  /**
@@ -7795,6 +7833,92 @@ export declare interface UiPagedVirtualListSkeletonItemProps {
7795
7833
  itemHeight: number;
7796
7834
  }
7797
7835
 
7836
+ /**
7837
+ * A circular button used for pagination navigation (previous/next).
7838
+ *
7839
+ * @remarks
7840
+ * The button has a circular shape with a light gray background that darkens on hover.
7841
+ * The icon color inverts to white when hovered or active.
7842
+ *
7843
+ * @internal
7844
+ */
7845
+ export declare const UiPaginationButton: ForwardRefExoticComponent<UiPaginationButtonProps & RefAttributes<HTMLButtonElement>>;
7846
+
7847
+ /**
7848
+ * Direction of the pagination button arrow.
7849
+ *
7850
+ * @internal
7851
+ */
7852
+ export declare type UiPaginationButtonDirection = "previous" | "next";
7853
+
7854
+ /**
7855
+ * Props for the UiPaginationButton component.
7856
+ *
7857
+ * @internal
7858
+ */
7859
+ export declare interface UiPaginationButtonProps {
7860
+ /**
7861
+ * Direction of the arrow icon.
7862
+ * - "previous" shows left arrow (paginationLeft)
7863
+ * - "next" shows right arrow (paginationRight)
7864
+ */
7865
+ direction: UiPaginationButtonDirection;
7866
+ /**
7867
+ * Accessible label for the button.
7868
+ */
7869
+ label: string;
7870
+ /**
7871
+ * Size of the button.
7872
+ * - "small" (22x22) - for desktop views
7873
+ * - "large" (32x32) - for mobile views
7874
+ * @defaultValue "small"
7875
+ */
7876
+ size?: UiPaginationButtonSize;
7877
+ /**
7878
+ * Whether the button is disabled.
7879
+ */
7880
+ isDisabled?: boolean;
7881
+ /**
7882
+ * Whether the button is in active/selected state.
7883
+ */
7884
+ isActive?: boolean;
7885
+ /**
7886
+ * Click handler.
7887
+ */
7888
+ onClick?: (e: MouseEvent_2<HTMLButtonElement>) => void;
7889
+ /**
7890
+ * Keyboard event handler.
7891
+ */
7892
+ onKeyDown?: (e: KeyboardEvent_2<HTMLButtonElement>) => void;
7893
+ /**
7894
+ * Data attribute for tracking/analytics.
7895
+ */
7896
+ dataId?: string;
7897
+ /**
7898
+ * Data attribute for testing.
7899
+ */
7900
+ dataTestId?: string;
7901
+ /**
7902
+ * Tab index for keyboard navigation.
7903
+ */
7904
+ tabIndex?: number;
7905
+ /**
7906
+ * HTML id attribute.
7907
+ */
7908
+ id?: string;
7909
+ /**
7910
+ * Accessibility configuration for ARIA attributes.
7911
+ */
7912
+ accessibilityConfig?: IAccessibilityConfigBase;
7913
+ }
7914
+
7915
+ /**
7916
+ * Size variant for UiPaginationButton.
7917
+ *
7918
+ * @internal
7919
+ */
7920
+ export declare type UiPaginationButtonSize = "small" | "large";
7921
+
7798
7922
  /**
7799
7923
  * @internal
7800
7924
  */
@@ -8163,6 +8287,27 @@ export declare function useAsyncTableResponsiveColumns<T>(columns: Array<UiAsync
8163
8287
  columns: UiAsyncTableColumnDefinitionResponsive<T>[];
8164
8288
  };
8165
8289
 
8290
+ /**
8291
+ * @internal
8292
+ *
8293
+ * Ensures that currency metrics default to a meaningful preset instead of falling back to custom formats.
8294
+ * - When no format is set yet, it applies the inherited override or the standard currency preset.
8295
+ * - When switching to currency with an incompatible format, it coerces the format to a supported preset.
8296
+ */
8297
+ export declare function useCurrencyFormatDefaults({ metricType, normalizedFormat, currencyFormatOverride, presetFormats, hasInheritPreset, onFormatChange, shouldBootstrap, fallbackFormat, }: UseCurrencyFormatDefaultsConfig): void;
8298
+
8299
+ /** @internal */
8300
+ export declare interface UseCurrencyFormatDefaultsConfig {
8301
+ metricType?: MetricType;
8302
+ normalizedFormat: string | null;
8303
+ currencyFormatOverride?: string | null;
8304
+ presetFormats: string[];
8305
+ hasInheritPreset: boolean;
8306
+ onFormatChange: (format: string | null) => void;
8307
+ shouldBootstrap: boolean;
8308
+ fallbackFormat?: string;
8309
+ }
8310
+
8166
8311
  /**
8167
8312
  * @internal
8168
8313
  */
@@ -8393,6 +8538,13 @@ export declare function useUiTreeViewEventSubscriber<T extends UiTreeViewEventTy
8393
8538
  */
8394
8539
  export declare const useZoom: () => IZoomContextState;
8395
8540
 
8541
+ /**
8542
+ * Validates a number format string that is expected to represent a currency amount.
8543
+ *
8544
+ * @alpha
8545
+ */
8546
+ export declare function validateCurrencyFormat(format: string | undefined | null, options?: ICurrencyFormatValidationOptions): ICurrencyFormatValidationResult;
8547
+
8396
8548
  /**
8397
8549
  * @internal
8398
8550
  * Icon button variant same as tertiary but removing extra padding around the icon
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-kit",
3
- "version": "11.13.0-alpha.1",
3
+ "version": "11.13.0-alpha.2",
4
4
  "description": "GoodData SDK - UI Building Components",
5
5
  "repository": {
6
6
  "type": "git",
@@ -76,11 +76,11 @@
76
76
  "tslib": "2.8.1",
77
77
  "unified": "^11.0.5",
78
78
  "uuid": "^11.1.0",
79
- "@gooddata/sdk-backend-spi": "11.13.0-alpha.1",
80
- "@gooddata/sdk-ui": "11.13.0-alpha.1",
81
- "@gooddata/sdk-ui-theme-provider": "11.13.0-alpha.1",
82
- "@gooddata/util": "11.13.0-alpha.1",
83
- "@gooddata/sdk-model": "11.13.0-alpha.1"
79
+ "@gooddata/sdk-backend-spi": "11.13.0-alpha.2",
80
+ "@gooddata/sdk-model": "11.13.0-alpha.2",
81
+ "@gooddata/util": "11.13.0-alpha.2",
82
+ "@gooddata/sdk-ui-theme-provider": "11.13.0-alpha.2",
83
+ "@gooddata/sdk-ui": "11.13.0-alpha.2"
84
84
  },
85
85
  "devDependencies": {
86
86
  "@gooddata/stylelint-config": "^5.0.0",
@@ -130,9 +130,9 @@
130
130
  "typescript": "5.8.3",
131
131
  "vitest": "3.2.4",
132
132
  "vitest-dom": "0.1.1",
133
- "@gooddata/eslint-config": "11.13.0-alpha.1",
134
- "@gooddata/sdk-backend-mockingbird": "11.13.0-alpha.1",
135
- "@gooddata/reference-workspace": "11.13.0-alpha.1"
133
+ "@gooddata/eslint-config": "11.13.0-alpha.2",
134
+ "@gooddata/reference-workspace": "11.13.0-alpha.2",
135
+ "@gooddata/sdk-backend-mockingbird": "11.13.0-alpha.2"
136
136
  },
137
137
  "peerDependencies": {
138
138
  "react": "^18.0.0 || ^19.0.0",
@@ -0,0 +1,56 @@
1
+ // (C) 2025 GoodData Corporation
2
+
3
+ .gd-ui-kit-pagination-button {
4
+ // Circular shape
5
+ border-radius: 50%;
6
+ border: none;
7
+ cursor: pointer;
8
+ display: inline-flex;
9
+ align-items: center;
10
+ justify-content: center;
11
+ padding: 0;
12
+ transition: var(--gd-transition-all);
13
+
14
+ // Default state colors
15
+ --gd-icon-fill-color: var(--gd-palette-complementary-7);
16
+ background-color: var(--gd-palette-complementary-2);
17
+
18
+ &:disabled {
19
+ cursor: default;
20
+ opacity: 0.5;
21
+ }
22
+
23
+ &:not(:disabled) {
24
+ &:hover,
25
+ &:focus-visible,
26
+ &:active {
27
+ --gd-icon-fill-color: var(--gd-palette-complementary-0);
28
+ background-color: var(--gd-palette-complementary-5);
29
+ }
30
+
31
+ &:focus-visible {
32
+ outline: 2px solid var(--gd-palette-primary-base);
33
+ outline-offset: 1px;
34
+ }
35
+ }
36
+
37
+ &--isActive {
38
+ --gd-icon-fill-color: var(--gd-palette-complementary-0);
39
+ background-color: var(--gd-palette-complementary-5);
40
+ }
41
+
42
+ /**
43
+ * Size variants
44
+ */
45
+ &--size {
46
+ &-small {
47
+ width: 22px;
48
+ height: 22px;
49
+ }
50
+
51
+ &-large {
52
+ width: 32px;
53
+ height: 32px;
54
+ }
55
+ }
56
+ }
@@ -3,6 +3,7 @@
3
3
  @use "./UiButton/UiButton.scss";
4
4
  @use "./UiButtonSegmentedControl/UiButtonSegmentedControl.scss";
5
5
  @use "./UiIconButton/UiIconButton.scss";
6
+ @use "./UiPaginationButton/UiPaginationButton.scss";
6
7
  @use "./UiIcon/UiIcon.scss";
7
8
  @use "./UiSkeleton/UiSkeleton.scss";
8
9
  @use "./UiPagedVirtualList/UiPagedVirtualList.scss";
@@ -740,6 +740,46 @@
740
740
  --gd-icon-fill-color: var(--gd-palette-complementary-7);
741
741
  }
742
742
 
743
+ .gd-ui-kit-pagination-button {
744
+ border-radius: 50%;
745
+ border: none;
746
+ cursor: pointer;
747
+ display: inline-flex;
748
+ align-items: center;
749
+ justify-content: center;
750
+ padding: 0;
751
+ transition: var(--gd-transition-all);
752
+ --gd-icon-fill-color: var(--gd-palette-complementary-7);
753
+ background-color: var(--gd-palette-complementary-2);
754
+ /**
755
+ * Size variants
756
+ */
757
+ }
758
+ .gd-ui-kit-pagination-button:disabled {
759
+ cursor: default;
760
+ opacity: 0.5;
761
+ }
762
+ .gd-ui-kit-pagination-button:not(:disabled):hover, .gd-ui-kit-pagination-button:not(:disabled):focus-visible, .gd-ui-kit-pagination-button:not(:disabled):active {
763
+ --gd-icon-fill-color: var(--gd-palette-complementary-0);
764
+ background-color: var(--gd-palette-complementary-5);
765
+ }
766
+ .gd-ui-kit-pagination-button:not(:disabled):focus-visible {
767
+ outline: 2px solid var(--gd-palette-primary-base);
768
+ outline-offset: 1px;
769
+ }
770
+ .gd-ui-kit-pagination-button--isActive {
771
+ --gd-icon-fill-color: var(--gd-palette-complementary-0);
772
+ background-color: var(--gd-palette-complementary-5);
773
+ }
774
+ .gd-ui-kit-pagination-button--size-small {
775
+ width: 22px;
776
+ height: 22px;
777
+ }
778
+ .gd-ui-kit-pagination-button--size-large {
779
+ width: 32px;
780
+ height: 32px;
781
+ }
782
+
743
783
  .gd-ui-kit-icon {
744
784
  fill: var(--gd-icon-fill-color);
745
785
  }