react-data-matrix 0.4.2 → 1.0.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 (52) hide show
  1. package/README.md +416 -280
  2. package/dist/components/MatrixHeaders.d.ts +8 -0
  3. package/dist/components/MatrixRows.d.ts +16 -0
  4. package/dist/components/TableData.d.ts +17 -0
  5. package/dist/grid.d.ts +13 -0
  6. package/dist/index.d.ts +6 -0
  7. package/dist/index.js +1414 -0
  8. package/dist/theme/baseCss.d.ts +2 -0
  9. package/dist/theme/colour.d.ts +10 -0
  10. package/dist/theme/presets/arcade.d.ts +2 -0
  11. package/dist/theme/presets/aurora.d.ts +2 -0
  12. package/dist/theme/presets/beacon.d.ts +2 -0
  13. package/dist/theme/presets/blueprint.d.ts +2 -0
  14. package/dist/theme/presets/boardroom.d.ts +2 -0
  15. package/dist/theme/presets/broadsheet.d.ts +2 -0
  16. package/dist/theme/presets/brutal.d.ts +2 -0
  17. package/dist/theme/presets/canopy.d.ts +2 -0
  18. package/dist/theme/presets/clay.d.ts +2 -0
  19. package/dist/theme/presets/contour.d.ts +2 -0
  20. package/dist/theme/presets/fjord.d.ts +2 -0
  21. package/dist/theme/presets/glasshouse.d.ts +2 -0
  22. package/dist/theme/presets/graphite.d.ts +2 -0
  23. package/dist/theme/presets/index.d.ts +57 -0
  24. package/dist/theme/presets/ledger.d.ts +2 -0
  25. package/dist/theme/presets/midnight.d.ts +2 -0
  26. package/dist/theme/presets/neon.d.ts +2 -0
  27. package/dist/theme/presets/noir.d.ts +2 -0
  28. package/dist/theme/presets/original.d.ts +2 -0
  29. package/dist/theme/presets/sherbet.d.ts +2 -0
  30. package/dist/theme/presets/signal.d.ts +2 -0
  31. package/dist/theme/presets/sunset.d.ts +2 -0
  32. package/dist/theme/presets/swiss.d.ts +2 -0
  33. package/dist/theme/presets/terminal.d.ts +2 -0
  34. package/dist/theme/presets/thermal.d.ts +2 -0
  35. package/dist/theme/presets/tidewater.d.ts +2 -0
  36. package/dist/theme/presets/whitespace.d.ts +2 -0
  37. package/dist/theme/severity.d.ts +18 -0
  38. package/dist/theme/tokens.d.ts +11 -0
  39. package/dist/theme/types.d.ts +36 -0
  40. package/dist/types/index.d.ts +71 -0
  41. package/package.json +50 -37
  42. package/dist/lib/components/MatrixHeaders.d.ts +0 -4
  43. package/dist/lib/components/MatrixRows.d.ts +0 -4
  44. package/dist/lib/components/TableData.d.ts +0 -4
  45. package/dist/lib/helpers/getStyles.d.ts +0 -12
  46. package/dist/lib/index.d.ts +0 -4
  47. package/dist/lib/types/index.d.ts +0 -102
  48. package/dist/lib/utils/data.d.ts +0 -2
  49. package/dist/lib/utils/functions.d.ts +0 -4
  50. package/dist/manifest.json +0 -7
  51. package/dist/react-data-matrix.es.js +0 -913
  52. package/dist/react-data-matrix.umd.js +0 -28
