@gooddata/sdk-ui-dashboard 11.53.0-alpha.0 → 11.53.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 (149) hide show
  1. package/NOTICE +59 -9
  2. package/esm/__version.d.ts +1 -1
  3. package/esm/__version.js +1 -1
  4. package/esm/index.d.ts +6 -6
  5. package/esm/index.d.ts.map +1 -1
  6. package/esm/index.js +3 -4
  7. package/esm/internal.d.ts +1 -1
  8. package/esm/internal.d.ts.map +1 -1
  9. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/resolveDashboardConfig.d.ts.map +1 -1
  10. package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/resolveDashboardConfig.js +2 -0
  11. package/esm/model/commandHandlers/dashboard/saveDashboardHandler.d.ts.map +1 -1
  12. package/esm/model/commandHandlers/dashboard/saveDashboardHandler.js +43 -8
  13. package/esm/model/react/useInitializeDashboardStore.d.ts.map +1 -1
  14. package/esm/model/react/useInitializeDashboardStore.js +11 -0
  15. package/esm/model/store/config/configReducers.d.ts +8 -0
  16. package/esm/model/store/config/configReducers.d.ts.map +1 -1
  17. package/esm/model/store/config/configReducers.js +12 -0
  18. package/esm/model/store/config/configSelectors.d.ts +12 -0
  19. package/esm/model/store/config/configSelectors.d.ts.map +1 -1
  20. package/esm/model/store/config/configSelectors.js +16 -0
  21. package/esm/model/store/config/index.d.ts +2 -0
  22. package/esm/model/store/config/index.d.ts.map +1 -1
  23. package/esm/model/store/dashboardStore.d.ts.map +1 -1
  24. package/esm/model/store/dashboardStore.js +1 -0
  25. package/esm/model/store/drill/drillReducers.d.ts.map +1 -1
  26. package/esm/model/store/drill/drillReducers.js +2 -1
  27. package/esm/model/types/commonTypes.d.ts +21 -0
  28. package/esm/model/types/commonTypes.d.ts.map +1 -1
  29. package/esm/presentation/automations/alerting/DefaultAlertingDialog/AlertingDialogHeader.d.ts +1 -11
  30. package/esm/presentation/automations/alerting/DefaultAlertingDialog/AlertingDialogHeader.d.ts.map +1 -1
  31. package/esm/presentation/automations/alerting/DefaultAlertingDialog/AlertingDialogHeader.js +7 -11
  32. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts +6 -3
  33. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts.map +1 -1
  34. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.js +25 -6
  35. package/esm/presentation/automations/alerting/state/AlertingDialogStateProvider.d.ts +1 -5
  36. package/esm/presentation/automations/alerting/state/AlertingDialogStateProvider.d.ts.map +1 -1
  37. package/esm/presentation/automations/alerting/state/AlertingDialogStateProvider.js +1 -5
  38. package/esm/presentation/automations/alerting/state/useAlertFormState.d.ts +1 -1
  39. package/esm/presentation/automations/alerting/state/useAlertFormState.d.ts.map +1 -1
  40. package/esm/presentation/automations/alerting/state/useAlertFormState.js +5 -4
  41. package/esm/presentation/automations/alerting/types.d.ts +51 -15
  42. package/esm/presentation/automations/alerting/types.d.ts.map +1 -1
  43. package/esm/presentation/automations/contexts/AlertingDialogContext.d.ts +0 -26
  44. package/esm/presentation/automations/contexts/AlertingDialogContext.d.ts.map +1 -1
  45. package/esm/presentation/automations/contexts/AlertingDialogContext.js +0 -26
  46. package/esm/presentation/automations/contexts/ScheduledEmailDialogContext.d.ts +0 -9
  47. package/esm/presentation/automations/contexts/ScheduledEmailDialogContext.d.ts.map +1 -1
  48. package/esm/presentation/automations/contexts/ScheduledEmailDialogContext.js +0 -9
  49. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts +23 -3
  50. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts.map +1 -1
  51. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.js +43 -6
  52. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Header/ScheduleEmailDialogHeader.d.ts +1 -12
  53. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Header/ScheduleEmailDialogHeader.d.ts.map +1 -1
  54. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Header/ScheduleEmailDialogHeader.js +10 -14
  55. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailFormState.d.ts +1 -1
  56. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailFormState.d.ts.map +1 -1
  57. package/esm/presentation/automations/scheduledEmail/state/useScheduledEmailFormState.js +3 -2
  58. package/esm/presentation/automations/scheduledEmail/types.d.ts +55 -15
  59. package/esm/presentation/automations/scheduledEmail/types.d.ts.map +1 -1
  60. package/esm/presentation/automations/shared/automationFilters/components/AutomationParameter.d.ts.map +1 -1
  61. package/esm/presentation/automations/shared/automationFilters/components/AutomationParameter.js +2 -2
  62. package/esm/presentation/automations/shared/filters/conversions.d.ts +6 -6
  63. package/esm/presentation/automations/shared/filters/conversions.d.ts.map +1 -1
  64. package/esm/presentation/automations/shared/filters/conversions.js +48 -30
  65. package/esm/presentation/automations/shared/filters/index.d.ts +1 -1
  66. package/esm/presentation/automations/shared/filters/index.d.ts.map +1 -1
  67. package/esm/presentation/automations/shared/filters/index.js +1 -1
  68. package/esm/presentation/automations/shared/slots/types.d.ts +58 -0
  69. package/esm/presentation/automations/shared/slots/types.d.ts.map +1 -0
  70. package/esm/presentation/automations/shared/slots/types.js +2 -0
  71. package/esm/presentation/automations/shared/utils/automationTitle.d.ts +5 -0
  72. package/esm/presentation/automations/shared/utils/automationTitle.d.ts.map +1 -0
  73. package/esm/presentation/automations/shared/utils/automationTitle.js +7 -0
  74. package/esm/presentation/dashboard/DashboardHeader/DashboardHeader.d.ts +1 -1
  75. package/esm/presentation/dashboard/DashboardHeader/DashboardHeader.d.ts.map +1 -1
  76. package/esm/presentation/dashboard/DashboardHeader/DashboardHeader.js +10 -0
  77. package/esm/presentation/dashboard/DashboardSidebar/CreationPanel.d.ts.map +1 -1
  78. package/esm/presentation/dashboard/DashboardSidebar/CreationPanel.js +5 -2
  79. package/esm/presentation/dashboard/DashboardSidebar/DraggableInsightList/DraggableInsightList.d.ts +2 -1
  80. package/esm/presentation/dashboard/DashboardSidebar/DraggableInsightList/DraggableInsightList.d.ts.map +1 -1
  81. package/esm/presentation/dashboard/DashboardSidebar/DraggableInsightList/DraggableInsightList.js +2 -2
  82. package/esm/presentation/dashboard/DashboardSidebar/DraggableInsightList/DraggableInsightListCore.d.ts +1 -1
  83. package/esm/presentation/dashboard/DashboardSidebar/DraggableInsightList/DraggableInsightListCore.d.ts.map +1 -1
  84. package/esm/presentation/dashboard/DashboardSidebar/DraggableInsightList/DraggableInsightListCore.js +3 -3
  85. package/esm/presentation/dashboard/DashboardSidebar/DraggableInsightList/DraggableInsightListItemWrapper.d.ts +2 -1
  86. package/esm/presentation/dashboard/DashboardSidebar/DraggableInsightList/DraggableInsightListItemWrapper.d.ts.map +1 -1
  87. package/esm/presentation/dashboard/DashboardSidebar/DraggableInsightList/DraggableInsightListItemWrapper.js +3 -2
  88. package/esm/presentation/dashboard/components/DashboardInner.d.ts.map +1 -1
  89. package/esm/presentation/dashboard/components/DashboardInner.js +9 -5
  90. package/esm/presentation/dashboard/components/DashboardSkeleton.d.ts +5 -0
  91. package/esm/presentation/dashboard/components/DashboardSkeleton.d.ts.map +1 -0
  92. package/esm/presentation/dashboard/components/DashboardSkeleton.js +30 -0
  93. package/esm/presentation/dragAndDrop/WrapInsightListItemWithDrag.d.ts +1 -1
  94. package/esm/presentation/dragAndDrop/WrapInsightListItemWithDrag.d.ts.map +1 -1
  95. package/esm/presentation/dragAndDrop/WrapInsightListItemWithDrag.js +3 -3
  96. package/esm/presentation/dragAndDrop/draggableParameterFilter/DefaultParameterDraggingComponent.d.ts.map +1 -1
  97. package/esm/presentation/dragAndDrop/draggableParameterFilter/DefaultParameterDraggingComponent.js +9 -2
  98. package/esm/presentation/dragAndDrop/draggableWidget/DraggableInsightListItem.d.ts +1 -0
  99. package/esm/presentation/dragAndDrop/draggableWidget/DraggableInsightListItem.d.ts.map +1 -1
  100. package/esm/presentation/dragAndDrop/draggableWidget/DraggableInsightListItem.js +2 -2
  101. package/esm/presentation/dragAndDrop/types.d.ts +2 -0
  102. package/esm/presentation/dragAndDrop/types.d.ts.map +1 -1
  103. package/esm/presentation/filterBar/filterBar/DefaultFilterBarContainer.d.ts.map +1 -1
  104. package/esm/presentation/filterBar/filterBar/DefaultFilterBarContainer.js +15 -3
  105. package/esm/presentation/filterBar/parameterFilter/DashboardParameterFilter.d.ts.map +1 -1
  106. package/esm/presentation/filterBar/parameterFilter/DashboardParameterFilter.js +4 -3
  107. package/esm/presentation/insightList/types.d.ts +1 -0
  108. package/esm/presentation/insightList/types.d.ts.map +1 -1
  109. package/esm/presentation/topBar/buttonBar/button/cancelButton/DefaultCancelButton.d.ts +1 -1
  110. package/esm/presentation/topBar/buttonBar/button/cancelButton/DefaultCancelButton.d.ts.map +1 -1
  111. package/esm/presentation/topBar/buttonBar/button/cancelButton/DefaultCancelButton.js +3 -2
  112. package/esm/presentation/topBar/buttonBar/button/cancelButton/types.d.ts +1 -0
  113. package/esm/presentation/topBar/buttonBar/button/cancelButton/types.d.ts.map +1 -1
  114. package/esm/presentation/topBar/buttonBar/button/cancelButton/types.js +1 -1
  115. package/esm/presentation/topBar/buttonBar/button/editButton/DefaultEditButton.d.ts.map +1 -1
  116. package/esm/presentation/topBar/buttonBar/button/editButton/DefaultEditButton.js +3 -2
  117. package/esm/presentation/topBar/buttonBar/button/saveAsButton/DefaultSaveAsNewButton.d.ts +1 -1
  118. package/esm/presentation/topBar/buttonBar/button/saveAsButton/DefaultSaveAsNewButton.d.ts.map +1 -1
  119. package/esm/presentation/topBar/buttonBar/button/saveAsButton/DefaultSaveAsNewButton.js +5 -2
  120. package/esm/presentation/topBar/buttonBar/button/saveAsButton/types.d.ts +1 -0
  121. package/esm/presentation/topBar/buttonBar/button/saveAsButton/types.d.ts.map +1 -1
  122. package/esm/presentation/topBar/buttonBar/button/saveAsButton/types.js +1 -1
  123. package/esm/presentation/topBar/buttonBar/button/saveButton/DefaultSaveButton.d.ts.map +1 -1
  124. package/esm/presentation/topBar/buttonBar/button/saveButton/DefaultSaveButton.js +3 -1
  125. package/esm/presentation/topBar/buttonBar/button/settingButton/DefaultSettingButton.d.ts.map +1 -1
  126. package/esm/presentation/topBar/buttonBar/button/settingButton/DefaultSettingButton.js +3 -1
  127. package/esm/presentation/topBar/buttonBar/button/shareButton/DefaultShareButton.d.ts +1 -1
  128. package/esm/presentation/topBar/buttonBar/button/shareButton/DefaultShareButton.d.ts.map +1 -1
  129. package/esm/presentation/topBar/buttonBar/button/shareButton/DefaultShareButton.js +5 -2
  130. package/esm/presentation/topBar/buttonBar/button/shareButton/types.d.ts +1 -0
  131. package/esm/presentation/topBar/buttonBar/button/shareButton/types.d.ts.map +1 -1
  132. package/esm/presentation/topBar/buttonBar/button/shareButton/types.js +1 -0
  133. package/esm/presentation/topBar/menuButton/DefaultMenuButton.d.ts +1 -1
  134. package/esm/presentation/topBar/menuButton/DefaultMenuButton.d.ts.map +1 -1
  135. package/esm/presentation/topBar/menuButton/DefaultMenuButton.js +7 -2
  136. package/esm/presentation/topBar/menuButton/types.d.ts +4 -0
  137. package/esm/presentation/topBar/menuButton/types.d.ts.map +1 -1
  138. package/esm/presentation/widget/common/configuration/DateDatasetDropdown.d.ts.map +1 -1
  139. package/esm/presentation/widget/common/configuration/DateDatasetDropdown.js +93 -27
  140. package/esm/presentation/widget/common/configuration/utils.d.ts +3 -0
  141. package/esm/presentation/widget/common/configuration/utils.d.ts.map +1 -1
  142. package/esm/presentation/widget/common/configuration/utils.js +14 -2
  143. package/esm/sdk-ui-dashboard.d.ts +234 -88
  144. package/package.json +21 -21
  145. package/styles/css/dashboard.css +118 -0
  146. package/styles/css/dashboard.css.map +1 -1
  147. package/styles/css/main.css +180 -44
  148. package/styles/css/main.css.map +1 -1
  149. package/styles/scss/dashboard.scss +96 -0
