@gooddata/sdk-ui-theme-provider 11.63.0-alpha.1 → 11.63.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.
- package/esm/cssProperties.d.ts.map +1 -1
- package/esm/cssProperties.js +2 -0
- package/esm/documentsTheme.d.ts +14 -0
- package/esm/documentsTheme.d.ts.map +1 -0
- package/esm/documentsTheme.js +180 -0
- package/esm/index.d.ts +1 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -0
- package/esm/sdk-ui-theme-provider.d.ts +7 -0
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cssProperties.d.ts","sourceRoot":"","sources":["../src/cssProperties.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,MAAM,EAGX,KAAK,aAAa,EAErB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"cssProperties.d.ts","sourceRoot":"","sources":["../src/cssProperties.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,MAAM,EAGX,KAAK,aAAa,EAErB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,kBAAkB,CAAC;AAuEpE,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMjD;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAAC;CACpG,CAAC;AAsBF;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAK7D;AA0GD;;GAEG;AACH,wBAAgB,yBAAyB,CACrC,MAAM,EAAE,MAAM,EACd,eAAe,GAAE,cAAc,EAAO,EACtC,UAAU,SAAS,EACnB,QAAQ,CAAC,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE,WAAW,EACrB,OAAO,CAAC,EAAE,MAAM,GACjB,WAAW,EAAE,CA2Bf;AAeD,eAAO,MAAM,mBAAmB,YAAa,aAAa,eAAe,OAAO,KAAG,WAAW,EAa7F,CAAC;AAEF,eAAO,MAAM,kBAAkB,cAAe,OAAO,YAAY,WAAW,YAAY,MAAM,KAAG,IAyBhG,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAC5B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,OAAO,EACpB,QAAQ,GAAE,OAAe,EACzB,OAAO,CAAC,EAAE,WAAW,EACrB,OAAO,CAAC,EAAE,MAAM,GACjB,IAAI,CA0DN"}
|
package/esm/cssProperties.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { transparentize } from "polished";
|
|
3
3
|
import { getCssProperty } from "./cssProperty.js";
|
|
4
4
|
import { generateDerivedColors } from "./derivedColors.js";
|
|
5
|
+
import { documentsThemeCssValues } from "./documentsTheme.js";
|
|
5
6
|
import { themeDefinedCssVariables } from "./variablesSpec/allThemeCssVariables.js";
|
|
6
7
|
import { inconsistentVariables } from "./variablesSpec/inconsistent/inconsistent.js";
|
|
7
8
|
// keep it in sync with SCSS:$gd-color-text-light
|
|
@@ -179,6 +180,7 @@ const customParserFunctions = [
|
|
|
179
180
|
{ key: "--gd-reports-textStyle-typography-fonts", fn: () => "" },
|
|
180
181
|
// Inline colors become indexed variables; a palette reference is resolved by the application.
|
|
181
182
|
{ key: "--gd-reports-visualizationPalette", fn: (value) => (Array.isArray(value) ? value : "") },
|
|
183
|
+
{ key: "--gd-documents", fn: documentsThemeCssValues },
|
|
182
184
|
...reportLengthParserFunctions,
|
|
183
185
|
];
|
|
184
186
|
/**
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type ITheme } from "@gooddata/sdk-model";
|
|
2
|
+
/**
|
|
3
|
+
* The theme's documents section as the values of its CSS variables.
|
|
4
|
+
*
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
export declare function documentsThemeCssValues(documents: unknown): object | "";
|
|
8
|
+
/**
|
|
9
|
+
* The paths in the documents section where a length is written with a unit, which documents ignore.
|
|
10
|
+
*
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export declare function findDocumentLengthsWithUnits(theme: ITheme | undefined): string[];
|
|
14
|
+
//# sourceMappingURL=documentsTheme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documentsTheme.d.ts","sourceRoot":"","sources":["../src/documentsTheme.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAoC,MAAM,qBAAqB,CAAC;AAoJpF;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,EAAE,CA6BvE;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAmBhF"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
import { getPublisherThemeReferencePathV2 } from "@gooddata/sdk-model";
|
|
3
|
+
// Document lengths are px on the page canvas, emitted bare for the renderer to scale. A value that
|
|
4
|
+
// starts like a number without being one carries a unit, which documents do not accept.
|
|
5
|
+
const NUMBER = /^[+-]?(\d+(\.\d+)?|\.\d+)$/;
|
|
6
|
+
const NUMBER_START = /^[+-]?\.?\d/;
|
|
7
|
+
// Keys and color ids become parts of variable names; the grammar is the v2 validator's theme name.
|
|
8
|
+
const NAME = /^[A-Za-z0-9_-]+$/;
|
|
9
|
+
// Only values of these shapes are emitted: anything else could end the declaration, or the rule holding
|
|
10
|
+
// every theme variable. Theme references and font families are checked on their own.
|
|
11
|
+
const HEX_COLOR = /^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/;
|
|
12
|
+
const RGB_COLOR = /^rgb\(\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*\d{1,3}\s*(?:,\s*(?:\d+(?:\.\d+)?|\.\d+)\s*)?\)$/;
|
|
13
|
+
const KEYWORD = /^[a-zA-Z][a-zA-Z0-9-]*$/;
|
|
14
|
+
const PLAIN_VALUES = [NUMBER, HEX_COLOR, RGB_COLOR, KEYWORD];
|
|
15
|
+
// A quoted name holds no backslash or line break, so each quote closes where it appears to.
|
|
16
|
+
const FONT_FAMILY_NAME = String.raw `(?:"[^"\\\n\r\f]*"|'[^'\\\n\r\f]*'|[\p{L}\p{N}_ -]+)`;
|
|
17
|
+
const FONT_FAMILY = new RegExp(String.raw `^${FONT_FAMILY_NAME}(?:\s*,\s*${FONT_FAMILY_NAME})*$`, "u");
|
|
18
|
+
const COLOR_LISTS = ["backgrounds", "texts", "lines"];
|
|
19
|
+
// The renderer resolves these even when the theme leaves them out.
|
|
20
|
+
const BUILT_IN_COLOR_IDS = {
|
|
21
|
+
backgrounds: ["default", "surface", "inverse", "accent"],
|
|
22
|
+
texts: ["default", "muted", "inverse", "accent"],
|
|
23
|
+
lines: ["default", "accent"],
|
|
24
|
+
};
|
|
25
|
+
const PALETTE_NAMES = ["primary", "success", "error", "warning"];
|
|
26
|
+
const SPACING_KINDS = ["gap", "padding"];
|
|
27
|
+
const SPACING_STEPS = ["compact", "normal", "spacious"];
|
|
28
|
+
// `full` is built in: the renderer resolves it and the theme never sets it.
|
|
29
|
+
const CORNER_STEPS = ["small", "medium", "large", "full"];
|
|
30
|
+
// Images are resolved by the application from the theme object, like the font files.
|
|
31
|
+
const IMAGE_KEYS = ["backgroundImage"];
|
|
32
|
+
// Never lengths: ids, palette references and font faces would only raise false warnings.
|
|
33
|
+
const NOT_LENGTH_KEYS = ["id", "visualizationPalette", "fonts", ...IMAGE_KEYS];
|
|
34
|
+
function isObject(value) {
|
|
35
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
36
|
+
}
|
|
37
|
+
function isColorList(value) {
|
|
38
|
+
return COLOR_LISTS.includes(value);
|
|
39
|
+
}
|
|
40
|
+
function isLengthWithUnit(value) {
|
|
41
|
+
return NUMBER_START.test(value) && !NUMBER.test(value);
|
|
42
|
+
}
|
|
43
|
+
function themeColorIds(documents, list) {
|
|
44
|
+
const colors = isObject(documents["colors"]) ? documents["colors"][list] : undefined;
|
|
45
|
+
if (!Array.isArray(colors)) {
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
return colors.flatMap((entry) => isObject(entry) && typeof entry["id"] === "string" && NAME.test(entry["id"]) ? [entry["id"]] : []);
|
|
49
|
+
}
|
|
50
|
+
// A reference becomes the variable of the value it names, and only when that variable exists.
|
|
51
|
+
function themeReferenceCss(value, documents) {
|
|
52
|
+
const [group, name, step, ...rest] = getPublisherThemeReferencePathV2(value) ?? [];
|
|
53
|
+
if (rest.length > 0 || name === undefined) {
|
|
54
|
+
return "";
|
|
55
|
+
}
|
|
56
|
+
if (group === "palette" && step === undefined && PALETTE_NAMES.includes(name)) {
|
|
57
|
+
return `var(--gd-palette-${name}-base)`;
|
|
58
|
+
}
|
|
59
|
+
if (group === "colors" &&
|
|
60
|
+
isColorList(name) &&
|
|
61
|
+
step !== undefined &&
|
|
62
|
+
(BUILT_IN_COLOR_IDS[name].includes(step) || themeColorIds(documents, name).includes(step))) {
|
|
63
|
+
return `var(--gd-documents-colors-${name}-${step})`;
|
|
64
|
+
}
|
|
65
|
+
if (group === "spacing" &&
|
|
66
|
+
SPACING_KINDS.includes(name) &&
|
|
67
|
+
step !== undefined &&
|
|
68
|
+
SPACING_STEPS.includes(step)) {
|
|
69
|
+
return `var(--gd-documents-spacing-${name}-${step})`;
|
|
70
|
+
}
|
|
71
|
+
if (group === "corners" && step === undefined && CORNER_STEPS.includes(name)) {
|
|
72
|
+
return `var(--gd-documents-corners-${name})`;
|
|
73
|
+
}
|
|
74
|
+
return "";
|
|
75
|
+
}
|
|
76
|
+
function cssValue(value, documents) {
|
|
77
|
+
if (typeof value === "number") {
|
|
78
|
+
return Number.isFinite(value) ? `${value}` : "";
|
|
79
|
+
}
|
|
80
|
+
if (typeof value !== "string") {
|
|
81
|
+
return "";
|
|
82
|
+
}
|
|
83
|
+
const trimmed = value.trim();
|
|
84
|
+
if (trimmed.startsWith("{")) {
|
|
85
|
+
return themeReferenceCss(trimmed, documents);
|
|
86
|
+
}
|
|
87
|
+
return PLAIN_VALUES.some((pattern) => pattern.test(trimmed)) ? trimmed : "";
|
|
88
|
+
}
|
|
89
|
+
function fontFamilyCss(value) {
|
|
90
|
+
if (typeof value !== "string") {
|
|
91
|
+
return "";
|
|
92
|
+
}
|
|
93
|
+
const trimmed = value.trim();
|
|
94
|
+
return FONT_FAMILY.test(trimmed) ? trimmed : "";
|
|
95
|
+
}
|
|
96
|
+
function cssValues(value, documents) {
|
|
97
|
+
if (!isObject(value)) {
|
|
98
|
+
return cssValue(value, documents);
|
|
99
|
+
}
|
|
100
|
+
return Object.fromEntries(Object.entries(value)
|
|
101
|
+
.filter(([key]) => NAME.test(key) && !IMAGE_KEYS.includes(key))
|
|
102
|
+
.map(([key, item]) => [key, cssValues(item, documents)]));
|
|
103
|
+
}
|
|
104
|
+
// Content refers to a color by its id, so each list is emitted by id; the first entry of an id wins.
|
|
105
|
+
function colorsById(list, documents) {
|
|
106
|
+
const byId = {};
|
|
107
|
+
if (!Array.isArray(list)) {
|
|
108
|
+
return byId;
|
|
109
|
+
}
|
|
110
|
+
for (const entry of list) {
|
|
111
|
+
if (!isObject(entry)) {
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
const id = entry["id"];
|
|
115
|
+
if (typeof id === "string" && NAME.test(id) && !Object.prototype.hasOwnProperty.call(byId, id)) {
|
|
116
|
+
byId[id] = cssValue(entry["color"], documents);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return byId;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* The theme's documents section as the values of its CSS variables.
|
|
123
|
+
*
|
|
124
|
+
* @internal
|
|
125
|
+
*/
|
|
126
|
+
export function documentsThemeCssValues(documents) {
|
|
127
|
+
if (!isObject(documents)) {
|
|
128
|
+
return "";
|
|
129
|
+
}
|
|
130
|
+
const { colors, textStyle, ...rest } = documents;
|
|
131
|
+
const { typography, ...textLevels } = isObject(textStyle) ? textStyle : {};
|
|
132
|
+
const palette = isObject(colors) ? colors["visualizationPalette"] : undefined;
|
|
133
|
+
return {
|
|
134
|
+
...cssValues(rest, documents),
|
|
135
|
+
colors: {
|
|
136
|
+
...Object.fromEntries(COLOR_LISTS.map((list) => [
|
|
137
|
+
list,
|
|
138
|
+
colorsById(isObject(colors) ? colors[list] : undefined, documents),
|
|
139
|
+
])),
|
|
140
|
+
// Inline colors become indexed variables; a palette reference is resolved by the application.
|
|
141
|
+
visualizationPalette: Array.isArray(palette)
|
|
142
|
+
? palette.map((color) => cssValue(color, documents))
|
|
143
|
+
: "",
|
|
144
|
+
},
|
|
145
|
+
textStyle: {
|
|
146
|
+
...cssValues(textLevels, documents),
|
|
147
|
+
// Font files are registered by the application.
|
|
148
|
+
typography: {
|
|
149
|
+
fontFamily: isObject(typography) ? fontFamilyCss(typography["fontFamily"]) : "",
|
|
150
|
+
},
|
|
151
|
+
},
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* The paths in the documents section where a length is written with a unit, which documents ignore.
|
|
156
|
+
*
|
|
157
|
+
* @internal
|
|
158
|
+
*/
|
|
159
|
+
export function findDocumentLengthsWithUnits(theme) {
|
|
160
|
+
const paths = [];
|
|
161
|
+
const visit = (value, path) => {
|
|
162
|
+
if (typeof value === "string") {
|
|
163
|
+
if (isLengthWithUnit(value.trim())) {
|
|
164
|
+
paths.push(path);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
else if (Array.isArray(value)) {
|
|
168
|
+
value.forEach((item, index) => visit(item, `${path}.${index}`));
|
|
169
|
+
}
|
|
170
|
+
else if (isObject(value)) {
|
|
171
|
+
for (const [key, item] of Object.entries(value)) {
|
|
172
|
+
if (!NOT_LENGTH_KEYS.includes(key)) {
|
|
173
|
+
visit(item, `${path}.${key}`);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
visit(theme?.documents, "documents");
|
|
179
|
+
return paths;
|
|
180
|
+
}
|
package/esm/index.d.ts
CHANGED
|
@@ -15,4 +15,5 @@ export { ConditionalScopedThemeProvider } from "./ThemeProvider/ConditionalScope
|
|
|
15
15
|
export { isDarkTheme } from "./ThemeProvider/isDarkTheme.js";
|
|
16
16
|
export { withTheme, useTheme, useReferenceTheme, useThemeIsLoading, useIsScopeThemed, useThemeStatus, useIsDarkTheme, ThemeContextProvider, type IThemeContextProviderProps, type ThemeStatus, } from "./ThemeProvider/Context.js";
|
|
17
17
|
export { isValidThemeColor, findInvalidThemeColors, findMissingRequiredThemeColors, type IInvalidThemeColor, } from "./colorValidation.js";
|
|
18
|
+
export { findDocumentLengthsWithUnits } from "./documentsTheme.js";
|
|
18
19
|
//# sourceMappingURL=index.d.ts.map
|
package/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EACH,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,aAAa,GACrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,KAAK,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AAC7G,OAAO,EAAE,8BAA8B,EAAE,MAAM,mDAAmD,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EACH,SAAS,EACT,QAAQ,EACR,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,KAAK,0BAA0B,EAC/B,KAAK,WAAW,GACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACH,iBAAiB,EACjB,sBAAsB,EACtB,8BAA8B,EAC9B,KAAK,kBAAkB,GAC1B,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EACH,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,aAAa,GACrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,KAAK,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AAC7G,OAAO,EAAE,8BAA8B,EAAE,MAAM,mDAAmD,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EACH,SAAS,EACT,QAAQ,EACR,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,KAAK,0BAA0B,EAC/B,KAAK,WAAW,GACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACH,iBAAiB,EACjB,sBAAsB,EACtB,8BAA8B,EAC9B,KAAK,kBAAkB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC"}
|
package/esm/index.js
CHANGED
|
@@ -17,3 +17,4 @@ export { ConditionalScopedThemeProvider } from "./ThemeProvider/ConditionalScope
|
|
|
17
17
|
export { isDarkTheme } from "./ThemeProvider/isDarkTheme.js";
|
|
18
18
|
export { withTheme, useTheme, useReferenceTheme, useThemeIsLoading, useIsScopeThemed, useThemeStatus, useIsDarkTheme, ThemeContextProvider, } from "./ThemeProvider/Context.js";
|
|
19
19
|
export { isValidThemeColor, findInvalidThemeColors, findMissingRequiredThemeColors, } from "./colorValidation.js";
|
|
20
|
+
export { findDocumentLengthsWithUnits } from "./documentsTheme.js";
|
|
@@ -37,6 +37,13 @@ export declare function ConditionalScopedThemeProvider({ children }: {
|
|
|
37
37
|
*/
|
|
38
38
|
export declare const defaultHeaderTheme: IThemeHeader;
|
|
39
39
|
|
|
40
|
+
/**
|
|
41
|
+
* The paths in the documents section where a length is written with a unit, which documents ignore.
|
|
42
|
+
*
|
|
43
|
+
* @internal
|
|
44
|
+
*/
|
|
45
|
+
export declare function findDocumentLengthsWithUnits(theme: ITheme | undefined): string[];
|
|
46
|
+
|
|
40
47
|
/**
|
|
41
48
|
* Walks the theme palette and returns the colors that cannot be parsed, each with its location.
|
|
42
49
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddata/sdk-ui-theme-provider",
|
|
3
|
-
"version": "11.63.0-alpha.
|
|
3
|
+
"version": "11.63.0-alpha.2",
|
|
4
4
|
"description": "GoodData SDK - Theme provider",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "GoodData Corporation",
|
|
@@ -32,10 +32,10 @@
|
|
|
32
32
|
"postcss-value-parser": "4.2.0",
|
|
33
33
|
"ts-invariant": "0.10.3",
|
|
34
34
|
"tslib": "2.8.1",
|
|
35
|
-
"@gooddata/sdk-backend-spi": "11.63.0-alpha.
|
|
36
|
-
"@gooddata/sdk-model": "11.63.0-alpha.
|
|
37
|
-
"@gooddata/
|
|
38
|
-
"@gooddata/
|
|
35
|
+
"@gooddata/sdk-backend-spi": "11.63.0-alpha.2",
|
|
36
|
+
"@gooddata/sdk-model": "11.63.0-alpha.2",
|
|
37
|
+
"@gooddata/util": "11.63.0-alpha.2",
|
|
38
|
+
"@gooddata/sdk-ui": "11.63.0-alpha.2"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@microsoft/api-documenter": "7.30.16",
|
|
@@ -69,10 +69,10 @@
|
|
|
69
69
|
"react-dom": "19.1.1",
|
|
70
70
|
"typescript": "7.0.2",
|
|
71
71
|
"vitest": "5.0.4",
|
|
72
|
-
"@gooddata/eslint-config": "11.63.0-alpha.
|
|
73
|
-
"@gooddata/oxlint-config": "11.63.0-alpha.
|
|
74
|
-
"@gooddata/reference-workspace": "11.63.0-alpha.
|
|
75
|
-
"@gooddata/sdk-backend-mockingbird": "11.63.0-alpha.
|
|
72
|
+
"@gooddata/eslint-config": "11.63.0-alpha.2",
|
|
73
|
+
"@gooddata/oxlint-config": "11.63.0-alpha.2",
|
|
74
|
+
"@gooddata/reference-workspace": "11.63.0-alpha.2",
|
|
75
|
+
"@gooddata/sdk-backend-mockingbird": "11.63.0-alpha.2"
|
|
76
76
|
},
|
|
77
77
|
"peerDependencies": {
|
|
78
78
|
"react": "^18.0.0 || ^19.0.0",
|