@sisense/sdk-ui 2.23.0 → 2.24.0

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 (101) hide show
  1. package/dist/ai.cjs +3 -3
  2. package/dist/ai.js +7 -7
  3. package/dist/analytics-composer/node.cjs +1 -1
  4. package/dist/analytics-composer/node.js +1172 -986
  5. package/dist/analytics-composer.cjs +1 -1
  6. package/dist/analytics-composer.js +6 -6
  7. package/dist/{dimensions-C0BmtTH2.js → dimensions-C1R5YRt-.js} +1 -1
  8. package/dist/{dimensions-2t18RSZC.cjs → dimensions-C7yXAoZs.cjs} +1 -1
  9. package/dist/{execute-query-DmAyVFF5.cjs → execute-query-0Y9Fn9Pf.cjs} +1 -1
  10. package/dist/{execute-query-CHYTupEo.js → execute-query-b9oy2Egy.js} +7 -4
  11. package/dist/{index-Dx6wvLd3.cjs → index-Ck-0gJC9.cjs} +1 -1
  12. package/dist/{index-DCAC0mJe.js → index-r66Tjiqj.js} +21 -1
  13. package/dist/index.cjs +599 -595
  14. package/dist/index.js +14631 -14441
  15. package/dist/index.umd.js +951 -947
  16. package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/use-widget-csv-download.d.ts +24 -0
  17. package/dist/packages/sdk-ui/src/domains/dashboarding/types.d.ts +20 -0
  18. package/dist/packages/sdk-ui/src/domains/visualizations/components/chart/helpers/use-translated-data-options.d.ts +12 -1
  19. package/dist/packages/sdk-ui/src/domains/widgets/components/chart-widget/use-chart-widget-csv-download.d.ts +18 -0
  20. package/dist/packages/sdk-ui/src/domains/widgets/components/custom-widget/use-custom-widget-csv-download.d.ts +15 -0
  21. package/dist/packages/sdk-ui/src/domains/widgets/components/pivot-table-widget/use-pivot-widget-csv-download.d.ts +18 -0
  22. package/dist/packages/sdk-ui/src/domains/widgets/components/tabber-buttons-widget/types.d.ts +8 -8
  23. package/dist/packages/sdk-ui/src/domains/widgets/components/widget/types.d.ts +21 -1
  24. package/dist/packages/sdk-ui/src/domains/widgets/components/widget-by-id/translate-widget-style-options/to-widget-dto-style.d.ts +11 -2
  25. package/dist/packages/sdk-ui/src/domains/widgets/hooks/use-csv-query-file-loader.d.ts +16 -0
  26. package/dist/packages/sdk-ui/src/domains/widgets/hooks/use-with-csv-download-menu-item.d.ts +22 -0
  27. package/dist/packages/sdk-ui/src/domains/widgets/shared/widget-header/widget-menu-button.d.ts +1 -1
  28. package/dist/packages/sdk-ui/src/infra/app/client-application.d.ts +2 -2
  29. package/dist/packages/sdk-ui/src/infra/contexts/custom-widgets-provider/custom-widgets-provider-adapter.d.ts +2 -1
  30. package/dist/packages/sdk-ui/src/infra/contexts/custom-widgets-provider/use-custom-widgets.d.ts +11 -4
  31. package/dist/packages/sdk-ui/src/infra/plugins/custom-plugin-context-provider.d.ts +18 -0
  32. package/dist/packages/sdk-ui/src/infra/plugins/plugin-context.d.ts +29 -0
  33. package/dist/packages/sdk-ui/src/infra/{contexts/plugin-provider → plugins}/plugin-provider.d.ts +4 -2
  34. package/dist/packages/sdk-ui/src/infra/{contexts/plugin-provider → plugins}/types.d.ts +12 -4
  35. package/dist/packages/sdk-ui/src/infra/plugins/use-widget-plugin-registry.d.ts +7 -0
  36. package/dist/packages/sdk-ui/src/infra/{contexts/plugin-provider → plugins}/validate-plugins.d.ts +1 -1
  37. package/dist/packages/sdk-ui/src/infra/plugins/widget-plugins/types.d.ts +302 -0
  38. package/dist/packages/sdk-ui/src/infra/plugins/widget-plugins/widget-plugin-registry.d.ts +33 -0
  39. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/de-de.d.ts +20 -0
  40. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/en-us.d.ts +20 -0
  41. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/es-ar.d.ts +20 -0
  42. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/es-es.d.ts +20 -0
  43. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/fr-fr.d.ts +20 -0
  44. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/it-it.d.ts +20 -0
  45. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/ja-jp.d.ts +20 -0
  46. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/ko-kr.d.ts +20 -0
  47. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/nl-nl.d.ts +20 -0
  48. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/pt-br.d.ts +20 -0
  49. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/ru-ru.d.ts +20 -0
  50. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/tr-tr.d.ts +20 -0
  51. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/zh-cn.d.ts +20 -0
  52. package/dist/packages/sdk-ui/src/infra/translation/resources/en.d.ts +20 -0
  53. package/dist/packages/sdk-ui/src/infra/translation/resources/index.d.ts +40 -0
  54. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/shared/expression/custom-formula/validate-custom-formula.d.ts +15 -3
  55. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/shared/expression/formula-function-schemas.d.ts +22 -6
  56. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/shared/utils/parse-compose-code.d.ts +19 -0
  57. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/shared/utils/schema-index.d.ts +5 -2
  58. package/dist/packages/sdk-ui/src/props.d.ts +19 -1
  59. package/dist/packages/sdk-ui/src/public-api/internal.d.ts +2 -0
  60. package/dist/packages/sdk-ui/src/public-api/public.d.ts +1 -1
  61. package/dist/packages/sdk-ui/src/public-api/sisense-internal.d.ts +2 -0
  62. package/dist/packages/sdk-ui/src/shared/const.d.ts +5 -0
  63. package/dist/packages/sdk-ui/src/shared/types/menu-item.d.ts +5 -1
  64. package/dist/packages/sdk-ui/src/shared/utils/menu-item-converters.d.ts +12 -0
  65. package/dist/{quota-notification-RAaHp-eO.cjs → quota-notification-BqRYSJ7r.cjs} +137 -137
  66. package/dist/{quota-notification-CVl0isIV.js → quota-notification-CeKnEyQG.js} +11248 -11000
  67. package/dist/translations/de-de.cjs +1 -1
  68. package/dist/translations/de-de.js +22 -2
  69. package/dist/translations/en-us.cjs +1 -1
  70. package/dist/translations/en-us.js +1 -1
  71. package/dist/translations/es-ar.cjs +1 -1
  72. package/dist/translations/es-ar.js +22 -2
  73. package/dist/translations/es-es.cjs +1 -1
  74. package/dist/translations/es-es.js +22 -2
  75. package/dist/translations/fr-fr.cjs +1 -1
  76. package/dist/translations/fr-fr.js +22 -2
  77. package/dist/translations/it-it.cjs +1 -1
  78. package/dist/translations/it-it.js +24 -4
  79. package/dist/translations/ja-jp.cjs +1 -1
  80. package/dist/translations/ja-jp.js +24 -4
  81. package/dist/translations/ko-kr.cjs +1 -1
  82. package/dist/translations/ko-kr.js +24 -4
  83. package/dist/translations/nl-nl.cjs +1 -1
  84. package/dist/translations/nl-nl.js +24 -4
  85. package/dist/translations/pt-br.cjs +1 -1
  86. package/dist/translations/pt-br.js +22 -2
  87. package/dist/translations/ru-ru.cjs +1 -1
  88. package/dist/translations/ru-ru.js +24 -4
  89. package/dist/translations/tr-tr.cjs +1 -1
  90. package/dist/translations/tr-tr.js +22 -2
  91. package/dist/translations/zh-cn.cjs +1 -1
  92. package/dist/translations/zh-cn.js +24 -4
  93. package/dist/{types-DZ4vWh8j.cjs → types-C0QU2tsE.cjs} +1 -1
  94. package/dist/{types-B96nVbgX.js → types-DJtC8_5_.js} +1 -1
  95. package/dist/{utils-ChqSLRbz.js → utils-BCp2ISWh.js} +208 -204
  96. package/dist/{utils-CgV-jWWQ.cjs → utils-D8O1_kl3.cjs} +16 -16
  97. package/dist/{widget-composer-Blul90Zb.cjs → widget-composer-BkHZISs7.cjs} +1 -1
  98. package/dist/{widget-composer-Cf_CN3Ux.js → widget-composer-CDNL9_XF.js} +3 -3
  99. package/package.json +8 -8
  100. package/dist/packages/sdk-ui/src/infra/contexts/plugin-provider/index.d.ts +0 -5
  101. package/dist/packages/sdk-ui/src/infra/contexts/plugin-provider/plugin-context.d.ts +0 -15