@@ -194,6 +194,7 @@ import { IWidget } from '@gooddata/sdk-model';
194
194
  import { IWidgetDefinition } from '@gooddata/sdk-model';
195
195
  import { IWorkspacePermissions } from '@gooddata/sdk-model';
196
196
  import { JSX } from 'react/jsx-runtime';
197
+ import { KeyboardEvent as KeyboardEvent_2 } from 'react';
197
198
  import { LocalIdRef } from '@gooddata/sdk-model';
198
199
  import { MeasureValueFilterCondition } from '@gooddata/sdk-model';
199
200
  import { MessageDescriptor } from 'react-intl';
@@ -213,11 +214,11 @@ import { ParameterValue } from '@gooddata/sdk-model';
213
214
  import { Patch } from 'immer';
214
215
  import { PayloadAction } from '@reduxjs/toolkit';
215
216
  import { PlatformEdition } from '@gooddata/sdk-model';
216
- import { Provider } from 'react';
217
217
  import { ReactElement } from 'react';
218
218
  import { ReactNode } from 'react';
219
219
  import { ReactReduxContextValue } from 'react-redux';
220
220
  import { Reducer } from '@reduxjs/toolkit';
221
+ import { Ref } from 'react';
221
222
  import { RefObject } from 'react';
222
223
  import { SagaIterator } from 'redux-saga';
