@pieai/swimmer-ui-kit 2.13.0 → 3.0.0-rc.1

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 (848) hide show
  1. package/CHANGELOG.md +69 -4
  2. package/LICENSE +17 -20
  3. package/NOTICE +69 -36
  4. package/README.md +51 -162
  5. package/bin/lib/retired-theme.d.mts +2 -0
  6. package/bin/lib/retired-theme.mjs +58 -0
  7. package/bin/swimmer-ui-check.mjs +91 -16
  8. package/dist/GameStageTile-BcFCu22b.js +1554 -0
  9. package/dist/LiquidGroup-BXw1tv9H.js +1291 -0
  10. package/dist/fonts/zh/400-1f000.woff2 +0 -0
  11. package/dist/fonts/zh/400-1f200.woff2 +0 -0
  12. package/dist/fonts/zh/400-20000.woff2 +0 -0
  13. package/dist/fonts/zh/400-20600.woff2 +0 -0
  14. package/dist/fonts/zh/400-20c00.woff2 +0 -0
  15. package/dist/fonts/zh/400-21200.woff2 +0 -0
  16. package/dist/fonts/zh/400-21400.woff2 +0 -0
  17. package/dist/fonts/zh/400-22800.woff2 +0 -0
  18. package/dist/fonts/zh/400-23400.woff2 +0 -0
  19. package/dist/fonts/zh/400-23c00.woff2 +0 -0
  20. package/dist/fonts/zh/400-23e00.woff2 +0 -0
  21. package/dist/fonts/zh/400-24000.woff2 +0 -0
  22. package/dist/fonts/zh/400-24200.woff2 +0 -0
  23. package/dist/fonts/zh/400-24800.woff2 +0 -0
  24. package/dist/fonts/zh/400-24a00.woff2 +0 -0
  25. package/dist/fonts/zh/400-25400.woff2 +0 -0
  26. package/dist/fonts/zh/400-25a00.woff2 +0 -0
  27. package/dist/fonts/zh/400-25e00.woff2 +0 -0
  28. package/dist/fonts/zh/400-26200.woff2 +0 -0
  29. package/dist/fonts/zh/400-26400.woff2 +0 -0
  30. package/dist/fonts/zh/400-26600.woff2 +0 -0
  31. package/dist/fonts/zh/400-26800.woff2 +0 -0
  32. package/dist/fonts/zh/400-26a00.woff2 +0 -0
  33. package/dist/fonts/zh/400-26c00.woff2 +0 -0
  34. package/dist/fonts/zh/400-27800.woff2 +0 -0
  35. package/dist/fonts/zh/400-27e00.woff2 +0 -0
  36. package/dist/fonts/zh/400-28400.woff2 +0 -0
  37. package/dist/fonts/zh/400-28600.woff2 +0 -0
  38. package/dist/fonts/zh/400-28a00.woff2 +0 -0
  39. package/dist/fonts/zh/400-28c00.woff2 +0 -0
  40. package/dist/fonts/zh/400-28e00.woff2 +0 -0
  41. package/dist/fonts/zh/400-29600.woff2 +0 -0
  42. package/dist/fonts/zh/400-29800.woff2 +0 -0
  43. package/dist/fonts/zh/400-29e00.woff2 +0 -0
  44. package/dist/fonts/zh/400-2a600.woff2 +0 -0
  45. package/dist/fonts/zh/400-2a800.woff2 +0 -0
  46. package/dist/fonts/zh/400-2aa00.woff2 +0 -0
  47. package/dist/fonts/zh/400-2ae00.woff2 +0 -0
  48. package/dist/fonts/zh/400-2b000.woff2 +0 -0
  49. package/dist/fonts/zh/400-2b200.woff2 +0 -0
  50. package/dist/fonts/zh/400-2b400.woff2 +0 -0
  51. package/dist/fonts/zh/400-2b600.woff2 +0 -0
  52. package/dist/fonts/zh/400-2b800.woff2 +0 -0
  53. package/dist/fonts/zh/400-2ba00.woff2 +0 -0
  54. package/dist/fonts/zh/400-2bc00.woff2 +0 -0
  55. package/dist/fonts/zh/400-2be00.woff2 +0 -0
  56. package/dist/fonts/zh/400-2c000.woff2 +0 -0
  57. package/dist/fonts/zh/400-2c200.woff2 +0 -0
  58. package/dist/fonts/zh/400-2c400.woff2 +0 -0
  59. package/dist/fonts/zh/400-2c600.woff2 +0 -0
  60. package/dist/fonts/zh/400-2c800.woff2 +0 -0
  61. package/dist/fonts/zh/400-2ca00.woff2 +0 -0
  62. package/dist/fonts/zh/400-2cc00.woff2 +0 -0
  63. package/dist/fonts/zh/400-2ce00.woff2 +0 -0
  64. package/dist/fonts/zh/400-2d400.woff2 +0 -0
  65. package/dist/fonts/zh/400-2e00.woff2 +0 -0
  66. package/dist/fonts/zh/400-2f800.woff2 +0 -0
  67. package/dist/fonts/zh/400-3000.woff2 +0 -0
  68. package/dist/fonts/zh/400-3200.woff2 +0 -0
  69. package/dist/fonts/zh/400-3400.woff2 +0 -0
  70. package/dist/fonts/zh/400-3600.woff2 +0 -0
  71. package/dist/fonts/zh/400-3800.woff2 +0 -0
  72. package/dist/fonts/zh/400-3a00.woff2 +0 -0
  73. package/dist/fonts/zh/400-3c00.woff2 +0 -0
  74. package/dist/fonts/zh/400-3e00.woff2 +0 -0
  75. package/dist/fonts/zh/400-4000.woff2 +0 -0
  76. package/dist/fonts/zh/400-4200.woff2 +0 -0
  77. package/dist/fonts/zh/400-4400.woff2 +0 -0
  78. package/dist/fonts/zh/400-4600.woff2 +0 -0
  79. package/dist/fonts/zh/400-4800.woff2 +0 -0
  80. package/dist/fonts/zh/400-4a00.woff2 +0 -0
  81. package/dist/fonts/zh/400-4c00.woff2 +0 -0
  82. package/dist/fonts/zh/400-4e00.woff2 +0 -0
  83. package/dist/fonts/zh/400-5000.woff2 +0 -0
  84. package/dist/fonts/zh/400-5200.woff2 +0 -0
  85. package/dist/fonts/zh/400-5400.woff2 +0 -0
  86. package/dist/fonts/zh/400-5600.woff2 +0 -0
  87. package/dist/fonts/zh/400-5800.woff2 +0 -0
  88. package/dist/fonts/zh/400-5a00.woff2 +0 -0
  89. package/dist/fonts/zh/400-5c00.woff2 +0 -0
  90. package/dist/fonts/zh/400-5e00.woff2 +0 -0
  91. package/dist/fonts/zh/400-6000.woff2 +0 -0
  92. package/dist/fonts/zh/400-6200.woff2 +0 -0
  93. package/dist/fonts/zh/400-6400.woff2 +0 -0
  94. package/dist/fonts/zh/400-6600.woff2 +0 -0
  95. package/dist/fonts/zh/400-6800.woff2 +0 -0
  96. package/dist/fonts/zh/400-6a00.woff2 +0 -0
  97. package/dist/fonts/zh/400-6c00.woff2 +0 -0
  98. package/dist/fonts/zh/400-6e00.woff2 +0 -0
  99. package/dist/fonts/zh/400-7000.woff2 +0 -0
  100. package/dist/fonts/zh/400-7200.woff2 +0 -0
  101. package/dist/fonts/zh/400-7400.woff2 +0 -0
  102. package/dist/fonts/zh/400-7600.woff2 +0 -0
  103. package/dist/fonts/zh/400-7800.woff2 +0 -0
  104. package/dist/fonts/zh/400-7a00.woff2 +0 -0
  105. package/dist/fonts/zh/400-7c00.woff2 +0 -0
  106. package/dist/fonts/zh/400-7e00.woff2 +0 -0
  107. package/dist/fonts/zh/400-8000.woff2 +0 -0
  108. package/dist/fonts/zh/400-8200.woff2 +0 -0
  109. package/dist/fonts/zh/400-8400.woff2 +0 -0
  110. package/dist/fonts/zh/400-8600.woff2 +0 -0
  111. package/dist/fonts/zh/400-8800.woff2 +0 -0
  112. package/dist/fonts/zh/400-8a00.woff2 +0 -0
  113. package/dist/fonts/zh/400-8c00.woff2 +0 -0
  114. package/dist/fonts/zh/400-8e00.woff2 +0 -0
  115. package/dist/fonts/zh/400-9000.woff2 +0 -0
  116. package/dist/fonts/zh/400-9200.woff2 +0 -0
  117. package/dist/fonts/zh/400-9400.woff2 +0 -0
  118. package/dist/fonts/zh/400-9600.woff2 +0 -0
  119. package/dist/fonts/zh/400-9800.woff2 +0 -0
  120. package/dist/fonts/zh/400-9a00.woff2 +0 -0
  121. package/dist/fonts/zh/400-9c00.woff2 +0 -0
  122. package/dist/fonts/zh/400-9e00.woff2 +0 -0
  123. package/dist/fonts/zh/400-f800.woff2 +0 -0
  124. package/dist/fonts/zh/400-fa00.woff2 +0 -0
  125. package/dist/fonts/zh/400-fe00.woff2 +0 -0
  126. package/dist/fonts/zh/500-1f000.woff2 +0 -0
  127. package/dist/fonts/zh/500-1f200.woff2 +0 -0
  128. package/dist/fonts/zh/500-20000.woff2 +0 -0
  129. package/dist/fonts/zh/500-20600.woff2 +0 -0
  130. package/dist/fonts/zh/500-20c00.woff2 +0 -0
  131. package/dist/fonts/zh/500-21200.woff2 +0 -0
  132. package/dist/fonts/zh/500-21400.woff2 +0 -0
  133. package/dist/fonts/zh/500-22800.woff2 +0 -0
  134. package/dist/fonts/zh/500-23400.woff2 +0 -0
  135. package/dist/fonts/zh/500-23c00.woff2 +0 -0
  136. package/dist/fonts/zh/500-23e00.woff2 +0 -0
  137. package/dist/fonts/zh/500-24000.woff2 +0 -0
  138. package/dist/fonts/zh/500-24200.woff2 +0 -0
  139. package/dist/fonts/zh/500-24800.woff2 +0 -0
  140. package/dist/fonts/zh/500-24a00.woff2 +0 -0
  141. package/dist/fonts/zh/500-25400.woff2 +0 -0
  142. package/dist/fonts/zh/500-25a00.woff2 +0 -0
  143. package/dist/fonts/zh/500-25e00.woff2 +0 -0
  144. package/dist/fonts/zh/500-26200.woff2 +0 -0
  145. package/dist/fonts/zh/500-26400.woff2 +0 -0
  146. package/dist/fonts/zh/500-26600.woff2 +0 -0
  147. package/dist/fonts/zh/500-26800.woff2 +0 -0
  148. package/dist/fonts/zh/500-26a00.woff2 +0 -0
  149. package/dist/fonts/zh/500-26c00.woff2 +0 -0
  150. package/dist/fonts/zh/500-27800.woff2 +0 -0
  151. package/dist/fonts/zh/500-27e00.woff2 +0 -0
  152. package/dist/fonts/zh/500-28400.woff2 +0 -0
  153. package/dist/fonts/zh/500-28600.woff2 +0 -0
  154. package/dist/fonts/zh/500-28a00.woff2 +0 -0
  155. package/dist/fonts/zh/500-28c00.woff2 +0 -0
  156. package/dist/fonts/zh/500-28e00.woff2 +0 -0
  157. package/dist/fonts/zh/500-29600.woff2 +0 -0
  158. package/dist/fonts/zh/500-29800.woff2 +0 -0
  159. package/dist/fonts/zh/500-29e00.woff2 +0 -0
  160. package/dist/fonts/zh/500-2a600.woff2 +0 -0
  161. package/dist/fonts/zh/500-2a800.woff2 +0 -0
  162. package/dist/fonts/zh/500-2aa00.woff2 +0 -0
  163. package/dist/fonts/zh/500-2ae00.woff2 +0 -0
  164. package/dist/fonts/zh/500-2b000.woff2 +0 -0
  165. package/dist/fonts/zh/500-2b200.woff2 +0 -0
  166. package/dist/fonts/zh/500-2b400.woff2 +0 -0
  167. package/dist/fonts/zh/500-2b600.woff2 +0 -0
  168. package/dist/fonts/zh/500-2b800.woff2 +0 -0
  169. package/dist/fonts/zh/500-2ba00.woff2 +0 -0
  170. package/dist/fonts/zh/500-2bc00.woff2 +0 -0
  171. package/dist/fonts/zh/500-2be00.woff2 +0 -0
  172. package/dist/fonts/zh/500-2c000.woff2 +0 -0
  173. package/dist/fonts/zh/500-2c200.woff2 +0 -0
  174. package/dist/fonts/zh/500-2c400.woff2 +0 -0
  175. package/dist/fonts/zh/500-2c600.woff2 +0 -0
  176. package/dist/fonts/zh/500-2c800.woff2 +0 -0
  177. package/dist/fonts/zh/500-2ca00.woff2 +0 -0
  178. package/dist/fonts/zh/500-2cc00.woff2 +0 -0
  179. package/dist/fonts/zh/500-2ce00.woff2 +0 -0
  180. package/dist/fonts/zh/500-2d400.woff2 +0 -0
  181. package/dist/fonts/zh/500-2e00.woff2 +0 -0
  182. package/dist/fonts/zh/500-2f800.woff2 +0 -0
  183. package/dist/fonts/zh/500-3000.woff2 +0 -0
  184. package/dist/fonts/zh/500-3200.woff2 +0 -0
  185. package/dist/fonts/zh/500-3400.woff2 +0 -0
  186. package/dist/fonts/zh/500-3600.woff2 +0 -0
  187. package/dist/fonts/zh/500-3800.woff2 +0 -0
  188. package/dist/fonts/zh/500-3a00.woff2 +0 -0
  189. package/dist/fonts/zh/500-3c00.woff2 +0 -0
  190. package/dist/fonts/zh/500-3e00.woff2 +0 -0
  191. package/dist/fonts/zh/500-4000.woff2 +0 -0
  192. package/dist/fonts/zh/500-4200.woff2 +0 -0
  193. package/dist/fonts/zh/500-4400.woff2 +0 -0
  194. package/dist/fonts/zh/500-4600.woff2 +0 -0
  195. package/dist/fonts/zh/500-4800.woff2 +0 -0
  196. package/dist/fonts/zh/500-4a00.woff2 +0 -0
  197. package/dist/fonts/zh/500-4c00.woff2 +0 -0
  198. package/dist/fonts/zh/500-4e00.woff2 +0 -0
  199. package/dist/fonts/zh/500-5000.woff2 +0 -0
  200. package/dist/fonts/zh/500-5200.woff2 +0 -0
  201. package/dist/fonts/zh/500-5400.woff2 +0 -0
  202. package/dist/fonts/zh/500-5600.woff2 +0 -0
  203. package/dist/fonts/zh/500-5800.woff2 +0 -0
  204. package/dist/fonts/zh/500-5a00.woff2 +0 -0
  205. package/dist/fonts/zh/500-5c00.woff2 +0 -0
  206. package/dist/fonts/zh/500-5e00.woff2 +0 -0
  207. package/dist/fonts/zh/500-6000.woff2 +0 -0
  208. package/dist/fonts/zh/500-6200.woff2 +0 -0
  209. package/dist/fonts/zh/500-6400.woff2 +0 -0
  210. package/dist/fonts/zh/500-6600.woff2 +0 -0
  211. package/dist/fonts/zh/500-6800.woff2 +0 -0
  212. package/dist/fonts/zh/500-6a00.woff2 +0 -0
  213. package/dist/fonts/zh/500-6c00.woff2 +0 -0
  214. package/dist/fonts/zh/500-6e00.woff2 +0 -0
  215. package/dist/fonts/zh/500-7000.woff2 +0 -0
  216. package/dist/fonts/zh/500-7200.woff2 +0 -0
  217. package/dist/fonts/zh/500-7400.woff2 +0 -0
  218. package/dist/fonts/zh/500-7600.woff2 +0 -0
  219. package/dist/fonts/zh/500-7800.woff2 +0 -0
  220. package/dist/fonts/zh/500-7a00.woff2 +0 -0
  221. package/dist/fonts/zh/500-7c00.woff2 +0 -0
  222. package/dist/fonts/zh/500-7e00.woff2 +0 -0
  223. package/dist/fonts/zh/500-8000.woff2 +0 -0
  224. package/dist/fonts/zh/500-8200.woff2 +0 -0
  225. package/dist/fonts/zh/500-8400.woff2 +0 -0
  226. package/dist/fonts/zh/500-8600.woff2 +0 -0
  227. package/dist/fonts/zh/500-8800.woff2 +0 -0
  228. package/dist/fonts/zh/500-8a00.woff2 +0 -0
  229. package/dist/fonts/zh/500-8c00.woff2 +0 -0
  230. package/dist/fonts/zh/500-8e00.woff2 +0 -0
  231. package/dist/fonts/zh/500-9000.woff2 +0 -0
  232. package/dist/fonts/zh/500-9200.woff2 +0 -0
  233. package/dist/fonts/zh/500-9400.woff2 +0 -0
  234. package/dist/fonts/zh/500-9600.woff2 +0 -0
  235. package/dist/fonts/zh/500-9800.woff2 +0 -0
  236. package/dist/fonts/zh/500-9a00.woff2 +0 -0
  237. package/dist/fonts/zh/500-9c00.woff2 +0 -0
  238. package/dist/fonts/zh/500-9e00.woff2 +0 -0
  239. package/dist/fonts/zh/500-f800.woff2 +0 -0
  240. package/dist/fonts/zh/500-fa00.woff2 +0 -0
  241. package/dist/fonts/zh/500-fe00.woff2 +0 -0
  242. package/dist/fonts/zh/700-1f000.woff2 +0 -0
  243. package/dist/fonts/zh/700-1f200.woff2 +0 -0
  244. package/dist/fonts/zh/700-20000.woff2 +0 -0
  245. package/dist/fonts/zh/700-20600.woff2 +0 -0
  246. package/dist/fonts/zh/700-20c00.woff2 +0 -0
  247. package/dist/fonts/zh/700-21200.woff2 +0 -0
  248. package/dist/fonts/zh/700-21400.woff2 +0 -0
  249. package/dist/fonts/zh/700-22800.woff2 +0 -0
  250. package/dist/fonts/zh/700-23400.woff2 +0 -0
  251. package/dist/fonts/zh/700-23c00.woff2 +0 -0
  252. package/dist/fonts/zh/700-23e00.woff2 +0 -0
  253. package/dist/fonts/zh/700-24000.woff2 +0 -0
  254. package/dist/fonts/zh/700-24200.woff2 +0 -0
  255. package/dist/fonts/zh/700-24800.woff2 +0 -0
  256. package/dist/fonts/zh/700-24a00.woff2 +0 -0
  257. package/dist/fonts/zh/700-25400.woff2 +0 -0
  258. package/dist/fonts/zh/700-25a00.woff2 +0 -0
  259. package/dist/fonts/zh/700-25e00.woff2 +0 -0
  260. package/dist/fonts/zh/700-26200.woff2 +0 -0
  261. package/dist/fonts/zh/700-26400.woff2 +0 -0
  262. package/dist/fonts/zh/700-26600.woff2 +0 -0
  263. package/dist/fonts/zh/700-26800.woff2 +0 -0
  264. package/dist/fonts/zh/700-26a00.woff2 +0 -0
  265. package/dist/fonts/zh/700-26c00.woff2 +0 -0
  266. package/dist/fonts/zh/700-27800.woff2 +0 -0
  267. package/dist/fonts/zh/700-27e00.woff2 +0 -0
  268. package/dist/fonts/zh/700-28400.woff2 +0 -0
  269. package/dist/fonts/zh/700-28600.woff2 +0 -0
  270. package/dist/fonts/zh/700-28a00.woff2 +0 -0
  271. package/dist/fonts/zh/700-28c00.woff2 +0 -0
  272. package/dist/fonts/zh/700-28e00.woff2 +0 -0
  273. package/dist/fonts/zh/700-29600.woff2 +0 -0
  274. package/dist/fonts/zh/700-29800.woff2 +0 -0
  275. package/dist/fonts/zh/700-29e00.woff2 +0 -0
  276. package/dist/fonts/zh/700-2a600.woff2 +0 -0
  277. package/dist/fonts/zh/700-2a800.woff2 +0 -0
  278. package/dist/fonts/zh/700-2aa00.woff2 +0 -0
  279. package/dist/fonts/zh/700-2ae00.woff2 +0 -0
  280. package/dist/fonts/zh/700-2b000.woff2 +0 -0
  281. package/dist/fonts/zh/700-2b200.woff2 +0 -0
  282. package/dist/fonts/zh/700-2b400.woff2 +0 -0
  283. package/dist/fonts/zh/700-2b600.woff2 +0 -0
  284. package/dist/fonts/zh/700-2b800.woff2 +0 -0
  285. package/dist/fonts/zh/700-2ba00.woff2 +0 -0
  286. package/dist/fonts/zh/700-2bc00.woff2 +0 -0
  287. package/dist/fonts/zh/700-2be00.woff2 +0 -0
  288. package/dist/fonts/zh/700-2c000.woff2 +0 -0
  289. package/dist/fonts/zh/700-2c200.woff2 +0 -0
  290. package/dist/fonts/zh/700-2c400.woff2 +0 -0
  291. package/dist/fonts/zh/700-2c600.woff2 +0 -0
  292. package/dist/fonts/zh/700-2c800.woff2 +0 -0
  293. package/dist/fonts/zh/700-2ca00.woff2 +0 -0
  294. package/dist/fonts/zh/700-2cc00.woff2 +0 -0
  295. package/dist/fonts/zh/700-2ce00.woff2 +0 -0
  296. package/dist/fonts/zh/700-2d400.woff2 +0 -0
  297. package/dist/fonts/zh/700-2e00.woff2 +0 -0
  298. package/dist/fonts/zh/700-2f800.woff2 +0 -0
  299. package/dist/fonts/zh/700-3000.woff2 +0 -0
  300. package/dist/fonts/zh/700-3200.woff2 +0 -0
  301. package/dist/fonts/zh/700-3400.woff2 +0 -0
  302. package/dist/fonts/zh/700-3600.woff2 +0 -0
  303. package/dist/fonts/zh/700-3800.woff2 +0 -0
  304. package/dist/fonts/zh/700-3a00.woff2 +0 -0
  305. package/dist/fonts/zh/700-3c00.woff2 +0 -0
  306. package/dist/fonts/zh/700-3e00.woff2 +0 -0
  307. package/dist/fonts/zh/700-4000.woff2 +0 -0
  308. package/dist/fonts/zh/700-4200.woff2 +0 -0
  309. package/dist/fonts/zh/700-4400.woff2 +0 -0
  310. package/dist/fonts/zh/700-4600.woff2 +0 -0
  311. package/dist/fonts/zh/700-4800.woff2 +0 -0
  312. package/dist/fonts/zh/700-4a00.woff2 +0 -0
  313. package/dist/fonts/zh/700-4c00.woff2 +0 -0
  314. package/dist/fonts/zh/700-4e00.woff2 +0 -0
  315. package/dist/fonts/zh/700-5000.woff2 +0 -0
  316. package/dist/fonts/zh/700-5200.woff2 +0 -0
  317. package/dist/fonts/zh/700-5400.woff2 +0 -0
  318. package/dist/fonts/zh/700-5600.woff2 +0 -0
  319. package/dist/fonts/zh/700-5800.woff2 +0 -0
  320. package/dist/fonts/zh/700-5a00.woff2 +0 -0
  321. package/dist/fonts/zh/700-5c00.woff2 +0 -0
  322. package/dist/fonts/zh/700-5e00.woff2 +0 -0
  323. package/dist/fonts/zh/700-6000.woff2 +0 -0
  324. package/dist/fonts/zh/700-6200.woff2 +0 -0
  325. package/dist/fonts/zh/700-6400.woff2 +0 -0
  326. package/dist/fonts/zh/700-6600.woff2 +0 -0
  327. package/dist/fonts/zh/700-6800.woff2 +0 -0
  328. package/dist/fonts/zh/700-6a00.woff2 +0 -0
  329. package/dist/fonts/zh/700-6c00.woff2 +0 -0
  330. package/dist/fonts/zh/700-6e00.woff2 +0 -0
  331. package/dist/fonts/zh/700-7000.woff2 +0 -0
  332. package/dist/fonts/zh/700-7200.woff2 +0 -0
  333. package/dist/fonts/zh/700-7400.woff2 +0 -0
  334. package/dist/fonts/zh/700-7600.woff2 +0 -0
  335. package/dist/fonts/zh/700-7800.woff2 +0 -0
  336. package/dist/fonts/zh/700-7a00.woff2 +0 -0
  337. package/dist/fonts/zh/700-7c00.woff2 +0 -0
  338. package/dist/fonts/zh/700-7e00.woff2 +0 -0
  339. package/dist/fonts/zh/700-8000.woff2 +0 -0
  340. package/dist/fonts/zh/700-8200.woff2 +0 -0
  341. package/dist/fonts/zh/700-8400.woff2 +0 -0
  342. package/dist/fonts/zh/700-8600.woff2 +0 -0
  343. package/dist/fonts/zh/700-8800.woff2 +0 -0
  344. package/dist/fonts/zh/700-8a00.woff2 +0 -0
  345. package/dist/fonts/zh/700-8c00.woff2 +0 -0
  346. package/dist/fonts/zh/700-8e00.woff2 +0 -0
  347. package/dist/fonts/zh/700-9000.woff2 +0 -0
  348. package/dist/fonts/zh/700-9200.woff2 +0 -0
  349. package/dist/fonts/zh/700-9400.woff2 +0 -0
  350. package/dist/fonts/zh/700-9600.woff2 +0 -0
  351. package/dist/fonts/zh/700-9800.woff2 +0 -0
  352. package/dist/fonts/zh/700-9a00.woff2 +0 -0
  353. package/dist/fonts/zh/700-9c00.woff2 +0 -0
  354. package/dist/fonts/zh/700-9e00.woff2 +0 -0
  355. package/dist/fonts/zh/700-f800.woff2 +0 -0
  356. package/dist/fonts/zh/700-fa00.woff2 +0 -0
  357. package/dist/fonts/zh/700-fe00.woff2 +0 -0
  358. package/dist/fonts/zh/900-1f000.woff2 +0 -0
  359. package/dist/fonts/zh/900-1f200.woff2 +0 -0
  360. package/dist/fonts/zh/900-20000.woff2 +0 -0
  361. package/dist/fonts/zh/900-20600.woff2 +0 -0
  362. package/dist/fonts/zh/900-20c00.woff2 +0 -0
  363. package/dist/fonts/zh/900-21200.woff2 +0 -0
  364. package/dist/fonts/zh/900-21400.woff2 +0 -0
  365. package/dist/fonts/zh/900-22800.woff2 +0 -0
  366. package/dist/fonts/zh/900-23400.woff2 +0 -0
  367. package/dist/fonts/zh/900-23c00.woff2 +0 -0
  368. package/dist/fonts/zh/900-23e00.woff2 +0 -0
  369. package/dist/fonts/zh/900-24000.woff2 +0 -0
  370. package/dist/fonts/zh/900-24200.woff2 +0 -0
  371. package/dist/fonts/zh/900-24800.woff2 +0 -0
  372. package/dist/fonts/zh/900-24a00.woff2 +0 -0
  373. package/dist/fonts/zh/900-25400.woff2 +0 -0
  374. package/dist/fonts/zh/900-25a00.woff2 +0 -0
  375. package/dist/fonts/zh/900-25e00.woff2 +0 -0
  376. package/dist/fonts/zh/900-26200.woff2 +0 -0
  377. package/dist/fonts/zh/900-26400.woff2 +0 -0
  378. package/dist/fonts/zh/900-26600.woff2 +0 -0
  379. package/dist/fonts/zh/900-26800.woff2 +0 -0
  380. package/dist/fonts/zh/900-26a00.woff2 +0 -0
  381. package/dist/fonts/zh/900-26c00.woff2 +0 -0
  382. package/dist/fonts/zh/900-27800.woff2 +0 -0
  383. package/dist/fonts/zh/900-27e00.woff2 +0 -0
  384. package/dist/fonts/zh/900-28400.woff2 +0 -0
  385. package/dist/fonts/zh/900-28600.woff2 +0 -0
  386. package/dist/fonts/zh/900-28a00.woff2 +0 -0
  387. package/dist/fonts/zh/900-28c00.woff2 +0 -0
  388. package/dist/fonts/zh/900-28e00.woff2 +0 -0
  389. package/dist/fonts/zh/900-29600.woff2 +0 -0
  390. package/dist/fonts/zh/900-29800.woff2 +0 -0
  391. package/dist/fonts/zh/900-29e00.woff2 +0 -0
  392. package/dist/fonts/zh/900-2a600.woff2 +0 -0
  393. package/dist/fonts/zh/900-2a800.woff2 +0 -0
  394. package/dist/fonts/zh/900-2aa00.woff2 +0 -0
  395. package/dist/fonts/zh/900-2ae00.woff2 +0 -0
  396. package/dist/fonts/zh/900-2b000.woff2 +0 -0
  397. package/dist/fonts/zh/900-2b200.woff2 +0 -0
  398. package/dist/fonts/zh/900-2b400.woff2 +0 -0
  399. package/dist/fonts/zh/900-2b600.woff2 +0 -0
  400. package/dist/fonts/zh/900-2b800.woff2 +0 -0
  401. package/dist/fonts/zh/900-2ba00.woff2 +0 -0
  402. package/dist/fonts/zh/900-2bc00.woff2 +0 -0
  403. package/dist/fonts/zh/900-2be00.woff2 +0 -0
  404. package/dist/fonts/zh/900-2c000.woff2 +0 -0
  405. package/dist/fonts/zh/900-2c200.woff2 +0 -0
  406. package/dist/fonts/zh/900-2c400.woff2 +0 -0
  407. package/dist/fonts/zh/900-2c600.woff2 +0 -0
  408. package/dist/fonts/zh/900-2c800.woff2 +0 -0
  409. package/dist/fonts/zh/900-2ca00.woff2 +0 -0
  410. package/dist/fonts/zh/900-2cc00.woff2 +0 -0
  411. package/dist/fonts/zh/900-2ce00.woff2 +0 -0
  412. package/dist/fonts/zh/900-2d400.woff2 +0 -0
  413. package/dist/fonts/zh/900-2e00.woff2 +0 -0
  414. package/dist/fonts/zh/900-2f800.woff2 +0 -0
  415. package/dist/fonts/zh/900-3000.woff2 +0 -0
  416. package/dist/fonts/zh/900-3200.woff2 +0 -0
  417. package/dist/fonts/zh/900-3400.woff2 +0 -0
  418. package/dist/fonts/zh/900-3600.woff2 +0 -0
  419. package/dist/fonts/zh/900-3800.woff2 +0 -0
  420. package/dist/fonts/zh/900-3a00.woff2 +0 -0
  421. package/dist/fonts/zh/900-3c00.woff2 +0 -0
  422. package/dist/fonts/zh/900-3e00.woff2 +0 -0
  423. package/dist/fonts/zh/900-4000.woff2 +0 -0
  424. package/dist/fonts/zh/900-4200.woff2 +0 -0
  425. package/dist/fonts/zh/900-4400.woff2 +0 -0
  426. package/dist/fonts/zh/900-4600.woff2 +0 -0
  427. package/dist/fonts/zh/900-4800.woff2 +0 -0
  428. package/dist/fonts/zh/900-4a00.woff2 +0 -0
  429. package/dist/fonts/zh/900-4c00.woff2 +0 -0
  430. package/dist/fonts/zh/900-4e00.woff2 +0 -0
  431. package/dist/fonts/zh/900-5000.woff2 +0 -0
  432. package/dist/fonts/zh/900-5200.woff2 +0 -0
  433. package/dist/fonts/zh/900-5400.woff2 +0 -0
  434. package/dist/fonts/zh/900-5600.woff2 +0 -0
  435. package/dist/fonts/zh/900-5800.woff2 +0 -0
  436. package/dist/fonts/zh/900-5a00.woff2 +0 -0
  437. package/dist/fonts/zh/900-5c00.woff2 +0 -0
  438. package/dist/fonts/zh/900-5e00.woff2 +0 -0
  439. package/dist/fonts/zh/900-6000.woff2 +0 -0
  440. package/dist/fonts/zh/900-6200.woff2 +0 -0
  441. package/dist/fonts/zh/900-6400.woff2 +0 -0
  442. package/dist/fonts/zh/900-6600.woff2 +0 -0
  443. package/dist/fonts/zh/900-6800.woff2 +0 -0
  444. package/dist/fonts/zh/900-6a00.woff2 +0 -0
  445. package/dist/fonts/zh/900-6c00.woff2 +0 -0
  446. package/dist/fonts/zh/900-6e00.woff2 +0 -0
  447. package/dist/fonts/zh/900-7000.woff2 +0 -0
  448. package/dist/fonts/zh/900-7200.woff2 +0 -0
  449. package/dist/fonts/zh/900-7400.woff2 +0 -0
  450. package/dist/fonts/zh/900-7600.woff2 +0 -0
  451. package/dist/fonts/zh/900-7800.woff2 +0 -0
  452. package/dist/fonts/zh/900-7a00.woff2 +0 -0
  453. package/dist/fonts/zh/900-7c00.woff2 +0 -0
  454. package/dist/fonts/zh/900-7e00.woff2 +0 -0
  455. package/dist/fonts/zh/900-8000.woff2 +0 -0
  456. package/dist/fonts/zh/900-8200.woff2 +0 -0
  457. package/dist/fonts/zh/900-8400.woff2 +0 -0
  458. package/dist/fonts/zh/900-8600.woff2 +0 -0
  459. package/dist/fonts/zh/900-8800.woff2 +0 -0
  460. package/dist/fonts/zh/900-8a00.woff2 +0 -0
  461. package/dist/fonts/zh/900-8c00.woff2 +0 -0
  462. package/dist/fonts/zh/900-8e00.woff2 +0 -0
  463. package/dist/fonts/zh/900-9000.woff2 +0 -0
  464. package/dist/fonts/zh/900-9200.woff2 +0 -0
  465. package/dist/fonts/zh/900-9400.woff2 +0 -0
  466. package/dist/fonts/zh/900-9600.woff2 +0 -0
  467. package/dist/fonts/zh/900-9800.woff2 +0 -0
  468. package/dist/fonts/zh/900-9a00.woff2 +0 -0
  469. package/dist/fonts/zh/900-9c00.woff2 +0 -0
  470. package/dist/fonts/zh/900-9e00.woff2 +0 -0
  471. package/dist/fonts/zh/900-f800.woff2 +0 -0
  472. package/dist/fonts/zh/900-fa00.woff2 +0 -0
  473. package/dist/fonts/zh/900-fe00.woff2 +0 -0
  474. package/dist/fonts/zh/OFL.txt +98 -0
  475. package/dist/fonts/zh/font-faces.css +4176 -0
  476. package/dist/fonts/zh/manifest.json +3728 -0
  477. package/dist/fonts.css +1 -1
  478. package/dist/icon-paths.d.ts +247 -0
  479. package/dist/icon-paths.js +2 -0
  480. package/dist/index.d.ts +363 -1919
  481. package/dist/index.js +839 -9118
  482. package/dist/liquid-effects.d.ts +350 -0
  483. package/dist/liquid-effects.js +1318 -0
  484. package/dist/liquid-presence.css +1 -1
  485. package/dist/liquid-presence.d.ts +15 -3
  486. package/dist/liquid-presence.js +714 -664
  487. package/dist/paths-B7D0h7Mh.js +255 -0
  488. package/dist/preview.css +1 -1
  489. package/dist/preview.d.ts +24 -0
  490. package/dist/preview.js +1993 -0
  491. package/dist/reducedMotion-B8kv-v64.js +473 -0
  492. package/dist/styles.css +1 -1
  493. package/dist/tailwind.css +5 -3
  494. package/donors-individual.md +21 -2
  495. package/package.json +25 -9
  496. package/bin/swimmer-ui-assets.mjs +0 -83
  497. package/dist/assets/game/ui/clay/asset-manifest.json +0 -2823
  498. package/dist/assets/game/ui/clay/phase03-clay-kit/buttons/button-blue-large-v1.png +0 -0
  499. package/dist/assets/game/ui/clay/phase03-clay-kit/buttons/button-blue-large-v2.png +0 -0
  500. package/dist/assets/game/ui/clay/phase03-clay-kit/buttons/button-brown-large-v1.png +0 -0
  501. package/dist/assets/game/ui/clay/phase03-clay-kit/buttons/button-brown-large-v2.png +0 -0
  502. package/dist/assets/game/ui/clay/phase03-clay-kit/buttons/button-green-large-v1.png +0 -0
  503. package/dist/assets/game/ui/clay/phase03-clay-kit/buttons/button-green-large-v2.png +0 -0
  504. package/dist/assets/game/ui/clay/phase03-clay-kit/buttons/button-purple-large-v1.png +0 -0
  505. package/dist/assets/game/ui/clay/phase03-clay-kit/buttons/button-purple-large-v2.png +0 -0
  506. package/dist/assets/game/ui/clay/phase03-clay-kit/buttons/button-red-large-v1.png +0 -0
  507. package/dist/assets/game/ui/clay/phase03-clay-kit/buttons/button-red-large-v2.png +0 -0
  508. package/dist/assets/game/ui/clay/phase03-clay-kit/catalog/common-icons-contact-sheet-v1.png +0 -0
  509. package/dist/assets/game/ui/clay/phase03-clay-kit/catalog/component-candidates-contact-sheet-v1.png +0 -0
  510. package/dist/assets/game/ui/clay/phase03-clay-kit/catalog/function-icons-contact-sheet-v1.png +0 -0
  511. package/dist/assets/game/ui/clay/phase03-clay-kit/catalog/phase03-clay-ui-catalog.json +0 -3476
  512. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/alert-v1.png +0 -0
  513. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/bar-v1.png +0 -0
  514. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/best-v1.png +0 -0
  515. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/check-off-v1.png +0 -0
  516. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/check-on-v1.png +0 -0
  517. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/count-v1.png +0 -0
  518. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/direction-v1.png +0 -0
  519. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/gauge-v1.png +0 -0
  520. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/hot-v1.png +0 -0
  521. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/label-2-v1.png +0 -0
  522. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/label-v1.png +0 -0
  523. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/loading-v1.png +0 -0
  524. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/mission-badge-v1.png +0 -0
  525. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/new-v1.png +0 -0
  526. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/page-arrow-next-v1.png +0 -0
  527. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/page-arrow-prev-v1.png +0 -0
  528. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/pagenavigation-v1.png +0 -0
  529. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/radiobtn-off-v1.png +0 -0
  530. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/radiobtn-on-v1.png +0 -0
  531. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/ribbon-2-v1.png +0 -0
  532. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/ribbon-v1.png +0 -0
  533. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/slidebar-dim-v1.png +0 -0
  534. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/stage-v1.png +0 -0
  535. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/switch-off-v1.png +0 -0
  536. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/switch-on-v1.png +0 -0
  537. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/tab-n-v1.png +0 -0
  538. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/tab-s-v1.png +0 -0
  539. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/top-v1.png +0 -0
  540. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/user-info-v1.png +0 -0
  541. package/dist/assets/game/ui/clay/phase03-clay-kit/components/language/button-close-v1.png +0 -0
  542. package/dist/assets/game/ui/clay/phase03-clay-kit/components/language/check-v1.png +0 -0
  543. package/dist/assets/game/ui/clay/phase03-clay-kit/components/language/language-v1.png +0 -0
  544. package/dist/assets/game/ui/clay/phase03-clay-kit/components/popup/popup-v1.png +0 -0
  545. package/dist/assets/game/ui/clay/phase03-clay-kit/components/settings/btn-blue-v1.png +0 -0
  546. package/dist/assets/game/ui/clay/phase03-clay-kit/components/settings/btn-brown-2-v1.png +0 -0
  547. package/dist/assets/game/ui/clay/phase03-clay-kit/components/settings/btn-brown-v1.png +0 -0
  548. package/dist/assets/game/ui/clay/phase03-clay-kit/components/settings/btn-facebook-v1.png +0 -0
  549. package/dist/assets/game/ui/clay/phase03-clay-kit/components/settings/btn-green-v1.png +0 -0
  550. package/dist/assets/game/ui/clay/phase03-clay-kit/components/settings/button-close-v1.png +0 -0
  551. package/dist/assets/game/ui/clay/phase03-clay-kit/components/settings/common-popup-title-v1.png +0 -0
  552. package/dist/assets/game/ui/clay/phase03-clay-kit/components/settings/language-v1.png +0 -0
  553. package/dist/assets/game/ui/clay/phase03-clay-kit/components/settings/radio-btn-v1.png +0 -0
  554. package/dist/assets/game/ui/clay/phase03-clay-kit/components/settings/slidebar-v1.png +0 -0
  555. package/dist/assets/game/ui/clay/phase03-clay-kit/components/settings/switch-2-v1.png +0 -0
  556. package/dist/assets/game/ui/clay/phase03-clay-kit/components/settings/switch-v1.png +0 -0
  557. package/dist/assets/game/ui/clay/phase03-clay-kit/components/stage-lock/stage-lock-badge-v1.png +0 -0
  558. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/checkbox-checked-v1.png +0 -0
  559. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/anvil-v1.png +0 -0
  560. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/arrow-v1.png +0 -0
  561. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/bomb-v1.png +0 -0
  562. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/candle-v1.png +0 -0
  563. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/chicken-v1.png +0 -0
  564. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/crown-v1.png +0 -0
  565. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/energy-v1.png +0 -0
  566. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/envelope-v1.png +0 -0
  567. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/gem-v1.png +0 -0
  568. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/gift-blue-v1.png +0 -0
  569. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/gift-red-v1.png +0 -0
  570. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/gold-v1.png +0 -0
  571. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/hammer-v1.png +0 -0
  572. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/horner-v1.png +0 -0
  573. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/horseshoes-v1.png +0 -0
  574. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/key-v1.png +0 -0
  575. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/laurel-v1.png +0 -0
  576. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/letter-v1.png +0 -0
  577. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/lock-v1.png +0 -0
  578. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/lucky-v1.png +0 -0
  579. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/medal-bronze-v1.png +0 -0
  580. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/medal-gold-v1.png +0 -0
  581. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/medal-silver-v1.png +0 -0
  582. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/mission-v1.png +0 -0
  583. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/pickax-v1.png +0 -0
  584. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/poition-red-v1.png +0 -0
  585. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/poiton-purple-v1.png +0 -0
  586. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/purplegem-v1.png +0 -0
  587. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/sandglass-v1.png +0 -0
  588. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/scroll-v1.png +0 -0
  589. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/setting-v1.png +0 -0
  590. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/shield-a-v1.png +0 -0
  591. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/shield-b-v1.png +0 -0
  592. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/shield-c-v1.png +0 -0
  593. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/shield-d-v1.png +0 -0
  594. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/shop-v1.png +0 -0
  595. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/skull-v1.png +0 -0
  596. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/soulgem-v1.png +0 -0
  597. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/sword-a-v1.png +0 -0
  598. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/sword-b-v1.png +0 -0
  599. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/talaria-v1.png +0 -0
  600. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/target-v1.png +0 -0
  601. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/timer-v1.png +0 -0
  602. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/treasure-v1.png +0 -0
  603. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/trophy-v1.png +0 -0
  604. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/account-v1.png +0 -0
  605. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/add-friend-v1.png +0 -0
  606. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/add-v1.png +0 -0
  607. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/align-v1.png +0 -0
  608. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/alram-v1.png +0 -0
  609. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/appstore-v1.png +0 -0
  610. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/arrow-down-v1.png +0 -0
  611. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/arrow-next-v1.png +0 -0
  612. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/arrow-prev-v1.png +0 -0
  613. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/arrow-up-v1.png +0 -0
  614. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/arrow-v1.png +0 -0
  615. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/asterisk-v1.png +0 -0
  616. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/attachment-v1.png +0 -0
  617. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/ax-v1.png +0 -0
  618. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/back-v1.png +0 -0
  619. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/bad-v1.png +0 -0
  620. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/badge-v1.png +0 -0
  621. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/bank-v1.png +0 -0
  622. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/basket-v1.png +0 -0
  623. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/battle-v1.png +0 -0
  624. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/bin-v1.png +0 -0
  625. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/binoculars-v1.png +0 -0
  626. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/bitcoin-v1.png +0 -0
  627. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/block-v1.png +0 -0
  628. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/bluetooth-v1.png +0 -0
  629. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/bomb-v1.png +0 -0
  630. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/book-v1.png +0 -0
  631. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/bookmark-add-v1.png +0 -0
  632. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/bookmark-v1.png +0 -0
  633. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/bottom-v1.png +0 -0
  634. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/brain-v1.png +0 -0
  635. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/bug-v1.png +0 -0
  636. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/bulb-v1.png +0 -0
  637. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/calendar-v1.png +0 -0
  638. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/call-reject-v1.png +0 -0
  639. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/call-v1.png +0 -0
  640. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/camera-v1.png +0 -0
  641. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/cancel-v1.png +0 -0
  642. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/card-v1.png +0 -0
  643. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/cart-v1.png +0 -0
  644. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/category-v1.png +0 -0
  645. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/chat-v1.png +0 -0
  646. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/check-v1.png +0 -0
  647. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/cloud-v1.png +0 -0
  648. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/cny-v1.png +0 -0
  649. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/coffee-v1.png +0 -0
  650. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/compass-v1.png +0 -0
  651. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/confirm-v1.png +0 -0
  652. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/contact-v1.png +0 -0
  653. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/control-next-v1.png +0 -0
  654. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/control-pause-v1.png +0 -0
  655. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/control-play-v1.png +0 -0
  656. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/control-prev-v1.png +0 -0
  657. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/control-stop-v1.png +0 -0
  658. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/control-v1.png +0 -0
  659. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/copy-v1.png +0 -0
  660. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/coupon-v1.png +0 -0
  661. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/crop-v1.png +0 -0
  662. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/crown-v1.png +0 -0
  663. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/defense-v1.png +0 -0
  664. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/delete-v1.png +0 -0
  665. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/dislike-v1.png +0 -0
  666. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/document-v1.png +0 -0
  667. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/dollar-v1.png +0 -0
  668. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/down-v1.png +0 -0
  669. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/download-v1.png +0 -0
  670. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/dynamite-v1.png +0 -0
  671. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/earth-v1.png +0 -0
  672. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/eat-v1.png +0 -0
  673. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/emoji-good-v1.png +0 -0
  674. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/emoji-soso-v1.png +0 -0
  675. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/energy-v1.png +0 -0
  676. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/exit-v1.png +0 -0
  677. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/expand-v1.png +0 -0
  678. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/export-v1.png +0 -0
  679. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/facebook-v1.png +0 -0
  680. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/feather-v1.png +0 -0
  681. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/filter-v1.png +0 -0
  682. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/fingerprint-v1.png +0 -0
  683. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/fire-v1.png +0 -0
  684. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/firm-v1.png +0 -0
  685. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/fix-v1.png +0 -0
  686. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/flag-v1.png +0 -0
  687. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/flask-01-v1.png +0 -0
  688. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/flask-02-v1.png +0 -0
  689. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/flask-03-v1.png +0 -0
  690. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/folder-open-v1.png +0 -0
  691. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/folder-v1.png +0 -0
  692. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/game-v1.png +0 -0
  693. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/gem-v1.png +0 -0
  694. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/gender-fale-v1.png +0 -0
  695. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/gender-female-v1.png +0 -0
  696. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/gift-v1.png +0 -0
  697. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/globe-v1.png +0 -0
  698. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/gmail-v1.png +0 -0
  699. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/gold-v1.png +0 -0
  700. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/googleplay-v1.png +0 -0
  701. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/graduation-v1.png +0 -0
  702. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/graph-v1.png +0 -0
  703. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/hammer-v1.png +0 -0
  704. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/hand-v1.png +0 -0
  705. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/hashtag-v1.png +0 -0
  706. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/headset-v1.png +0 -0
  707. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/heart-empty-v1.png +0 -0
  708. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/heart-v1.png +0 -0
  709. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/helmet-v1.png +0 -0
  710. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/hide-v1.png +0 -0
  711. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/home-v1.png +0 -0
  712. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/key-v1.png +0 -0
  713. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/knowledge-v1.png +0 -0
  714. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/left-v1.png +0 -0
  715. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/like-v1.png +0 -0
  716. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/link-v1.png +0 -0
  717. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/list-v1.png +0 -0
  718. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/location-v1.png +0 -0
  719. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/lock-v1.png +0 -0
  720. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/magnetic-v1.png +0 -0
  721. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/mail-read-v1.png +0 -0
  722. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/mail-unread-v1.png +0 -0
  723. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/map-v1.png +0 -0
  724. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/mark-caution-1-v1.png +0 -0
  725. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/mark-caution-2-v1.png +0 -0
  726. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/mark-info-1-v1.png +0 -0
  727. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/mark-info-2-v1.png +0 -0
  728. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/mark-question-1-v1.png +0 -0
  729. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/mark-question-2-v1.png +0 -0
  730. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/medal-v1.png +0 -0
  731. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/media-v1.png +0 -0
  732. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/megaphone-v1.png +0 -0
  733. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/menu-v1.png +0 -0
  734. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/message-v1.png +0 -0
  735. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/minus-v1.png +0 -0
  736. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/mobile-v1.png +0 -0
  737. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/money-v1.png +0 -0
  738. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/more-v1.png +0 -0
  739. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/music-1-v1.png +0 -0
  740. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/music-2-v1.png +0 -0
  741. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/newpaper-v1.png +0 -0
  742. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/next-v1.png +0 -0
  743. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/notification-off-v1.png +0 -0
  744. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/notification-v1.png +0 -0
  745. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/paper-v1.png +0 -0
  746. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/pc-v1.png +0 -0
  747. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/pen-v1.png +0 -0
  748. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/pencil-v1.png +0 -0
  749. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/percent-v1.png +0 -0
  750. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/photo-v1.png +0 -0
  751. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/pick-v1.png +0 -0
  752. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/piechart-v1.png +0 -0
  753. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/pinterest-v1.png +0 -0
  754. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/pinwheel-v1.png +0 -0
  755. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/planet-v1.png +0 -0
  756. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/player-v1.png +0 -0
  757. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/plus-v1.png +0 -0
  758. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/preferense-v1.png +0 -0
  759. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/prev-v1.png +0 -0
  760. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/printer-v1.png +0 -0
  761. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/quit-v1.png +0 -0
  762. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/random-v1.png +0 -0
  763. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/ranking-v1.png +0 -0
  764. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/record-off-v1.png +0 -0
  765. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/record-v1.png +0 -0
  766. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/refresh-v1.png +0 -0
  767. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/reload-v1.png +0 -0
  768. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/remove-v1.png +0 -0
  769. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/reset-v1.png +0 -0
  770. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/right-v1.png +0 -0
  771. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/ring-v1.png +0 -0
  772. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/safe-v1.png +0 -0
  773. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/sandglass-v1.png +0 -0
  774. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/scan-v1.png +0 -0
  775. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/screwdriver-v1.png +0 -0
  776. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/search-v1.png +0 -0
  777. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/send-1-v1.png +0 -0
  778. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/send-2-v1.png +0 -0
  779. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/service-v1.png +0 -0
  780. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/setting-1-v1.png +0 -0
  781. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/setting-2-v1.png +0 -0
  782. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/share-v1.png +0 -0
  783. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/shop-v1.png +0 -0
  784. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/shopping-v1.png +0 -0
  785. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/show-v1.png +0 -0
  786. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/sign-v1.png +0 -0
  787. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/siren-v1.png +0 -0
  788. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/skull-v1.png +0 -0
  789. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/skype-v1.png +0 -0
  790. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/sort-v1.png +0 -0
  791. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/sparkle-v1.png +0 -0
  792. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/speedmeter-v1.png +0 -0
  793. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/star-circle-v1.png +0 -0
  794. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/star-v1.png +0 -0
  795. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/stopwatch-v1.png +0 -0
  796. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/support-v1.png +0 -0
  797. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/sword-v1.png +0 -0
  798. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/tag-v1.png +0 -0
  799. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/target-v1.png +0 -0
  800. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/tent-v1.png +0 -0
  801. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/text-v1.png +0 -0
  802. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/thumbnails-v1.png +0 -0
  803. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/thunder-v1.png +0 -0
  804. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/time-v1.png +0 -0
  805. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/toolbox-v1.png +0 -0
  806. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/top-v1.png +0 -0
  807. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/treasure-v1.png +0 -0
  808. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/trophy-v1.png +0 -0
  809. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/twitter-v1.png +0 -0
  810. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/ufo-v1.png +0 -0
  811. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/unlock-v1.png +0 -0
  812. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/up-v1.png +0 -0
  813. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/upload-v1.png +0 -0
  814. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/user-v1.png +0 -0
  815. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/video-v1.png +0 -0
  816. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/volume-mute-v1.png +0 -0
  817. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/volume-v1.png +0 -0
  818. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/wallet-v1.png +0 -0
  819. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/warning-v1.png +0 -0
  820. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/water-v1.png +0 -0
  821. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/wifi-v1.png +0 -0
  822. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/youtube-v1.png +0 -0
  823. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/zoom-in-v1.png +0 -0
  824. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/zoom-out-v1.png +0 -0
  825. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/icon-add-friend-v1.png +0 -0
  826. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/icon-card-v1.png +0 -0
  827. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/icon-check-v1.png +0 -0
  828. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/icon-game-v1.png +0 -0
  829. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/icon-refresh-v1.png +0 -0
  830. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/icon-target-v1.png +0 -0
  831. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/icon-user-v1.png +0 -0
  832. package/dist/assets/game/ui/clay/phase03-clay-kit/inputs/input-entered-v1.png +0 -0
  833. package/dist/assets/game/ui/clay/phase03-clay-kit/inputs/input-entered-v2.png +0 -0
  834. package/dist/assets/game/ui/clay/phase03-clay-kit/inputs/input-error-v1.png +0 -0
  835. package/dist/assets/game/ui/clay/phase03-clay-kit/inputs/input-error-v2.png +0 -0
  836. package/dist/assets/game/ui/clay/phase03-clay-kit/inputs/input-required-v1.png +0 -0
  837. package/dist/assets/game/ui/clay/phase03-clay-kit/inputs/input-required-v2.png +0 -0
  838. package/dist/assets/game/ui/clay/phase03-clay-kit/inputs/input-typing-v1.png +0 -0
  839. package/dist/assets/game/ui/clay/phase03-clay-kit/inputs/input-typing-v2.png +0 -0
  840. package/dist/assets/game/ui/clay/phase03-clay-kit/panels/popup-frame-v1.png +0 -0
  841. package/dist/assets/game/ui/clay/phase03-clay-kit/panels/settings-frame-v1.png +0 -0
  842. package/dist/assets/game/ui/clay/phase03-clay-kit/screens/00_title-v1.png +0 -0
  843. package/dist/assets/game/ui/clay/phase03-clay-kit/screens/01_login-v1.png +0 -0
  844. package/dist/assets/game/ui/clay/phase03-clay-kit/screens/03_stage-v1.png +0 -0
  845. package/dist/assets/game/ui/clay/phase03-clay-kit/screens/04_stageready-v1.png +0 -0
  846. package/dist/assets/game/ui/clay/phase03-clay-kit/screens/05_complete-v1.png +0 -0
  847. package/dist/assets/game/ui/clay/phase03-clay-kit/screens/06_lose-v1.png +0 -0
  848. package/dist/liquidGooeySpring-WwyGKGPL.js +0 -450