@@ -223,6 +223,8 @@ declare const _default: {
223
223
  deleteWidget: string;
224
224
  renameWidget: string;
225
225
  distributeEqualWidth: string;
226
+ download: string;
227
+ csvFile: string;
226
228
  };
227
229
  };
228
230
  customWidgets: {
@@ -407,6 +409,24 @@ declare const _default: {
407
409
  lockGroup: string;
408
410
  unlockGroup: string;
409
411
  };
412
+ toggleSwitch: string;
413
+ };
414
+ chart: {
415
+ indicator: {
416
+ label: string;
417
+ };
418
+ visualization: {
419
+ label: string;
420
+ };
421
+ pivotTable: {
422
+ label: string;
423
+ };
424
+ table: {
425
+ label: string;
426
+ };
427
+ };
428
+ loadingOverlay: {
429
+ label: string;
410
430
  };
411
431
  measures: {
412
432
  countShort: string;
@@ -223,6 +223,8 @@ declare const _default: {
223
223
  deleteWidget: string;
224
224
  renameWidget: string;
225
225
  distributeEqualWidth: string;
226
+ download: string;
227
+ csvFile: string;
226
228
  };
227
229
  };
228
230
  customWidgets: {
@@ -407,6 +409,24 @@ declare const _default: {
407
409
  lockGroup: string;
408
410
  unlockGroup: string;
409
411
  };
412
+ toggleSwitch: string;
413
+ };
414
+ chart: {
415
+ indicator: {
416
+ label: string;
417
+ };
418
+ visualization: {
419
+ label: string;
420
+ };
421
+ pivotTable: {
422
+ label: string;
423
+ };
424
+ table: {
425
+ label: string;
426
+ };
427
+ };
428
+ loadingOverlay: {
429
+ label: string;
410
430
  };