223
224
  import { ScreenSize } from '@gooddata/sdk-model';
@@ -515,56 +516,14 @@ export declare function addVisualizationToSwitcherWidgetContent(ref: ObjRef, vis
515
516
  export declare function AlertingDialog(props: IAlertingDialogProps): ReactElement;
516
517
 
517
518
  /**
518
- * Provider for {@link IAlertingDialogContextValue}.
519
- *
520
- * Besides the connector's own use, a custom `AlertingDialogComponent` can decorate the context for the
521
- * default dialog: read the value via {@link useAlertingDialogContext}, adjust it (e.g. swap the
522
- * `insight`), and re-provide it around `DefaultAlertingDialog`.
523
- *
524
- * The default dialog renders from the alert state contexts, which are initialized from this context
525
- * **above** the resolved dialog component. A decorator that changes data members must therefore also
526
- * remount `AlertingDialogStateProvider` beneath the re-provided context, so the state is derived from
527
- * the decorated value (the nested state shadows the ambient one):
528
- *
529
- * ```tsx
530
- * const ctx = useAlertingDialogContext();
531
- * const value = useMemo(() => ({ ...ctx, insight: decoratedInsight }), [ctx, decoratedInsight]);
532
- * return (
533
- * <AlertingDialogContextProvider value={value}>
534
- * <AlertingDialogStateProvider>
535
- * <DefaultAlertingDialog {...props} />
536
- * </AlertingDialogStateProvider>
537
- * </AlertingDialogContextProvider>
538
- * );
539
- * ```
540
- *
541
- * @alpha
542
- */
543
- export declare const AlertingDialogContextProvider: Provider<IAlertingDialogContextValue | undefined>;
544
-
545
- /**
546
- * Publishes the alerting create/edit dialog's state as the four alert state contexts once the
547
- * dialog's data has loaded.
548
- *
549
- * Mounts above the resolved `AlertingDialogComponent`, so the default dialog, a shell of blocks
550
- * and a wholesale replacement all read the same state with no extra wiring. Defers mounting the
551
- * state model itself until `useAlertingDialogContext().isLoading` is false, because the state
552
- * model seeds its draft from the dialog's loaded data in `useState` initializers that never
553
- * re-run — mounting earlier would freeze that seed against not-yet-loaded data.
554
- *
555
- * Runs `useIntl`-calling hooks, so an `IntlProvider` must sit above it. Inside a `Dashboard` the
556
- * ambient wrapper in `DashboardInner` supplies one with the same locale; a mount site without one
557
- * throws in react-intl.
558
- *
559
- * A custom `AlertingDialogComponent` that decorates the dialog context (re-provides
560
- * `AlertingDialogContextProvider` with an adjusted value) must remount this provider beneath the
561
- * decorated context, so the state is derived from the decorated value rather than the ambient one.
519
+ * The exact props the default dialog renders its header with, including the dialog's
520
+ * initial-focus ref.
562
521
  *
563
522
  * @alpha
564
523
  */
565
- export declare function AlertingDialogStateProvider({ children }: {
566
- children: ReactNode;
567
- }): JSX.Element;
524
+ export declare type AlertingDialogHeaderDefaultProps = IAlertingDialogHeaderProps & {
525
+ ref?: Ref<HTMLInputElement>;
526
+ };
568
527
 
569
528
  /**
570
529
  * @internal
@@ -1889,6 +1848,7 @@ export declare type CustomDashboardInsightListItemComponentProps = {
1889
1848
  useReferences?: boolean;
1890
1849
  LoadingComponent?: ComponentType;
1891
1850
  width?: number;
1851
+ disabled?: boolean;
1892
1852
  };
1893
1853
 
1894
1854
  /**
@@ -2453,6 +2413,27 @@ export declare type DashboardConfig = {
2453
2413
  * Provide widgets overlays for dashboard
2454
2414
  */
2455
2415
  widgetsOverlay?: Record<string, IDashboardWidgetOverlay>;
2416
+ /**
2417
+ * @internal
2418
+ * Specifies if the dashboard is in AI mode.
2419
+ *
2420
+ * @remarks
2421
+ * AI mode is active when the dashboard is being controlled or managed by AI capabilities.
2422
+ * When enabled, the dashboard may exhibit specialized behaviors, such as enabling new
2423
+ * AI-driven features or disabling certain standard functions to ensure a consistent
2424
+ * AI-assisted experience.
2425
+ */
2426
+ isAiMode?: boolean;
2427
+ /**
2428
+ * @internal
2429
+ * Specifies if ai now generates the dashboard
2430
+ *
2431
+ * @remarks
2432
+ * This flag indicates that an AI process has started generating the dashboard content but
2433
+ * has not yet finished. It can be used to trigger loading states (like skeletons or progress
2434
+ * indicators) and to allow users to cancel the generation process before it completes.
2435
+ */
2436
+ isAiGenerating?: boolean;
2456
2437
  /**
2457
2438
  * @internal
2458
2439
  * Identifier of the export
@@ -3881,9 +3862,12 @@ export declare const DEFAULT_TAB_ID = "defaultTabId";
3881
3862
  * that is what lets a wholesale replacement receive the same contexts. Rendering this component
3882
3863
  * outside those providers throws at runtime.
3883
3864
  *
3865
+ * Slots render only in the fully rendered dialog: not while the dialog context reports loading,
3866
+ * and not while the stale-filters confirmation step is shown.
3867
+ *
3884
3868
  * @alpha
3885
3869
  */
3886
- export declare function DefaultAlertingDialog(props: IAlertingDialogProps): JSX.Element;
3870
+ export declare function DefaultAlertingDialog(props: IDefaultAlertingDialogProps): JSX.Element;
3887
3871
 
3888
3872
  /**
3889
3873
  * Self-contained version of DefaultAlertingManagementDialogNew that builds the required
@@ -3903,7 +3887,7 @@ export declare function DefaultButtonBar({ children, cancelButtonProps, saveButt
3903
3887
  /**
3904
3888
  * @internal
3905
3889
  */
3906
- export declare function DefaultCancelButton({ isVisible, onCancelClick }: ICancelButtonProps): JSX.Element | null;
3890
+ export declare function DefaultCancelButton({ isVisible, isEnabled, onCancelClick }: ICancelButtonProps): JSX.Element | null;
3907
3891
 
3908
3892
  /**
3909
3893
  * @internal
@@ -4103,7 +4087,7 @@ export declare function DefaultLockedStatus(props: ILockedStatusProps): ReactEle
4103
4087
  /**
4104
4088
  * @alpha
4105
4089
  */
4106
- export declare function DefaultMenuButton({ menuItems }: IMenuButtonProps): ReactElement | null;
4090
+ export declare function DefaultMenuButton({ menuItems, isEnabled }: IMenuButtonProps): ReactElement | null;
4107
4091
 
4108
4092
  /**
4109
4093
  * @alpha
@@ -4113,7 +4097,7 @@ export declare function DefaultSaveAsDialog({ onSubmit, onCancel, onError, isVis
4113
4097
  /**
4114
4098
  * @internal
4115
4099
  */
4116
- export declare function DefaultSaveAsNewButton({ isVisible, onSaveAsNewClick }: ISaveAsNewButtonProps): JSX.Element | null;
4100
+ export declare function DefaultSaveAsNewButton({ isVisible, isEnabled, onSaveAsNewClick }: ISaveAsNewButtonProps): JSX.Element | null;
4117
4101
 
4118
4102
  /**
4119
4103
  * @internal
@@ -4121,9 +4105,29 @@ export declare function DefaultSaveAsNewButton({ isVisible, onSaveAsNewClick }:
4121
4105
  export declare function DefaultSaveButton({ isVisible, isEnabled, isSaving, buttonTitle, onSaveClick }: ISaveButtonProps): JSX.Element | null;
4122
4106
 
4123
4107
  /**
4108
+ * Default implementation of the scheduled export create/edit dialog.
4109
+ *
4110
+ * This component is a pure consumer of `AutomationsContext`, `ScheduledEmailDialogContext`, and the
4111
+ * scheduled export dialog state contexts: it reads org/workspace data, per-dialog state, and the
4112
+ * export draft's state from those contexts rather than from the dashboard store. It must therefore
4113
+ * be rendered within an `AutomationsContextProvider`, a `ScheduledEmailDialogContextProvider` (for
4114
+ * the create/edit flow), and a `ScheduledEmailDialogStateProvider`, whose state model establishes
4115
+ * itself once `useScheduledEmailDialogContext().isLoading` is false. Inside a `Dashboard`, the
4116
+ * scheduled export connector supplies the first two providers above the
4117
+ * `ScheduledEmailDialogComponent` slot and mounts `ScheduledEmailDialogStateProvider` around the
4118
+ * resolved slot component — so the default component, and any wholesale slot replacement, inherit
4119
+ * all three contexts automatically and require no extra wiring.
4120
+ *
4121
+ * The providers are intentionally hoisted above the slot rather than built inside this component:
4122
+ * that is what lets a wholesale replacement receive the same contexts. Rendering this component
4123
+ * outside those providers throws at runtime.
4124
+ *
4125
+ * Slots render only in the fully rendered dialog: not while the dialog context reports loading,
4126
+ * and not while the stale-filters confirmation step is shown.
4127
+ *
4124
4128
  * @alpha
4125
4129
  */
4126
- export declare function DefaultScheduledEmailDialog(props: IScheduledEmailDialogProps): JSX.Element;
4130
+ export declare function DefaultScheduledEmailDialog(props: IDefaultScheduledEmailDialogProps): JSX.Element;
4127
4131
 
4128
4132
  /**
4129
4133
  * @alpha
@@ -4138,7 +4142,7 @@ export declare function DefaultSettingButton({ isVisible, isEnabled, isSaving, b
4138
4142
  /**
4139
4143
  * @alpha
4140
4144
  */
4141
- export declare function DefaultShareButton({ isVisible, onShareButtonClick }: IShareButtonProps): ReactElement | null;
4145
+ export declare function DefaultShareButton({ isVisible, isEnabled, onShareButtonClick }: IShareButtonProps): ReactElement | null;
4142
4146
 
4143
4147
  /**
4144
4148
  * @alpha
@@ -5758,6 +5762,18 @@ export declare interface IAlertingDialogContextValue {
5758
5762
  isLoading: boolean;
5759
5763
  }
5760
5764
 
5765
+ /**
5766
+ * Props of the default alerting dialog's header region (the title input row).
5767
+ *
5768
+ * @alpha
5769
+ */
5770
+ export declare interface IAlertingDialogHeaderProps extends IAutomationDialogHeaderProps {
5771
+ /**
5772
+ * Called when the header's back/close button is pressed. The default dialog closes on it.
5773
+ */
5774
+ onCancel?: () => void;
5775
+ }
5776
+
5761
5777
  /**
5762
5778
  * @alpha
5763
5779
  */
@@ -5800,20 +5816,6 @@ export declare interface IAlertingDialogProps {
5800
5816
  * @deprecated read `isLoading` from `useAlertingDialogContext()` instead. Prop will be removed.
5801
5817
  */
5802
5818
  isLoading?: boolean;
5803
- /**
5804
- * Custom content rendered as the first child of the dialog content area, above the default form.
5805
- *
5806
- * @remarks
5807
- * Use this to surface an application-specific banner or warning without replacing the whole dialog.
5808
- */
5809
- topContent?: ReactNode;
5810
- /**
5811
- * Custom content rendered as the last child of the dialog content area, below the default form.
5812
- *
5813
- * @remarks
5814
- * Use this to surface an application-specific note or disclaimer without replacing the whole dialog.
5815
- */
5816
- bottomContent?: ReactNode;
5817
5819
  /**
5818
5820
  * Callback to be called, when user closes the alert dialog.
5819
5821
  */
@@ -5844,6 +5846,19 @@ export declare interface IAlertingDialogProps {
5844
5846
  onDeleteError?: (error: GoodDataSdkError) => void;
5845
5847
  }
5846
5848
 
5849
+ /**
5850
+ * Section-level overrides of the default alerting dialog.
5851
+ *
5852
+ * @alpha
5853
+ */
5854
+ export declare interface IAlertingDialogSlots {
5855
+ /**
5856
+ * Wraps or replaces the dialog header (the title input row). Must have a stable reference
5857
+ * identity — see {@link ISlotProps}.
5858
+ */
5859
+ Header?: ComponentType<ISlotProps<AlertingDialogHeaderDefaultProps>>;
5860
+ }
5861
+
5847
5862
  /**
5848
5863
  * Sub-context for the alerting management dialog.
5849
5864
  * The connector hydrates this from dashboard state.
@@ -6082,6 +6097,38 @@ export declare interface IAttributesDropdownProps extends IDashboardAttributeFil
6082
6097
  onParameterSelect?: (ref: IdentifierRef) => void;
6083
6098
  }
6084
6099
 
6100
+ /**
6101
+ * Members shared by both automation dialogs' header regions.
6102
+ *
6103
+ * @alpha
6104
+ */
6105
+ export declare interface IAutomationDialogHeaderProps {
6106
+ /**
6107
+ * Current automation title.
6108
+ */
6109
+ title: string;
6110
+ /**
6111
+ * Placeholder shown while the title is empty.
6112
+ */
6113
+ placeholder: string;
6114
+ /**
6115
+ * Whether the secondary title row is shown.
6116
+ */
6117
+ isSecondaryTitleVisible?: boolean;
6118
+ /**
6119
+ * Secondary title text (e.g. the widget name).
6120
+ */
6121
+ secondaryTitle?: string;
6122
+ /**
6123
+ * Icon rendered before the secondary title.
6124
+ */
6125
+ secondaryTitleIcon: ReactNode;
6126
+ /**
6127
+ * Called on every title change with the new value. The dialog validates the title itself.
6128
+ */
6129
+ onChange: (value: string) => void;
6130
+ }
6131
+
6085
6132
  /**
6086
6133
  * Automation filters grouped by tab, returned by {@link selectAutomationFiltersByTab}.
6087
6134
  * @alpha
@@ -6276,6 +6323,7 @@ export declare interface IButtonBarProps {
6276
6323
  */
6277
6324
  export declare interface ICancelButtonProps {
6278
6325
  isVisible: boolean;
6326
+ isEnabled?: boolean;
6279
6327
  onCancelClick: () => void;
6280
6328
  }
6281
6329
 
@@ -12815,6 +12863,24 @@ export declare interface IDateFiltersCustomizer {
12815
12863
  withCustomProvider(provider: OptionalDateFilterComponentProvider): IDateFiltersCustomizer;
12816
12864
  }
12817
12865
 
12866
+ /**
12867
+ * Props of {@link DefaultAlertingDialog}.
12868
+ *
12869
+ * @remarks
12870
+ * Extends the shared {@link IAlertingDialogProps} with customization only the default implementation
12871
+ * supports. Slots render only in the fully rendered dialog: not while the dialog context reports
12872
+ * loading, and not while the stale-filters confirmation step is shown.
12873
+ *
12874
+ * @alpha
12875
+ */
12876
+ export declare interface IDefaultAlertingDialogProps extends IAlertingDialogProps {
12877
+ /**
12878
+ * Section-level overrides. Each slot receives `{ Default, defaultProps }` and may render its own
12879
+ * content (replace) or `<Default {...defaultProps} />` inside its own markup (wrap).
12880
+ */
12881
+ slots?: IAlertingDialogSlots;
12882
+ }
12883
+
12818
12884
  /**
12819
12885
  * @alpha
12820
12886
  */
@@ -12841,6 +12907,24 @@ export declare interface IDefaultDashboardToolbarGroupProps {
12841
12907
  children?: ReactNode;
12842
12908
  }
12843
12909
 
12910
+ /**
12911
+ * Props of {@link DefaultScheduledEmailDialog}.
12912
+ *
12913
+ * @remarks
12914
+ * Extends the shared {@link IScheduledEmailDialogProps} with customization only the default implementation
12915
+ * supports. Slots render only in the fully rendered dialog: not while the dialog context reports
12916
+ * loading, and not while the stale-filters confirmation step is shown.
12917
+ *
12918
+ * @alpha
12919
+ */
12920
+ export declare interface IDefaultScheduledEmailDialogProps extends IScheduledEmailDialogProps {
12921
+ /**
12922
+ * Section-level overrides. Each slot receives `{ Default, defaultProps }` and may render its own
12923
+ * content (replace) or `<Default {...defaultProps} />` inside its own markup (wrap).
12924
+ */
12925
+ slots?: IScheduledEmailDialogSlots;
12926
+ }
12927
+
12844
12928
  /**
12845
12929
  * This event is emitted when an attribute hierarchy is deleted.
12846
12930
  *
@@ -14307,6 +14391,7 @@ export declare interface IInsightListProps {
14307
14391
  }>) => ReactElement;
14308
14392
  selectedRef?: ObjRef;
14309
14393
  onSelect?: (insight: IInsight) => void;
14394
+ disabled?: boolean;
14310
14395
  }
14311
14396
 
14312
14397
  /**
@@ -15088,6 +15173,10 @@ export declare interface IMenuButtonProps {
15088
15173
  * Items that will be in the menu.
15089
15174
  */
15090
15175
  menuItems: ReadonlyArray<IMenuButtonItem>;
15176
+ /**
15177
+ * Indicates if the menu button is enabled.
15178
+ */
15179
+ isEnabled?: boolean;
15091
15180
  DefaultMenuButton: CustomMenuButtonComponent;
15092
15181
  }
15093
15182
 
@@ -16952,6 +17041,7 @@ export declare interface ISaveAsDialogProps {
16952
17041
  */
16953
17042
  export declare interface ISaveAsNewButtonProps {
16954
17043
  isVisible: boolean;
17044
+ isEnabled: boolean;
16955
17045
  onSaveAsNewClick: () => void;
16956
17046
  }
16957
17047
 
@@ -17122,6 +17212,22 @@ export declare interface IScheduledEmailDialogContextValue {
17122
17212
  isLoading: boolean;
17123
17213
  }
17124
17214
 
17215
+ /**
17216
+ * Props of the default scheduled email dialog's header region (the title input row).
17217
+ *
17218
+ * @alpha
17219
+ */
17220
+ export declare interface IScheduledEmailDialogHeaderProps extends IAutomationDialogHeaderProps {
17221
+ /**
17222
+ * Called on key-down inside the title input.
17223
+ */
17224
+ onTitleKeyDown: (event: KeyboardEvent_2) => void;
17225
+ /**
17226
+ * Called when the header's back button is pressed.
17227
+ */
17228
+ onBack?: () => void;
17229
+ }
17230
+
17125
17231
  /**
17126
17232
  * @alpha
17127
17233
  */
@@ -17194,20 +17300,6 @@ export declare interface IScheduledEmailDialogProps {
17194
17300
  * @deprecated read `isLoading` from `useScheduledEmailDialogContext()` instead. Prop will be removed.
17195
17301
  */
17196
17302
  isLoading?: boolean;
17197
- /**
17198
- * Custom content rendered as the first child of the dialog content area, above the default form.
17199
- *
17200
- * @remarks
17201
- * Use this to surface an application-specific banner or warning without replacing the whole dialog.
17202
- */
17203
- topContent?: ReactNode;
17204
- /**
17205
- * Custom content rendered as the last child of the dialog content area, below the default form.
17206
- *
17207
- * @remarks
17208
- * Use this to surface an application-specific note or disclaimer without replacing the whole dialog.
17209
- */
17210
- bottomContent?: ReactNode;
17211
17303
  /**
17212
17304
  * Callback to be called, when user submits the scheduled email dialog.
17213
17305
  */
@@ -17250,6 +17342,19 @@ export declare interface IScheduledEmailDialogProps {
17250
17342
  onDeleteError?: (error: GoodDataSdkError) => void;
17251
17343
  }
17252
17344
 
17345
+ /**
17346
+ * Section-level overrides of the default scheduled email dialog.
17347
+ *
17348
+ * @alpha
17349
+ */
17350
+ export declare interface IScheduledEmailDialogSlots {
17351
+ /**
17352
+ * Wraps or replaces the dialog header (the title input row). Must have a stable reference
17353
+ * identity — see {@link ISlotProps}.
17354
+ */
17355
+ Header?: ComponentType<ISlotProps<ScheduledEmailDialogHeaderDefaultProps>>;
17356
+ }
17357
+
17253
17358
  /**
17254
17359
  * Sub-context for the scheduled-email management dialog.
17255
17360
  * The connector hydrates this from dashboard state.
@@ -19140,6 +19245,7 @@ export declare function isExtendedDashboardLayoutWidget(obj: unknown): obj is Ex
19140
19245
  */
19141
19246
  export declare interface IShareButtonProps {
19142
19247
  isVisible: boolean;
19248
+ isEnabled: boolean;
19143
19249
  onShareButtonClick: () => void;
19144
19250
  }
19145
19251
 
@@ -19479,6 +19585,32 @@ export declare function isLayoutSectionPath(obj: unknown): obj is ILayoutSection
19479
19585
  */
19480
19586
  export declare function isLoadingPlaceholderWidget(obj: unknown): obj is IPlaceholderWidget;
19481
19587
 
19588
+ /**
19589
+ * Contract of a section-level slot: the default implementation and the exact props the default
19590
+ * dialog would render it with.
19591
+ *
19592
+ * The component a customer assigns to a slot is rendered as an element type, so its reference
19593
+ * identity is load-bearing: define it at module scope (or memoize it), never inline in a render
19594
+ * function — an inline definition gets a fresh identity on every render of the declaring
19595
+ * component, which unmounts and remounts the region, losing focus and transient DOM state.
19596
+ *
19597
+ * Render `<Default {...defaultProps} />` inside your own markup to wrap the region rather than
19598
+ * replace it; a slot that does not spread `defaultProps` onto `Default` loses the default
19599
+ * behavior wired through them (including the dialog's initial-focus ref).
19600
+ *
19601
+ * @alpha
19602
+ */
19603
+ export declare interface ISlotProps<TProps> {
19604
+ /**
19605
+ * The default implementation of the region.
19606
+ */
19607
+ Default: ComponentType<TProps>;
19608
+ /**
19609
+ * The exact props the default dialog would render {@link ISlotProps.Default} with.
19610
+ */
19611
+ defaultProps: TProps;
19612
+ }
19613
+
19482
19614
  /**
19483
19615
  * @internal
19484
19616
  */
@@ -20686,6 +20818,7 @@ export declare type IWrapInsightListItemWithDragComponent = ComponentType<IWrapI
20686
20818
  export declare interface IWrapInsightListItemWithDragProps {
20687
20819
  children: ReactElement;
20688
20820
  insight: IInsight;
20821
+ disabled?: boolean;
20689
20822
  onDragStart?: (item: DraggableItem) => void;
20690
20823
  }
20691
20824
 
@@ -23021,15 +23154,14 @@ export declare type SavingState = {
23021
23154
  export declare function ScheduledEmailDialog(props: IScheduledEmailDialogProps): ReactElement;
23022
23155
 
23023
23156
  /**
23024
- * Provider for {@link IScheduledEmailDialogContextValue}.
23025
- *
23026
- * Besides the connector's own use, a custom `ScheduledEmailDialogComponent` can decorate the context for
23027
- * the default dialog: read the value via {@link useScheduledEmailDialogContext}, adjust it, and
23028
- * re-provide it around `DefaultScheduledEmailDialog`.
23157
+ * The exact props the default dialog renders its header with, including the dialog's
23158
+ * initial-focus ref.
23029
23159
  *
23030
23160
  * @alpha
23031
23161
  */
23032
- export declare const ScheduledEmailDialogContextProvider: Provider<IScheduledEmailDialogContextValue | undefined>;
23162
+ export declare type ScheduledEmailDialogHeaderDefaultProps = IScheduledEmailDialogHeaderProps & {
23163
+ ref?: Ref<HTMLInputElement>;
23164
+ };
23033
23165
 
23034
23166
  /**
23035
23167
  * @internal
@@ -25454,6 +25586,20 @@ export declare const selectInvalidUrlDrillParameterWidgetWarnings: DashboardSele
25454
25586
  */
25455
25587
  export declare const selectIsAddTabButtonHidden: DashboardSelector<boolean>;
25456
25588
 
25589
+ /**
25590
+ * Returns whether AI generates the dashboard.
25591
+ *
25592
+ * @internal
25593
+ */
25594
+ export declare const selectIsAiGenerating: DashboardSelector<boolean>;
25595
+
25596
+ /**
25597
+ * Returns whether the dashboard is in AI mode.
25598
+ *
25599
+ * @internal
25600
+ */
25601
+ export declare const selectIsAiMode: DashboardSelector<boolean>;
25602
+
25457
25603
  /**
25458
25604
  * @alpha
25459
25605
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-dashboard",
3
- "version": "11.53.0-alpha.0",
3
+ "version": "11.53.0-alpha.2",
4
4
  "description": "GoodData SDK - Dashboard Component",
5
5
  "license": "LicenseRef-LICENSE",
6
6
  "author": "GoodData Corporation",
@@ -60,20 +60,20 @@
60
60
  "ts-invariant": "0.10.3",
61
61
  "tslib": "2.8.1",
62
62
  "uuid": "11.1.1",
63
- "@gooddata/sdk-backend-base": "11.53.0-alpha.0",
64
- "@gooddata/sdk-backend-spi": "11.53.0-alpha.0",
65
- "@gooddata/sdk-ui": "11.53.0-alpha.0",
66
- "@gooddata/sdk-model": "11.53.0-alpha.0",
67
- "@gooddata/sdk-ui-charts": "11.53.0-alpha.0",
68
- "@gooddata/sdk-ui-ext": "11.53.0-alpha.0",
69
- "@gooddata/sdk-ui-geo": "11.53.0-alpha.0",
70
- "@gooddata/sdk-ui-filters": "11.53.0-alpha.0",
71
- "@gooddata/sdk-ui-kit": "11.53.0-alpha.0",
72
- "@gooddata/sdk-ui-pivot": "11.53.0-alpha.0",
73
- "@gooddata/sdk-ui-semantic-search": "11.53.0-alpha.0",
74
- "@gooddata/sdk-ui-theme-provider": "11.53.0-alpha.0",
75
- "@gooddata/sdk-ui-vis-commons": "11.53.0-alpha.0",
76
- "@gooddata/util": "11.53.0-alpha.0"
63
+ "@gooddata/sdk-ui": "11.53.0-alpha.2",
64
+ "@gooddata/sdk-model": "11.53.0-alpha.2",
65
+ "@gooddata/sdk-backend-spi": "11.53.0-alpha.2",
66
+ "@gooddata/sdk-ui-charts": "11.53.0-alpha.2",
67
+ "@gooddata/sdk-ui-ext": "11.53.0-alpha.2",
68
+ "@gooddata/sdk-ui-geo": "11.53.0-alpha.2",
69
+ "@gooddata/sdk-ui-kit": "11.53.0-alpha.2",
70
+ "@gooddata/sdk-ui-pivot": "11.53.0-alpha.2",
71
+ "@gooddata/sdk-ui-semantic-search": "11.53.0-alpha.2",
72
+ "@gooddata/sdk-ui-theme-provider": "11.53.0-alpha.2",
73
+ "@gooddata/sdk-ui-vis-commons": "11.53.0-alpha.2",
74
+ "@gooddata/sdk-backend-base": "11.53.0-alpha.2",
75
+ "@gooddata/util": "11.53.0-alpha.2",
76
+ "@gooddata/sdk-ui-filters": "11.53.0-alpha.2"
77
77
  },
78
78
  "devDependencies": {
79
79
  "@microsoft/api-documenter": "^7.17.0",
@@ -119,12 +119,12 @@
119
119
  "typescript": "5.9.3",
120
120
  "vitest": "4.1.8",
121
121
  "vitest-dom": "0.1.1",
122
- "@gooddata/eslint-config": "11.53.0-alpha.0",
123
- "@gooddata/i18n-toolkit": "11.53.0-alpha.0",
124
- "@gooddata/oxlint-config": "11.53.0-alpha.0",
125
- "@gooddata/sdk-backend-mockingbird": "11.53.0-alpha.0",
126
- "@gooddata/reference-workspace": "11.53.0-alpha.0",
127
- "@gooddata/stylelint-config": "11.53.0-alpha.0"
122
+ "@gooddata/eslint-config": "11.53.0-alpha.2",
123
+ "@gooddata/oxlint-config": "11.53.0-alpha.2",
124
+ "@gooddata/reference-workspace": "11.53.0-alpha.2",
125
+ "@gooddata/stylelint-config": "11.53.0-alpha.2",
126
+ "@gooddata/sdk-backend-mockingbird": "11.53.0-alpha.2",
127
+ "@gooddata/i18n-toolkit": "11.53.0-alpha.2"
128
128
  },
129
129
  "peerDependencies": {
130
130
  "react": "^18.0.0 || ^19.0.0",