package/dist/index.d.ts CHANGED
@@ -1,22 +1,21 @@
1
+ import { AnchorHTMLAttributes } from 'react';
1
2
  import { ButtonHTMLAttributes } from 'react';
3
+ import { ComponentType } from 'react';
2
4
  import { CSSProperties } from 'react';
3
5
  import { ForwardRefExoticComponent } from 'react';
4
6
  import { HTMLAttributes } from 'react';
5
7
  import { InputHTMLAttributes } from 'react';
8
+ import { JSX } from 'react';
6
9
  import { ReactNode } from 'react';
10
+ import { Ref } from 'react';
7
11
  import { RefAttributes } from 'react';
8
12
  import { SelectHTMLAttributes } from 'react';
13
+ import { SVGProps } from 'react';
9
14
  import { TextareaHTMLAttributes } from 'react';
10
15
 
11
- /** Opt in to placeholders on purpose, and stop being told about it. */
12
- export declare function acknowledgeClayPlaceholders(): void;
16
+ declare type ActionElement = HTMLButtonElement | HTMLAnchorElement;
13
17
 
14
- export declare interface BendTuning {
15
- /** Vertical bow strength, 0..1. */
16
- vertical?: number;
17
- /** Horizontal cap deformation, 0..1. */
18
- horizontal?: number;
19
- }
18
+ declare type ActionProps = ButtonAction | LinkAction;
20
19
 
