@neptune.fintech/web-ui 2.1.0 → 2.2.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 (40) hide show
  1. package/dist/components/cards.d.ts +64 -0
  2. package/dist/components/cards.d.ts.map +1 -0
  3. package/dist/components/cards.js +498 -0
  4. package/dist/components/cards.js.map +1 -0
  5. package/dist/components/corporate.d.ts +84 -0
  6. package/dist/components/corporate.d.ts.map +1 -0
  7. package/dist/components/corporate.js +782 -0
  8. package/dist/components/corporate.js.map +1 -0
  9. package/dist/components/data-viz.d.ts +69 -0
  10. package/dist/components/data-viz.d.ts.map +1 -0
  11. package/dist/components/data-viz.js +526 -0
  12. package/dist/components/data-viz.js.map +1 -0
  13. package/dist/components/feedback-status.d.ts +80 -0
  14. package/dist/components/feedback-status.d.ts.map +1 -0
  15. package/dist/components/feedback-status.js +537 -0
  16. package/dist/components/feedback-status.js.map +1 -0
  17. package/dist/components/money-inputs.d.ts +105 -0
  18. package/dist/components/money-inputs.d.ts.map +1 -0
  19. package/dist/components/money-inputs.js +766 -0
  20. package/dist/components/money-inputs.js.map +1 -0
  21. package/dist/components/money-movement.d.ts +79 -0
  22. package/dist/components/money-movement.d.ts.map +1 -0
  23. package/dist/components/money-movement.js +740 -0
  24. package/dist/components/money-movement.js.map +1 -0
  25. package/dist/components/shell-layout.d.ts +103 -0
  26. package/dist/components/shell-layout.d.ts.map +1 -0
  27. package/dist/components/shell-layout.js +582 -0
  28. package/dist/components/shell-layout.js.map +1 -0
  29. package/dist/components/wallet-pay.d.ts +85 -0
  30. package/dist/components/wallet-pay.d.ts.map +1 -0
  31. package/dist/components/wallet-pay.js +633 -0
  32. package/dist/components/wallet-pay.js.map +1 -0
  33. package/dist/index.d.ts +9 -1
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +9 -1
  36. package/dist/index.js.map +1 -1
  37. package/dist/register.d.ts.map +1 -1
  38. package/dist/register.js +65 -0
  39. package/dist/register.js.map +1 -1
  40. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"corporate.js","sourceRoot":"","sources":["../../src/components/corporate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import { NptElement } from "./base.js";
2
+ /**
3
+ * <npt-data-table caption="Recent" sticky>… light-DOM <table> …</npt-data-table>
4
+ * Or drive it from data:
5
+ * <npt-data-table columns='[{"key":"name","label":"Name"},{"key":"amt","label":"Amount","numeric":true}]'
6
+ * rows='[{"name":"Coffee","amt":"4.50"}]'></npt-data-table>
7
+ * Dense, sticky header, zebra rows via surface-container, row hover.
8
+ */
9
+ export declare class NptDataTable extends NptElement {
10
+ static observedAttributes: string[];
11
+ attributeChangedCallback(): void;
12
+ protected styles(): string;
13
+ protected render(): string;
14
+ }
15
+ /**
16
+ * <npt-stat-card label="Revenue" value="48,210" unit="LYD" delta="+12.4%">
17
+ * <npt-sparkline slot="chart" points="3,5,4,7,8"></npt-sparkline>
18
+ * </npt-stat-card>
19
+ * A metric tile. `delta` colours by leading sign (+/−); slot `chart` for a spark.
20
+ */
21
+ export declare class NptStatCard extends NptElement {
22
+ static observedAttributes: string[];
23
+ attributeChangedCallback(): void;
24
+ protected styles(): string;
25
+ protected render(): string;
26
+ }
27
+ /**
28
+ * <npt-sparkline points="3,5,4,7,8,6" label="7-day"></npt-sparkline>
29
+ * Inline SVG line, no axes. Stroke = currentColor (inherits primary from host).
30
+ */
31
+ export declare class NptSparkline extends NptElement {
32
+ static observedAttributes: string[];
33
+ attributeChangedCallback(): void;
34
+ protected styles(): string;
35
+ protected render(): string;
36
+ }
37
+ /**
38
+ * <npt-donut segments='[{"value":60,"role":"primary"},{"value":40,"role":"surface-container-highest"}]'
39
+ * thickness="14"><strong slot="center">60%</strong></npt-donut>
40
+ * SVG ring. `role` on each segment maps to an allow-listed --md-sys-color-* role.
41
+ */
42
+ export declare class NptDonut extends NptElement {
43
+ static observedAttributes: string[];
44
+ attributeChangedCallback(): void;
45
+ protected styles(): string;
46
+ protected render(): string;
47
+ }
48
+ /**
49
+ * <npt-limit-meter label="Card spend" value="82" amount="820 / 1,000 LYD" warn>
50
+ * </npt-limit-meter>
51
+ * Labelled progress meter (value 0–100). `warn` flips near-full to error colour.
52
+ */
53
+ export declare class NptLimitMeter extends NptElement {
54
+ static observedAttributes: string[];
55
+ attributeChangedCallback(): void;
56
+ protected styles(): string;
57
+ protected render(): string;
58
+ }
59
+ /**
60
+ * <npt-trend value="+2.4%"></npt-trend> · <npt-trend value="-1.1%" down></npt-trend>
61
+ * Small up/down chip. `down` (or a leading − in value) uses error, else success.
62
+ */
63
+ export declare class NptTrend extends NptElement {
64
+ static observedAttributes: string[];
65
+ attributeChangedCallback(): void;
66
+ protected styles(): string;
67
+ protected render(): string;
68
+ }
69
+ //# sourceMappingURL=data-viz.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-viz.d.ts","sourceRoot":"","sources":["../../src/components/data-viz.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAmB,MAAM,WAAW,CAAC;AAyDxD;;;;;;GAMG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAC1C,MAAM,CAAC,kBAAkB,WAAqD;IAE9E,wBAAwB,IAAI,IAAI;IAIhC,SAAS,CAAC,MAAM,IAAI,MAAM;IAwE1B,SAAS,CAAC,MAAM,IAAI,MAAM;CAuC3B;AAED;;;;;GAKG;AACH,qBAAa,WAAY,SAAQ,UAAU;IACzC,MAAM,CAAC,kBAAkB,WAAuC;IAEhE,wBAAwB,IAAI,IAAI;IAIhC,SAAS,CAAC,MAAM,IAAI,MAAM;IAiE1B,SAAS,CAAC,MAAM,IAAI,MAAM;CAgB3B;AAED;;;GAGG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAC1C,MAAM,CAAC,kBAAkB,WAAuB;IAEhD,wBAAwB,IAAI,IAAI;IAIhC,SAAS,CAAC,MAAM,IAAI,MAAM;IAyB1B,SAAS,CAAC,MAAM,IAAI,MAAM;CA0B3B;AAED;;;;GAIG;AACH,qBAAa,QAAS,SAAQ,UAAU;IACtC,MAAM,CAAC,kBAAkB,WAAsC;IAE/D,wBAAwB,IAAI,IAAI;IAIhC,SAAS,CAAC,MAAM,IAAI,MAAM;IAiC1B,SAAS,CAAC,MAAM,IAAI,MAAM;CAqC3B;AAED;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAC3C,MAAM,CAAC,kBAAkB,WAAwC;IAEjE,wBAAwB,IAAI,IAAI;IAIhC,SAAS,CAAC,MAAM,IAAI,MAAM;IA4C1B,SAAS,CAAC,MAAM,IAAI,MAAM;CAqB3B;AAED;;;GAGG;AACH,qBAAa,QAAS,SAAQ,UAAU;IACtC,MAAM,CAAC,kBAAkB,WAAqB;IAE9C,wBAAwB,IAAI,IAAI;IAIhC,SAAS,CAAC,MAAM,IAAI,MAAM;IAiC1B,SAAS,CAAC,MAAM,IAAI,MAAM;CAS3B"}
@@ -0,0 +1,526 @@
1
+ // © 2026 Neptune.Fintech (neptune.ly) · Neptune Odyssey Community License v1.0
2
+ // Neptune Odyssey — data visualisation
3
+ // <npt-data-table>, <npt-stat-card>, <npt-sparkline>, <npt-donut>,
4
+ // <npt-limit-meter>, <npt-trend>.
5
+ // Custom-property driven only; logical layout → mirrors in RTL. Money/metrics
6
+ // use tabular figures. SVG charts read currentColor / themed M3 roles only.
7
+ import { NptElement, css, html, A11Y } from "./base.js";
8
+ const esc = (v) => (v ?? "").replace(/[&<>"]/g, (c) => ({ "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;" })[c]);
9
+ /** Parse a JSON attribute, returning the fallback on any malformed input. */
10
+ const parseJson = (raw, fallback) => {
11
+ if (!raw)
12
+ return fallback;
13
+ try {
14
+ return JSON.parse(raw);
15
+ }
16
+ catch {
17
+ return fallback;
18
+ }
19
+ };
20
+ /** Parse a comma list of numbers, dropping anything non-finite. */
21
+ const parsePoints = (raw) => (raw ?? "")
22
+ .split(",")
23
+ .map((s) => Number(s.trim()))
24
+ .filter((n) => Number.isFinite(n));
25
+ /**
26
+ * Allow-listed M3 colour roles a chart segment may reference by name. Keeps
27
+ * untrusted `role` strings from injecting arbitrary CSS into a var() call.
28
+ */
29
+ const SEGMENT_ROLES = new Set([
30
+ "primary",
31
+ "secondary",
32
+ "tertiary",
33
+ "error",
34
+ "success",
35
+ "primary-container",
36
+ "secondary-container",
37
+ "tertiary-container",
38
+ "surface-container-highest",
39
+ "outline",
40
+ "outline-variant",
41
+ ]);
42
+ /** Map a segment role name to a themed M3 colour, or a neutral fallback. */
43
+ const roleColor = (role) => {
44
+ const name = typeof role === "string" && SEGMENT_ROLES.has(role) ? role : "outline-variant";
45
+ return `var(--md-sys-color-${name})`;
46
+ };
47
+ /**
48
+ * <npt-data-table caption="Recent" sticky>… light-DOM <table> …</npt-data-table>
49
+ * Or drive it from data:
50
+ * <npt-data-table columns='[{"key":"name","label":"Name"},{"key":"amt","label":"Amount","numeric":true}]'
51
+ * rows='[{"name":"Coffee","amt":"4.50"}]'></npt-data-table>
52
+ * Dense, sticky header, zebra rows via surface-container, row hover.
53
+ */
54
+ export class NptDataTable extends NptElement {
55
+ attributeChangedCallback() {
56
+ if (this.isConnected)
57
+ this.update();
58
+ }
59
+ styles() {
60
+ return css `
61
+ ${A11Y}
62
+ :host {
63
+ display: block;
64
+ overflow: auto;
65
+ border-radius: var(--npt-corner-md, 16px);
66
+ background: var(--md-sys-color-surface);
67
+ color: var(--md-sys-color-on-surface);
68
+ }
69
+ .wrap {
70
+ inline-size: 100%;
71
+ }
72
+ ::slotted(table),
73
+ table.grid {
74
+ inline-size: 100%;
75
+ border-collapse: collapse;
76
+ font-family: var(--npt-font-text);
77
+ font-size: var(--npt-text-body, 14px);
78
+ }
79
+ ::slotted(table) {
80
+ color: var(--md-sys-color-on-surface);
81
+ }
82
+ table.grid caption,
83
+ ::slotted(table) caption {
84
+ text-align: start;
85
+ font-weight: 600;
86
+ padding-inline: var(--npt-space-4, 16px);
87
+ padding-block: var(--npt-space-3, 12px);
88
+ color: var(--md-sys-color-on-surface);
89
+ }
90
+ table.grid th,
91
+ table.grid td {
92
+ text-align: start;
93
+ padding-inline: var(--npt-space-4, 16px);
94
+ padding-block: var(--npt-space-3, 12px);
95
+ border-bottom: 1px solid var(--md-sys-color-outline-variant);
96
+ white-space: nowrap;
97
+ }
98
+ :host([dense]) table.grid th,
99
+ :host([dense]) table.grid td {
100
+ padding-block: var(--npt-space-2, 8px);
101
+ }
102
+ table.grid thead th {
103
+ font-size: var(--npt-text-label, 14px);
104
+ font-weight: 600;
105
+ color: var(--md-sys-color-on-surface-variant);
106
+ background: var(--md-sys-color-surface-container);
107
+ }
108
+ :host([sticky]) table.grid thead th {
109
+ position: sticky;
110
+ inset-block-start: 0;
111
+ z-index: 1;
112
+ }
113
+ table.grid tbody tr:nth-child(even) {
114
+ background: var(--md-sys-color-surface-container-low);
115
+ }
116
+ table.grid tbody tr {
117
+ transition: background-color var(--npt-dur-fast, 200ms) var(--npt-ease-standard, ease);
118
+ }
119
+ table.grid tbody tr:hover {
120
+ background: var(--md-sys-color-surface-container-high);
121
+ }
122
+ td.num,
123
+ th.num {
124
+ text-align: end;
125
+ font-family: var(--npt-font-num);
126
+ font-variant-numeric: tabular-nums;
127
+ }
128
+ `;
129
+ }
130
+ render() {
131
+ const columns = parseJson(this.getAttribute("columns"), []);
132
+ const rows = parseJson(this.getAttribute("rows"), []);
133
+ const caption = esc(this.getAttribute("caption"));
134
+ // Light-DOM <table> mode: just project it and style ::slotted.
135
+ if (columns.length === 0) {
136
+ return html `<div class="wrap" part="wrap"><slot></slot></div>`;
137
+ }
138
+ const head = columns
139
+ .map((c) => {
140
+ const cls = c.numeric ? "num" : "";
141
+ return html `<th class="${cls}" scope="col">${esc(c.label ?? c.key)}</th>`;
142
+ })
143
+ .join("");
144
+ const body = rows
145
+ .map((row) => {
146
+ const cells = columns
147
+ .map((c) => {
148
+ const raw = row[c.key];
149
+ const value = esc(raw == null ? "" : String(raw));
150
+ const cls = c.numeric ? "num" : "";
151
+ return html `<td class="${cls}">${value}</td>`;
152
+ })
153
+ .join("");
154
+ return html `<tr>${cells}</tr>`;
155
+ })
156
+ .join("");
157
+ return html `<div class="wrap" part="wrap">
158
+ <table class="grid" part="table">
159
+ ${caption ? html `<caption part="caption">${caption}</caption>` : ""}
160
+ <thead><tr>${head}</tr></thead>
161
+ <tbody>${body}</tbody>
162
+ </table>
163
+ </div>`;
164
+ }
165
+ }
166
+ NptDataTable.observedAttributes = ["columns", "rows", "caption", "sticky", "dense"];
167
+ /**
168
+ * <npt-stat-card label="Revenue" value="48,210" unit="LYD" delta="+12.4%">
169
+ * <npt-sparkline slot="chart" points="3,5,4,7,8"></npt-sparkline>
170
+ * </npt-stat-card>
171
+ * A metric tile. `delta` colours by leading sign (+/−); slot `chart` for a spark.
172
+ */
173
+ export class NptStatCard extends NptElement {
174
+ attributeChangedCallback() {
175
+ if (this.isConnected)
176
+ this.update();
177
+ }
178
+ styles() {
179
+ return css `
180
+ :host {
181
+ display: block;
182
+ }
183
+ .tile {
184
+ border-radius: var(--npt-corner-lg, 24px);
185
+ padding: var(--npt-space-5, 20px);
186
+ background: var(--md-sys-color-surface-container);
187
+ color: var(--md-sys-color-on-surface);
188
+ box-sizing: border-box;
189
+ display: flex;
190
+ flex-direction: column;
191
+ gap: var(--npt-space-2, 8px);
192
+ }
193
+ .label {
194
+ font-family: var(--npt-font-text);
195
+ font-size: var(--npt-text-label, 14px);
196
+ color: var(--md-sys-color-on-surface-variant);
197
+ margin: 0;
198
+ }
199
+ .value {
200
+ font-family: var(--npt-font-num);
201
+ font-feature-settings: "tnum" 1;
202
+ font-variant-numeric: tabular-nums;
203
+ font-size: var(--npt-text-headline, 28px);
204
+ line-height: var(--npt-leading-headline, 36px);
205
+ font-weight: 700;
206
+ letter-spacing: var(--npt-display-tracking, -0.02em);
207
+ margin: 0;
208
+ display: flex;
209
+ align-items: baseline;
210
+ gap: var(--npt-space-2, 8px);
211
+ }
212
+ .unit {
213
+ font-size: var(--npt-text-title, 18px);
214
+ color: var(--md-sys-color-on-surface-variant);
215
+ }
216
+ .foot {
217
+ display: flex;
218
+ align-items: center;
219
+ gap: var(--npt-space-3, 12px);
220
+ margin-block-start: var(--npt-space-1, 4px);
221
+ }
222
+ .delta {
223
+ font-family: var(--npt-font-num);
224
+ font-variant-numeric: tabular-nums;
225
+ font-size: var(--npt-text-label, 14px);
226
+ font-weight: 600;
227
+ }
228
+ .delta.up {
229
+ color: var(--md-sys-color-success);
230
+ }
231
+ .delta.down {
232
+ color: var(--md-sys-color-error);
233
+ }
234
+ .chart {
235
+ margin-inline-start: auto;
236
+ display: inline-flex;
237
+ color: var(--md-sys-color-primary);
238
+ min-inline-size: 0;
239
+ }
240
+ `;
241
+ }
242
+ render() {
243
+ const label = esc(this.getAttribute("label"));
244
+ const value = esc(this.getAttribute("value"));
245
+ const unit = esc(this.getAttribute("unit"));
246
+ const delta = esc(this.getAttribute("delta"));
247
+ const down = delta.trim().startsWith("-");
248
+ const deltaCls = down ? "delta down" : "delta up";
249
+ return html `<div class="tile" part="tile" role="group" aria-label="${label} ${value} ${unit}">
250
+ ${label ? html `<p class="label">${label}</p>` : ""}
251
+ <p class="value">${value}${unit ? html `<span class="unit">${unit}</span>` : ""}</p>
252
+ <div class="foot">
253
+ ${delta ? html `<span class="${deltaCls}" part="delta">${delta}</span>` : ""}
254
+ <span class="chart"><slot name="chart"></slot></span>
255
+ </div>
256
+ </div>`;
257
+ }
258
+ }
259
+ NptStatCard.observedAttributes = ["label", "value", "unit", "delta"];
260
+ /**
261
+ * <npt-sparkline points="3,5,4,7,8,6" label="7-day"></npt-sparkline>
262
+ * Inline SVG line, no axes. Stroke = currentColor (inherits primary from host).
263
+ */
264
+ export class NptSparkline extends NptElement {
265
+ attributeChangedCallback() {
266
+ if (this.isConnected)
267
+ this.update();
268
+ }
269
+ styles() {
270
+ return css `
271
+ :host {
272
+ display: inline-block;
273
+ inline-size: var(--npt-sparkline-w, 88px);
274
+ block-size: var(--npt-sparkline-h, 28px);
275
+ color: var(--md-sys-color-primary);
276
+ }
277
+ svg {
278
+ display: block;
279
+ inline-size: 100%;
280
+ block-size: 100%;
281
+ overflow: visible;
282
+ }
283
+ .line {
284
+ fill: none;
285
+ stroke: currentColor;
286
+ stroke-width: 2;
287
+ stroke-linecap: round;
288
+ stroke-linejoin: round;
289
+ vector-effect: non-scaling-stroke;
290
+ }
291
+ `;
292
+ }
293
+ render() {
294
+ const pts = parsePoints(this.getAttribute("points"));
295
+ const label = esc(this.getAttribute("label")) || "sparkline";
296
+ const w = 100;
297
+ const h = 32;
298
+ const pad = 2;
299
+ if (pts.length < 2) {
300
+ return html `<svg viewBox="0 0 ${w} ${h}" role="img" aria-label="${label}" preserveAspectRatio="none">
301
+ <line class="line" x1="${pad}" y1="${h / 2}" x2="${w - pad}" y2="${h / 2}"></line>
302
+ </svg>`;
303
+ }
304
+ const min = Math.min(...pts);
305
+ const max = Math.max(...pts);
306
+ const span = max - min || 1;
307
+ const stepX = (w - pad * 2) / (pts.length - 1);
308
+ const d = pts
309
+ .map((v, i) => {
310
+ const x = pad + i * stepX;
311
+ const y = pad + (h - pad * 2) * (1 - (v - min) / span);
312
+ return `${i === 0 ? "M" : "L"}${x.toFixed(2)} ${y.toFixed(2)}`;
313
+ })
314
+ .join(" ");
315
+ return html `<svg viewBox="0 0 ${w} ${h}" role="img" aria-label="${label}" preserveAspectRatio="none">
316
+ <path class="line" d="${d}"></path>
317
+ </svg>`;
318
+ }
319
+ }
320
+ NptSparkline.observedAttributes = ["points", "label"];
321
+ /**
322
+ * <npt-donut segments='[{"value":60,"role":"primary"},{"value":40,"role":"surface-container-highest"}]'
323
+ * thickness="14"><strong slot="center">60%</strong></npt-donut>
324
+ * SVG ring. `role` on each segment maps to an allow-listed --md-sys-color-* role.
325
+ */
326
+ export class NptDonut extends NptElement {
327
+ attributeChangedCallback() {
328
+ if (this.isConnected)
329
+ this.update();
330
+ }
331
+ styles() {
332
+ return css `
333
+ :host {
334
+ display: inline-block;
335
+ inline-size: var(--npt-donut-size, 120px);
336
+ block-size: var(--npt-donut-size, 120px);
337
+ position: relative;
338
+ }
339
+ svg {
340
+ display: block;
341
+ inline-size: 100%;
342
+ block-size: 100%;
343
+ transform: rotate(-90deg);
344
+ }
345
+ circle {
346
+ fill: none;
347
+ }
348
+ .track {
349
+ stroke: var(--md-sys-color-surface-container-highest);
350
+ }
351
+ .center {
352
+ position: absolute;
353
+ inset: 0;
354
+ display: grid;
355
+ place-items: center;
356
+ font-family: var(--npt-font-num);
357
+ font-variant-numeric: tabular-nums;
358
+ color: var(--md-sys-color-on-surface);
359
+ text-align: center;
360
+ }
361
+ `;
362
+ }
363
+ render() {
364
+ const segments = parseJson(this.getAttribute("segments"), []).filter((s) => s && Number.isFinite(s.value) && s.value > 0);
365
+ const label = esc(this.getAttribute("label")) || "donut chart";
366
+ const size = 42;
367
+ const cx = size / 2;
368
+ const r = 18;
369
+ const circ = 2 * Math.PI * r;
370
+ const thickness = Math.max(1, Number(this.getAttribute("thickness")) || 6);
371
+ const total = segments.reduce((sum, s) => sum + s.value, 0) || 1;
372
+ let offset = 0;
373
+ const arcs = segments
374
+ .map((s) => {
375
+ const len = (s.value / total) * circ;
376
+ const dash = `${len.toFixed(3)} ${(circ - len).toFixed(3)}`;
377
+ const dashoffset = (-offset).toFixed(3);
378
+ offset += len;
379
+ return html `<circle
380
+ cx="${cx}"
381
+ cy="${cx}"
382
+ r="${r}"
383
+ stroke="${roleColor(s.role)}"
384
+ stroke-width="${thickness}"
385
+ stroke-dasharray="${dash}"
386
+ stroke-dashoffset="${dashoffset}"
387
+ ></circle>`;
388
+ })
389
+ .join("");
390
+ return html `<svg viewBox="0 0 ${size} ${size}" role="img" aria-label="${label}">
391
+ <circle class="track" cx="${cx}" cy="${cx}" r="${r}" stroke-width="${thickness}"></circle>
392
+ ${arcs}
393
+ </svg>
394
+ <div class="center" part="center"><slot name="center"></slot></div>`;
395
+ }
396
+ }
397
+ NptDonut.observedAttributes = ["segments", "thickness", "label"];
398
+ /**
399
+ * <npt-limit-meter label="Card spend" value="82" amount="820 / 1,000 LYD" warn>
400
+ * </npt-limit-meter>
401
+ * Labelled progress meter (value 0–100). `warn` flips near-full to error colour.
402
+ */
403
+ export class NptLimitMeter extends NptElement {
404
+ attributeChangedCallback() {
405
+ if (this.isConnected)
406
+ this.update();
407
+ }
408
+ styles() {
409
+ return css `
410
+ ${A11Y}
411
+ :host {
412
+ display: block;
413
+ }
414
+ .head {
415
+ display: flex;
416
+ align-items: baseline;
417
+ justify-content: space-between;
418
+ gap: var(--npt-space-3, 12px);
419
+ margin-block-end: var(--npt-space-2, 8px);
420
+ }
421
+ .label {
422
+ font-family: var(--npt-font-text);
423
+ font-size: var(--npt-text-label, 14px);
424
+ color: var(--md-sys-color-on-surface);
425
+ }
426
+ .amount {
427
+ font-family: var(--npt-font-num);
428
+ font-variant-numeric: tabular-nums;
429
+ font-size: var(--npt-text-label, 14px);
430
+ color: var(--md-sys-color-on-surface-variant);
431
+ }
432
+ .track {
433
+ block-size: 8px;
434
+ inline-size: 100%;
435
+ border-radius: var(--npt-corner-full, 999px);
436
+ background: var(--md-sys-color-surface-container-highest);
437
+ overflow: hidden;
438
+ }
439
+ .bar {
440
+ block-size: 100%;
441
+ border-radius: var(--npt-corner-full, 999px);
442
+ background: var(--md-sys-color-primary);
443
+ transition: inline-size var(--npt-dur-fast, 200ms) var(--npt-ease-standard, ease),
444
+ background-color var(--npt-dur-fast, 200ms) var(--npt-ease-standard, ease);
445
+ }
446
+ :host([warn]) .bar.hot {
447
+ background: var(--md-sys-color-error);
448
+ }
449
+ `;
450
+ }
451
+ render() {
452
+ const value = Math.max(0, Math.min(100, Number(this.getAttribute("value") ?? 0)));
453
+ const label = esc(this.getAttribute("label"));
454
+ const amount = esc(this.getAttribute("amount"));
455
+ const hot = this.hasAttribute("warn") && value >= 90 ? "bar hot" : "bar";
456
+ return html `<div class="head">
457
+ ${label ? html `<span class="label">${label}</span>` : ""}
458
+ ${amount ? html `<span class="amount" part="amount">${amount}</span>` : ""}
459
+ </div>
460
+ <div
461
+ class="track"
462
+ part="track"
463
+ role="meter"
464
+ aria-label="${label || "limit"}"
465
+ aria-valuenow="${value}"
466
+ aria-valuemin="0"
467
+ aria-valuemax="100"
468
+ >
469
+ <div class="${hot}" style="inline-size:${value}%"></div>
470
+ </div>`;
471
+ }
472
+ }
473
+ NptLimitMeter.observedAttributes = ["value", "label", "amount", "warn"];
474
+ /**
475
+ * <npt-trend value="+2.4%"></npt-trend> · <npt-trend value="-1.1%" down></npt-trend>
476
+ * Small up/down chip. `down` (or a leading − in value) uses error, else success.
477
+ */
478
+ export class NptTrend extends NptElement {
479
+ attributeChangedCallback() {
480
+ if (this.isConnected)
481
+ this.update();
482
+ }
483
+ styles() {
484
+ return css `
485
+ :host {
486
+ display: inline-flex;
487
+ }
488
+ .chip {
489
+ display: inline-flex;
490
+ align-items: center;
491
+ gap: var(--npt-space-1, 4px);
492
+ padding-inline: var(--npt-space-2, 8px);
493
+ padding-block: 2px;
494
+ border-radius: var(--npt-corner-full, 999px);
495
+ font-family: var(--npt-font-num);
496
+ font-variant-numeric: tabular-nums;
497
+ font-size: var(--npt-text-caption, 12px);
498
+ font-weight: 600;
499
+ line-height: var(--npt-leading-caption, 16px);
500
+ background: var(--md-sys-color-secondary-container);
501
+ color: var(--md-sys-color-on-secondary-container);
502
+ }
503
+ .chip.up {
504
+ color: var(--md-sys-color-success);
505
+ }
506
+ .chip.down {
507
+ color: var(--md-sys-color-error);
508
+ }
509
+ .arrow {
510
+ font-size: var(--npt-text-label, 14px);
511
+ line-height: 1;
512
+ }
513
+ `;
514
+ }
515
+ render() {
516
+ const value = esc(this.getAttribute("value"));
517
+ const down = this.hasAttribute("down") || value.trim().startsWith("-");
518
+ const cls = down ? "chip down" : "chip up";
519
+ const arrow = down ? "↓" : "↑";
520
+ return html `<span class="${cls}" part="chip" role="status">
521
+ <span class="arrow" aria-hidden="true">${arrow}</span>${value}
522
+ </span>`;
523
+ }
524
+ }
525
+ NptTrend.observedAttributes = ["value", "down"];
526
+ //# sourceMappingURL=data-viz.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-viz.js","sourceRoot":"","sources":["../../src/components/data-viz.ts"],"names":[],"mappings":"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"}