@surrealdb/ui 1.2.0 → 1.2.2
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/AGENTS.md +0 -1
- package/README.md +6 -2
- package/dist/assets/00a10f6ed8d28851.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/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/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/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/b8dacfca93cafccb.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/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/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/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/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/e6e87e848d6d2a39.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/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/ff509bd19b57cd11.webp +0 -0
- package/dist/assets/ffeb52404b9f7364.webp +0 -0
- package/dist/fonts.d.ts +8 -8
- package/dist/icons.d.ts +8 -8
- package/dist/ui.css +1 -1
- package/dist/ui.d.ts +538 -9
- package/dist/ui.js +3361 -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 +64 -0
- package/tools/integration-gradient-exports.json +44 -0
- package/tools/picto-compare.ts +64 -0
- package/tools/picto-merge-urls.ts +43 -0
- package/tools/picto-sync.ts +629 -0
- package/tools/picto-verify-gradients.ts +86 -0
- package/tools/vector-export-nodes.json +977 -0
package/package.json
CHANGED
package/res/_mixins.scss
CHANGED
|
@@ -70,11 +70,18 @@
|
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
@mixin
|
|
74
|
-
|
|
75
|
-
|
|
73
|
+
@mixin edge-shadow-x($begin: 0px, $end: 0px) {
|
|
74
|
+
mask: linear-gradient(to right,
|
|
75
|
+
transparent,
|
|
76
|
+
black $begin,
|
|
77
|
+
black calc(100% - $end),
|
|
78
|
+
transparent);
|
|
79
|
+
}
|
|
76
80
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
81
|
+
@mixin edge-shadow-y($begin: 0px, $end: 0px) {
|
|
82
|
+
mask: linear-gradient(to bottom,
|
|
83
|
+
transparent,
|
|
84
|
+
black $begin,
|
|
85
|
+
black calc(100% - $end),
|
|
86
|
+
transparent);
|
|
80
87
|
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"uiKitFileName": "Memory",
|
|
4
|
+
"symbolId": "25796:1314",
|
|
5
|
+
"exportNodeId": "21128:24795",
|
|
6
|
+
"figmaVectorName": "Memory_vector",
|
|
7
|
+
"figmaFrameName": "Memory"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"uiKitFileName": "Compute",
|
|
11
|
+
"symbolId": "29295:58314",
|
|
12
|
+
"exportNodeId": "29295:58314",
|
|
13
|
+
"figmaVectorName": "Memory_vector",
|
|
14
|
+
"figmaFrameName": "Memory",
|
|
15
|
+
"figmaLightNodeId": "29295:58316"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"uiKitFileName": "HealthChat",
|
|
19
|
+
"symbolId": "25796:1395",
|
|
20
|
+
"exportNodeId": "21128:25857",
|
|
21
|
+
"figmaVectorName": "Chatbot_vector",
|
|
22
|
+
"figmaFrameName": "Chatbot"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"uiKitFileName": "Binary",
|
|
26
|
+
"symbolId": "25796:1513",
|
|
27
|
+
"exportNodeId": "25796:1513",
|
|
28
|
+
"figmaVectorName": "Code blob (JSON)_vector",
|
|
29
|
+
"figmaFrameName": "Code blob (JSON)",
|
|
30
|
+
"figmaLightNodeId": "25796:2418"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"uiKitFileName": "Clock",
|
|
34
|
+
"symbolId": "25796:1318",
|
|
35
|
+
"exportNodeId": "25796:1318",
|
|
36
|
+
"figmaVectorName": "Flexible_vector",
|
|
37
|
+
"figmaFrameName": "Flexible",
|
|
38
|
+
"figmaLightNodeId": "25796:2536"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"uiKitFileName": "CommitQueue",
|
|
42
|
+
"symbolId": "25796:1323",
|
|
43
|
+
"exportNodeId": "25796:1323",
|
|
44
|
+
"figmaVectorName": "Hands On_vector",
|
|
45
|
+
"figmaFrameName": "Hands On",
|
|
46
|
+
"figmaLightNodeId": "25796:2600"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"uiKitFileName": "Expand",
|
|
50
|
+
"symbolId": "25796:1502",
|
|
51
|
+
"exportNodeId": "25796:1502",
|
|
52
|
+
"figmaVectorName": "Scale_vector",
|
|
53
|
+
"figmaFrameName": "Scale",
|
|
54
|
+
"figmaLightNodeId": "25796:2001"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"uiKitFileName": "Swatch",
|
|
58
|
+
"symbolId": "25796:1413",
|
|
59
|
+
"exportNodeId": "25796:1413",
|
|
60
|
+
"figmaVectorName": "Palette_vector",
|
|
61
|
+
"figmaFrameName": "Palette",
|
|
62
|
+
"figmaLightNodeId": "25796:3530"
|
|
63
|
+
}
|
|
64
|
+
]
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
[
|
|
2
|
+
{ "uiKitFileName": "Sidekick", "exportNodeId": "22777:30583", "figmaFrameName": "Sidekick" },
|
|
3
|
+
{ "uiKitFileName": "Development", "exportNodeId": "25796:1453", "figmaFrameName": "Settings" },
|
|
4
|
+
{
|
|
5
|
+
"uiKitFileName": "CloudNodes",
|
|
6
|
+
"exportNodeId": "25796:1426",
|
|
7
|
+
"figmaFrameName": "cloud nodes"
|
|
8
|
+
},
|
|
9
|
+
{ "uiKitFileName": "Bot", "exportNodeId": "25796:1428", "figmaFrameName": "Agent / Bot" },
|
|
10
|
+
{ "uiKitFileName": "Agno", "exportNodeId": "21128:26168", "figmaFrameName": "Agno" },
|
|
11
|
+
{ "uiKitFileName": "Claude", "exportNodeId": "21128:26209", "figmaFrameName": "Claude" },
|
|
12
|
+
{ "uiKitFileName": "GitHub", "exportNodeId": "21128:26223", "figmaFrameName": "GitHub" },
|
|
13
|
+
{ "uiKitFileName": "Medium", "exportNodeId": "21128:26218", "figmaFrameName": "Medium" },
|
|
14
|
+
{ "uiKitFileName": "LangChain", "exportNodeId": "21128:26198", "figmaFrameName": "LangChain" },
|
|
15
|
+
{ "uiKitFileName": "Reddit", "exportNodeId": "21128:26190", "figmaFrameName": "Reddit" },
|
|
16
|
+
{ "uiKitFileName": "X", "exportNodeId": "21128:26194", "figmaFrameName": "X" },
|
|
17
|
+
{ "uiKitFileName": "MCP", "exportNodeId": "24452:1002", "figmaFrameName": "MCP" },
|
|
18
|
+
{ "uiKitFileName": "RAG", "exportNodeId": "21128:26228", "figmaFrameName": "RAG" },
|
|
19
|
+
{ "uiKitFileName": "Windsurf", "exportNodeId": "21128:26240", "figmaFrameName": "Windsurf" },
|
|
20
|
+
{ "uiKitFileName": "Instagram", "exportNodeId": "21128:26248", "figmaFrameName": "Instagram" },
|
|
21
|
+
{ "uiKitFileName": "Discord", "exportNodeId": "21128:26252", "figmaFrameName": "Discord" },
|
|
22
|
+
{ "uiKitFileName": "Zapier", "exportNodeId": "21128:26256", "figmaFrameName": "Zapier" },
|
|
23
|
+
{ "uiKitFileName": "Python", "exportNodeId": "21128:26096", "figmaFrameName": "Python" },
|
|
24
|
+
{ "uiKitFileName": "Cline", "exportNodeId": "21128:26114", "figmaFrameName": "Cline" },
|
|
25
|
+
{ "uiKitFileName": "Dev", "exportNodeId": "21128:26118", "figmaFrameName": "Dev" },
|
|
26
|
+
{ "uiKitFileName": "Rust", "exportNodeId": "21128:24875", "figmaFrameName": "Rust" },
|
|
27
|
+
{ "uiKitFileName": "Threads", "exportNodeId": "21128:26146", "figmaFrameName": "Threads" },
|
|
28
|
+
{ "uiKitFileName": "Zed", "exportNodeId": "21128:26150", "figmaFrameName": "Zed" },
|
|
29
|
+
{
|
|
30
|
+
"uiKitFileName": "StackOverflow",
|
|
31
|
+
"exportNodeId": "21128:26164",
|
|
32
|
+
"figmaFrameName": "Stack Overflow"
|
|
33
|
+
},
|
|
34
|
+
{ "uiKitFileName": "LinkedIn", "exportNodeId": "21128:26270", "figmaFrameName": "LinkedIn" },
|
|
35
|
+
{ "uiKitFileName": "Youtube", "exportNodeId": "21128:26274", "figmaFrameName": "YouTube" },
|
|
36
|
+
{ "uiKitFileName": "N8n", "exportNodeId": "21128:26131", "figmaFrameName": "n8n" },
|
|
37
|
+
{ "uiKitFileName": "Wasm", "exportNodeId": "21128:26139", "figmaFrameName": "WebAssembly" },
|
|
38
|
+
{
|
|
39
|
+
"uiKitFileName": "VisualStudioCode",
|
|
40
|
+
"exportNodeId": "21128:26178",
|
|
41
|
+
"figmaFrameName": "Visual Studio Code"
|
|
42
|
+
},
|
|
43
|
+
{ "uiKitFileName": "PDF", "exportNodeId": "25796:1324", "figmaFrameName": "Document / PDF" }
|
|
44
|
+
]
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compare Figma light exports against existing ui-kit pictos using perceptual hash.
|
|
3
|
+
* Used to validate the picto-figma-map.json name mappings.
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* bun tools/picto-compare.ts <urls-manifest.json>
|
|
7
|
+
*
|
|
8
|
+
* Manifest format: [{ fileName: "PadlockClosed", nodeId, url }] for light versions
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import { execSync } from "node:child_process";
|
|
12
|
+
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
13
|
+
import { join } from "node:path";
|
|
14
|
+
|
|
15
|
+
const PICTOS_DIR = join(import.meta.dir, "../src/assets/pictos");
|
|
16
|
+
const TMP = join(import.meta.dir, "../.picto-compare");
|
|
17
|
+
|
|
18
|
+
async function phash(path: string): Promise<string> {
|
|
19
|
+
return execSync(`magick "${path}" -colorspace Gray -resize 16x16! -depth 8 txt:-`, {
|
|
20
|
+
encoding: "utf8",
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function hashDistance(a: string, b: string): number {
|
|
25
|
+
const valsA = [...a.matchAll(/\\((\\d+),(\\d+)\\)\\s+#(\\w+)/g)].map((m) =>
|
|
26
|
+
Number.parseInt(m[3], 16),
|
|
27
|
+
);
|
|
28
|
+
const valsB = [...b.matchAll(/\\((\\d+),(\\d+)\\)\\s+#(\\w+)/g)].map((m) =>
|
|
29
|
+
Number.parseInt(m[3], 16),
|
|
30
|
+
);
|
|
31
|
+
let dist = 0;
|
|
32
|
+
for (let i = 0; i < Math.min(valsA.length, valsB.length); i++) {
|
|
33
|
+
dist += Math.abs(valsA[i] - valsB[i]);
|
|
34
|
+
}
|
|
35
|
+
return dist;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
async function main() {
|
|
39
|
+
const manifest: { fileName: string; url: string }[] = JSON.parse(
|
|
40
|
+
await readFile(process.argv[2], "utf8"),
|
|
41
|
+
);
|
|
42
|
+
await mkdir(TMP, { recursive: true });
|
|
43
|
+
|
|
44
|
+
const results: { fileName: string; distance: number; matched: boolean }[] = [];
|
|
45
|
+
|
|
46
|
+
for (const { fileName, url } of manifest) {
|
|
47
|
+
const figmaPng = join(TMP, `${fileName}-figma.png`);
|
|
48
|
+
const res = await fetch(url);
|
|
49
|
+
await writeFile(figmaPng, await res.arrayBuffer());
|
|
50
|
+
|
|
51
|
+
const repoWebp = join(PICTOS_DIR, `${fileName}.webp`);
|
|
52
|
+
const repoPng = join(TMP, `${fileName}-repo.png`);
|
|
53
|
+
execSync(`magick "${repoWebp}" "${repoPng}"`);
|
|
54
|
+
|
|
55
|
+
const dist = hashDistance(await phash(figmaPng), await phash(repoPng));
|
|
56
|
+
results.push({ fileName, distance: dist, matched: dist < 5000 });
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const failed = results.filter((r) => !r.matched);
|
|
60
|
+
console.log(`Compared ${results.length}, mismatches: ${failed.length}`);
|
|
61
|
+
for (const f of failed) console.log(` ${f.fileName}: distance ${f.distance}`);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
main().catch(console.error);
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/** Merge partial/agent screenshot URL results into urls.json */
|
|
2
|
+
import { readdir, readFile, writeFile } from "node:fs/promises";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
|
|
5
|
+
const PNG_DIR = join(import.meta.dir, "../.picto-gradient-png");
|
|
6
|
+
|
|
7
|
+
const batchFiles = (await readdir(PNG_DIR))
|
|
8
|
+
.filter((f) => f.startsWith("screenshot-batch-") && f.endsWith(".json"))
|
|
9
|
+
.sort((a, b) => Number(a.match(/\d+/)?.[0]) - Number(b.match(/\d+/)?.[0]));
|
|
10
|
+
|
|
11
|
+
const expected: { fileName: string; nodeId: string }[] = [];
|
|
12
|
+
for (const f of batchFiles) {
|
|
13
|
+
expected.push(...JSON.parse(await readFile(join(PNG_DIR, f), "utf8")));
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const resultFiles = [
|
|
17
|
+
"results-transparent-partial.json",
|
|
18
|
+
"results-partial.json",
|
|
19
|
+
...(await readdir(PNG_DIR))
|
|
20
|
+
.filter((f) => f.startsWith("results-agent-") && f.endsWith(".json"))
|
|
21
|
+
.sort(),
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
const byName = new Map<string, string>();
|
|
25
|
+
for (const rf of resultFiles) {
|
|
26
|
+
try {
|
|
27
|
+
const entries: { fileName: string; url: string }[] = JSON.parse(
|
|
28
|
+
await readFile(join(PNG_DIR, rf), "utf8"),
|
|
29
|
+
);
|
|
30
|
+
for (const e of entries) byName.set(e.fileName, e.url);
|
|
31
|
+
} catch {
|
|
32
|
+
// file may not exist yet
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const urls = expected.map(({ fileName }) => {
|
|
37
|
+
const url = byName.get(fileName);
|
|
38
|
+
if (!url) throw new Error(`Missing URL for ${fileName}`);
|
|
39
|
+
return { fileName, url };
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
await writeFile(join(PNG_DIR, "urls.json"), `${JSON.stringify(urls, null, 2)}\n`);
|
|
43
|
+
console.log(`Merged ${urls.length} entries into urls.json`);
|