@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.
Files changed (303) hide show
  1. package/.picto-fix-png/Cursor.png +0 -0
  2. package/.picto-fix-png/DocumentGradient.png +0 -0
  3. package/.picto-fix-png/FileGradient.png +0 -0
  4. package/.picto-fix-png/HealthBubbleGradient.png +0 -0
  5. package/.picto-fix-png/LearnGradient.png +0 -0
  6. package/.picto-fix-png/MediaFileGradient.png +0 -0
  7. package/AGENTS.md +0 -1
  8. package/README.md +6 -2
  9. package/dist/assets/00a10f6ed8d28851.webp +0 -0
  10. package/dist/assets/00f479574770406b.webp +0 -0
  11. package/dist/assets/0162c6a4ac2cfebd.webp +0 -0
  12. package/dist/assets/01b31b9257d57b8a.webp +0 -0
  13. package/dist/assets/02b4198388348511.webp +0 -0
  14. package/dist/assets/037a996120148e0b.webp +0 -0
  15. package/dist/assets/040a4fd015cdd0b7.webp +0 -0
  16. package/dist/assets/0526e0981d888126.webp +0 -0
  17. package/dist/assets/055abefe79b6e701.webp +0 -0
  18. package/dist/assets/0657d7ba8678dd5c.webp +0 -0
  19. package/dist/assets/0713360965c24418.webp +0 -0
  20. package/dist/assets/09af36dca92ae382.webp +0 -0
  21. package/dist/assets/09eec3632083144d.webp +0 -0
  22. package/dist/assets/0ae51c3e75175179.webp +0 -0
  23. package/dist/assets/0b1e649b60896d1b.webp +0 -0
  24. package/dist/assets/0cea48c7405074a6.webp +0 -0
  25. package/dist/assets/10fb18b7ef29f001.webp +0 -0
  26. package/dist/assets/1145150f6d6d554f.webp +0 -0
  27. package/dist/assets/11b1e7bf3bca451b.webp +0 -0
  28. package/dist/assets/13947bb6cca1c56e.webp +0 -0
  29. package/dist/assets/144f5da678a9258f.webp +0 -0
  30. package/dist/assets/16a3342882f33b40.webp +0 -0
  31. package/dist/assets/179f73130353ef01.webp +0 -0
  32. package/dist/assets/17fe34cc786799f8.webp +0 -0
  33. package/dist/assets/192ca51c99df0528.webp +0 -0
  34. package/dist/assets/194bc4e7d0be7145.webp +0 -0
  35. package/dist/assets/1a6f2cf9760fdd7e.webp +0 -0
  36. package/dist/assets/1b7a850bfb0af3e8.webp +0 -0
  37. package/dist/assets/1cc9e6767845e21c.webp +0 -0
  38. package/dist/assets/21731d9653706a78.webp +0 -0
  39. package/dist/assets/2207b2dc578622fe.webp +0 -0
  40. package/dist/assets/223bcefaa02568a8.webp +0 -0
  41. package/dist/assets/248ac00cd21f815a.webp +0 -0
  42. package/dist/assets/2647a47de41f9ae3.webp +0 -0
  43. package/dist/assets/2691af8ce9e9d5ce.webp +0 -0
  44. package/dist/assets/26abe1725525984a.webp +0 -0
  45. package/dist/assets/27ffc0d44a1f3be1.webp +0 -0
  46. package/dist/assets/2946d1ee47ed665d.webp +0 -0
  47. package/dist/assets/29a4e5dae52e11ff.webp +0 -0
  48. package/dist/assets/2b1d5bae1a5eae30.webp +0 -0
  49. package/dist/assets/2c6d5014b905a65c.webp +0 -0
  50. package/dist/assets/2cc4f4980c1bb29f.webp +0 -0
  51. package/dist/assets/2d30b090e914771f.webp +0 -0
  52. package/dist/assets/2ee142cc7ddc781f.webp +0 -0
  53. package/dist/assets/2f7c6d1c5fb82e2c.webp +0 -0
  54. package/dist/assets/2fedfaedf3e5eb80.webp +0 -0
  55. package/dist/assets/2ff21e9a34d3241f.webp +0 -0
  56. package/dist/assets/30dd1d8558ecbbb8.webp +0 -0
  57. package/dist/assets/346850e9684e7d97.webp +0 -0
  58. package/dist/assets/34effaa38093f34e.webp +0 -0
  59. package/dist/assets/350cd57f2d5cbeae.webp +0 -0
  60. package/dist/assets/351a1aef50fa5125.webp +0 -0
  61. package/dist/assets/372eea715c737270.webp +0 -0
  62. package/dist/assets/38e6703a7ee5ff1b.webp +0 -0
  63. package/dist/assets/39ae0cc748731119.webp +0 -0
  64. package/dist/assets/3a62798e03acaab1.webp +0 -0
  65. package/dist/assets/3bb0b598bc35e4b2.webp +0 -0
  66. package/dist/assets/3cbc127cdc2058e2.webp +0 -0
  67. package/dist/assets/3ccd7e9a3e883ef4.webp +0 -0
  68. package/dist/assets/3cf8e43990d9d89d.webp +0 -0
  69. package/dist/assets/3e3150054c482d19.webp +0 -0
  70. package/dist/assets/3e632c9bb973b708.webp +0 -0
  71. package/dist/assets/3ee2d99ac860a623.webp +0 -0
  72. package/dist/assets/3fbcf5362280f81f.webp +0 -0
  73. package/dist/assets/3fe501a7865c16ae.webp +0 -0
  74. package/dist/assets/414e2d8a56ce7910.webp +0 -0
  75. package/dist/assets/41b23bd70281a865.webp +0 -0
  76. package/dist/assets/455b9eb8a609a708.webp +0 -0
  77. package/dist/assets/45e2ed33c14f0b04.webp +0 -0
  78. package/dist/assets/45f0191b96b665f1.webp +0 -0
  79. package/dist/assets/4825fc2b412e6c49.webp +0 -0
  80. package/dist/assets/484e9cdb969f15b9.webp +0 -0
  81. package/dist/assets/48b89b593ddf3859.webp +0 -0
  82. package/dist/assets/49886a9c10c84219.webp +0 -0
  83. package/dist/assets/4ab8aa6d05f81b2d.webp +0 -0
  84. package/dist/assets/4c5804e0445a2364.webp +0 -0
  85. package/dist/assets/4c606cb3cb92175b.webp +0 -0
  86. package/dist/assets/4c7c1c273025dcf1.webp +0 -0
  87. package/dist/assets/4d1e067d250e3da7.webp +0 -0
  88. package/dist/assets/4f8d51ffc6798a3f.webp +0 -0
  89. package/dist/assets/4feef73a1f59ead0.webp +0 -0
  90. package/dist/assets/503e2f91f525ced6.webp +0 -0
  91. package/dist/assets/507d9b965db335dc.webp +0 -0
  92. package/dist/assets/50ee2b8f746929fd.webp +0 -0
  93. package/dist/assets/5162561b1cf1157d.webp +0 -0
  94. package/dist/assets/519b2797ad349ab2.webp +0 -0
  95. package/dist/assets/52a04db8f3ef729a.webp +0 -0
  96. package/dist/assets/5410644476584555.webp +0 -0
  97. package/dist/assets/552e3b3c7a8b219f.webp +0 -0
  98. package/dist/assets/5680f57bba683ea8.webp +0 -0
  99. package/dist/assets/56e2c0df0df84d85.webp +0 -0
  100. package/dist/assets/57413876fab23bf4.webp +0 -0
  101. package/dist/assets/57735748702cef60.webp +0 -0
  102. package/dist/assets/579ffd3b6352fde8.webp +0 -0
  103. package/dist/assets/580af10c3a0d6214.webp +0 -0
  104. package/dist/assets/592d63e445941a48.webp +0 -0
  105. package/dist/assets/5969a507868247dc.webp +0 -0
  106. package/dist/assets/5ad66afddb5112e8.webp +0 -0
  107. package/dist/assets/5d6c6d3209e05455.webp +0 -0
  108. package/dist/assets/5e4ed61f6e3ddf63.webp +0 -0
  109. package/dist/assets/5f425d79f49de428.webp +0 -0
  110. package/dist/assets/60375484135ea20c.webp +0 -0
  111. package/dist/assets/60960b537570554b.webp +0 -0
  112. package/dist/assets/60a1723d1f64a67b.webp +0 -0
  113. package/dist/assets/60c240a2b0c62ff7.webp +0 -0
  114. package/dist/assets/60d0a8d0bfcf6aaa.webp +0 -0
  115. package/dist/assets/6191cf7b0ba752b1.webp +0 -0
  116. package/dist/assets/6230c2d26c7fb874.webp +0 -0
  117. package/dist/assets/6474ae0b83dd1961.webp +0 -0
  118. package/dist/assets/652b609078ac988f.webp +0 -0
  119. package/dist/assets/66326fee66039124.webp +0 -0
  120. package/dist/assets/679c6102b205fef3.webp +0 -0
  121. package/dist/assets/67e727126d43f52d.webp +0 -0
  122. package/dist/assets/68f95a529308ffd0.webp +0 -0
  123. package/dist/assets/6a49b166e27942d6.webp +0 -0
  124. package/dist/assets/6b612396a876a6cb.webp +0 -0
  125. package/dist/assets/6b741e24b789b759.webp +0 -0
  126. package/dist/assets/6bd1b97cabb7013b.webp +0 -0
  127. package/dist/assets/6c23b306b3b98347.webp +0 -0
  128. package/dist/assets/6c647c1f3bd39d04.webp +0 -0
  129. package/dist/assets/6d2ffcd3c87bf0b8.webp +0 -0
  130. package/dist/assets/6da50ab548c1f881.webp +0 -0
  131. package/dist/assets/7202c68df46af42f.webp +0 -0
  132. package/dist/assets/733327e345884210.webp +0 -0
  133. package/dist/assets/753795af2c5d7be2.webp +0 -0
  134. package/dist/assets/75641da57bc6dffd.webp +0 -0
  135. package/dist/assets/76f4466c03adcd1d.webp +0 -0
  136. package/dist/assets/795ed707186e4998.webp +0 -0
  137. package/dist/assets/7a3c2063a78a7671.webp +0 -0
  138. package/dist/assets/7a40e614f1abab41.webp +0 -0
  139. package/dist/assets/7a51bae6c8c0b8d6.webp +0 -0
  140. package/dist/assets/7ac03abe57635a22.webp +0 -0
  141. package/dist/assets/7afbeb4d3723bea9.webp +0 -0
  142. package/dist/assets/7b908fe597c371fe.webp +0 -0
  143. package/dist/assets/7c593a2cee07323d.webp +0 -0
  144. package/dist/assets/7ef46b1ee3c0fcc3.webp +0 -0
  145. package/dist/assets/7f19155287c0e9e2.webp +0 -0
  146. package/dist/assets/7f4980ef8d2e758e.webp +0 -0
  147. package/dist/assets/7fb40397fbf0a44f.webp +0 -0
  148. package/dist/assets/830cf1f097720215.webp +0 -0
  149. package/dist/assets/8409441a26339658.webp +0 -0
  150. package/dist/assets/8557a1175cf5b927.webp +0 -0
  151. package/dist/assets/85cbb57cabec9be3.webp +0 -0
  152. package/dist/assets/8890f1eb46c62eed.webp +0 -0
  153. package/dist/assets/8892b010e8f9c0fd.webp +0 -0
  154. package/dist/assets/897cb1960e8c41df.webp +0 -0
  155. package/dist/assets/8d382694be4b565a.webp +0 -0
  156. package/dist/assets/8eb74a3ae87778e5.webp +0 -0
  157. package/dist/assets/8f5d77f12b63e5fa.webp +0 -0
  158. package/dist/assets/8f82effc460e2e89.webp +0 -0
  159. package/dist/assets/91261685c5adbd6d.webp +0 -0
  160. package/dist/assets/9274d3588526a567.webp +0 -0
  161. package/dist/assets/935d6e6f2791ed73.webp +0 -0
  162. package/dist/assets/9426b76449fbf64b.webp +0 -0
  163. package/dist/assets/945c99dfa636ba36.webp +0 -0
  164. package/dist/assets/94a9a29ed66a4ef3.webp +0 -0
  165. package/dist/assets/94bd2f81b090a7e6.webp +0 -0
  166. package/dist/assets/951f2418a7fd0373.webp +0 -0
  167. package/dist/assets/9535295d6b09150d.webp +0 -0
  168. package/dist/assets/98629dd48fcea10b.webp +0 -0
  169. package/dist/assets/9a30f66d8a1e2b35.webp +0 -0
  170. package/dist/assets/9ad5c4db3af637fc.webp +0 -0
  171. package/dist/assets/9af7119697945bfe.webp +0 -0
  172. package/dist/assets/9b88c1b8bd9e4274.webp +0 -0
  173. package/dist/assets/9e197be821d63126.webp +0 -0
  174. package/dist/assets/a0e567aeb88fd53f.webp +0 -0
  175. package/dist/assets/a108749cd7563ef6.webp +0 -0
  176. package/dist/assets/a1ae90b5309a83fb.webp +0 -0
  177. package/dist/assets/a22c2665236646b0.webp +0 -0
  178. package/dist/assets/a4675345ec0358f4.webp +0 -0
  179. package/dist/assets/a8de10da5e512d7b.webp +0 -0
  180. package/dist/assets/ad2af0582c0504ff.webp +0 -0
  181. package/dist/assets/adae3bc5bd13817b.webp +0 -0
  182. package/dist/assets/adb3fc29e677770e.webp +0 -0
  183. package/dist/assets/ae659f60557350c4.webp +0 -0
  184. package/dist/assets/aeaee0e289e2608e.webp +0 -0
  185. package/dist/assets/af24ba34b62492ac.webp +0 -0
  186. package/dist/assets/af7d97ae2466bbde.webp +0 -0
  187. package/dist/assets/afa9b3ef89679937.webp +0 -0
  188. package/dist/assets/b04753e5b98becb7.webp +0 -0
  189. package/dist/assets/b152b0331ec03bed.webp +0 -0
  190. package/dist/assets/b1d6aaff88edff14.webp +0 -0
  191. package/dist/assets/b25512027421d389.webp +0 -0
  192. package/dist/assets/b26cf4cd8b1f1131.webp +0 -0
  193. package/dist/assets/b28495c59529ee50.webp +0 -0
  194. package/dist/assets/b2bd7fdf877521bf.webp +0 -0
  195. package/dist/assets/b313afd86b997619.webp +0 -0
  196. package/dist/assets/b51cef69ba1cf9b8.webp +0 -0
  197. package/dist/assets/b5a9549e2fb98801.webp +0 -0
  198. package/dist/assets/b65447326dfe1209.webp +0 -0
  199. package/dist/assets/b89b3c6895142147.webp +0 -0
  200. package/dist/assets/b8c39a75a6dfb50a.webp +0 -0
  201. package/dist/assets/b8dacfca93cafccb.webp +0 -0
  202. package/dist/assets/b9123e22ce5345b5.webp +0 -0
  203. package/dist/assets/b92e9d16ff92dfd0.webp +0 -0
  204. package/dist/assets/b9ef318f0d0a84be.webp +0 -0
  205. package/dist/assets/baf060dfd0fa929b.webp +0 -0
  206. package/dist/assets/bb014a59e501b200.webp +0 -0
  207. package/dist/assets/bb591e63dc4cdfac.webp +0 -0
  208. package/dist/assets/bb5f0dfecd337e4d.webp +0 -0
  209. package/dist/assets/bb62a4f6efde2638.webp +0 -0
  210. package/dist/assets/bb84aa5403a64e37.webp +0 -0
  211. package/dist/assets/bc4b209868329b4b.webp +0 -0
  212. package/dist/assets/bcdf4135fd2e23fd.webp +0 -0
  213. package/dist/assets/bd59c0661af8eed5.webp +0 -0
  214. package/dist/assets/be88a0e1bc590985.webp +0 -0
  215. package/dist/assets/bf0aad9f56d3e724.webp +0 -0
  216. package/dist/assets/bf75b4c2378e1dcd.webp +0 -0
  217. package/dist/assets/bf7727087dd96a85.webp +0 -0
  218. package/dist/assets/bffb52641c4c3861.webp +0 -0
  219. package/dist/assets/c23958fa928fdd6f.webp +0 -0
  220. package/dist/assets/c394cc8e4c60b800.webp +0 -0
  221. package/dist/assets/c4d4480844dafd93.webp +0 -0
  222. package/dist/assets/c7bfe6e7916af17a.webp +0 -0
  223. package/dist/assets/c88726dc18200a93.webp +0 -0
  224. package/dist/assets/c8e6f5c66cc27154.webp +0 -0
  225. package/dist/assets/ca65cd02fa429a01.webp +0 -0
  226. package/dist/assets/caac7e0b2dd67187.webp +0 -0
  227. package/dist/assets/cc25fb057b110741.webp +0 -0
  228. package/dist/assets/ccbfbbafdcdcdcd4.webp +0 -0
  229. package/dist/assets/cd8af3b4f2b247f7.webp +0 -0
  230. package/dist/assets/ce57872c785aab9a.webp +0 -0
  231. package/dist/assets/ce58827f91b5b064.webp +0 -0
  232. package/dist/assets/cef226c91ccf363f.webp +0 -0
  233. package/dist/assets/d0044e1f2ce81b98.webp +0 -0
  234. package/dist/assets/d1ea2c3693d297c3.webp +0 -0
  235. package/dist/assets/d32f16404a97b1a1.webp +0 -0
  236. package/dist/assets/d52a5c0c51ac24a0.webp +0 -0
  237. package/dist/assets/d53f79b5d6ed25fe.webp +0 -0
  238. package/dist/assets/d60293fd2b968089.webp +0 -0
  239. package/dist/assets/d80fdc2650006dbc.webp +0 -0
  240. package/dist/assets/d860abdf21a1c9ba.webp +0 -0
  241. package/dist/assets/d8785da6d6a685dd.webp +0 -0
  242. package/dist/assets/d95b9e2207cd1bbb.webp +0 -0
  243. package/dist/assets/d976877ebafa14da.webp +0 -0
  244. package/dist/assets/d9c5c1149db28ee9.webp +0 -0
  245. package/dist/assets/daeb1a7a520d97a0.webp +0 -0
  246. package/dist/assets/daf48a380db80725.webp +0 -0
  247. package/dist/assets/db8bfbeacef7cbc2.webp +0 -0
  248. package/dist/assets/dba267eb32acfc39.webp +0 -0
  249. package/dist/assets/dd86e2c5ced02541.webp +0 -0
  250. package/dist/assets/de3566780bd27a7a.webp +0 -0
  251. package/dist/assets/dee70270aacf3392.webp +0 -0
  252. package/dist/assets/df149fcc6bd3a0ac.webp +0 -0
  253. package/dist/assets/e02ec069ba946251.webp +0 -0
  254. package/dist/assets/e0a1bf1c59da7c51.webp +0 -0
  255. package/dist/assets/e15f73e4ae9823dd.webp +0 -0
  256. package/dist/assets/e2db5b0ed114d896.webp +0 -0
  257. package/dist/assets/e2e1feca1ca57e12.webp +0 -0
  258. package/dist/assets/e4cb11de7eb3f570.webp +0 -0
  259. package/dist/assets/e58704a124b17f9c.webp +0 -0
  260. package/dist/assets/e6e87e848d6d2a39.webp +0 -0
  261. package/dist/assets/e731247869f3839b.webp +0 -0
  262. package/dist/assets/e7c97214b0474c1a.webp +0 -0
  263. package/dist/assets/e83d0fd79ff85eaf.webp +0 -0
  264. package/dist/assets/e9676ab694038ec3.webp +0 -0
  265. package/dist/assets/ebd8a6199269a631.webp +0 -0
  266. package/dist/assets/edfea424dbb50652.webp +0 -0
  267. package/dist/assets/ef483b5744eb9c65.webp +0 -0
  268. package/dist/assets/f00a2ea2bda7c369.webp +0 -0
  269. package/dist/assets/f1328cc022093bbe.webp +0 -0
  270. package/dist/assets/f1985934f1360625.webp +0 -0
  271. package/dist/assets/f350494720282719.webp +0 -0
  272. package/dist/assets/f37dbfada942efa3.webp +0 -0
  273. package/dist/assets/f38baf6e465972ab.webp +0 -0
  274. package/dist/assets/f4cdacbb564448e4.webp +0 -0
  275. package/dist/assets/f4cdd6dcd9f393b8.webp +0 -0
  276. package/dist/assets/f5c3f05f6419fe35.webp +0 -0
  277. package/dist/assets/fa083d1a279355f9.webp +0 -0
  278. package/dist/assets/fa3a0b2d9a4bf2b0.webp +0 -0
  279. package/dist/assets/fa429269928a42f7.webp +0 -0
  280. package/dist/assets/fa714ddbf26326ed.webp +0 -0
  281. package/dist/assets/fb49f0faca9f841a.webp +0 -0
  282. package/dist/assets/fc9b571fa724a2b0.webp +0 -0
  283. package/dist/assets/fcca811aec8a2021.webp +0 -0
  284. package/dist/assets/fd4bfe9daca141f1.webp +0 -0
  285. package/dist/assets/ff509bd19b57cd11.webp +0 -0
  286. package/dist/assets/ffeb52404b9f7364.webp +0 -0
  287. package/dist/fonts.d.ts +2 -2
  288. package/dist/icons.d.ts +2 -2
  289. package/dist/ui.css +1 -1
  290. package/dist/ui.d.ts +558 -2
  291. package/dist/ui.js +3384 -2817
  292. package/dist/ui.js.map +1 -1
  293. package/package.json +1 -1
  294. package/res/_mixins.scss +13 -6
  295. package/tools/duplicate-vector-mappings.json +143 -0
  296. package/tools/glass-export-overrides.json +8 -0
  297. package/tools/integration-gradient-exports.json +57 -0
  298. package/tools/picto-compare.ts +64 -0
  299. package/tools/picto-merge-urls.ts +43 -0
  300. package/tools/picto-sync.ts +630 -0
  301. package/tools/picto-verify-gradients.ts +86 -0
  302. package/tools/vector-export-nodes.json +977 -0
  303. package/dist/assets/b5cb190d5047855e.webp +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@surrealdb/ui",
