@pieai/swimmer-ui-kit 2.14.0 → 3.0.0-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (848) hide show
  1. package/CHANGELOG.md +62 -1
  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-DwU_Vvi8.js +1597 -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 +364 -1941
  481. package/dist/index.js +839 -9147
  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 +694 -662
  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-r7c1S2ZB.js +0 -461
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. */
@@ -25,849 +24,18 @@ declare interface BlobShape {
25
24
  readonly seed?: number;
26
25
  /** How many swells go round the outline. 2 is lazy, 5 is busy. */
27
26
  readonly lobes?: number;
28
- /** Rotates the swells around the outline; the knob a press animates. */
29
- readonly phase?: number;
30
- }
31
-
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)";
46
- };
47
-
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
- };
78
-
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
- };
105
-
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
- };
113
-
114
- export declare const CLAY_GAME_SPRITE_NAMES: ClayGameSpriteName[];
115
-
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
- };
153
-
154
- export declare const CLAY_ICON_NAMES: ClayIconName[];
155
-
156
- export declare const CLAY_ICON_VARIANTS: {
157
- ai: {
158
- line: string;
159
- };
160
- alert: {
161
- game: string;
162
- line: string;
163
- };
164
- card: {
165
- line: string;
166
- };
167
- chat: {
168
- line: string;
169
- };
170
- check: {
171
- line: string;
172
- };
173
- close: {
174
- game: string;
175
- line: string;
176
- };
177
- coin: {
178
- game: string;
179
- line: string;
180
- };
181
- compass: {
182
- line: string;
183
- };
184
- copy: {
185
- line: string;
186
- };
187
- crown: {
188
- game: string;
189
- line: string;
190
- };
191
- energy: {
192
- game: string;
193
- line: string;
194
- };
195
- gem: {
196
- game: string;
197
- line: string;
198
- };
199
- gift: {
200
- game: string;
201
- line: string;
202
- };
203
- globe: {
204
- line: string;
205
- };
206
- history: {
207
- line: string;
208
- };
209
- home: {
210
- line: string;
211
- };
212
- hourglass: {
213
- game: string;
214
- line: string;
215
- };
216
- laurel: {
217
- game: string;
218
- };
219
- lock: {
220
- game: string;
221
- line: string;
222
- };
223
- lucky: {
224
- game: string;
225
- };
226
- mail: {
227
- game: string;
228
- line: string;
229
- };
230
- medal: {
231
- game: string;
232
- line: string;
233
- };
234
- mission: {
235
- game: string;
236
- };
237
- mobile: {
238
- line: string;
239
- };
240
- portal: {
241
- game: string;
242
- line: string;
243
- };
244
- scroll: {
245
- game: string;
246
- line: string;
247
- };
248
- settings: {
249
- game: string;
250
- line: string;
251
- };
252
- shirt: {
253
- line: string;
254
- };
255
- shop: {
256
- game: string;
257
- line: string;
258
- };
259
- smile: {
260
- line: string;
261
- };
262
- timer: {
263
- game: string;
264
- line: string;
265
- };
266
- trophy: {
267
- game: string;
268
- line: string;
269
- };
270
- undo: {
271
- line: string;
272
- };
273
- redo: {
274
- line: string;
275
- };
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";
542
- };
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)";
562
- };
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)";
581
- };
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)";
597
- };
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)";
604
- };
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)";
610
- };
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)";
617
- };
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)";
625
- };
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)";
633
- };
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;
645
- };
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)";
658
- };
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)";
671
- };
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)";
680
- };
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)";
765
- };
766
- };
767
-
768
- export declare type ClayAssetGroup = keyof typeof CLAY_ASSETS;
769
-
770
- export declare type ClayAssetMode = 'inline' | 'source';
771
-
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;
27
+ /** Rotates the swells around the outline; the knob a press animates. */
28
+ readonly phase?: number;
868
29
  }
869
30
 
870
- export declare type DissolveValue = boolean | number | DissolveOptions;
31
+ declare type ButtonAction = ButtonHTMLAttributes<HTMLButtonElement> & {
32
+ href?: undefined;
33
+ linkComponent?: undefined;
34
+ target?: never;
35
+ download?: never;
36
+ };
37
+
38
+ declare type CornerRadii = [number, number, number, number];
871
39
 
