react-semaphor 0.1.497 → 0.1.498

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 (106) hide show
  1. package/dist/analytics-protocol/index.cjs +1 -1
  2. package/dist/analytics-protocol/index.js +10 -10
  3. package/dist/brand-studio/index.cjs +1 -1
  4. package/dist/brand-studio/index.js +4 -4
  5. package/dist/briefings/index.cjs +1 -1
  6. package/dist/briefings/index.js +5 -5
  7. package/dist/chunks/{calculated-field-identity-Cq9GwHfE.js → calculated-field-identity-BGIPbwBx.js} +26 -26
  8. package/dist/chunks/{calculated-field-identity-DTfyvvLC.cjs → calculated-field-identity-CEzmY7Bi.cjs} +1 -1
  9. package/dist/chunks/{constants-CC3WKmqC.js → constants-CKoIADZx.js} +9 -9
  10. package/dist/chunks/{constants-DIuhVR6J.cjs → constants-CpBVuEea.cjs} +1 -1
  11. package/dist/chunks/{dashboard-briefing-launcher-CZZuHl61.cjs → dashboard-briefing-launcher-BEmyxEd8.cjs} +1 -1
  12. package/dist/chunks/{dashboard-briefing-launcher-72HdqDbJ.js → dashboard-briefing-launcher-C8eAX-JN.js} +9 -9
  13. package/dist/chunks/{dashboard-controls-BwisKmY9.js → dashboard-controls-C_v7sbq4.js} +11 -11
  14. package/dist/chunks/{dashboard-controls-B7YP9m8Y.cjs → dashboard-controls-YvJe7cPL.cjs} +1 -1
  15. package/dist/chunks/{dashboard-date-comparison-definition-C69F-zaC.cjs → dashboard-date-comparison-definition-Er8D33iq.cjs} +1 -1
  16. package/dist/chunks/{dashboard-date-comparison-definition-Bqti6YAo.js → dashboard-date-comparison-definition-aANgeL-E.js} +1 -1
  17. package/dist/chunks/{dashboard-json-C5Cu7-zC.js → dashboard-json-BaT3Yy8x.js} +7 -7
  18. package/dist/chunks/{dashboard-json-B6GTxo8h.cjs → dashboard-json-CSp5bXIV.cjs} +1 -1
  19. package/dist/chunks/{edit-dashboard-visual-drzAIBe2.js → edit-dashboard-visual-GWiW0jjy.js} +5440 -5453
  20. package/dist/chunks/{edit-dashboard-visual-DqBcJ1bo.cjs → edit-dashboard-visual-_Wap0YGu.cjs} +11 -11
  21. package/dist/chunks/{editor-action-buttons-Cm_fqm5R.cjs → editor-action-buttons-BSC0nwgV.cjs} +1 -1
  22. package/dist/chunks/{editor-action-buttons-B8HjvmzM.js → editor-action-buttons-CfZITZwQ.js} +6 -6
  23. package/dist/chunks/{field-aggregations-C8kZqMTD.js → field-aggregations-CxJWY4Ny.js} +11 -11
  24. package/dist/chunks/{field-aggregations-naKZ7S2Q.cjs → field-aggregations-DLWbqnBW.cjs} +1 -1
  25. package/dist/chunks/field-dependencies-BiyQuGxZ.cjs +1 -0
  26. package/dist/chunks/field-dependencies-CNOgt39w.js +182 -0
  27. package/dist/chunks/{index-oll4m-qi.js → index-BJfUMDHc.js} +42 -42
  28. package/dist/chunks/{index-CCa-A-Yx.cjs → index-C3RHKD3d.cjs} +1 -1
  29. package/dist/chunks/index-DhBGtRkR.cjs +1417 -0
  30. package/dist/chunks/{index-Cg8HZmMI.js → index-DjbQVfS6.js} +37381 -37119
  31. package/dist/chunks/{matrix-analytical-definition-BK5y9XHH.cjs → matrix-analytical-definition-DbaMwlWM.cjs} +1 -1
  32. package/dist/chunks/{matrix-analytical-definition-B1xhoCak.js → matrix-analytical-definition-s10yOPft.js} +1 -1
  33. package/dist/chunks/{matrix-card-Ii8yYSnw.cjs → matrix-card-BitrcBVw.cjs} +1 -1
  34. package/dist/chunks/{matrix-card-BEb6hr8i.js → matrix-card-DGpXdK_Y.js} +2 -2
  35. package/dist/chunks/{matrix-control-sources-CdegRBcA.cjs → matrix-control-sources-DdfST7Fo.cjs} +1 -1
  36. package/dist/chunks/{matrix-control-sources-cbYmqWNg.js → matrix-control-sources-Dxh6hOU9.js} +10 -10
  37. package/dist/chunks/{matrix-definition-CZM5-YJX.js → matrix-definition-AP5W3wGc.js} +1 -1
  38. package/dist/chunks/{matrix-definition-CSNthxru.cjs → matrix-definition-C33isJ3k.cjs} +1 -1
  39. package/dist/chunks/{matrix-formatter-CiXzpX6X.js → matrix-formatter-CZYFhdZ0.js} +44 -44
  40. package/dist/chunks/{matrix-formatter-C19PZAal.cjs → matrix-formatter-UCXQxvV3.cjs} +1 -1
  41. package/dist/chunks/{matrix-member-presentation-CabW8mJc.js → matrix-member-presentation-5-M0obIa.js} +1 -1
  42. package/dist/chunks/{matrix-member-presentation-CQHvq18l.cjs → matrix-member-presentation-DgIq9UG9.cjs} +1 -1
  43. package/dist/chunks/{matrix-operation-contract-0Nor-C71.js → matrix-operation-contract-BFumahBa.js} +21 -21
  44. package/dist/chunks/{matrix-operation-contract-o9GXbiHw.cjs → matrix-operation-contract-C0-V685e.cjs} +1 -1
  45. package/dist/chunks/{metric-comparison-DeiOjEm5.cjs → metric-comparison-ClKUI7Tu.cjs} +1 -1
  46. package/dist/chunks/{metric-comparison-Br8l0WkK.js → metric-comparison-Df3HmmUE.js} +1 -1
  47. package/dist/chunks/{pivot-header-presentation-DW-ti5ek.js → pivot-header-presentation-CAmKYLgn.js} +3 -3
  48. package/dist/chunks/{pivot-header-presentation-DRv-cSIP.cjs → pivot-header-presentation-CGWDx1V_.cjs} +1 -1
  49. package/dist/chunks/{pivot-result-identity-DEenUrMj.cjs → pivot-result-identity-0grcK7bY.cjs} +1 -1
  50. package/dist/chunks/{pivot-result-identity-sZc1RaIz.js → pivot-result-identity-DBeK76wx.js} +1 -1
  51. package/dist/chunks/{pivot-result-lifecycle-D81qcCcZ.cjs → pivot-result-lifecycle-CC0jWMFT.cjs} +1 -1
  52. package/dist/chunks/{pivot-result-lifecycle-DJ40gdwk.js → pivot-result-lifecycle-DVPJg7Gg.js} +7 -7
  53. package/dist/chunks/{raw-temporal-DDTt2yv5.cjs → raw-temporal-Kc3mdzH7.cjs} +1 -1
  54. package/dist/chunks/{raw-temporal-DHCZrFe7.js → raw-temporal-T3PEaGmJ.js} +2 -2
  55. package/dist/chunks/{raw-temporal-contract-CkvdtPYA.js → raw-temporal-contract-Ck5vJoQ6.js} +1 -1
  56. package/dist/chunks/{raw-temporal-contract-BcbV56Rc.cjs → raw-temporal-contract-SwtP1jSh.cjs} +1 -1
  57. package/dist/chunks/{report-preferences-dialog-KI7AgU11.js → report-preferences-dialog-B8DdDM7q.js} +6 -6
  58. package/dist/chunks/{report-preferences-dialog-BOGeoFLL.cjs → report-preferences-dialog-BcaEOgn2.cjs} +1 -1
  59. package/dist/chunks/{report-runtime-context-BlDpc-F-.js → report-runtime-context-BziN1eg9.js} +1 -1
  60. package/dist/chunks/{report-runtime-context-lSIvyKm2.cjs → report-runtime-context-D3t8vyl9.cjs} +1 -1
  61. package/dist/chunks/{semantic-format-ew5zviaT.js → semantic-format-A3k--fpE.js} +2 -2
  62. package/dist/chunks/{semantic-format--_VEin18.cjs → semantic-format-Ca-sdETk.cjs} +1 -1
  63. package/dist/chunks/{source-entity-resolution-DPjslVgx.cjs → source-entity-resolution-CTUzMH2S.cjs} +1 -1
  64. package/dist/chunks/{source-entity-resolution-79Rihbk3.js → source-entity-resolution-DX9C1ebK.js} +20 -20
  65. package/dist/chunks/{switch-wR8lV0zN.cjs → switch-CgycqpWv.cjs} +22 -22
  66. package/dist/chunks/{switch-DlLDM7Pu.js → switch-DV8zX7rV.js} +1306 -1295
  67. package/dist/chunks/{temporal-bucket-contract-BYR6tj6F.cjs → temporal-bucket-contract-BBdvWsY0.cjs} +1 -1
  68. package/dist/chunks/{temporal-bucket-contract-C-kKQ_W4.js → temporal-bucket-contract-lq7Jrif0.js} +1 -1
  69. package/dist/chunks/{update-policy-BCtFr2Qh.cjs → update-policy-DIw_H9RT.cjs} +1 -1
  70. package/dist/chunks/{update-policy-CP_A1IVD.js → update-policy-EgZ1nRbd.js} +2 -2
  71. package/dist/chunks/{validators-D-_IT-Xw.js → validators-CvLOGzT3.js} +291 -286
  72. package/dist/chunks/validators-mhiJSia7.cjs +1 -0
  73. package/dist/dashboard/index.cjs +1 -1
  74. package/dist/dashboard/index.js +1 -1
  75. package/dist/dashboard-authoring/index.cjs +1 -1
  76. package/dist/dashboard-authoring/index.js +9 -9
  77. package/dist/data-app-builder/index.cjs +1 -1
  78. package/dist/data-app-builder/index.js +2 -2
  79. package/dist/data-app-codegen/index.cjs +1 -1
  80. package/dist/data-app-codegen/index.js +2 -2
  81. package/dist/data-app-codegen-node/index.cjs +1 -1
  82. package/dist/data-app-codegen-node/index.js +3 -3
  83. package/dist/data-app-sdk/index.cjs +1 -1
  84. package/dist/data-app-sdk/index.js +232 -232
  85. package/dist/data-app-sdk-adapters/index.cjs +1 -1
  86. package/dist/data-app-sdk-adapters/index.js +2 -2
  87. package/dist/data-app-sdk-validation/index.cjs +1 -1
  88. package/dist/data-app-sdk-validation/index.js +5 -5
  89. package/dist/format-utils/index.cjs +1 -1
  90. package/dist/format-utils/index.js +16 -16
  91. package/dist/index.cjs +1 -1
  92. package/dist/index.js +57 -56
  93. package/dist/report-runtime-context/index.cjs +1 -1
  94. package/dist/report-runtime-context/index.js +2 -2
  95. package/dist/style.css +1 -1
  96. package/dist/surfboard/index.cjs +1 -1
  97. package/dist/surfboard/index.js +2 -2
  98. package/dist/types/index.cjs +1 -1
  99. package/dist/types/index.js +31 -21
  100. package/dist/types/main.d.ts +9 -0
  101. package/dist/types/types.d.ts +107 -0
  102. package/package.json +1 -1
  103. package/dist/chunks/index-B8-qrqSa.cjs +0 -1417
  104. package/dist/chunks/token-types-BIYFAsGq.js +0 -8
  105. package/dist/chunks/token-types-CkAGFhiW.cjs +0 -1
  106. package/dist/chunks/validators-ux2obZB9.cjs +0 -1
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/index-B8-qrqSa.cjs"),r=require("../chunks/common-types-nBuCd3u2.cjs"),o=require("../chunks/report-preferences-dialog-BOGeoFLL.cjs");exports.DisplayFormatPreferencesFields=e.DisplayFormatPreferencesFields;exports.Surfboard=e.DashboardPlus;exports.CONTROL_CARD_DEFAULT_VALUE=r.CONTROL_CARD_DEFAULT_VALUE;exports.EMPTY_SELECTION=r.EMPTY_SELECTION;exports.ReportPreferencesDialog=o.ReportPreferencesDialog;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/index-DhBGtRkR.cjs"),r=require("../chunks/common-types-nBuCd3u2.cjs"),o=require("../chunks/report-preferences-dialog-BcaEOgn2.cjs");exports.DisplayFormatPreferencesFields=e.DisplayFormatPreferencesFields;exports.Surfboard=e.DashboardPlus;exports.CONTROL_CARD_DEFAULT_VALUE=r.CONTROL_CARD_DEFAULT_VALUE;exports.EMPTY_SELECTION=r.EMPTY_SELECTION;exports.ReportPreferencesDialog=o.ReportPreferencesDialog;
@@ -1,6 +1,6 @@
1
- import { b as a, a as o } from "../chunks/index-Cg8HZmMI.js";
1
+ import { b as a, a as o } from "../chunks/index-DjbQVfS6.js";
2
2
  import { C as f, E } from "../chunks/common-types-C6cAQgyh.js";
