@surrealdb/ui 1.2.1 → 1.2.3
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.
- package/.picto-fix-png/Cursor.png +0 -0
- package/.picto-fix-png/DocumentGradient.png +0 -0
- package/.picto-fix-png/FileGradient.png +0 -0
- package/.picto-fix-png/HealthBubbleGradient.png +0 -0
- package/.picto-fix-png/LearnGradient.png +0 -0
- package/.picto-fix-png/MediaFileGradient.png +0 -0
- package/AGENTS.md +0 -1
- package/README.md +6 -2
- package/dist/assets/00a10f6ed8d28851.webp +0 -0
- package/dist/assets/00f479574770406b.webp +0 -0
- package/dist/assets/0162c6a4ac2cfebd.webp +0 -0
- package/dist/assets/01b31b9257d57b8a.webp +0 -0
- package/dist/assets/02b4198388348511.webp +0 -0
- package/dist/assets/037a996120148e0b.webp +0 -0
- package/dist/assets/040a4fd015cdd0b7.webp +0 -0
- package/dist/assets/0526e0981d888126.webp +0 -0
- package/dist/assets/055abefe79b6e701.webp +0 -0
- package/dist/assets/0657d7ba8678dd5c.webp +0 -0
- package/dist/assets/0713360965c24418.webp +0 -0
- package/dist/assets/09af36dca92ae382.webp +0 -0
- package/dist/assets/09eec3632083144d.webp +0 -0
- package/dist/assets/0ae51c3e75175179.webp +0 -0
- package/dist/assets/0b1e649b60896d1b.webp +0 -0
- package/dist/assets/0cea48c7405074a6.webp +0 -0
- package/dist/assets/10fb18b7ef29f001.webp +0 -0
- package/dist/assets/1145150f6d6d554f.webp +0 -0
- package/dist/assets/11b1e7bf3bca451b.webp +0 -0
- package/dist/assets/13947bb6cca1c56e.webp +0 -0
- package/dist/assets/144f5da678a9258f.webp +0 -0
- package/dist/assets/16a3342882f33b40.webp +0 -0
- package/dist/assets/179f73130353ef01.webp +0 -0
- package/dist/assets/17fe34cc786799f8.webp +0 -0
- package/dist/assets/192ca51c99df0528.webp +0 -0
- package/dist/assets/194bc4e7d0be7145.webp +0 -0
- package/dist/assets/1a6f2cf9760fdd7e.webp +0 -0
- package/dist/assets/1b7a850bfb0af3e8.webp +0 -0
- package/dist/assets/1cc9e6767845e21c.webp +0 -0
- package/dist/assets/21731d9653706a78.webp +0 -0
- package/dist/assets/2207b2dc578622fe.webp +0 -0
- package/dist/assets/223bcefaa02568a8.webp +0 -0
- package/dist/assets/248ac00cd21f815a.webp +0 -0
- package/dist/assets/2647a47de41f9ae3.webp +0 -0
- package/dist/assets/2691af8ce9e9d5ce.webp +0 -0
- package/dist/assets/26abe1725525984a.webp +0 -0
- package/dist/assets/27ffc0d44a1f3be1.webp +0 -0
- package/dist/assets/2946d1ee47ed665d.webp +0 -0
- package/dist/assets/29a4e5dae52e11ff.webp +0 -0
- package/dist/assets/2b1d5bae1a5eae30.webp +0 -0
- package/dist/assets/2c6d5014b905a65c.webp +0 -0
- package/dist/assets/2cc4f4980c1bb29f.webp +0 -0
- package/dist/assets/2d30b090e914771f.webp +0 -0
- package/dist/assets/2ee142cc7ddc781f.webp +0 -0
- package/dist/assets/2f7c6d1c5fb82e2c.webp +0 -0
- package/dist/assets/2fedfaedf3e5eb80.webp +0 -0
- package/dist/assets/2ff21e9a34d3241f.webp +0 -0
- package/dist/assets/30dd1d8558ecbbb8.webp +0 -0
- package/dist/assets/346850e9684e7d97.webp +0 -0
- package/dist/assets/34effaa38093f34e.webp +0 -0
- package/dist/assets/350cd57f2d5cbeae.webp +0 -0
- package/dist/assets/351a1aef50fa5125.webp +0 -0
- package/dist/assets/372eea715c737270.webp +0 -0
- package/dist/assets/38e6703a7ee5ff1b.webp +0 -0
- package/dist/assets/39ae0cc748731119.webp +0 -0
- package/dist/assets/3a62798e03acaab1.webp +0 -0
- package/dist/assets/3bb0b598bc35e4b2.webp +0 -0
- package/dist/assets/3cbc127cdc2058e2.webp +0 -0
- package/dist/assets/3ccd7e9a3e883ef4.webp +0 -0
- package/dist/assets/3cf8e43990d9d89d.webp +0 -0
- package/dist/assets/3e3150054c482d19.webp +0 -0
- package/dist/assets/3e632c9bb973b708.webp +0 -0
- package/dist/assets/3ee2d99ac860a623.webp +0 -0
- package/dist/assets/3fbcf5362280f81f.webp +0 -0
- package/dist/assets/3fe501a7865c16ae.webp +0 -0
- package/dist/assets/414e2d8a56ce7910.webp +0 -0
- package/dist/assets/41b23bd70281a865.webp +0 -0
- package/dist/assets/455b9eb8a609a708.webp +0 -0
- package/dist/assets/45e2ed33c14f0b04.webp +0 -0
- package/dist/assets/45f0191b96b665f1.webp +0 -0
- package/dist/assets/4825fc2b412e6c49.webp +0 -0
- package/dist/assets/484e9cdb969f15b9.webp +0 -0
- package/dist/assets/48b89b593ddf3859.webp +0 -0
- package/dist/assets/49886a9c10c84219.webp +0 -0
- package/dist/assets/4ab8aa6d05f81b2d.webp +0 -0
- package/dist/assets/4c5804e0445a2364.webp +0 -0
- package/dist/assets/4c606cb3cb92175b.webp +0 -0
- package/dist/assets/4c7c1c273025dcf1.webp +0 -0
- package/dist/assets/4d1e067d250e3da7.webp +0 -0
- package/dist/assets/4f8d51ffc6798a3f.webp +0 -0
- package/dist/assets/4feef73a1f59ead0.webp +0 -0
- package/dist/assets/503e2f91f525ced6.webp +0 -0
- package/dist/assets/507d9b965db335dc.webp +0 -0
- package/dist/assets/50ee2b8f746929fd.webp +0 -0
- package/dist/assets/5162561b1cf1157d.webp +0 -0
- package/dist/assets/519b2797ad349ab2.webp +0 -0
- package/dist/assets/52a04db8f3ef729a.webp +0 -0
- package/dist/assets/5410644476584555.webp +0 -0
- package/dist/assets/552e3b3c7a8b219f.webp +0 -0
- package/dist/assets/5680f57bba683ea8.webp +0 -0
- package/dist/assets/56e2c0df0df84d85.webp +0 -0
- package/dist/assets/57413876fab23bf4.webp +0 -0
- package/dist/assets/57735748702cef60.webp +0 -0
- package/dist/assets/579ffd3b6352fde8.webp +0 -0
- package/dist/assets/580af10c3a0d6214.webp +0 -0
- package/dist/assets/592d63e445941a48.webp +0 -0
- package/dist/assets/5969a507868247dc.webp +0 -0
- package/dist/assets/5ad66afddb5112e8.webp +0 -0
- package/dist/assets/5d6c6d3209e05455.webp +0 -0
- package/dist/assets/5e4ed61f6e3ddf63.webp +0 -0
- package/dist/assets/5f425d79f49de428.webp +0 -0
- package/dist/assets/60375484135ea20c.webp +0 -0
- package/dist/assets/60960b537570554b.webp +0 -0
- package/dist/assets/60a1723d1f64a67b.webp +0 -0
- package/dist/assets/60c240a2b0c62ff7.webp +0 -0
- package/dist/assets/60d0a8d0bfcf6aaa.webp +0 -0
- package/dist/assets/6191cf7b0ba752b1.webp +0 -0
- package/dist/assets/6230c2d26c7fb874.webp +0 -0
- package/dist/assets/6474ae0b83dd1961.webp +0 -0
- package/dist/assets/652b609078ac988f.webp +0 -0
- package/dist/assets/66326fee66039124.webp +0 -0
- package/dist/assets/679c6102b205fef3.webp +0 -0
- package/dist/assets/67e727126d43f52d.webp +0 -0
- package/dist/assets/68f95a529308ffd0.webp +0 -0
- package/dist/assets/6a49b166e27942d6.webp +0 -0
- package/dist/assets/6b612396a876a6cb.webp +0 -0
- package/dist/assets/6b741e24b789b759.webp +0 -0
- package/dist/assets/6bd1b97cabb7013b.webp +0 -0
- package/dist/assets/6c23b306b3b98347.webp +0 -0
- package/dist/assets/6c647c1f3bd39d04.webp +0 -0
- package/dist/assets/6d2ffcd3c87bf0b8.webp +0 -0
- package/dist/assets/6da50ab548c1f881.webp +0 -0
- package/dist/assets/7202c68df46af42f.webp +0 -0
- package/dist/assets/733327e345884210.webp +0 -0
- package/dist/assets/753795af2c5d7be2.webp +0 -0
- package/dist/assets/75641da57bc6dffd.webp +0 -0
- package/dist/assets/76f4466c03adcd1d.webp +0 -0
- package/dist/assets/795ed707186e4998.webp +0 -0
- package/dist/assets/7a3c2063a78a7671.webp +0 -0
- package/dist/assets/7a40e614f1abab41.webp +0 -0
- package/dist/assets/7a51bae6c8c0b8d6.webp +0 -0
- package/dist/assets/7ac03abe57635a22.webp +0 -0
- package/dist/assets/7afbeb4d3723bea9.webp +0 -0
- package/dist/assets/7b908fe597c371fe.webp +0 -0
- package/dist/assets/7c593a2cee07323d.webp +0 -0
- package/dist/assets/7ef46b1ee3c0fcc3.webp +0 -0
- package/dist/assets/7f19155287c0e9e2.webp +0 -0
- package/dist/assets/7f4980ef8d2e758e.webp +0 -0
- package/dist/assets/7fb40397fbf0a44f.webp +0 -0
- package/dist/assets/830cf1f097720215.webp +0 -0
- package/dist/assets/8409441a26339658.webp +0 -0
- package/dist/assets/8557a1175cf5b927.webp +0 -0
- package/dist/assets/85cbb57cabec9be3.webp +0 -0
- package/dist/assets/8890f1eb46c62eed.webp +0 -0
- package/dist/assets/8892b010e8f9c0fd.webp +0 -0
- package/dist/assets/897cb1960e8c41df.webp +0 -0
- package/dist/assets/8d382694be4b565a.webp +0 -0
- package/dist/assets/8eb74a3ae87778e5.webp +0 -0
- package/dist/assets/8f5d77f12b63e5fa.webp +0 -0
- package/dist/assets/8f82effc460e2e89.webp +0 -0
- package/dist/assets/91261685c5adbd6d.webp +0 -0
- package/dist/assets/9274d3588526a567.webp +0 -0
- package/dist/assets/935d6e6f2791ed73.webp +0 -0
- package/dist/assets/9426b76449fbf64b.webp +0 -0
- package/dist/assets/945c99dfa636ba36.webp +0 -0
- package/dist/assets/94a9a29ed66a4ef3.webp +0 -0
- package/dist/assets/94bd2f81b090a7e6.webp +0 -0
- package/dist/assets/951f2418a7fd0373.webp +0 -0
- package/dist/assets/9535295d6b09150d.webp +0 -0
- package/dist/assets/98629dd48fcea10b.webp +0 -0
- package/dist/assets/9a30f66d8a1e2b35.webp +0 -0
- package/dist/assets/9ad5c4db3af637fc.webp +0 -0
- package/dist/assets/9af7119697945bfe.webp +0 -0
- package/dist/assets/9b88c1b8bd9e4274.webp +0 -0
- package/dist/assets/9e197be821d63126.webp +0 -0
- package/dist/assets/a0e567aeb88fd53f.webp +0 -0
- package/dist/assets/a108749cd7563ef6.webp +0 -0
- package/dist/assets/a1ae90b5309a83fb.webp +0 -0
- package/dist/assets/a22c2665236646b0.webp +0 -0
- package/dist/assets/a4675345ec0358f4.webp +0 -0
- package/dist/assets/a8de10da5e512d7b.webp +0 -0
- package/dist/assets/ad2af0582c0504ff.webp +0 -0
- package/dist/assets/adae3bc5bd13817b.webp +0 -0
- package/dist/assets/adb3fc29e677770e.webp +0 -0
- package/dist/assets/ae659f60557350c4.webp +0 -0
- package/dist/assets/aeaee0e289e2608e.webp +0 -0
- package/dist/assets/af24ba34b62492ac.webp +0 -0
- package/dist/assets/af7d97ae2466bbde.webp +0 -0
- package/dist/assets/afa9b3ef89679937.webp +0 -0
- package/dist/assets/b04753e5b98becb7.webp +0 -0
- package/dist/assets/b152b0331ec03bed.webp +0 -0
- package/dist/assets/b1d6aaff88edff14.webp +0 -0
- package/dist/assets/b25512027421d389.webp +0 -0
- package/dist/assets/b26cf4cd8b1f1131.webp +0 -0
- package/dist/assets/b28495c59529ee50.webp +0 -0
- package/dist/assets/b2bd7fdf877521bf.webp +0 -0
- package/dist/assets/b313afd86b997619.webp +0 -0
- package/dist/assets/b51cef69ba1cf9b8.webp +0 -0
- package/dist/assets/b5a9549e2fb98801.webp +0 -0
- package/dist/assets/b65447326dfe1209.webp +0 -0
- package/dist/assets/b89b3c6895142147.webp +0 -0
- package/dist/assets/b8c39a75a6dfb50a.webp +0 -0
- package/dist/assets/b8dacfca93cafccb.webp +0 -0
- package/dist/assets/b9123e22ce5345b5.webp +0 -0
- package/dist/assets/b92e9d16ff92dfd0.webp +0 -0
- package/dist/assets/b9ef318f0d0a84be.webp +0 -0
- package/dist/assets/baf060dfd0fa929b.webp +0 -0
- package/dist/assets/bb014a59e501b200.webp +0 -0
- package/dist/assets/bb591e63dc4cdfac.webp +0 -0
- package/dist/assets/bb5f0dfecd337e4d.webp +0 -0
- package/dist/assets/bb62a4f6efde2638.webp +0 -0
- package/dist/assets/bb84aa5403a64e37.webp +0 -0
- package/dist/assets/bc4b209868329b4b.webp +0 -0
- package/dist/assets/bcdf4135fd2e23fd.webp +0 -0
- package/dist/assets/bd59c0661af8eed5.webp +0 -0
- package/dist/assets/be88a0e1bc590985.webp +0 -0
- package/dist/assets/bf0aad9f56d3e724.webp +0 -0
- package/dist/assets/bf75b4c2378e1dcd.webp +0 -0
- package/dist/assets/bf7727087dd96a85.webp +0 -0
- package/dist/assets/bffb52641c4c3861.webp +0 -0
- package/dist/assets/c23958fa928fdd6f.webp +0 -0
- package/dist/assets/c394cc8e4c60b800.webp +0 -0
- package/dist/assets/c4d4480844dafd93.webp +0 -0
- package/dist/assets/c7bfe6e7916af17a.webp +0 -0
- package/dist/assets/c88726dc18200a93.webp +0 -0
- package/dist/assets/c8e6f5c66cc27154.webp +0 -0
- package/dist/assets/ca65cd02fa429a01.webp +0 -0
- package/dist/assets/caac7e0b2dd67187.webp +0 -0
- package/dist/assets/cc25fb057b110741.webp +0 -0
- package/dist/assets/ccbfbbafdcdcdcd4.webp +0 -0
- package/dist/assets/cd8af3b4f2b247f7.webp +0 -0
- package/dist/assets/ce57872c785aab9a.webp +0 -0
- package/dist/assets/ce58827f91b5b064.webp +0 -0
- package/dist/assets/cef226c91ccf363f.webp +0 -0
- package/dist/assets/d0044e1f2ce81b98.webp +0 -0
- package/dist/assets/d1ea2c3693d297c3.webp +0 -0
- package/dist/assets/d32f16404a97b1a1.webp +0 -0
- package/dist/assets/d52a5c0c51ac24a0.webp +0 -0
- package/dist/assets/d53f79b5d6ed25fe.webp +0 -0
- package/dist/assets/d60293fd2b968089.webp +0 -0
- package/dist/assets/d80fdc2650006dbc.webp +0 -0
- package/dist/assets/d860abdf21a1c9ba.webp +0 -0
- package/dist/assets/d8785da6d6a685dd.webp +0 -0
- package/dist/assets/d95b9e2207cd1bbb.webp +0 -0
- package/dist/assets/d976877ebafa14da.webp +0 -0
- package/dist/assets/d9c5c1149db28ee9.webp +0 -0
- package/dist/assets/daeb1a7a520d97a0.webp +0 -0
- package/dist/assets/daf48a380db80725.webp +0 -0
- package/dist/assets/db8bfbeacef7cbc2.webp +0 -0
- package/dist/assets/dba267eb32acfc39.webp +0 -0
- package/dist/assets/dd86e2c5ced02541.webp +0 -0
- package/dist/assets/de3566780bd27a7a.webp +0 -0
- package/dist/assets/dee70270aacf3392.webp +0 -0
- package/dist/assets/df149fcc6bd3a0ac.webp +0 -0
- package/dist/assets/e02ec069ba946251.webp +0 -0
- package/dist/assets/e0a1bf1c59da7c51.webp +0 -0
- package/dist/assets/e15f73e4ae9823dd.webp +0 -0
- package/dist/assets/e2db5b0ed114d896.webp +0 -0
- package/dist/assets/e2e1feca1ca57e12.webp +0 -0
- package/dist/assets/e4cb11de7eb3f570.webp +0 -0
- package/dist/assets/e58704a124b17f9c.webp +0 -0
- package/dist/assets/e6e87e848d6d2a39.webp +0 -0
- package/dist/assets/e731247869f3839b.webp +0 -0
- package/dist/assets/e7c97214b0474c1a.webp +0 -0
- package/dist/assets/e83d0fd79ff85eaf.webp +0 -0
- package/dist/assets/e9676ab694038ec3.webp +0 -0
- package/dist/assets/ebd8a6199269a631.webp +0 -0
- package/dist/assets/edfea424dbb50652.webp +0 -0
- package/dist/assets/ef483b5744eb9c65.webp +0 -0
- package/dist/assets/f00a2ea2bda7c369.webp +0 -0
- package/dist/assets/f1328cc022093bbe.webp +0 -0
- package/dist/assets/f1985934f1360625.webp +0 -0
- package/dist/assets/f350494720282719.webp +0 -0
- package/dist/assets/f37dbfada942efa3.webp +0 -0
- package/dist/assets/f38baf6e465972ab.webp +0 -0
- package/dist/assets/f4cdacbb564448e4.webp +0 -0
- package/dist/assets/f4cdd6dcd9f393b8.webp +0 -0
- package/dist/assets/f5c3f05f6419fe35.webp +0 -0
- package/dist/assets/fa083d1a279355f9.webp +0 -0
- package/dist/assets/fa3a0b2d9a4bf2b0.webp +0 -0
- package/dist/assets/fa429269928a42f7.webp +0 -0
- package/dist/assets/fa714ddbf26326ed.webp +0 -0
- package/dist/assets/fb49f0faca9f841a.webp +0 -0
- package/dist/assets/fc9b571fa724a2b0.webp +0 -0
- package/dist/assets/fcca811aec8a2021.webp +0 -0
- package/dist/assets/fd4bfe9daca141f1.webp +0 -0
- package/dist/assets/ff509bd19b57cd11.webp +0 -0
- package/dist/assets/ffeb52404b9f7364.webp +0 -0
- package/dist/fonts.d.ts +2 -2
- package/dist/icons.d.ts +2 -2
- package/dist/ui.css +1 -1
- package/dist/ui.d.ts +558 -2
- package/dist/ui.js +3384 -2817
- package/dist/ui.js.map +1 -1
- package/package.json +1 -1
- package/res/_mixins.scss +13 -6
- package/tools/duplicate-vector-mappings.json +143 -0
- package/tools/glass-export-overrides.json +8 -0
- package/tools/integration-gradient-exports.json +57 -0
- package/tools/picto-compare.ts +64 -0
- package/tools/picto-merge-urls.ts +43 -0
- package/tools/picto-sync.ts +630 -0
- package/tools/picto-verify-gradients.ts +86 -0
- package/tools/vector-export-nodes.json +977 -0
- package/dist/assets/b5cb190d5047855e.webp +0 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Verify gradient pictos match their glass counterparts by comparing alpha silhouettes.
|
|
3
|
+
* Flags pairs whose shapes diverge significantly (wrong Figma export node, etc.).
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* bun tools/picto-verify-gradients.ts
|
|
7
|
+
* bun tools/picto-verify-gradients.ts --threshold 3
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { execSync } from "node:child_process";
|
|
11
|
+
import { readdir } from "node:fs/promises";
|
|
12
|
+
import { join } from "node:path";
|
|
13
|
+
|
|
14
|
+
const PICTOS_DIR = join(import.meta.dir, "../src/assets/pictos");
|
|
15
|
+
|
|
16
|
+
const fingerprintCache = new Map<string, number[]>();
|
|
17
|
+
|
|
18
|
+
function alphaFingerprint(fileName: string): number[] {
|
|
19
|
+
const cached = fingerprintCache.get(fileName);
|
|
20
|
+
if (cached) return cached;
|
|
21
|
+
|
|
22
|
+
const path = join(PICTOS_DIR, fileName);
|
|
23
|
+
const out = execSync(`magick "${path}" -alpha extract -resize 64x64! -threshold 10% txt:-`, {
|
|
24
|
+
encoding: "utf8",
|
|
25
|
+
});
|
|
26
|
+
const fp = [...out.matchAll(/#([0-9A-Fa-f]+)/g)].map((m) => Number.parseInt(m[1], 16));
|
|
27
|
+
fingerprintCache.set(fileName, fp);
|
|
28
|
+
return fp;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function distance(a: number[], b: number[]): number {
|
|
32
|
+
let dist = 0;
|
|
33
|
+
for (let i = 0; i < Math.min(a.length, b.length); i++) {
|
|
34
|
+
dist += Math.abs(a[i] - b[i]);
|
|
35
|
+
}
|
|
36
|
+
return dist;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
async function main() {
|
|
40
|
+
const thresholdArg = process.argv.indexOf("--threshold");
|
|
41
|
+
const thresholdMultiplier =
|
|
42
|
+
thresholdArg >= 0 ? Number.parseFloat(process.argv[thresholdArg + 1]) : 3;
|
|
43
|
+
|
|
44
|
+
const glassNames = (await readdir(PICTOS_DIR))
|
|
45
|
+
.filter((f) => f.endsWith(".webp") && !f.endsWith("Gradient.webp"))
|
|
46
|
+
.map((f) => f.replace(/\.webp$/, ""));
|
|
47
|
+
|
|
48
|
+
const scores: { name: string; distance: number }[] = [];
|
|
49
|
+
|
|
50
|
+
for (const name of glassNames) {
|
|
51
|
+
const gradientFile = `${name}Gradient.webp`;
|
|
52
|
+
try {
|
|
53
|
+
alphaFingerprint(`${name}.webp`);
|
|
54
|
+
alphaFingerprint(gradientFile);
|
|
55
|
+
} catch {
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
scores.push({
|
|
59
|
+
name,
|
|
60
|
+
distance: distance(alphaFingerprint(`${name}.webp`), alphaFingerprint(gradientFile)),
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
scores.sort((a, b) => b.distance - a.distance);
|
|
65
|
+
const distances = scores.map((s) => s.distance);
|
|
66
|
+
const median = distances[Math.floor(distances.length / 2)] ?? 0;
|
|
67
|
+
const cutoff = median * thresholdMultiplier;
|
|
68
|
+
const outliers = scores.filter((s) => s.distance > cutoff);
|
|
69
|
+
|
|
70
|
+
console.log(`Compared ${scores.length} glass/gradient pairs`);
|
|
71
|
+
console.log(`Median silhouette distance: ${median.toFixed(0)}`);
|
|
72
|
+
console.log(`Flagging ${outliers.length} outliers (>${thresholdMultiplier}x median):\n`);
|
|
73
|
+
|
|
74
|
+
for (const outlier of outliers) {
|
|
75
|
+
console.log(
|
|
76
|
+
` ${outlier.name}: ${outlier.distance.toFixed(0)} (${(outlier.distance / median).toFixed(1)}x)`,
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
if (outliers.length > 0) process.exit(1);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
main().catch((err) => {
|
|
84
|
+
console.error(err);
|
|
85
|
+
process.exit(1);
|
|
86
|
+
});
|