@aquera/nile-visualization 1.5.0 → 1.7.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 (189) hide show
  1. package/dist/src/internal/types/chart-anomaly-config.type.d.ts +11 -0
  2. package/dist/src/internal/types/chart-area-config.type.d.ts +12 -0
  3. package/dist/src/internal/types/chart-area-negative-config.type.d.ts +11 -0
  4. package/dist/src/internal/types/chart-area-range-config.type.d.ts +11 -0
  5. package/dist/src/internal/types/chart-area-spline-config.type.d.ts +11 -0
  6. package/dist/src/internal/types/chart-bar-config.type.d.ts +12 -0
  7. package/dist/src/internal/types/chart-bellcurve-config.type.d.ts +11 -0
  8. package/dist/src/internal/types/chart-boxplot-config.type.d.ts +11 -0
  9. package/dist/src/internal/types/chart-bubble-config.type.d.ts +12 -0
  10. package/dist/src/internal/types/chart-cluster-config.type.d.ts +11 -0
  11. package/dist/src/internal/types/chart-column-config.type.d.ts +12 -0
  12. package/dist/src/internal/types/chart-column-drilldown-config.type.d.ts +11 -0
  13. package/dist/src/internal/types/chart-column-pyramid-config.type.d.ts +11 -0
  14. package/dist/src/internal/types/chart-column-range-config.type.d.ts +11 -0
  15. package/dist/src/internal/types/chart-donut-config.type.d.ts +11 -0
  16. package/dist/src/internal/types/chart-dumbbell-config.type.d.ts +11 -0
  17. package/dist/src/internal/types/chart-euler-config.type.d.ts +11 -0
  18. package/dist/src/internal/types/chart-fan-config.type.d.ts +11 -0
  19. package/dist/src/internal/types/chart-flame-config.type.d.ts +11 -0
  20. package/dist/src/internal/types/chart-funnel-config.type.d.ts +11 -0
  21. package/dist/src/internal/types/chart-gauge-config.type.d.ts +11 -0
  22. package/dist/src/internal/types/chart-heatmap-config.type.d.ts +12 -0
  23. package/dist/src/internal/types/chart-histogram-config.type.d.ts +11 -0
  24. package/dist/src/internal/types/chart-line-column-config.type.d.ts +11 -0
  25. package/dist/src/internal/types/chart-line-config.type.d.ts +12 -0
  26. package/dist/src/internal/types/chart-lollipop-config.type.d.ts +11 -0
  27. package/dist/src/internal/types/chart-map-config.type.d.ts +11 -0
  28. package/dist/src/internal/types/chart-organization-config.type.d.ts +11 -0
  29. package/dist/src/internal/types/chart-pie-config.type.d.ts +11 -0
  30. package/dist/src/internal/types/chart-polygon-config.type.d.ts +11 -0
  31. package/dist/src/internal/types/chart-radar-config.type.d.ts +12 -0
  32. package/dist/src/internal/types/chart-radial-bar-config.type.d.ts +12 -0
  33. package/dist/src/internal/types/chart-scatter-config.type.d.ts +12 -0
  34. package/dist/src/internal/types/chart-spiderweb-config.type.d.ts +12 -0
  35. package/dist/src/internal/types/chart-spline-config.type.d.ts +12 -0
  36. package/dist/src/internal/types/chart-stacked-config.type.d.ts +11 -0
  37. package/dist/src/internal/types/chart-timeline-config.type.d.ts +11 -0
  38. package/dist/src/internal/types/chart-trendline-config.type.d.ts +11 -0
  39. package/dist/src/internal/types/chart-variable-pie-config.type.d.ts +11 -0
  40. package/dist/src/internal/types/chart-vector-config.type.d.ts +11 -0
  41. package/dist/src/internal/types/chart-waterfall-config.type.d.ts +12 -0
  42. package/dist/src/internal/types/chart-xrange-config.type.d.ts +12 -0
  43. package/dist/src/nile-anomaly-chart/nile-anomaly-chart.css.js +20 -4
  44. package/dist/src/nile-anomaly-chart/nile-anomaly-chart.d.ts +12 -0
  45. package/dist/src/nile-anomaly-chart/nile-anomaly-chart.js +95 -1
  46. package/dist/src/nile-area-chart/nile-area-chart.css.js +20 -4
  47. package/dist/src/nile-area-chart/nile-area-chart.d.ts +13 -0
  48. package/dist/src/nile-area-chart/nile-area-chart.js +107 -3
  49. package/dist/src/nile-area-negative-chart/nile-area-negative-chart.css.js +20 -4
  50. package/dist/src/nile-area-negative-chart/nile-area-negative-chart.d.ts +12 -0
  51. package/dist/src/nile-area-negative-chart/nile-area-negative-chart.js +73 -1
  52. package/dist/src/nile-area-range-chart/nile-area-range-chart.css.js +20 -4
  53. package/dist/src/nile-area-range-chart/nile-area-range-chart.d.ts +12 -0
  54. package/dist/src/nile-area-range-chart/nile-area-range-chart.js +73 -1
  55. package/dist/src/nile-area-spline-chart/nile-area-spline-chart.css.js +20 -4
  56. package/dist/src/nile-area-spline-chart/nile-area-spline-chart.d.ts +12 -0
  57. package/dist/src/nile-area-spline-chart/nile-area-spline-chart.js +73 -1
  58. package/dist/src/nile-bar-chart/nile-bar-chart.css.js +20 -4
  59. package/dist/src/nile-bar-chart/nile-bar-chart.d.ts +14 -0
  60. package/dist/src/nile-bar-chart/nile-bar-chart.js +104 -1
  61. package/dist/src/nile-bellcurve-chart/nile-bellcurve-chart.css.js +20 -4
  62. package/dist/src/nile-bellcurve-chart/nile-bellcurve-chart.d.ts +12 -0
  63. package/dist/src/nile-bellcurve-chart/nile-bellcurve-chart.js +73 -1
  64. package/dist/src/nile-boxplot-chart/nile-boxplot-chart.css.js +20 -4
  65. package/dist/src/nile-boxplot-chart/nile-boxplot-chart.d.ts +12 -0
  66. package/dist/src/nile-boxplot-chart/nile-boxplot-chart.js +73 -1
  67. package/dist/src/nile-bubble-chart/nile-bubble-chart.css.js +20 -4
  68. package/dist/src/nile-bubble-chart/nile-bubble-chart.d.ts +13 -0
  69. package/dist/src/nile-bubble-chart/nile-bubble-chart.js +107 -3
  70. package/dist/src/nile-chart/nile-chart-config.d.ts +331 -38
  71. package/dist/src/nile-chart/nile-chart.css.js +1 -1
  72. package/dist/src/nile-chart/nile-chart.d.ts +0 -3
  73. package/dist/src/nile-chart/nile-chart.js +546 -2
  74. package/dist/src/nile-cluster-chart/nile-cluster-chart.css.js +20 -4
  75. package/dist/src/nile-cluster-chart/nile-cluster-chart.d.ts +12 -0
  76. package/dist/src/nile-cluster-chart/nile-cluster-chart.js +73 -1
  77. package/dist/src/nile-column-chart/nile-column-chart.css.js +20 -4
  78. package/dist/src/nile-column-chart/nile-column-chart.d.ts +13 -0
  79. package/dist/src/nile-column-chart/nile-column-chart.js +107 -3
  80. package/dist/src/nile-column-drilldown-chart/nile-column-drilldown-chart.css.js +20 -4
  81. package/dist/src/nile-column-drilldown-chart/nile-column-drilldown-chart.d.ts +12 -0
  82. package/dist/src/nile-column-drilldown-chart/nile-column-drilldown-chart.js +73 -1
  83. package/dist/src/nile-column-pyramid-chart/nile-column-pyramid-chart.css.js +20 -4
  84. package/dist/src/nile-column-pyramid-chart/nile-column-pyramid-chart.d.ts +12 -0
  85. package/dist/src/nile-column-pyramid-chart/nile-column-pyramid-chart.js +73 -1
  86. package/dist/src/nile-column-range-chart/nile-column-range-chart.css.js +20 -4
  87. package/dist/src/nile-column-range-chart/nile-column-range-chart.d.ts +12 -0
  88. package/dist/src/nile-column-range-chart/nile-column-range-chart.js +73 -1
  89. package/dist/src/nile-dashboard-viewer/nile-dashboard-viewer.css.js +10 -0
  90. package/dist/src/nile-dashboard-viewer/nile-dashboard-viewer.d.ts +10 -14
  91. package/dist/src/nile-dashboard-viewer/nile-dashboard-viewer.js +36 -14
  92. package/dist/src/nile-donut-chart/nile-donut-chart.css.js +20 -4
  93. package/dist/src/nile-donut-chart/nile-donut-chart.d.ts +12 -0
  94. package/dist/src/nile-donut-chart/nile-donut-chart.js +99 -2
  95. package/dist/src/nile-dumbbell-chart/nile-dumbbell-chart.css.js +20 -4
  96. package/dist/src/nile-dumbbell-chart/nile-dumbbell-chart.d.ts +12 -0
  97. package/dist/src/nile-dumbbell-chart/nile-dumbbell-chart.js +73 -1
  98. package/dist/src/nile-dumbbell-lower-chart/nile-dumbbell-lower-chart.css.js +20 -4
  99. package/dist/src/nile-dumbbell-lower-chart/nile-dumbbell-lower-chart.d.ts +12 -0
  100. package/dist/src/nile-dumbbell-lower-chart/nile-dumbbell-lower-chart.js +73 -1
  101. package/dist/src/nile-dumbbell-upper-chart/nile-dumbbell-upper-chart.css.js +20 -4
  102. package/dist/src/nile-dumbbell-upper-chart/nile-dumbbell-upper-chart.d.ts +12 -0
  103. package/dist/src/nile-dumbbell-upper-chart/nile-dumbbell-upper-chart.js +73 -1
  104. package/dist/src/nile-euler-chart/nile-euler-chart.css.js +20 -4
  105. package/dist/src/nile-euler-chart/nile-euler-chart.d.ts +12 -0
  106. package/dist/src/nile-euler-chart/nile-euler-chart.js +73 -1
  107. package/dist/src/nile-fan-chart/nile-fan-chart.css.js +20 -4
  108. package/dist/src/nile-fan-chart/nile-fan-chart.d.ts +12 -0
  109. package/dist/src/nile-fan-chart/nile-fan-chart.js +73 -1
  110. package/dist/src/nile-flame-chart/nile-flame-chart.css.js +20 -4
  111. package/dist/src/nile-flame-chart/nile-flame-chart.d.ts +12 -0
  112. package/dist/src/nile-flame-chart/nile-flame-chart.js +73 -1
  113. package/dist/src/nile-funnel-chart/nile-funnel-chart.css.js +20 -4
  114. package/dist/src/nile-funnel-chart/nile-funnel-chart.d.ts +12 -0
  115. package/dist/src/nile-funnel-chart/nile-funnel-chart.js +73 -1
  116. package/dist/src/nile-gauge-chart/nile-gauge-chart.css.js +20 -4
  117. package/dist/src/nile-gauge-chart/nile-gauge-chart.d.ts +12 -0
  118. package/dist/src/nile-gauge-chart/nile-gauge-chart.js +95 -2
  119. package/dist/src/nile-heatmap-chart/nile-heatmap-chart.css.js +20 -4
  120. package/dist/src/nile-heatmap-chart/nile-heatmap-chart.d.ts +13 -0
  121. package/dist/src/nile-heatmap-chart/nile-heatmap-chart.js +79 -2
  122. package/dist/src/nile-histogram-chart/nile-histogram-chart.css.js +20 -4
  123. package/dist/src/nile-histogram-chart/nile-histogram-chart.d.ts +12 -0
  124. package/dist/src/nile-histogram-chart/nile-histogram-chart.js +73 -1
  125. package/dist/src/nile-inverted-area-chart/nile-inverted-area-chart.css.js +20 -4
  126. package/dist/src/nile-inverted-area-chart/nile-inverted-area-chart.d.ts +12 -0
  127. package/dist/src/nile-inverted-area-chart/nile-inverted-area-chart.js +73 -1
  128. package/dist/src/nile-kpi-chart/nile-kpi-chart.css.d.ts +1 -1
  129. package/dist/src/nile-kpi-chart/nile-kpi-chart.css.js +54 -33
  130. package/dist/src/nile-kpi-chart/nile-kpi-chart.d.ts +121 -1
  131. package/dist/src/nile-kpi-chart/nile-kpi-chart.js +366 -52
  132. package/dist/src/nile-line-chart/nile-line-chart.css.js +20 -4
  133. package/dist/src/nile-line-chart/nile-line-chart.d.ts +13 -0
  134. package/dist/src/nile-line-chart/nile-line-chart.js +103 -3
  135. package/dist/src/nile-line-column-chart/nile-line-column-chart.css.js +20 -4
  136. package/dist/src/nile-line-column-chart/nile-line-column-chart.d.ts +12 -0
  137. package/dist/src/nile-line-column-chart/nile-line-column-chart.js +73 -1
  138. package/dist/src/nile-lollipop-chart/nile-lollipop-chart.css.js +20 -4
  139. package/dist/src/nile-lollipop-chart/nile-lollipop-chart.d.ts +12 -0
  140. package/dist/src/nile-lollipop-chart/nile-lollipop-chart.js +73 -1
  141. package/dist/src/nile-map-chart/nile-map-chart.css.js +20 -4
  142. package/dist/src/nile-map-chart/nile-map-chart.d.ts +12 -0
  143. package/dist/src/nile-map-chart/nile-map-chart.js +95 -1
  144. package/dist/src/nile-organization-chart/nile-organization-chart.css.js +20 -4
  145. package/dist/src/nile-organization-chart/nile-organization-chart.d.ts +12 -0
  146. package/dist/src/nile-organization-chart/nile-organization-chart.js +73 -1
  147. package/dist/src/nile-pie-chart/nile-pie-chart.css.js +20 -4
  148. package/dist/src/nile-pie-chart/nile-pie-chart.d.ts +12 -0
  149. package/dist/src/nile-pie-chart/nile-pie-chart.js +95 -1
  150. package/dist/src/nile-polygon-chart/nile-polygon-chart.css.js +20 -4
  151. package/dist/src/nile-polygon-chart/nile-polygon-chart.d.ts +12 -0
  152. package/dist/src/nile-polygon-chart/nile-polygon-chart.js +73 -1
  153. package/dist/src/nile-radar-chart/nile-radar-chart.css.js +20 -4
  154. package/dist/src/nile-radar-chart/nile-radar-chart.d.ts +13 -0
  155. package/dist/src/nile-radar-chart/nile-radar-chart.js +103 -3
  156. package/dist/src/nile-radial-bar-chart/nile-radial-bar-chart.css.js +20 -4
  157. package/dist/src/nile-radial-bar-chart/nile-radial-bar-chart.d.ts +13 -0
  158. package/dist/src/nile-radial-bar-chart/nile-radial-bar-chart.js +79 -1
  159. package/dist/src/nile-scatter-chart/nile-scatter-chart.css.js +20 -4
  160. package/dist/src/nile-scatter-chart/nile-scatter-chart.d.ts +13 -0
  161. package/dist/src/nile-scatter-chart/nile-scatter-chart.js +103 -3
  162. package/dist/src/nile-spiderweb-chart/nile-spiderweb-chart.css.js +20 -4
  163. package/dist/src/nile-spiderweb-chart/nile-spiderweb-chart.d.ts +13 -0
  164. package/dist/src/nile-spiderweb-chart/nile-spiderweb-chart.js +79 -1
  165. package/dist/src/nile-spline-chart/nile-spline-chart.css.js +20 -4
  166. package/dist/src/nile-spline-chart/nile-spline-chart.d.ts +13 -0
  167. package/dist/src/nile-spline-chart/nile-spline-chart.js +103 -3
  168. package/dist/src/nile-stacked-chart/nile-stacked-chart.css.js +20 -4
  169. package/dist/src/nile-stacked-chart/nile-stacked-chart.d.ts +12 -0
  170. package/dist/src/nile-stacked-chart/nile-stacked-chart.js +73 -1
  171. package/dist/src/nile-timeline-chart/nile-timeline-chart.css.js +20 -4
  172. package/dist/src/nile-timeline-chart/nile-timeline-chart.d.ts +13 -1
  173. package/dist/src/nile-timeline-chart/nile-timeline-chart.js +73 -1
  174. package/dist/src/nile-trendline-chart/nile-trendline-chart.css.js +20 -4
  175. package/dist/src/nile-trendline-chart/nile-trendline-chart.d.ts +12 -0
  176. package/dist/src/nile-trendline-chart/nile-trendline-chart.js +95 -1
  177. package/dist/src/nile-variable-pie-chart/nile-variable-pie-chart.css.js +20 -4
  178. package/dist/src/nile-variable-pie-chart/nile-variable-pie-chart.d.ts +12 -0
  179. package/dist/src/nile-variable-pie-chart/nile-variable-pie-chart.js +73 -1
  180. package/dist/src/nile-vector-chart/nile-vector-chart.css.js +20 -4
  181. package/dist/src/nile-vector-chart/nile-vector-chart.d.ts +12 -0
  182. package/dist/src/nile-vector-chart/nile-vector-chart.js +73 -1
  183. package/dist/src/nile-waterfall-chart/nile-waterfall-chart.css.js +20 -4
  184. package/dist/src/nile-waterfall-chart/nile-waterfall-chart.d.ts +13 -0
  185. package/dist/src/nile-waterfall-chart/nile-waterfall-chart.js +103 -4
  186. package/dist/src/nile-xrange-chart/nile-xrange-chart.css.js +20 -4
  187. package/dist/src/nile-xrange-chart/nile-xrange-chart.d.ts +13 -0
  188. package/dist/src/nile-xrange-chart/nile-xrange-chart.js +79 -1
  189. package/package.json +1 -1