3
- import { R as t } from "../chunks/report-preferences-dialog-KI7AgU11.js";
3
+ import { R as t } from "../chunks/report-preferences-dialog-B8DdDM7q.js";
4
4
  export {
5
5
  f as CONTROL_CARD_DEFAULT_VALUE,
6
6
  a as DisplayFormatPreferencesFields,
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../chunks/common-types-nBuCd3u2.cjs"),e=require("../chunks/validators-ux2obZB9.cjs"),l=require("../chunks/token-types-CkAGFhiW.cjs"),E=require("../chunks/pivot-result-identity-DEenUrMj.cjs"),a=require("../chunks/report-runtime-context-lSIvyKm2.cjs");exports.CONTROL_CARD_DEFAULT_VALUE=t.CONTROL_CARD_DEFAULT_VALUE;exports.EMPTY_SELECTION=t.EMPTY_SELECTION;exports.CALCULATED_FIELD_ENTITY_MARKER=e.CALCULATED_FIELD_ENTITY_MARKER;exports.DATE_FORMAT_VALUES=e.DATE_FORMAT_VALUES;exports.LEGACY_CALCULATED_FIELD_ENTITY_MARKER=e.LEGACY_CALCULATED_FIELD_ENTITY_MARKER;exports.PivotMarkerEnum=e.PivotMarkerEnum;exports.getFieldRuntimeColumnName=e.getFieldRuntimeColumnName;exports.hasCalculatedFieldMarker=e.hasCalculatedFieldMarker;exports.hasCalculatedFormulaInputs=e.hasCalculatedFormulaInputs;exports.hasSyntheticCalculatedFieldOwner=e.hasSyntheticCalculatedFieldOwner;exports.isCalculatedDimension=e.isCalculatedDimension;exports.isCalculatedField=e.isCalculatedField;exports.isCalculatedMetric=e.isCalculatedMetric;exports.DEFAULT_SEMANTIC_DOMAIN_ACCESS=l.DEFAULT_SEMANTIC_DOMAIN_ACCESS;exports.resolveQueryColumnKeyMapEntry=E.resolveQueryColumnKeyMapEntry;exports.resolveUniqueQueryColumnKeyMapEntry=E.resolveUniqueQueryColumnKeyMapEntry;exports.DEFAULT_CALENDAR_CONTEXT=a.DEFAULT_CALENDAR_CONTEXT;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("../chunks/common-types-nBuCd3u2.cjs"),e=require("../chunks/validators-mhiJSia7.cjs"),t=require("../chunks/field-dependencies-BiyQuGxZ.cjs"),a=require("../chunks/pivot-result-identity-0grcK7bY.cjs"),r=require("../chunks/report-runtime-context-D3t8vyl9.cjs");exports.CONTROL_CARD_DEFAULT_VALUE=l.CONTROL_CARD_DEFAULT_VALUE;exports.EMPTY_SELECTION=l.EMPTY_SELECTION;exports.CALCULATED_FIELD_ENTITY_MARKER=e.CALCULATED_FIELD_ENTITY_MARKER;exports.DATE_FORMAT_VALUES=e.DATE_FORMAT_VALUES;exports.LEGACY_CALCULATED_FIELD_ENTITY_MARKER=e.LEGACY_CALCULATED_FIELD_ENTITY_MARKER;exports.PivotMarkerEnum=e.PivotMarkerEnum;exports.getFieldRuntimeColumnName=e.getFieldRuntimeColumnName;exports.hasCalculatedFieldMarker=e.hasCalculatedFieldMarker;exports.hasCalculatedFormulaInputs=e.hasCalculatedFormulaInputs;exports.hasSyntheticCalculatedFieldOwner=e.hasSyntheticCalculatedFieldOwner;exports.isCalculatedDimension=e.isCalculatedDimension;exports.isCalculatedField=e.isCalculatedField;exports.isCalculatedMetric=e.isCalculatedMetric;exports.isDerivedField=e.isDerivedField;exports.DEFAULT_SEMANTIC_DOMAIN_ACCESS=t.DEFAULT_SEMANTIC_DOMAIN_ACCESS;exports.collectDatasetNamesFromExplorerField=t.collectDatasetNamesFromExplorerField;exports.collectDatasetNamesFromFilterGroup=t.collectDatasetNamesFromFilterGroup;exports.collectExecutionDatasetNamesFromExplorerField=t.collectExecutionDatasetNamesFromExplorerField;exports.collectPreferredDatasetNamesFromExplorerField=t.collectPreferredDatasetNamesFromExplorerField;exports.collectQualifiedDatasetNamesFromExplorerField=t.collectQualifiedDatasetNamesFromExplorerField;exports.datasetRefFromSource=t.datasetRefFromSource;exports.dependencyDisplayIdentity=t.dependencyDisplayIdentity;exports.humanizeDatasetName=t.humanizeDatasetName;exports.resolveFieldDatasetDependencies=t.resolveFieldDatasetDependencies;exports.resolveQueryColumnKeyMapEntry=a.resolveQueryColumnKeyMapEntry;exports.resolveUniqueQueryColumnKeyMapEntry=a.resolveUniqueQueryColumnKeyMapEntry;exports.DEFAULT_CALENDAR_CONTEXT=r.DEFAULT_CALENDAR_CONTEXT;
@@ -1,24 +1,34 @@
1
- import { C as s, E } from "../chunks/common-types-C6cAQgyh.js";
2
- import { C, D as l, L as t, P as A, g as o, c as _, h as T, d as u, a as L, b as i, i as D } from "../chunks/validators-D-_IT-Xw.js";
3
- import { D as n } from "../chunks/token-types-BIYFAsGq.js";
4
- import { r as F, a as M } from "../chunks/pivot-result-identity-sZc1RaIz.js";
5
- import { D as N } from "../chunks/report-runtime-context-BlDpc-F-.js";
1
+ import { C as s, E as r } from "../chunks/common-types-C6cAQgyh.js";
2
+ import { C as t, D as o, L as i, P as E, g as d, d as m, h as D, e as c, a as C, b as F, i as u, c as n } from "../chunks/validators-CvLOGzT3.js";
3
+ import { D as _, c as T, g as p, f as L, b as N, e as M, d as x, a as y, h as R, r as f } from "../chunks/field-dependencies-CNOgt39w.js";
4
+ import { r as U, a as h } from "../chunks/pivot-result-identity-DBeK76wx.js";
5
+ import { D as S } from "../chunks/report-runtime-context-BziN1eg9.js";
6
6
  export {
7
- C as CALCULATED_FIELD_ENTITY_MARKER,
7
+ t as CALCULATED_FIELD_ENTITY_MARKER,
8
8
  s as CONTROL_CARD_DEFAULT_VALUE,
9
- l as DATE_FORMAT_VALUES,
10
- N as DEFAULT_CALENDAR_CONTEXT,
11
- n as DEFAULT_SEMANTIC_DOMAIN_ACCESS,
12
- E as EMPTY_SELECTION,
13
- t as LEGACY_CALCULATED_FIELD_ENTITY_MARKER,
14
- A as PivotMarkerEnum,
15
- o as getFieldRuntimeColumnName,
16
- _ as hasCalculatedFieldMarker,
17
- T as hasCalculatedFormulaInputs,
18
- u as hasSyntheticCalculatedFieldOwner,
19
- L as isCalculatedDimension,
20
- i as isCalculatedField,
21
- D as isCalculatedMetric,
22
- F as resolveQueryColumnKeyMapEntry,
23
- M as resolveUniqueQueryColumnKeyMapEntry
9
+ o as DATE_FORMAT_VALUES,
10
+ S as DEFAULT_CALENDAR_CONTEXT,
11
+ _ as DEFAULT_SEMANTIC_DOMAIN_ACCESS,
12
+ r as EMPTY_SELECTION,
13
+ i as LEGACY_CALCULATED_FIELD_ENTITY_MARKER,
14
+ E as PivotMarkerEnum,
15
+ T as collectDatasetNamesFromExplorerField,
16
+ p as collectDatasetNamesFromFilterGroup,
17
+ L as collectExecutionDatasetNamesFromExplorerField,
18
+ N as collectPreferredDatasetNamesFromExplorerField,
19
+ M as collectQualifiedDatasetNamesFromExplorerField,
20
+ x as datasetRefFromSource,
21
+ y as dependencyDisplayIdentity,
22
+ d as getFieldRuntimeColumnName,
23
+ m as hasCalculatedFieldMarker,
24
+ D as hasCalculatedFormulaInputs,
25
+ c as hasSyntheticCalculatedFieldOwner,
26
+ R as humanizeDatasetName,
27
+ C as isCalculatedDimension,
28
+ F as isCalculatedField,
29
+ u as isCalculatedMetric,
30
+ n as isDerivedField,
31
+ f as resolveFieldDatasetDependencies,
32
+ U as resolveQueryColumnKeyMapEntry,
33
+ h as resolveUniqueQueryColumnKeyMapEntry
24
34
  };
@@ -11248,6 +11248,15 @@ export declare function isColumnInSqlGen(column: TDataColumn, sqlGen: SqlGen): b
11248
11248
 
11249
11249
  export declare function isDateDataType(dataType: string): boolean;
11250
11250
 
11251
+ /**
11252
+ * True for every representation of a derived (calculated) field:
11253
+ * an expression, formula inputs, the shared-contract `derivedField`
11254
+ * (the only shape Matrix-authored calculations may carry), or a synthetic
11255
+ * calculated-field owner. Use this, not `isCalculatedField`, wherever the
11256
+ * question is "is this computed rather than stored".
11257
+ */
11258
+ export declare function isDerivedField(field: Field | null | undefined): boolean;
11259
+
11251
11260
  /**
11252
11261
  * Check if an export has completed (successfully or with failure)
11253
11262
  */
@@ -1897,6 +1897,16 @@ declare interface ClickFilterInteraction {
1897
1897
  label?: string;
1898
1898
  }
1899
1899
 
1900
+ export declare function collectDatasetNamesFromExplorerField(field: ExplorerField | null | undefined, datasets: Set<string>, visitedFields?: Set<string>, visitedGroups?: Set<string>, options?: DatasetCollectionOptions): void;
1901
+
1902
+ export declare function collectDatasetNamesFromFilterGroup(filters: FilterGroup | null | undefined, datasets: Set<string>, visitedFields?: Set<string>, visitedGroups?: Set<string>, options?: DatasetCollectionOptions): void;
1903
+
1904
+ export declare function collectExecutionDatasetNamesFromExplorerField(field: ExplorerField | null | undefined, datasets: Set<string>, visitedFields?: Set<string>, visitedGroups?: Set<string>): void;
1905
+
1906
+ export declare function collectPreferredDatasetNamesFromExplorerField(field: ExplorerField | null | undefined, datasets: Set<string>): void;
1907
+
1908
+ export declare function collectQualifiedDatasetNamesFromExplorerField(field: ExplorerField | null | undefined, datasets: Set<string>, visitedFields?: Set<string>, visitedGroups?: Set<string>): void;
1909
+
1900
1910
  export declare type ColorConfig = {
1901
1911
  segments: Record<string, string>;
1902
1912
  };
@@ -4946,6 +4956,13 @@ export declare interface DataModelEntityReference extends DatabaseEntityReferenc
4946
4956
  description: string;
4947
4957
  }