package/dist/index.js ADDED
@@ -0,0 +1,1414 @@
1
+ import { useEffect as e, useMemo as t, useRef as n, useState as r } from "react";
2
+ import { Fragment as i, jsx as a, jsxs as o } from "react/jsx-runtime";
3
+ //#region lib/components/MatrixHeaders.tsx
4
+ var s = ({ title: e, columns: t, styles: n }) => /* @__PURE__ */ o("thead", { children: [/* @__PURE__ */ o("tr", { children: [/* @__PURE__ */ a("td", {
5
+ className: "rdm-corner",
6
+ colSpan: 2
7
+ }), /* @__PURE__ */ a("th", {
8
+ className: "rdm-axis-title",
9
+ scope: "colgroup",
10
+ colSpan: t.length,
11
+ style: n.axisTitle,
12
+ children: e
13
+ })] }), /* @__PURE__ */ o("tr", { children: [/* @__PURE__ */ a("td", {
14
+ className: "rdm-corner",
15
+ colSpan: 2
16
+ }), t.map((e) => /* @__PURE__ */ o("th", {
17
+ className: "rdm-column-header",
18
+ scope: "col",
19
+ "data-col": e.consequence,
20
+ style: n.columnHeader,
21
+ children: [e.header_title, /* @__PURE__ */ a("div", {
22
+ className: "rdm-subtitle",
23
+ children: e.header_sub_title
24
+ })]
25
+ }, e.id))] })] }), c = ({ value: e, row: t, column: n, tier: r, colours: s, style: c, onActivate: l, accessibleName: u }) => {
26
+ if (!e) return /* @__PURE__ */ a("td", {
27
+ className: "rdm-cell rdm-cell-empty",
28
+ "data-row": t,
29
+ "data-col": n,
30
+ style: c
31
+ });
32
+ let d = s ? {
33
+ "--rdm-cell-bg": s.bg,
34
+ "--rdm-cell-fg": s.fg
35
+ } : void 0, f = /* @__PURE__ */ o(i, { children: [
36
+ /* @__PURE__ */ a("span", {
37
+ className: "rdm-cell-label",
38
+ children: e.description
39
+ }),
40
+ /* @__PURE__ */ a("br", {}),
41
+ /* @__PURE__ */ a("span", {
42
+ className: "rdm-cell-score",
43
+ children: `(${e.score_value})`
44
+ })
45
+ ] });
46
+ return /* @__PURE__ */ a("td", {
47
+ className: "rdm-cell",
48
+ "data-row": t,
49
+ "data-col": n,
50
+ "data-tier": r,
51
+ style: {
52
+ ...d,
53
+ ...c
54
+ },
55
+ children: l ? /* @__PURE__ */ a("button", {
56
+ type: "button",
57
+ className: "rdm-cell-button",
58
+ "aria-label": u,
59
+ onClick: l,
60
+ children: f
61
+ }) : f
62
+ });
63
+ }, l = ({ rowTitle: e, columnTitle: t, columns: n, rows: r, tiers: i, colours: s, styles: l, onCellClick: u }) => /* @__PURE__ */ a("tbody", { children: r.map(({ detail: d, cells: f }, p) => /* @__PURE__ */ o("tr", {
64
+ "data-row": d.likelihood,
65
+ children: [
66
+ p === 0 && /* @__PURE__ */ a("th", {
67
+ className: "rdm-axis-title",
68
+ scope: "rowgroup",
69
+ rowSpan: r.length,
70
+ style: l.axisTitle,
71
+ children: e
72
+ }),
73
+ /* @__PURE__ */ o("th", {
74
+ className: "rdm-row-header",
75
+ scope: "row",
76
+ style: l.rowHeader,
77
+ children: [d.row_header_title, /* @__PURE__ */ a("div", {
78
+ className: "rdm-subtitle",
79
+ children: d.row_header_sub_title
80
+ })]
81
+ }),
82
+ f.map((r, o) => {
83
+ let f = n[o], p = r && u;
84
+ return /* @__PURE__ */ a(c, {
85
+ value: r,
86
+ row: d.likelihood,
87
+ column: f.consequence,
88
+ tier: r ? i.get(r.colour) : void 0,
89
+ colours: r ? s?.get(r.id) : void 0,
90
+ style: l.cell,
91
+ onActivate: p ? (e) => u(r, {
92
+ row: d,
93
+ column: f,
94
+ event: e
95
+ }) : void 0,
96
+ accessibleName: p ? `${e} ${d.row_header_title}, ${t} ${f.header_title}: ${r.description} (${r.score_value})` : void 0
97
+ }, r?.id ?? `empty-${o}`);
98
+ })
99
+ ]
100
+ }, d.id)) }), u = (e, { reverse: t }) => {
101
+ let n = e.matrix_details.slice(0, e.matrix_size), r = new Map(n.map((e, t) => [e.likelihood, t])), i = new Map(n.map((e, t) => [e.consequence, t])), a = new Set(e.matrix_details.map((e) => e.likelihood)), o = new Set(e.matrix_details.map((e) => e.consequence)), s = n.map(() => n.map(() => null)), c = [];
102
+ for (let t of e.matrix_values) {
103
+ let e = r.get(t.likelihood_descriptor), n = i.get(t.consequence_descriptor), l = `likelihood "${t.likelihood_descriptor}" × consequence ${t.consequence_descriptor}`;
104
+ if (e === void 0 || n === void 0) {
105
+ a.has(t.likelihood_descriptor) && o.has(t.consequence_descriptor) || c.push(`react-data-matrix: value ${t.id} (${l}) matches no row or column and is not shown.`);
106
+ continue;
107
+ }
108
+ let u = s[e][n];
109
+ if (u) {
110
+ c.push(`react-data-matrix: values ${u.id} and ${t.id} share ${l}; only ${u.id} is shown.`);
111
+ continue;
112
+ }
113
+ s[e][n] = t;
114
+ }
115
+ let l = n.map((e, t) => ({
116
+ detail: e,
117
+ cells: s[t]
118
+ }));
119
+ return {
120
+ columns: n,
121
+ rows: t ? l.reverse() : l,
122
+ issues: c
123
+ };
124
+ }, d = [
125
+ ".rdm-root{container-type:inline-size;overflow-x:auto;font-family:var(--rdm-font);font-size:var(--rdm-font-size);color:var(--rdm-text);background-color:var(--rdm-surface);background-image:var(--rdm-backdrop)}",
126
+ ".rdm-root[data-scheme=dark]{color-scheme:dark}",
127
+ ".rdm-root:focus-visible{outline:3px solid var(--rdm-focus);outline-offset:2px}",
128
+ ".rdm-table{border-collapse:separate;border-spacing:var(--rdm-gap);margin-inline:auto;border:var(--rdm-line-width) var(--rdm-line-style) var(--rdm-line)}",
129
+ ".rdm-caption{padding-block-end:1.33em}",
130
+ ".rdm-caption>*{display:block;font-weight:700}",
131
+ ".rdm-caption-title{font-size:2em;margin-block-end:.67em}",
132
+ ".rdm-axis-title{font-weight:700;padding-block:1rem}",
133
+ "[data-axis-case=upper] .rdm-axis-title{text-transform:uppercase}",
134
+ ".rdm-column-header,.rdm-row-header{background-color:var(--rdm-header-surface);color:var(--rdm-header-text);border:var(--rdm-line-width) var(--rdm-line-style) var(--rdm-line);padding:0 .5rem}",
135
+ ".rdm-row-header{position:sticky;inset-inline-start:0;z-index:1}",
136
+ ".rdm-subtitle{color:var(--rdm-muted-text);font-size:.9em;font-weight:400}",
137
+ ".rdm-cell{background-color:var(--rdm-cell-bg);color:var(--rdm-cell-fg);border:var(--rdm-line-width) var(--rdm-line-style) var(--rdm-line);border-radius:var(--rdm-radius);box-shadow:var(--rdm-cell-shadow);padding:var(--rdm-cell-padding);text-align:center}",
138
+ "[data-align=start] :is(.rdm-cell,.rdm-column-header,.rdm-row-header){text-align:start}",
139
+ "[data-variant=outline] .rdm-cell{background-color:transparent;color:var(--rdm-text);border-color:var(--rdm-cell-bg);border-width:2px}",
140
+ ":is([data-variant=chip],[data-variant=dot]) .rdm-cell{background-color:transparent;color:var(--rdm-text)}",
141
+ "[data-variant=chip] .rdm-cell-label{display:inline-block;padding:.15em .6em;border-radius:999px;background-color:var(--rdm-cell-bg);color:var(--rdm-cell-fg)}",
142
+ "[data-variant=dot] .rdm-cell-label{display:inline-flex;align-items:baseline}",
143
+ "[data-variant=dot] .rdm-cell-label::before{content:\"\";flex:none;display:inline-block;inline-size:.75em;block-size:.75em;margin-inline-end:.4em;border-radius:50%;background-color:var(--rdm-cell-bg)}",
144
+ "[data-emphasis=score] .rdm-cell-score{font-size:1.4em;font-weight:700}",
145
+ ".rdm-cell-button{all:unset;box-sizing:border-box;display:block;inline-size:100%;cursor:pointer;text-align:inherit}",
146
+ ".rdm-cell-button:focus-visible{outline:3px solid var(--rdm-focus);outline-offset:2px}",
147
+ "@media (hover:hover){.rdm-cell:has(.rdm-cell-button):hover{filter:brightness(1.08)}}",
148
+ "@container (width < 36rem){.rdm-subtitle{display:none}.rdm-cell{padding:calc(var(--rdm-cell-padding) / 2)}.rdm-axis-title[scope=rowgroup]{writing-mode:vertical-rl;rotate:180deg}}",
149
+ "@media (forced-colors:active){.rdm-cell{border:1px solid CanvasText}.rdm-cell-button:focus-visible{outline-color:Highlight}}"
150
+ ].join(""), f = `rdm-base-${((e) => {
151
+ let t = 2166136261;
152
+ for (let n = 0; n < e.length; n += 1) t ^= e.charCodeAt(n), t = Math.imul(t, 16777619);
153
+ return (t >>> 0).toString(36);
154
+ })(d)}`, p = {
155
+ name: "Original",
156
+ scheme: "light",
157
+ font: "inherit",
158
+ fontSize: "inherit",
159
+ surface: "#ffffff",
160
+ text: "#000000",
161
+ mutedText: "#000000",
162
+ headerSurface: "#ffffff",
163
+ headerText: "#000000",
164
+ line: "#000000",
165
+ lineWidth: "1px",
166
+ lineStyle: "solid",
167
+ radius: "0",
168
+ gap: "2px",
169
+ cellPadding: "1px",
170
+ cellShadow: "none",
171
+ cellVariant: "fill",
172
+ emphasis: "label",
173
+ align: "center",
174
+ axisCase: "upper",
175
+ scale: "tier",
176
+ focus: "#000000"
177
+ }, m = /^#([0-9a-f]{3}|[0-9a-f]{6})$/i, h = (e) => {
178
+ let t = m.exec(e);
179
+ if (!t) throw Error(`Expected a #rgb or #rrggbb colour, got "${e}"`);
180
+ let n = t[1].length === 3 ? [...t[1]].map((e) => e + e).join("") : t[1];
181
+ return [
182
+ 0,
183
+ 2,
184
+ 4
185
+ ].map((e) => parseInt(n.slice(e, e + 2), 16) / 255);
186
+ }, g = (e) => `#${e.map((e) => Math.round(Math.min(1, Math.max(0, e)) * 255).toString(16).padStart(2, "0")).join("")}`, _ = (e) => e <= .04045 ? e / 12.92 : ((e + .055) / 1.055) ** 2.4, v = (e) => e <= .0031308 ? 12.92 * e : 1.055 * e ** (1 / 2.4) - .055, y = (e) => {
187
+ let [t, n, r] = h(e).map(_);
188
+ return .2126 * t + .7152 * n + .0722 * r;
189
+ }, b = (e, t) => {
190
+ let [n, r] = [y(e), y(t)].sort((e, t) => t - e);
191
+ return (n + .05) / (r + .05);
192
+ }, x = (e) => b(e, "#000000") >= b(e, "#ffffff") ? "#000000" : "#ffffff", S = (e) => {
193
+ let [t, n, r] = h(e).map(_), i = Math.cbrt(.4122214708 * t + .5363325363 * n + .0514459929 * r), a = Math.cbrt(.2119034982 * t + .6806995451 * n + .1073969566 * r), o = Math.cbrt(.0883024619 * t + .2817188376 * n + .6299787005 * r);
194
+ return [
195
+ .2104542553 * i + .793617785 * a - .0040720468 * o,
196
+ 1.9779984951 * i - 2.428592205 * a + .4505937099 * o,
197
+ .0259040371 * i + .7827717662 * a - .808675766 * o
198
+ ];
199
+ }, C = ([e, t, n]) => {
200
+ let r = (e + .3963377774 * t + .2158037573 * n) ** 3, i = (e - .1055613458 * t - .0638541728 * n) ** 3, a = (e - .0894841775 * t - 1.291485548 * n) ** 3;
201
+ return g([
202
+ 4.0767416621 * r - 3.3077115913 * i + .2309699292 * a,
203
+ -1.2684380046 * r + 2.6097574011 * i - .3413193965 * a,
204
+ -.0041960863 * r - .7034186147 * i + 1.707614701 * a
205
+ ].map(v));
206
+ }, w = (e, t, n) => e + (t - e) * n, T = (e, t) => {
207
+ if (e.length === 0) throw Error("interpolateColour needs at least one stop");
208
+ if (e.length === 1) return g(h(e[0]));
209
+ let n = Math.min(1, Math.max(0, t)) * (e.length - 1), r = Math.min(Math.floor(n), e.length - 2), [i, a] = [S(e[r]), S(e[r + 1])], o = n - r;
210
+ return C([
211
+ w(i[0], a[0], o),
212
+ w(i[1], a[1], o),
213
+ w(i[2], a[2], o)
214
+ ]);
215
+ }, E = /^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i, ee = /^[a-z]{1,32}$/i, te = /^(?:rgba?|hsla?|hwb|lab|lch|oklab|oklch)\((?:[\d.%+\-/\s,]|none|deg|grad|rad|turn)*\)$/i, ne = (e) => e.length <= 64 && (E.test(e) || ee.test(e) || te.test(e)), re = "#d0d0d0", ie = (e) => {
216
+ let t = /* @__PURE__ */ new Map();
217
+ for (let { colour: n, score_value: r } of e) t.set(n, Math.min(t.get(n) ?? Infinity, r));
218
+ let n = [...t].sort(([, e], [, t]) => e - t), r = e.map((e) => e.score_value);
219
+ return {
220
+ tiers: new Map(n.map(([e], t) => [e, t])),
221
+ minScore: r.length > 0 ? Math.min(...r) : 0,
222
+ maxScore: r.length > 0 ? Math.max(...r) : 0
223
+ };
224
+ }, ae = (e, { value: t, scale: n }) => {
225
+ let { palette: r } = e;
226
+ if (!r || r.length === 0) return ne(t.colour) ? {
227
+ bg: t.colour,
228
+ fg: e.text
229
+ } : {
230
+ bg: re,
231
+ fg: e.text,
232
+ rejectedColour: t.colour
233
+ };
234
+ if (e.scale === "score") {
235
+ let e = n.maxScore - n.minScore, i = e === 0 ? 0 : (t.score_value - n.minScore) / e, a = T(r.map((e) => e.bg), i);
236
+ return {
237
+ bg: a,
238
+ fg: x(a)
239
+ };
240
+ }
241
+ let i = n.tiers.size, a = n.tiers.get(t.colour) ?? 0, o = i <= 1 ? 0 : a / (i - 1);
242
+ return r[Math.round(o * (r.length - 1))];
243
+ }, D = (e) => ({
244
+ "--rdm-font": e.font,
245
+ "--rdm-font-size": e.fontSize,
246
+ "--rdm-surface": e.surface,
247
+ "--rdm-backdrop": e.backdrop ?? "none",
248
+ "--rdm-text": e.text,
249
+ "--rdm-muted-text": e.mutedText,
250
+ "--rdm-header-surface": e.headerSurface,
251
+ "--rdm-header-text": e.headerText,
252
+ "--rdm-line": e.line,
253
+ "--rdm-line-width": e.lineWidth,
254
+ "--rdm-line-style": e.lineStyle,
255
+ "--rdm-radius": e.radius,
256
+ "--rdm-gap": e.gap,
257
+ "--rdm-cell-padding": e.cellPadding,
258
+ "--rdm-cell-shadow": e.cellShadow,
259
+ "--rdm-focus": e.focus
260
+ }), O = (e) => ({
261
+ "data-palette": e.palette && e.palette.length > 0 ? "theme" : "data",
262
+ "data-scheme": e.scheme,
263
+ "data-variant": e.cellVariant,
264
+ "data-emphasis": e.emphasis,
265
+ "data-align": e.align,
266
+ "data-axis-case": e.axisCase
267
+ }), k = {
268
+ name: "Arcade",
269
+ scheme: "dark",
270
+ font: "ui-monospace, 'SF Mono', Menlo, Consolas, monospace",
271
+ fontSize: "0.875rem",
272
+ surface: "#150d2b",
273
+ text: "#f3e8ff",
274
+ mutedText: "#c4b5fd",
275
+ headerSurface: "#241548",
276
+ headerText: "#f3e8ff",
277
+ line: "#0b0618",
278
+ lineWidth: "3px",
279
+ lineStyle: "solid",
280
+ radius: "0",
281
+ gap: "4px",
282
+ cellPadding: "0.4rem",
283
+ cellShadow: "0 4px 0 #0b0618",
284
+ cellVariant: "fill",
285
+ emphasis: "label",
286
+ align: "center",
287
+ axisCase: "upper",
288
+ palette: [
289
+ {
290
+ bg: "#39ff14",
291
+ fg: "#0b0618"
292
+ },
293
+ {
294
+ bg: "#ffe600",
295
+ fg: "#0b0618"
296
+ },
297
+ {
298
+ bg: "#ff9f1c",
299
+ fg: "#0b0618"
300
+ },
301
+ {
302
+ bg: "#ff2079",
303
+ fg: "#0b0618"
304
+ }
305
+ ],
306
+ scale: "tier",
307
+ focus: "#39ff14"
308
+ }, A = {
309
+ name: "Aurora",
310
+ scheme: "dark",
311
+ font: "'Avenir Next', 'Segoe UI Variable', system-ui, sans-serif",
312
+ fontSize: "0.9375rem",
313
+ surface: "#0b1026",
314
+ backdrop: "radial-gradient(120% 80% at 10% 0%, rgba(45, 212, 191, 0.16), transparent 60%), radial-gradient(90% 70% at 90% 10%, rgba(168, 85, 247, 0.18), transparent 60%)",
315
+ text: "#e6ecff",
316
+ mutedText: "#a9b4d6",
317
+ headerSurface: "#141b3a",
318
+ headerText: "#e6ecff",
319
+ line: "#2a3470",
320
+ lineWidth: "0",
321
+ lineStyle: "solid",
322
+ radius: "14px",
323
+ gap: "6px",
324
+ cellPadding: "0.5rem",
325
+ cellShadow: "0 0 14px rgba(94, 234, 212, 0.25)",
326
+ cellVariant: "fill",
327
+ emphasis: "label",
328
+ align: "center",
329
+ axisCase: "upper",
330
+ palette: [
331
+ {
332
+ bg: "#5eead4",
333
+ fg: "#04201c"
334
+ },
335
+ {
336
+ bg: "#818cf8",
337
+ fg: "#0b1026"
338
+ },
339
+ {
340
+ bg: "#c084fc",
341
+ fg: "#1a0b2e"
342
+ },
343
+ {
344
+ bg: "#e879f9",
345
+ fg: "#1a0b2e"
346
+ },
347
+ {
348
+ bg: "#be185d",
349
+ fg: "#ffffff"
350
+ }
351
+ ],
352
+ scale: "tier",
353
+ focus: "#5eead4"
354
+ }, j = {
355
+ name: "Beacon",
356
+ scheme: "light",
357
+ font: "system-ui, sans-serif",
358
+ fontSize: "1rem",
359
+ surface: "#f7f7f7",
360
+ text: "#111111",
361
+ mutedText: "#333333",
362
+ headerSurface: "#f2f2f2",
363
+ headerText: "#111111",
364
+ line: "#111111",
365
+ lineWidth: "2px",
366
+ lineStyle: "solid",
367
+ radius: "4px",
368
+ gap: "4px",
369
+ cellPadding: "0.5rem",
370
+ cellShadow: "none",
371
+ cellVariant: "fill",
372
+ emphasis: "label",
373
+ align: "center",
374
+ axisCase: "upper",
375
+ palette: [
376
+ {
377
+ bg: "#56b4e9",
378
+ fg: "#000000"
379
+ },
380
+ {
381
+ bg: "#f0e442",
382
+ fg: "#000000"
383
+ },
384
+ {
385
+ bg: "#e69f00",
386
+ fg: "#000000"
387
+ },
388
+ {
389
+ bg: "#8c2d02",
390
+ fg: "#ffffff"
391
+ }
392
+ ],
393
+ scale: "tier",
394
+ focus: "#0072b2"
395
+ }, M = {
396
+ name: "Blueprint",
397
+ scheme: "dark",
398
+ font: "ui-monospace, 'SF Mono', Menlo, Consolas, monospace",
399
+ fontSize: "0.875rem",
400
+ surface: "#0b3d91",
401
+ text: "#ffffff",
402
+ mutedText: "#cfe0ff",
403
+ headerSurface: "#0d47a1",
404
+ headerText: "#ffffff",
405
+ line: "#e3eeff",
406
+ lineWidth: "1px",
407
+ lineStyle: "dashed",
408
+ radius: "0",
409
+ gap: "0",
410
+ cellPadding: "0.4rem",
411
+ cellShadow: "none",
412
+ cellVariant: "outline",
413
+ emphasis: "label",
414
+ align: "center",
415
+ axisCase: "upper",
416
+ palette: [
417
+ {
418
+ bg: "#b9f6ca",
419
+ fg: "#051d4a"
420
+ },
421
+ {
422
+ bg: "#fff59d",
423
+ fg: "#051d4a"
424
+ },
425
+ {
426
+ bg: "#ffcc80",
427
+ fg: "#051d4a"
428
+ },
429
+ {
430
+ bg: "#ff8a80",
431
+ fg: "#051d4a"
432
+ }
433
+ ],
434
+ scale: "tier",
435
+ focus: "#ffeb3b"
436
+ }, N = {
437
+ name: "Boardroom",
438
+ scheme: "light",
439
+ font: "'Segoe UI', 'Helvetica Neue', system-ui, sans-serif",
440
+ fontSize: "0.9375rem",
441
+ surface: "#f4f6f9",
442
+ text: "#1b2a41",
443
+ mutedText: "#c9d4e5",
444
+ headerSurface: "#1b2a41",
445
+ headerText: "#ffffff",
446
+ line: "#9aa7b8",
447
+ lineWidth: "1px",
448
+ lineStyle: "solid",
449
+ radius: "4px",
450
+ gap: "2px",
451
+ cellPadding: "0.4rem 0.6rem",
452
+ cellShadow: "none",
453
+ cellVariant: "fill",
454
+ emphasis: "label",
455
+ align: "start",
456
+ axisCase: "upper",
457
+ palette: [
458
+ {
459
+ bg: "#0f766e",
460
+ fg: "#ffffff"
461
+ },
462
+ {
463
+ bg: "#f59e0b",
464
+ fg: "#1b2a41"
465
+ },
466
+ {
467
+ bg: "#c2410c",
468
+ fg: "#ffffff"
469
+ },
470
+ {
471
+ bg: "#991b1b",
472
+ fg: "#ffffff"
473
+ }
474
+ ],
475
+ scale: "tier",
476
+ focus: "#0b5fff"
477
+ }, P = {
478
+ name: "Broadsheet",
479
+ scheme: "light",
480
+ font: "ui-serif, Charter, 'Bitstream Charter', Cambria, Georgia, serif",
481
+ fontSize: "1rem",
482
+ surface: "#f7f3e8",
483
+ text: "#1c1b17",
484
+ mutedText: "#4d4a42",
485
+ headerSurface: "#efe9d8",
486
+ headerText: "#1c1b17",
487
+ line: "#2b2a26",
488
+ lineWidth: "1px",
489
+ lineStyle: "solid",
490
+ radius: "0",
491
+ gap: "0",
492
+ cellPadding: "0.35rem 0.5rem",
493
+ cellShadow: "none",
494
+ cellVariant: "fill",
495
+ emphasis: "score",
496
+ align: "start",
497
+ axisCase: "upper",
498
+ palette: [
499
+ {
500
+ bg: "#c9d6c0",
501
+ fg: "#1c1b17"
502
+ },
503
+ {
504
+ bg: "#e0c27a",
505
+ fg: "#1c1b17"
506
+ },
507
+ {
508
+ bg: "#c77b4e",
509
+ fg: "#1c1b17"
510
+ },
511
+ {
512
+ bg: "#8c2f1c",
513
+ fg: "#f7f3e8"
514
+ }
515
+ ],
516
+ scale: "tier",
517
+ focus: "#8c2f1c"
518
+ }, F = {
519
+ name: "Brutal",
520
+ scheme: "light",
521
+ font: "'Helvetica Neue', Arial, system-ui, sans-serif",
522
+ fontSize: "1rem",
523
+ surface: "#fffdf5",
524
+ text: "#000000",
525
+ mutedText: "#1a1a1a",
526
+ headerSurface: "#ffffff",
527
+ headerText: "#000000",
528
+ line: "#000000",
529
+ lineWidth: "3px",
530
+ lineStyle: "solid",
531
+ radius: "0",
532
+ gap: "6px",
533
+ cellPadding: "0.5rem",
534
+ cellShadow: "4px 4px 0 #000000",
535
+ cellVariant: "fill",
536
+ emphasis: "label",
537
+ align: "center",
538
+ axisCase: "upper",
539
+ palette: [
540
+ {
541
+ bg: "#a3e635",
542
+ fg: "#000000"
543
+ },
544
+ {
545
+ bg: "#facc15",
546
+ fg: "#000000"
547
+ },
548
+ {
549
+ bg: "#fb923c",
550
+ fg: "#000000"
551
+ },
552
+ {
553
+ bg: "#ef4444",
554
+ fg: "#000000"
555
+ }
556
+ ],
557
+ scale: "tier",
558
+ focus: "#0000ff"
559
+ }, I = {
560
+ name: "Canopy",
561
+ scheme: "light",
562
+ font: "ui-serif, Charter, 'Bitstream Charter', Cambria, Georgia, serif",
563
+ fontSize: "0.9375rem",
564
+ surface: "#f6f4ec",
565
+ text: "#26301f",
566
+ mutedText: "#4a5340",
567
+ headerSurface: "#e9e6d8",
568
+ headerText: "#26301f",
569
+ line: "#cfcbb8",
570
+ lineWidth: "0",
571
+ lineStyle: "solid",
572
+ radius: "14px 2px",
573
+ gap: "4px",
574
+ cellPadding: "0.45rem",
575
+ cellShadow: "none",
576
+ cellVariant: "fill",
577
+ emphasis: "label",
578
+ align: "center",
579
+ axisCase: "upper",
580
+ palette: [
581
+ {
582
+ bg: "#8fae72",
583
+ fg: "#12180e"
584
+ },
585
+ {
586
+ bg: "#d8b65a",
587
+ fg: "#12180e"
588
+ },
589
+ {
590
+ bg: "#9c4f1c",
591
+ fg: "#fdfbf4"
592
+ },
593
+ {
594
+ bg: "#6d2019",
595
+ fg: "#fdfbf4"
596
+ }
597
+ ],
598
+ scale: "tier",
599
+ focus: "#6d2019"
600
+ }, L = {
601
+ name: "Clay",
602
+ scheme: "light",
603
+ font: "ui-rounded, 'SF Pro Rounded', Nunito, system-ui, sans-serif",
604
+ fontSize: "0.9375rem",
605
+ surface: "#e6e9ef",
606
+ text: "#2d3142",
607
+ mutedText: "#4f5569",
608
+ headerSurface: "#e6e9ef",
609
+ headerText: "#2d3142",
610
+ line: "#d1d5de",
611
+ lineWidth: "0",
612
+ lineStyle: "solid",
613
+ radius: "18px",
614
+ gap: "10px",
615
+ cellPadding: "0.5rem",
616
+ cellShadow: "6px 6px 12px #c3c7d0, -6px -6px 12px #ffffff",
617
+ cellVariant: "dot",
618
+ emphasis: "label",
619
+ align: "center",
620
+ axisCase: "upper",
621
+ palette: [
622
+ {
623
+ bg: "#067647",
624
+ fg: "#ffffff"
625
+ },
626
+ {
627
+ bg: "#9a6700",
628
+ fg: "#ffffff"
629
+ },
630
+ {
631
+ bg: "#c4320a",
632
+ fg: "#ffffff"
633
+ },
634
+ {
635
+ bg: "#9f1d2c",
636
+ fg: "#ffffff"
637
+ }
638
+ ],
639
+ scale: "tier",
640
+ focus: "#5b5bd6"
641
+ }, R = {
642
+ name: "Contour",
643
+ scheme: "light",
644
+ font: "system-ui, sans-serif",
645
+ fontSize: "0.9375rem",
646
+ surface: "#fefefe",
647
+ text: "#27272a",
648
+ mutedText: "#52525b",
649
+ headerSurface: "#fefefe",
650
+ headerText: "#27272a",
651
+ line: "#d4d4d8",
652
+ lineWidth: "0",
653
+ lineStyle: "solid",
654
+ radius: "8px",
655
+ gap: "4px",
656
+ cellPadding: "0.45rem",
657
+ cellShadow: "none",
658
+ cellVariant: "outline",
659
+ emphasis: "label",
660
+ align: "center",
661
+ axisCase: "upper",
662
+ palette: [
663
+ {
664
+ bg: "#047857",
665
+ fg: "#ffffff"
666
+ },
667
+ {
668
+ bg: "#b45309",
669
+ fg: "#ffffff"
670
+ },
671
+ {
672
+ bg: "#9a3412",
673
+ fg: "#ffffff"
674
+ },
675
+ {
676
+ bg: "#be123c",
677
+ fg: "#ffffff"
678
+ }
679
+ ],
680
+ scale: "tier",
681
+ focus: "#2563eb"
682
+ }, z = {
683
+ name: "Fjord",
684
+ scheme: "dark",
685
+ font: "system-ui, sans-serif",
686
+ fontSize: "0.9375rem",
687
+ surface: "#2e3440",
688
+ text: "#eceff4",
689
+ mutedText: "#d8dee9",
690
+ headerSurface: "#3b4252",
691
+ headerText: "#eceff4",
692
+ line: "#4c566a",
693
+ lineWidth: "0",
694
+ lineStyle: "solid",
695
+ radius: "6px",
696
+ gap: "6px",
697
+ cellPadding: "0.5rem",
698
+ cellShadow: "none",
699
+ cellVariant: "dot",
700
+ emphasis: "label",
701
+ align: "center",
702
+ axisCase: "upper",
703
+ palette: [
704
+ {
705
+ bg: "#a3be8c",
706
+ fg: "#2e3440"
707
+ },
708
+ {
709
+ bg: "#ebcb8b",
710
+ fg: "#2e3440"
711
+ },
712
+ {
713
+ bg: "#d08770",
714
+ fg: "#141a21"
715
+ },
716
+ {
717
+ bg: "#e0868f",
718
+ fg: "#141a21"
719
+ }
720
+ ],
721
+ scale: "tier",
722
+ focus: "#88c0d0"
723
+ }, B = {
724
+ name: "Glasshouse",
725
+ scheme: "light",
726
+ font: "system-ui, sans-serif",
727
+ fontSize: "0.9375rem",
728
+ surface: "#f5f3ff",
729
+ backdrop: "linear-gradient(135deg, #cffafe 0%, #ede9fe 50%, #fce7f3 100%)",
730
+ text: "#1e1b4b",
731
+ mutedText: "#4c4a6b",
732
+ headerSurface: "#ffffff",
733
+ headerText: "#1e1b4b",
734
+ line: "#ffffff",
735
+ lineWidth: "1px",
736
+ lineStyle: "solid",
737
+ radius: "16px",
738
+ gap: "8px",
739
+ cellPadding: "0.5rem",
740
+ cellShadow: "0 8px 24px rgba(30, 27, 75, 0.12)",
741
+ cellVariant: "fill",
742
+ emphasis: "label",
743
+ align: "center",
744
+ axisCase: "upper",
745
+ palette: [
746
+ {
747
+ bg: "#99f6e4",
748
+ fg: "#1e1b4b"
749
+ },
750
+ {
751
+ bg: "#fde68a",
752
+ fg: "#1e1b4b"
753
+ },
754
+ {
755
+ bg: "#fdba74",
756
+ fg: "#1e1b4b"
757
+ },
758
+ {
759
+ bg: "#be123c",
760
+ fg: "#ffffff"
761
+ }
762
+ ],
763
+ scale: "tier",
764
+ focus: "#4f46e5"
765
+ }, V = {
766
+ name: "Graphite",
767
+ scheme: "light",
768
+ font: "system-ui, sans-serif",
769
+ fontSize: "0.9375rem",
770
+ surface: "#fafafa",
771
+ text: "#1f1f1f",
772
+ mutedText: "#555555",
773
+ headerSurface: "#ececec",
774
+ headerText: "#1f1f1f",
775
+ line: "#8a8a8a",
776
+ lineWidth: "1px",
777
+ lineStyle: "solid",
778
+ radius: "2px",
779
+ gap: "2px",
780
+ cellPadding: "0.35rem 0.5rem",
781
+ cellShadow: "none",
782
+ cellVariant: "fill",
783
+ emphasis: "score",
784
+ align: "start",
785
+ axisCase: "upper",
786
+ palette: [
787
+ {
788
+ bg: "#e5e5e5",
789
+ fg: "#111111"
790
+ },
791
+ {
792
+ bg: "#b3b3b3",
793
+ fg: "#111111"
794
+ },
795
+ {
796
+ bg: "#6b6b6b",
797
+ fg: "#ffffff"
798
+ },
799
+ {
800
+ bg: "#262626",
801
+ fg: "#ffffff"
802
+ }
803
+ ],
804
+ scale: "tier",
805
+ focus: "#000000"
806
+ }, H = {
807
+ name: "Ledger",
808
+ scheme: "light",
809
+ font: "ui-monospace, 'SF Mono', Menlo, Consolas, monospace",
810
+ fontSize: "0.875rem",
811
+ surface: "#fbfbf9",
812
+ text: "#20201d",
813
+ mutedText: "#55554f",
814
+ headerSurface: "#f0f0ec",
815
+ headerText: "#20201d",
816
+ line: "#b8b8b0",
817
+ lineWidth: "1px",
818
+ lineStyle: "solid",
819
+ radius: "0",
820
+ gap: "0",
821
+ cellPadding: "0.3rem 0.5rem",
822
+ cellShadow: "none",
823
+ cellVariant: "fill",
824
+ emphasis: "label",
825
+ align: "start",
826
+ axisCase: "upper",
827
+ palette: [
828
+ {
829
+ bg: "#e7f0e3",
830
+ fg: "#20201d"
831
+ },
832
+ {
833
+ bg: "#f6efcf",
834
+ fg: "#20201d"
835
+ },
836
+ {
837
+ bg: "#f7dfc4",
838
+ fg: "#20201d"
839
+ },
840
+ {
841
+ bg: "#f2cdcd",
842
+ fg: "#20201d"
843
+ }
844
+ ],
845
+ scale: "tier",
846
+ focus: "#20201d"
847
+ }, U = {
848
+ name: "Midnight",
849
+ scheme: "dark",
850
+ font: "system-ui, sans-serif",
851
+ fontSize: "0.9375rem",
852
+ surface: "#0a192f",
853
+ text: "#e2e8f0",
854
+ mutedText: "#94a3b8",
855
+ headerSurface: "#112240",
856
+ headerText: "#ccd6f6",
857
+ line: "#233554",
858
+ lineWidth: "0",
859
+ lineStyle: "solid",
860
+ radius: "8px",
861
+ gap: "4px",
862
+ cellPadding: "0.4rem",
863
+ cellShadow: "inset 0 1px 0 rgba(255, 255, 255, 0.14)",
864
+ cellVariant: "fill",
865
+ emphasis: "label",
866
+ align: "center",
867
+ axisCase: "upper",
868
+ palette: [
869
+ {
870
+ bg: "#047857",
871
+ fg: "#ffffff"
872
+ },
873
+ {
874
+ bg: "#ca8a04",
875
+ fg: "#0a192f"
876
+ },
877
+ {
878
+ bg: "#c2410c",
879
+ fg: "#ffffff"
880
+ },
881
+ {
882
+ bg: "#9f1239",
883
+ fg: "#ffffff"
884
+ }
885
+ ],
886
+ scale: "tier",
887
+ focus: "#64ffda"
888
+ }, W = {
889
+ name: "Neon",
890
+ scheme: "dark",
891
+ font: "ui-monospace, 'SF Mono', Menlo, Consolas, monospace",
892
+ fontSize: "0.9375rem",
893
+ surface: "#0a0a12",
894
+ text: "#f5d0fe",
895
+ mutedText: "#e9a8fd",
896
+ headerSurface: "#140b1f",
897
+ headerText: "#f5d0fe",
898
+ line: "#2a1b3d",
899
+ lineWidth: "0",
900
+ lineStyle: "solid",
901
+ radius: "12px",
902
+ gap: "8px",
903
+ cellPadding: "0.5rem",
904
+ cellShadow: "0 0 14px rgba(236, 72, 153, 0.35)",
905
+ cellVariant: "outline",
906
+ emphasis: "label",
907
+ align: "center",
908
+ axisCase: "upper",
909
+ palette: [
910
+ {
911
+ bg: "#22d3ee",
912
+ fg: "#0a0a12"
913
+ },
914
+ {
915
+ bg: "#a3e635",
916
+ fg: "#0a0a12"
917
+ },
918
+ {
919
+ bg: "#fb923c",
920
+ fg: "#0a0a12"
921
+ },
922
+ {
923
+ bg: "#f472b6",
924
+ fg: "#0a0a12"
925
+ }
926
+ ],
927
+ scale: "tier",
928
+ focus: "#22d3ee"
929
+ }, G = {
930
+ name: "Noir",
931
+ scheme: "dark",
932
+ font: "ui-serif, Charter, 'Bitstream Charter', Cambria, Georgia, serif",
933
+ fontSize: "0.9375rem",
934
+ surface: "#0c0c0c",
935
+ text: "#f5e6c8",
936
+ mutedText: "#d8c49a",
937
+ headerSurface: "#141414",
938
+ headerText: "#f5e6c8",
939
+ line: "#c8a44a",
940
+ lineWidth: "1px",
941
+ lineStyle: "solid",
942
+ radius: "0",
943
+ gap: "2px",
944
+ cellPadding: "0.45rem",
945
+ cellShadow: "none",
946
+ cellVariant: "fill",
947
+ emphasis: "label",
948
+ align: "center",
949
+ axisCase: "upper",
950
+ palette: [
951
+ {
952
+ bg: "#3a3a36",
953
+ fg: "#f5e6c8"
954
+ },
955
+ {
956
+ bg: "#7a6a2f",
957
+ fg: "#f9f2e2"
958
+ },
959
+ {
960
+ bg: "#9a5b1c",
961
+ fg: "#fdf6ea"
962
+ },
963
+ {
964
+ bg: "#7a1f1f",
965
+ fg: "#f9e6e6"
966
+ }
967
+ ],
968
+ scale: "tier",
969
+ focus: "#c8a44a"
970
+ }, K = {
971
+ name: "Sherbet",
972
+ scheme: "light",
973
+ font: "ui-rounded, 'SF Pro Rounded', Nunito, system-ui, sans-serif",
974
+ fontSize: "0.9375rem",
975
+ surface: "#fff8f0",
976
+ text: "#3b2f2f",
977
+ mutedText: "#6b5a55",
978
+ headerSurface: "#ffffff",
979
+ headerText: "#3b2f2f",
980
+ line: "#f1dfd3",
981
+ lineWidth: "0",
982
+ lineStyle: "solid",
983
+ radius: "999px",
984
+ gap: "8px",
985
+ cellPadding: "0.45rem 0.75rem",
986
+ cellShadow: "none",
987
+ cellVariant: "fill",
988
+ emphasis: "label",
989
+ align: "center",
990
+ axisCase: "upper",
991
+ palette: [
992
+ {
993
+ bg: "#b8f2d0",
994
+ fg: "#3b2f2f"
995
+ },
996
+ {
997
+ bg: "#fff3a3",
998
+ fg: "#3b2f2f"
999
+ },
1000
+ {
1001
+ bg: "#ffc9a8",
1002
+ fg: "#3b2f2f"
1003
+ },
1004
+ {
1005
+ bg: "#ff8fab",
1006
+ fg: "#3b2f2f"
1007
+ }
1008
+ ],
1009
+ scale: "tier",
1010
+ focus: "#d9468f"
1011
+ }, q = {
1012
+ name: "Signal",
1013
+ scheme: "light",
1014
+ font: "system-ui, sans-serif",
1015
+ fontSize: "0.875rem",
1016
+ surface: "#fafbfc",
1017
+ text: "#111827",
1018
+ mutedText: "#4b5563",
1019
+ headerSurface: "#ffffff",
1020
+ headerText: "#111827",
1021
+ line: "#e5e7eb",
1022
+ lineWidth: "1px",
1023
+ lineStyle: "solid",
1024
+ radius: "6px",
1025
+ gap: "2px",
1026
+ cellPadding: "0.4rem",
1027
+ cellShadow: "none",
1028
+ cellVariant: "chip",
1029
+ emphasis: "label",
1030
+ align: "center",
1031
+ axisCase: "upper",
1032
+ palette: [
1033
+ {
1034
+ bg: "#dcfce7",
1035
+ fg: "#14532d"
1036
+ },
1037
+ {
1038
+ bg: "#fef9c3",
1039
+ fg: "#713f12"
1040
+ },
1041
+ {
1042
+ bg: "#ffedd5",
1043
+ fg: "#7c2d12"
1044
+ },
1045
+ {
1046
+ bg: "#fee2e2",
1047
+ fg: "#7f1d1d"
1048
+ }
1049
+ ],
1050
+ scale: "tier",
1051
+ focus: "#2563eb"
1052
+ }, J = {
1053
+ name: "Sunset",
1054
+ scheme: "light",
1055
+ font: "system-ui, sans-serif",
1056
+ fontSize: "0.9375rem",
1057
+ surface: "#fff7ed",
1058
+ text: "#431407",
1059
+ mutedText: "#7c2d12",
1060
+ headerSurface: "#ffedd5",
1061
+ headerText: "#431407",
1062
+ line: "#fed7aa",
1063
+ lineWidth: "0",
1064
+ lineStyle: "solid",
1065
+ radius: "20px",
1066
+ gap: "6px",
1067
+ cellPadding: "0.5rem",
1068
+ cellShadow: "none",
1069
+ cellVariant: "fill",
1070
+ emphasis: "label",
1071
+ align: "center",
1072
+ axisCase: "upper",
1073
+ palette: [
1074
+ {
1075
+ bg: "#fde68a",
1076
+ fg: "#431407"
1077
+ },
1078
+ {
1079
+ bg: "#fdba74",
1080
+ fg: "#431407"
1081
+ },
1082
+ {
1083
+ bg: "#fb7185",
1084
+ fg: "#3f0616"
1085
+ },
1086
+ {
1087
+ bg: "#9f1239",
1088
+ fg: "#fff7ed"
1089
+ }
1090
+ ],
1091
+ scale: "score",
1092
+ focus: "#c2410c"
1093
+ }, Y = {
1094
+ name: "Swiss",
1095
+ scheme: "light",
1096
+ font: "'Helvetica Neue', Helvetica, Arial, system-ui, sans-serif",
1097
+ fontSize: "0.9375rem",
1098
+ surface: "#fcfcfc",
1099
+ text: "#111111",
1100
+ mutedText: "#f4f4f4",
1101
+ headerSurface: "#d7263d",
1102
+ headerText: "#ffffff",
1103
+ line: "#111111",
1104
+ lineWidth: "0",
1105
+ lineStyle: "solid",
1106
+ radius: "0",
1107
+ gap: "0",
1108
+ cellPadding: "0.5rem",
1109
+ cellShadow: "none",
1110
+ cellVariant: "fill",
1111
+ emphasis: "score",
1112
+ align: "start",
1113
+ axisCase: "upper",
1114
+ palette: [
1115
+ {
1116
+ bg: "#efefef",
1117
+ fg: "#111111"
1118
+ },
1119
+ {
1120
+ bg: "#c9c9c9",
1121
+ fg: "#111111"
1122
+ },
1123
+ {
1124
+ bg: "#707070",
1125
+ fg: "#ffffff"
1126
+ },
1127
+ {
1128
+ bg: "#d7263d",
1129
+ fg: "#ffffff"
1130
+ }
1131
+ ],
1132
+ scale: "tier",
1133
+ focus: "#d7263d"
1134
+ }, X = {
1135
+ name: "Terminal",
1136
+ scheme: "dark",
1137
+ font: "ui-monospace, 'SF Mono', Menlo, Consolas, monospace",
1138
+ fontSize: "0.875rem",
1139
+ surface: "#050805",
1140
+ text: "#33ff66",
1141
+ mutedText: "#29cc52",
1142
+ headerSurface: "#0a120a",
1143
+ headerText: "#33ff66",
1144
+ line: "#1a3d1a",
1145
+ lineWidth: "0",
1146
+ lineStyle: "solid",
1147
+ radius: "0",
1148
+ gap: "2px",
1149
+ cellPadding: "0.35rem",
1150
+ cellShadow: "none",
1151
+ cellVariant: "outline",
1152
+ emphasis: "label",
1153
+ align: "center",
1154
+ axisCase: "upper",
1155
+ palette: [
1156
+ {
1157
+ bg: "#33ff66",
1158
+ fg: "#050805"
1159
+ },
1160
+ {
1161
+ bg: "#ffb000",
1162
+ fg: "#050805"
1163
+ },
1164
+ {
1165
+ bg: "#ff7a1a",
1166
+ fg: "#050805"
1167
+ },
1168
+ {
1169
+ bg: "#ff3b3b",
1170
+ fg: "#050805"
1171
+ }
1172
+ ],
1173
+ scale: "tier",
1174
+ focus: "#ffb000"
1175
+ }, Z = {
1176
+ name: "Thermal",
1177
+ scheme: "dark",
1178
+ font: "ui-monospace, 'SF Mono', Menlo, Consolas, monospace",
1179
+ fontSize: "0.875rem",
1180
+ surface: "#0d0221",
1181
+ text: "#f4f1ff",
1182
+ mutedText: "#b9b3d1",
1183
+ headerSurface: "#1a0b3a",
1184
+ headerText: "#f4f1ff",
1185
+ line: "#0d0221",
1186
+ lineWidth: "0",
1187
+ lineStyle: "solid",
1188
+ radius: "0",
1189
+ gap: "0",
1190
+ cellPadding: "0.3rem",
1191
+ cellShadow: "none",
1192
+ cellVariant: "fill",
1193
+ emphasis: "score",
1194
+ align: "center",
1195
+ axisCase: "upper",
1196
+ palette: [
1197
+ {
1198
+ bg: "#1b0c41",
1199
+ fg: "#ffffff"
1200
+ },
1201
+ {
1202
+ bg: "#6a176e",
1203
+ fg: "#ffffff"
1204
+ },
1205
+ {
1206
+ bg: "#bc3754",
1207
+ fg: "#ffffff"
1208
+ },
1209
+ {
1210
+ bg: "#f37819",
1211
+ fg: "#000000"
1212
+ },
1213
+ {
1214
+ bg: "#fcffa4",
1215
+ fg: "#000000"
1216
+ }
1217
+ ],
1218
+ scale: "score",
1219
+ focus: "#ffd166"
1220
+ }, Q = {
1221
+ name: "Tidewater",
1222
+ scheme: "light",
1223
+ font: "system-ui, sans-serif",
1224
+ fontSize: "0.9375rem",
1225
+ surface: "#f0f9ff",
1226
+ text: "#082f49",
1227
+ mutedText: "#0c4a6e",
1228
+ headerSurface: "#e0f2fe",
1229
+ headerText: "#082f49",
1230
+ line: "#bae6fd",
1231
+ lineWidth: "0",
1232
+ lineStyle: "solid",
1233
+ radius: "6px",
1234
+ gap: "3px",
1235
+ cellPadding: "0.45rem",
1236
+ cellShadow: "none",
1237
+ cellVariant: "fill",
1238
+ emphasis: "label",
1239
+ align: "center",
1240
+ axisCase: "upper",
1241
+ palette: [
1242
+ {
1243
+ bg: "#bae6fd",
1244
+ fg: "#082f49"
1245
+ },
1246
+ {
1247
+ bg: "#7dd3fc",
1248
+ fg: "#082f49"
1249
+ },
1250
+ {
1251
+ bg: "#0369a1",
1252
+ fg: "#f0f9ff"
1253
+ },
1254
+ {
1255
+ bg: "#082f49",
1256
+ fg: "#f0f9ff"
1257
+ }
1258
+ ],
1259
+ scale: "score",
1260
+ focus: "#0284c7"
1261
+ }, $ = {
1262
+ name: "Whitespace",
1263
+ scheme: "light",
1264
+ font: "system-ui, sans-serif",
1265
+ fontSize: "0.9375rem",
1266
+ surface: "#f8fafc",
1267
+ text: "#1d1d1f",
1268
+ mutedText: "#6e6e73",
1269
+ headerSurface: "#ffffff",
1270
+ headerText: "#1d1d1f",
1271
+ line: "#e5e5ea",
1272
+ lineWidth: "1px",
1273
+ lineStyle: "solid",
1274
+ radius: "0",
1275
+ gap: "6px",
1276
+ cellPadding: "0.6rem",
1277
+ cellShadow: "none",
1278
+ cellVariant: "dot",
1279
+ emphasis: "label",
1280
+ align: "center",
1281
+ axisCase: "upper",
1282
+ palette: [
1283
+ {
1284
+ bg: "#15803d",
1285
+ fg: "#ffffff"
1286
+ },
1287
+ {
1288
+ bg: "#a16207",
1289
+ fg: "#ffffff"
1290
+ },
1291
+ {
1292
+ bg: "#c2410c",
1293
+ fg: "#ffffff"
1294
+ },
1295
+ {
1296
+ bg: "#b91c1c",
1297
+ fg: "#ffffff"
1298
+ }
1299
+ ],
1300
+ scale: "tier",
1301
+ focus: "#0071e3"
1302
+ }, oe = {
1303
+ original: p,
1304
+ aurora: A,
1305
+ midnight: U,
1306
+ broadsheet: P,
1307
+ brutal: F,
1308
+ glasshouse: B,
1309
+ terminal: X,
1310
+ sherbet: K,
1311
+ graphite: V,
1312
+ blueprint: M,
1313
+ thermal: Z,
1314
+ whitespace: $,
1315
+ boardroom: N,
1316
+ clay: L,
1317
+ arcade: k,
1318
+ sunset: J,
1319
+ tidewater: Q,
1320
+ canopy: I,
1321
+ fjord: z,
1322
+ neon: W,
1323
+ ledger: H,
1324
+ contour: R,
1325
+ signal: q,
1326
+ beacon: j,
1327
+ noir: G,
1328
+ swiss: Y
1329
+ }, se = {
1330
+ href: f,
1331
+ precedence: "default"
1332
+ }, ce = (t) => {
1333
+ let [n, i] = r(!1);
1334
+ return e(() => {
1335
+ let e = t.current;
1336
+ if (!e || typeof ResizeObserver > "u") return;
1337
+ let n = new ResizeObserver(() => i(e.scrollWidth > e.clientWidth));
1338
+ n.observe(e);
1339
+ let r = e.querySelector("table");
1340
+ return r && n.observe(r), () => n.disconnect();
1341
+ }, [t]), n;
1342
+ }, le = ({ data: r, theme: i = p, styles: c = {}, className: f, style: m, unstyled: h = !1, reverseMatrixValues: g = !0, nonce: _, onCellClick: v }) => {
1343
+ let y = t(() => u(r, { reverse: g }), [r, g]), b = t(() => ie(r.matrix_values), [r]), x = t(() => h ? null : new Map(r.matrix_values.map((e) => [e.id, ae(i, {
1344
+ value: e,
1345
+ scale: b
1346
+ })])), [
1347
+ r,
1348
+ i,
1349
+ b,
1350
+ h
1351
+ ]), S = n(null), C = ce(S);
1352
+ return e(() => {
1353
+ y.issues.forEach((e) => console.error(e)), x?.forEach(({ rejectedColour: e }, t) => {
1354
+ e !== void 0 && console.error(`react-data-matrix: value ${t} has an unsafe colour ${JSON.stringify(e)}; a neutral colour is shown instead.`);
1355
+ });
1356
+ }, [y, x]), /* @__PURE__ */ o("div", {
1357
+ ref: S,
1358
+ ...C ? {
1359
+ tabIndex: 0,
1360
+ role: "region",
1361
+ "aria-label": r.matrix_name
1362
+ } : {},
1363
+ className: f ? `rdm-root ${f}` : "rdm-root",
1364
+ style: h ? {
1365
+ ...c.root,
1366
+ ...m
1367
+ } : {
1368
+ ...D(i),
1369
+ ...c.root,
1370
+ ...m
1371
+ },
1372
+ ...h ? {} : O(i),
1373
+ children: [!h && /* @__PURE__ */ a("style", {
1374
+ ...se,
1375
+ nonce: _,
1376
+ children: d
1377
+ }), /* @__PURE__ */ o("table", {
1378
+ className: "rdm-table",
1379
+ style: c.table,
1380
+ children: [
1381
+ /* @__PURE__ */ o("caption", {
1382
+ className: "rdm-caption",
1383
+ style: c.caption,
1384
+ children: [/* @__PURE__ */ a("span", {
1385
+ className: "rdm-caption-title",
1386
+ children: r.matrix_name
1387
+ }), /* @__PURE__ */ a("span", {
1388
+ className: "rdm-caption-description",
1389
+ children: r.matrix_description
1390
+ })]
1391
+ }),
1392
+ /* @__PURE__ */ a("colgroup", { span: 2 }),
1393
+ /* @__PURE__ */ a("colgroup", { span: y.columns.length }),
1394
+ /* @__PURE__ */ a(s, {
1395
+ title: r.primary_header_title,
1396
+ columns: y.columns,
1397
+ styles: c
1398
+ }),
1399
+ /* @__PURE__ */ a(l, {
1400
+ rowTitle: r.primary_row_header_title,
1401
+ columnTitle: r.primary_header_title,
1402
+ onCellClick: v,
1403
+ columns: y.columns,
1404
+ rows: y.rows,
1405
+ tiers: b.tiers,
1406
+ colours: x,
1407
+ styles: c
1408
+ })
1409
+ ]
1410
+ })]
1411
+ });
1412
+ };
1413
+ //#endregion
1414
+ export { k as arcade, A as aurora, j as beacon, M as blueprint, N as boardroom, P as broadsheet, F as brutal, I as canopy, L as clay, R as contour, le as default, z as fjord, B as glasshouse, V as graphite, H as ledger, U as midnight, W as neon, G as noir, p as original, oe as presets, K as sherbet, q as signal, J as sunset, Y as swiss, X as terminal, Z as thermal, Q as tidewater, $ as whitespace };