@@ -22,6 +22,40 @@ let NileInvertedAreaChart = class NileInvertedAreaChart extends NileElement {
22
22
  this.height = '400px';
23
23
  this.yAxisTitle = '';
24
24
  this.stacked = false;
25
+ // ── Container styling ──
26
+ this.chartBg = '';
27
+ this.chartBorderRadius = '';
28
+ this.chartBorder = '';
29
+ this.chartShadow = '';
30
+ this.chartPadding = '';
31
+ this.chartMinHeight = '';
32
+ // ── Loading ──
33
+ this.loadingText = 'Loading...';
34
+ this.loadingColor = '';
35
+ this.loadingFontSize = '';
36
+ this.loadingFontFamily = '';
37
+ this.loadingBg = '';
38
+ }
39
+ _syncCssVars() {
40
+ const set = (prop, val) => {
41
+ const s = typeof val === 'number'
42
+ ? (Number.isFinite(val) ? `${val}px` : '')
43
+ : String(val ?? '').trim();
44
+ if (s)
45
+ this.style.setProperty(prop, s);
46
+ else
47
+ this.style.removeProperty(prop);
48
+ };
49
+ set('--nile-chart-bg', this.chartBg);
50
+ set('--nile-chart-border-radius', this.chartBorderRadius);
51
+ set('--nile-chart-border', this.chartBorder);
52
+ set('--nile-chart-shadow', this.chartShadow);
53
+ set('--nile-chart-padding', this.chartPadding);
54
+ set('--nile-chart-min-height', this.chartMinHeight);
55
+ set('--nile-chart-loading-color', this.loadingColor);
56
+ set('--nile-chart-loading-font-size', this.loadingFontSize);
57
+ set('--nile-chart-loading-font-family', this.loadingFontFamily);
58
+ set('--nile-chart-loading-bg', this.loadingBg);
25
59
  }