4948
4958
 
4959
+ export declare type DatasetCollectionOptions = {
4960
+ /** Include datasets referenced by metric filter conditions. Default true. */
4961
+ includeMetricFilterDatasets?: boolean;
4962
+ /** Emit `qualifiedEntityName` when it is dotted, otherwise `entityName`. Default false. */
4963
+ preferQualifiedIdentity?: boolean;
4964
+ };
4965
+
4949
4966
  export declare interface DatasetEntityReference extends DatabaseEntityReference {
4950
4967
  type: 'dataset';
4951
4968
  datasetType: 'physical' | 'virtual';
@@ -4959,6 +4976,14 @@ export declare interface DatasetEntityReference extends DatabaseEntityReference
4959
4976
  description?: string;
4960
4977
  }
4961
4978
 
4979
+ /**
4980
+ * The dataset a shared analytics `source` ref names. Semantic sources are
4981
+ * the dataset name; physical sources keep database/schema/table so distinct
4982
+ * tables stay distinct. The single mapping for both the walker and the
4983
+ * calculator's identity resolver.
4984
+ */
4985
+ export declare function datasetRefFromSource(source: Field['source'] | undefined): FieldDatasetDependency | undefined;
4986
+
4962
4987
  export declare interface DataSource {
4963
4988
  connectionId: string;
4964
4989
  semanticDomainId?: string;
@@ -5026,6 +5051,9 @@ export declare type DeleteBriefingRunResponse = {
5026
5051
  deletedRunId: string;
5027
5052
  };
5028
5053
 
5054
+ /** Best available identity for a dependency: name, else qualified name. */
5055
+ export declare function dependencyDisplayIdentity(dep: FieldDatasetDependency): string;
5056
+
5029
5057
  /**
5030
5058
  * Field configuration for detail table columns.
5031
5059
  * Unlike GroupByField, DetailField does not support aggregation or granularity.
@@ -5725,6 +5753,41 @@ declare const expansionShape: z.ZodObject<{
5725
5753
  }[];
5726
5754
  }>;
5727
5755
 
5756
+ /**
5757
+ * Field dependency resolution (shared by server planning and client UX)
5758
+ * =====================================================================
5759
+ *
5760
+ * One question, answered in one place for every field representation:
5761
+ *
5762
+ * "Which datasets does this field read from?"
5763
+ *
5764
+ * Consumers:
5765
+ * - semaphor-app query planning (join resolution, filter applicability,
5766
+ * fan-out analysis) via the `collect*` functions, which keep the
5767
+ * original server API and semantics.
5768
+ * - react-semaphor field availability ("usable in this chart") via
5769
+ * `resolveFieldDatasetDependencies`, which returns full dependency
5770
+ * objects with qualified identity.
5771
+ *
5772
+ * Representations handled, in order, by ONE walker:
5773
+ * 1. A field owned by a real dataset is a leaf on that dataset, even when
5774
+ * it carries an expression (inline domain expressions, query-local
5775
+ * aliases). Synthetic owners (the calculated-field markers, the
5776
+ * `calculated_fields` group, or no owner) are never leaves.
5777
+ * 2. `calculatedFormula.inputFields`: full Field objects, walked
5778
+ * recursively.
5779
+ * 3. `derivedField.inputs[*].field.source`: the shared analytics contract,
5780
+ * used only when there are no formula inputs (both encode the same
5781
+ * inputs). Semantic sources resolve to the dataset name; physical
5782
+ * sources keep database/schema/table so `public.orders` and
5783
+ * `archive.orders` stay distinct. This is the only representation
5784
+ * Matrix-authored calculations may carry.
5785
+ * 4. Metric filter conditions (`parameters.filters`), when requested.
5786
+ *
5787
+ * Adding a representation means adding it here, once.
5788
+ */
5789
+ declare type ExplorerField = Field | GroupByField | MetricField;
5790
+
5728
5791
  export declare type ExportDataPayload = {
5729
5792
  cardId: string;
5730
5793
  title: string;
@@ -5803,6 +5866,30 @@ export declare interface Field {
5803
5866
  fieldScope?: FieldScope;
5804
5867
  }
5805
5868
 
5869
+ export declare type FieldDatasetDependency = {
5870
+ /**
5871
+ * Dataset name as the catalog knows it (entityName / datasetName / table).
5872
+ * Empty string when the source carried only a qualified name.
5873
+ */
5874
+ entityName: string;
5875
+ entityId?: string;
5876
+ /** Qualified identity when known (`schema.table`, `db.schema.table`, or the field's qualifiedEntityName). */
5877
+ qualifiedEntityName?: string;
5878
+ /** Human label when the source carried one. */
5879
+ label?: string;
5880
+ };
5881
+
5882
+ export declare type FieldDependencyResolution = {
5883
+ /** Unique datasets, in first-seen order. */
5884
+ datasets: FieldDatasetDependency[];
5885
+ /**
5886
+ * False when at least one input could not be traced to a dataset (for
5887
+ * example a metric-to-metric reference that was not expanded into input
5888
+ * fields). Callers must not claim the field is available in that case.
5889
+ */
5890
+ complete: boolean;
5891
+ };
5892
+
5806
5893
  export declare type FieldScope = 'card' | 'sheet' | 'dashboard' | 'domain';
5807
5894
 
5808
5895
  declare type FileAttachment = {
@@ -6117,6 +6204,9 @@ export declare type HtmlOptions = {
6117
6204
  html: string;
6118
6205
  };
6119
6206
 
6207
+ /** Humanize a catalog dataset name for customer-facing copy. */
6208
+ export declare function humanizeDatasetName(name: string, labels?: Record<string, string>): string;
6209
+
6120
6210
  declare interface InlineDrillEvent extends BaseInteractionEvent {
6121
6211
  interactionMode: 'inlineDrill';
6122
6212
  fetchMode?: 'lazy' | 'preloaded';
@@ -6295,6 +6385,15 @@ export declare function isCalculatedMetric(field: Field): field is MetricField &
6295
6385
  expression: string;
6296
6386
  };
6297
6387
 
6388
+ /**
6389
+ * True for every representation of a derived (calculated) field:
6390
+ * an expression, formula inputs, the shared-contract `derivedField`
6391
+ * (the only shape Matrix-authored calculations may carry), or a synthetic
6392
+ * calculated-field owner. Use this, not `isCalculatedField`, wherever the
6393
+ * question is "is this computed rather than stored".
6394
+ */
6395
+ export declare function isDerivedField(field: Field | null | undefined): boolean;
6396
+
6298
6397
  export declare interface Join {
6299
6398
  id: string;
6300
6399
  source: DatabaseEntityReference;
@@ -8729,6 +8828,14 @@ declare type ResolvedValueFormatPreferenceSources = {
8729
8828
  defaultCurrency: ReportPreferenceSource;
8730
8829
  };
8731
8830
 
8831
+ /**
8832
+ * Resolve the datasets a field reads from, with qualified identity.
8833
+ * Base fields resolve to their own dataset; calculated fields resolve
8834
+ * through their inputs. Metric filter datasets are not included: they do
8835
+ * not affect whether the field itself can be added.
8836
+ */
8837
+ export declare function resolveFieldDatasetDependencies(field: Field): FieldDependencyResolution;
8838
+
8732
8839
  export declare function resolveQueryColumnKeyMapEntry(columnKeyMap: QueryColumnKeyMap_2 | undefined, fieldId: string, role: QueryColumnKeyRole): QueryColumnKeyMapEntry | undefined;
8733
8840
 
8734
8841
  export declare function resolveUniqueQueryColumnKeyMapEntry(columnKeyMap: QueryColumnKeyMap_2 | undefined, fieldId: string): QueryColumnKeyMapEntry | undefined;
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "email": "support@semaphor.cloud"
6
6
  },
7
7
  "license": "MIT",
8
- "version": "0.1.497",
8
+ "version": "0.1.498",
9
9
  "description": "Fully interactive and customizable dashboards for your apps.",
10
10
  "keywords": [
11
11
  "react",