872
40
  declare interface EvolveOptions {
873
41
  /** Spring driving the liquid mass's centre. */
@@ -893,55 +61,6 @@ declare interface EvolveOptions {
893
61
  travel?: number;
894
62
  }
895
63
 
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
64
  export declare function FirstSessionOnboarding({ labels, onDismiss, open, }: FirstSessionOnboardingProps): ReactNode;
946
65
 
947
66
  export declare interface FirstSessionOnboardingLabels {
@@ -964,16 +83,207 @@ export declare interface FirstSessionOnboardingStep {
964
83
  title: string;
965
84
  }
966
85
 
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";
86
+ export declare const GAME_ICON_NAMES: GameIconName[];
87
+
88
+ declare const GAME_ICONS: {
89
+ readonly ai: {
90
+ readonly name: "ai";
91
+ 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"];
92
+ };
93
+ readonly alert: {
94
+ readonly name: "alert";
95
+ 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"];
96
+ };
97
+ readonly card: {
98
+ readonly name: "card";
99
+ 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"];
100
+ };
101
+ readonly chat: {
102
+ readonly name: "chat";
103
+ 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"];
104
+ };
105
+ readonly check: {
106
+ readonly name: "check";
107
+ readonly paths: readonly ["M20 6 9 17l-5-5"];
108
+ };
109
+ readonly close: {
110
+ readonly name: "close";
111
+ readonly paths: readonly ["M18 6 6 18", "m6 6 12 12"];
112
+ };
113
+ readonly coin: {
114
+ readonly name: "coin";
115
+ 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"];
116
+ };
117
+ readonly compass: {
118
+ readonly name: "compass";
119
+ 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"];
120
+ };
121
+ readonly copy: {
122
+ readonly name: "copy";
123
+ 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"];
124
+ };
125
+ readonly crown: {
126
+ readonly name: "crown";
127
+ 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"];
128
+ };
129
+ readonly energy: {
130
+ readonly name: "energy";
131
+ 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"];
132
+ };
133
+ readonly gem: {
134
+ readonly name: "gem";
135
+ 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"];
136
+ };
137
+ readonly gift: {
138
+ readonly name: "gift";
139
+ 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"];
140
+ };
141
+ readonly globe: {
142
+ readonly name: "globe";
143
+ 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"];
144
+ };
145
+ readonly history: {
146
+ readonly name: "history";
147
+ 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"];
148
+ };
149
+ readonly redo: {
150
+ readonly name: "redo";
151
+ readonly paths: readonly ["M21 7v6h-6", "M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7"];
152
+ };
153
+ readonly undo: {
154
+ readonly name: "undo";
155
+ readonly paths: readonly ["M3 7v6h6", "M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13"];
156
+ };
157
+ readonly home: {
158
+ readonly name: "home";
159
+ 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"];
160
+ };
161
+ readonly hourglass: {
162
+ readonly name: "hourglass";
163
+ 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"];
164
+ };
165
+ readonly laurel: {
166
+ readonly name: "laurel";
167
+ 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"];
168
+ };
169
+ readonly lock: {
170
+ readonly name: "lock";
171
+ 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"];
172
+ };
173
+ readonly lucky: {
174
+ readonly name: "lucky";
175
+ 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"];
176
+ };
177
+ readonly mail: {
178
+ readonly name: "mail";
179
+ 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"];
180
+ };
181
+ readonly medal: {
182
+ readonly name: "medal";
183
+ 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"];
184
+ };
185
+ readonly mission: {
186
+ readonly name: "mission";
187
+ 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"];
188
+ };
189
+ readonly mobile: {
190
+ readonly name: "mobile";
191
+ 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"];
192
+ };
193
+ readonly portal: {
194
+ readonly name: "portal";
195
+ 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"];
196
+ };
197
+ readonly scroll: {
198
+ readonly name: "scroll";
199
+ 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"];
200
+ };
201
+ readonly settings: {
202
+ readonly name: "settings";
203
+ 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"];
204
+ };
205
+ readonly shirt: {
206
+ readonly name: "shirt";
207
+ 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"];
208
+ };
209
+ readonly shop: {
210
+ readonly name: "shop";
211
+ 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"];
212
+ };
213
+ readonly smile: {
214
+ readonly name: "smile";
215
+ 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"];
216
+ };
217
+ readonly timer: {
218
+ readonly name: "timer";
219
+ readonly paths: readonly ["M10 2L14 2", "M12 14L15 11", "M4 14a8 8 0 1 0 16 0a8 8 0 1 0 -16 0"];
220
+ };
221
+ readonly trophy: {
222
+ readonly name: "trophy";
223
+ 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"];
224
+ };
225
+ readonly vote: {
226
+ readonly name: "vote";
227
+ 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"];
228
+ };
229
+ readonly 'arrow-left': {
230
+ readonly name: "arrow-left";
231
+ readonly paths: readonly ["m12 19-7-7 7-7", "M19 12H5"];
232
+ };
233
+ readonly 'arrow-right': {
234
+ readonly name: "arrow-right";
235
+ readonly paths: readonly ["M5 12h14", "m12 5 7 7-7 7"];
236
+ };
237
+ readonly 'chevron-down': {
238
+ readonly name: "chevron-down";
239
+ readonly paths: readonly ["m6 9 6 6 6-6"];
240
+ };
241
+ readonly 'chevron-up': {
242
+ readonly name: "chevron-up";
243
+ readonly paths: readonly ["m18 15-6-6-6 6"];
244
+ };
245
+ readonly download: {
246
+ readonly name: "download";
247
+ 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"];
248
+ };
249
+ readonly external: {
250
+ readonly name: "external";
251
+ 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"];
252
+ };
253
+ readonly menu: {
254
+ readonly name: "menu";
255
+ readonly paths: readonly ["M4 5h16", "M4 12h16", "M4 19h16"];
256
+ };
257
+ readonly minus: {
258
+ readonly name: "minus";
259
+ readonly paths: readonly ["M5 12h14"];
260
+ };
261
+ readonly moon: {
262
+ readonly name: "moon";
263
+ 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"];
264
+ };
265
+ readonly plus: {
266
+ readonly name: "plus";
267
+ readonly paths: readonly ["M5 12h14", "M12 5v14"];
268
+ };
269
+ readonly search: {
270
+ readonly name: "search";
271
+ readonly paths: readonly ["m21 21-4.34-4.34", "M3 11a8 8 0 1 0 16 0a8 8 0 1 0 -16 0"];
272
+ };
273
+ readonly sun: {
274
+ readonly name: "sun";
275
+ 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"];
276
+ };
277
+ readonly user: {
278
+ readonly name: "user";
279
+ 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"];
280
+ };
974
281
  };
975
282
 
976
- export declare const GAME_UI_PREVIEW_MESSAGES: readonly GameUiHistoryEntry[];
283
+ export declare const GAME_UI_DEFAULT_STYLE: GameUiStyle;
284
+
285
+ /** Appearance and illumination are independent host choices, not component variants. */
286
+ export declare const GAME_UI_STYLES: readonly ["candy", "pastel", "mist", "grey", "outline", "ink"];
977
287
 
978
288
  export declare const GAME_UI_TARGETS: {
979
289
  readonly touchMinimumPx: 44;
@@ -991,13 +301,13 @@ export declare const GAME_UI_TARGETS: {
991
301
  /**
992
302
  * The semantic `--game-ui-*` custom properties a *complete* theme must
993
303
  * override for full fidelity — this is the same list the official
994
- * `[data-game-ui-theme='night']` block in theme.css satisfies, enforced by
304
+ * `[data-game-ui-theme='dark']` block in theme.css satisfies, enforced by
995
305
  * a guard test in src/tokens.test.ts. A downstream product building its own
996
306
  * full theme (e.g. `[data-game-ui-theme='abyss']`) can reuse this constant
997
307
  * to check its own CSS for the same completeness instead of eyeballing it —
998
308
  * see "自定义第三主题" in design-system-guide.md for a usage example.
999
309
  */
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"];
310
+ 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
311
 
1002
312
  export declare const GAME_UI_TOKENS: {
1003
313
  readonly morphShape: "var(--game-ui-liquid-gooey-morph-shape)";
@@ -1083,12 +393,10 @@ export declare const GAME_UI_TOKENS: {
1083
393
  readonly dissolveStrength: "var(--game-ui-liquid-gooey-dissolve-strength)";
1084
394
  readonly dissolveSink: "var(--game-ui-liquid-gooey-dissolve-sink)";
1085
395
  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)";
396
+ readonly iconSm: "var(--game-ui-icon-sm)";
397
+ readonly iconMd: "var(--game-ui-icon-md)";
398
+ readonly iconLg: "var(--game-ui-icon-lg)";
1090
399
  readonly buttonSkinMinWidth: "var(--game-ui-asset-button-min-width)";
1091
- readonly cardFanWidth: "var(--game-ui-asset-card-fan-width)";
1092
400
  readonly stageTileMinHeight: "var(--game-ui-stage-tile-min-height)";
1093
401
  readonly terrainSwatchSize: "var(--game-ui-terrain-swatch-size)";
1094
402
  readonly terrainToolHitSize: "var(--game-ui-terrain-tool-hit-size)";
@@ -1098,7 +406,7 @@ export declare const GAME_UI_TOKENS: {
1098
406
  readonly hud: "var(--game-ui-z-hud)";
1099
407
  readonly sidebar: "var(--game-ui-z-sidebar)";
1100
408
  readonly overlay: "var(--game-ui-z-overlay)";
1101
- readonly modal: "var(--game-ui-z-modal)";
409
+ readonly zModal: "var(--game-ui-z-modal)";
1102
410
  readonly toast: "var(--game-ui-z-toast)";
1103
411
  readonly fast: "var(--game-ui-motion-fast)";
1104
412
  readonly base: "var(--game-ui-motion-base)";
@@ -1106,9 +414,7 @@ export declare const GAME_UI_TOKENS: {
1106
414
  readonly easingPop: "var(--game-ui-ease-pop)";
1107
415
  readonly easingSoft: "var(--game-ui-ease-soft)";
1108
416
  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)";
417
+ readonly shadowRaised: "var(--game-ui-shadow-raised)";
1112
418
  readonly stroke: "var(--game-ui-stroke)";
1113
419
  readonly scrollbarSize: "var(--game-ui-scrollbar-size)";
1114
420
  readonly scrollbarTrack: "var(--game-ui-scrollbar-track)";
@@ -1117,6 +423,8 @@ export declare const GAME_UI_TOKENS: {
1117
423
  readonly bead: "var(--game-ui-radius-bead)";
1118
424
  readonly control: "var(--game-ui-radius-control)";
1119
425
  readonly card: "var(--game-ui-radius-card)";
426
+ readonly radiusPanel: "var(--game-ui-radius-panel)";
427
+ readonly radiusModal: "var(--game-ui-radius-modal)";
1120
428
  readonly px2: "var(--game-ui-space-2)";
1121
429
  readonly px4: "var(--game-ui-space-4)";
1122
430
  readonly px6: "var(--game-ui-space-6)";
@@ -1152,7 +460,7 @@ export declare const GAME_UI_TOKENS: {
1152
460
  readonly playfieldScrim: "var(--game-ui-playfield-scrim)";
1153
461
  readonly surface: "var(--game-ui-surface)";
1154
462
  readonly surfaceRaised: "var(--game-ui-surface-raised)";
1155
- readonly panelStrong: "var(--game-ui-panel-strong)";
463
+ readonly surfaceSunken: "var(--game-ui-surface-sunken)";
1156
464
  readonly text: "var(--game-ui-text)";
1157
465
  readonly textMuted: "var(--game-ui-text-muted)";
1158
466
  readonly accent: "var(--game-ui-accent)";
@@ -1167,98 +475,6 @@ export declare const GAME_UI_TOKENS: {
1167
475
  readonly disabled: "var(--game-ui-disabled)";
1168
476
  };
1169
477
 
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
478
  export declare function GameAvatar({ className, name, size, src, status, surface, }: GameAvatarProps): ReactNode;
1263
479
 
1264
480
  export declare interface GameAvatarProps {
@@ -1284,122 +500,24 @@ export declare interface GameBadgeProps {
1284
500
 
1285
501
  export declare type GameBadgeTone = 'neutral' | 'success' | 'warning' | 'danger' | 'ai';
1286
502
 
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';
1301
-
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;
503
+ export declare const GameButton: ForwardRefExoticComponent<GameButtonProps & RefAttributes<ActionElement>>;
1383
504
 
1384
- export declare interface GameButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
505
+ export declare type GameButtonProps = ActionProps & {
1385
506
  children: ReactNode;
1386
- /** Fill the available row, including the liquid silhouette and hit target. */
1387
507
  fullWidth?: boolean;
1388
- /** Named liquid material. Only used with surface="liquid"; omitted keeps the current look. */
1389
- liquidFinish?: LiquidFinish;
508
+ hue?: GameUiHue;
1390
509
  sound?: GameInteractionSoundOptions | false;
1391
- /** Disable the scale-on-press feedback where the motion would distract. */
1392
510
  static?: boolean;
1393
511
  /**
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.
512
+ * Work is running behind this action. A primary CTA breathes slowly and stays
513
+ * a full liquid CTA; other variants pulse softly. Sets `aria-busy`, never
514
+ * `disabled`: a click still reaches the product, whose own guard decides it.
515
+ * Reduced motion keeps `aria-busy` and holds still.
1397
516
  */
1398
- surface?: GameButtonSurface;
517
+ pending?: boolean;
1399
518
  variant?: GameButtonVariant;
1400
- }
1401
-
1402
- export declare type GameButtonSurface = 'flat' | 'liquid' | 'plaque';
519
+ size?: 'md' | 'sm';
520
+ };
1403
521
 
1404
522
  export declare type GameButtonVariant = 'primary' | 'secondary' | 'ghost' | 'danger' | 'success';
1405
523
 
@@ -1407,7 +525,7 @@ export declare type GameButtonVariant = 'primary' | 'secondary' | 'ghost' | 'dan
1407
525
  * Compact product notice (wallet pitch, soft warnings, onboarding hints).
1408
526
  * Token-driven; products may still override cinema theme in host CSS.
1409
527
  */
1410
- export declare function GameCallout({ heading, children, tone, className, ...props }: GameCalloutProps): ReactNode;
528
+ export declare function GameCallout({ heading, children, tone, className, style, ...props }: GameCalloutProps): ReactNode;
1411
529
 
1412
530
  export declare interface GameCalloutProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
1413
531
  /** Visible heading (not HTML title attribute). */
@@ -1418,21 +536,6 @@ export declare interface GameCalloutProps extends Omit<HTMLAttributes<HTMLDivEle
1418
536
 
1419
537
  export declare type GameCalloutTone = 'neutral' | 'info' | 'warning' | 'success' | 'danger';
1420
538
 
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
539
  export declare type GameCardOrientationStatus = 'unavailable' | 'off' | 'requesting' | 'enabled' | 'denied';
1437
540
 
1438
541
  /** Normalized card tilt; zero is level, -1 and 1 are the bounded extremes. */
@@ -1441,11 +544,12 @@ export declare interface GameCardTilt {
1441
544
  readonly y: number;
1442
545
  }
1443
546
 
1444
- export declare function GameCheckbox({ className, label, ...props }: GameCheckboxProps): ReactNode;
547
+ export declare function GameCheckbox({ className, label, hue, ...props }: GameCheckboxProps): ReactNode;
1445
548
 
1446
549
  export declare interface GameCheckboxProps extends Pick<InputHTMLAttributes<HTMLInputElement>, 'checked' | 'defaultChecked' | 'disabled' | 'name' | 'onChange' | 'required' | 'value'> {
1447
550
  label: string;
1448
551
  className?: string;
552
+ hue?: GameUiHue;
1449
553
  }
1450
554
 
1451
555
  export declare function GameCollapsiblePanel({ actions, children, className, defaultOpen, labels, onOpenChange, open, title, tone, ...props }: GameCollapsiblePanelProps): ReactNode;
@@ -1498,226 +602,41 @@ export declare interface GameCollectibleCardProps {
1498
602
  readonly filled: number;
1499
603
  readonly total: number;
1500
604
  };
1501
- /** A sticker on the corner, such as "NEW!". */
1502
- readonly sticker?: string;
1503
- /** The back of the card; the kit draws a plain emblem when omitted. */
1504
- readonly back?: ReactNode;
1505
- /** The full accessible name, including what a tap does. */
1506
- readonly label: string;
1507
- /** Controlled: whether the back is showing. */
1508
- readonly faceDown?: boolean;
1509
- /** Uncontrolled start. */
1510
- readonly defaultFaceDown?: boolean;
1511
- readonly onFlip?: (faceDown: boolean) => void;
1512
- /** A soft light turns behind the card: the moment the rarest card is revealed. */
1513
- readonly spotlight?: boolean;
1514
- /** Play a synthesized flip sound; browsers allow it only after the page has been tapped. */
1515
- readonly sound?: boolean;
1516
- /** Optional normalized tilt from one explicitly enabled sensor owner. A
1517
- * pointer on this card takes precedence; reduced motion always wins. */
1518
- readonly tilt?: GameCardTilt | null;
1519
- readonly className?: string;
1520
- }
1521
-
1522
- /**
1523
- * How rare the card is, which is how it is framed: `common` a plain silver
1524
- * frame, `rare` a violet frame with a gem set in the top, `legendary` a gold
1525
- * frame with a crown, a foil that shifts as the card tilts and a soft light
1526
- * behind it. The product decides what earns each; the kit only draws them.
1527
- */
1528
- export declare type GameCollectibleCardRarity = 'common' | 'rare' | 'legendary';
1529
-
1530
- /** A card not collected yet: its place in the set, and what unlocks it. Not interactive. */
1531
- export declare function GameCollectibleCardSlot({ label, className, }: {
1532
- /** What unlocks it, shown on the slot and read as its name. */
1533
- readonly label: string;
1534
- readonly className?: string;
1535
- }): ReactNode;
1536
-
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;
605
+ /** A sticker on the corner, such as "NEW!". */
606
+ readonly sticker?: string;
607
+ /** The back of the card; the kit draws a plain emblem when omitted. */
608
+ readonly back?: ReactNode;
609
+ /** The full accessible name, including what a tap does. */
610
+ readonly label: string;
611
+ /** Controlled: whether the back is showing. */
612
+ readonly faceDown?: boolean;
613
+ /** Uncontrolled start. */
614
+ readonly defaultFaceDown?: boolean;
615
+ readonly onFlip?: (faceDown: boolean) => void;
616
+ /** A soft light turns behind the card: the moment the rarest card is revealed. */
617
+ readonly spotlight?: boolean;
618
+ /** Play a synthesized flip sound; browsers allow it only after the page has been tapped. */
619
+ readonly sound?: boolean;
620
+ /** Optional normalized tilt from one explicitly enabled sensor owner. A
621
+ * pointer on this card takes precedence; reduced motion always wins. */
622
+ readonly tilt?: GameCardTilt | null;
623
+ readonly className?: string;
1696
624
  }
1697
625
 
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;
626
+ /**
627
+ * How rare the card is, which is how it is framed: `common` a plain silver
628
+ * frame, `rare` a violet frame with a gem set in the top, `legendary` a gold
629
+ * frame with a crown, a foil that shifts as the card tilts and a soft light
630
+ * behind it. The product decides what earns each; the kit only draws them.
631
+ */
632
+ export declare type GameCollectibleCardRarity = 'common' | 'rare' | 'legendary';
1701
633
 
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
- }
634
+ /** A card not collected yet: its place in the set, and what unlocks it. Not interactive. */
635
+ export declare function GameCollectibleCardSlot({ label, className, }: {
636
+ /** What unlocks it, shown on the slot and read as its name. */
637
+ readonly label: string;
638
+ readonly className?: string;
639
+ }): ReactNode;
1721
640
 
1722
641
  export declare function GameDialog({ children, className, title }: GameDialogProps): ReactNode;
1723
642
 
@@ -1730,8 +649,8 @@ export declare interface GameDialogProps {
1730
649
  export declare function GameEmptyState({ action, className, description, icon, title, }: GameEmptyStateProps): ReactNode;
1731
650
 
1732
651
  export declare interface GameEmptyStateProps {
1733
- /** Optional clay icon shown above the title. */
1734
- icon?: ClayIconName;
652
+ /** Optional flat icon shown above the title. */
653
+ icon?: GameIconName;
1735
654
  title: string;
1736
655
  description?: string;
1737
656
  /** Optional call-to-action node (e.g. a GameButton). */
@@ -1740,7 +659,7 @@ export declare interface GameEmptyStateProps {
1740
659
  }
1741
660
 
1742
661
  export declare interface GameFactItem {
1743
- icon?: ClayIconName;
662
+ icon?: GameIconName;
1744
663
  id: string;
1745
664
  label: string;
1746
665
  meta?: string;
@@ -1793,8 +712,6 @@ export declare interface GameHistoryPanelProps {
1793
712
  label: string;
1794
713
  }
1795
714
 
1796
- export declare function GameHud({ actions, className, items, label }: GameHudProps): ReactNode;
1797
-
1798
715
  export declare function GameHudActions({ children, className, label, ...props }: GameHudActionsProps): ReactNode;
1799
716
 
1800
717
  export declare interface GameHudActionsProps extends Omit<HTMLAttributes<HTMLElement>, 'children'> {
@@ -1803,39 +720,42 @@ export declare interface GameHudActionsProps extends Omit<HTMLAttributes<HTMLEle
1803
720
  label: string;
1804
721
  }
1805
722
 
1806
- export declare interface GameHudItem {
1807
- icon?: ClayIconName;
1808
- id: string;
1809
- label: string;
1810
- meta?: string;
1811
- value: string;
1812
- }
723
+ export declare function GameIcon({ icon, size, label, className, ...props }: GameIconProps): JSX.Element;
1813
724
 
1814
- export declare interface GameHudProps {
1815
- actions?: ReactNode;
1816
- className?: string;
1817
- items: readonly GameHudItem[];
725
+ export declare const GameIconButton: ForwardRefExoticComponent<GameIconButtonProps & RefAttributes<ActionElement>>;
726
+
727
+ export declare type GameIconButtonProps = ActionProps & {
728
+ children: ReactNode;
1818
729
  label: string;
730
+ hue?: GameUiHue;
731
+ size?: 'md' | 'sm';
732
+ };
733
+
734
+ /** Immutable path geometry on the brand's 24 × 24 grid. No URLs or scripts. */
735
+ export declare interface GameIconData {
736
+ readonly name: string;
737
+ readonly paths: readonly string[];
1819
738
  }
1820
739
 
1821
- export declare function GameIconButton({ children, className, label, surface, liquidFinish, type, ...props }: GameIconButtonProps): ReactNode;
740
+ export declare type GameIconName = keyof typeof GAME_ICONS;
1822
741
 
1823
- export declare interface GameIconButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
1824
- children: ReactNode;
1825
- label: string;
1826
- surface?: GameButtonSurface;
1827
- liquidFinish?: LiquidFinish;
742
+ export declare interface GameIconProps extends Omit<SVGProps<SVGSVGElement>, 'children' | 'width' | 'height' | 'aria-label' | 'role'> {
743
+ icon: GameIconName | GameIconData;
744
+ size?: 'sm' | 'md' | 'lg';
745
+ /** A meaningful image needs a label; decorative icons remain hidden from AT. */
746
+ label?: string;
1828
747
  }
1829
748
 
1830
749
  export declare const GameInput: ForwardRefExoticComponent<GameInputProps & RefAttributes<HTMLInputElement>>;
1831
750
 
1832
751
  /**
1833
- * Clay form primitives. These are intentionally thin wrappers over the native
752
+ * Flat form primitives. These are intentionally thin wrappers over the native
1834
753
  * <input>/<textarea>/checkbox so they stay fully accessible and uncontrolled-
1835
- * or controlled-friendly; the clay look lives entirely in CSS. Text fields use
754
+ * or controlled-friendly; the flat look lives entirely in CSS. Text fields use
1836
755
  * forwardRef so hosts can focus them (e.g. refocus a chat composer after send).
1837
756
  */
1838
757
  export declare interface GameInputProps extends InputHTMLAttributes<HTMLInputElement> {
758
+ hue?: GameUiHue;
1839
759
  /** Paints the field in the danger tone for invalid values. */
1840
760
  invalid?: boolean;
1841
761
  }
@@ -1850,17 +770,17 @@ export declare interface GameInteractionAudioContext {
1850
770
  suspend?: () => Promise<void>;
1851
771
  }
1852
772
 
1853
- export declare interface GameInteractionAudioParam {
773
+ declare interface GameInteractionAudioParam {
1854
774
  exponentialRampToValueAtTime(value: number, endTime: number): void;
1855
775
  setValueAtTime(value: number, startTime: number): void;
1856
776
  }
1857
777
 
1858
- export declare interface GameInteractionGainNode {
778
+ declare interface GameInteractionGainNode {
1859
779
  connect(destination: unknown): void;
1860
780
  gain: GameInteractionAudioParam;
1861
781
  }
1862
782
 
1863
- export declare interface GameInteractionOscillatorNode {
783
+ declare interface GameInteractionOscillatorNode {
1864
784
  connect(destination: GameInteractionGainNode): void;
1865
785
  frequency: GameInteractionAudioParam;
1866
786
  start(when?: number): void;
@@ -1895,7 +815,7 @@ export declare interface GameLanguageMenuProps {
1895
815
  }
1896
816
 
1897
817
  /** 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;
818
+ export declare function GameListRow({ title, description, thumbnail, current, selected, disabled, onSelect, selectLabel, actions, className, hue, ...props }: GameListRowProps): ReactNode;
1899
819
 
1900
820
  export declare interface GameListRowProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title' | 'onSelect' | 'children'> {
1901
821
  title: string;
@@ -1908,6 +828,7 @@ export declare interface GameListRowProps extends Omit<HTMLAttributes<HTMLDivEle
1908
828
  /** Optional name for the row's selection control, independent of its actions. */
1909
829
  selectLabel?: string;
1910
830
  actions?: ReactNode;
831
+ hue?: GameUiHue;
1911
832
  }
1912
833
 
1913
834
  export declare function GameLoadingState({ label, tone }: GameLoadingStateProps): ReactNode;
@@ -1917,6 +838,21 @@ export declare interface GameLoadingStateProps {
1917
838
  tone?: 'loading' | 'error';
1918
839
  }
1919
840
 
841
+ export declare type GameMaterialLayout = 'desktop' | 'dense' | 'mobile' | 'small-mobile';
842
+
843
+ export declare type GameMaterialPattern = 'solid' | 'speckled' | 'hatched' | 'grid';
844
+
845
+ export declare interface GameMaterialSwatch {
846
+ color: string;
847
+ compactLabel?: string;
848
+ disabled?: boolean;
849
+ id: string;
850
+ label: string;
851
+ meta?: string;
852
+ pattern?: GameMaterialPattern;
853
+ secondaryColor?: string;
854
+ }
855
+
1920
856
  export declare function GameMaterialSwatches({ activeMaterialId, className, disabled, label, materials, onMaterialChange, variant, 'data-testid': testId, }: GameMaterialSwatchesProps): ReactNode;
1921
857
 
1922
858
  export declare interface GameMaterialSwatchesProps {
@@ -1924,9 +860,9 @@ export declare interface GameMaterialSwatchesProps {
1924
860
  className?: string;
1925
861
  disabled?: boolean;
1926
862
  label: string;
1927
- materials: readonly GameTerrainMaterialSwatch[];
863
+ materials: readonly GameMaterialSwatch[];
1928
864
  onMaterialChange?: ((materialId: string) => void) | undefined;
1929
- variant?: GameTerrainBuildVariant;
865
+ variant?: GameMaterialLayout;
1930
866
  'data-testid'?: string | undefined;
1931
867
  }
1932
868
 
@@ -1958,7 +894,7 @@ export declare interface GameModalProps {
1958
894
  export declare interface GameMovementAction {
1959
895
  direction: GameMovementDirection;
1960
896
  disabled?: boolean;
1961
- icon?: ClayIconName;
897
+ icon?: GameIconName;
1962
898
  label: string;
1963
899
  shortcut?: string;
1964
900
  symbol?: string;
@@ -1979,23 +915,6 @@ export declare interface GameMovementPadProps {
1979
915
  onMove?: (direction: GameMovementDirection) => void;
1980
916
  }
1981
917
 
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
918
  /** Numeric entry only. Sending, expiry, validation and retries belong to the host. */
2000
919
  export declare function GameOtpInput({ length, value, onChange, onComplete, invalid, disabled, readOnly, getSlotLabel, getSlotDescription, className, 'aria-describedby': describedBy, ...props }: GameOtpInputProps): ReactNode;
2001
920
 
@@ -2023,42 +942,14 @@ export declare interface GamePanelProps extends HTMLAttributes<HTMLElement> {
2023
942
  tone?: 'default' | 'strong';
2024
943
  }
2025
944
 
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;
945
+ /** Native progress semantics; only a finite, unfiltered tide meniscus moves. */
946
+ export declare function GameProgress({ value, max, label, showValue, valueLabel, className, }: GameProgressProps): ReactNode;
2045
947
 
2046
948
  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
949
  value: number;
2052
950
  max?: number;
2053
- /** Accessible label for the progress bar. */
2054
951
  label: string;
2055
- tone?: 'accent' | 'success' | 'danger' | 'warning';
2056
- /** Show the rounded percentage next to the bar. */
2057
952
  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
953
  valueLabel?: string;
2063
954
  className?: string;
2064
955
  }
@@ -2084,64 +975,32 @@ export declare interface GameRadialMenuProps {
2084
975
  onSelect?: (id: string) => void;
2085
976
  }
2086
977
 
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;
978
+ /** Selection belongs to the host. Each segment reserves the same checkmark
979
+ * cell, so changing selection does not resize the row or its native targets. */
980
+ export declare function GameSegmentedControl({ activeId, label, onSelect, options, disabled, hue, }: GameSegmentedControlProps): ReactNode;
2116
981
 
2117
982
  export declare interface GameSegmentedControlProps {
2118
983
  activeId: string;
2119
984
  label: string;
2120
985
  onSelect?: (id: string) => void;
2121
986
  options: readonly GameSegmentedOption[];
2122
- /** Existing default is liquid. Flat provides a quiet, filter-free option. */
2123
- surface?: Exclude<GameButtonSurface, 'plaque'>;
2124
- liquidFinish?: LiquidFinish;
2125
987
  disabled?: boolean;
988
+ hue?: GameUiHue;
2126
989
  }
2127
990
 
2128
991
  declare interface GameSegmentedOption {
2129
992
  id: string;
2130
993
  label: string;
994
+ hue?: GameUiHue;
2131
995
  }
2132
996
 
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
- */
997
+ /** Native options, form reset, focus, mobile popup and multiple-selection stay
998
+ * browser-owned. A field changes only its flat edge/fill, never its geometry. */
2139
999
  export declare const GameSelect: ForwardRefExoticComponent<GameSelectProps & RefAttributes<HTMLSelectElement>>;
2140
1000
 
2141
1001
  export declare interface GameSelectProps extends SelectHTMLAttributes<HTMLSelectElement> {
2142
1002
  invalid?: boolean;
2143
- surface?: Exclude<GameButtonSurface, 'plaque'>;
2144
- liquidFinish?: LiquidFinish;
1003
+ hue?: GameUiHue;
2145
1004
  }
2146
1005
 
2147
1006
  export declare function GameShell({ assetLibrary, bottomBar, children, className, density, hud, layout, movementPad, overlay, sidePanel, title, }: GameShellProps): ReactNode;
@@ -2226,7 +1085,7 @@ export declare function GameStageTile({ badge, className, icon, kicker, selected
2226
1085
 
2227
1086
  export declare interface GameStageTileProps extends ButtonHTMLAttributes<HTMLButtonElement> {
2228
1087
  badge?: string;
2229
- icon?: ClayIconName;
1088
+ icon?: GameIconName;
2230
1089
  kicker: string;
2231
1090
  selected?: boolean;
2232
1091
  summary: string;
@@ -2234,10 +1093,6 @@ export declare interface GameStageTileProps extends ButtonHTMLAttributes<HTMLBut
2234
1093
  tone?: 'daily' | 'portal' | 'host' | 'danger';
2235
1094
  }
2236
1095
 
2237
- export declare const GameStatList: typeof GameFactList;
2238
-
2239
- export declare type GameStatListProps = GameFactListProps;
2240
-
2241
1096
  export declare type GameSurfaceDensity = 'comfortable' | 'dense';
2242
1097
 
2243
1098
  export declare type GameSurfaceLayout = 'auto' | 'desktop' | 'mobile';
@@ -2247,11 +1102,13 @@ export declare interface GameTabItem {
2247
1102
  label: string;
2248
1103
  /** id of the tabpanel this tab controls; wires aria-controls when set. */
2249
1104
  panelId?: string;
1105
+ hue?: GameUiHue;
2250
1106
  }
2251
1107
 
2252
- export declare function GameTabs({ activeId, id, onSelect, tabs, orientation, 'aria-label': label, 'aria-labelledby': labelledBy, }: GameTabsProps): ReactNode;
1108
+ export declare function GameTabs({ activeId, id, onSelect, tabs, hue, orientation, 'aria-label': label, 'aria-labelledby': labelledBy, }: GameTabsProps): ReactNode;
2253
1109
 
2254
1110
  export declare interface GameTabsProps {
1111
+ hue?: GameUiHue;
2255
1112
  orientation?: 'horizontal' | 'vertical';
2256
1113
  'aria-label'?: string;
2257
1114
  'aria-labelledby'?: string;
@@ -2267,129 +1124,10 @@ export declare interface GameTabsProps {
2267
1124
  tabs: readonly GameTabItem[];
2268
1125
  }
2269
1126
 
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
1127
  export declare const GameTextArea: ForwardRefExoticComponent<GameTextAreaProps & RefAttributes<HTMLTextAreaElement>>;
2391
1128
 
2392
1129
  export declare interface GameTextAreaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
1130
+ hue?: GameUiHue;
2393
1131
  invalid?: boolean;
2394
1132
  }
2395
1133
 
@@ -2400,13 +1138,12 @@ export declare interface GameToastProps {
2400
1138
  tone?: 'info' | 'success' | 'danger';
2401
1139
  }
2402
1140
 
2403
- export declare function GameToggle({ checked, disabled, label, onClick, surface, liquidFinish, }: GameToggleProps): ReactNode;
1141
+ export declare function GameToggle({ checked, disabled, label, onClick, hue }: GameToggleProps): ReactNode;
2404
1142
 
2405
1143
  export declare interface GameToggleProps extends Pick<ButtonHTMLAttributes<HTMLButtonElement>, 'disabled' | 'onClick'> {
2406
1144
  checked: boolean;
2407
1145
  label: string;
2408
- surface?: Exclude<GameButtonSurface, 'plaque'>;
2409
- liquidFinish?: LiquidFinish;
1146
+ hue?: GameUiHue;
2410
1147
  }
2411
1148
 
2412
1149
  export declare function GameTooltip({ children, label }: GameTooltipProps): ReactNode;
@@ -2417,23 +1154,6 @@ export declare interface GameTooltipProps {
2417
1154
  label: string;
2418
1155
  }
2419
1156
 
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
1157
  export declare interface GameUiHistoryEntry {
2438
1158
  id: string;
2439
1159
  kind: GameUiHistoryKind;
@@ -2444,117 +1164,26 @@ export declare interface GameUiHistoryEntry {
2444
1164
 
2445
1165
  export declare type GameUiHistoryKind = 'human' | 'mystery' | 'system';
2446
1166
 
2447
- export declare function GameUiPreview({ title, body }: GameUiPreviewProps): ReactNode;
1167
+ /** Palette meaning, independent of the host's visual style and light/dark mode. */
1168
+ export declare type GameUiHue = 'coral' | 'sun' | 'leaf' | 'sky' | 'grape' | 'pink';
2448
1169
 
2449
- export declare interface GameUiPreviewProps {
2450
- title?: string;
2451
- body?: string;
2452
- }
1170
+ export declare type GameUiStyle = (typeof GAME_UI_STYLES)[number];
2453
1171
 
2454
- export declare function GameUndoRedoActions({ canRedo, canUndo, className, disabled, label, onRedo, onUndo, redoLabel, undoLabel, variant, 'data-testid': testId, }: GameUndoRedoActionsProps): ReactNode;
1172
+ export declare type GameUiTheme = 'light' | 'dark';
2455
1173
 
2456
- export declare interface GameUndoRedoActionsProps extends GameUndoRedoState {
2457
- className?: string;
1174
+ declare type LinkAction = Omit<LinkAttributes, 'ref'> & {
2458
1175
  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;
1176
+ type?: never;
1177
+ linkComponent?: LinkComponent;
2522
1178
  };
2523
1179
 
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>>;
1180
+ declare type LinkAttributes = Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'type' | 'download'> & {
1181
+ href: string;
1182
+ download?: string | boolean;
1183
+ ref?: Ref<HTMLAnchorElement>;
1184
+ };
2551
1185
 
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;
1186
+ declare type LinkComponent = ComponentType<LinkAttributes>;
2558
1187
 
2559
1188
  /**
2560
1189
  * A shared liquid silhouette behind crisp item content.
@@ -2595,142 +1224,21 @@ export declare type LiquidFill = string | {
2595
1224
  readonly sheen?: number;
2596
1225
  };
2597
1226
 
2598
- /** Material is independent of a widget's meaning and a form's motion. */
2599
- export declare type LiquidFinish = 'matte' | 'glossy';
2600
-
2601
- /**
2602
- * The named looks.
2603
- *
2604
- * Bodies first, then the forms that only mean something between siblings, and
2605
- * within each run they are ordered by how much cohesion the liquid is losing:
2606
- * `set` stops being liquid at all, `press` barely deforms, `drain` stops being
2607
- * a shape.
2608
- *
2609
- * Six of these were the whole vocabulary until the brand needed more of it,
2610
- * and six is worth saying out loud as *where it got to* rather than as a
2611
- * complete set. A form earns its place by having something to say that none of
2612
- * the others says. That is the only entry requirement — and it is also why a
2613
- * form existing here is not permission to put it on a screen: the recorded
2614
- * finding is that gooey on a static solid block reads as damage, and that one
2615
- * screen wants one liquid element carrying one layer of intent.
2616
- */
2617
1227
  export declare type LiquidForm = 'set' | 'press' | 'swell' | 'settle' | 'fill' | 'reach' | 'ripple' | 'drain' | 'follow' | 'merge' | 'split' | 'bead';
2618
1228
 
2619
- /** Filter-level knobs a form fixes on the group. */
2620
- export declare interface LiquidFormGroup {
2621
- readonly blur: number;
2622
- readonly contrast: number;
2623
- /**
2624
- * How far the outline swells outward from the control's box, in px. The
2625
- * bulge is outward-only, so this never eats into a label's padding, and it
2626
- * is clamped to 18% of the shorter side so one number suits a 44px button
2627
- * and a 14px meter.
2628
- */
2629
- readonly blob: number;
2630
- /** How many swells go round the outline. 2 is lazy, 5 is busy. */
2631
- readonly lobes: number;
2632
- /**
2633
- * Volume. The edge says 「liquid」 only as an outline; this is what makes the
2634
- * inside of the body look like a material instead of a flat sticker.
2635
- */
2636
- readonly gloss: number;
2637
- readonly filterPadding: number;
2638
- /**
2639
- * What the body casts on the ground at rest, in CSS box-shadow syntax.
2640
- *
2641
- * Every liquid button floated before this existed: the flat button has a lip
2642
- * *and* `--game-ui-shadow-button`, and the liquid one had neither, which is
2643
- * most of why it read flatter than its own flat twin. A form is where this
2644
- * belongs rather than a call site, because how far a body sits off the
2645
- * surface is part of what the form means.
2646
- *
2647
- * Keep it to outer layers with no spread. `liquidGooeyShadow` compiles those
2648
- * to a CSS `drop-shadow()` on the silhouette — the compositor does the blur,
2649
- * the shadow hugs the poured outline rather than a rounded rectangle, and it
2650
- * is allowed to paint outside the filter region. Inset and spread are legal
2651
- * but stay inside the SVG filter and are charged against the filter-area
2652
- * budget, so they are a deliberate purchase, not a default.
2653
- */
2654
- readonly shadow?: string;
2655
- /**
2656
- * What it casts while the form is engaged, when that differs.
2657
- *
2658
- * A body that squashes toward the surface gets *closer* to it, and a real
2659
- * contact shadow answers by tightening and darkening rather than staying
2660
- * put. Leaving this out is fine; the rest shadow then holds through the
2661
- * whole gesture, which is what a form with no vertical travel wants.
2662
- */
2663
- readonly shadowEngaged?: string;
2664
- }
2665
-
2666
- /**
2667
- * Resolve a form into group props, letting a caller override single knobs.
2668
- *
2669
- * Overrides are merged rather than replacing the bundle, so a surface that
2670
- * needs one different value does not have to restate the other three and
2671
- * silently drift from the form it claims to be using.
2672
- */
2673
- export declare function liquidFormGroup(form: LiquidForm, overrides?: Partial<LiquidFormGroup>): LiquidFormGroup;
2674
-
2675
- /** Item-level behaviour a form fixes on each participating item. */
2676
- export declare interface LiquidFormItem {
2677
- readonly effect?: 'morph' | 'melt' | 'bend';
1229
+ declare interface LiquidFormItem {
1230
+ readonly effect?: 'morph';
2678
1231
  readonly morph?: MorphTuning;
2679
1232
  readonly transition?: Transition;
2680
- readonly dissolve?: boolean;
2681
1233
  }
2682
1234
 
2683
- /** Resolve a form into item props, with the same merge-don't-replace rule. */
2684
1235
  export declare function liquidFormItem(form: LiquidForm, overrides?: LiquidFormItem): LiquidFormItem;
2685
1236
 
2686
- /**
2687
- * Whether a form describes one body or a relationship between siblings.
2688
- *
2689
- * `LiquidSurface` draws one silhouette, so it can only honour a `body` form;
2690
- * a `group` form says something about the space *between* items and needs a
2691
- * `LiquidGroup` the caller arranges. That distinction used to live in a
2692
- * parenthetical — `ENGAGED` carried two entries marked 「present for
2693
- * exhaustiveness」 — which meant picking the wrong one failed silently, by
2694
- * rendering a body that never moves. Naming it lets a shelf group itself, lets
2695
- * a caller check, and lets the kit say so out loud in development.
2696
- */
2697
- export declare type LiquidFormKind = 'body' | 'group';
2698
-
2699
- export declare interface LiquidFormSpec {
2700
- /** One sentence on what a viewer sees, for docs and for picking. */
2701
- readonly summary: string;
2702
- /** One body, or a relationship between siblings the caller arranges. */
2703
- readonly kind: LiquidFormKind;
2704
- readonly group: LiquidFormGroup;
2705
- /**
2706
- * Group knobs that change while the form is engaged.
2707
- *
2708
- * Only `set` uses this, and only because `set` is the one form whose subject
2709
- * is *stopping* being liquid — without it the vocabulary can say a dozen
2710
- * degrees of liquid and never say 「solid」. Be careful with it: `blob` is
2711
- * path data and `gloss` is a filter pass, so neither tweens. They snap. For
2712
- * `set` that snap is the gesture — a thing clicking into place — and for
2713
- * anything continuous it would be a flicker, which is why this is not a
2714
- * general-purpose second bundle.
2715
- */
2716
- readonly groupEngaged?: Partial<LiquidFormGroup>;
2717
- readonly item: LiquidFormItem;
2718
- }
2719
-
2720
- /** The one-line description of each form, for pickers and documentation. */
2721
- export declare function liquidFormSummary(form: LiquidForm): string;
2722
-
2723
1237
  declare interface LiquidGooeyBudgetOptions {
2724
1238
  maxAnimatedGroups?: number;
2725
1239
  maxFilterArea?: number;
2726
1240
  }
2727
1241
 
2728
- declare interface LiquidGooeyBudgetState {
2729
- maxAnimatedGroups: number;
2730
- maxFilterArea: number;
2731
- activeGroups: number;
2732
- }
2733
-
2734
1242
  /**
2735
1243
  * Merges nearby item silhouettes into one shape while leaving their content
2736
1244
  * accessible and separately filtered. Morph content may cross-blur while it
@@ -2739,7 +1247,7 @@ declare interface LiquidGooeyBudgetState {
2739
1247
  * shared treatment to <LiquidGroup>.
2740
1248
  */
2741
1249
  export declare const LiquidGroup: ForwardRefExoticComponent<LiquidGroupProps & RefAttributes<HTMLDivElement>> & {
2742
- Item: ForwardRefExoticComponent<LiquidItemProps & RefAttributes<HTMLDivElement>>;
1250
+ Item: ForwardRefExoticComponent< LiquidItemProps & RefAttributes<HTMLDivElement>>;
2743
1251
  };
2744
1252
 
2745
1253
  export declare interface LiquidGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
@@ -2753,8 +1261,6 @@ export declare interface LiquidGroupProps extends Omit<HTMLAttributes<HTMLDivEle
2753
1261
  * curved surface so it reads as a material rather than as a silhouette.
2754
1262
  */
2755
1263
  gloss?: number;
2756
- /** Optional named finish. An explicit raw gloss wins; omitted preserves the old rendering. */
2757
- liquidFinish?: LiquidFinish;
2758
1264
  /**
2759
1265
  * Surface fill. Defaults to the kit's theme surface token. A colour paints
2760
1266
  * the body flat; `{ top, bottom }` gives it light (see `LiquidFill`).
@@ -2783,8 +1289,6 @@ export declare interface LiquidGroupProps extends Omit<HTMLAttributes<HTMLDivEle
2783
1289
  motion?: 'auto' | 'follow' | 'reduced';
2784
1290
  }
2785
1291
 
2786
- export declare const LiquidItem: ForwardRefExoticComponent<LiquidItemProps & RefAttributes<HTMLDivElement>>;
2787
-
2788
1292
  export declare interface LiquidItemProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
2789
1293
  /**
2790
1294
  * Crisp content rendered above the merged silhouette. Do NOT add border,
@@ -2815,59 +1319,37 @@ export declare interface LiquidItemProps extends Omit<HTMLAttributes<HTMLDivElem
2815
1319
  */
2816
1320
  blob?: BlobShape;
2817
1321
  /**
2818
- * Select the adopted item surface behavior. Bend follows child geometry.
1322
+ * Select the core Morph behavior. Optional deformation belongs to liquid-effects.
2819
1323
  * Move is a group gesture (`motion="follow"`), not an item effect.
2820
1324
  */
2821
- effect?: 'morph' | 'melt' | 'bend';
1325
+ effect?: 'morph';
2822
1326
  /** Morph shape, tempo, bounce, and content cross-blur tuning. */
2823
1327
  morph?: MorphTuning;
2824
- /** Bend strengths for vertical bow and horizontal cap deformation. */
2825
- bend?: BendTuning;
2826
- /** Follow a child moved by external code; Bend implies this automatically. */
1328
+ /** Follow a child moved by external code. */
2827
1329
  observe?: boolean;
2828
- /** Numeric knobs for the pairwise image Melt surface, plus an optional source URL. */
2829
- melt?: ImageMeltOptions & {
2830
- src?: string;
2831
- };
2832
- /** Contact image modifier. Text and other DOM content remain on the crisp layer. */
2833
- dissolve?: boolean | number | DissolveOptions;
2834
- }
2835
-
2836
- export declare function LiquidMetalButton({ children, className, onClick, sound, type, renderer, ...props }: LiquidMetalButtonProps): ReactNode;
2837
-
2838
- export declare interface LiquidMetalButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
2839
- children: ReactNode;
2840
- sound?: GameInteractionSoundOptions | false;
2841
- /**
2842
- * `auto` (default) starts on CSS and upgrades to WebGL when the four
2843
- * gates pass. `css` never spends a context — needed so a side-by-side
2844
- * demo can show the fallback without the CSS column taking the slot
2845
- * the WebGL column needs. `webgl` still respects the gates; it is not
2846
- * a way to bypass reduced-motion or the budget.
2847
- */
2848
- renderer?: LiquidMetalRendererMode;
2849
1330
  }
2850
1331
 
2851
- export declare type LiquidMetalRendererMode = 'auto' | 'css' | 'webgl';
2852
-
2853
- export declare function LiquidSurface({ children, liquidFinish, form, active, fill, stroke, shadow: shadowOverride, gloss: glossOverride, outline, radius, className, style, }: LiquidSurfaceProps): ReactNode;
1332
+ export declare function LiquidSurface({ children, form, active, breathing, fill, stroke, shadow: shadowOverride, gloss: glossOverride, outline, radius, className, style, }: LiquidSurfaceProps): ReactNode;
2854
1333
 
2855
1334
  export declare interface LiquidSurfaceProps {
2856
1335
  children: ReactNode;
2857
- /** Omitted keeps the form's existing lighting; matte and glossy share the same motion. */
2858
- liquidFinish?: LiquidFinish;
2859
- /** Which named look. Defaults to the press form, the one a control wants. */
1336
+ /** Which motion. All forms share one thin liquid material. */
2860
1337
  form?: LiquidForm;
2861
1338
  /**
2862
1339
  * Whether the form is engaged: pressed for `press`, landed for `settle`,
2863
1340
  * leaving for `drain`. Ignored by forms with no engaged state.
2864
1341
  */
2865
1342
  active?: boolean;
1343
+ /**
1344
+ * Breathe slowly while work is pending: rest, a 4% swell, rest, about 1.2 s a
1345
+ * cycle. Yields to `active` and holds rest under reduced motion.
1346
+ */
1347
+ breathing?: boolean;
2866
1348
  /** Silhouette paint. Defaults to the kit's raised surface token. */
2867
1349
  fill?: LiquidFill;
2868
1350
  /**
2869
- * The body's light, overriding the form's own. The coloured liquid theme
2870
- * uses a low value; with `liquidFinish="matte"` omitted, 0 means flat.
1351
+ * Advanced primitive override. Defaults to the shared thin material;
1352
+ * ordinary controls do not expose a second material selector.
2871
1353
  */
2872
1354
  gloss?: number;
2873
1355
  /**
@@ -2902,65 +1384,13 @@ export declare interface MorphTuning {
2902
1384
 
2903
1385
  export declare function playGameCardRevealSound(rarity: 'common' | 'rare' | 'legendary', options?: GameInteractionSoundOptions): boolean;
2904
1386
 
2905
- /**
2906
- * A card turning over: a short falling sweep, and for a rarer card one or two
2907
- * bell notes after it. Synthesized, so nothing is downloaded; like every kit
2908
- * sound, the browser lets it play only once the page has been interacted with.
2909
- */
2910
- export declare function playGameCardRevealSoundForContext(audioContext: GameInteractionAudioContext, rarity: 'common' | 'rare' | 'legendary', options?: GameInteractionSoundOptions): boolean;
2911
-
2912
1387
  export declare function playGameInteractionSound(options?: GameInteractionSoundOptions): boolean;
2913
1388
 
2914
1389
  export declare function playGameInteractionSoundForContext(audioContext: GameInteractionAudioContext, options?: GameInteractionSoundOptions): boolean;
2915
1390
 
2916
- declare interface ResolvedDissolveOptions {
2917
- blur: number;
2918
- warp: number;
2919
- pull: number;
2920
- range: number;
2921
- zone: number;
2922
- mix: number;
2923
- gravity: number;
2924
- taper: number;
2925
- warpFreq: number;
2926
- flowSpeed: number;
2927
- warpStyle: 'fractalNoise' | 'turbulence';
2928
- detail: number;
2929
- active: boolean;
2930
- releaseMs: number;
2931
- fadeMs: number;
2932
- strength: number;
2933
- sink: number;
2934
- seamBlur: number;
2935
- }
2936
-
2937
- export declare function resolveDissolveOptions(element: HTMLElement | null, input: DissolveValue): ResolvedDissolveOptions;
2938
-
2939
- /**
2940
- * Point the sculpted set at somewhere other than the default path — a CDN, a
2941
- * sub-path deploy, a host whose static root is not `/`. Pass no trailing slash.
2942
- *
2943
- * The copy command mirrors the default layout, so a consumer that runs
2944
- * `swimmer-ui-assets public` never needs this.
2945
- */
2946
- export declare function setClayAssetBasePath(basePath: string): void;
2947
-
2948
- /**
2949
- * Switch how clay icons resolve globally.
2950
- * - 'inline' (default): lettered placeholders. They are not the icon set —
2951
- * every one is the same rounded square with a different glyph and colour.
2952
- * They exist so a fresh install renders *something* rather than a broken
2953
- * image, and shipping them is a bug.
2954
- * - 'source': the real sculpted PNGs under the base path. Get the files there
2955
- * with `npx swimmer-ui-assets <publicDir>`.
2956
- */
2957
- export declare function setClayAssetMode(mode: ClayAssetMode): void;
2958
-
2959
1391
  /** Update one or both host-side performance limits. */
2960
1392
  export declare function setLiquidGooeyBudget(next: number | LiquidGooeyBudgetOptions): void;
2961
1393
 
2962
- export declare function setLiquidMetalContextBudget(nextLimit: number): void;
2963
-
2964
1394
  /** Small spring-to-easing compiler used by the shared group clock. */
2965
1395
  declare interface SpringConfig {
2966
1396
  stiffness?: number;
@@ -2988,11 +1418,4 @@ export declare function useGameCardOrientation(): {
2988
1418
  reducedMotion: boolean;
2989
1419
  };
2990
1420
 
2991
- /**
2992
- * Whether a waiting screen should appear yet: only once `waiting` has stayed
2993
- * true for `delayMs` without a break. A scene change that finishes inside the
2994
- * delay never shows the screen at all.
2995
- */
2996
- export declare function useGameSplashDelay(waiting: boolean, delayMs?: number): boolean;
2997
-
2998
1421
  export { }