26
60
  connectedCallback() {
27
61
  super.connectedCallback();
@@ -35,6 +69,7 @@ let NileInvertedAreaChart = class NileInvertedAreaChart extends NileElement {
35
69
  this.resizeObserver = null;
36
70
  }
37
71
  firstUpdated() {
72
+ this._syncCssVars();
38
73
  this.initChart();
39
74
  this.setupResizeObserver();
40
75
  }
@@ -54,6 +89,10 @@ let NileInvertedAreaChart = class NileInvertedAreaChart extends NileElement {
54
89
  'stacked',
55
90
  'loading',
56
91
  ];
92
+ const cssVarProps = ['chartBg', 'chartBorderRadius', 'chartBorder', 'chartShadow', 'chartPadding', 'chartMinHeight',
93
+ 'loadingText', 'loadingColor', 'loadingFontSize', 'loadingFontFamily', 'loadingBg'];
94
+ if (cssVarProps.some(p => changedProperties.has(p)))
95
+ this._syncCssVars();
57
96
  if (!props.some(p => changedProperties.has(p)))
58
97
  return;
59
98
  if (this.loading) {
@@ -127,7 +166,7 @@ let NileInvertedAreaChart = class NileInvertedAreaChart extends NileElement {
127
166
  }
128
167
  render() {
129
168
  if (this.loading) {
130
- return html `<div class="chart-loading" style="height:${this.height}">Loading...</div>`;
169
+ return html `<div class="chart-loading" style="height:${this.height}">${this.loadingText}</div>`;
131
170
  }
132
171
  return html `<div class="chart-container"></div>`;
133
172
  }
@@ -166,6 +205,39 @@ __decorate([
166
205
  __decorate([
167
206
  property({ type: Boolean })
168
207
  ], NileInvertedAreaChart.prototype, "stacked", void 0);
208
+ __decorate([
209
+ property({ type: String, attribute: 'chart-bg' })
210
+ ], NileInvertedAreaChart.prototype, "chartBg", void 0);
211
+ __decorate([
212
+ property({ type: String, attribute: 'chart-border-radius' })
213
+ ], NileInvertedAreaChart.prototype, "chartBorderRadius", void 0);
214
+ __decorate([
215
+ property({ type: String, attribute: 'chart-border' })
216
+ ], NileInvertedAreaChart.prototype, "chartBorder", void 0);
217
+ __decorate([
218
+ property({ type: String, attribute: 'chart-shadow' })
219
+ ], NileInvertedAreaChart.prototype, "chartShadow", void 0);
220
+ __decorate([
221
+ property({ type: String, attribute: 'chart-padding' })
222
+ ], NileInvertedAreaChart.prototype, "chartPadding", void 0);
223
+ __decorate([
224
+ property({ type: String, attribute: 'chart-min-height' })
225
+ ], NileInvertedAreaChart.prototype, "chartMinHeight", void 0);
226
+ __decorate([
227
+ property({ type: String, attribute: 'loading-text' })
228
+ ], NileInvertedAreaChart.prototype, "loadingText", void 0);
229
+ __decorate([
230
+ property({ type: String, attribute: 'loading-color' })
231
+ ], NileInvertedAreaChart.prototype, "loadingColor", void 0);
232
+ __decorate([
233
+ property({ type: String, attribute: 'loading-font-size' })
234
+ ], NileInvertedAreaChart.prototype, "loadingFontSize", void 0);
235
+ __decorate([
236
+ property({ type: String, attribute: 'loading-font-family' })
237
+ ], NileInvertedAreaChart.prototype, "loadingFontFamily", void 0);
238
+ __decorate([
239
+ property({ type: String, attribute: 'loading-bg' })
240
+ ], NileInvertedAreaChart.prototype, "loadingBg", void 0);
169
241
  NileInvertedAreaChart = __decorate([
170
242
  customElement('nile-inverted-area-chart')
171
243
  ], NileInvertedAreaChart);
@@ -2,5 +2,5 @@
2
2
  * Global tooltip styles — injected once into document.head so the tooltip
3
3
  * element on document.body is styled independently of the shadow DOM.
4
4
  */
5
- export declare const tooltipCss = "\n .nile-kpi-tooltip {\n position: fixed;\n display: none;\n transform: translate(-50%, calc(-100% - 10px));\n background: #1D2939;\n color: #fff;\n font-family: system-ui, sans-serif;\n font-size: 12px;\n font-weight: 500;\n line-height: 1.4;\n padding: 5px 10px;\n border-radius: 6px;\n pointer-events: none;\n white-space: nowrap;\n z-index: 2147483647;\n box-shadow: 0 4px 12px rgba(16, 24, 40, 0.22);\n }\n\n .nile-kpi-tooltip::after {\n content: '';\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n border: 5px solid transparent;\n border-top-color:rgb(54, 74, 99);\n }\n";
5
+ export declare const tooltipCss = "\n .nile-kpi-tooltip {\n position: fixed;\n display: none;\n transform: translate(-50%, calc(-100% - 10px));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-medium));\n line-height: 1.4;\n padding: var(--nile-spacing-xs, var(--ng-spacing-xs)) var(--nile-spacing-md, var(--ng-spacing-md));\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-sm));\n border: var(--nile-border-width-1, var(--ng-stroke-width-1)) solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));\n pointer-events: none;\n white-space: nowrap;\n z-index: 2147483647;\n box-shadow: var(--nile-box-shadow-3, var(--ng-shadow-sm));\n }\n\n .nile-kpi-tooltip::after {\n content: '';\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n border: var(--nile-border-size-5, 5px) solid transparent;\n border-top-color: var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));\n }\n";
6
6
  export declare const styles: import("lit").CSSResult;
@@ -8,18 +8,19 @@ export const tooltipCss = `
8
8
  position: fixed;
9
9
  display: none;
10
10
  transform: translate(-50%, calc(-100% - 10px));
11
- background: #1D2939;
12
- color: #fff;
13
- font-family: system-ui, sans-serif;
14
- font-size: 12px;
15
- font-weight: 500;
11
+ background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));
12
+ color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));
13
+ font-family: var(--nile-font-family-serif, var(--ng-font-family-body));
14
+ font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));
15
+ font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-medium));
16
16
  line-height: 1.4;
17
- padding: 5px 10px;
18
- border-radius: 6px;
17
+ padding: var(--nile-spacing-xs, var(--ng-spacing-xs)) var(--nile-spacing-md, var(--ng-spacing-md));
18
+ border-radius: var(--nile-radius-radius-xl, var(--ng-radius-sm));
19
+ border: var(--nile-border-width-1, var(--ng-stroke-width-1)) solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));
19
20
  pointer-events: none;
20
21
  white-space: nowrap;
21
22
  z-index: 2147483647;
22
- box-shadow: 0 4px 12px rgba(16, 24, 40, 0.22);
23
+ box-shadow: var(--nile-box-shadow-3, var(--ng-shadow-sm));
23
24
  }
24
25
 
25
26
  .nile-kpi-tooltip::after {
@@ -28,12 +29,33 @@ export const tooltipCss = `
28
29
  top: 100%;
29
30
  left: 50%;
30
31
  transform: translateX(-50%);
31
- border: 5px solid transparent;
32
- border-top-color:rgb(54, 74, 99);
32
+ border: var(--nile-border-size-5, 5px) solid transparent;
33
+ border-top-color: var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));
33
34
  }
34
35
  `;
35
36
  export const styles = css `
36
37
  :host {
38
+ --nile-kpi-card-bg: var(--nile-colors-white-base, var(--ng-colors-bg-primary));
39
+ --nile-kpi-card-border-color: var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));
40
+ --nile-kpi-card-border-width: var(--nile-border-width-1, var(--ng-stroke-width-1));
41
+ --nile-kpi-card-border-radius: var(--nile-radius-radius-3xl, var(--ng-radius-xl));
42
+ --nile-kpi-card-shadow: var(--nile-box-shadow-3, var(--ng-shadow-sm));
43
+ --nile-kpi-card-shadow-hover: var(--nile-kpi-card-shadow, var(--nile-box-shadow-7, var(--ng-shadow-md)));
44
+ --nile-kpi-padding-v: var(--nile-spacing-2xl, var(--ng-spacing-2xl));
45
+ --nile-kpi-padding-h: var(--nile-spacing-3xl, var(--ng-spacing-3xl));
46
+ --nile-kpi-content-gap: var(--nile-spacing-md, var(--ng-spacing-md));
47
+ --nile-kpi-label-color: var(--nile-colors-neutral-700, var(--ng-colors-text-secondary-700));
48
+ --nile-kpi-label-font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));
49
+ --nile-kpi-label-font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-medium));
50
+ --nile-kpi-value-font-size: clamp(1.25rem, 2.5vw + 0.75rem, 36px);
51
+ --nile-kpi-value-color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));
52
+ --nile-kpi-prefix-suffix-font-size: var(--nile-type-scale-6, var(--ng-font-size-text-xl));
53
+ --nile-kpi-prefix-suffix-color: var(--nile-colors-neutral-700, var(--ng-colors-text-secondary-700));
54
+ --nile-kpi-trend-up-color: var(--nile-colors-success-700, var(--ng-color-success-700));
55
+ --nile-kpi-trend-down-color: var(--nile-colors-error-700, var(--ng-color-error-700));
56
+ --nile-kpi-trend-neutral-color: var(--nile-colors-neutral-700, var(--ng-colors-text-secondary-700));
57
+ --nile-kpi-description-font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));
58
+ --nile-kpi-description-color: var(--nile-colors-neutral-700, var(--ng-colors-text-secondary-700));
37
59
  display: flex;