21
20
  declare interface BlobShape {
22
21
  /** Outward bulge, in px. 0 gives the plain rounded rectangle. */
@@ -29,951 +28,263 @@ declare interface BlobShape {
29
28
  readonly phase?: number;
30
29
  }
31
30
 
32
- export declare const CLAY_ASSET_BASE_PATH: "/assets/game/ui/clay/phase03-clay-kit";
33
-
34
- export declare const CLAY_ASSET_SIZE_TOKENS: {
35
- readonly iconSm: "var(--game-ui-asset-icon-sm)";
36
- readonly iconMd: "var(--game-ui-asset-icon-md)";
37
- readonly iconLg: "var(--game-ui-asset-icon-lg)";
38
- readonly iconXl: "var(--game-ui-asset-icon-xl)";
39
- readonly buttonSkinMinWidth: "var(--game-ui-asset-button-min-width)";
40
- readonly cardFanWidth: "var(--game-ui-asset-card-fan-width)";
41
- readonly stageTileMinHeight: "var(--game-ui-stage-tile-min-height)";
42
- readonly terrainSwatchSize: "var(--game-ui-terrain-swatch-size)";
43
- readonly terrainToolHitSize: "var(--game-ui-terrain-tool-hit-size)";
44
- readonly buildRailCardSize: "var(--game-ui-build-rail-card-size)";
45
- readonly brushNumberWidth: "var(--game-ui-brush-number-width)";
31
+ declare type ButtonAction = ButtonHTMLAttributes<HTMLButtonElement> & {
32
+ href?: undefined;
33
+ linkComponent?: undefined;
34
+ target?: never;
35
+ rel?: never;
36
+ download?: never;
46
37
  };
47
38
 
48
- export declare const CLAY_ASSETS: {
49
- buttons: {
50
- primary: string;
51
- blue: string;
52
- brown: string;
53
- green: string;
54
- purple: string;
55
- red: string;
56
- };
57
- panels: {
58
- popup: string;
59
- commonTitle: string;
60
- language: string;
61
- };
62
- controls: {
63
- switchOn: string;
64
- switchOff: string;
65
- slider: string;
66
- tabSelected: string;
67
- tabNormal: string;
68
- };
69
- icons: Record<ClayIconName, string>;
70
- catalog: {
71
- manifest: string;
72
- sourceCatalog: string;
73
- contactSheetCommon: string;
74
- contactSheetComponents: string;
75
- contactSheetFunction: string;
76
- };
77
- };
39
+ declare type CornerRadii = [number, number, number, number];
78
40
 
79
- export declare const CLAY_COLOR_TOKENS: {
80
- readonly ink: "#3b2d23";
81
- readonly inkMuted: "#786250";
82
- readonly parchment: "#fff8ec";
83
- readonly parchmentDeep: "#f4e2c6";
84
- readonly cream: "#f3e8d8";
85
- readonly wood: "#6c4f38";
86
- readonly woodDeep: "#3a2518";
87
- readonly honey: "#f2b35c";
88
- readonly orange: "#e8743b";
89
- readonly teal: "#1d9a8b";
90
- readonly green: "#4f9d6b";
91
- readonly mint: "#7ee0b6";
92
- readonly berry: "#9b6dd6";
93
- readonly red: "#d85a45";
94
- readonly sky: "#5ca6d8";
95
- readonly shadow: "rgba(76, 52, 28, 0.24)";
96
- readonly glass: "rgba(255, 248, 236, 0.82)";
97
- readonly nightGlass: "rgba(31, 24, 18, 0.76)";
98
- /** Official HUD-on-scene glass fill (matches SupaLuv stage chrome). */
99
- readonly overlayGlass: "rgba(12, 14, 20, 0.72)";
100
- readonly overlayGlassText: "#fff6ee";
101
- /** Liquid-metal plate fill (light). Dedicated so it cannot inherit ink-deep, which inverts on night. */
102
- readonly liquidMetalFace: "#3a2518";
103
- readonly liquidMetalInk: "#fff8ec";
104
- };
41
+ declare interface EvolveOptions {
42
+ /** Spring driving the liquid mass's centre. */
43
+ massStiffness?: number;
44
+ massDamping?: number;
45
+ /** Spring driving width and height. */
46
+ sizeStiffness?: number;
47
+ sizeDamping?: number;
48
+ /** Spring driving the corner radius. */
49
+ radiusStiffness?: number;
50
+ radiusDamping?: number;
51
+ /** Maximum content cross-blur during the morph, in px. */
52
+ contentBlur?: number;
53
+ /** 0..1 droplet roundness during a shape transition. */
54
+ roundness?: number;
55
+ /** Corner-forming timeline. */
56
+ cornerDuration?: number;
57
+ cornerDelay?: number;
58
+ cornerEase?: string;
59
+ /** Ramp-in time for the droplet lead, in ms. */
60
+ anticipation?: number;
61
+ /** Maximum droplet lead toward the destination, in px. */
62
+ travel?: number;
63
+ }
105
64
 
106
- export declare const CLAY_ELEVATION_TOKENS: {
107
- readonly button: "var(--game-ui-shadow-button)";
108
- readonly panel: "var(--game-ui-shadow-panel)";
109
- readonly modal: "var(--game-ui-shadow-modal)";
110
- readonly inset: "var(--game-ui-shadow-inset)";
111
- readonly stroke: "var(--game-ui-stroke)";
112
- };
65
+ export declare function FirstSessionOnboarding({ labels, onDismiss, open, }: FirstSessionOnboardingProps): ReactNode;
66
+
67
+ export declare interface FirstSessionOnboardingLabels {
68
+ badge: string;
69
+ body: string;
70
+ skip: string;
71
+ start: string;
72
+ steps: readonly FirstSessionOnboardingStep[];
73
+ title: string;
74
+ }
113
75
 
114
- export declare const CLAY_GAME_SPRITE_NAMES: ClayGameSpriteName[];
76
+ export declare interface FirstSessionOnboardingProps {
77
+ labels: FirstSessionOnboardingLabels;
78
+ onDismiss: () => void;
79
+ open: boolean;
80
+ }
115
81
 
116
- /**
117
- * Decorative game-content sprites — sculpted clay objects from the same source
118
- * pack that read as *game content* (loot, weapons, shields, potions, currency
119
- * variants) rather than UI affordances. They are deliberately kept OUT of
120
- * CLAY_ICON_VARIANTS so the semantic icon API stays a clean, product-agnostic UI
121
- * vocabulary. Reach for these in reward popups, inventories, win screens, or
122
- * decorative flourishes — never for buttons or toolbars. Game family only; these
123
- * have no flat line equivalents.
124
- */
125
- export declare const CLAY_GAME_SPRITES: {
126
- anvil: string;
127
- arrow: string;
128
- bomb: string;
129
- candle: string;
130
- chicken: string;
131
- giftBlue: string;
132
- hammer: string;
133
- horn: string;
134
- horseshoe: string;
135
- letter: string;
136
- medalBronze: string;
137
- medalSilver: string;
138
- pickaxe: string;
139
- potionPurple: string;
140
- potionRed: string;
141
- purpleGem: string;
142
- shieldA: string;
143
- shieldB: string;
144
- shieldC: string;
145
- shieldD: string;
146
- skull: string;
147
- soulGem: string;
148
- swordA: string;
149
- swordB: string;
150
- talaria: string;
151
- treasure: string;
152
- };
82
+ export declare interface FirstSessionOnboardingStep {
83
+ body: string;
84
+ title: string;
85
+ }
153
86
 
154
- export declare const CLAY_ICON_NAMES: ClayIconName[];
87
+ export declare const GAME_ICON_NAMES: GameIconName[];
155
88
 
156
- export declare const CLAY_ICON_VARIANTS: {
157
- ai: {
158
- line: string;
89
+ declare const GAME_ICONS: {
90
+ readonly ai: {
91
+ readonly name: "ai";
92
+ readonly paths: readonly ["M12 18V5", "M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4", "M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5", "M17.997 5.125a4 4 0 0 1 2.526 5.77", "M18 18a4 4 0 0 0 2-7.464", "M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517", "M6 18a4 4 0 0 1-2-7.464", "M6.003 5.125a4 4 0 0 0-2.526 5.77"];
159
93
  };
160
- alert: {
161
- game: string;
162
- line: string;
94
+ readonly alert: {
95
+ readonly name: "alert";
96
+ readonly paths: readonly ["m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3", "M12 9v4", "M12 17h.01"];
163
97
  };
164
- card: {
165
- line: string;
98
+ readonly card: {
99
+ readonly name: "card";
100
+ readonly paths: readonly ["M4 5H20a2 2 0 0 1 2 2V17a2 2 0 0 1 -2 2H4a2 2 0 0 1 -2 -2V7a2 2 0 0 1 2 -2Z", "M2 10L22 10", "M6 14h2"];
166
101
  };
167
- chat: {
168
- line: string;
102
+ readonly chat: {
103
+ readonly name: "chat";
104
+ readonly paths: readonly ["M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719"];
169
105
  };
170
- check: {
171
- line: string;
106
+ readonly check: {
107
+ readonly name: "check";
108
+ readonly paths: readonly ["M20 6 9 17l-5-5"];
172
109
  };
173
- close: {
174
- game: string;
175
- line: string;
110
+ readonly close: {
111
+ readonly name: "close";
112
+ readonly paths: readonly ["M18 6 6 18", "m6 6 12 12"];
176
113
  };
177
- coin: {
178
- game: string;
179
- line: string;
114
+ readonly coin: {
115
+ readonly name: "coin";
116
+ readonly paths: readonly ["M13.744 17.736a6 6 0 1 1-7.48-7.48", "M15 6h1v4", "m6.134 14.768.866-.5 2 3.464", "M10 8a6 6 0 1 0 12 0a6 6 0 1 0 -12 0"];
180
117
  };
181
- compass: {
182
- line: string;
118
+ readonly compass: {
119
+ readonly name: "compass";
120
+ readonly paths: readonly ["M2 12a10 10 0 1 0 20 0a10 10 0 1 0 -20 0", "m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z"];
183
121
  };
184
- copy: {
185
- line: string;
122
+ readonly copy: {
123
+ readonly name: "copy";
124
+ readonly paths: readonly ["M10 8H20a2 2 0 0 1 2 2V20a2 2 0 0 1 -2 2H10a2 2 0 0 1 -2 -2V10a2 2 0 0 1 2 -2Z", "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"];
186
125
  };
187
- crown: {
188
- game: string;
189
- line: string;
126
+ readonly crown: {
127
+ readonly name: "crown";
128
+ readonly paths: readonly ["M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z", "M5 21h14"];
190
129
  };
191
- energy: {
192
- game: string;
193
- line: string;
130
+ readonly energy: {
131
+ readonly name: "energy";
132
+ readonly paths: readonly ["M15.914 4a1.5 1.5 0 00-2.474-1.561l-9 9A1.5 1.5 0 005.5 14h4.002a.5.5 0 01.471.666L8.086 20a1.5 1.5 0 002.475 1.56l9-9A1.5 1.5 0 0018.5 10h-3.997a.5.5 0 01-.472-.667z"];
194
133
  };
195
- gem: {
196
- game: string;
197
- line: string;
134
+ readonly gem: {
135
+ readonly name: "gem";
136
+ readonly paths: readonly ["M10.5 3 8 9l4 13 4-13-2.5-6", "M17 3a2 2 0 0 1 1.6.8l3 4a2 2 0 0 1 .013 2.382l-7.99 10.986a2 2 0 0 1-3.247 0l-7.99-10.986A2 2 0 0 1 2.4 7.8l2.998-3.997A2 2 0 0 1 7 3z", "M2 9h20"];
198
137
  };
199
- gift: {
200
- game: string;
201
- line: string;
138
+ readonly gift: {
139
+ readonly name: "gift";
140
+ readonly paths: readonly ["M12 7v14", "M20 11v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8", "M7.5 7a1 1 0 0 1 0-5A4.8 8 0 0 1 12 7a4.8 8 0 0 1 4.5-5 1 1 0 0 1 0 5", "M4 7H20a1 1 0 0 1 1 1V10a1 1 0 0 1 -1 1H4a1 1 0 0 1 -1 -1V8a1 1 0 0 1 1 -1Z"];
202
141
  };
203
- globe: {
204
- line: string;
142
+ readonly globe: {
143
+ readonly name: "globe";
144
+ readonly paths: readonly ["M2 12a10 10 0 1 0 20 0a10 10 0 1 0 -20 0", "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20", "M2 12h20"];
205
145
  };
206
- history: {
207
- line: string;
146
+ readonly history: {
147
+ readonly name: "history";
148
+ readonly paths: readonly ["M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", "M3 3v5h5", "M12 7v5l4 2"];
208
149
  };
209
- home: {
210
- line: string;
150
+ readonly redo: {
151
+ readonly name: "redo";
152
+ readonly paths: readonly ["M21 7v6h-6", "M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7"];
211
153
  };
212
- hourglass: {
213
- game: string;
214
- line: string;
154
+ readonly undo: {
155
+ readonly name: "undo";
156
+ readonly paths: readonly ["M3 7v6h6", "M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13"];
215
157
  };
216
- laurel: {
217
- game: string;
158
+ readonly home: {
159
+ readonly name: "home";
160
+ readonly paths: readonly ["M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8", "M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"];
218
161
  };
219
- lock: {
220
- game: string;
221
- line: string;
162
+ readonly hourglass: {
163
+ readonly name: "hourglass";
164
+ readonly paths: readonly ["M5 22h14", "M5 2h14", "M17 22v-4.172a2 2 0 0 0-.586-1.414L12 12l-4.414 4.414A2 2 0 0 0 7 17.828V22", "M7 2v4.172a2 2 0 0 0 .586 1.414L12 12l4.414-4.414A2 2 0 0 0 17 6.172V2"];
222
165
  };
223
- lucky: {
224
- game: string;
166
+ readonly laurel: {
167
+ readonly name: "laurel";
168
+ readonly paths: readonly ["m15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526", "M6 8a6 6 0 1 0 12 0a6 6 0 1 0 -12 0"];
225
169
  };
226
- mail: {
227
- game: string;
228
- line: string;
170
+ readonly lock: {
171
+ readonly name: "lock";
172
+ readonly paths: readonly ["M5 11H19a2 2 0 0 1 2 2V20a2 2 0 0 1 -2 2H5a2 2 0 0 1 -2 -2V13a2 2 0 0 1 2 -2Z", "M7 11V7a5 5 0 0 1 10 0v4"];
229
173
  };
230
- medal: {
231
- game: string;
232
- line: string;
174
+ readonly lucky: {
175
+ readonly name: "lucky";
176
+ readonly paths: readonly ["M16.17 7.83 2 22", "M4.02 12a2.827 2.827 0 1 1 3.81-4.17A2.827 2.827 0 1 1 12 4.02a2.827 2.827 0 1 1 4.17 3.81A2.827 2.827 0 1 1 19.98 12a2.827 2.827 0 1 1-3.81 4.17A2.827 2.827 0 1 1 12 19.98a2.827 2.827 0 1 1-4.17-3.81A1 1 0 1 1 4 12", "m7.83 7.83 8.34 8.34"];
233
177
  };
234
- mission: {
235
- game: string;
178
+ readonly mail: {
179
+ readonly name: "mail";
180
+ readonly paths: readonly ["m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7", "M4 4H20a2 2 0 0 1 2 2V18a2 2 0 0 1 -2 2H4a2 2 0 0 1 -2 -2V6a2 2 0 0 1 2 -2Z"];
236
181
  };
237
- mobile: {
238
- line: string;
182
+ readonly medal: {
183
+ readonly name: "medal";
184
+ readonly paths: readonly ["M7.21 15 2.66 7.14a2 2 0 0 1 .13-2.2L4.4 2.8A2 2 0 0 1 6 2h12a2 2 0 0 1 1.6.8l1.6 2.14a2 2 0 0 1 .14 2.2L16.79 15", "M11 12 5.12 2.2", "m13 12 5.88-9.8", "M8 7h8", "M7 17a5 5 0 1 0 10 0a5 5 0 1 0 -10 0", "M12 18v-2h-.5"];
239
185
  };
240
- portal: {
241
- game: string;
242
- line: string;
186
+ readonly mission: {
187
+ readonly name: "mission";
188
+ readonly paths: readonly ["M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528"];
243
189
  };
244
- scroll: {
245
- game: string;
246
- line: string;
190
+ readonly mobile: {
191
+ readonly name: "mobile";
192
+ readonly paths: readonly ["M7 2H17a2 2 0 0 1 2 2V20a2 2 0 0 1 -2 2H7a2 2 0 0 1 -2 -2V4a2 2 0 0 1 2 -2Z", "M12 18h.01"];
247
193
  };
248
- settings: {
249
- game: string;
250
- line: string;
194
+ readonly portal: {
195
+ readonly name: "portal";
196
+ readonly paths: readonly ["M20.341 6.484A10 10 0 0 1 10.266 21.85", "M3.659 17.516A10 10 0 0 1 13.74 2.152", "M9 12a3 3 0 1 0 6 0a3 3 0 1 0 -6 0", "M17 5a2 2 0 1 0 4 0a2 2 0 1 0 -4 0", "M3 19a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"];
251
197
  };
252
- shirt: {
253
- line: string;
198
+ readonly scroll: {
199
+ readonly name: "scroll";
200
+ readonly paths: readonly ["M19 17V5a2 2 0 0 0-2-2H4", "M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3"];
254
201
  };
255
- shop: {
256
- game: string;
257
- line: string;
202
+ readonly settings: {
203
+ readonly name: "settings";
204
+ readonly paths: readonly ["M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915", "M9 12a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"];
258
205
  };
259
- smile: {
260
- line: string;
206
+ readonly shirt: {
207
+ readonly name: "shirt";
208
+ readonly paths: readonly ["M20.38 3.46 16 2a4 4 0 0 1-8 0L3.62 3.46a2 2 0 0 0-1.34 2.23l.58 3.47a1 1 0 0 0 .99.84H6v10c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V10h2.15a1 1 0 0 0 .99-.84l.58-3.47a2 2 0 0 0-1.34-2.23z"];
261
209
  };
262
- timer: {
263
- game: string;
264
- line: string;
210
+ readonly shop: {
211
+ readonly name: "shop";
212
+ readonly paths: readonly ["M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5", "M17.774 10.31a1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.451 0 1.12 1.12 0 0 0-1.548 0 2.5 2.5 0 0 1-3.452 0 1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.77-3.248l2.889-4.184A2 2 0 0 1 7 2h10a2 2 0 0 1 1.653.873l2.895 4.192a2.5 2.5 0 0 1-3.774 3.244", "M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05"];
265
213
  };
266
- trophy: {
267
- game: string;
268
- line: string;
214
+ readonly smile: {
215
+ readonly name: "smile";
216
+ readonly paths: readonly ["M15 10V9", "M16.472 15a6 6 0 01-8.943 0", "M9 10V9", "M2 12a10 10 0 1 0 20 0a10 10 0 1 0 -20 0"];
269
217
  };
270
- undo: {
271
- line: string;
218
+ readonly timer: {
219
+ readonly name: "timer";
220
+ readonly paths: readonly ["M10 2L14 2", "M12 14L15 11", "M4 14a8 8 0 1 0 16 0a8 8 0 1 0 -16 0"];
272
221
  };
273
- redo: {
274
- line: string;
222
+ readonly trophy: {
223
+ readonly name: "trophy";
224
+ readonly paths: readonly ["M10 14.66V17a1 1 0 0 1-1 1 2 2 0 0 0-2 2v2", "M14 14.66V17a1 1 0 0 0 1 1 2 2 0 0 1 2 2v2", "M17.916 10H19.5A2.5 2.5 0 0 0 22 7.5V5a1 1 0 0 0-1-1h-3", "M4 22h16", "M6 9a6 6 0 0 0 12 0V3a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z", "M6.084 10H4.5A2.5 2.5 0 0 1 2 7.5V5a1 1 0 0 1 1-1h3"];
275
225
  };
276
- vote: {
277
- game: string;
278
- line: string;
279
- };
280
- };
281
-
282
- export declare const CLAY_LAYER_TOKENS: {
283
- readonly playfield: "var(--game-ui-z-playfield)";
284
- readonly hud: "var(--game-ui-z-hud)";
285
- readonly sidebar: "var(--game-ui-z-sidebar)";
286
- readonly overlay: "var(--game-ui-z-overlay)";
287
- readonly modal: "var(--game-ui-z-modal)";
288
- readonly toast: "var(--game-ui-z-toast)";
289
- };
290
-
291
- /**
292
- * Token references for the adopted liquid-gooey Move physics. The values are
293
- * deliberately numeric custom properties so a host theme can tune the feel
294
- * without putting physics constants in the engine.
295
- */
296
- declare const CLAY_LIQUID_GOOEY_TOKENS: {
297
- readonly morphShape: "var(--game-ui-liquid-gooey-morph-shape)";
298
- readonly morphSpeed: "var(--game-ui-liquid-gooey-morph-speed)";
299
- readonly morphBounce: "var(--game-ui-liquid-gooey-morph-bounce)";
300
- readonly evolveMassStiffness: "var(--game-ui-liquid-gooey-evolve-mass-stiffness)";
301
- readonly evolveMassDamping: "var(--game-ui-liquid-gooey-evolve-mass-damping)";
302
- readonly evolveSizeStiffness: "var(--game-ui-liquid-gooey-evolve-size-stiffness)";
303
- readonly evolveSizeDamping: "var(--game-ui-liquid-gooey-evolve-size-damping)";
304
- readonly evolveRadiusStiffness: "var(--game-ui-liquid-gooey-evolve-radius-stiffness)";
305
- readonly evolveRadiusDamping: "var(--game-ui-liquid-gooey-evolve-radius-damping)";
306
- readonly evolveContentBlur: "var(--game-ui-liquid-gooey-evolve-content-blur)";
307
- readonly evolveRoundness: "var(--game-ui-liquid-gooey-evolve-roundness)";
308
- readonly evolveCornerDuration: "var(--game-ui-liquid-gooey-evolve-corner-duration)";
309
- readonly evolveCornerDelay: "var(--game-ui-liquid-gooey-evolve-corner-delay)";
310
- readonly evolveCornerEase: "var(--game-ui-liquid-gooey-evolve-corner-ease)";
311
- readonly evolveAnticipation: "var(--game-ui-liquid-gooey-evolve-anticipation)";
312
- readonly evolveTravel: "var(--game-ui-liquid-gooey-evolve-travel)";
313
- readonly contentBlurAreaMultiplier: "var(--game-ui-liquid-gooey-content-blur-area-multiplier)";
314
- readonly bendVertical: "var(--game-ui-liquid-gooey-bend-vertical)";
315
- readonly bendHorizontal: "var(--game-ui-liquid-gooey-bend-horizontal)";
316
- readonly bendVelocityVertical: "var(--game-ui-liquid-gooey-bend-velocity-vertical)";
317
- readonly bendVelocityHorizontal: "var(--game-ui-liquid-gooey-bend-velocity-horizontal)";
318
- readonly bendSmoothing: "var(--game-ui-liquid-gooey-bend-smoothing)";
319
- readonly bendActiveThreshold: "var(--game-ui-liquid-gooey-bend-active-threshold)";
320
- readonly bendVerticalCap: "var(--game-ui-liquid-gooey-bend-vertical-cap)";
321
- readonly bendHorizontalCap: "var(--game-ui-liquid-gooey-bend-horizontal-cap)";
322
- readonly bendRadiusMin: "var(--game-ui-liquid-gooey-bend-radius-min)";
323
- readonly bendRadiusMax: "var(--game-ui-liquid-gooey-bend-radius-max)";
324
- readonly bendLeadingCapFactor: "var(--game-ui-liquid-gooey-bend-leading-cap-factor)";
325
- readonly bendTrailingCapFactor: "var(--game-ui-liquid-gooey-bend-trailing-cap-factor)";
326
- readonly moveStiffness: "var(--game-ui-liquid-gooey-move-stiffness)";
327
- readonly moveDamping: "var(--game-ui-liquid-gooey-move-damping)";
328
- readonly moveStretch: "var(--game-ui-liquid-gooey-move-stretch)";
329
- readonly moveTail: "var(--game-ui-liquid-gooey-move-tail)";
330
- readonly moveForce: "var(--game-ui-liquid-gooey-move-force)";
331
- readonly moveTailSpringStiffness: "var(--game-ui-liquid-gooey-move-tail-spring-stiffness)";
332
- readonly moveTailSpringDamping: "var(--game-ui-liquid-gooey-move-tail-spring-damping)";
333
- readonly moveStretchSpeed: "var(--game-ui-liquid-gooey-move-stretch-speed)";
334
- readonly moveStretchSquash: "var(--game-ui-liquid-gooey-move-stretch-squash)";
335
- readonly moveSpeedThreshold: "var(--game-ui-liquid-gooey-move-speed-threshold)";
336
- readonly moveTailOnsetSpeed: "var(--game-ui-liquid-gooey-move-tail-onset-speed)";
337
- readonly moveTailOnsetRange: "var(--game-ui-liquid-gooey-move-tail-onset-range)";
338
- readonly moveTailRamp: "var(--game-ui-liquid-gooey-move-tail-ramp)";
339
- readonly moveTailMinRadius: "var(--game-ui-liquid-gooey-move-tail-min-radius)";
340
- readonly moveTailWobble: "var(--game-ui-liquid-gooey-move-tail-wobble)";
341
- readonly moveTailPhaseSpeed: "var(--game-ui-liquid-gooey-move-tail-phase-speed)";
342
- readonly moveTailMidpointA: "var(--game-ui-liquid-gooey-move-tail-midpoint-a)";
343
- readonly moveTailMidpointB: "var(--game-ui-liquid-gooey-move-tail-midpoint-b)";
344
- readonly moveTailMidRadiusA: "var(--game-ui-liquid-gooey-move-tail-mid-radius-a)";
345
- readonly moveTailMidRadiusB: "var(--game-ui-liquid-gooey-move-tail-mid-radius-b)";
346
- readonly moveTailWobblePhase: "var(--game-ui-liquid-gooey-move-tail-wobble-phase)";
347
- readonly moveMinPerpendicular: "var(--game-ui-liquid-gooey-move-min-perpendicular)";
348
- readonly moveLagBase: "var(--game-ui-liquid-gooey-move-lag-base)";
349
- readonly moveLagForce: "var(--game-ui-liquid-gooey-move-lag-force)";
350
- readonly moveSettleDistance: "var(--game-ui-liquid-gooey-move-settle-distance)";
351
- readonly moveSettleSpeed: "var(--game-ui-liquid-gooey-move-settle-speed)";
352
- readonly moveIntegrationRate: "var(--game-ui-liquid-gooey-move-integration-rate)";
353
- readonly waviness: "var(--game-ui-liquid-gooey-waviness)";
354
- readonly wavinessFreq: "var(--game-ui-liquid-gooey-waviness-freq)";
355
- readonly meltBlur: "var(--game-ui-liquid-gooey-melt-blur)";
356
- readonly meltContrast: "var(--game-ui-liquid-gooey-melt-contrast)";
357
- readonly meltReach: "var(--game-ui-liquid-gooey-melt-reach)";
358
- readonly meltFade: "var(--game-ui-liquid-gooey-melt-fade)";
359
- readonly meltWarp: "var(--game-ui-liquid-gooey-melt-warp)";
360
- readonly meltMix: "var(--game-ui-liquid-gooey-melt-mix)";
361
- readonly meltMixBlur: "var(--game-ui-liquid-gooey-melt-mix-blur)";
362
- readonly meltGravity: "var(--game-ui-liquid-gooey-melt-gravity)";
363
- readonly meltWaviness: "var(--game-ui-liquid-gooey-melt-waviness)";
364
- readonly dissolveBlur: "var(--game-ui-liquid-gooey-dissolve-blur)";
365
- readonly dissolveWarp: "var(--game-ui-liquid-gooey-dissolve-warp)";
366
- readonly dissolvePull: "var(--game-ui-liquid-gooey-dissolve-pull)";
367
- readonly dissolveRange: "var(--game-ui-liquid-gooey-dissolve-range)";
368
- readonly dissolveZone: "var(--game-ui-liquid-gooey-dissolve-zone)";
369
- readonly dissolveMix: "var(--game-ui-liquid-gooey-dissolve-mix)";
370
- readonly dissolveGravity: "var(--game-ui-liquid-gooey-dissolve-gravity)";
371
- readonly dissolveTaper: "var(--game-ui-liquid-gooey-dissolve-taper)";
372
- readonly dissolveWarpFreq: "var(--game-ui-liquid-gooey-dissolve-warp-freq)";
373
- readonly dissolveFlowSpeed: "var(--game-ui-liquid-gooey-dissolve-flow-speed)";
374
- readonly dissolveDetail: "var(--game-ui-liquid-gooey-dissolve-detail)";
375
- readonly dissolveReleaseMs: "var(--game-ui-liquid-gooey-dissolve-release-ms)";
376
- readonly dissolveFadeMs: "var(--game-ui-liquid-gooey-dissolve-fade-ms)";
377
- readonly dissolveStrength: "var(--game-ui-liquid-gooey-dissolve-strength)";
378
- readonly dissolveSink: "var(--game-ui-liquid-gooey-dissolve-sink)";
379
- readonly dissolveSeamBlur: "var(--game-ui-liquid-gooey-dissolve-seam-blur)";
380
- };
381
- export { CLAY_LIQUID_GOOEY_TOKENS }
382
- export { CLAY_LIQUID_GOOEY_TOKENS as GAME_UI_LIQUID_GOOEY_TOKENS }
383
-
384
- /**
385
- * Effect knobs for `<LiquidMetalButton>`. Face/ink are real colours (both
386
- * themes must set them); accent aliases `--game-ui-accent` so a host can
387
- * retint just this button without rebranding every primary.
388
- */
389
- declare const CLAY_LIQUID_METAL_TOKENS: {
390
- readonly face: "var(--game-ui-liquid-metal-face)";
391
- readonly ink: "var(--game-ui-liquid-metal-ink)";
392
- readonly accent: "var(--game-ui-liquid-metal-accent)";
393
- readonly dispersion: "var(--game-ui-liquid-metal-dispersion)";
394
- readonly sweepSpeed: "var(--game-ui-liquid-metal-sweep-speed)";
395
- readonly rest: "var(--game-ui-liquid-metal-rest)";
396
- readonly bloom: "var(--game-ui-liquid-metal-bloom)";
397
- };
398
- export { CLAY_LIQUID_METAL_TOKENS }
399
- export { CLAY_LIQUID_METAL_TOKENS as GAME_UI_LIQUID_METAL_TOKENS }
400
-
401
- export declare const CLAY_MOTION_TOKENS: {
402
- readonly fast: "var(--game-ui-motion-fast)";
403
- readonly base: "var(--game-ui-motion-base)";
404
- readonly slow: "var(--game-ui-motion-slow)";
405
- readonly easingPop: "var(--game-ui-ease-pop)";
406
- readonly easingSoft: "var(--game-ui-ease-soft)";
407
- readonly reducedMotion: "var(--game-ui-reduced-motion-policy)";
408
- };
409
-
410
- /**
411
- * Semantic CSS vars for the official overlay-glass HUD tone
412
- * (`data-game-ui-tone="glass"` / `.game-ui-overlay-scope`).
413
- */
414
- declare const CLAY_OVERLAY_GLASS_TOKENS: {
415
- readonly bg: "var(--game-ui-overlay-glass-bg)";
416
- readonly bgHover: "var(--game-ui-overlay-glass-bg-hover)";
417
- readonly bgStrong: "var(--game-ui-overlay-glass-bg-strong)";
418
- readonly bgPanel: "var(--game-ui-overlay-glass-bg-panel)";
419
- readonly border: "var(--game-ui-overlay-glass-border)";
420
- readonly borderHover: "var(--game-ui-overlay-glass-border-hover)";
421
- readonly text: "var(--game-ui-overlay-glass-text)";
422
- readonly textMuted: "var(--game-ui-overlay-glass-text-muted)";
423
- readonly blur: "var(--game-ui-overlay-glass-blur)";
424
- readonly focusRing: "var(--game-ui-overlay-glass-focus-ring)";
425
- readonly primaryFill: "var(--game-ui-overlay-glass-primary-fill)";
426
- };
427
- export { CLAY_OVERLAY_GLASS_TOKENS }
428
- export { CLAY_OVERLAY_GLASS_TOKENS as GAME_UI_OVERLAY_GLASS_TOKENS }
429
-
430
- export declare const CLAY_RADIUS_TOKENS: {
431
- readonly bead: "var(--game-ui-radius-bead)";
432
- readonly control: "var(--game-ui-radius-control)";
433
- readonly card: "var(--game-ui-radius-card)";
434
- readonly panel: "var(--game-ui-radius-panel)";
435
- readonly modal: "var(--game-ui-radius-modal)";
436
- };
437
-
438
- export declare const CLAY_SCROLLBAR_TOKENS: {
439
- readonly size: "var(--game-ui-scrollbar-size)";
440
- readonly track: "var(--game-ui-scrollbar-track)";
441
- readonly thumb: "var(--game-ui-scrollbar-thumb)";
442
- readonly thumbHover: "var(--game-ui-scrollbar-thumb-hover)";
443
- };
444
-
445
- export declare const CLAY_SEMANTIC_TOKENS: {
446
- readonly background: "var(--game-ui-bg)";
447
- readonly playfieldScrim: "var(--game-ui-playfield-scrim)";
448
- readonly surface: "var(--game-ui-surface)";
449
- readonly surfaceRaised: "var(--game-ui-surface-raised)";
450
- readonly panel: "var(--game-ui-panel)";
451
- readonly panelStrong: "var(--game-ui-panel-strong)";
452
- readonly text: "var(--game-ui-text)";
453
- readonly textMuted: "var(--game-ui-text-muted)";
454
- readonly accent: "var(--game-ui-accent)";
455
- readonly accentContrast: "var(--game-ui-accent-contrast)";
456
- readonly secondary: "var(--game-ui-secondary)";
457
- readonly success: "var(--game-ui-success)";
458
- readonly danger: "var(--game-ui-danger)";
459
- readonly warning: "var(--game-ui-warning)";
460
- readonly focusRing: "var(--game-ui-focus-ring)";
461
- readonly borderSubtle: "var(--game-ui-border-subtle)";
462
- readonly borderStrong: "var(--game-ui-border-strong)";
463
- readonly disabled: "var(--game-ui-disabled)";
464
- };
465
-
466
- export declare const CLAY_SPACE_TOKENS: {
467
- readonly px2: "var(--game-ui-space-2)";
468
- readonly px4: "var(--game-ui-space-4)";
469
- readonly px6: "var(--game-ui-space-6)";
470
- readonly px8: "var(--game-ui-space-8)";
471
- readonly px10: "var(--game-ui-space-10)";
472
- readonly px12: "var(--game-ui-space-12)";
473
- readonly px16: "var(--game-ui-space-16)";
474
- readonly px20: "var(--game-ui-space-20)";
475
- readonly px24: "var(--game-ui-space-24)";
476
- readonly px32: "var(--game-ui-space-32)";
477
- readonly safeTop: "var(--game-ui-safe-top)";
478
- readonly safeRight: "var(--game-ui-safe-right)";
479
- readonly safeBottom: "var(--game-ui-safe-bottom)";
480
- readonly safeLeft: "var(--game-ui-safe-left)";
481
- };
482
-
483
- export declare const CLAY_TARGET_TOKENS: {
484
- readonly touchMinimumPx: 44;
485
- readonly touchPrimaryPx: 52;
486
- readonly touchIconPx: 48;
487
- readonly touchRowPx: 46;
488
- readonly adjacentSpacingPx: 8;
489
- readonly mobileLandscapeMinHeightPx: 390;
490
- readonly desktopProofWidthPx: 1440;
491
- readonly desktopProofHeightPx: 900;
492
- readonly mobileLandscapeProofWidthPx: 844;
493
- readonly mobileLandscapeProofHeightPx: 390;
494
- };
495
-
496
- export declare const CLAY_TYPE_TOKENS: {
497
- readonly familyDisplay: "var(--game-ui-font-display)";
498
- readonly familyBody: "var(--game-ui-font-body)";
499
- readonly familyMono: "var(--game-ui-font-mono)";
500
- readonly xs: "var(--game-ui-font-xs)";
501
- readonly sm: "var(--game-ui-font-sm)";
502
- readonly md: "var(--game-ui-font-md)";
503
- readonly lg: "var(--game-ui-font-lg)";
504
- readonly xl: "var(--game-ui-font-xl)";
505
- readonly xxl: "var(--game-ui-font-xxl)";
506
- readonly lineTight: "var(--game-ui-line-tight)";
507
- readonly lineBody: "var(--game-ui-line-body)";
508
- readonly reading: "var(--game-ui-font-reading)";
509
- readonly lineReading: "var(--game-ui-line-reading)";
510
- readonly measureReading: "var(--game-ui-measure-reading)";
511
- readonly weightBody: "var(--game-ui-weight-body)";
512
- readonly weightStrong: "var(--game-ui-weight-strong)";
513
- readonly weightTitle: "var(--game-ui-weight-title)";
514
- };
515
-
516
- export declare const CLAY_UI_TOKENS: {
517
- readonly colors: {
518
- readonly ink: "#3b2d23";
519
- readonly inkMuted: "#786250";
520
- readonly parchment: "#fff8ec";
521
- readonly parchmentDeep: "#f4e2c6";
522
- readonly cream: "#f3e8d8";
523
- readonly wood: "#6c4f38";
524
- readonly woodDeep: "#3a2518";
525
- readonly honey: "#f2b35c";
526
- readonly orange: "#e8743b";
527
- readonly teal: "#1d9a8b";
528
- readonly green: "#4f9d6b";
529
- readonly mint: "#7ee0b6";
530
- readonly berry: "#9b6dd6";
531
- readonly red: "#d85a45";
532
- readonly sky: "#5ca6d8";
533
- readonly shadow: "rgba(76, 52, 28, 0.24)";
534
- readonly glass: "rgba(255, 248, 236, 0.82)";
535
- readonly nightGlass: "rgba(31, 24, 18, 0.76)";
536
- /** Official HUD-on-scene glass fill (matches SupaLuv stage chrome). */
537
- readonly overlayGlass: "rgba(12, 14, 20, 0.72)";
538
- readonly overlayGlassText: "#fff6ee";
539
- /** Liquid-metal plate fill (light). Dedicated so it cannot inherit ink-deep, which inverts on night. */
540
- readonly liquidMetalFace: "#3a2518";
541
- readonly liquidMetalInk: "#fff8ec";
226
+ readonly vote: {
227
+ readonly name: "vote";
228
+ readonly paths: readonly ["m9 12 2 2 4-4", "M5 7c0-1.1.9-2 2-2h10a2 2 0 0 1 2 2v12H5V7Z", "M22 19H2"];
542
229
  };
543
- readonly semantic: {
544
- readonly background: "var(--game-ui-bg)";
545
- readonly playfieldScrim: "var(--game-ui-playfield-scrim)";
546
- readonly surface: "var(--game-ui-surface)";
547
- readonly surfaceRaised: "var(--game-ui-surface-raised)";
548
- readonly panel: "var(--game-ui-panel)";
549
- readonly panelStrong: "var(--game-ui-panel-strong)";
550
- readonly text: "var(--game-ui-text)";
551
- readonly textMuted: "var(--game-ui-text-muted)";
552
- readonly accent: "var(--game-ui-accent)";
553
- readonly accentContrast: "var(--game-ui-accent-contrast)";
554
- readonly secondary: "var(--game-ui-secondary)";
555
- readonly success: "var(--game-ui-success)";
556
- readonly danger: "var(--game-ui-danger)";
557
- readonly warning: "var(--game-ui-warning)";
558
- readonly focusRing: "var(--game-ui-focus-ring)";
559
- readonly borderSubtle: "var(--game-ui-border-subtle)";
560
- readonly borderStrong: "var(--game-ui-border-strong)";
561
- readonly disabled: "var(--game-ui-disabled)";
230
+ readonly 'arrow-left': {
231
+ readonly name: "arrow-left";
232
+ readonly paths: readonly ["m12 19-7-7 7-7", "M19 12H5"];
562
233
  };
563
- readonly typography: {
564
- readonly familyDisplay: "var(--game-ui-font-display)";
565
- readonly familyBody: "var(--game-ui-font-body)";
566
- readonly familyMono: "var(--game-ui-font-mono)";
567
- readonly xs: "var(--game-ui-font-xs)";
568
- readonly sm: "var(--game-ui-font-sm)";
569
- readonly md: "var(--game-ui-font-md)";
570
- readonly lg: "var(--game-ui-font-lg)";
571
- readonly xl: "var(--game-ui-font-xl)";
572
- readonly xxl: "var(--game-ui-font-xxl)";
573
- readonly lineTight: "var(--game-ui-line-tight)";
574
- readonly lineBody: "var(--game-ui-line-body)";
575
- readonly reading: "var(--game-ui-font-reading)";
576
- readonly lineReading: "var(--game-ui-line-reading)";
577
- readonly measureReading: "var(--game-ui-measure-reading)";
578
- readonly weightBody: "var(--game-ui-weight-body)";
579
- readonly weightStrong: "var(--game-ui-weight-strong)";
580
- readonly weightTitle: "var(--game-ui-weight-title)";
234
+ readonly 'arrow-right': {
235
+ readonly name: "arrow-right";
236
+ readonly paths: readonly ["M5 12h14", "m12 5 7 7-7 7"];
581
237
  };
582
- readonly spacing: {
583
- readonly px2: "var(--game-ui-space-2)";
584
- readonly px4: "var(--game-ui-space-4)";
585
- readonly px6: "var(--game-ui-space-6)";
586
- readonly px8: "var(--game-ui-space-8)";
587
- readonly px10: "var(--game-ui-space-10)";
588
- readonly px12: "var(--game-ui-space-12)";
589
- readonly px16: "var(--game-ui-space-16)";
590
- readonly px20: "var(--game-ui-space-20)";
591
- readonly px24: "var(--game-ui-space-24)";
592
- readonly px32: "var(--game-ui-space-32)";
593
- readonly safeTop: "var(--game-ui-safe-top)";
594
- readonly safeRight: "var(--game-ui-safe-right)";
595
- readonly safeBottom: "var(--game-ui-safe-bottom)";
596
- readonly safeLeft: "var(--game-ui-safe-left)";
238
+ readonly 'chevron-down': {
239
+ readonly name: "chevron-down";
240
+ readonly paths: readonly ["m6 9 6 6 6-6"];
597
241
  };
598
- readonly radius: {
599
- readonly bead: "var(--game-ui-radius-bead)";
600
- readonly control: "var(--game-ui-radius-control)";
601
- readonly card: "var(--game-ui-radius-card)";
602
- readonly panel: "var(--game-ui-radius-panel)";
603
- readonly modal: "var(--game-ui-radius-modal)";
242
+ readonly 'chevron-up': {
243
+ readonly name: "chevron-up";
244
+ readonly paths: readonly ["m18 15-6-6-6 6"];
604
245
  };
605
- readonly scrollbars: {
606
- readonly size: "var(--game-ui-scrollbar-size)";
607
- readonly track: "var(--game-ui-scrollbar-track)";
608
- readonly thumb: "var(--game-ui-scrollbar-thumb)";
609
- readonly thumbHover: "var(--game-ui-scrollbar-thumb-hover)";
246
+ readonly download: {
247
+ readonly name: "download";
248
+ readonly paths: readonly ["M12 15V3", "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", "m7 10 5 5 5-5"];
610
249
  };
611
- readonly elevation: {
612
- readonly button: "var(--game-ui-shadow-button)";
613
- readonly panel: "var(--game-ui-shadow-panel)";
614
- readonly modal: "var(--game-ui-shadow-modal)";
615
- readonly inset: "var(--game-ui-shadow-inset)";
616
- readonly stroke: "var(--game-ui-stroke)";
250
+ readonly external: {
251
+ readonly name: "external";
252
+ readonly paths: readonly ["M15 3h6v6", "M10 14 21 3", "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"];
617
253
  };
618
- readonly motion: {
619
- readonly fast: "var(--game-ui-motion-fast)";
620
- readonly base: "var(--game-ui-motion-base)";
621
- readonly slow: "var(--game-ui-motion-slow)";
622
- readonly easingPop: "var(--game-ui-ease-pop)";
623
- readonly easingSoft: "var(--game-ui-ease-soft)";
624
- readonly reducedMotion: "var(--game-ui-reduced-motion-policy)";
254
+ readonly menu: {
255
+ readonly name: "menu";
256
+ readonly paths: readonly ["M4 5h16", "M4 12h16", "M4 19h16"];
625
257
  };
626
- readonly layers: {
627
- readonly playfield: "var(--game-ui-z-playfield)";
628
- readonly hud: "var(--game-ui-z-hud)";
629
- readonly sidebar: "var(--game-ui-z-sidebar)";
630
- readonly overlay: "var(--game-ui-z-overlay)";
631
- readonly modal: "var(--game-ui-z-modal)";
632
- readonly toast: "var(--game-ui-z-toast)";
258
+ readonly minus: {
259
+ readonly name: "minus";
260
+ readonly paths: readonly ["M5 12h14"];
633
261
  };
634
- readonly targets: {
635
- readonly touchMinimumPx: 44;
636
- readonly touchPrimaryPx: 52;
637
- readonly touchIconPx: 48;
638
- readonly touchRowPx: 46;
639
- readonly adjacentSpacingPx: 8;
640
- readonly mobileLandscapeMinHeightPx: 390;
641
- readonly desktopProofWidthPx: 1440;
642
- readonly desktopProofHeightPx: 900;
643
- readonly mobileLandscapeProofWidthPx: 844;
644
- readonly mobileLandscapeProofHeightPx: 390;
262
+ readonly moon: {
263
+ readonly name: "moon";
264
+ readonly paths: readonly ["M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"];
645
265
  };
646
- readonly assetSizing: {
647
- readonly iconSm: "var(--game-ui-asset-icon-sm)";
648
- readonly iconMd: "var(--game-ui-asset-icon-md)";
649
- readonly iconLg: "var(--game-ui-asset-icon-lg)";
650
- readonly iconXl: "var(--game-ui-asset-icon-xl)";
651
- readonly buttonSkinMinWidth: "var(--game-ui-asset-button-min-width)";
652
- readonly cardFanWidth: "var(--game-ui-asset-card-fan-width)";
653
- readonly stageTileMinHeight: "var(--game-ui-stage-tile-min-height)";
654
- readonly terrainSwatchSize: "var(--game-ui-terrain-swatch-size)";
655
- readonly terrainToolHitSize: "var(--game-ui-terrain-tool-hit-size)";
656
- readonly buildRailCardSize: "var(--game-ui-build-rail-card-size)";
657
- readonly brushNumberWidth: "var(--game-ui-brush-number-width)";
266
+ readonly plus: {
267
+ readonly name: "plus";
268
+ readonly paths: readonly ["M5 12h14", "M12 5v14"];
658
269
  };
659
- readonly overlayGlass: {
660
- readonly bg: "var(--game-ui-overlay-glass-bg)";
661
- readonly bgHover: "var(--game-ui-overlay-glass-bg-hover)";
662
- readonly bgStrong: "var(--game-ui-overlay-glass-bg-strong)";
663
- readonly bgPanel: "var(--game-ui-overlay-glass-bg-panel)";
664
- readonly border: "var(--game-ui-overlay-glass-border)";
665
- readonly borderHover: "var(--game-ui-overlay-glass-border-hover)";
666
- readonly text: "var(--game-ui-overlay-glass-text)";
667
- readonly textMuted: "var(--game-ui-overlay-glass-text-muted)";
668
- readonly blur: "var(--game-ui-overlay-glass-blur)";
669
- readonly focusRing: "var(--game-ui-overlay-glass-focus-ring)";
670
- readonly primaryFill: "var(--game-ui-overlay-glass-primary-fill)";
270
+ readonly search: {
271
+ readonly name: "search";
272
+ readonly paths: readonly ["m21 21-4.34-4.34", "M3 11a8 8 0 1 0 16 0a8 8 0 1 0 -16 0"];
671
273
  };
672
- readonly liquidMetal: {
673
- readonly face: "var(--game-ui-liquid-metal-face)";
674
- readonly ink: "var(--game-ui-liquid-metal-ink)";
675
- readonly accent: "var(--game-ui-liquid-metal-accent)";
676
- readonly dispersion: "var(--game-ui-liquid-metal-dispersion)";
677
- readonly sweepSpeed: "var(--game-ui-liquid-metal-sweep-speed)";
678
- readonly rest: "var(--game-ui-liquid-metal-rest)";
679
- readonly bloom: "var(--game-ui-liquid-metal-bloom)";
274
+ readonly sun: {
275
+ readonly name: "sun";
276
+ readonly paths: readonly ["M8 12a4 4 0 1 0 8 0a4 4 0 1 0 -8 0", "M12 2v2", "M12 20v2", "m4.93 4.93 1.41 1.41", "m17.66 17.66 1.41 1.41", "M2 12h2", "M20 12h2", "m6.34 17.66-1.41 1.41", "m19.07 4.93-1.41 1.41"];
680
277
  };
681
- readonly liquidGooey: {
682
- readonly morphShape: "var(--game-ui-liquid-gooey-morph-shape)";
683
- readonly morphSpeed: "var(--game-ui-liquid-gooey-morph-speed)";
684
- readonly morphBounce: "var(--game-ui-liquid-gooey-morph-bounce)";
685
- readonly evolveMassStiffness: "var(--game-ui-liquid-gooey-evolve-mass-stiffness)";
686
- readonly evolveMassDamping: "var(--game-ui-liquid-gooey-evolve-mass-damping)";
687
- readonly evolveSizeStiffness: "var(--game-ui-liquid-gooey-evolve-size-stiffness)";
688
- readonly evolveSizeDamping: "var(--game-ui-liquid-gooey-evolve-size-damping)";
689
- readonly evolveRadiusStiffness: "var(--game-ui-liquid-gooey-evolve-radius-stiffness)";
690
- readonly evolveRadiusDamping: "var(--game-ui-liquid-gooey-evolve-radius-damping)";
691
- readonly evolveContentBlur: "var(--game-ui-liquid-gooey-evolve-content-blur)";
692
- readonly evolveRoundness: "var(--game-ui-liquid-gooey-evolve-roundness)";
693
- readonly evolveCornerDuration: "var(--game-ui-liquid-gooey-evolve-corner-duration)";
694
- readonly evolveCornerDelay: "var(--game-ui-liquid-gooey-evolve-corner-delay)";
695
- readonly evolveCornerEase: "var(--game-ui-liquid-gooey-evolve-corner-ease)";
696
- readonly evolveAnticipation: "var(--game-ui-liquid-gooey-evolve-anticipation)";
697
- readonly evolveTravel: "var(--game-ui-liquid-gooey-evolve-travel)";
698
- readonly contentBlurAreaMultiplier: "var(--game-ui-liquid-gooey-content-blur-area-multiplier)";
699
- readonly bendVertical: "var(--game-ui-liquid-gooey-bend-vertical)";
700
- readonly bendHorizontal: "var(--game-ui-liquid-gooey-bend-horizontal)";
701
- readonly bendVelocityVertical: "var(--game-ui-liquid-gooey-bend-velocity-vertical)";
702
- readonly bendVelocityHorizontal: "var(--game-ui-liquid-gooey-bend-velocity-horizontal)";
703
- readonly bendSmoothing: "var(--game-ui-liquid-gooey-bend-smoothing)";
704
- readonly bendActiveThreshold: "var(--game-ui-liquid-gooey-bend-active-threshold)";
705
- readonly bendVerticalCap: "var(--game-ui-liquid-gooey-bend-vertical-cap)";
706
- readonly bendHorizontalCap: "var(--game-ui-liquid-gooey-bend-horizontal-cap)";
707
- readonly bendRadiusMin: "var(--game-ui-liquid-gooey-bend-radius-min)";
708
- readonly bendRadiusMax: "var(--game-ui-liquid-gooey-bend-radius-max)";
709
- readonly bendLeadingCapFactor: "var(--game-ui-liquid-gooey-bend-leading-cap-factor)";
710
- readonly bendTrailingCapFactor: "var(--game-ui-liquid-gooey-bend-trailing-cap-factor)";
711
- readonly moveStiffness: "var(--game-ui-liquid-gooey-move-stiffness)";
712
- readonly moveDamping: "var(--game-ui-liquid-gooey-move-damping)";
713
- readonly moveStretch: "var(--game-ui-liquid-gooey-move-stretch)";
714
- readonly moveTail: "var(--game-ui-liquid-gooey-move-tail)";
715
- readonly moveForce: "var(--game-ui-liquid-gooey-move-force)";
716
- readonly moveTailSpringStiffness: "var(--game-ui-liquid-gooey-move-tail-spring-stiffness)";
717
- readonly moveTailSpringDamping: "var(--game-ui-liquid-gooey-move-tail-spring-damping)";
718
- readonly moveStretchSpeed: "var(--game-ui-liquid-gooey-move-stretch-speed)";
719
- readonly moveStretchSquash: "var(--game-ui-liquid-gooey-move-stretch-squash)";
720
- readonly moveSpeedThreshold: "var(--game-ui-liquid-gooey-move-speed-threshold)";
721
- readonly moveTailOnsetSpeed: "var(--game-ui-liquid-gooey-move-tail-onset-speed)";
722
- readonly moveTailOnsetRange: "var(--game-ui-liquid-gooey-move-tail-onset-range)";
723
- readonly moveTailRamp: "var(--game-ui-liquid-gooey-move-tail-ramp)";
724
- readonly moveTailMinRadius: "var(--game-ui-liquid-gooey-move-tail-min-radius)";
725
- readonly moveTailWobble: "var(--game-ui-liquid-gooey-move-tail-wobble)";
726
- readonly moveTailPhaseSpeed: "var(--game-ui-liquid-gooey-move-tail-phase-speed)";
727
- readonly moveTailMidpointA: "var(--game-ui-liquid-gooey-move-tail-midpoint-a)";
728
- readonly moveTailMidpointB: "var(--game-ui-liquid-gooey-move-tail-midpoint-b)";
729
- readonly moveTailMidRadiusA: "var(--game-ui-liquid-gooey-move-tail-mid-radius-a)";
730
- readonly moveTailMidRadiusB: "var(--game-ui-liquid-gooey-move-tail-mid-radius-b)";
731
- readonly moveTailWobblePhase: "var(--game-ui-liquid-gooey-move-tail-wobble-phase)";
732
- readonly moveMinPerpendicular: "var(--game-ui-liquid-gooey-move-min-perpendicular)";
733
- readonly moveLagBase: "var(--game-ui-liquid-gooey-move-lag-base)";
734
- readonly moveLagForce: "var(--game-ui-liquid-gooey-move-lag-force)";
735
- readonly moveSettleDistance: "var(--game-ui-liquid-gooey-move-settle-distance)";
736
- readonly moveSettleSpeed: "var(--game-ui-liquid-gooey-move-settle-speed)";
737
- readonly moveIntegrationRate: "var(--game-ui-liquid-gooey-move-integration-rate)";
738
- readonly waviness: "var(--game-ui-liquid-gooey-waviness)";
739
- readonly wavinessFreq: "var(--game-ui-liquid-gooey-waviness-freq)";
740
- readonly meltBlur: "var(--game-ui-liquid-gooey-melt-blur)";
741
- readonly meltContrast: "var(--game-ui-liquid-gooey-melt-contrast)";
742
- readonly meltReach: "var(--game-ui-liquid-gooey-melt-reach)";
743
- readonly meltFade: "var(--game-ui-liquid-gooey-melt-fade)";
744
- readonly meltWarp: "var(--game-ui-liquid-gooey-melt-warp)";
745
- readonly meltMix: "var(--game-ui-liquid-gooey-melt-mix)";
746
- readonly meltMixBlur: "var(--game-ui-liquid-gooey-melt-mix-blur)";
747
- readonly meltGravity: "var(--game-ui-liquid-gooey-melt-gravity)";
748
- readonly meltWaviness: "var(--game-ui-liquid-gooey-melt-waviness)";
749
- readonly dissolveBlur: "var(--game-ui-liquid-gooey-dissolve-blur)";
750
- readonly dissolveWarp: "var(--game-ui-liquid-gooey-dissolve-warp)";
751
- readonly dissolvePull: "var(--game-ui-liquid-gooey-dissolve-pull)";
752
- readonly dissolveRange: "var(--game-ui-liquid-gooey-dissolve-range)";
753
- readonly dissolveZone: "var(--game-ui-liquid-gooey-dissolve-zone)";
754
- readonly dissolveMix: "var(--game-ui-liquid-gooey-dissolve-mix)";
755
- readonly dissolveGravity: "var(--game-ui-liquid-gooey-dissolve-gravity)";
756
- readonly dissolveTaper: "var(--game-ui-liquid-gooey-dissolve-taper)";
757
- readonly dissolveWarpFreq: "var(--game-ui-liquid-gooey-dissolve-warp-freq)";
758
- readonly dissolveFlowSpeed: "var(--game-ui-liquid-gooey-dissolve-flow-speed)";
759
- readonly dissolveDetail: "var(--game-ui-liquid-gooey-dissolve-detail)";
760
- readonly dissolveReleaseMs: "var(--game-ui-liquid-gooey-dissolve-release-ms)";
761
- readonly dissolveFadeMs: "var(--game-ui-liquid-gooey-dissolve-fade-ms)";
762
- readonly dissolveStrength: "var(--game-ui-liquid-gooey-dissolve-strength)";
763
- readonly dissolveSink: "var(--game-ui-liquid-gooey-dissolve-sink)";
764
- readonly dissolveSeamBlur: "var(--game-ui-liquid-gooey-dissolve-seam-blur)";
278
+ readonly user: {
279
+ readonly name: "user";
280
+ readonly paths: readonly ["M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2", "M8 7a4 4 0 1 0 8 0a4 4 0 1 0 -8 0"];
765
281
  };
766
282
  };
767
283
 
768
- export declare type ClayAssetGroup = keyof typeof CLAY_ASSETS;
769
-
770
- export declare type ClayAssetMode = 'inline' | 'source';
284
+ export declare const GAME_UI_DEFAULT_STYLE: GameUiStyle;
771
285
 
772
- export declare type ClayGameSpriteName = keyof typeof CLAY_GAME_SPRITES;
773
-
774
- export declare type ClayIconName = keyof typeof CLAY_ICON_VARIANTS;
775
-
776
- export declare interface ClayIconResolveOptions {
777
- /** Force a specific visual family. Defaults to game-preferred resolution. */
778
- style?: ClayIconStyle;
779
- /** Force inline SVG placeholder (true) or real PNG path (false). */
780
- inline?: boolean;
781
- }
782
-
783
- /**
784
- * Clay icons ship in two visual families, and which one you use is a deliberate
785
- * design choice:
786
- *
787
- * - 'game' — the colorful, sculpted clay objects under `icons/common/*`
788
- * (crown, scroll, trophy, key…). This is the primary, on-brand look
789
- * and the default everywhere. Use it for anything the player sees.
790
- * - 'line' — the flat, white, monochrome glyphs under `icons/function/*`
791
- * (home, compass, chat…). This is the alternate/utility family for
792
- * dense toolbars or places a sculpted object would feel too heavy.
793
- *
794
- * Not every semantic icon exists in both families: the game family is a curated
795
- * set of ~45 sculpted objects, while the line family covers ~230 generic UI
796
- * concepts. `getClayIconStyles()` reports which families a given icon has, and
797
- * resolution always prefers 'game' so cards get the on-brand look by default.
798
- */
799
- export declare type ClayIconStyle = 'game' | 'line';
800
-
801
- export declare type ClayTokenCategory = keyof typeof CLAY_UI_TOKENS;
802
-
803
- declare type CornerRadii = [number, number, number, number];
804
-
805
- /**
806
- * Process-wide budget for animated liquid-gooey groups.
807
- *
808
- * SVG filters do not consume WebGL contexts, but they can still be expensive
809
- * to repaint. The default allows two animated groups and rejects regions
810
- * larger than the configured filter-area ceiling. A rejected group keeps its
811
- * SVG filter and snaps its content to each new state without animating.
812
- */
813
- export declare const DEFAULT_LIQUID_GOOEY_ANIMATION_BUDGET = 2;
814
-
815
- export declare const DEFAULT_LIQUID_GOOEY_FILTER_AREA_BUDGET = 480000;
816
-
817
- /**
818
- * Process-wide ledger for liquid-metal WebGL2 contexts.
819
- *
820
- * Chrome gives a tab about 16 contexts (Android about 8) and silently
821
- * kills the oldest when the cap is hit. In University that oldest context
822
- * is the 3D world map. These buttons are allowed to light up a shader,
823
- * but they are not allowed to evict the map — so the default budget is
824
- * 2, hosts can raise or lower it, and a button that cannot get a slot
825
- * stays on the CSS renderer without throwing.
826
- */
827
- export declare const DEFAULT_LIQUID_METAL_CONTEXT_BUDGET = 2;
828
-
829
- export declare const DISSOLVE_DEFAULTS: ResolvedDissolveOptions;
830
-
831
- export declare interface DissolveOptions {
832
- /** Melt blur in px. */
833
- blur?: number;
834
- /** Displacement strength of the liquid warp. */
835
- warp?: number;
836
- /** Magnetic drift toward the contact, in px. */
837
- pull?: number;
838
- /** Distance at which melting starts. */
839
- range?: number;
840
- /** Size of the melt zone around the contact, in px. */
841
- zone?: number;
842
- /** 0..1 two-liquid erosion strength. */
843
- mix?: number;
844
- /** Px the melt is drawn toward the neighbour's centre. */
845
- gravity?: number;
846
- /** 0..1 pointiness of the directional flow. */
847
- taper?: number;
848
- /** Noise frequency multiplier. */
849
- warpFreq?: number;
850
- /** Px/s the noise field may drift while the item is moving. */
851
- flowSpeed?: number;
852
- /** Noise style. */
853
- warpStyle?: 'fractalNoise' | 'turbulence';
854
- /** Noise octaves. */
855
- detail?: number;
856
- /** Whether the dissolve is currently allowed to grow. */
857
- active?: boolean;
858
- /** Structural release time in ms. */
859
- releaseMs?: number;
860
- /** Opacity fade time in ms. */
861
- fadeMs?: number;
862
- /** 0..1 overall dissolve ceiling. */
863
- strength?: number;
864
- /** Fraction of the smaller body at which the seam has been swallowed. */
865
- sink?: number;
866
- /** Plain blur radius for the guaranteed-smooth seam wash. */
867
- seamBlur?: number;
868
- }
869
-
870
- export declare type DissolveValue = boolean | number | DissolveOptions;
871
-
872
- declare interface EvolveOptions {
873
- /** Spring driving the liquid mass's centre. */
874
- massStiffness?: number;
875
- massDamping?: number;
876
- /** Spring driving width and height. */
877
- sizeStiffness?: number;
878
- sizeDamping?: number;
879
- /** Spring driving the corner radius. */
880
- radiusStiffness?: number;
881
- radiusDamping?: number;
882
- /** Maximum content cross-blur during the morph, in px. */
883
- contentBlur?: number;
884
- /** 0..1 droplet roundness during a shape transition. */
885
- roundness?: number;
886
- /** Corner-forming timeline. */
887
- cornerDuration?: number;
888
- cornerDelay?: number;
889
- cornerEase?: string;
890
- /** Ramp-in time for the droplet lead, in ms. */
891
- anticipation?: number;
892
- /** Maximum droplet lead toward the destination, in px. */
893
- travel?: number;
894
- }
895
-
896
- export declare function FirstSessionHud({ authenticated, batteryCount, className, dailyStreak, iconSlots, labels, onHistory, onSettings, onWardrobe, playerName, }: FirstSessionHudProps): ReactNode;
897
-
898
- export declare interface FirstSessionHudIconSlots {
899
- history?: ReactNode;
900
- input?: ReactNode;
901
- settings?: ReactNode;
902
- wardrobe?: ReactNode;
903
- emote?: ReactNode;
904
- }
905
-
906
- export declare interface FirstSessionHudLabels {
907
- controls: string;
908
- emote: string;
909
- goalLabel: string;
910
- goalValue: string;
911
- /** Streak prefix, e.g. "Daily" → "Daily 3". Defaults to "Daily". */
912
- streak?: string;
913
- /** Resource meta shown for guests (unauthenticated). Defaults to "guest". */
914
- guest?: string;
915
- history: string;
916
- hud: string;
917
- input: string;
918
- moveBadge: string;
919
- move: string;
920
- roomLabel: string;
921
- roomValue: string;
922
- roleLabel: string;
923
- roleValue: string;
924
- settings: string;
925
- shell: string;
926
- timerLabel: string;
927
- timerValue: string;
928
- tools: string;
929
- wardrobe: string;
930
- }
931
-
932
- export declare interface FirstSessionHudProps {
933
- authenticated: boolean;
934
- batteryCount: number | string;
935
- className?: string;
936
- dailyStreak: number;
937
- iconSlots?: FirstSessionHudIconSlots;
938
- labels: FirstSessionHudLabels;
939
- onHistory: () => void;
940
- onSettings: () => void;
941
- onWardrobe: () => void;
942
- playerName: string;
943
- }
944
-
945
- export declare function FirstSessionOnboarding({ labels, onDismiss, open, }: FirstSessionOnboardingProps): ReactNode;
946
-
947
- export declare interface FirstSessionOnboardingLabels {
948
- badge: string;
949
- body: string;
950
- skip: string;
951
- start: string;
952
- steps: readonly FirstSessionOnboardingStep[];
953
- title: string;
954
- }
955
-
956
- export declare interface FirstSessionOnboardingProps {
957
- labels: FirstSessionOnboardingLabels;
958
- onDismiss: () => void;
959
- open: boolean;
960
- }
961
-
962
- export declare interface FirstSessionOnboardingStep {
963
- body: string;
964
- title: string;
965
- }
966
-
967
- /** Opt-in attribute values for the official overlay-glass HUD scope. */
968
- export declare const GAME_UI_OVERLAY: {
969
- readonly toneAttr: "data-game-ui-tone";
970
- readonly toneGlass: "glass";
971
- readonly densityAttr: "data-game-ui-density";
972
- readonly densityCompact: "compact";
973
- readonly scopeClass: "game-ui-overlay-scope";
974
- };
975
-
976
- export declare const GAME_UI_PREVIEW_MESSAGES: readonly GameUiHistoryEntry[];
286
+ /** Appearance and illumination are independent host choices, not component variants. */
287
+ export declare const GAME_UI_STYLES: readonly ["candy", "pastel", "mist", "grey", "outline", "ink"];
977
288
 
978
289
  export declare const GAME_UI_TARGETS: {
979
290
  readonly touchMinimumPx: 44;
@@ -991,13 +302,13 @@ export declare const GAME_UI_TARGETS: {
991
302
  /**
992
303
  * The semantic `--game-ui-*` custom properties a *complete* theme must
993
304
  * override for full fidelity — this is the same list the official
994
- * `[data-game-ui-theme='night']` block in theme.css satisfies, enforced by
305
+ * `[data-game-ui-theme='dark']` block in theme.css satisfies, enforced by
995
306
  * a guard test in src/tokens.test.ts. A downstream product building its own
996
307
  * full theme (e.g. `[data-game-ui-theme='abyss']`) can reuse this constant
997
308
  * to check its own CSS for the same completeness instead of eyeballing it —
998
309
  * see "自定义第三主题" in design-system-guide.md for a usage example.
999
310
  */
1000
- export declare const GAME_UI_THEME_CONTRACT: readonly ["--game-ui-bg", "--game-ui-surface", "--game-ui-surface-raised", "--game-ui-panel", "--game-ui-panel-strong", "--game-ui-panel-deep", "--game-ui-text", "--game-ui-text-muted", "--game-ui-accent", "--game-ui-accent-bright", "--game-ui-secondary", "--game-ui-success", "--game-ui-success-bright", "--game-ui-danger", "--game-ui-danger-bright", "--game-ui-warning", "--game-ui-focus-ring", "--game-ui-border-subtle", "--game-ui-border-strong", "--game-ui-disabled", "--game-ui-ink-deep", "--game-ui-border-ink", "--game-ui-wood", "--game-ui-ink-title", "--game-ui-ink-heading", "--game-ui-liquid-metal-face", "--game-ui-liquid-metal-ink"];
311
+ export declare const GAME_UI_THEME_CONTRACT: readonly ["--game-ui-bg", "--game-ui-surface", "--game-ui-surface-raised", "--game-ui-surface-sunken", "--game-ui-text", "--game-ui-text-muted", "--game-ui-accent", "--game-ui-accent-bright", "--game-ui-secondary", "--game-ui-success", "--game-ui-success-bright", "--game-ui-danger", "--game-ui-danger-bright", "--game-ui-warning", "--game-ui-focus-ring", "--game-ui-border-subtle", "--game-ui-border-strong", "--game-ui-disabled", "--game-ui-ink-deep", "--game-ui-border-ink", "--game-ui-wood", "--game-ui-ink-title", "--game-ui-ink-heading"];
1001
312
 
1002
313
  export declare const GAME_UI_TOKENS: {
1003
314
  readonly morphShape: "var(--game-ui-liquid-gooey-morph-shape)";
@@ -1083,12 +394,10 @@ export declare const GAME_UI_TOKENS: {
1083
394
  readonly dissolveStrength: "var(--game-ui-liquid-gooey-dissolve-strength)";
1084
395
  readonly dissolveSink: "var(--game-ui-liquid-gooey-dissolve-sink)";
1085
396
  readonly dissolveSeamBlur: "var(--game-ui-liquid-gooey-dissolve-seam-blur)";
1086
- readonly iconSm: "var(--game-ui-asset-icon-sm)";
1087
- readonly iconMd: "var(--game-ui-asset-icon-md)";
1088
- readonly iconLg: "var(--game-ui-asset-icon-lg)";
1089
- readonly iconXl: "var(--game-ui-asset-icon-xl)";
397
+ readonly iconSm: "var(--game-ui-icon-sm)";
398
+ readonly iconMd: "var(--game-ui-icon-md)";
399
+ readonly iconLg: "var(--game-ui-icon-lg)";
1090
400
  readonly buttonSkinMinWidth: "var(--game-ui-asset-button-min-width)";
1091
- readonly cardFanWidth: "var(--game-ui-asset-card-fan-width)";
1092
401
  readonly stageTileMinHeight: "var(--game-ui-stage-tile-min-height)";
1093
402
  readonly terrainSwatchSize: "var(--game-ui-terrain-swatch-size)";
1094
403
  readonly terrainToolHitSize: "var(--game-ui-terrain-tool-hit-size)";
@@ -1098,7 +407,7 @@ export declare const GAME_UI_TOKENS: {
1098
407
  readonly hud: "var(--game-ui-z-hud)";
1099
408
  readonly sidebar: "var(--game-ui-z-sidebar)";
1100
409
  readonly overlay: "var(--game-ui-z-overlay)";
1101
- readonly modal: "var(--game-ui-z-modal)";
410
+ readonly zModal: "var(--game-ui-z-modal)";
1102
411
  readonly toast: "var(--game-ui-z-toast)";
1103
412
  readonly fast: "var(--game-ui-motion-fast)";
1104
413
  readonly base: "var(--game-ui-motion-base)";
@@ -1106,9 +415,7 @@ export declare const GAME_UI_TOKENS: {
1106
415
  readonly easingPop: "var(--game-ui-ease-pop)";
1107
416
  readonly easingSoft: "var(--game-ui-ease-soft)";
1108
417
  readonly reducedMotion: "var(--game-ui-reduced-motion-policy)";
1109
- readonly button: "var(--game-ui-shadow-button)";
1110
- readonly panel: "var(--game-ui-shadow-panel)";
1111
- readonly inset: "var(--game-ui-shadow-inset)";
418
+ readonly shadowRaised: "var(--game-ui-shadow-raised)";
1112
419
  readonly stroke: "var(--game-ui-stroke)";
1113
420
  readonly scrollbarSize: "var(--game-ui-scrollbar-size)";
1114
421
  readonly scrollbarTrack: "var(--game-ui-scrollbar-track)";
@@ -1117,6 +424,8 @@ export declare const GAME_UI_TOKENS: {
1117
424
  readonly bead: "var(--game-ui-radius-bead)";
1118
425
  readonly control: "var(--game-ui-radius-control)";
1119
426
  readonly card: "var(--game-ui-radius-card)";
427
+ readonly radiusPanel: "var(--game-ui-radius-panel)";
428
+ readonly radiusModal: "var(--game-ui-radius-modal)";
1120
429
  readonly px2: "var(--game-ui-space-2)";
1121
430
  readonly px4: "var(--game-ui-space-4)";
1122
431
  readonly px6: "var(--game-ui-space-6)";
@@ -1152,7 +461,7 @@ export declare const GAME_UI_TOKENS: {
1152
461
  readonly playfieldScrim: "var(--game-ui-playfield-scrim)";
1153
462
  readonly surface: "var(--game-ui-surface)";
1154
463
  readonly surfaceRaised: "var(--game-ui-surface-raised)";
1155
- readonly panelStrong: "var(--game-ui-panel-strong)";
464
+ readonly surfaceSunken: "var(--game-ui-surface-sunken)";
1156
465
  readonly text: "var(--game-ui-text)";
1157
466
  readonly textMuted: "var(--game-ui-text-muted)";
1158
467
  readonly accent: "var(--game-ui-accent)";
@@ -1167,98 +476,6 @@ export declare const GAME_UI_TOKENS: {
1167
476
  readonly disabled: "var(--game-ui-disabled)";
1168
477
  };
1169
478
 
1170
- export declare function GameActionGrid({ actions, className, density, iconLabelMode, label, style, }: GameActionGridProps): ReactNode;
1171
-
1172
- export declare interface GameActionGridProps {
1173
- actions: readonly GameUiAction[];
1174
- className?: string;
1175
- density?: GameSurfaceDensity;
1176
- iconLabelMode?: GameActionIconLabelMode;
1177
- label: string;
1178
- style?: GameActionStyle;
1179
- }
1180
-
1181
- export declare type GameActionIconLabelMode = 'hidden' | 'caption';
1182
-
1183
- export declare type GameActionStyle = 'button' | 'icon';
1184
-
1185
- export declare interface GameAssetBadge {
1186
- label: string;
1187
- tone?: GameBadgeTone;
1188
- }
1189
-
1190
- export declare function GameAssetCard({ assetId, badges, cardLayout, className, description, disabled, facts, icon, onClick, onSelect, selected, source, sourceLabel, status, statusLabel, thumbnailAlt, thumbnailSrc, title, type, ...props }: GameAssetCardProps): ReactNode;
1191
-
1192
- export declare type GameAssetCardLayout = 'auto' | 'list' | 'rail';
1193
-
1194
- export declare interface GameAssetCardProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'onSelect'> {
1195
- assetId: string;
1196
- badges?: readonly GameAssetBadge[];
1197
- cardLayout?: Exclude<GameAssetCardLayout, 'auto'>;
1198
- description?: string;
1199
- facts?: readonly GameAssetFact[];
1200
- icon?: ClayIconName;
1201
- onSelect?: (assetId: string) => void;
1202
- selected?: boolean;
1203
- source: GameAssetSource;
1204
- sourceLabel?: string;
1205
- status?: GameAssetStatus;
1206
- statusLabel?: string;
1207
- thumbnailAlt?: string;
1208
- thumbnailSrc?: string;
1209
- title: string;
1210
- }
1211
-
1212
- export declare interface GameAssetFact {
1213
- id: string;
1214
- label: string;
1215
- value: string;
1216
- }
1217
-
1218
- export declare interface GameAssetGroup {
1219
- assets: readonly Omit<GameAssetCardProps, 'onSelect' | 'selected'>[];
1220
- id: string;
1221
- label: string;
1222
- source?: GameAssetSource;
1223
- }
1224
-
1225
- export declare function GameAssetIcon({ className, icon, label, size, style, useSourceAsset, }: GameAssetIconProps): ReactNode;
1226
-
1227
- export declare interface GameAssetIconProps {
1228
- className?: string;
1229
- icon: ClayIconName;
1230
- label?: string;
1231
- size?: 'sm' | 'md' | 'lg' | 'xl';
1232
- /**
1233
- * Visual family. 'game' (default) is the colorful sculpted clay object;
1234
- * 'line' is the flat white glyph alternate. Falls back automatically when an
1235
- * icon only ships one family.
1236
- */
1237
- style?: ClayIconStyle;
1238
- useSourceAsset?: boolean;
1239
- }
1240
-
1241
- export declare function GameAssetLibrary({ cardLayout, className, density, emptyAction, emptyDescription, emptyTitle, groups, label, onSelectAsset, selectedAssetId, subtitle, title, }: GameAssetLibraryProps): ReactNode;
1242
-
1243
- export declare interface GameAssetLibraryProps {
1244
- cardLayout?: GameAssetCardLayout;
1245
- className?: string;
1246
- density?: GameSurfaceDensity;
1247
- emptyAction?: ReactNode;
1248
- emptyDescription?: string;
1249
- emptyTitle?: string;
1250
- groups: readonly GameAssetGroup[];
1251
- label: string;
1252
- onSelectAsset?: (assetId: string) => void;
1253
- selectedAssetId?: string;
1254
- subtitle?: string;
1255
- title: string;
1256
- }
1257
-
1258
- export declare type GameAssetSource = 'starter' | 'generated' | 'imported';
1259
-
1260
- export declare type GameAssetStatus = 'ready' | 'generating' | 'missing' | 'placed' | 'selected' | 'error';
1261
-
1262
479
  export declare function GameAvatar({ className, name, size, src, status, surface, }: GameAvatarProps): ReactNode;
1263
480
 
1264
481
  export declare interface GameAvatarProps {
@@ -1284,122 +501,17 @@ export declare interface GameBadgeProps {
1284
501
 
1285
502
  export declare type GameBadgeTone = 'neutral' | 'success' | 'warning' | 'danger' | 'ai';
1286
503
 
1287
- export declare function GameBeforeAfterToggle({ activeView, after, before, className, label, onViewChange, variant, 'data-testid': testId, }: GameBeforeAfterToggleProps): ReactNode;
1288
-
1289
- export declare interface GameBeforeAfterToggleProps {
1290
- activeView: GameBeforeAfterView;
1291
- after: GameConstructionPreviewPane;
1292
- before: GameConstructionPreviewPane;
1293
- className?: string | undefined;
1294
- label: string;
1295
- onViewChange?: ((view: GameBeforeAfterView) => void) | undefined;
1296
- variant?: GameConstructionVariant | undefined;
1297
- 'data-testid'?: string | undefined;
1298
- }
1299
-
1300
- export declare type GameBeforeAfterView = 'before' | 'after';
504
+ export declare const GameButton: ForwardRefExoticComponent<GameButtonProps & RefAttributes<ActionElement>>;
1301
505
 
1302
- export declare interface GameBrushControlLabels {
1303
- radius?: string;
1304
- strength?: string;
1305
- radiusHint?: string;
1306
- strengthHint?: string;
1307
- }
1308
-
1309
- export declare function GameBrushControls({ className, labels, onRadiusChange, onStrengthChange, state, variant, 'data-testid': testId, }: GameBrushControlsProps): ReactNode;
1310
-
1311
- export declare interface GameBrushControlsProps {
1312
- className?: string;
1313
- labels?: GameBrushControlLabels;
1314
- onRadiusChange?: ((radius: number) => void) | undefined;
1315
- onStrengthChange?: ((strength: number) => void) | undefined;
1316
- state: GameBrushControlState;
1317
- variant?: GameTerrainBuildVariant;
1318
- 'data-testid'?: string | undefined;
1319
- }
1320
-
1321
- export declare interface GameBrushControlState {
1322
- disabled?: boolean;
1323
- maxRadius?: number;
1324
- maxStrength?: number;
1325
- minRadius?: number;
1326
- minStrength?: number;
1327
- radius: number;
1328
- radiusStep?: number;
1329
- strength: number;
1330
- strengthStep?: number;
1331
- }
1332
-
1333
- export declare interface GameBuildCategory {
1334
- compactLabel?: string;
1335
- disabled?: boolean;
1336
- icon?: ClayIconName;
1337
- id: GameBuildCategoryId;
1338
- items: readonly GameBuildItem[];
1339
- label: string;
1340
- meta?: string;
1341
- }
1342
-
1343
- export declare type GameBuildCategoryId = 'foundation' | 'wall' | 'opening' | 'roof' | 'prop' | 'house' | string;
1344
-
1345
- export declare interface GameBuildItem {
1346
- badges?: readonly {
1347
- label: string;
1348
- tone?: GameBadgeTone;
1349
- }[];
1350
- compactLabel?: string;
1351
- description?: string;
1352
- disabled?: boolean;
1353
- icon?: ClayIconName;
1354
- id: string;
1355
- label: string;
1356
- meta?: string;
1357
- previewAlt?: string;
1358
- previewSrc?: string;
1359
- status?: GameBuildItemStatus;
1360
- }
1361
-
1362
- export declare type GameBuildItemStatus = 'ready' | 'selected' | 'locked' | 'missing' | 'progress' | 'error';
1363
-
1364
- export declare function GameBuildLibrary({ activeCategoryId, categories, className, density, emptyDescription, emptyTitle, label, onCategoryChange, onSelectItem, selectedItemId, title, variant, 'data-testid': testId, }: GameBuildLibraryProps): ReactNode;
1365
-
1366
- export declare interface GameBuildLibraryProps {
1367
- activeCategoryId?: string | undefined;
1368
- categories: readonly GameBuildCategory[];
1369
- className?: string;
1370
- density?: GameSurfaceDensity;
1371
- emptyDescription?: string;
1372
- emptyTitle?: string;
1373
- label: string;
1374
- onCategoryChange?: ((categoryId: string) => void) | undefined;
1375
- onSelectItem?: ((itemId: string, categoryId: string) => void) | undefined;
1376
- selectedItemId?: string | undefined;
1377
- title: string;
1378
- variant?: GameTerrainBuildVariant;
1379
- 'data-testid'?: string | undefined;
1380
- }
1381
-
1382
- export declare function GameButton({ children, className, fullWidth, liquidFinish, onClick, sound, static: isStatic, surface, type, variant, ...props }: GameButtonProps): ReactNode;
1383
-
1384
- export declare interface GameButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
506
+ export declare type GameButtonProps = ActionProps & {
1385
507
  children: ReactNode;
1386
- /** Fill the available row, including the liquid silhouette and hit target. */
1387
508
  fullWidth?: boolean;
1388
- /** Named liquid material. Only used with surface="liquid"; omitted keeps the current look. */
1389
- liquidFinish?: LiquidFinish;
509
+ hue?: GameUiHue;
1390
510
  sound?: GameInteractionSoundOptions | false;
1391
- /** Disable the scale-on-press feedback where the motion would distract. */
1392
511
  static?: boolean;
1393
- /**
1394
- * Draw the button on a liquid body. The button itself is unchanged — same
1395
- * element, same classes, same hit target; a silhouette behind it does the
1396
- * deforming, so text stays crisp and the tap target never shrinks.
1397
- */
1398
- surface?: GameButtonSurface;
1399
512
  variant?: GameButtonVariant;
1400
- }
1401
-
1402
- export declare type GameButtonSurface = 'flat' | 'liquid' | 'plaque';
513
+ size?: 'md' | 'sm';
514
+ };
1403
515
 
1404
516
  export declare type GameButtonVariant = 'primary' | 'secondary' | 'ghost' | 'danger' | 'success';
1405
517
 
@@ -1407,7 +519,7 @@ export declare type GameButtonVariant = 'primary' | 'secondary' | 'ghost' | 'dan
1407
519
  * Compact product notice (wallet pitch, soft warnings, onboarding hints).
1408
520
  * Token-driven; products may still override cinema theme in host CSS.
1409
521
  */
1410
- export declare function GameCallout({ heading, children, tone, className, ...props }: GameCalloutProps): ReactNode;
522
+ export declare function GameCallout({ heading, children, tone, className, style, ...props }: GameCalloutProps): ReactNode;
1411
523
 
1412
524
  export declare interface GameCalloutProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
1413
525
  /** Visible heading (not HTML title attribute). */
@@ -1418,21 +530,6 @@ export declare interface GameCalloutProps extends Omit<HTMLAttributes<HTMLDivEle
1418
530
 
1419
531
  export declare type GameCalloutTone = 'neutral' | 'info' | 'warning' | 'success' | 'danger';
1420
532
 
1421
- export declare function GameCardFan({ cards, className, label }: GameCardFanProps): ReactNode;
1422
-
1423
- export declare interface GameCardFanCard {
1424
- id: string;
1425
- icon?: ClayIconName;
1426
- kicker: string;
1427
- title: string;
1428
- }
1429
-
1430
- export declare interface GameCardFanProps {
1431
- cards: readonly GameCardFanCard[];
1432
- className?: string;
1433
- label: string;
1434
- }
1435
-
1436
533
  export declare type GameCardOrientationStatus = 'unavailable' | 'off' | 'requesting' | 'enabled' | 'denied';
1437
534
 
1438
535
  /** Normalized card tilt; zero is level, -1 and 1 are the bounded extremes. */
@@ -1441,11 +538,12 @@ export declare interface GameCardTilt {
1441
538
  readonly y: number;
1442
539
  }
1443
540
 
1444
- export declare function GameCheckbox({ className, label, ...props }: GameCheckboxProps): ReactNode;
541
+ export declare function GameCheckbox({ className, label, hue, ...props }: GameCheckboxProps): ReactNode;
1445
542
 
1446
543
  export declare interface GameCheckboxProps extends Pick<InputHTMLAttributes<HTMLInputElement>, 'checked' | 'defaultChecked' | 'disabled' | 'name' | 'onChange' | 'required' | 'value'> {
1447
544
  label: string;
1448
545
  className?: string;
546
+ hue?: GameUiHue;
1449
547
  }
1450
548
 
1451
549
  export declare function GameCollapsiblePanel({ actions, children, className, defaultOpen, labels, onOpenChange, open, title, tone, ...props }: GameCollapsiblePanelProps): ReactNode;
@@ -1534,191 +632,6 @@ export declare function GameCollectibleCardSlot({ label, className, }: {
1534
632
  readonly className?: string;
1535
633
  }): ReactNode;
1536
634
 
1537
- export declare function GameCompactGameDrawer({ children, className, closeIcon, closeLabel, disabled, label, onOpenChange, open, panelId: providedPanelId, title, triggerIcon, triggerLabel, variant, 'data-testid': testId, }: GameCompactGameDrawerProps): ReactNode;
1538
-
1539
- export declare interface GameCompactGameDrawerProps {
1540
- children: ReactNode;
1541
- className?: string;
1542
- closeIcon?: ClayIconName;
1543
- closeLabel?: string;
1544
- disabled?: boolean;
1545
- label: string;
1546
- onOpenChange?: ((open: boolean) => void) | undefined;
1547
- open: boolean;
1548
- panelId?: string;
1549
- title: string;
1550
- triggerIcon?: ClayIconName;
1551
- triggerLabel?: string;
1552
- variant?: GameTerrainBuildVariant;
1553
- 'data-testid'?: string | undefined;
1554
- }
1555
-
1556
- export declare function GameCompactJobDrawer({ children, className, closeLabel, disabled, jobs, label, onAction, onOpenChange, onSelectJob, open, panelId, selectedJobId, title, triggerLabel, variant, 'data-testid': testId, }: GameCompactJobDrawerProps): ReactNode;
1557
-
1558
- export declare interface GameCompactJobDrawerProps {
1559
- children?: ReactNode | undefined;
1560
- className?: string | undefined;
1561
- closeLabel?: string | undefined;
1562
- disabled?: boolean | undefined;
1563
- jobs?: readonly GameConstructionJob[] | undefined;
1564
- label: string;
1565
- onAction?: ((actionId: string, jobId: string) => void) | undefined;
1566
- onOpenChange?: ((open: boolean) => void) | undefined;
1567
- onSelectJob?: ((jobId: string) => void) | undefined;
1568
- open: boolean;
1569
- panelId?: string | undefined;
1570
- selectedJobId?: string | undefined;
1571
- title: string;
1572
- triggerLabel?: string | undefined;
1573
- variant?: Extract<GameConstructionVariant, 'mobile' | 'small-mobile'> | undefined;
1574
- 'data-testid'?: string | undefined;
1575
- }
1576
-
1577
- export declare interface GameConstructionAction {
1578
- ariaLabel?: string | undefined;
1579
- disabled?: boolean | undefined;
1580
- icon?: ClayIconName | undefined;
1581
- id: GameConstructionActionId;
1582
- label: string;
1583
- meta?: string | undefined;
1584
- tone?: GameButtonVariant | undefined;
1585
- }
1586
-
1587
- export declare type GameConstructionActionId = 'approve' | 'cancel' | 'preview' | 'revise' | 'revert' | string;
1588
-
1589
- export declare function GameConstructionApprovalBar({ actions, className, disabled, label, localOnlyLabel, onAction, providerMode, status, validationWarnings, variant, 'data-testid': testId, }: GameConstructionApprovalBarProps): ReactNode;
1590
-
1591
- export declare interface GameConstructionApprovalBarProps {
1592
- actions?: readonly GameConstructionAction[] | undefined;
1593
- className?: string | undefined;
1594
- disabled?: boolean | undefined;
1595
- label: string;
1596
- localOnlyLabel?: string | undefined;
1597
- onAction?: ((actionId: string) => void) | undefined;
1598
- providerMode?: GameConstructionProviderMode | undefined;
1599
- status: GameConstructionJobStatus;
1600
- validationWarnings?: readonly GameConstructionValidationWarning[] | undefined;
1601
- variant?: GameConstructionVariant | undefined;
1602
- 'data-testid'?: string | undefined;
1603
- }
1604
-
1605
- export declare interface GameConstructionBadge {
1606
- label: string;
1607
- tone?: GameBadgeTone | undefined;
1608
- }
1609
-
1610
- export declare interface GameConstructionFact {
1611
- id: string;
1612
- label: string;
1613
- value: ReactNode;
1614
- }
1615
-
1616
- export declare interface GameConstructionJob {
1617
- actions?: readonly GameConstructionAction[] | undefined;
1618
- after?: GameConstructionPreviewPane | undefined;
1619
- badges?: readonly GameConstructionBadge[] | undefined;
1620
- before?: GameConstructionPreviewPane | undefined;
1621
- crew?: readonly GameRobotCrewMember[] | undefined;
1622
- description?: string | undefined;
1623
- estimate?: string | undefined;
1624
- facts?: readonly GameConstructionFact[] | undefined;
1625
- id: string;
1626
- location?: string | undefined;
1627
- progressLabel?: string | undefined;
1628
- progressMax?: number | undefined;
1629
- progressValue?: number | undefined;
1630
- providerMode?: GameConstructionProviderMode | undefined;
1631
- status: GameConstructionJobStatus;
1632
- statusLabel?: string | undefined;
1633
- steps?: readonly GameConstructionProgressStep[] | undefined;
1634
- title: string;
1635
- validationWarnings?: readonly GameConstructionValidationWarning[] | undefined;
1636
- }
1637
-
1638
- export declare function GameConstructionJobCard({ className, density, job, onAction, onSelect, selected, showApprovalBar, showBeforeAfter, variant, 'data-testid': testId, }: GameConstructionJobCardProps): ReactNode;
1639
-
1640
- export declare interface GameConstructionJobCardProps {
1641
- className?: string | undefined;
1642
- density?: GameSurfaceDensity | undefined;
1643
- job: GameConstructionJob;
1644
- onAction?: ((actionId: string, jobId: string) => void) | undefined;
1645
- onSelect?: ((jobId: string) => void) | undefined;
1646
- selected?: boolean | undefined;
1647
- showApprovalBar?: boolean | undefined;
1648
- showBeforeAfter?: boolean | undefined;
1649
- variant?: GameConstructionVariant | undefined;
1650
- 'data-testid'?: string | undefined;
1651
- }
1652
-
1653
- export declare type GameConstructionJobStatus = 'draft' | 'preview' | 'queued' | 'working' | 'blocked' | 'readyForReview' | 'accepted' | 'cancelled';
1654
-
1655
- export declare interface GameConstructionPreviewPane {
1656
- caption?: string | undefined;
1657
- content?: ReactNode | undefined;
1658
- label: string;
1659
- }
1660
-
1661
- export declare function GameConstructionProgress({ className, label, max, progressLabel, showStatusBadge, status, statusLabel: explicitStatusLabel, steps, validationWarnings, value, variant, 'data-testid': testId, }: GameConstructionProgressProps): ReactNode;
1662
-
1663
- export declare interface GameConstructionProgressProps {
1664
- className?: string | undefined;
1665
- label: string;
1666
- max?: number | undefined;
1667
- progressLabel?: string | undefined;
1668
- showStatusBadge?: boolean | undefined;
1669
- status: GameConstructionJobStatus;
1670
- statusLabel?: string | undefined;
1671
- steps?: readonly GameConstructionProgressStep[] | undefined;
1672
- validationWarnings?: readonly GameConstructionValidationWarning[] | undefined;
1673
- value?: number | undefined;
1674
- variant?: GameConstructionVariant | undefined;
1675
- 'data-testid'?: string | undefined;
1676
- }
1677
-
1678
- export declare interface GameConstructionProgressStep {
1679
- caption?: string | undefined;
1680
- id: string;
1681
- label: string;
1682
- status: GameConstructionProgressStepStatus;
1683
- }
1684
-
1685
- export declare type GameConstructionProgressStepStatus = 'pending' | 'active' | 'complete' | 'blocked';
1686
-
1687
- export declare type GameConstructionProviderMode = 'local-only' | 'mock' | 'paid-disabled';
1688
-
1689
- export declare type GameConstructionValidationTone = Extract<GameBadgeTone, 'neutral' | 'success' | 'warning' | 'danger' | 'ai'>;
1690
-
1691
- export declare interface GameConstructionValidationWarning {
1692
- description?: string | undefined;
1693
- id: string;
1694
- label: string;
1695
- tone?: GameConstructionValidationTone | undefined;
1696
- }
1697
-
1698
- export declare type GameConstructionVariant = 'desktop' | 'tablet' | 'mobile' | 'small-mobile';
1699
-
1700
- export declare function GameContractorPanel({ activePreviewView, className, density, drawerOpen, emptyDescription, emptyTitle, jobs, label, onAction, onDrawerOpenChange, onPreviewViewChange, onSelectJob, selectedJobId, subtitle, title, variant, 'data-testid': testId, }: GameContractorPanelProps): ReactNode;
1701
-
1702
- export declare interface GameContractorPanelProps {
1703
- activePreviewView?: GameBeforeAfterView | undefined;
1704
- className?: string | undefined;
1705
- density?: GameSurfaceDensity | undefined;
1706
- drawerOpen?: boolean | undefined;
1707
- emptyDescription?: string | undefined;
1708
- emptyTitle?: string | undefined;
1709
- jobs: readonly GameConstructionJob[];
1710
- label: string;
1711
- onAction?: ((actionId: string, jobId: string) => void) | undefined;
1712
- onDrawerOpenChange?: ((open: boolean) => void) | undefined;
1713
- onPreviewViewChange?: ((view: GameBeforeAfterView) => void) | undefined;
1714
- onSelectJob?: ((jobId: string) => void) | undefined;
1715
- selectedJobId?: string | undefined;
1716
- subtitle?: string | undefined;
1717
- title: string;
1718
- variant?: GameConstructionVariant | undefined;
1719
- 'data-testid'?: string | undefined;
1720
- }
1721
-
1722
635
  export declare function GameDialog({ children, className, title }: GameDialogProps): ReactNode;
1723
636
 
1724
637
  export declare interface GameDialogProps {
@@ -1730,8 +643,8 @@ export declare interface GameDialogProps {
1730
643
  export declare function GameEmptyState({ action, className, description, icon, title, }: GameEmptyStateProps): ReactNode;
1731
644
 
1732
645
  export declare interface GameEmptyStateProps {
1733
- /** Optional clay icon shown above the title. */
1734
- icon?: ClayIconName;
646
+ /** Optional flat icon shown above the title. */
647
+ icon?: GameIconName;
1735
648
  title: string;
1736
649
  description?: string;
1737
650
  /** Optional call-to-action node (e.g. a GameButton). */
@@ -1740,7 +653,7 @@ export declare interface GameEmptyStateProps {
1740
653
  }
1741
654
 
1742
655
  export declare interface GameFactItem {
1743
- icon?: ClayIconName;
656
+ icon?: GameIconName;
1744
657
  id: string;
1745
658
  label: string;
1746
659
  meta?: string;
@@ -1793,8 +706,6 @@ export declare interface GameHistoryPanelProps {
1793
706
  label: string;
1794
707
  }
1795
708
 
1796
- export declare function GameHud({ actions, className, items, label }: GameHudProps): ReactNode;
1797
-
1798
709
  export declare function GameHudActions({ children, className, label, ...props }: GameHudActionsProps): ReactNode;
1799
710
 
1800
711
  export declare interface GameHudActionsProps extends Omit<HTMLAttributes<HTMLElement>, 'children'> {
@@ -1803,39 +714,42 @@ export declare interface GameHudActionsProps extends Omit<HTMLAttributes<HTMLEle
1803
714
  label: string;
1804
715
  }
1805
716
 
1806
- export declare interface GameHudItem {
1807
- icon?: ClayIconName;
1808
- id: string;
1809
- label: string;
1810
- meta?: string;
1811
- value: string;
1812
- }
1813
-
1814
- export declare interface GameHudProps {
1815
- actions?: ReactNode;
1816
- className?: string;
1817
- items: readonly GameHudItem[];
1818
- label: string;
1819
- }
1820
-
1821
- export declare function GameIconButton({ children, className, label, surface, liquidFinish, type, ...props }: GameIconButtonProps): ReactNode;
717
+ export declare function GameIcon({ icon, size, label, className, ...props }: GameIconProps): JSX.Element;
1822
718
 
1823
- export declare interface GameIconButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
719
+ export declare const GameIconButton: ForwardRefExoticComponent<GameIconButtonProps & RefAttributes<ActionElement>>;
720
+
721
+ export declare type GameIconButtonProps = ActionProps & {
1824
722
  children: ReactNode;
1825
723
  label: string;
1826
- surface?: GameButtonSurface;
1827
- liquidFinish?: LiquidFinish;
724
+ hue?: GameUiHue;
725
+ size?: 'md' | 'sm';
726
+ };
727
+
728
+ /** Immutable path geometry on the brand's 24 × 24 grid. No URLs or scripts. */
729
+ export declare interface GameIconData {
730
+ readonly name: string;
731
+ readonly paths: readonly string[];
732
+ }
733
+
734
+ export declare type GameIconName = keyof typeof GAME_ICONS;
735
+
736
+ export declare interface GameIconProps extends Omit<SVGProps<SVGSVGElement>, 'children' | 'width' | 'height' | 'aria-label' | 'role'> {
737
+ icon: GameIconName | GameIconData;
738
+ size?: 'sm' | 'md' | 'lg';
739
+ /** A meaningful image needs a label; decorative icons remain hidden from AT. */
740
+ label?: string;
1828
741
  }
1829
742
 
1830
743
  export declare const GameInput: ForwardRefExoticComponent<GameInputProps & RefAttributes<HTMLInputElement>>;
1831
744
 
1832
745
  /**
1833
- * Clay form primitives. These are intentionally thin wrappers over the native
746
+ * Flat form primitives. These are intentionally thin wrappers over the native
1834
747
  * <input>/<textarea>/checkbox so they stay fully accessible and uncontrolled-
1835
- * or controlled-friendly; the clay look lives entirely in CSS. Text fields use
748
+ * or controlled-friendly; the flat look lives entirely in CSS. Text fields use
1836
749
  * forwardRef so hosts can focus them (e.g. refocus a chat composer after send).
1837
750
  */
1838
751
  export declare interface GameInputProps extends InputHTMLAttributes<HTMLInputElement> {
752
+ hue?: GameUiHue;
1839
753
  /** Paints the field in the danger tone for invalid values. */
1840
754
  invalid?: boolean;
1841
755
  }
@@ -1850,17 +764,17 @@ export declare interface GameInteractionAudioContext {
1850
764
  suspend?: () => Promise<void>;
1851
765
  }
1852
766
 
1853
- export declare interface GameInteractionAudioParam {
767
+ declare interface GameInteractionAudioParam {
1854
768
  exponentialRampToValueAtTime(value: number, endTime: number): void;
1855
769
  setValueAtTime(value: number, startTime: number): void;
1856
770
  }
1857
771
 
1858
- export declare interface GameInteractionGainNode {
772
+ declare interface GameInteractionGainNode {
1859
773
  connect(destination: unknown): void;
1860
774
  gain: GameInteractionAudioParam;
1861
775
  }
1862
776
 
1863
- export declare interface GameInteractionOscillatorNode {
777
+ declare interface GameInteractionOscillatorNode {
1864
778
  connect(destination: GameInteractionGainNode): void;
1865
779
  frequency: GameInteractionAudioParam;
1866
780
  start(when?: number): void;
@@ -1895,7 +809,7 @@ export declare interface GameLanguageMenuProps {
1895
809
  }
1896
810
 
1897
811
  /** A quiet list surface, with sibling controls rather than buttons inside a button. */
1898
- export declare function GameListRow({ title, description, thumbnail, current, selected, disabled, onSelect, selectLabel, actions, className, ...props }: GameListRowProps): ReactNode;
812
+ export declare function GameListRow({ title, description, thumbnail, current, selected, disabled, onSelect, selectLabel, actions, className, hue, ...props }: GameListRowProps): ReactNode;
1899
813
 
1900
814
  export declare interface GameListRowProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title' | 'onSelect' | 'children'> {
1901
815
  title: string;
@@ -1908,6 +822,7 @@ export declare interface GameListRowProps extends Omit<HTMLAttributes<HTMLDivEle
1908
822
  /** Optional name for the row's selection control, independent of its actions. */
1909
823
  selectLabel?: string;
1910
824
  actions?: ReactNode;
825
+ hue?: GameUiHue;
1911
826
  }
1912
827
 
1913
828
  export declare function GameLoadingState({ label, tone }: GameLoadingStateProps): ReactNode;
@@ -1917,6 +832,21 @@ export declare interface GameLoadingStateProps {
1917
832
  tone?: 'loading' | 'error';
1918
833
  }
1919
834
 
835
+ export declare type GameMaterialLayout = 'desktop' | 'dense' | 'mobile' | 'small-mobile';
836
+
837
+ export declare type GameMaterialPattern = 'solid' | 'speckled' | 'hatched' | 'grid';
838
+
839
+ export declare interface GameMaterialSwatch {
840
+ color: string;
841
+ compactLabel?: string;
842
+ disabled?: boolean;
843
+ id: string;
844
+ label: string;
845
+ meta?: string;
846
+ pattern?: GameMaterialPattern;
847
+ secondaryColor?: string;
848
+ }
849
+
1920
850
  export declare function GameMaterialSwatches({ activeMaterialId, className, disabled, label, materials, onMaterialChange, variant, 'data-testid': testId, }: GameMaterialSwatchesProps): ReactNode;
1921
851
 
1922
852
  export declare interface GameMaterialSwatchesProps {
@@ -1924,9 +854,9 @@ export declare interface GameMaterialSwatchesProps {
1924
854
  className?: string;
1925
855
  disabled?: boolean;
1926
856
  label: string;
1927
- materials: readonly GameTerrainMaterialSwatch[];
857
+ materials: readonly GameMaterialSwatch[];
1928
858
  onMaterialChange?: ((materialId: string) => void) | undefined;
1929
- variant?: GameTerrainBuildVariant;
859
+ variant?: GameMaterialLayout;
1930
860
  'data-testid'?: string | undefined;
1931
861
  }
1932
862
 
@@ -1958,7 +888,7 @@ export declare interface GameModalProps {
1958
888
  export declare interface GameMovementAction {
1959
889
  direction: GameMovementDirection;
1960
890
  disabled?: boolean;
1961
- icon?: ClayIconName;
891
+ icon?: GameIconName;
1962
892
  label: string;
1963
893
  shortcut?: string;
1964
894
  symbol?: string;
@@ -1979,23 +909,6 @@ export declare interface GameMovementPadProps {
1979
909
  onMove?: (direction: GameMovementDirection) => void;
1980
910
  }
1981
911
 
1982
- export declare const GameObjectToolbar: typeof GamePlacementToolbar;
1983
-
1984
- export declare type GameObjectToolbarProps = GamePlacementToolbarProps;
1985
-
1986
- export declare function GameOrientationGate({ body, cta, badgeLabel, manualHint, preview, title, }: GameOrientationGateProps): ReactNode;
1987
-
1988
- export declare interface GameOrientationGateProps {
1989
- body: string;
1990
- cta: string;
1991
- /** Warning badge text. Defaults to "Landscape only". */
1992
- badgeLabel?: string;
1993
- /** Hint shown when the browser blocks the automatic landscape lock. */
1994
- manualHint?: string;
1995
- preview?: boolean;
1996
- title: string;
1997
- }
1998
-
1999
912
  /** Numeric entry only. Sending, expiry, validation and retries belong to the host. */
2000
913
  export declare function GameOtpInput({ length, value, onChange, onComplete, invalid, disabled, readOnly, getSlotLabel, getSlotDescription, className, 'aria-describedby': describedBy, ...props }: GameOtpInputProps): ReactNode;
2001
914
 
@@ -2023,42 +936,14 @@ export declare interface GamePanelProps extends HTMLAttributes<HTMLElement> {
2023
936
  tone?: 'default' | 'strong';
2024
937
  }
2025
938
 
2026
- export declare function GamePlacementToolbar({ actions, capacityLabel, className, density, maxObjects, objectActions, placedObjects, selectedLabel, selectedTitle, statusLabel, statusTone, statusValue, title, }: GamePlacementToolbarProps): ReactNode;
2027
-
2028
- export declare interface GamePlacementToolbarProps {
2029
- actions?: readonly GameUiAction[];
2030
- capacityLabel?: string;
2031
- className?: string;
2032
- density?: GameSurfaceDensity;
2033
- maxObjects?: number;
2034
- objectActions?: readonly GameUiAction[];
2035
- placedObjects?: number;
2036
- selectedLabel?: string;
2037
- selectedTitle?: string;
2038
- statusLabel?: string;
2039
- statusTone?: GameBadgeTone;
2040
- statusValue?: string;
2041
- title: string;
2042
- }
2043
-
2044
- export declare function GameProgress({ className, label, max, showValue, tone, value, valueLabel, surface, liquidFinish, }: GameProgressProps): ReactNode;
939
+ /** Native progress semantics; only a finite, unfiltered tide meniscus moves. */
940
+ export declare function GameProgress({ value, max, label, showValue, valueLabel, className, }: GameProgressProps): ReactNode;
2045
941
 
2046
942
  export declare interface GameProgressProps {
2047
- /** Defaults to the existing liquid leading edge. Flat adds no SVG filter. */
2048
- surface?: Exclude<GameButtonSurface, 'plaque'>;
2049
- liquidFinish?: LiquidFinish;
2050
- /** Current value, between 0 and `max`. */
2051
943
  value: number;
2052
944
  max?: number;
2053
- /** Accessible label for the progress bar. */
2054
945
  label: string;
2055
- tone?: 'accent' | 'success' | 'danger' | 'warning';
2056
- /** Show the rounded percentage next to the bar. */
2057
946
  showValue?: boolean;
2058
- /**
2059
- * Text shown next to the bar in place of the percentage, for progress that
2060
- * is more meaningful as a count than a ratio (e.g. "3 / 21").
2061
- */
2062
947
  valueLabel?: string;
2063
948
  className?: string;
2064
949
  }
@@ -2084,64 +969,32 @@ export declare interface GameRadialMenuProps {
2084
969
  onSelect?: (id: string) => void;
2085
970
  }
2086
971
 
2087
- export declare interface GameRobotCrewMember {
2088
- icon?: ClayIconName | undefined;
2089
- id: string;
2090
- name: string;
2091
- role: string;
2092
- status: GameRobotCrewMemberStatus;
2093
- task?: string | undefined;
2094
- }
2095
-
2096
- export declare type GameRobotCrewMemberStatus = 'idle' | 'queued' | 'working' | 'blocked' | 'done';
2097
-
2098
- export declare function GameRobotCrewStatus({ className, crew, emptyDescription, emptyTitle, label, title, variant, 'data-testid': testId, }: GameRobotCrewStatusProps): ReactNode;
2099
-
2100
- export declare interface GameRobotCrewStatusProps {
2101
- className?: string | undefined;
2102
- crew: readonly GameRobotCrewMember[];
2103
- emptyDescription?: string | undefined;
2104
- emptyTitle?: string | undefined;
2105
- label: string;
2106
- title?: string | undefined;
2107
- variant?: GameConstructionVariant | undefined;
2108
- 'data-testid'?: string | undefined;
2109
- }
2110
-
2111
- export declare const GameSceneHudLayout: typeof GameShell;
2112
-
2113
- export declare type GameSceneHudLayoutProps = GameShellProps;
2114
-
2115
- export declare function GameSegmentedControl({ activeId, label, onSelect, options, surface, liquidFinish, disabled, }: GameSegmentedControlProps): ReactNode;
972
+ /** Selection belongs to the host. Each segment reserves the same checkmark
973
+ * cell, so changing selection does not resize the row or its native targets. */
974
+ export declare function GameSegmentedControl({ activeId, label, onSelect, options, disabled, hue, }: GameSegmentedControlProps): ReactNode;
2116
975
 
2117
976
  export declare interface GameSegmentedControlProps {
2118
977
  activeId: string;
2119
978
  label: string;
2120
979
  onSelect?: (id: string) => void;
2121
980
  options: readonly GameSegmentedOption[];
2122
- /** Existing default is liquid. Flat provides a quiet, filter-free option. */
2123
- surface?: Exclude<GameButtonSurface, 'plaque'>;
2124
- liquidFinish?: LiquidFinish;
2125
981
  disabled?: boolean;
982
+ hue?: GameUiHue;
2126
983
  }
2127
984
 
2128
985
  declare interface GameSegmentedOption {
2129
986
  id: string;
2130
987
  label: string;
988
+ hue?: GameUiHue;
2131
989
  }
2132
990
 
2133
- /**
2134
- * Native select, not a custom listbox state machine. Options/optgroups, form
2135
- * submission, reset, keyboard and the mobile picker remain browser-owned.
2136
- * Liquid paints only the closed single-select field. Disabled/multiple/list
2137
- * modes use the ordinary surface; we do not pretend to animate an OS popup.
2138
- */
991
+ /** Native options, form reset, focus, mobile popup and multiple-selection stay
992
+ * browser-owned. A field changes only its flat edge/fill, never its geometry. */
2139
993
  export declare const GameSelect: ForwardRefExoticComponent<GameSelectProps & RefAttributes<HTMLSelectElement>>;
2140
994
 
2141
995
  export declare interface GameSelectProps extends SelectHTMLAttributes<HTMLSelectElement> {
2142
996
  invalid?: boolean;
2143
- surface?: Exclude<GameButtonSurface, 'plaque'>;
2144
- liquidFinish?: LiquidFinish;
997
+ hue?: GameUiHue;
2145
998
  }
2146
999
 
2147
1000
  export declare function GameShell({ assetLibrary, bottomBar, children, className, density, hud, layout, movementPad, overlay, sidePanel, title, }: GameShellProps): ReactNode;
@@ -2226,7 +1079,7 @@ export declare function GameStageTile({ badge, className, icon, kicker, selected
2226
1079
 
2227
1080
  export declare interface GameStageTileProps extends ButtonHTMLAttributes<HTMLButtonElement> {
2228
1081
  badge?: string;
2229
- icon?: ClayIconName;
1082
+ icon?: GameIconName;
2230
1083
  kicker: string;
2231
1084
  selected?: boolean;
2232
1085
  summary: string;
@@ -2234,10 +1087,6 @@ export declare interface GameStageTileProps extends ButtonHTMLAttributes<HTMLBut
2234
1087
  tone?: 'daily' | 'portal' | 'host' | 'danger';
2235
1088
  }
2236
1089
 
2237
- export declare const GameStatList: typeof GameFactList;
2238
-
2239
- export declare type GameStatListProps = GameFactListProps;
2240
-
2241
1090
  export declare type GameSurfaceDensity = 'comfortable' | 'dense';
2242
1091
 
2243
1092
  export declare type GameSurfaceLayout = 'auto' | 'desktop' | 'mobile';
@@ -2247,11 +1096,13 @@ export declare interface GameTabItem {
2247
1096
  label: string;
2248
1097
  /** id of the tabpanel this tab controls; wires aria-controls when set. */
2249
1098
  panelId?: string;
1099
+ hue?: GameUiHue;
2250
1100
  }
2251
1101
 
2252
- export declare function GameTabs({ activeId, id, onSelect, tabs, orientation, 'aria-label': label, 'aria-labelledby': labelledBy, }: GameTabsProps): ReactNode;
1102
+ export declare function GameTabs({ activeId, id, onSelect, tabs, hue, orientation, 'aria-label': label, 'aria-labelledby': labelledBy, }: GameTabsProps): ReactNode;
2253
1103
 
2254
1104
  export declare interface GameTabsProps {
1105
+ hue?: GameUiHue;
2255
1106
  orientation?: 'horizontal' | 'vertical';
2256
1107
  'aria-label'?: string;
2257
1108
  'aria-labelledby'?: string;
@@ -2267,129 +1118,10 @@ export declare interface GameTabsProps {
2267
1118
  tabs: readonly GameTabItem[];
2268
1119
  }
2269
1120
 
2270
- export declare type GameTerrainBuildModeId = 'terrain' | 'build' | 'place' | 'inspect';
2271
-
2272
- export declare interface GameTerrainBuildModeOption {
2273
- /** Accessible label override when compact labels are used visually. */
2274
- ariaLabel?: string;
2275
- compactLabel?: string;
2276
- disabled?: boolean;
2277
- icon?: ClayIconName;
2278
- id: GameTerrainBuildModeId | string;
2279
- label: string;
2280
- meta?: string;
2281
- }
2282
-
2283
- export declare function GameTerrainBuildToolbox({ className, drawerOpen, drawerTitle, label, onDrawerOpenChange, title, variant, 'data-testid': testId, ...bodyProps }: GameTerrainBuildToolboxProps): ReactNode;
2284
-
2285
- export declare interface GameTerrainBuildToolboxProps {
2286
- activeBuildCategoryId?: string | undefined;
2287
- activeMaterialId?: string | undefined;
2288
- activeModeId: string;
2289
- activeToolId: string;
2290
- brush: GameBrushControlState;
2291
- buildCategories?: readonly GameBuildCategory[] | undefined;
2292
- className?: string;
2293
- density?: GameSurfaceDensity;
2294
- disabled?: boolean;
2295
- drawerOpen?: boolean;
2296
- drawerTitle?: string;
2297
- label: string;
2298
- materials?: readonly GameTerrainMaterialSwatch[] | undefined;
2299
- modes: readonly GameTerrainBuildModeOption[];
2300
- onBrushRadiusChange?: ((radius: number) => void) | undefined;
2301
- onBrushStrengthChange?: ((strength: number) => void) | undefined;
2302
- onBuildCategoryChange?: ((categoryId: string) => void) | undefined;
2303
- onDrawerOpenChange?: ((open: boolean) => void) | undefined;
2304
- onMaterialChange?: ((materialId: string) => void) | undefined;
2305
- onModeChange?: ((modeId: string) => void) | undefined;
2306
- onRedo?: (() => void) | undefined;
2307
- onSelectBuildItem?: ((itemId: string, categoryId: string) => void) | undefined;
2308
- onToolChange?: ((toolId: string) => void) | undefined;
2309
- onUndo?: (() => void) | undefined;
2310
- selectedBuildItemId?: string | undefined;
2311
- status?: GameTerrainStatusState | undefined;
2312
- title: string;
2313
- toolCompactLabelMode?: GameTerrainToolCompactLabelMode;
2314
- tools: readonly GameTerrainToolOption[];
2315
- undoRedo?: GameUndoRedoState | undefined;
2316
- variant?: GameTerrainBuildVariant;
2317
- 'data-testid'?: string | undefined;
2318
- }
2319
-
2320
- export declare type GameTerrainBuildVariant = 'desktop' | 'dense' | 'mobile' | 'small-mobile';
2321
-
2322
- export declare type GameTerrainMaterialPattern = 'solid' | 'speckled' | 'hatched' | 'grid';
2323
-
2324
- export declare interface GameTerrainMaterialSwatch {
2325
- color: string;
2326
- compactLabel?: string;
2327
- disabled?: boolean;
2328
- id: string;
2329
- label: string;
2330
- meta?: string;
2331
- pattern?: GameTerrainMaterialPattern;
2332
- secondaryColor?: string;
2333
- }
2334
-
2335
- export declare function GameTerrainModeControl({ activeModeId, className, disabled, label, modes, onModeChange, variant, 'data-testid': testId, }: GameTerrainModeControlProps): ReactNode;
2336
-
2337
- export declare interface GameTerrainModeControlProps {
2338
- activeModeId: string;
2339
- className?: string;
2340
- disabled?: boolean;
2341
- label: string;
2342
- modes: readonly GameTerrainBuildModeOption[];
2343
- onModeChange?: ((modeId: string) => void) | undefined;
2344
- variant?: GameTerrainBuildVariant;
2345
- 'data-testid'?: string | undefined;
2346
- }
2347
-
2348
- export declare interface GameTerrainStatusState {
2349
- description?: string;
2350
- label: string;
2351
- progressLabel?: string;
2352
- progressMax?: number;
2353
- progressValue?: number;
2354
- tone?: GameTerrainStatusTone;
2355
- }
2356
-
2357
- export declare type GameTerrainStatusTone = Extract<GameBadgeTone, 'neutral' | 'success' | 'warning' | 'danger' | 'ai'>;
2358
-
2359
- export declare type GameTerrainToolCompactLabelMode = 'auto' | GameActionIconLabelMode;
2360
-
2361
- export declare type GameTerrainToolId = 'raise' | 'lower' | 'flatten' | 'smooth' | 'paint';
2362
-
2363
- export declare interface GameTerrainToolOption {
2364
- /** Accessible label override when icon/caption controls use short copy. */
2365
- ariaLabel?: string;
2366
- compactLabel?: string;
2367
- disabled?: boolean;
2368
- icon?: ClayIconName;
2369
- id: GameTerrainToolId | string;
2370
- label: string;
2371
- meta?: string;
2372
- shortcut?: string;
2373
- }
2374
-
2375
- export declare function GameTerrainToolStrip({ activeToolId, className, compactLabelMode, density, disabled, label, onToolChange, tools, variant, 'data-testid': testId, }: GameTerrainToolStripProps): ReactNode;
2376
-
2377
- export declare interface GameTerrainToolStripProps {
2378
- activeToolId: string;
2379
- className?: string;
2380
- compactLabelMode?: GameTerrainToolCompactLabelMode;
2381
- density?: GameSurfaceDensity;
2382
- disabled?: boolean;
2383
- label: string;
2384
- onToolChange?: ((toolId: string) => void) | undefined;
2385
- tools: readonly GameTerrainToolOption[];
2386
- variant?: GameTerrainBuildVariant;
2387
- 'data-testid'?: string | undefined;
2388
- }
2389
-
2390
1121
  export declare const GameTextArea: ForwardRefExoticComponent<GameTextAreaProps & RefAttributes<HTMLTextAreaElement>>;
2391
1122
 
2392
1123
  export declare interface GameTextAreaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
1124
+ hue?: GameUiHue;
2393
1125
  invalid?: boolean;
2394
1126
  }
2395
1127
 
@@ -2400,13 +1132,12 @@ export declare interface GameToastProps {
2400
1132
  tone?: 'info' | 'success' | 'danger';
2401
1133
  }
2402
1134
 
2403
- export declare function GameToggle({ checked, disabled, label, onClick, surface, liquidFinish, }: GameToggleProps): ReactNode;
1135
+ export declare function GameToggle({ checked, disabled, label, onClick, hue }: GameToggleProps): ReactNode;
2404
1136
 
2405
1137
  export declare interface GameToggleProps extends Pick<ButtonHTMLAttributes<HTMLButtonElement>, 'disabled' | 'onClick'> {
2406
1138
  checked: boolean;
2407
1139
  label: string;
2408
- surface?: Exclude<GameButtonSurface, 'plaque'>;
2409
- liquidFinish?: LiquidFinish;
1140
+ hue?: GameUiHue;
2410
1141
  }
2411
1142
 
2412
1143
  export declare function GameTooltip({ children, label }: GameTooltipProps): ReactNode;
@@ -2417,23 +1148,6 @@ export declare interface GameTooltipProps {
2417
1148
  label: string;
2418
1149
  }
2419
1150
 
2420
- export declare interface GameUiAction {
2421
- /** Accessible label override when the visible label is intentionally compact. */
2422
- ariaLabel?: string;
2423
- badge?: string;
2424
- /** Short visual caption for dense/icon tool strips. Falls back to `label`. */
2425
- compactLabel?: string;
2426
- disabled?: boolean;
2427
- icon?: ClayIconName;
2428
- id: string;
2429
- label: string;
2430
- meta?: string;
2431
- onAction?: (id: string) => void;
2432
- selected?: boolean;
2433
- shortcut?: string;
2434
- tone?: GameButtonVariant;
2435
- }
2436
-
2437
1151
  export declare interface GameUiHistoryEntry {
2438
1152
  id: string;
2439
1153
  kind: GameUiHistoryKind;
@@ -2444,254 +1158,81 @@ export declare interface GameUiHistoryEntry {
2444
1158
 
2445
1159
  export declare type GameUiHistoryKind = 'human' | 'mystery' | 'system';
2446
1160
 
2447
- export declare function GameUiPreview({ title, body }: GameUiPreviewProps): ReactNode;
1161
+ /** Palette meaning, independent of the host's visual style and light/dark mode. */
1162
+ export declare type GameUiHue = 'coral' | 'sun' | 'leaf' | 'sky' | 'grape' | 'pink';
2448
1163
 
2449
- export declare interface GameUiPreviewProps {
2450
- title?: string;
2451
- body?: string;
2452
- }
1164
+ export declare type GameUiStyle = (typeof GAME_UI_STYLES)[number];
2453
1165
 
2454
- export declare function GameUndoRedoActions({ canRedo, canUndo, className, disabled, label, onRedo, onUndo, redoLabel, undoLabel, variant, 'data-testid': testId, }: GameUndoRedoActionsProps): ReactNode;
1166
+ export declare type GameUiTheme = 'light' | 'dark';
2455
1167
 
2456
- export declare interface GameUndoRedoActionsProps extends GameUndoRedoState {
2457
- className?: string;
1168
+ declare type LinkAction = Omit<LinkAttributes, 'ref'> & {
2458
1169
  disabled?: boolean;
2459
- label: string;
2460
- onRedo?: (() => void) | undefined;
2461
- onUndo?: (() => void) | undefined;
2462
- variant?: GameTerrainBuildVariant;
2463
- 'data-testid'?: string | undefined;
2464
- }
2465
-
2466
- export declare interface GameUndoRedoState {
2467
- canRedo?: boolean | undefined;
2468
- canUndo?: boolean | undefined;
2469
- redoLabel?: string | undefined;
2470
- undoLabel?: string | undefined;
2471
- }
2472
-
2473
- export declare function GameWindowPanel({ allowMaximize, allowMinimize, children, className, defaultState, footer, icon, labels, onClose, onStateChange, state, title, ...props }: GameWindowPanelProps): ReactNode;
2474
-
2475
- export declare interface GameWindowPanelLabels {
2476
- close: string;
2477
- maximize: string;
2478
- minimize: string;
2479
- restore: string;
2480
- }
2481
-
2482
- export declare interface GameWindowPanelProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
2483
- /** Allow the maximize button. Defaults to true. */
2484
- allowMaximize?: boolean;
2485
- /** Allow the minimize button. Defaults to true. */
2486
- allowMinimize?: boolean;
2487
- children: ReactNode;
2488
- className?: string;
2489
- /** Uncontrolled initial state. Defaults to 'normal'. */
2490
- defaultState?: GameWindowState;
2491
- footer?: ReactNode;
2492
- icon?: ReactNode;
2493
- labels?: Partial<GameWindowPanelLabels>;
2494
- /** Rendering a close button requires an onClose handler. */
2495
- onClose?: () => void;
2496
- onStateChange?: (state: GameWindowState) => void;
2497
- /** Controlled window state. Leave undefined for uncontrolled usage. */
2498
- state?: GameWindowState;
2499
- title: string;
2500
- }
2501
-
2502
- export declare type GameWindowState = 'normal' | 'minimized' | 'maximized';
2503
-
2504
- export declare function getClayAssetBasePath(): string;
2505
-
2506
- export declare function getClayAssetMode(): ClayAssetMode;
2507
-
2508
- export declare function getClayCatalogPaths(): typeof CLAY_ASSETS.catalog;
2509
-
2510
- export declare function getClayIconPath(icon: ClayIconName, options?: ClayIconResolveOptions): string;
2511
-
2512
- /** Which visual families exist for an icon (in display order: game, then line). */
2513
- export declare function getClayIconStyles(icon: ClayIconName): ClayIconStyle[];
2514
-
2515
- export declare function getClaySourceAssetPath(icon: ClayIconName, style?: ClayIconStyle): string;
2516
-
2517
- export declare function getLiquidGooeyBudget(): LiquidGooeyBudgetState;
2518
-
2519
- export declare function getLiquidMetalContextBudget(): {
2520
- limit: number;
2521
- used: number;
1170
+ type?: never;
1171
+ linkComponent?: LinkComponent;
2522
1172
  };
2523
1173
 
2524
- export declare const IMAGE_MELT_DEFAULTS: Required<ImageMeltOptions>;
2525
-
2526
- export declare interface ImageMeltOptions {
2527
- /** Goo sigma: how far the bodies reach for each other and how wide colour averaging runs. */
2528
- blur?: number;
2529
- /** Alpha-contrast slope of the liquid boundary. */
2530
- contrast?: number;
2531
- /** How far each crisp face dissolves back before its neighbour. */
2532
- reach?: number;
2533
- /** Softness of the crisp-face dissolve mask. */
2534
- fade?: number;
2535
- /** Turbulence displacement of the molten layer, in px. */
2536
- warp?: number;
2537
- /** 0..1 two-liquid marbling strength in the touch area. */
2538
- mix?: number;
2539
- /** Blur of the marble pass's source colours. */
2540
- mixBlur?: number;
2541
- /** How deep the marble zone reaches into each card. */
2542
- gravity?: number;
2543
- /** Wavelength control of the warp noise. */
2544
- waviness?: number;
2545
- }
2546
-
2547
- /** Every form name, for shelves, docs and exhaustiveness checks. */
2548
- export declare const LIQUID_FORM_NAMES: readonly LiquidForm[];
2549
-
2550
- export declare const LIQUID_FORMS: Readonly<Record<LiquidForm, LiquidFormSpec>>;
2551
-
2552
- /**
2553
- * The default fraction is intentionally derived from the rendered surface,
2554
- * not from the requested waviness token. A fixed pixel displacement is safe
2555
- * on a large blob but can consume a thin control's whole visual height.
2556
- */
2557
- export declare const LIQUID_GOOEY_WAVINESS_MAX_FRACTION = 0.3;
1174
+ declare type LinkAttributes = Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'type' | 'download'> & {
1175
+ href: string;
1176
+ download?: string | boolean;
1177
+ ref?: Ref<HTMLAnchorElement>;
1178
+ };
2558
1179
 
2559
- /** Material is independent of a widget's meaning and a form's motion. */
2560
- export declare type LiquidFinish = 'matte' | 'glossy';
1180
+ declare type LinkComponent = ComponentType<LinkAttributes>;
2561
1181
 
2562
1182
  /**
2563
- * The named looks.
1183
+ * A shared liquid silhouette behind crisp item content.
1184
+ *
1185
+ * Put the visual treatment on the group: `fill`, `stroke`, and `shadow` are
1186
+ * rebuilt on the merged silhouette. Do NOT add border, outline, or box-shadow
1187
+ * to children directly; those styles live on the content layer and cannot
1188
+ * merge with the liquid shape.
1189
+ *
1190
+ * Its motion vocabulary is intentionally small and semantic:
2564
1191
  *
2565
- * Bodies first, then the forms that only mean something between siblings, and
2566
- * within each run they are ordered by how much cohesion the liquid is losing:
2567
- * `set` stops being liquid at all, `press` barely deforms, `drain` stops being
2568
- * a shape.
1192
+ * | gesture | meaning |
1193
+ * | --- | --- |
1194
+ * | **merge** (Morph) | two things become one: reward settling, collecting, confirming |
1195
+ * | **follow** (Move) | selection, progress, dragging |
1196
+ * | **shape** (Morph shape) | the liquid changes size and corners like jelly |
1197
+ * | **bend** | speed bows the surface while content stays glued to it |
1198
+ * | **dissolve** | replacement, transition |
1199
+ * | **still** | THE DEFAULT |
2569
1200
  *
2570
- * Six of these were the whole vocabulary until the brand needed more of it,
2571
- * and six is worth saying out loud as *where it got to* rather than as a
2572
- * complete set. A form earns its place by having something to say that none of
2573
- * the others says. That is the only entry requirement — and it is also why a
2574
- * form existing here is not permission to put it on a screen: the recorded
2575
- * finding is that gooey on a static solid block reads as damage, and that one
2576
- * screen wants one liquid element carrying one layer of intent.
1201
+ * Liquid appears only on a state change the user caused. There is no ambient,
1202
+ * idle, or decorative liquid; keep the filter-area budget visible when more
1203
+ * than one group is on a screen.
2577
1204
  */
2578
- export declare type LiquidForm = 'set' | 'press' | 'swell' | 'settle' | 'fill' | 'reach' | 'ripple' | 'drain' | 'follow' | 'merge' | 'split' | 'bead';
2579
-
2580
- /** Filter-level knobs a form fixes on the group. */
2581
- export declare interface LiquidFormGroup {
2582
- readonly blur: number;
2583
- readonly contrast: number;
2584
- /**
2585
- * How far the outline swells outward from the control's box, in px. The
2586
- * bulge is outward-only, so this never eats into a label's padding, and it
2587
- * is clamped to 18% of the shorter side so one number suits a 44px button
2588
- * and a 14px meter.
2589
- */
2590
- readonly blob: number;
2591
- /** How many swells go round the outline. 2 is lazy, 5 is busy. */
2592
- readonly lobes: number;
2593
- /**
2594
- * Volume. The edge says 「liquid」 only as an outline; this is what makes the
2595
- * inside of the body look like a material instead of a flat sticker.
2596
- */
2597
- readonly gloss: number;
2598
- readonly filterPadding: number;
2599
- /**
2600
- * What the body casts on the ground at rest, in CSS box-shadow syntax.
2601
- *
2602
- * Every liquid button floated before this existed: the flat button has a lip
2603
- * *and* `--game-ui-shadow-button`, and the liquid one had neither, which is
2604
- * most of why it read flatter than its own flat twin. A form is where this
2605
- * belongs rather than a call site, because how far a body sits off the
2606
- * surface is part of what the form means.
2607
- *
2608
- * Keep it to outer layers with no spread. `liquidGooeyShadow` compiles those
2609
- * to a CSS `drop-shadow()` on the silhouette — the compositor does the blur,
2610
- * the shadow hugs the poured outline rather than a rounded rectangle, and it
2611
- * is allowed to paint outside the filter region. Inset and spread are legal
2612
- * but stay inside the SVG filter and are charged against the filter-area
2613
- * budget, so they are a deliberate purchase, not a default.
2614
- */
2615
- readonly shadow?: string;
2616
- /**
2617
- * What it casts while the form is engaged, when that differs.
2618
- *
2619
- * A body that squashes toward the surface gets *closer* to it, and a real
2620
- * contact shadow answers by tightening and darkening rather than staying
2621
- * put. Leaving this out is fine; the rest shadow then holds through the
2622
- * whole gesture, which is what a form with no vertical travel wants.
2623
- */
2624
- readonly shadowEngaged?: string;
2625
- }
2626
-
2627
1205
  /**
2628
- * Resolve a form into group props, letting a caller override single knobs.
1206
+ * A liquid body's paint.
2629
1207
  *
2630
- * Overrides are merged rather than replacing the bundle, so a surface that
2631
- * needs one different value does not have to restate the other three and
2632
- * silently drift from the form it claims to be using.
1208
+ * A colour paints the body flat. `{ top, bottom }` is the light the coloured
1209
+ * liquid theme settled on (University, 2026-09-30): a narrow brighter band at
1210
+ * the top, the colour falling from `top` to `bottom`, and the foot a touch
1211
+ * deeper, so a body reads as having thickness without a white rim. `sheen` is
1212
+ * how far the top band leans to white (0–1, default 0.3). Colours may be tokens:
1213
+ * the bands are mixed with CSS `color-mix`, not computed here.
2633
1214
  */
2634
- export declare function liquidFormGroup(form: LiquidForm, overrides?: Partial<LiquidFormGroup>): LiquidFormGroup;
1215
+ export declare type LiquidFill = string | {
1216
+ readonly top: string;
1217
+ readonly bottom?: string;
1218
+ readonly sheen?: number;
1219
+ };
2635
1220
 
2636
- /** Item-level behaviour a form fixes on each participating item. */
2637
- export declare interface LiquidFormItem {
2638
- readonly effect?: 'morph' | 'melt' | 'bend';
1221
+ export declare type LiquidForm = 'set' | 'press' | 'swell' | 'settle' | 'fill' | 'reach' | 'ripple' | 'drain' | 'follow' | 'merge' | 'split' | 'bead';
1222
+
1223
+ declare interface LiquidFormItem {
1224
+ readonly effect?: 'morph';
2639
1225
  readonly morph?: MorphTuning;
2640
1226
  readonly transition?: Transition;
2641
- readonly dissolve?: boolean;
2642
1227
  }
2643
1228
 
2644
- /** Resolve a form into item props, with the same merge-don't-replace rule. */
2645
1229
  export declare function liquidFormItem(form: LiquidForm, overrides?: LiquidFormItem): LiquidFormItem;
2646
1230
 
2647
- /**
2648
- * Whether a form describes one body or a relationship between siblings.
2649
- *
2650
- * `LiquidSurface` draws one silhouette, so it can only honour a `body` form;
2651
- * a `group` form says something about the space *between* items and needs a
2652
- * `LiquidGroup` the caller arranges. That distinction used to live in a
2653
- * parenthetical — `ENGAGED` carried two entries marked 「present for
2654
- * exhaustiveness」 — which meant picking the wrong one failed silently, by
2655
- * rendering a body that never moves. Naming it lets a shelf group itself, lets
2656
- * a caller check, and lets the kit say so out loud in development.
2657
- */
2658
- export declare type LiquidFormKind = 'body' | 'group';
2659
-
2660
- export declare interface LiquidFormSpec {
2661
- /** One sentence on what a viewer sees, for docs and for picking. */
2662
- readonly summary: string;
2663
- /** One body, or a relationship between siblings the caller arranges. */
2664
- readonly kind: LiquidFormKind;
2665
- readonly group: LiquidFormGroup;
2666
- /**
2667
- * Group knobs that change while the form is engaged.
2668
- *
2669
- * Only `set` uses this, and only because `set` is the one form whose subject
2670
- * is *stopping* being liquid — without it the vocabulary can say a dozen
2671
- * degrees of liquid and never say 「solid」. Be careful with it: `blob` is
2672
- * path data and `gloss` is a filter pass, so neither tweens. They snap. For
2673
- * `set` that snap is the gesture — a thing clicking into place — and for
2674
- * anything continuous it would be a flicker, which is why this is not a
2675
- * general-purpose second bundle.
2676
- */
2677
- readonly groupEngaged?: Partial<LiquidFormGroup>;
2678
- readonly item: LiquidFormItem;
2679
- }
2680
-
2681
- /** The one-line description of each form, for pickers and documentation. */
2682
- export declare function liquidFormSummary(form: LiquidForm): string;
2683
-
2684
1231
  declare interface LiquidGooeyBudgetOptions {
2685
1232
  maxAnimatedGroups?: number;
2686
1233
  maxFilterArea?: number;
2687
1234
  }
2688
1235
 
2689
- declare interface LiquidGooeyBudgetState {
2690
- maxAnimatedGroups: number;
2691
- maxFilterArea: number;
2692
- activeGroups: number;
2693
- }
2694
-
2695
1236
  /**
2696
1237
  * Merges nearby item silhouettes into one shape while leaving their content
2697
1238
  * accessible and separately filtered. Morph content may cross-blur while it
@@ -2700,32 +1241,9 @@ declare interface LiquidGooeyBudgetState {
2700
1241
  * shared treatment to <LiquidGroup>.
2701
1242
  */
2702
1243
  export declare const LiquidGroup: ForwardRefExoticComponent<LiquidGroupProps & RefAttributes<HTMLDivElement>> & {
2703
- Item: ForwardRefExoticComponent<LiquidItemProps & RefAttributes<HTMLDivElement>>;
1244
+ Item: ForwardRefExoticComponent< LiquidItemProps & RefAttributes<HTMLDivElement>>;
2704
1245
  };
2705
1246
 
2706
- /**
2707
- * A shared liquid silhouette behind crisp item content.
2708
- *
2709
- * Put the visual treatment on the group: `fill`, `stroke`, and `shadow` are
2710
- * rebuilt on the merged silhouette. Do NOT add border, outline, or box-shadow
2711
- * to children directly; those styles live on the content layer and cannot
2712
- * merge with the liquid shape.
2713
- *
2714
- * Its motion vocabulary is intentionally small and semantic:
2715
- *
2716
- * | gesture | meaning |
2717
- * | --- | --- |
2718
- * | **merge** (Morph) | two things become one: reward settling, collecting, confirming |
2719
- * | **follow** (Move) | selection, progress, dragging |
2720
- * | **shape** (Morph shape) | the liquid changes size and corners like jelly |
2721
- * | **bend** | speed bows the surface while content stays glued to it |
2722
- * | **dissolve** | replacement, transition |
2723
- * | **still** | THE DEFAULT |
2724
- *
2725
- * Liquid appears only on a state change the user caused. There is no ambient,
2726
- * idle, or decorative liquid; keep the filter-area budget visible when more
2727
- * than one group is on a screen.
2728
- */
2729
1247
  export declare interface LiquidGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
2730
1248
  children: ReactNode;
2731
1249
  /** Goo blur sigma in px. Larger values bridge larger gaps. */
@@ -2737,10 +1255,11 @@ export declare interface LiquidGroupProps extends Omit<HTMLAttributes<HTMLDivEle
2737
1255
  * curved surface so it reads as a material rather than as a silhouette.
2738
1256
  */
2739
1257
  gloss?: number;
2740
- /** Optional named finish. An explicit raw gloss wins; omitted preserves the old rendering. */
2741
- liquidFinish?: LiquidFinish;
2742
- /** Surface fill. Defaults to the kit's theme surface token. */
2743
- fill?: string;
1258
+ /**
1259
+ * Surface fill. Defaults to the kit's theme surface token. A colour paints
1260
+ * the body flat; `{ top, bottom }` gives it light (see `LiquidFill`).
1261
+ */
1262
+ fill?: LiquidFill;
2744
1263
  /** Extra filter-region slack in px for the silhouette's painted edges. */
2745
1264
  filterPadding?: number;
2746
1265
  /** Optional token-based box-shadow syntax rebuilt on the merged silhouette. */
@@ -2764,8 +1283,6 @@ export declare interface LiquidGroupProps extends Omit<HTMLAttributes<HTMLDivEle
2764
1283
  motion?: 'auto' | 'follow' | 'reduced';
2765
1284
  }
2766
1285
 
2767
- export declare const LiquidItem: ForwardRefExoticComponent<LiquidItemProps & RefAttributes<HTMLDivElement>>;
2768
-
2769
1286
  export declare interface LiquidItemProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
2770
1287
  /**
2771
1288
  * Crisp content rendered above the merged silhouette. Do NOT add border,
@@ -2796,48 +1313,21 @@ export declare interface LiquidItemProps extends Omit<HTMLAttributes<HTMLDivElem
2796
1313
  */
2797
1314
  blob?: BlobShape;
2798
1315
  /**
2799
- * Select the adopted item surface behavior. Bend follows child geometry.
1316
+ * Select the core Morph behavior. Optional deformation belongs to liquid-effects.
2800
1317
  * Move is a group gesture (`motion="follow"`), not an item effect.
2801
1318
  */
2802
- effect?: 'morph' | 'melt' | 'bend';
1319
+ effect?: 'morph';
2803
1320
  /** Morph shape, tempo, bounce, and content cross-blur tuning. */
2804
1321
  morph?: MorphTuning;
2805
- /** Bend strengths for vertical bow and horizontal cap deformation. */
2806
- bend?: BendTuning;
2807
- /** Follow a child moved by external code; Bend implies this automatically. */
1322
+ /** Follow a child moved by external code. */
2808
1323
  observe?: boolean;
2809
- /** Numeric knobs for the pairwise image Melt surface, plus an optional source URL. */
2810
- melt?: ImageMeltOptions & {
2811
- src?: string;
2812
- };
2813
- /** Contact image modifier. Text and other DOM content remain on the crisp layer. */
2814
- dissolve?: boolean | number | DissolveOptions;
2815
- }
2816
-
2817
- export declare function LiquidMetalButton({ children, className, onClick, sound, type, renderer, ...props }: LiquidMetalButtonProps): ReactNode;
2818
-
2819
- export declare interface LiquidMetalButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
2820
- children: ReactNode;
2821
- sound?: GameInteractionSoundOptions | false;
2822
- /**
2823
- * `auto` (default) starts on CSS and upgrades to WebGL when the four
2824
- * gates pass. `css` never spends a context — needed so a side-by-side
2825
- * demo can show the fallback without the CSS column taking the slot
2826
- * the WebGL column needs. `webgl` still respects the gates; it is not
2827
- * a way to bypass reduced-motion or the budget.
2828
- */
2829
- renderer?: LiquidMetalRendererMode;
2830
1324
  }
2831
1325
 
2832
- export declare type LiquidMetalRendererMode = 'auto' | 'css' | 'webgl';
2833
-
2834
- export declare function LiquidSurface({ children, liquidFinish, form, active, fill, stroke, shadow: shadowOverride, radius, className, style, }: LiquidSurfaceProps): ReactNode;
1326
+ export declare function LiquidSurface({ children, form, active, fill, stroke, shadow: shadowOverride, gloss: glossOverride, outline, radius, className, style, }: LiquidSurfaceProps): ReactNode;
2835
1327
 
2836
1328
  export declare interface LiquidSurfaceProps {
2837
1329
  children: ReactNode;
2838
- /** Omitted keeps the form's existing lighting; matte and glossy share the same motion. */
2839
- liquidFinish?: LiquidFinish;
2840
- /** Which named look. Defaults to the press form, the one a control wants. */
1330
+ /** Which motion. All forms share one thin liquid material. */
2841
1331
  form?: LiquidForm;
2842
1332
  /**
2843
1333
  * Whether the form is engaged: pressed for `press`, landed for `settle`,
@@ -2845,7 +1335,20 @@ export declare interface LiquidSurfaceProps {
2845
1335
  */
2846
1336
  active?: boolean;
2847
1337
  /** Silhouette paint. Defaults to the kit's raised surface token. */
2848
- fill?: string;
1338
+ fill?: LiquidFill;
1339
+ /**
1340
+ * Advanced primitive override. Defaults to the shared thin material;
1341
+ * ordinary controls do not expose a second material selector.
1342
+ */
1343
+ gloss?: number;
1344
+ /**
1345
+ * The rest outline's lobing, overriding the form's own: `amplitude` in px
1346
+ * swells outward, `lobes` is how many go round (2 lazy, 5 busy).
1347
+ */
1348
+ outline?: {
1349
+ readonly amplitude: number;
1350
+ readonly lobes?: number;
1351
+ };
2849
1352
  stroke?: string;
2850
1353
  /** Overrides the form's own cast shadow. `none` removes it. */
2851
1354
  shadow?: string;
@@ -2870,65 +1373,13 @@ export declare interface MorphTuning {
2870
1373
 
2871
1374
  export declare function playGameCardRevealSound(rarity: 'common' | 'rare' | 'legendary', options?: GameInteractionSoundOptions): boolean;
2872
1375
 
2873
- /**
2874
- * A card turning over: a short falling sweep, and for a rarer card one or two
2875
- * bell notes after it. Synthesized, so nothing is downloaded; like every kit
2876
- * sound, the browser lets it play only once the page has been interacted with.
2877
- */
2878
- export declare function playGameCardRevealSoundForContext(audioContext: GameInteractionAudioContext, rarity: 'common' | 'rare' | 'legendary', options?: GameInteractionSoundOptions): boolean;
2879
-
2880
1376
  export declare function playGameInteractionSound(options?: GameInteractionSoundOptions): boolean;
2881
1377
 
2882
1378
  export declare function playGameInteractionSoundForContext(audioContext: GameInteractionAudioContext, options?: GameInteractionSoundOptions): boolean;
2883
1379
 
2884
- declare interface ResolvedDissolveOptions {
2885
- blur: number;
2886
- warp: number;
2887
- pull: number;
2888
- range: number;
2889
- zone: number;
2890
- mix: number;
2891
- gravity: number;
2892
- taper: number;
2893
- warpFreq: number;
2894
- flowSpeed: number;
2895
- warpStyle: 'fractalNoise' | 'turbulence';
2896
- detail: number;
2897
- active: boolean;
2898
- releaseMs: number;
2899
- fadeMs: number;
2900
- strength: number;
2901
- sink: number;
2902
- seamBlur: number;
2903
- }
2904
-
2905
- export declare function resolveDissolveOptions(element: HTMLElement | null, input: DissolveValue): ResolvedDissolveOptions;
2906
-
2907
- /**
2908
- * Point the sculpted set at somewhere other than the default path — a CDN, a
2909
- * sub-path deploy, a host whose static root is not `/`. Pass no trailing slash.
2910
- *
2911
- * The copy command mirrors the default layout, so a consumer that runs
2912
- * `swimmer-ui-assets public` never needs this.
2913
- */
2914
- export declare function setClayAssetBasePath(basePath: string): void;
2915
-
2916
- /**
2917
- * Switch how clay icons resolve globally.
2918
- * - 'inline' (default): lettered placeholders. They are not the icon set —
2919
- * every one is the same rounded square with a different glyph and colour.
2920
- * They exist so a fresh install renders *something* rather than a broken
2921
- * image, and shipping them is a bug.
2922
- * - 'source': the real sculpted PNGs under the base path. Get the files there
2923
- * with `npx swimmer-ui-assets <publicDir>`.
2924
- */
2925
- export declare function setClayAssetMode(mode: ClayAssetMode): void;
2926
-
2927
1380
  /** Update one or both host-side performance limits. */
2928
1381
  export declare function setLiquidGooeyBudget(next: number | LiquidGooeyBudgetOptions): void;
2929
1382
 
2930
- export declare function setLiquidMetalContextBudget(nextLimit: number): void;
2931
-
2932
1383
  /** Small spring-to-easing compiler used by the shared group clock. */
2933
1384
  declare interface SpringConfig {
2934
1385
  stiffness?: number;
@@ -2956,11 +1407,4 @@ export declare function useGameCardOrientation(): {
2956
1407
  reducedMotion: boolean;
2957
1408
  };
2958
1409
 
2959
- /**
2960
- * Whether a waiting screen should appear yet: only once `waiting` has stayed
2961
- * true for `delayMs` without a break. A scene change that finishes inside the
2962
- * delay never shows the screen at all.
2963
- */
2964
- export declare function useGameSplashDelay(waiting: boolean, delayMs?: number): boolean;
2965
-
2966
1410
  export { }