3
- "version": "1.2.1",
3
+ "version": "1.2.3",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "exports": {
package/res/_mixins.scss CHANGED
@@ -70,11 +70,18 @@
70
70
  }
71
71
  }
72
72
 
73
- @mixin background-blur {
74
- backdrop-filter: var(--surreal-blur);
75
- -webkit-backdrop-filter: var(--surreal-blur);
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
- @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
78
- background: var(--surreal-menu-background-color);
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,143 @@
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
+ {
65
+ "uiKitFileName": "File",
66
+ "symbolId": "25796:1511",
67
+ "exportNodeId": "21128:25051",
68
+ "figmaVectorName": "Document_vector",
69
+ "figmaFrameName": "Document",
70
+ "figmaLightNodeId": "25796:2030"
71
+ },
72
+ {
73
+ "uiKitFileName": "Document",
74
+ "symbolId": "25796:1375",
75
+ "exportNodeId": "25796:1375",
76
+ "figmaVectorName": "Document_vector",
77
+ "figmaFrameName": "Document",
78
+ "figmaLightNodeId": "25796:2030"
79
+ },
80
+ {
81
+ "uiKitFileName": "Learn",
82
+ "symbolId": "25796:1493",
83
+ "exportNodeId": "21128:25729",
84
+ "figmaVectorName": "Learn_vector",
85
+ "figmaFrameName": "Learn",
86
+ "figmaLightNodeId": "25796:2836"
87
+ },
88
+ {
89
+ "uiKitFileName": "Tutorials",
90
+ "symbolId": "25796:1397",
91
+ "exportNodeId": "21128:25910",
92
+ "figmaVectorName": "Chat Heart_vector",
93
+ "figmaFrameName": "tutorials",
94
+ "figmaLightNodeId": "25796:2725"
95
+ },
96
+ {
97
+ "uiKitFileName": "MediaFile",
98
+ "symbolId": "25796:1452",
99
+ "exportNodeId": "25796:1452",
100
+ "figmaVectorName": "Video file_vector",
101
+ "figmaFrameName": "Video file",
102
+ "figmaLightNodeId": "25796:2498"
103
+ },
104
+ {
105
+ "uiKitFileName": "MergeQueue",
106
+ "symbolId": "25796:1356",
107
+ "exportNodeId": "25796:1356",
108
+ "figmaVectorName": "Flexible_vector",
109
+ "figmaFrameName": "Merge queue",
110
+ "figmaLightNodeId": "25796:3507"
111
+ },
112
+ {
113
+ "uiKitFileName": "Monitoring",
114
+ "symbolId": "25796:1527",
115
+ "exportNodeId": "25796:1527",
116
+ "figmaVectorName": "_vector",
117
+ "figmaFrameName": "Monitoring",
118
+ "figmaLightNodeId": "25796:3056"
119
+ },
120
+ {
121
+ "uiKitFileName": "Sun",
122
+ "symbolId": "25796:1363",
123
+ "exportNodeId": "25796:1363",
124
+ "figmaVectorName": "Union_vector",
125
+ "figmaFrameName": "Sun",
126
+ "figmaLightNodeId": "25796:3526"
127
+ },
128
+ {
129
+ "uiKitFileName": "Timeline",
130
+ "symbolId": "25796:1365",
131
+ "exportNodeId": "25796:1365",
132
+ "figmaVectorName": "Bars_vector",
133
+ "figmaFrameName": "Bars"
134
+ },
135
+ {
136
+ "uiKitFileName": "HealthBubble",
137
+ "symbolId": "25796:1366",
138
+ "exportNodeId": "21128:26006",
139
+ "figmaVectorName": "Health Chat_vector",
140
+ "figmaFrameName": "Health Bubble",
141
+ "figmaLightNodeId": "25796:3522"
142
+ }
143
+ ]
@@ -0,0 +1,8 @@
1
+ [
2
+ {
3
+ "uiKitFileName": "Cursor",
4
+ "exportNodeId": "25755:47884",
5
+ "figmaFrameName": "Cursor",
6
+ "figmaLightName": "Cursor_light"
7
+ }
8
+ ]
@@ -0,0 +1,57 @@
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
+ {
45
+ "uiKitFileName": "Javascript",
46
+ "exportNodeId": "23768:22323",
47
+ "figmaFrameName": "Javascript"
48
+ },
49
+ { "uiKitFileName": "OpenAI", "exportNodeId": "24452:982", "figmaFrameName": "OpenAI" },
50
+ {
51
+ "uiKitFileName": "SurrealMCP",
52
+ "exportNodeId": "24452:1007",
53
+ "figmaFrameName": "MCP"
54
+ },
55
+ { "uiKitFileName": "SurrealML", "exportNodeId": "25433:6610", "figmaFrameName": "SurrealML" },
56
+ { "uiKitFileName": "YUApp", "exportNodeId": "21128:24571", "figmaFrameName": "YU app" }
57
+ ]
@@ -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`);