411
431
  measures: {
412
432
  countShort: string;
@@ -223,6 +223,8 @@ declare const _default: {
223
223
  deleteWidget: string;
224
224
  renameWidget: string;
225
225
  distributeEqualWidth: string;
226
+ download: string;
227
+ csvFile: string;
226
228
  };
227
229
  };
228
230
  customWidgets: {
@@ -407,6 +409,24 @@ declare const _default: {
407
409
  lockGroup: string;
408
410
  unlockGroup: string;
409
411
  };
412
+ toggleSwitch: string;
413
+ };
414
+ chart: {
415
+ indicator: {
416
+ label: string;
417
+ };
418
+ visualization: {
419
+ label: string;
420
+ };
421
+ pivotTable: {
422
+ label: string;
423
+ };
424
+ table: {
425
+ label: string;
426
+ };
427
+ };
428
+ loadingOverlay: {
429
+ label: string;
410
430
  };
411
431
  measures: {
412
432
  countShort: string;
@@ -220,6 +220,8 @@ export declare const translation: {
220
220
  deleteWidget: string;
221
221
  renameWidget: string;
222
222
  distributeEqualWidth: string;
223
+ download: string;
224
+ csvFile: string;
223
225
  };
224
226
  };
225
227
  customWidgets: {
@@ -404,6 +406,24 @@ export declare const translation: {
404
406
  lockGroup: string;
405
407
  unlockGroup: string;
406
408
  };
409
+ toggleSwitch: string;
410
+ };
411
+ chart: {
412
+ indicator: {
413
+ label: string;
414
+ };
415
+ visualization: {
416
+ label: string;
417
+ };
418
+ pivotTable: {
419
+ label: string;
420
+ };
421
+ table: {
422
+ label: string;
423
+ };
424
+ };
425
+ loadingOverlay: {
426
+ label: string;
407
427
  };