38
60
  flex-direction: column;
39
61
  width: 100%;
@@ -48,32 +70,32 @@ export const styles = css `
48
70
  /* Card / gauge chrome on the host when used alone (inside nile-chart, embed-in-nile-chart skips this). */
49
71
  :host([variant='card']:not([embed-in-nile-chart])),
50
72
  :host([variant='gauge']:not([embed-in-nile-chart])) {
51
- background: transparent;
52
- border: var(--nile-border-width-1, var(--ng-stroke-width-1)) solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));
53
- border-radius: var(--nile-radius-radius-3xl, var(--ng-radius-xl));
54
- box-shadow: var(--nile-box-shadow-3, var(--ng-shadow-sm));
73
+ background: var(--nile-kpi-card-bg);
74
+ border: var(--nile-kpi-card-border-width) solid var(--nile-kpi-card-border-color);
75
+ border-radius: var(--nile-kpi-card-border-radius);
76
+ box-shadow: var(--nile-kpi-card-shadow);
55
77
  transition: box-shadow var(--nile-transition-duration-default, var(--ng-transition-duration-default)) ease;
56
78
  }
57
79
 
58
80
  :host([variant='card']:not([embed-in-nile-chart]):hover),
59
81
  :host([variant='gauge']:not([embed-in-nile-chart]):hover) {
60
- box-shadow: var(--nile-box-shadow-7, var(--ng-shadow-md));
82
+ box-shadow: var(--nile-kpi-card-shadow-hover);
61
83
  }
62
84
 
63
85
  .kpi {
64
86
  flex: 1 1 auto;
65
87
  display: flex;
66
88
  flex-direction: column;
67
- gap: var(--nile-spacing-md, var(--ng-spacing-md));
68
- padding: var(--nile-spacing-2xl, var(--ng-spacing-2xl)) var(--nile-spacing-3xl, var(--ng-spacing-3xl));
89
+ gap: var(--nile-kpi-content-gap);
90
+ padding: var(--nile-kpi-padding-v) var(--nile-kpi-padding-h);
69
91
  }
70
92
 
71
93
  .kpi-label {
72
94
  margin: 0;
73
95
  font-family: var(--nile-font-family-serif, var(--ng-font-family-body));
74
- font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));
75
- font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-medium));
76
- color: var(--nile-colors-neutral-700, var(--ng-colors-text-secondary-700));
96
+ font-size: var(--nile-kpi-label-font-size);
97
+ font-weight: var(--nile-kpi-label-font-weight);
98
+ color: var(--nile-kpi-label-color);
77
99
  line-height: 1.4;
78
100
  }
79
101
 
@@ -87,9 +109,9 @@ export const styles = css `
87
109
  .kpi-value {
88
110
  margin: 0;
89
111
  font-family: var(--nile-font-family-serif-colfax-medium, var(--ng-font-family-display));
90
- font-size: clamp(1.25rem, 2.5vw + 0.75rem, 36px);
112
+ font-size: var(--nile-kpi-value-font-size);
91
113
  font-weight: var(--nile-font-weight-semi-bold, var(--ng-font-weight-semibold));
92
- color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));
114
+ color: var(--nile-kpi-value-color);
93
115
  line-height: 1.2;
