@gooddata/sdk-ui-catalog 11.47.0-alpha.3 → 11.47.0-alpha.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"CatalogDetailHeader.d.ts","sourceRoot":"","sources":["../../src/catalogDetail/CatalogDetailHeader.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAA+B,MAAM,OAAO,CAAC;AAIpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAK9D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAS5D,MAAM,WAAW,uBAAuB;IACpC,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAChC;AAED,UAAU,MAAM;IACZ,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,SAAS,CAAC;IACnB,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,qBAAqB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,8BAA8B,EAAE,OAAO,CAAC;IACxC,SAAS,EAAE,SAAS,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;IACrD,mGAAmG;IACnG,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC7B,4FAA4F;IAC5F,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,mBAAmB,CAAC,EAChC,IAAI,EACJ,OAAO,EACP,OAAO,EACP,eAAe,EACf,qBAAqB,EACrB,8BAA8B,EAC9B,SAAS,EACT,MAAM,EACN,aAAa,EACb,WAAW,EACd,EAAE,MAAM,2CAmMR"}
1
+ {"version":3,"file":"CatalogDetailHeader.d.ts","sourceRoot":"","sources":["../../src/catalogDetail/CatalogDetailHeader.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAA+B,MAAM,OAAO,CAAC;AAIpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAK9D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAS5D,MAAM,WAAW,uBAAuB;IACpC,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAChC;AAED,UAAU,MAAM;IACZ,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,SAAS,CAAC;IACnB,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,qBAAqB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,8BAA8B,EAAE,OAAO,CAAC;IACxC,SAAS,EAAE,SAAS,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;IACrD,mGAAmG;IACnG,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC7B,4FAA4F;IAC5F,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,mBAAmB,CAAC,EAChC,IAAI,EACJ,OAAO,EACP,OAAO,EACP,eAAe,EACf,qBAAqB,EACrB,8BAA8B,EAC9B,SAAS,EACT,MAAM,EACN,aAAa,EACb,WAAW,EACd,EAAE,MAAM,2CAqMR"}
@@ -38,15 +38,16 @@ export function CatalogDetailHeader({ item, canEdit, actions, updateItemTitle, u
38
38
  _jsxs("div", { className: "gd-analytics-catalog-detail__card__top", children: [
39
39
  _jsxs("div", { className: "gd-analytics-catalog-detail__card__header", children: [
40
40
  _jsxs("div", { className: "gd-analytics-catalog-detail__card__header__title", children: [
41
- _jsx(ObjectTypeTooltip, { intl: intl, type: type, visualizationType: visualizationType, anchor: _jsx(ObjectTypeIconMemo, { intl: intl, type: type, visualizationType: visualizationType, backgroundSize: 32 }) }), item?.isLocked ? _jsx(CatalogItemLockMemo, { intl: intl }) : null, _jsx("div", { className: "gd-analytics-catalog-detail__card__header__title__name", children: canEdit ? (canGenerateText ? (_jsx(CatalogDetailGenerateTitle, { ref: titleRef, item: item, onApplyTitle: updateItemTitle }, item.identifier)) : (_jsxs(EditableLabel, { ref: titleRef, isEditableLabelWidthBasedOnText: true, ariaLabel: intl.formatMessage({
42
- id: "analyticsCatalog.column.title.label",
43
- }), placeholder: intl.formatMessage({
44
- id: "analyticsCatalog.catalogItem.title.add",
45
- }), onSubmit: updateItemTitle, value: item.title, maxRows: 9999, children: [item.title ||
46
- intl.formatMessage({
47
- id: "analyticsCatalog.catalogItem.title.add",
48
- }), _jsx("i", { className: "gd-icon-pencil" })
49
- ] }))) : (_jsx(_Fragment, { children: item.title })) }), _jsx(CatalogCertificationIconMemo, { className: "gd-analytics-catalog-detail__card__header__title__certified", certification: item.certification })
41
+ _jsx(ObjectTypeTooltip, { intl: intl, type: type, visualizationType: visualizationType, anchor: _jsx(ObjectTypeIconMemo, { intl: intl, type: type, visualizationType: visualizationType, backgroundSize: 32 }) }), item?.isLocked ? _jsx(CatalogItemLockMemo, { intl: intl }) : null, _jsxs("div", { className: "gd-analytics-catalog-detail__card__header__title__name", children: [canEdit ? (canGenerateText ? (_jsx(CatalogDetailGenerateTitle, { ref: titleRef, item: item, onApplyTitle: updateItemTitle }, item.identifier)) : (_jsxs(EditableLabel, { ref: titleRef, isEditableLabelWidthBasedOnText: true, ariaLabel: intl.formatMessage({
42
+ id: "analyticsCatalog.column.title.label",
43
+ }), placeholder: intl.formatMessage({
44
+ id: "analyticsCatalog.catalogItem.title.add",
45
+ }), onSubmit: updateItemTitle, value: item.title, maxRows: 9999, children: [item.title ||
46
+ intl.formatMessage({
47
+ id: "analyticsCatalog.catalogItem.title.add",
48
+ }), _jsx("i", { className: "gd-icon-pencil" })
49
+ ] }))) : (_jsx("span", { className: "gd-analytics-catalog-detail__card__header__title__name__text", children: item.title })), _jsx(CatalogCertificationIconMemo, { className: "gd-analytics-catalog-detail__card__header__title__certified", certification: item.certification })
50
+ ] })
50
51
  ] }), canEdit ? (_jsxs("div", { className: "gd-analytics-catalog-detail__card__header__row", children: [
51
52
  _jsx("div", { className: "gd-analytics-catalog-detail__card__header__row__subtitle", children: _jsx(FormattedMessage, { id: "analyticsCatalog.catalogItem.description" }) }), _jsx("div", { className: "gd-analytics-catalog-detail__card__header__row__content", children: canGenerateText ? (_jsx(CatalogDetailGenerateDescription, { ref: descriptionRef, item: item, onApplyDescription: updateItemDescription }, item.identifier)) : (_jsxs(EditableLabel, { ref: descriptionRef, maxRows: 9999, ariaLabel: intl.formatMessage({
52
53
  id: "analyticsCatalog.catalogItem.description",
@@ -1 +1 @@
1
- {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../src/localization/translations.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA0DtD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAoC,CAAC;AAE5G,eAAO,MAAM,gBAAgB,UAAU,CAAC;AACxC,eAAO,MAAM,gBAAgB;;;;CAK5B,CAAC"}
1
+ {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../src/localization/translations.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA+DtD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAoC,CAAC;AAE5G,eAAO,MAAM,gBAAgB,UAAU,CAAC;AACxC,eAAO,MAAM,gBAAgB;;;;CAK5B,CAAC"}
@@ -5,9 +5,12 @@ import { memoize, merge } from "lodash-es";
5
5
  import { DEFAULT_MESSAGES as DEFAULT_MESSAGES_SDK_UI_EXT, resolveMessages as resolveMessagesSdkUiExt, } from "@gooddata/sdk-ui-ext/internal";
6
6
  import { removeMetadata } from "@gooddata/util";
7
7
  import { en_US } from "./bundles/en-US.localization-bundle.js";
8
+ // English (default) messages for this library's own keys, used as the fallback
9
+ // for locales that are missing keys.
10
+ const DEFAULT_OWN_MESSAGES = removeMetadata(en_US);
8
11
  const asyncCatalogTranslations = {
9
- "en-US": () => Promise.resolve(removeMetadata(en_US)),
10
- "en-US-x-24h": () => Promise.resolve(removeMetadata(en_US)),
12
+ "en-US": () => Promise.resolve(DEFAULT_OWN_MESSAGES),
13
+ "en-US-x-24h": () => Promise.resolve(DEFAULT_OWN_MESSAGES),
11
14
  "de-DE": () => import("./bundles/de-DE.localization-bundle.js").then((module) => module.de_DE),
12
15
  "en-AU": () => import("./bundles/en-AU.localization-bundle.js").then((module) => module.en_AU),
13
16
  "en-GB": () => import("./bundles/en-GB.localization-bundle.js").then((module) => module.en_GB),
@@ -48,7 +51,8 @@ const resolveMessagesInternal = async (locale) => {
48
51
  catalogLoader(),
49
52
  resolveMessagesSdkUiExt(locale),
50
53
  ]);
51
- return merge({}, sdkUiExtTranslations, catalogTranslations);
54
+ // sdk-ui-ext already falls back to English for its own keys.
55
+ return merge({}, DEFAULT_OWN_MESSAGES, sdkUiExtTranslations, catalogTranslations);
52
56
  };
53
57
  /**
54
58
  * Resolves translation messages for the given locale.
@@ -61,6 +65,6 @@ export const DEFAULT_LANGUAGE = "en-US";
61
65
  export const DEFAULT_MESSAGES = {
62
66
  [DEFAULT_LANGUAGE]: {
63
67
  ...DEFAULT_MESSAGES_SDK_UI_EXT[DEFAULT_LANGUAGE],
64
- ...removeMetadata(en_US),
68
+ ...DEFAULT_OWN_MESSAGES,
65
69
  },
66
70
  };
@@ -1 +1 @@
1
- {"version":3,"file":"MetricYamlEditor.d.ts","sourceRoot":"","sources":["../../src/metric/MetricYamlEditor.tsx"],"names":[],"mappings":"AAcA,KAAK,KAAK,GAAG;IACT,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAgB,EAAE,EAAE,KAAK,2CA2BnF"}
1
+ {"version":3,"file":"MetricYamlEditor.d.ts","sourceRoot":"","sources":["../../src/metric/MetricYamlEditor.tsx"],"names":[],"mappings":"AAYA,KAAK,KAAK,GAAG;IACT,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAgB,EAAE,EAAE,KAAK,2CAWnF"}
@@ -1,20 +1,12 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  // (C) 2026 GoodData Corporation
3
- import { useCallback, useMemo, useState } from "react";
4
- import { yaml } from "@codemirror/lang-yaml";
5
- import { lintGutter } from "@codemirror/lint";
6
- import { lineNumbers } from "@codemirror/view";
7
- import { useIntl } from "react-intl";
8
- import { SyntaxHighlightingInput } from "@gooddata/sdk-ui-kit";
9
- import { metricSchemaCompletions } from "./metricCompletions.js";
10
- import { createMetricYamlLinter } from "./metricYamlLinter.js";
3
+ import { defineMessages, useIntl } from "react-intl";
4
+ import { YamlEditor } from "@gooddata/sdk-ui-kit";
5
+ import { metricCompletions } from "./metricCompletions.js";
6
+ const messages = defineMessages({
7
+ syntaxError: { id: "analyticsCatalog.metric.validation.syntax" },
8
+ });
11
9
  export function MetricYamlEditor({ initialValue, onChange, disabled = false }) {
12
10
  const intl = useIntl();
13
- const [value, setValue] = useState(initialValue);
14
- const extensions = useMemo(() => [yaml(), lineNumbers(), createMetricYamlLinter(intl), lintGutter()], [intl]);
15
- const handleChange = useCallback((nextValue) => {
16
- setValue(nextValue);
17
- onChange?.(nextValue);
18
- }, [onChange]);
19
- return (_jsx(SyntaxHighlightingInput, { className: "gd-ascode-dialog-editor-input", value: value, onChange: handleChange, extensions: extensions, onCompletion: metricSchemaCompletions, disabled: disabled }));
11
+ return (_jsx(YamlEditor, { initialValue: initialValue, onChange: onChange, disabled: disabled, completionSource: metricCompletions, syntaxErrorMessage: intl.formatMessage(messages.syntaxError) }));
20
12
  }
@@ -1,7 +1,8 @@
1
1
  import type { CompletionContext, CompletionResult } from "@codemirror/autocomplete";
2
2
  /**
3
- * CodeMirror completion source that suggests allowed YAML property names
4
- * based on the metric zod schema and cursor position in the Lezer tree.
3
+ * Completion source for the metric YAML schema. The metric schema is a flat mapping, so completion
4
+ * only offers the top-level property names, and only at column zero an indented line sits inside a
5
+ * sequence value (e.g. under `tags:`), where those keys must not be offered.
5
6
  */
6
- export declare function metricSchemaCompletions(context: CompletionContext): CompletionResult | null;
7
+ export declare function metricCompletions(context: CompletionContext): CompletionResult | null;
7
8
  //# sourceMappingURL=metricCompletions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metricCompletions.d.ts","sourceRoot":"","sources":["../../src/metric/metricCompletions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAcpF;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB,GAAG,IAAI,CA2B3F"}
1
+ {"version":3,"file":"metricCompletions.d.ts","sourceRoot":"","sources":["../../src/metric/metricCompletions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAMpF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB,GAAG,IAAI,CAWrF"}
@@ -1,59 +1,18 @@
1
1
  // (C) 2026 GoodData Corporation
2
- import { syntaxTree } from "@codemirror/language";
3
2
  import { METRIC_SCHEMA_KEYS } from "./metricSchema.js";
4
- /** Pre-built completion options from the schema key map. */
5
- const completionOptions = Object.fromEntries(Object.entries(METRIC_SCHEMA_KEYS).map(([parent, keys]) => [
6
- parent,
7
- keys.map((label) => ({ label, type: "property" })),
8
- ]));
3
+ const rootOptions = (METRIC_SCHEMA_KEYS[""] ?? []).map((label) => ({ label, type: "property" }));
9
4
  /**
10
- * CodeMirror completion source that suggests allowed YAML property names
11
- * based on the metric zod schema and cursor position in the Lezer tree.
5
+ * Completion source for the metric YAML schema. The metric schema is a flat mapping, so completion
6
+ * only offers the top-level property names, and only at column zero an indented line sits inside a
7
+ * sequence value (e.g. under `tags:`), where those keys must not be offered.
12
8
  */
13
- export function metricSchemaCompletions(context) {
9
+ export function metricCompletions(context) {
14
10
  const line = context.state.doc.lineAt(context.pos);
15
11
  const before = line.text.slice(0, context.pos - line.from);
16
- // Only trigger when typing a key name at the start of a line
17
- const match = before.match(/^(\s*)(\w*)$/);
12
+ // Trigger only for a key typed at column zero; any leading whitespace means the cursor is nested.
13
+ const match = before.match(/^([\w-]*)$/);
18
14
  if (!match) {
19
15
  return null;
20
16
  }
21
- // The metric schema is flat: property keys exist only at the top-level mapping, at zero
22
- // indentation. An indented cursor is inside a value such as the `tags` sequence, where the
23
- // top-level key suggestions must not be offered.
24
- if (match[1].length > 0) {
25
- return null;
26
- }
27
- const word = match[2];
28
- const from = context.pos - word.length;
29
- const parentKey = getParentKey(context.state, context.pos);
30
- const options = completionOptions[parentKey];
31
- if (!options) {
32
- return null;
33
- }
34
- return { from, options };
35
- }
36
- /**
37
- * Walk up the Lezer YAML tree from cursor to find which key's BlockMapping
38
- * we're inside. Returns "" for the top-level mapping.
39
- */
40
- function getParentKey(state, pos) {
41
- const tree = syntaxTree(state);
42
- let node = tree.resolveInner(pos, -1).parent;
43
- // Find the BlockMapping we're inside
44
- while (node) {
45
- if (node.name === "BlockMapping") {
46
- // If this BlockMapping is the value of a Pair, return the Pair's key
47
- const pair = node.parent;
48
- if (pair?.name === "Pair") {
49
- const keyNode = pair.getChild("Key");
50
- if (keyNode) {
51
- return state.sliceDoc(keyNode.from, keyNode.to).trim();
52
- }
53
- }
54
- return "";
55
- }
56
- node = node.parent;
57
- }
58
- return "";
17
+ return { from: context.pos - match[1].length, options: rootOptions, validFor: /^[\w-]*$/ };
59
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ParameterYamlEditor.d.ts","sourceRoot":"","sources":["../../src/parameter/ParameterYamlEditor.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMzD,KAAK,KAAK,GAAG;IACT,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,aAAa,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAgB,EAAE,EAAE,KAAK,2CAyBpG"}
1
+ {"version":3,"file":"ParameterYamlEditor.d.ts","sourceRoot":"","sources":["../../src/parameter/ParameterYamlEditor.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AASzD,KAAK,KAAK,GAAG;IACT,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,aAAa,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAgB,EAAE,EAAE,KAAK,2CAepG"}
@@ -1,21 +1,16 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  // (C) 2026 GoodData Corporation
3
- import { useCallback, useMemo, useState } from "react";
4
- import { yaml } from "@codemirror/lang-yaml";
5
- import { lintGutter } from "@codemirror/lint";
6
- import { lineNumbers } from "@codemirror/view";
7
- import { useIntl } from "react-intl";
8
- import { SyntaxHighlightingInput } from "@gooddata/sdk-ui-kit";
3
+ import { useMemo } from "react";
4
+ import { defineMessages, useIntl } from "react-intl";
5
+ import { YamlEditor } from "@gooddata/sdk-ui-kit";
9
6
  import { createParameterCompletions } from "./parameterCompletions.js";
10
- import { createYamlLinter } from "./yamlLinter.js";
7
+ const messages = defineMessages({
8
+ syntaxError: { id: "analyticsCatalog.parameter.validation.syntax" },
9
+ });
11
10
  export function ParameterYamlEditor({ initialValue, enabledTypes, onChange, disabled = false }) {
12
11
  const intl = useIntl();
13
- const [value, setValue] = useState(initialValue);
14
- const extensions = useMemo(() => [yaml(), lineNumbers(), createYamlLinter(intl), lintGutter()], [intl]);
15
- const completions = useMemo(() => createParameterCompletions(enabledTypes), [enabledTypes]);
16
- const handleChange = useCallback((nextValue) => {
17
- setValue(nextValue);
18
- onChange?.(nextValue);
19
- }, [onChange]);
20
- return (_jsx(SyntaxHighlightingInput, { className: "gd-ascode-dialog-editor-input", value: value, onChange: handleChange, extensions: extensions, onCompletion: completions, disabled: disabled }));
12
+ // The completion source narrows keys and `type:` values to the enabled parameter types, so it is
13
+ // rebuilt whenever that set changes.
14
+ const completionSource = useMemo(() => createParameterCompletions(enabledTypes), [enabledTypes]);
15
+ return (_jsx(YamlEditor, { initialValue: initialValue, onChange: onChange, disabled: disabled, completionSource: completionSource, syntaxErrorMessage: intl.formatMessage(messages.syntaxError) }));
21
16
  }
@@ -48,9 +48,12 @@ function toOptions(keyMap) {
48
48
  ]));
49
49
  }
50
50
  /**
51
- * The key whose block mapping a new entry at column `indent` would join: the
52
- * nearest less-indented `key:` line above. Returns "" for the top-level
53
- * mapping and null when the enclosing line is not a mapping key.
51
+ * The key whose block mapping a new entry at column `indent` would join: the nearest less-indented
52
+ * `key:` line above. Returns `""` only for the top-level mapping (`indent === 0`), and `null` when the
53
+ * enclosing line is not a mapping key or an indented line has no less-indented ancestor above it (an
54
+ * orphaned line, which is not top-level). Derived purely from indentation, not from a parsed syntax
55
+ * tree, so it also resolves the parent on a blank indented line; the flip side is that it does not
56
+ * understand block scalars (`|`, `>`), whose literal content is scanned as if it were mapping keys.
54
57
  */
55
58
  function getParentKey(doc, lineNumber, indent) {
56
59
  if (indent === 0) {
@@ -59,19 +62,25 @@ function getParentKey(doc, lineNumber, indent) {
59
62
  for (let number = lineNumber - 1; number >= 1; number--) {
60
63
  const text = doc.line(number).text;
61
64
  const content = text.trimStart();
65
+ // Skip blank lines, comments, and lines indented at least as deep as the new entry.
62
66
  if (content === "" || content.startsWith("#") || text.length - content.length >= indent) {
63
67
  continue;
64
68
  }
65
69
  return content.match(/^([\w-]+):/)?.[1] ?? null;
66
70
  }
67
- return "";
71
+ // Indented with no less-indented ancestor: an orphaned line, not top-level.
72
+ return null;
68
73
  }
69
- /** Value of the first indented `type:` key, i.e. `definition.type` (the top-level `type` is unindented). */
74
+ /**
75
+ * Value of `definition.type`: the first indented `type:` line whose enclosing mapping is `definition`.
76
+ * Resolving the parent via {@link getParentKey} keeps a `type:` nested elsewhere — under `constraints`
77
+ * or inside a block-scalar `description` — from being mistaken for the declared parameter type.
78
+ */
70
79
  function getDeclaredType(doc) {
71
80
  for (let number = 1; number <= doc.lines; number++) {
72
- const match = doc.line(number).text.match(/^\s+type:\s*(\w+)/);
73
- if (match) {
74
- return match[1];
81
+ const match = doc.line(number).text.match(/^(\s+)type:\s*(\w+)/);
82
+ if (match && getParentKey(doc, number, match[1].length) === "definition") {
83
+ return match[2];
75
84
  }
76
85
  }
77
86
  return undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-catalog",
3
- "version": "11.47.0-alpha.3",
3
+ "version": "11.47.0-alpha.5",
4
4
  "description": "GoodData SDK - Analytics Catalog",
5
5
  "license": "MIT",
6
6
  "author": "GoodData Corporation",
@@ -32,11 +32,7 @@
32
32
  "dependencies": {
33
33
  "@babel/core": "7.28.4",
34
34
  "@codemirror/autocomplete": "6.20.0",
35
- "@codemirror/lang-yaml": "6.1.3",
36
- "@codemirror/language": "6.12.1",
37
- "@codemirror/lint": "6.9.2",
38
35
  "@codemirror/state": "6.5.3",
39
- "@codemirror/view": "6.39.10",
40
36
  "@joint/core": "^4.2.4",
41
37
  "@joint/layout-directed-graph": "^4.2.3",
42
38
  "classnames": "2.5.1",
@@ -45,15 +41,15 @@
45
41
  "tslib": "2.8.1",
46
42
  "yaml": "2.8.3",
47
43
  "zod": "4.3.6",
48
- "@gooddata/sdk-backend-spi": "11.47.0-alpha.3",
49
- "@gooddata/sdk-ui": "11.47.0-alpha.3",
50
- "@gooddata/sdk-ui-ext": "11.47.0-alpha.3",
51
- "@gooddata/sdk-model": "11.47.0-alpha.3",
52
- "@gooddata/sdk-code-schemas": "11.47.0-alpha.3",
53
- "@gooddata/sdk-ui-kit": "11.47.0-alpha.3",
54
- "@gooddata/sdk-ui-semantic-search": "11.47.0-alpha.3",
55
- "@gooddata/sdk-ui-theme-provider": "11.47.0-alpha.3",
56
- "@gooddata/util": "11.47.0-alpha.3"
44
+ "@gooddata/sdk-backend-spi": "11.47.0-alpha.5",
45
+ "@gooddata/sdk-code-schemas": "11.47.0-alpha.5",
46
+ "@gooddata/sdk-model": "11.47.0-alpha.5",
47
+ "@gooddata/sdk-ui": "11.47.0-alpha.5",
48
+ "@gooddata/sdk-ui-ext": "11.47.0-alpha.5",
49
+ "@gooddata/sdk-ui-kit": "11.47.0-alpha.5",
50
+ "@gooddata/sdk-ui-semantic-search": "11.47.0-alpha.5",
51
+ "@gooddata/util": "11.47.0-alpha.5",
52
+ "@gooddata/sdk-ui-theme-provider": "11.47.0-alpha.5"
57
53
  },
58
54
  "devDependencies": {
59
55
  "@microsoft/api-documenter": "^7.17.0",
@@ -93,11 +89,11 @@
93
89
  "typescript": "5.9.3",
94
90
  "vitest": "4.1.8",
95
91
  "vitest-dom": "0.1.1",
96
- "@gooddata/eslint-config": "11.47.0-alpha.3",
97
- "@gooddata/i18n-toolkit": "11.47.0-alpha.3",
98
- "@gooddata/oxlint-config": "11.47.0-alpha.3",
99
- "@gooddata/sdk-backend-mockingbird": "11.47.0-alpha.3",
100
- "@gooddata/stylelint-config": "11.47.0-alpha.3"
92
+ "@gooddata/i18n-toolkit": "11.47.0-alpha.5",
93
+ "@gooddata/oxlint-config": "11.47.0-alpha.5",
94
+ "@gooddata/eslint-config": "11.47.0-alpha.5",
95
+ "@gooddata/sdk-backend-mockingbird": "11.47.0-alpha.5",
96
+ "@gooddata/stylelint-config": "11.47.0-alpha.5"
101
97
  },
102
98
  "peerDependencies": {
103
99
  "react": "^18.0.0 || ^19.0.0",
@@ -187,15 +187,33 @@
187
187
  background-color: color-mix(in sRGB, var(--catalog-object-type-icon-color) 10%, transparent);
188
188
  }
189
189
  .gd-analytics-catalog-detail__card__header__title__name {
190
+ flex: 1 1 0;
191
+ min-width: 0;
192
+ display: flex;
193
+ align-items: center;
194
+ gap: 10px;
195
+ }
196
+ .gd-analytics-catalog-detail__card__header__title__name .gd-editable-label, .gd-analytics-catalog-detail__card__header__title__name .gd-ui-kit-inline-text-generator, .gd-analytics-catalog-detail__card__header__title__name__text {
197
+ flex: 0 1 auto;
198
+ width: auto;
199
+ min-width: 0;
200
+ max-width: 100%;
201
+ }
202
+ .gd-analytics-catalog-detail__card__header__title__name__text {
190
203
  overflow: hidden;
191
204
  text-overflow: ellipsis;
192
- display: flex;
193
- align-items: flex-start;
205
+ white-space: nowrap;
194
206
  }
195
207
  .gd-analytics-catalog-detail__card__header__title__name .gd-editable-label-inner {
208
+ width: auto;
209
+ min-width: 0;
210
+ max-width: 100%;
196
211
  overflow: hidden;
197
212
  text-overflow: ellipsis;
198
213
  }
214
+ .gd-analytics-catalog-detail__card__header__title__name .gd-ui-kit-inline-text-generator:not(.gd-ui-kit-inline-text-generator--isEditing) .gd-editable-label-inner {
215
+ padding-right: 0;
216
+ }
199
217
  .gd-analytics-catalog-detail__card__header__title__name .gd-editable-label.placeholder {
200
218
  color: var(--gd-palette-complementary-6, #94a1ad);
201
219
  }
@@ -209,10 +227,7 @@
209
227
  bottom: 4px;
210
228
  }
211
229
  .gd-analytics-catalog-detail__card__header__title__certified {
212
- display: flex;
213
- height: 100%;
214
- align-items: center;
215
- margin-left: -10px;
230
+ flex: none;
216
231
  }
217
232
  .gd-analytics-catalog-detail__card__header__row {
218
233
  padding-top: 10px;
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../scss/objectType.scss","../scss/codeDialog.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/variables.scss","../scss/detail.scss"],"names":[],"mappings":"AAKI;EAEI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EAEI;;AAGJ;EACI;;;ACpBR;EACI;EACA;EACA;EACA;EACA;;AAGA;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI,cCpCU;;ADwClB;EACI;;AAGJ;EACI;EACA;EACA;EACA;;;AAKZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;;;AE1GJ;EACI,aDwFc;ECvFd,WAJgB;EAKhB,OAVI;EAWJ;;AAEA;EANJ;IAOQ;;;AAGJ;EAEI;EACA;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;;AAGA;EACI;EACA;EACA;;AAIJ;EACI;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA,ODzCA;EC0CA,WAtEE;EAuEF,aAtES;EAuET;EACA;;AAEA;EACI;;AAOJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI,OD3EG;;AC8EP;EACI;EACA,OD7EJ;EC8EI;EACA;;AAGJ;EAEI;;AAGJ;EACI;EACA;EACA;EACA;;AAIR;EACI;;AAEA;EACI,ODnGJ;ECoGI,aAzHQ;EA0HR,WA3HC;EA4HD;EACA;EACA;;AAGJ;EACI,ODxGJ;ECyGI,WAjIA;EAkIA;EACA;EACA;EACA;EACA;;AAGJ;EACI,ODzHG;;AC4HP;EACI;EACA,OD3HJ;;AC+HJ;EACI;;AAEA;EACI;;AAKZ;EACI;EACA;;AAIR;EACI;EACA;EACA;;AAEA;EACI;;AAKR;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAMR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAEA;EACI;;AAKZ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA,ODhQQ;ECiQR;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAKJ;EACI;;AAGJ;EACI;EACA;;AAKJ;EACI;EACA;;AAGJ;EACI,ODjSW;;ACoSf;EACI;EACA,ODnSI;;ACuSZ;EACI,ODpSQ;ECqSR;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAEA;EACI,ODvTW;ECwTX;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;;AAEJ;EACI;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAIR;EACI,MD7XS;;AC+Xb;AAAA;EAEI,MDhYQ;;ACkYZ;AAAA;EAEI,MDlYO;;ACoYX;EACI;;AAEJ;EACI;;AAGJ;EACI,QD3XW;;;ACiYnB;EACI;EACA;EACA;EACA;EACA;EACA;EACA,kBD9YS;EC+YT;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAGI;EACI;EACA;;AAIR;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;EACA,kBD/bK;ECgcL;EACA;EACA,ODrbI;;ACubJ;EACI;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI","file":"detail.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../scss/objectType.scss","../scss/codeDialog.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/variables.scss","../scss/detail.scss"],"names":[],"mappings":"AAKI;EAEI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EAEI;;AAGJ;EACI;;;ACpBR;EACI;EACA;EACA;EACA;EACA;;AAGA;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI,cCpCU;;ADwClB;EACI;;AAGJ;EACI;EACA;EACA;EACA;;;AAKZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;;;AE1GJ;EACI,aDwFc;ECvFd,WAJgB;EAKhB,OAVI;EAWJ;;AAEA;EANJ;IAOQ;;;AAGJ;EAEI;EACA;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;;AAGA;EACI;EACA;EACA;;AAIJ;EACI;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA,ODzCA;EC0CA,WAtEE;EAuEF,aAtES;EAuET;EACA;;AAEA;EACI;;AAOJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EAGI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EAGI;;AAGJ;EACI,ODpGG;;ACuGP;EACI;EACA,ODtGJ;ECuGI;EACA;;AAGJ;EAEI;;AAGJ;EACI;;AAIR;EACI;;AAEA;EACI,ODzHJ;EC0HI,aA/IQ;EAgJR,WAjJC;EAkJD;EACA;EACA;;AAGJ;EACI,OD9HJ;EC+HI,WAvJA;EAwJA;EACA;EACA;EACA;EACA;;AAGJ;EACI,OD/IG;;ACkJP;EACI;EACA,ODjJJ;;ACqJJ;EACI;;AAEA;EACI;;AAKZ;EACI;EACA;;AAIR;EACI;EACA;EACA;;AAEA;EACI;;AAKR;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAMR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAEA;EACI;;AAKZ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA,ODtRQ;ECuRR;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAKJ;EACI;;AAGJ;EACI;EACA;;AAKJ;EACI;EACA;;AAGJ;EACI,ODvTW;;AC0Tf;EACI;EACA,ODzTI;;AC6TZ;EACI,OD1TQ;EC2TR;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAEA;EACI,OD7UW;EC8UX;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;;AAEJ;EACI;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAIR;EACI,MDnZS;;ACqZb;AAAA;EAEI,MDtZQ;;ACwZZ;AAAA;EAEI,MDxZO;;AC0ZX;EACI;;AAEJ;EACI;;AAGJ;EACI,QDjZW;;;ACuZnB;EACI;EACA;EACA;EACA;EACA;EACA;EACA,kBDpaS;ECqaT;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAGI;EACI;EACA;;AAIR;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;EACA,kBDrdK;ECsdL;EACA;EACA,OD3cI;;AC6cJ;EACI;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI","file":"detail.css"}
@@ -503,15 +503,33 @@
503
503
  background-color: color-mix(in sRGB, var(--catalog-object-type-icon-color) 10%, transparent);
504
504
  }
505
505
  .gd-analytics-catalog-detail__card__header__title__name {
506
+ flex: 1 1 0;
507
+ min-width: 0;
508
+ display: flex;
509
+ align-items: center;
510
+ gap: 10px;
511
+ }
512
+ .gd-analytics-catalog-detail__card__header__title__name .gd-editable-label, .gd-analytics-catalog-detail__card__header__title__name .gd-ui-kit-inline-text-generator, .gd-analytics-catalog-detail__card__header__title__name__text {
513
+ flex: 0 1 auto;
514
+ width: auto;
515
+ min-width: 0;
516
+ max-width: 100%;
517
+ }
518
+ .gd-analytics-catalog-detail__card__header__title__name__text {
506
519
  overflow: hidden;
507
520
  text-overflow: ellipsis;
508
- display: flex;
509
- align-items: flex-start;
521
+ white-space: nowrap;
510
522
  }
511
523
  .gd-analytics-catalog-detail__card__header__title__name .gd-editable-label-inner {
524
+ width: auto;
525
+ min-width: 0;
526
+ max-width: 100%;
512
527
  overflow: hidden;
513
528
  text-overflow: ellipsis;
514
529
  }
530
+ .gd-analytics-catalog-detail__card__header__title__name .gd-ui-kit-inline-text-generator:not(.gd-ui-kit-inline-text-generator--isEditing) .gd-editable-label-inner {
531
+ padding-right: 0;
532
+ }
515
533
  .gd-analytics-catalog-detail__card__header__title__name .gd-editable-label.placeholder {
516
534
  color: var(--gd-palette-complementary-6, #94a1ad);
517
535
  }
@@ -525,10 +543,7 @@
525
543
  bottom: 4px;
526
544
  }
527
545
  .gd-analytics-catalog-detail__card__header__title__certified {
528
- display: flex;
529
- height: 100%;
530
- align-items: center;
531
- margin-left: -10px;
546
+ flex: none;
532
547
  }
533
548
  .gd-analytics-catalog-detail__card__header__row {
534
549
  padding-top: 10px;
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../node_modules/@gooddata/sdk-ui-kit/src/@ui/defaultTheme.scss","../scss/objectType.scss","../scss/codeDialog.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/variables.scss","../scss/detail.scss","../scss/main.scss"],"names":[],"mappings":"AAIA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EAGA;EACA;EAGA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;AAAA;AAAA;AAAA;EAIA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;AAAA;AAAA;AAAA;EAIA;EAGA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EAGA;EACA;EAGA;EAGA;EACA;AAAA;AAAA;AAAA;EAIA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;AAAA;AAAA;AAAA;EAIA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACjVA;EAEI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EAEI;;AAGJ;EACI;;;ACpBR;EACI;EACA;EACA;EACA;EACA;;AAGA;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI,cCpCU;;ADwClB;EACI;;AAGJ;EACI;EACA;EACA;EACA;;;AAKZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;;;AE1GJ;EACI,aDwFc;ECvFd,WAJgB;EAKhB,OAVI;EAWJ;;AAEA;EANJ;IAOQ;;;AAGJ;EAEI;EACA;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;;AAGA;EACI;EACA;EACA;;AAIJ;EACI;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA,ODzCA;EC0CA,WAtEE;EAuEF,aAtES;EAuET;EACA;;AAEA;EACI;;AAOJ;EACI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EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI,cFxRS;;AE4RT;EACI;;AAGJ;AAAA;EAEI;;AAIR;EACI;EACA;EACA;;AAGJ;EACI,WA9SQ;EA+SR;EACA;EACA,OFrRI;EEsRJ;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OF5SQ;EE6SR;EACA;EACA,kBF5TS;;AE8TT;EACI;EACA,WA/UQ;EAgVR;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAEA;EACI;EACA;;AAIR;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA,OFpUQ;EEqUR,YFnUU;EEoUV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;AAAA;EAEI;EACA;;AAGJ;EACI;;AAKJ;EACI;;AAEA;EACI;EACA","file":"main.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../../node_modules/@gooddata/sdk-ui-kit/src/@ui/defaultTheme.scss","../scss/objectType.scss","../scss/codeDialog.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/variables.scss","../scss/detail.scss","../scss/main.scss"],"names":[],"mappings":"AAIA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EAGA;EACA;EAGA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;AAAA;AAAA;AAAA;EAIA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;AAAA;AAAA;AAAA;EAIA;EAGA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EAGA;EACA;EAGA;EAGA;EACA;AAAA;AAAA;AAAA;EAIA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;AAAA;AAAA;AAAA;EAIA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACjVA;EAEI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EAEI;;AAGJ;EACI;;;ACpBR;EACI;EACA;EACA;EACA;EACA;;AAGA;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI,cCpCU;;ADwClB;EACI;;AAGJ;EACI;EACA;EACA;EACA;;;AAKZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;;;AE1GJ;EACI,aDwFc;ECvFd,WAJgB;EAKhB,OAVI;EAWJ;;AAEA;EANJ;IAOQ;;;AAGJ;EAEI;EACA;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;;AAGA;EACI;EACA;EACA;;AAIJ;EACI;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA,ODzCA;EC0CA,WAtEE;EAuEF,aAtES;EAuET;EACA;;AAEA;EACI;;AAOJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EAGI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EAGI;;AAGJ;EACI,ODpGG;;ACuGP;EACI;EACA,ODtGJ;ECuGI;EACA;;AAGJ;EAEI;;AAGJ;EACI;;AAIR;EACI;;AAEA;EACI,ODzHJ;EC0HI,aA/IQ;EAgJR,WAjJC;EAkJD;EACA;EACA;;AAGJ;EACI,OD9HJ;EC+HI,WAvJA;EAwJA;EACA;EACA;EACA;EACA;;AAGJ;EACI,OD/IG;;ACkJP;EACI;EACA,ODjJJ;;ACqJJ;EACI;;AAEA;EACI;;AAKZ;EACI;EACA;;AAIR;EACI;EACA;EACA;;AAEA;EACI;;AAKR;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAMR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAEA;EACI;;AAKZ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA,ODtRQ;ECuRR;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAKJ;EACI;;AAGJ;EACI;EACA;;AAKJ;EACI;EACA;;AAGJ;EACI,ODvTW;;AC0Tf;EACI;EACA,ODzTI;;AC6TZ;EACI,OD1TQ;EC2TR;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAEA;EACI,OD7UW;EC8UX;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;;AAEJ;EACI;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAIR;EACI,MDnZS;;ACqZb;AAAA;EAEI,MDtZQ;;ACwZZ;AAAA;EAEI,MDxZO;;AC0ZX;EACI;;AAEJ;EACI;;AAGJ;EACI,QDjZW;;;ACuZnB;EACI;EACA;EACA;EACA;EACA;EACA;EACA,kBDpaS;ECqaT;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAGI;EACI;EACA;;AAIR;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;EACA,kBDrdK;ECsdL;EACA;EACA,OD3cI;;AC6cJ;EACI;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;;;ACvfhB;EACI,aF4Fc;EE3Fd,WAJgB;EAKhB;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAMR;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;;AAIA;EACI;EACA;;AAKJ;EACI;;AAKZ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AASJ;EACI;EACA;EACA;EACA;;AAGI;EAGI;;AAKJ;EAII;EACA;;AAMhB;EACI;EACA;;AAEA;EACI;;AAGJ;EAEI;;AAGJ;EACI;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAIR;EACI;;AAGJ;EACI,OFlKQ;EEmKR;EACA;EACA;EACA;;AAGJ;EAEI,OFtKI;EEuKJ;EACA;EACA;EACA;;AAIR;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAEA;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAKZ;EACI;EACA;EACA;;AAEA;EACI;;AAGJ;EATJ;IAUQ;;EAEA;IACI;;EAGJ;IACI;;;AAIR;EArBJ;IAsBQ;;EAEA;IACI;;EAGJ;IACI;;;AAIR;EAjCJ;IAkCQ;;EAEA;IACI;;;AAKZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI,cFxRS;;AE4RT;EACI;;AAGJ;AAAA;EAEI;;AAIR;EACI;EACA;EACA;;AAGJ;EACI,WA9SQ;EA+SR;EACA;EACA,OFrRI;EEsRJ;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OF5SQ;EE6SR;EACA;EACA,kBF5TS;;AE8TT;EACI;EACA,WA/UQ;EAgVR;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAEA;EACI;EACA;;AAIR;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA,OFpUQ;EEqUR,YFnUU;EEoUV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;AAAA;EAEI;EACA;;AAGJ;EACI;;AAKJ;EACI;;AAEA;EACI;EACA","file":"main.css"}
@@ -90,17 +90,42 @@ $content-font-size: 14px;
90
90
  }
91
91
 
92
92
  &__name {
93
+ flex: 1 1 0;
94
+ min-width: 0;
95
+ display: flex;
96
+ align-items: center;
97
+ gap: 10px;
98
+ }
99
+
100
+ &__name .gd-editable-label,
101
+ &__name .gd-ui-kit-inline-text-generator,
102
+ &__name__text {
103
+ flex: 0 1 auto;
104
+ width: auto;
105
+ min-width: 0;
106
+ max-width: 100%;
107
+ }
108
+
109
+ &__name__text {
93
110
  overflow: hidden;
94
111
  text-overflow: ellipsis;
95
- display: flex;
96
- align-items: flex-start;
112
+ white-space: nowrap;
97
113
  }
98
114
 
99
115
  &__name .gd-editable-label-inner {
116
+ width: auto;
117
+ min-width: 0;
118
+ max-width: 100%;
100
119
  overflow: hidden;
101
120
  text-overflow: ellipsis;
102
121
  }
103
122
 
123
+ &__name
124
+ .gd-ui-kit-inline-text-generator:not(.gd-ui-kit-inline-text-generator--isEditing)
125
+ .gd-editable-label-inner {
126
+ padding-right: 0;
127
+ }
128
+
104
129
  &__name .gd-editable-label.placeholder {
105
130
  color: kit-variables.$gd-color-state-blank;
106
131
  }
@@ -118,10 +143,7 @@ $content-font-size: 14px;
118
143
  }
119
144
 
120
145
  &__certified {
121
- display: flex;
122
- height: 100%;
123
- align-items: center;
124
- margin-left: -10px;
146
+ flex: none;
125
147
  }
126
148
  }
127
149
 
@@ -1,7 +0,0 @@
1
- import { type IntlShape } from "react-intl";
2
- /**
3
- * Creates a CodeMirror linter extension that reports YAML syntax errors
4
- * using the metric-specific syntax error message.
5
- */
6
- export declare function createMetricYamlLinter(intl: IntlShape): import("@codemirror/state").Extension;
7
- //# sourceMappingURL=metricYamlLinter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metricYamlLinter.d.ts","sourceRoot":"","sources":["../../src/metric/metricYamlLinter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAkB,MAAM,YAAY,CAAC;AAQ5D;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,yCAErD"}
@@ -1,13 +0,0 @@
1
- // (C) 2026 GoodData Corporation
2
- import { defineMessages } from "react-intl";
3
- import { createYamlSyntaxLinter } from "../utils/yamlSyntaxLinter.js";
4
- const messages = defineMessages({
5
- syntaxError: { id: "analyticsCatalog.metric.validation.syntax" },
6
- });
7
- /**
8
- * Creates a CodeMirror linter extension that reports YAML syntax errors
9
- * using the metric-specific syntax error message.
10
- */
11
- export function createMetricYamlLinter(intl) {
12
- return createYamlSyntaxLinter(intl.formatMessage(messages.syntaxError));
13
- }
@@ -1,7 +0,0 @@
1
- import { type IntlShape } from "react-intl";
2
- /**
3
- * Creates a CodeMirror linter extension that reports YAML syntax errors
4
- * using the parameter-specific syntax error message.
5
- */
6
- export declare function createYamlLinter(intl: IntlShape): import("@codemirror/state").Extension;
7
- //# sourceMappingURL=yamlLinter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"yamlLinter.d.ts","sourceRoot":"","sources":["../../src/parameter/yamlLinter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAkB,MAAM,YAAY,CAAC;AAQ5D;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,yCAE/C"}
@@ -1,13 +0,0 @@
1
- // (C) 2026 GoodData Corporation
2
- import { defineMessages } from "react-intl";
3
- import { createYamlSyntaxLinter } from "../utils/yamlSyntaxLinter.js";
4
- const messages = defineMessages({
5
- syntaxError: { id: "analyticsCatalog.parameter.validation.syntax" },
6
- });
7
- /**
8
- * Creates a CodeMirror linter extension that reports YAML syntax errors
9
- * using the parameter-specific syntax error message.
10
- */
11
- export function createYamlLinter(intl) {
12
- return createYamlSyntaxLinter(intl.formatMessage(messages.syntaxError));
13
- }
@@ -1,11 +0,0 @@
1
- /**
2
- * Creates a CodeMirror linter extension that reports YAML syntax errors
3
- * by walking the parse tree for error nodes.
4
- *
5
- * This reuses the tree already built by `@codemirror/lang-yaml` for
6
- * highlighting — no extra parsing or dependencies required.
7
- *
8
- * @param message - localized message shown on each syntax error diagnostic
9
- */
10
- export declare function createYamlSyntaxLinter(message: string): import("@codemirror/state").Extension;
11
- //# sourceMappingURL=yamlSyntaxLinter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"yamlSyntaxLinter.d.ts","sourceRoot":"","sources":["../../src/utils/yamlSyntaxLinter.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,yCAoBrD"}
@@ -1,31 +0,0 @@
1
- // (C) 2026 GoodData Corporation
2
- import { syntaxTree } from "@codemirror/language";
3
- import { linter } from "@codemirror/lint";
4
- /**
5
- * Creates a CodeMirror linter extension that reports YAML syntax errors
6
- * by walking the parse tree for error nodes.
7
- *
8
- * This reuses the tree already built by `@codemirror/lang-yaml` for
9
- * highlighting — no extra parsing or dependencies required.
10
- *
11
- * @param message - localized message shown on each syntax error diagnostic
12
- */
13
- export function createYamlSyntaxLinter(message) {
14
- return linter((view) => {
15
- const diagnostics = [];
16
- const tree = syntaxTree(view.state);
17
- tree.iterate({
18
- enter(node) {
19
- if (node.type.isError) {
20
- diagnostics.push({
21
- from: node.from,
22
- to: Math.max(node.to, node.from + 1),
23
- severity: "error",
24
- message,
25
- });
26
- }
27
- },
28
- });
29
- return diagnostics;
30
- });
31
- }