408
428
  measures: {
409
429
  countShort: string;
@@ -230,6 +230,8 @@ export declare const resources: {
230
230
  deleteWidget: string;
231
231
  renameWidget: string;
232
232
  distributeEqualWidth: string;
233
+ download: string;
234
+ csvFile: string;
233
235
  };
234
236
  };
235
237
  customWidgets: {
@@ -414,6 +416,24 @@ export declare const resources: {
414
416
  lockGroup: string;
415
417
  unlockGroup: string;
416
418
  };
419
+ toggleSwitch: string;
420
+ };
421
+ chart: {
422
+ indicator: {
423
+ label: string;
424
+ };
425
+ visualization: {
426
+ label: string;
427
+ };
428
+ pivotTable: {
429
+ label: string;
430
+ };
431
+ table: {
432
+ label: string;
433
+ };
434
+ };
435
+ loadingOverlay: {
436
+ label: string;
417
437
  };
418
438
  measures: {
419
439
  countShort: string;
@@ -650,6 +670,8 @@ export declare const resources: {
650
670
  deleteWidget: string;
651
671
  renameWidget: string;
652
672
  distributeEqualWidth: string;
673
+ download: string;
674
+ csvFile: string;
653
675
  };
654
676
  };
655
677
  customWidgets: {
@@ -834,6 +856,24 @@ export declare const resources: {
834
856
  lockGroup: string;
835
857
  unlockGroup: string;
836
858
  };
859
+ toggleSwitch: string;
860
+ };
861
+ chart: {
862
+ indicator: {
863
+ label: string;
864
+ };
865
+ visualization: {
866
+ label: string;
867
+ };
868
+ pivotTable: {
869
+ label: string;
870
+ };
871
+ table: {
872
+ label: string;
873
+ };
874
+ };
875
+ loadingOverlay: {
876
+ label: string;
837
877
  };