94
116
  cursor: default;
95
117
  }
@@ -97,9 +119,9 @@ export const styles = css `
97
119
  .kpi-prefix,
98
120
  .kpi-suffix {
99
121
  font-family: var(--nile-font-family-serif, var(--ng-font-family-body));
100
- font-size: var(--nile-type-scale-6, var(--ng-font-size-text-xl));
122
+ font-size: var(--nile-kpi-prefix-suffix-font-size);
101
123
  font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-medium));
102
- color: var(--nile-colors-neutral-700, var(--ng-colors-text-secondary-700));
124
+ color: var(--nile-kpi-prefix-suffix-color);
103
125
  }
104
126
 
105
127
  .kpi-trend {
@@ -116,23 +138,23 @@ export const styles = css `
116
138
 
117
139
  .kpi-trend--up {
118
140
  background: none;
119
- color: var(--nile-colors-success-700, #067647);
141
+ color: var(--nile-kpi-trend-up-color);
120
142
  }
121
143
 
122
144
  .kpi-trend--down {
123
145
  background: none;
124
- color: var(--nile-colors-error-700, #B42318);
146
+ color: var(--nile-kpi-trend-down-color);
125
147
  }
126
148
 
127
149
  .kpi-trend--neutral {
128
150
  background: none;
129
- color: var(--nile-colors-neutral-700, var(--ng-colors-text-secondary-700));
151
+ color: var(--nile-kpi-trend-neutral-color);
130
152
  }
131
153
 
132
154
  .kpi-trend-arrow {
133
155
  display: inline-flex;
134
- width: 12px;
135
- height: 12px;
156
+ width: var(--nile-width-12px, 12px);
157
+ height: var(--nile-height-12px, 12px);
136
158
  }
137
159
 
138
160
  .kpi-trend-arrow svg {
@@ -144,8 +166,8 @@ export const styles = css `
144
166
  .kpi-description {
145
167
  margin: 0;
146
168
  font-family: var(--nile-font-family-serif, var(--ng-font-family-body));
147
- font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));
148
- color: var(--nile-colors-neutral-700, var(--ng-colors-text-secondary-700));
169
+ font-size: var(--nile-kpi-description-font-size);
170
+ color: var(--nile-kpi-description-color);
149
171
  line-height: 1.5;
150
172
  }
151
173
 
@@ -193,11 +215,10 @@ export const styles = css `
193
215
  /* ── Loading state ── */
194
216
 
195
217
  .chart-loading {
196
- flex: 1 1 auto;
218
+ flex: 0 0 auto;
197
219
  display: flex;
198
220
  align-items: center;
199
221
  justify-content: center;
200
- min-height: var(--nile-height-200px, var(--ng-height-200px));
201
222
  color: var(--nile-colors-neutral-700, var(--ng-colors-text-secondary-700));
202
223
  font-family: var(--nile-font-family-serif, var(--ng-font-family-body));
203
224
  font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));
@@ -4,6 +4,7 @@ import NileElement from '../internal/nile-element.js';
4
4
  import type { AqConfigType } from '../internal/types/aq-config.type.js';
5
5
  export type TrendDirection = 'up' | 'down' | 'neutral';
6
6
  export type KpiVariant = 'default' | 'card' | 'gauge';
7
+ export type SparklineType = 'area' | 'line';
7
8
  /** `chart` slice for `<nile-kpi-chart>.config` (discriminated by `type: 'kpi'`). */
8
9
  export interface ChartKpiSeparatedPayload {
9
10
  type: 'kpi';
@@ -18,10 +19,69 @@ export interface ChartKpiSeparatedPayload {
18
19
  description?: string;
19
20
  sparkline?: number[];
20
21
  sparklineColor?: string;
22
+ /** Sparkline chart height in pixels (default: 48). */
23
+ sparklineHeight?: number;
24
+ /** Sparkline stroke width (default: 2). */
25
+ sparklineLineWidth?: number;
26
+ /** Sparkline series type: 'area' (filled) or 'line' (default: 'area'). */
27
+ sparklineType?: SparklineType;
28
+ /** Fill area opacity 0–1 (default: 0.2). Only applies when sparklineType is 'area'. */
29
+ sparklineFillOpacity?: number;
30
+ /** Show data-point markers on the sparkline (default: false). */
31
+ sparklineMarkers?: boolean;
21
32
  gaugeValue?: number;
22
33
  gaugeMin?: number;
23
34
  gaugeMax?: number;
24
35
  gaugeColor?: string;
36
+ /** Background track color for the gauge ring (default: '#E5E7EB'). */
37
+ gaugeTrackColor?: string;
38
+ /** Gauge start angle in degrees (default: 0 = full circle). */
39
+ gaugeStartAngle?: number;
40
+ /** Gauge end angle in degrees (default: 360 = full circle). */
41
+ gaugeEndAngle?: number;
42
+ /** Inner radius of the gauge arc as a percentage string (default: '80%'). */
43
+ gaugeInnerRadius?: string;
44
+ /** Whether gauge arc ends are rounded (default: true). */
45
+ gaugeRounded?: boolean;
46
+ /** Font size of the center data label inside the gauge (default: 28). */
47
+ gaugeLabelFontSize?: string | number;
48
+ /** Text color of the center data label inside the gauge (default: '#101828'). */
49
+ gaugeLabelColor?: string;
50
+ /** Font weight of the center data label inside the gauge (default: 600). */
51
+ gaugeLabelFontWeight?: string | number;
52
+ /** Vertical offset of the center data label in pixels (default: -25). */
53
+ gaugeLabelYOffset?: number;
54
+ /** Height of the gauge chart in pixels (default: 160). */
55
+ gaugeHeight?: number;
56
+ /** Outer radius of the gauge arc as a percentage string (default: '100%'). */
57
+ gaugeOuterRadius?: string;
58
+ /** Override the KPI value font size (e.g. '48px', '2rem'). */
59
+ valueFontSize?: string | number;
60
+ /** Override the KPI value text color. */
61
+ valueColor?: string;
62
+ /** Custom text shown in the loading state (default: 'Loading...'). */
63
+ loadingText?: string;
64
+ /** Whether the hover tooltip is shown on value / sparkline / gauge (default: true). */
65
+ tooltipEnabled?: boolean;
66
+ cardBackground?: string;
67
+ cardBorderColor?: string;
68
+ cardBorderWidth?: string | number;
69
+ cardBorderRadius?: string | number;
70
+ cardShadow?: string;
71
+ cardShadowHover?: string;
72
+ cardPaddingVertical?: string | number;
73
+ cardPaddingHorizontal?: string | number;
74
+ contentGap?: string | number;
75
+ labelColor?: string;
76
+ labelFontSize?: string | number;
77
+ labelFontWeight?: string | number;
78
+ descriptionColor?: string;
79
+ descriptionFontSize?: string | number;
80
+ prefixSuffixColor?: string;
81
+ prefixSuffixFontSize?: string | number;
82
+ trendUpColor?: string;
83
+ trendDownColor?: string;
84
+ trendNeutralColor?: string;
25
85
  loading?: boolean;
26
86
  options?: Highcharts.Options;
27
87
  /** Box size when a height is set (host min-height and height). */
@@ -33,7 +93,7 @@ export interface NileKpiConfigInputType {
33
93
  aq?: AqConfigType;
34
94
  }
35
95
  export interface KpiConfig {
36
- label: string;
96
+ label?: string;
37
97
  value: number | string;
38
98
  prefix?: string;
39
99
  suffix?: string;
@@ -79,6 +139,16 @@ export declare class NileKpiChart extends NileElement {
79
139
  sparkline: number[];
80
140
  /** Color for the sparkline. */
81
141
  sparklineColor: string;
142
+ /** Sparkline chart height in pixels. */
143
+ sparklineHeight: number;
144
+ /** Sparkline stroke width. */
145
+ sparklineLineWidth: number;
146
+ /** Sparkline series type: 'area' (filled) or 'line'. */
147
+ sparklineType: SparklineType;
148
+ /** Fill area opacity 0–1. Only applies when sparklineType is 'area'. */
149
+ sparklineFillOpacity: number;
150
+ /** Show data-point markers on the sparkline. */
151
+ sparklineMarkers: boolean;
82
152
  /** Gauge: the numeric value (0-100 by default). */
83
153
  gaugeValue: number;
84
154
  /** Gauge: minimum value. */
@@ -87,6 +157,55 @@ export declare class NileKpiChart extends NileElement {
87
157
  gaugeMax: number;
88
158
  /** Gauge: ring color. Falls back to brand color. */
89
159
  gaugeColor: string;
160
+ /** Gauge: background track color. */
161
+ gaugeTrackColor: string;
162
+ /** Gauge: start angle in degrees (0 = full circle start). */
163
+ gaugeStartAngle: number;
164
+ /** Gauge: end angle in degrees (360 = full circle). */
165
+ gaugeEndAngle: number;
166
+ /** Gauge: inner radius as percentage string (controls ring thickness). */
167
+ gaugeInnerRadius: string;
168
+ /** Gauge: whether arc ends are rounded. */
169
+ gaugeRounded: boolean;
170
+ /** Gauge: font size for the center data label. */
171
+ gaugeLabelFontSize: string | number;
172
+ /** Gauge: text color for the center data label. */
173
+ gaugeLabelColor: string;
174
+ /** Gauge: font weight for the center data label. */
175
+ gaugeLabelFontWeight: string | number;
176
+ /** Gauge: vertical offset of the center data label in pixels. */
177
+ gaugeLabelYOffset: number;
178
+ /** Gauge: chart height in pixels. */
179
+ gaugeHeight: number;
180
+ /** Gauge: outer radius of the arc as a percentage string. */
181
+ gaugeOuterRadius: string;
182
+ /** Override the KPI value font size (e.g. '48px', '2rem'). */
183
+ valueFontSize: string | number;
184
+ /** Override the KPI value text color. */
185
+ valueColor: string;
186
+ /** Custom text shown in the loading state. */
187
+ loadingText: string;
188
+ /** Whether the hover tooltip is shown on value / sparkline / gauge. */
189
+ tooltipEnabled: boolean;
190
+ cardBackground: string;
191
+ cardBorderColor: string;
192
+ cardBorderWidth: string | number;
193
+ cardBorderRadius: string | number;
194
+ cardShadow: string;
195
+ cardShadowHover: string;
196
+ cardPaddingVertical: string | number;
197
+ cardPaddingHorizontal: string | number;
198
+ contentGap: string | number;
199
+ labelColor: string;
200
+ labelFontSize: string | number;
201
+ labelFontWeight: string | number;
202
+ descriptionColor: string;
203
+ descriptionFontSize: string | number;
204
+ prefixSuffixColor: string;
205
+ prefixSuffixFontSize: string | number;
206
+ trendUpColor: string;
207
+ trendDownColor: string;
208
+ trendNeutralColor: string;
90
209
  /** Whether the component is in a loading state. */
91
210
  loading: boolean;
92
211
  /** Highcharts options override for the sparkline or gauge. */
@@ -98,6 +217,7 @@ export declare class NileKpiChart extends NileElement {
98
217
  private _createTipEl;
99
218
  private _showTip;
100
219
  private _hideTip;
220
+ private _syncCssVars;
101
221
  private formatCssLength;
102
222
  private parseNumericValue;
103
223
  private formatTooltipNumber;