838
878
  measures: {
839
879
  countShort: string;
@@ -15,7 +15,7 @@ export interface FormulaValidationOptions {
15
15
  allowEmptyFormula?: boolean;
16
16
  /** Custom error message prefix for better context */
17
17
  errorPrefix?: string;
18
- /** When provided, time-diff args are validated as datetime dimensions and level-matched */
18
+ /** When provided, xdiff args are validated as datetime dimensions and level-matched */
19
19
  schemaIndex?: SchemaIndex;
20
20
  }
21
21
  export interface TimeDiffCall {
@@ -24,10 +24,22 @@ export interface TimeDiffCall {
24
24
  ref2: string;
25
25
  }
26
26
  /**
27
- * Extracts time-diff (or other two-arg bracket) calls from a formula string.
27
+ * Extracts xdiff (or other two-arg bracket) calls from a formula string.
28
28
  * Matches FUNC([ref1], [ref2]) for each function name in the set (case-insensitive).
29
29
  */
30
- export declare function parseTimeDiffCalls(formula: string, functionNames: readonly string[]): TimeDiffCall[];
30
+ export declare function parseXDiffCalls(formula: string, functionNames: readonly string[]): TimeDiffCall[];
31
+ export interface FormulaParenCall {
32
+ readonly name: string;
33
+ readonly argCount: number;
34
+ }
35
+ /**
36
+ * Finds all `IDENT(` calls in a formula, outside quoted strings, with comma-separated arg counts
37
+ * (nesting-aware, same rules as {@link splitAtDepthZero}). Recurses into argument lists so nested
38
+ * calls (e.g. `SUM(MAX([a]))`) are included.
39
+ *
40
+ * @internal Exported for unit tests
41
+ */
42
+ export declare function extractParenFunctionCalls(formula: string): FormulaParenCall[];
31
43
  /**
32
44
  * Validates that all bracket references in a custom formula exist in the provided context
33
45
  * and provides helpful error messages for debugging.
@@ -1,25 +1,41 @@
1
1
  /** Category of formula function for validation and translation. */
2
- export type FormulaFunctionCategory = 'time-diff' | 'aggregative' | 'math' | 'growth' | 'date';
2
+ export type FormulaFunctionCategory = 'xdiff' | 'aggregative' | 'math' | 'growth' | 'date' | 'window' | 'string' | 'scalar';
3
3
  /** Metadata for a formula function (e.g. DDIFF, SUM). */
4
4
  export interface FormulaFunctionMeta {
5
5
  category: FormulaFunctionCategory;
6
- argCount: number;
7
- /** Required date level for time-diff functions (e.g. DateLevels.Days for DDIFF). */
6
+ /** Inclusive minimum number of parenthesized arguments. */
7
+ minArgs: number;
8
+ /** Inclusive maximum number of parenthesized arguments; use Infinity for unbounded (e.g. concat). */
9
+ maxArgs: number;
10
+ /** Required date level for xdiff functions (e.g. DateLevels.Days for DDIFF). */
8
11
  requiredDateLevel?: string;
9
12
  /** Argument type constraint; 'datetime' means args must be datetime dimensions. */
10
13
  argType?: 'datetime';
11
14
  }
15
+ /**
16
+ * Formula functions explicitly not supported in custom formulas (engine may expose them elsewhere).
17
+ * Keys are uppercase for lookup.
18
+ */
19
+ export declare const UNSUPPORTED_FORMULA_FUNCTIONS: ReadonlySet<string>;
12
20
  /** Registry keyed by formula function name (uppercase). */
13
21
  export declare const FORMULA_FUNCTION_SCHEMAS: Record<string, FormulaFunctionMeta>;
14
22
  /**
15
- * Returns formula function names that are time-diff (SDIFF, MNDIFF, HDIFF, DDIFF, MDIFF, QDIFF, YDIFF).
23
+ * Returns inclusive arg bounds for a known formula function, or undefined if not in the registry.
24
+ */
25
+ export declare function getFormulaFunctionArgBounds(formulaFunctionName: string): Pick<FormulaFunctionMeta, 'minArgs' | 'maxArgs'> | undefined;
26
+ /**
27
+ * Returns formula function names that are xdiff (SDIFF, MNDIFF, HDIFF, DDIFF, MDIFF, QDIFF, YDIFF).
16
28
  */
17
- export declare function getTimeDiffFormulaFunctions(): readonly string[];
29
+ export declare function getXDiffFormulaFunctions(): readonly string[];
18
30
  /**
19
- * Returns the required date level for a time-diff function, or undefined if not a time-diff function.
31
+ * Returns the required date level for an xdiff function, or undefined if not an xdiff function.
20
32
  */
21
33
  export declare function getRequiredDateLevel(formulaFunctionName: string): string | undefined;
22
34
  /**
23
35
  * Returns formula function names for a given category.
24
36
  */
25
37
  export declare function getFormulaFunctionsByCategory(category: FormulaFunctionCategory): readonly string[];
38
+ /**
39
+ * Human-readable arity text for validation errors (e.g. "1 or 2 parameters", "at least 2 parameters").
40
+ */
41
+ export declare function formatFormulaFunctionArityMessage(minArgs: number, maxArgs: number): string;
@@ -1,4 +1,23 @@
1
1
  import { FunctionCall } from '../../types.js';
2
+ /**
3
+ * Splits a string by a delimiter, respecting nested structures and strings.
4
+ * Does not split inside parentheses, brackets, braces, or quoted strings.
5
+ *
6
+ * @param str - The string to split
7
+ * @param delimiter - Character to split on (e.g. ',' or ':')
8
+ * @returns Array of trimmed segments
9
+ * @internal
10
+ */
11
+ export declare function splitAtDepthZero(str: string, delimiter: string): string[];
12
+ /**
13
+ * Index of the `)` that closes the `(` at `openParenIndex`, or -1 if unbalanced.
14
+ * Respects strings and nesting of `()`, `[]`, `{}` (same rules as {@link splitAtDepthZero}).
15
+ *
16
+ * @param str - Full source string
17
+ * @param openParenIndex - Index of the opening `(`
18
+ * @internal
19
+ */
20
+ export declare function findMatchingCloseParen(str: string, openParenIndex: number): number;
2
21
  /**
3
22
  * Parses a composeCode string to FunctionCall format.
4
23
  *
@@ -28,7 +28,10 @@ export interface SchemaIndex {
28
28
  */
29
29
  export declare function createSchemaIndex(tables: NormalizedTable[]): SchemaIndex;
30
30
  /**
31
- * Parses a dimensional name using schema-aware greedy matching to handle dots in table/column names
31
+ * Parses a dimensional name using schema-aware greedy matching to handle dots in table/column names.
32
+ * Table and column segments are matched case-insensitively against the schema; returned table/column
33
+ * objects keep canonical names and expressions. Date level suffixes are case-sensitive.
34
+ * If two tables share the same name ignoring case, the first match in {@link SchemaIndex.sortedTables} wins.
32
35
  *
33
36
  * @param dimensionalName - The dimensional name (e.g., "DM.Brand.io.Brand" or "DM.Commerce.Date.Years")
34
37
  * @param schemaIndex - The schema index for efficient matching
@@ -42,7 +45,7 @@ export declare function parseDimensionalName(dimensionalName: string, schemaInde
42
45
  };
43
46
  /** Options for {@link createAttributeFromName} when translating custom formula context. */
44
47
  export interface CreateAttributeFromNameOptions {
45
- /** When the dimensional name has no date level, use this level for datetime columns (e.g. from time-diff function). */
48
+ /** When the dimensional name has no date level, use this level for datetime columns (e.g. from xdiff function). */
46
49
  inferredDateLevel?: string;
47
50
  }
48
51
  export declare function createAttributeFromName(attributeName: string, dataSource: JaqlDataSourceForDto, schemaIndex: SchemaIndex, options?: CreateAttributeFromNameOptions): import("@sisense/sdk-data").Attribute | import("@sisense/sdk-data").LevelAttribute;
@@ -9,7 +9,7 @@ import { HighchartsOptions } from './domains/visualizations/core/chart-options-p
9
9
  import type { ChartWidgetProps } from './domains/widgets/components/chart-widget/types';
10
10
  import { FiltersMergeStrategy } from './domains/widgets/components/widget-by-id/types';
11
11
  import { type AppConfig } from './infra/app/types';
12
- import type { Plugin } from './infra/contexts/plugin-provider/types';
12
+ import type { Plugin } from './infra/plugins/types';
13
13
  import { AreamapDataPoint, AreamapStyleOptions, AreaRangeStyleOptions, AreaStyleOptions, BoxplotDataPoint, BoxplotStyleOptions, CalendarHeatmapDataPoint, CalendarHeatmapStyleOptions, CartesianChartDataOptions, CategoricalChartDataOptions, ChartDataOptions, ChartDataPoints, ChartStyleOptions, ChartType, CustomDrilldownResult, DataPoint, DrilldownOptions, DrilldownSelection, FunnelStyleOptions, IndicatorDataPoint, IndicatorRenderOptions, IndicatorStyleOptions, LineStyleOptions, MenuAlignment, MenuItemSection, MenuPosition, PieStyleOptions, PivotTableDataPoint, PivotTableDrilldownOptions, PivotTableStyleOptions, PolarStyleOptions, RegularChartStyleOptions, RegularChartType, ScatterDataPoint, ScattermapDataPoint, ScattermapStyleOptions, ScatterStyleOptions, StackableStyleOptions, StreamgraphStyleOptions, SunburstStyleOptions, TableStyleOptions, TabularChartStyleOptions, TextWidgetDataPoint, ThemeConfig, ThemeOid, ThemeSettings, TreemapStyleOptions, WidgetByIdStyleOptions } from './types';
14
14
  export type { TabberButtonsWidgetProps } from './domains/widgets/components/tabber-buttons-widget/types';
15
15
  export type { WidgetProps, WidgetType, WithCommonWidgetProps, } from './domains/widgets/components/widget/types';
@@ -126,6 +126,24 @@ export interface SisenseContextProviderProps {
126
126
  * @internal
127
127
  */
128
128
  alternativeSsoHost?: string;
129
+ /**
130
+ * Maximum number of SSO redirect attempts before stopping.
131
+ * Prevents infinite refresh loops when auth cookies fail to land (e.g. third-party
132
+ * cookie restrictions, SSO configuration issues, browser privacy settings).
133
+ * Redirect attempts are tracked in localStorage per Sisense URL and reset on successful auth.
134
+ * If not specified, the default value is `3`.
135
+ *
136
+ * @category Sisense Authentication
137
+ * @alpha
138
+ */
139
+ ssoMaxAuthRedirectAttempts?: number;
140
+ /**
141
+ * Milliseconds after the latest redirect timestamp before the counter resets. Use `0` to disable expiry (counter only resets on successful auth). Default is `5000` (5 seconds).
142
+ *
143
+ * @category Sisense Authentication
144
+ * @alpha
145
+ */
146
+ ssoRedirectAttemptsTtlMs?: number;
129
147
  /**
130
148
  * Boolean flag to use the default palette from Compose SDK.
131
149
  * Set to true in case of WAT authentication causing errors for the `/api/palettes` endpoint on older versions of Fusion (pre 2024.3)
@@ -20,6 +20,8 @@ export { processDrilldownSelections } from '../domains/drilldown/hooks/use-drill
20
20
  export { CommonWidget, type CommonWidgetProps } from '../domains/widgets/components/common-widget';
21
21
  export { TableWidget, type TableWidgetProps } from '../domains/widgets/components/table-widget';
22
22
  export { CustomWidgetsProviderAdapter, type CustomWidgetsContextAdapter, type CustomWidgetsProviderAdapterProps, } from '../infra/contexts/custom-widgets-provider/custom-widgets-provider-adapter';
23
+ export { CustomPluginContextProvider } from '../infra/plugins/custom-plugin-context-provider.js';
24
+ export type { CustomPluginContextProviderProps, CustomPluginContextProviderContext, } from '../infra/plugins/custom-plugin-context-provider.js';
23
25
  export { useGetSharedFormulaInternal } from '../domains/formulas/use-get-shared-formula';
24
26
  export { translateColumnToAttribute } from '../domains/visualizations/core/chart-data-options/utils';
25
27
  export { isSameAttribute } from '../shared/utils/filters';
@@ -49,7 +49,7 @@ export { type CustomWidgetProps } from '../domains/widgets/components/custom-wid
49
49
  export { TabberButtonsWidget } from '../domains/widgets/components/tabber-buttons-widget';
50
50
  export { DrilldownBreadcrumbs } from '../domains/drilldown/components/drilldown-breadcrumbs';
51
51
  export * from '../infra/contexts/custom-widgets-provider/types';
52
- export { useCustomWidgets } from '../infra/contexts/custom-widgets-provider';
52
+ export { useCustomWidgets, type UseCustomWidgetsResult, } from '../infra/contexts/custom-widgets-provider';
53
53
  export { useGetDashboardModel, useGetDashboardModels, useDashboardModel, type DashboardModel, type GetDashboardModelParams, type GetDashboardModelsParams, type DashboardModelState, type DashboardModelLoadingState, type DashboardModelSuccessState, type DashboardModelErrorState, type DashboardModelsState, type DashboardModelsLoadingState, type DashboardModelsSuccessState, type DashboardModelsErrorState, type GetDashboardModelOptions, type GetDashboardModelsOptions, type WidgetsPanelColumnLayout, type WidgetsPanelLayout, type WidgetsPanelColumn, type WidgetsPanelRow, type WidgetsPanelCell, type WidgetId, type DashboardId, type WidgetsOptions, type SpecificWidgetOptions, type CommonFiltersOptions, type CommonFiltersApplyMode, type FiltersIgnoringRules, } from '../domains/dashboarding/dashboard-model';
54
54
  export { useGetWidgetModel, type WidgetModel, type WidgetDataOptions, type WidgetModelState, type WidgetModelLoadingState, type WidgetModelErrorState, type WidgetModelSuccessState, type GetWidgetModelParams, } from '../domains/widgets/widget-model';
55
55
  export { useGetHierarchyModels, type HierarchyModel, type Hierarchy, type HierarchyId, type GetHierarchyModelsParams, type HierarchyModelsState, type HierarchyModelsLoadingState, type HierarchyModelsErrorState, type HierarchyModelsSuccessState, } from '../domains/drilldown/hierarchy-model';
@@ -20,6 +20,8 @@ export { QuotaNotification } from '../shared/components/quota-notification/quota
20
20
  export type { QuotaNotificationProps } from '../shared/components/quota-notification/quota-notification.js';
21
21
  export { useQuotaNotification } from '../shared/hooks/use-quota-notification.js';
22
22
  export type { QuotaNotificationOptions, QuotaApiResponse, QuotaState, } from '../shared/hooks/use-quota-notification.js';
23
+ export type { Plugin } from '../infra/plugins/types.js';
24
+ export type { WidgetPlugin, CustomVisualization, CustomVisualizationProps, CustomVisualizationStyleOptions, CustomVisualizationEventProps, CustomVisualizationDataPoint, CustomVisualizationDataPointEventHandler, CustomVisualizationDataPointContextMenuHandler, CustomVisualizationDataPointsEventHandler, DesignPanelProps, DesignPanel, } from '../infra/plugins/widget-plugins/types.js';
23
25
  export { LoadingIndicator } from '../shared/components/loading-indicator.js';
24
26
  export { DataSchemaBrowser } from '../domains/data-browser/data-schema-browser/data-schema-browser.js';
25
27
  export type { NlqChartWidgetStyleOptions } from '../types';
@@ -5,3 +5,8 @@ export declare const DEFAULT_BACKGROUND_COLOR = "#F4F4F8";
5
5
  export declare const ERROR_COLOR = "#FA5656";
6
6
  export declare const NOT_AVAILABLE_DATA_VALUE = "N\\A";
7
7
  export declare const NOT_AVAILABLE_TEXT = "N/A";
8
+ /** WCAG 2.5.8 Target Size (Minimum) — minimum 24×24 CSS pixels for interactive controls. */
9
+ export declare const MIN_TOUCH_TARGET_SIZE: {
10
+ readonly minWidth: "24px";
11
+ readonly minHeight: "24px";
12
+ };
@@ -10,8 +10,12 @@ export type MenuItem = {
10
10
  * Caption of the menu item
11
11
  */
12
12
  caption: string;
13
+ /**
14
+ * Sub items of the menu item
15
+ */
16
+ items?: MenuItem[];
13
17
  /**
14
18
  * Handler function to be called when the menu item is clicked
15
19
  */
16
- onClick: () => void;
20
+ onClick?: () => void;
17
21
  };
@@ -0,0 +1,12 @@
1
+ import type { MenuItemSection } from '../../types';
2
+ import type { MenuItem } from '../types/menu-item.js';
3
+ type SectionItem = NonNullable<MenuItemSection['items']>[number];
4
+ /**
5
+ * Recursively converts a {@link MenuItem} into
6
+ * the item within the `MenuItemSection` expected by the context-menu infrastructure.
7
+ *
8
+ * @param menuItem - The menu item to convert.
9
+ * @returns The equivalent context-menu section item.
10
+ */
11
+ export declare function convertMenuItemToLegacySectionItem(menuItem: MenuItem): SectionItem;
12
+ export {};