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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (848) hide show
  1. package/CHANGELOG.md +47 -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-BcFCu22b.js +1554 -0
  9. package/dist/LiquidGroup-BXw1tv9H.js +1291 -0
  10. package/dist/fonts/zh/400-1f000.woff2 +0 -0
  11. package/dist/fonts/zh/400-1f200.woff2 +0 -0
  12. package/dist/fonts/zh/400-20000.woff2 +0 -0
  13. package/dist/fonts/zh/400-20600.woff2 +0 -0
  14. package/dist/fonts/zh/400-20c00.woff2 +0 -0
  15. package/dist/fonts/zh/400-21200.woff2 +0 -0
  16. package/dist/fonts/zh/400-21400.woff2 +0 -0
  17. package/dist/fonts/zh/400-22800.woff2 +0 -0
  18. package/dist/fonts/zh/400-23400.woff2 +0 -0
  19. package/dist/fonts/zh/400-23c00.woff2 +0 -0
  20. package/dist/fonts/zh/400-23e00.woff2 +0 -0
  21. package/dist/fonts/zh/400-24000.woff2 +0 -0
  22. package/dist/fonts/zh/400-24200.woff2 +0 -0
  23. package/dist/fonts/zh/400-24800.woff2 +0 -0
  24. package/dist/fonts/zh/400-24a00.woff2 +0 -0
  25. package/dist/fonts/zh/400-25400.woff2 +0 -0
  26. package/dist/fonts/zh/400-25a00.woff2 +0 -0
  27. package/dist/fonts/zh/400-25e00.woff2 +0 -0
  28. package/dist/fonts/zh/400-26200.woff2 +0 -0
  29. package/dist/fonts/zh/400-26400.woff2 +0 -0
  30. package/dist/fonts/zh/400-26600.woff2 +0 -0
  31. package/dist/fonts/zh/400-26800.woff2 +0 -0
  32. package/dist/fonts/zh/400-26a00.woff2 +0 -0
  33. package/dist/fonts/zh/400-26c00.woff2 +0 -0
  34. package/dist/fonts/zh/400-27800.woff2 +0 -0
  35. package/dist/fonts/zh/400-27e00.woff2 +0 -0
  36. package/dist/fonts/zh/400-28400.woff2 +0 -0
  37. package/dist/fonts/zh/400-28600.woff2 +0 -0
  38. package/dist/fonts/zh/400-28a00.woff2 +0 -0
  39. package/dist/fonts/zh/400-28c00.woff2 +0 -0
  40. package/dist/fonts/zh/400-28e00.woff2 +0 -0
  41. package/dist/fonts/zh/400-29600.woff2 +0 -0
  42. package/dist/fonts/zh/400-29800.woff2 +0 -0
  43. package/dist/fonts/zh/400-29e00.woff2 +0 -0
  44. package/dist/fonts/zh/400-2a600.woff2 +0 -0
  45. package/dist/fonts/zh/400-2a800.woff2 +0 -0
  46. package/dist/fonts/zh/400-2aa00.woff2 +0 -0
  47. package/dist/fonts/zh/400-2ae00.woff2 +0 -0
  48. package/dist/fonts/zh/400-2b000.woff2 +0 -0
  49. package/dist/fonts/zh/400-2b200.woff2 +0 -0
  50. package/dist/fonts/zh/400-2b400.woff2 +0 -0
  51. package/dist/fonts/zh/400-2b600.woff2 +0 -0
  52. package/dist/fonts/zh/400-2b800.woff2 +0 -0
  53. package/dist/fonts/zh/400-2ba00.woff2 +0 -0
  54. package/dist/fonts/zh/400-2bc00.woff2 +0 -0
  55. package/dist/fonts/zh/400-2be00.woff2 +0 -0
  56. package/dist/fonts/zh/400-2c000.woff2 +0 -0
  57. package/dist/fonts/zh/400-2c200.woff2 +0 -0
  58. package/dist/fonts/zh/400-2c400.woff2 +0 -0
  59. package/dist/fonts/zh/400-2c600.woff2 +0 -0
  60. package/dist/fonts/zh/400-2c800.woff2 +0 -0
  61. package/dist/fonts/zh/400-2ca00.woff2 +0 -0
  62. package/dist/fonts/zh/400-2cc00.woff2 +0 -0
  63. package/dist/fonts/zh/400-2ce00.woff2 +0 -0
  64. package/dist/fonts/zh/400-2d400.woff2 +0 -0
  65. package/dist/fonts/zh/400-2e00.woff2 +0 -0
  66. package/dist/fonts/zh/400-2f800.woff2 +0 -0
  67. package/dist/fonts/zh/400-3000.woff2 +0 -0
  68. package/dist/fonts/zh/400-3200.woff2 +0 -0
  69. package/dist/fonts/zh/400-3400.woff2 +0 -0
  70. package/dist/fonts/zh/400-3600.woff2 +0 -0
  71. package/dist/fonts/zh/400-3800.woff2 +0 -0
  72. package/dist/fonts/zh/400-3a00.woff2 +0 -0
  73. package/dist/fonts/zh/400-3c00.woff2 +0 -0
  74. package/dist/fonts/zh/400-3e00.woff2 +0 -0
  75. package/dist/fonts/zh/400-4000.woff2 +0 -0
  76. package/dist/fonts/zh/400-4200.woff2 +0 -0
  77. package/dist/fonts/zh/400-4400.woff2 +0 -0
  78. package/dist/fonts/zh/400-4600.woff2 +0 -0
  79. package/dist/fonts/zh/400-4800.woff2 +0 -0
  80. package/dist/fonts/zh/400-4a00.woff2 +0 -0
  81. package/dist/fonts/zh/400-4c00.woff2 +0 -0
  82. package/dist/fonts/zh/400-4e00.woff2 +0 -0
  83. package/dist/fonts/zh/400-5000.woff2 +0 -0
  84. package/dist/fonts/zh/400-5200.woff2 +0 -0
  85. package/dist/fonts/zh/400-5400.woff2 +0 -0
  86. package/dist/fonts/zh/400-5600.woff2 +0 -0
  87. package/dist/fonts/zh/400-5800.woff2 +0 -0
  88. package/dist/fonts/zh/400-5a00.woff2 +0 -0
  89. package/dist/fonts/zh/400-5c00.woff2 +0 -0
  90. package/dist/fonts/zh/400-5e00.woff2 +0 -0
  91. package/dist/fonts/zh/400-6000.woff2 +0 -0
  92. package/dist/fonts/zh/400-6200.woff2 +0 -0
  93. package/dist/fonts/zh/400-6400.woff2 +0 -0
  94. package/dist/fonts/zh/400-6600.woff2 +0 -0
  95. package/dist/fonts/zh/400-6800.woff2 +0 -0
  96. package/dist/fonts/zh/400-6a00.woff2 +0 -0
  97. package/dist/fonts/zh/400-6c00.woff2 +0 -0
  98. package/dist/fonts/zh/400-6e00.woff2 +0 -0
  99. package/dist/fonts/zh/400-7000.woff2 +0 -0
  100. package/dist/fonts/zh/400-7200.woff2 +0 -0
  101. package/dist/fonts/zh/400-7400.woff2 +0 -0
  102. package/dist/fonts/zh/400-7600.woff2 +0 -0
  103. package/dist/fonts/zh/400-7800.woff2 +0 -0
  104. package/dist/fonts/zh/400-7a00.woff2 +0 -0
  105. package/dist/fonts/zh/400-7c00.woff2 +0 -0
  106. package/dist/fonts/zh/400-7e00.woff2 +0 -0
  107. package/dist/fonts/zh/400-8000.woff2 +0 -0
  108. package/dist/fonts/zh/400-8200.woff2 +0 -0
  109. package/dist/fonts/zh/400-8400.woff2 +0 -0
  110. package/dist/fonts/zh/400-8600.woff2 +0 -0
  111. package/dist/fonts/zh/400-8800.woff2 +0 -0
  112. package/dist/fonts/zh/400-8a00.woff2 +0 -0
  113. package/dist/fonts/zh/400-8c00.woff2 +0 -0
  114. package/dist/fonts/zh/400-8e00.woff2 +0 -0
  115. package/dist/fonts/zh/400-9000.woff2 +0 -0
  116. package/dist/fonts/zh/400-9200.woff2 +0 -0
  117. package/dist/fonts/zh/400-9400.woff2 +0 -0
  118. package/dist/fonts/zh/400-9600.woff2 +0 -0
  119. package/dist/fonts/zh/400-9800.woff2 +0 -0
  120. package/dist/fonts/zh/400-9a00.woff2 +0 -0
  121. package/dist/fonts/zh/400-9c00.woff2 +0 -0
  122. package/dist/fonts/zh/400-9e00.woff2 +0 -0
  123. package/dist/fonts/zh/400-f800.woff2 +0 -0
  124. package/dist/fonts/zh/400-fa00.woff2 +0 -0
  125. package/dist/fonts/zh/400-fe00.woff2 +0 -0
  126. package/dist/fonts/zh/500-1f000.woff2 +0 -0
  127. package/dist/fonts/zh/500-1f200.woff2 +0 -0
  128. package/dist/fonts/zh/500-20000.woff2 +0 -0
  129. package/dist/fonts/zh/500-20600.woff2 +0 -0
  130. package/dist/fonts/zh/500-20c00.woff2 +0 -0
  131. package/dist/fonts/zh/500-21200.woff2 +0 -0
  132. package/dist/fonts/zh/500-21400.woff2 +0 -0
  133. package/dist/fonts/zh/500-22800.woff2 +0 -0
  134. package/dist/fonts/zh/500-23400.woff2 +0 -0
  135. package/dist/fonts/zh/500-23c00.woff2 +0 -0
  136. package/dist/fonts/zh/500-23e00.woff2 +0 -0
  137. package/dist/fonts/zh/500-24000.woff2 +0 -0
  138. package/dist/fonts/zh/500-24200.woff2 +0 -0
  139. package/dist/fonts/zh/500-24800.woff2 +0 -0
  140. package/dist/fonts/zh/500-24a00.woff2 +0 -0
  141. package/dist/fonts/zh/500-25400.woff2 +0 -0
  142. package/dist/fonts/zh/500-25a00.woff2 +0 -0
  143. package/dist/fonts/zh/500-25e00.woff2 +0 -0
  144. package/dist/fonts/zh/500-26200.woff2 +0 -0
  145. package/dist/fonts/zh/500-26400.woff2 +0 -0
  146. package/dist/fonts/zh/500-26600.woff2 +0 -0
  147. package/dist/fonts/zh/500-26800.woff2 +0 -0
  148. package/dist/fonts/zh/500-26a00.woff2 +0 -0
  149. package/dist/fonts/zh/500-26c00.woff2 +0 -0
  150. package/dist/fonts/zh/500-27800.woff2 +0 -0
  151. package/dist/fonts/zh/500-27e00.woff2 +0 -0
  152. package/dist/fonts/zh/500-28400.woff2 +0 -0
  153. package/dist/fonts/zh/500-28600.woff2 +0 -0
  154. package/dist/fonts/zh/500-28a00.woff2 +0 -0
  155. package/dist/fonts/zh/500-28c00.woff2 +0 -0
  156. package/dist/fonts/zh/500-28e00.woff2 +0 -0
  157. package/dist/fonts/zh/500-29600.woff2 +0 -0
  158. package/dist/fonts/zh/500-29800.woff2 +0 -0
  159. package/dist/fonts/zh/500-29e00.woff2 +0 -0
  160. package/dist/fonts/zh/500-2a600.woff2 +0 -0
  161. package/dist/fonts/zh/500-2a800.woff2 +0 -0
  162. package/dist/fonts/zh/500-2aa00.woff2 +0 -0
  163. package/dist/fonts/zh/500-2ae00.woff2 +0 -0
  164. package/dist/fonts/zh/500-2b000.woff2 +0 -0
  165. package/dist/fonts/zh/500-2b200.woff2 +0 -0
  166. package/dist/fonts/zh/500-2b400.woff2 +0 -0
  167. package/dist/fonts/zh/500-2b600.woff2 +0 -0
  168. package/dist/fonts/zh/500-2b800.woff2 +0 -0
  169. package/dist/fonts/zh/500-2ba00.woff2 +0 -0
  170. package/dist/fonts/zh/500-2bc00.woff2 +0 -0
  171. package/dist/fonts/zh/500-2be00.woff2 +0 -0
  172. package/dist/fonts/zh/500-2c000.woff2 +0 -0
  173. package/dist/fonts/zh/500-2c200.woff2 +0 -0
  174. package/dist/fonts/zh/500-2c400.woff2 +0 -0
  175. package/dist/fonts/zh/500-2c600.woff2 +0 -0
  176. package/dist/fonts/zh/500-2c800.woff2 +0 -0
  177. package/dist/fonts/zh/500-2ca00.woff2 +0 -0
  178. package/dist/fonts/zh/500-2cc00.woff2 +0 -0
  179. package/dist/fonts/zh/500-2ce00.woff2 +0 -0
  180. package/dist/fonts/zh/500-2d400.woff2 +0 -0
  181. package/dist/fonts/zh/500-2e00.woff2 +0 -0
  182. package/dist/fonts/zh/500-2f800.woff2 +0 -0
  183. package/dist/fonts/zh/500-3000.woff2 +0 -0
  184. package/dist/fonts/zh/500-3200.woff2 +0 -0
  185. package/dist/fonts/zh/500-3400.woff2 +0 -0
  186. package/dist/fonts/zh/500-3600.woff2 +0 -0
  187. package/dist/fonts/zh/500-3800.woff2 +0 -0
  188. package/dist/fonts/zh/500-3a00.woff2 +0 -0
  189. package/dist/fonts/zh/500-3c00.woff2 +0 -0
  190. package/dist/fonts/zh/500-3e00.woff2 +0 -0
  191. package/dist/fonts/zh/500-4000.woff2 +0 -0
  192. package/dist/fonts/zh/500-4200.woff2 +0 -0
  193. package/dist/fonts/zh/500-4400.woff2 +0 -0
  194. package/dist/fonts/zh/500-4600.woff2 +0 -0
  195. package/dist/fonts/zh/500-4800.woff2 +0 -0
  196. package/dist/fonts/zh/500-4a00.woff2 +0 -0
  197. package/dist/fonts/zh/500-4c00.woff2 +0 -0
  198. package/dist/fonts/zh/500-4e00.woff2 +0 -0
  199. package/dist/fonts/zh/500-5000.woff2 +0 -0
  200. package/dist/fonts/zh/500-5200.woff2 +0 -0
  201. package/dist/fonts/zh/500-5400.woff2 +0 -0
  202. package/dist/fonts/zh/500-5600.woff2 +0 -0
  203. package/dist/fonts/zh/500-5800.woff2 +0 -0
  204. package/dist/fonts/zh/500-5a00.woff2 +0 -0
  205. package/dist/fonts/zh/500-5c00.woff2 +0 -0
  206. package/dist/fonts/zh/500-5e00.woff2 +0 -0
  207. package/dist/fonts/zh/500-6000.woff2 +0 -0
  208. package/dist/fonts/zh/500-6200.woff2 +0 -0
  209. package/dist/fonts/zh/500-6400.woff2 +0 -0
  210. package/dist/fonts/zh/500-6600.woff2 +0 -0
  211. package/dist/fonts/zh/500-6800.woff2 +0 -0
  212. package/dist/fonts/zh/500-6a00.woff2 +0 -0
  213. package/dist/fonts/zh/500-6c00.woff2 +0 -0
  214. package/dist/fonts/zh/500-6e00.woff2 +0 -0
  215. package/dist/fonts/zh/500-7000.woff2 +0 -0
  216. package/dist/fonts/zh/500-7200.woff2 +0 -0
  217. package/dist/fonts/zh/500-7400.woff2 +0 -0
  218. package/dist/fonts/zh/500-7600.woff2 +0 -0
  219. package/dist/fonts/zh/500-7800.woff2 +0 -0
  220. package/dist/fonts/zh/500-7a00.woff2 +0 -0
  221. package/dist/fonts/zh/500-7c00.woff2 +0 -0
  222. package/dist/fonts/zh/500-7e00.woff2 +0 -0
  223. package/dist/fonts/zh/500-8000.woff2 +0 -0
  224. package/dist/fonts/zh/500-8200.woff2 +0 -0
  225. package/dist/fonts/zh/500-8400.woff2 +0 -0
  226. package/dist/fonts/zh/500-8600.woff2 +0 -0
  227. package/dist/fonts/zh/500-8800.woff2 +0 -0
  228. package/dist/fonts/zh/500-8a00.woff2 +0 -0
  229. package/dist/fonts/zh/500-8c00.woff2 +0 -0
  230. package/dist/fonts/zh/500-8e00.woff2 +0 -0
  231. package/dist/fonts/zh/500-9000.woff2 +0 -0
  232. package/dist/fonts/zh/500-9200.woff2 +0 -0
  233. package/dist/fonts/zh/500-9400.woff2 +0 -0
  234. package/dist/fonts/zh/500-9600.woff2 +0 -0
  235. package/dist/fonts/zh/500-9800.woff2 +0 -0
  236. package/dist/fonts/zh/500-9a00.woff2 +0 -0
  237. package/dist/fonts/zh/500-9c00.woff2 +0 -0
  238. package/dist/fonts/zh/500-9e00.woff2 +0 -0
  239. package/dist/fonts/zh/500-f800.woff2 +0 -0
  240. package/dist/fonts/zh/500-fa00.woff2 +0 -0
  241. package/dist/fonts/zh/500-fe00.woff2 +0 -0
  242. package/dist/fonts/zh/700-1f000.woff2 +0 -0
  243. package/dist/fonts/zh/700-1f200.woff2 +0 -0
  244. package/dist/fonts/zh/700-20000.woff2 +0 -0
  245. package/dist/fonts/zh/700-20600.woff2 +0 -0
  246. package/dist/fonts/zh/700-20c00.woff2 +0 -0
  247. package/dist/fonts/zh/700-21200.woff2 +0 -0
  248. package/dist/fonts/zh/700-21400.woff2 +0 -0
  249. package/dist/fonts/zh/700-22800.woff2 +0 -0
  250. package/dist/fonts/zh/700-23400.woff2 +0 -0
  251. package/dist/fonts/zh/700-23c00.woff2 +0 -0
  252. package/dist/fonts/zh/700-23e00.woff2 +0 -0
  253. package/dist/fonts/zh/700-24000.woff2 +0 -0
  254. package/dist/fonts/zh/700-24200.woff2 +0 -0
  255. package/dist/fonts/zh/700-24800.woff2 +0 -0
  256. package/dist/fonts/zh/700-24a00.woff2 +0 -0
  257. package/dist/fonts/zh/700-25400.woff2 +0 -0
  258. package/dist/fonts/zh/700-25a00.woff2 +0 -0
  259. package/dist/fonts/zh/700-25e00.woff2 +0 -0
  260. package/dist/fonts/zh/700-26200.woff2 +0 -0
  261. package/dist/fonts/zh/700-26400.woff2 +0 -0
  262. package/dist/fonts/zh/700-26600.woff2 +0 -0
  263. package/dist/fonts/zh/700-26800.woff2 +0 -0
  264. package/dist/fonts/zh/700-26a00.woff2 +0 -0
  265. package/dist/fonts/zh/700-26c00.woff2 +0 -0
  266. package/dist/fonts/zh/700-27800.woff2 +0 -0
  267. package/dist/fonts/zh/700-27e00.woff2 +0 -0
  268. package/dist/fonts/zh/700-28400.woff2 +0 -0
  269. package/dist/fonts/zh/700-28600.woff2 +0 -0
  270. package/dist/fonts/zh/700-28a00.woff2 +0 -0
  271. package/dist/fonts/zh/700-28c00.woff2 +0 -0
  272. package/dist/fonts/zh/700-28e00.woff2 +0 -0
  273. package/dist/fonts/zh/700-29600.woff2 +0 -0
  274. package/dist/fonts/zh/700-29800.woff2 +0 -0
  275. package/dist/fonts/zh/700-29e00.woff2 +0 -0
  276. package/dist/fonts/zh/700-2a600.woff2 +0 -0
  277. package/dist/fonts/zh/700-2a800.woff2 +0 -0
  278. package/dist/fonts/zh/700-2aa00.woff2 +0 -0
  279. package/dist/fonts/zh/700-2ae00.woff2 +0 -0
  280. package/dist/fonts/zh/700-2b000.woff2 +0 -0
  281. package/dist/fonts/zh/700-2b200.woff2 +0 -0
  282. package/dist/fonts/zh/700-2b400.woff2 +0 -0
  283. package/dist/fonts/zh/700-2b600.woff2 +0 -0
  284. package/dist/fonts/zh/700-2b800.woff2 +0 -0
  285. package/dist/fonts/zh/700-2ba00.woff2 +0 -0
  286. package/dist/fonts/zh/700-2bc00.woff2 +0 -0
  287. package/dist/fonts/zh/700-2be00.woff2 +0 -0
  288. package/dist/fonts/zh/700-2c000.woff2 +0 -0
  289. package/dist/fonts/zh/700-2c200.woff2 +0 -0
  290. package/dist/fonts/zh/700-2c400.woff2 +0 -0
  291. package/dist/fonts/zh/700-2c600.woff2 +0 -0
  292. package/dist/fonts/zh/700-2c800.woff2 +0 -0
  293. package/dist/fonts/zh/700-2ca00.woff2 +0 -0
  294. package/dist/fonts/zh/700-2cc00.woff2 +0 -0
  295. package/dist/fonts/zh/700-2ce00.woff2 +0 -0
  296. package/dist/fonts/zh/700-2d400.woff2 +0 -0
  297. package/dist/fonts/zh/700-2e00.woff2 +0 -0
  298. package/dist/fonts/zh/700-2f800.woff2 +0 -0
  299. package/dist/fonts/zh/700-3000.woff2 +0 -0
  300. package/dist/fonts/zh/700-3200.woff2 +0 -0
  301. package/dist/fonts/zh/700-3400.woff2 +0 -0
  302. package/dist/fonts/zh/700-3600.woff2 +0 -0
  303. package/dist/fonts/zh/700-3800.woff2 +0 -0
  304. package/dist/fonts/zh/700-3a00.woff2 +0 -0
  305. package/dist/fonts/zh/700-3c00.woff2 +0 -0
  306. package/dist/fonts/zh/700-3e00.woff2 +0 -0
  307. package/dist/fonts/zh/700-4000.woff2 +0 -0
  308. package/dist/fonts/zh/700-4200.woff2 +0 -0
  309. package/dist/fonts/zh/700-4400.woff2 +0 -0
  310. package/dist/fonts/zh/700-4600.woff2 +0 -0
  311. package/dist/fonts/zh/700-4800.woff2 +0 -0
  312. package/dist/fonts/zh/700-4a00.woff2 +0 -0
  313. package/dist/fonts/zh/700-4c00.woff2 +0 -0
  314. package/dist/fonts/zh/700-4e00.woff2 +0 -0
  315. package/dist/fonts/zh/700-5000.woff2 +0 -0
  316. package/dist/fonts/zh/700-5200.woff2 +0 -0
  317. package/dist/fonts/zh/700-5400.woff2 +0 -0
  318. package/dist/fonts/zh/700-5600.woff2 +0 -0
  319. package/dist/fonts/zh/700-5800.woff2 +0 -0
  320. package/dist/fonts/zh/700-5a00.woff2 +0 -0
  321. package/dist/fonts/zh/700-5c00.woff2 +0 -0
  322. package/dist/fonts/zh/700-5e00.woff2 +0 -0
  323. package/dist/fonts/zh/700-6000.woff2 +0 -0
  324. package/dist/fonts/zh/700-6200.woff2 +0 -0
  325. package/dist/fonts/zh/700-6400.woff2 +0 -0
  326. package/dist/fonts/zh/700-6600.woff2 +0 -0
  327. package/dist/fonts/zh/700-6800.woff2 +0 -0
  328. package/dist/fonts/zh/700-6a00.woff2 +0 -0
  329. package/dist/fonts/zh/700-6c00.woff2 +0 -0
  330. package/dist/fonts/zh/700-6e00.woff2 +0 -0
  331. package/dist/fonts/zh/700-7000.woff2 +0 -0
  332. package/dist/fonts/zh/700-7200.woff2 +0 -0
  333. package/dist/fonts/zh/700-7400.woff2 +0 -0
  334. package/dist/fonts/zh/700-7600.woff2 +0 -0
  335. package/dist/fonts/zh/700-7800.woff2 +0 -0
  336. package/dist/fonts/zh/700-7a00.woff2 +0 -0
  337. package/dist/fonts/zh/700-7c00.woff2 +0 -0
  338. package/dist/fonts/zh/700-7e00.woff2 +0 -0
  339. package/dist/fonts/zh/700-8000.woff2 +0 -0
  340. package/dist/fonts/zh/700-8200.woff2 +0 -0
  341. package/dist/fonts/zh/700-8400.woff2 +0 -0
  342. package/dist/fonts/zh/700-8600.woff2 +0 -0
  343. package/dist/fonts/zh/700-8800.woff2 +0 -0
  344. package/dist/fonts/zh/700-8a00.woff2 +0 -0
  345. package/dist/fonts/zh/700-8c00.woff2 +0 -0
  346. package/dist/fonts/zh/700-8e00.woff2 +0 -0
  347. package/dist/fonts/zh/700-9000.woff2 +0 -0
  348. package/dist/fonts/zh/700-9200.woff2 +0 -0
  349. package/dist/fonts/zh/700-9400.woff2 +0 -0
  350. package/dist/fonts/zh/700-9600.woff2 +0 -0
  351. package/dist/fonts/zh/700-9800.woff2 +0 -0
  352. package/dist/fonts/zh/700-9a00.woff2 +0 -0
  353. package/dist/fonts/zh/700-9c00.woff2 +0 -0
  354. package/dist/fonts/zh/700-9e00.woff2 +0 -0
  355. package/dist/fonts/zh/700-f800.woff2 +0 -0
  356. package/dist/fonts/zh/700-fa00.woff2 +0 -0
  357. package/dist/fonts/zh/700-fe00.woff2 +0 -0
  358. package/dist/fonts/zh/900-1f000.woff2 +0 -0
  359. package/dist/fonts/zh/900-1f200.woff2 +0 -0
  360. package/dist/fonts/zh/900-20000.woff2 +0 -0
  361. package/dist/fonts/zh/900-20600.woff2 +0 -0
  362. package/dist/fonts/zh/900-20c00.woff2 +0 -0
  363. package/dist/fonts/zh/900-21200.woff2 +0 -0
  364. package/dist/fonts/zh/900-21400.woff2 +0 -0
  365. package/dist/fonts/zh/900-22800.woff2 +0 -0
  366. package/dist/fonts/zh/900-23400.woff2 +0 -0
  367. package/dist/fonts/zh/900-23c00.woff2 +0 -0
  368. package/dist/fonts/zh/900-23e00.woff2 +0 -0
  369. package/dist/fonts/zh/900-24000.woff2 +0 -0
  370. package/dist/fonts/zh/900-24200.woff2 +0 -0
  371. package/dist/fonts/zh/900-24800.woff2 +0 -0
  372. package/dist/fonts/zh/900-24a00.woff2 +0 -0
  373. package/dist/fonts/zh/900-25400.woff2 +0 -0
  374. package/dist/fonts/zh/900-25a00.woff2 +0 -0
  375. package/dist/fonts/zh/900-25e00.woff2 +0 -0
  376. package/dist/fonts/zh/900-26200.woff2 +0 -0
  377. package/dist/fonts/zh/900-26400.woff2 +0 -0
  378. package/dist/fonts/zh/900-26600.woff2 +0 -0
  379. package/dist/fonts/zh/900-26800.woff2 +0 -0
  380. package/dist/fonts/zh/900-26a00.woff2 +0 -0
  381. package/dist/fonts/zh/900-26c00.woff2 +0 -0
  382. package/dist/fonts/zh/900-27800.woff2 +0 -0
  383. package/dist/fonts/zh/900-27e00.woff2 +0 -0
  384. package/dist/fonts/zh/900-28400.woff2 +0 -0
  385. package/dist/fonts/zh/900-28600.woff2 +0 -0
  386. package/dist/fonts/zh/900-28a00.woff2 +0 -0
  387. package/dist/fonts/zh/900-28c00.woff2 +0 -0
  388. package/dist/fonts/zh/900-28e00.woff2 +0 -0
  389. package/dist/fonts/zh/900-29600.woff2 +0 -0
  390. package/dist/fonts/zh/900-29800.woff2 +0 -0
  391. package/dist/fonts/zh/900-29e00.woff2 +0 -0
  392. package/dist/fonts/zh/900-2a600.woff2 +0 -0
  393. package/dist/fonts/zh/900-2a800.woff2 +0 -0
  394. package/dist/fonts/zh/900-2aa00.woff2 +0 -0
  395. package/dist/fonts/zh/900-2ae00.woff2 +0 -0
  396. package/dist/fonts/zh/900-2b000.woff2 +0 -0
  397. package/dist/fonts/zh/900-2b200.woff2 +0 -0
  398. package/dist/fonts/zh/900-2b400.woff2 +0 -0
  399. package/dist/fonts/zh/900-2b600.woff2 +0 -0
  400. package/dist/fonts/zh/900-2b800.woff2 +0 -0
  401. package/dist/fonts/zh/900-2ba00.woff2 +0 -0
  402. package/dist/fonts/zh/900-2bc00.woff2 +0 -0
  403. package/dist/fonts/zh/900-2be00.woff2 +0 -0
  404. package/dist/fonts/zh/900-2c000.woff2 +0 -0
  405. package/dist/fonts/zh/900-2c200.woff2 +0 -0
  406. package/dist/fonts/zh/900-2c400.woff2 +0 -0
  407. package/dist/fonts/zh/900-2c600.woff2 +0 -0
  408. package/dist/fonts/zh/900-2c800.woff2 +0 -0
  409. package/dist/fonts/zh/900-2ca00.woff2 +0 -0
  410. package/dist/fonts/zh/900-2cc00.woff2 +0 -0
  411. package/dist/fonts/zh/900-2ce00.woff2 +0 -0
  412. package/dist/fonts/zh/900-2d400.woff2 +0 -0
  413. package/dist/fonts/zh/900-2e00.woff2 +0 -0
  414. package/dist/fonts/zh/900-2f800.woff2 +0 -0
  415. package/dist/fonts/zh/900-3000.woff2 +0 -0
  416. package/dist/fonts/zh/900-3200.woff2 +0 -0
  417. package/dist/fonts/zh/900-3400.woff2 +0 -0
  418. package/dist/fonts/zh/900-3600.woff2 +0 -0
  419. package/dist/fonts/zh/900-3800.woff2 +0 -0
  420. package/dist/fonts/zh/900-3a00.woff2 +0 -0
  421. package/dist/fonts/zh/900-3c00.woff2 +0 -0
  422. package/dist/fonts/zh/900-3e00.woff2 +0 -0
  423. package/dist/fonts/zh/900-4000.woff2 +0 -0
  424. package/dist/fonts/zh/900-4200.woff2 +0 -0
  425. package/dist/fonts/zh/900-4400.woff2 +0 -0
  426. package/dist/fonts/zh/900-4600.woff2 +0 -0
  427. package/dist/fonts/zh/900-4800.woff2 +0 -0
  428. package/dist/fonts/zh/900-4a00.woff2 +0 -0
  429. package/dist/fonts/zh/900-4c00.woff2 +0 -0
  430. package/dist/fonts/zh/900-4e00.woff2 +0 -0
  431. package/dist/fonts/zh/900-5000.woff2 +0 -0
  432. package/dist/fonts/zh/900-5200.woff2 +0 -0
  433. package/dist/fonts/zh/900-5400.woff2 +0 -0
  434. package/dist/fonts/zh/900-5600.woff2 +0 -0
  435. package/dist/fonts/zh/900-5800.woff2 +0 -0
  436. package/dist/fonts/zh/900-5a00.woff2 +0 -0
  437. package/dist/fonts/zh/900-5c00.woff2 +0 -0
  438. package/dist/fonts/zh/900-5e00.woff2 +0 -0
  439. package/dist/fonts/zh/900-6000.woff2 +0 -0
  440. package/dist/fonts/zh/900-6200.woff2 +0 -0
  441. package/dist/fonts/zh/900-6400.woff2 +0 -0
  442. package/dist/fonts/zh/900-6600.woff2 +0 -0
  443. package/dist/fonts/zh/900-6800.woff2 +0 -0
  444. package/dist/fonts/zh/900-6a00.woff2 +0 -0
  445. package/dist/fonts/zh/900-6c00.woff2 +0 -0
  446. package/dist/fonts/zh/900-6e00.woff2 +0 -0
  447. package/dist/fonts/zh/900-7000.woff2 +0 -0
  448. package/dist/fonts/zh/900-7200.woff2 +0 -0
  449. package/dist/fonts/zh/900-7400.woff2 +0 -0
  450. package/dist/fonts/zh/900-7600.woff2 +0 -0
  451. package/dist/fonts/zh/900-7800.woff2 +0 -0
  452. package/dist/fonts/zh/900-7a00.woff2 +0 -0
  453. package/dist/fonts/zh/900-7c00.woff2 +0 -0
  454. package/dist/fonts/zh/900-7e00.woff2 +0 -0
  455. package/dist/fonts/zh/900-8000.woff2 +0 -0
  456. package/dist/fonts/zh/900-8200.woff2 +0 -0
  457. package/dist/fonts/zh/900-8400.woff2 +0 -0
  458. package/dist/fonts/zh/900-8600.woff2 +0 -0
  459. package/dist/fonts/zh/900-8800.woff2 +0 -0
  460. package/dist/fonts/zh/900-8a00.woff2 +0 -0
  461. package/dist/fonts/zh/900-8c00.woff2 +0 -0
  462. package/dist/fonts/zh/900-8e00.woff2 +0 -0
  463. package/dist/fonts/zh/900-9000.woff2 +0 -0
  464. package/dist/fonts/zh/900-9200.woff2 +0 -0
  465. package/dist/fonts/zh/900-9400.woff2 +0 -0
  466. package/dist/fonts/zh/900-9600.woff2 +0 -0
  467. package/dist/fonts/zh/900-9800.woff2 +0 -0
  468. package/dist/fonts/zh/900-9a00.woff2 +0 -0
  469. package/dist/fonts/zh/900-9c00.woff2 +0 -0
  470. package/dist/fonts/zh/900-9e00.woff2 +0 -0
  471. package/dist/fonts/zh/900-f800.woff2 +0 -0
  472. package/dist/fonts/zh/900-fa00.woff2 +0 -0
  473. package/dist/fonts/zh/900-fe00.woff2 +0 -0
  474. package/dist/fonts/zh/OFL.txt +98 -0
  475. package/dist/fonts/zh/font-faces.css +4176 -0
  476. package/dist/fonts/zh/manifest.json +3728 -0
  477. package/dist/fonts.css +1 -1
  478. package/dist/icon-paths.d.ts +247 -0
  479. package/dist/icon-paths.js +2 -0
  480. package/dist/index.d.ts +353 -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. */
@@ -29,845 +28,15 @@ declare interface BlobShape {
29
28
  readonly phase?: number;
30
29
  }
31
30
 
32
- export declare const CLAY_ASSET_BASE_PATH: "/assets/game/ui/clay/phase03-clay-kit";
33
-
34
- export declare const CLAY_ASSET_SIZE_TOKENS: {
35
- readonly iconSm: "var(--game-ui-asset-icon-sm)";
36
- readonly iconMd: "var(--game-ui-asset-icon-md)";
37
- readonly iconLg: "var(--game-ui-asset-icon-lg)";
38
- readonly iconXl: "var(--game-ui-asset-icon-xl)";
39
- readonly buttonSkinMinWidth: "var(--game-ui-asset-button-min-width)";
40
- readonly cardFanWidth: "var(--game-ui-asset-card-fan-width)";
41
- readonly stageTileMinHeight: "var(--game-ui-stage-tile-min-height)";
42
- readonly terrainSwatchSize: "var(--game-ui-terrain-swatch-size)";
43
- readonly terrainToolHitSize: "var(--game-ui-terrain-tool-hit-size)";
44
- readonly buildRailCardSize: "var(--game-ui-build-rail-card-size)";
45
- readonly brushNumberWidth: "var(--game-ui-brush-number-width)";
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
- };
31
+ declare type ButtonAction = ButtonHTMLAttributes<HTMLButtonElement> & {
32
+ href?: undefined;
33
+ linkComponent?: undefined;
34
+ target?: never;
35
+ rel?: never;
36
+ download?: never;
766
37
  };
767
38
 
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;
868
- }
869
-
870
- export declare type DissolveValue = boolean | number | DissolveOptions;
39
+ declare type CornerRadii = [number, number, number, number];
871
40
 
872
41
  declare interface EvolveOptions {
873
42
  /** Spring driving the liquid mass's centre. */
@@ -893,55 +62,6 @@ declare interface EvolveOptions {
893
62
  travel?: number;
894
63
  }
895
64
 
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
65
  export declare function FirstSessionOnboarding({ labels, onDismiss, open, }: FirstSessionOnboardingProps): ReactNode;
946
66
 
947
67
  export declare interface FirstSessionOnboardingLabels {
@@ -964,16 +84,207 @@ export declare interface FirstSessionOnboardingStep {
964
84
  title: string;
965
85
  }
966
86
 
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";
87
+ export declare const GAME_ICON_NAMES: GameIconName[];
88
+
89
+ declare const GAME_ICONS: {
90
+ readonly ai: {
91
+ readonly name: "ai";
92
+ readonly paths: readonly ["M12 18V5", "M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4", "M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5", "M17.997 5.125a4 4 0 0 1 2.526 5.77", "M18 18a4 4 0 0 0 2-7.464", "M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517", "M6 18a4 4 0 0 1-2-7.464", "M6.003 5.125a4 4 0 0 0-2.526 5.77"];
93
+ };
94
+ readonly alert: {
95
+ readonly name: "alert";
96
+ readonly paths: readonly ["m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3", "M12 9v4", "M12 17h.01"];
97
+ };
98
+ readonly card: {
99
+ readonly name: "card";
100
+ readonly paths: readonly ["M4 5H20a2 2 0 0 1 2 2V17a2 2 0 0 1 -2 2H4a2 2 0 0 1 -2 -2V7a2 2 0 0 1 2 -2Z", "M2 10L22 10", "M6 14h2"];
101
+ };
102
+ readonly chat: {
103
+ readonly name: "chat";
104
+ readonly paths: readonly ["M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719"];
105
+ };
106
+ readonly check: {
107
+ readonly name: "check";
108
+ readonly paths: readonly ["M20 6 9 17l-5-5"];
109
+ };
110
+ readonly close: {
111
+ readonly name: "close";
112
+ readonly paths: readonly ["M18 6 6 18", "m6 6 12 12"];
113
+ };
114
+ readonly coin: {
115
+ readonly name: "coin";
116
+ readonly paths: readonly ["M13.744 17.736a6 6 0 1 1-7.48-7.48", "M15 6h1v4", "m6.134 14.768.866-.5 2 3.464", "M10 8a6 6 0 1 0 12 0a6 6 0 1 0 -12 0"];
117
+ };
118
+ readonly compass: {
119
+ readonly name: "compass";
120
+ readonly paths: readonly ["M2 12a10 10 0 1 0 20 0a10 10 0 1 0 -20 0", "m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z"];
121
+ };
122
+ readonly copy: {
123
+ readonly name: "copy";
124
+ readonly paths: readonly ["M10 8H20a2 2 0 0 1 2 2V20a2 2 0 0 1 -2 2H10a2 2 0 0 1 -2 -2V10a2 2 0 0 1 2 -2Z", "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"];
125
+ };
126
+ readonly crown: {
127
+ readonly name: "crown";
128
+ readonly paths: readonly ["M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z", "M5 21h14"];
129
+ };
130
+ readonly energy: {
131
+ readonly name: "energy";
132
+ readonly paths: readonly ["M15.914 4a1.5 1.5 0 00-2.474-1.561l-9 9A1.5 1.5 0 005.5 14h4.002a.5.5 0 01.471.666L8.086 20a1.5 1.5 0 002.475 1.56l9-9A1.5 1.5 0 0018.5 10h-3.997a.5.5 0 01-.472-.667z"];
133
+ };
134
+ readonly gem: {
135
+ readonly name: "gem";
136
+ readonly paths: readonly ["M10.5 3 8 9l4 13 4-13-2.5-6", "M17 3a2 2 0 0 1 1.6.8l3 4a2 2 0 0 1 .013 2.382l-7.99 10.986a2 2 0 0 1-3.247 0l-7.99-10.986A2 2 0 0 1 2.4 7.8l2.998-3.997A2 2 0 0 1 7 3z", "M2 9h20"];
137
+ };
138
+ readonly gift: {
139
+ readonly name: "gift";
140
+ readonly paths: readonly ["M12 7v14", "M20 11v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8", "M7.5 7a1 1 0 0 1 0-5A4.8 8 0 0 1 12 7a4.8 8 0 0 1 4.5-5 1 1 0 0 1 0 5", "M4 7H20a1 1 0 0 1 1 1V10a1 1 0 0 1 -1 1H4a1 1 0 0 1 -1 -1V8a1 1 0 0 1 1 -1Z"];
141
+ };
142
+ readonly globe: {
143
+ readonly name: "globe";
144
+ readonly paths: readonly ["M2 12a10 10 0 1 0 20 0a10 10 0 1 0 -20 0", "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20", "M2 12h20"];
145
+ };
146
+ readonly history: {
147
+ readonly name: "history";
148
+ readonly paths: readonly ["M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", "M3 3v5h5", "M12 7v5l4 2"];
149
+ };
150
+ readonly redo: {
151
+ readonly name: "redo";
152
+ readonly paths: readonly ["M21 7v6h-6", "M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7"];
153
+ };
154
+ readonly undo: {
155
+ readonly name: "undo";
156
+ readonly paths: readonly ["M3 7v6h6", "M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13"];
157
+ };
158
+ readonly home: {
159
+ readonly name: "home";
160
+ readonly paths: readonly ["M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8", "M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"];
161
+ };
162
+ readonly hourglass: {
163
+ readonly name: "hourglass";
164
+ readonly paths: readonly ["M5 22h14", "M5 2h14", "M17 22v-4.172a2 2 0 0 0-.586-1.414L12 12l-4.414 4.414A2 2 0 0 0 7 17.828V22", "M7 2v4.172a2 2 0 0 0 .586 1.414L12 12l4.414-4.414A2 2 0 0 0 17 6.172V2"];
165
+ };
166
+ readonly laurel: {
167
+ readonly name: "laurel";
168
+ readonly paths: readonly ["m15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526", "M6 8a6 6 0 1 0 12 0a6 6 0 1 0 -12 0"];
169
+ };
170
+ readonly lock: {
171
+ readonly name: "lock";
172
+ readonly paths: readonly ["M5 11H19a2 2 0 0 1 2 2V20a2 2 0 0 1 -2 2H5a2 2 0 0 1 -2 -2V13a2 2 0 0 1 2 -2Z", "M7 11V7a5 5 0 0 1 10 0v4"];
173
+ };
174
+ readonly lucky: {
175
+ readonly name: "lucky";
176
+ readonly paths: readonly ["M16.17 7.83 2 22", "M4.02 12a2.827 2.827 0 1 1 3.81-4.17A2.827 2.827 0 1 1 12 4.02a2.827 2.827 0 1 1 4.17 3.81A2.827 2.827 0 1 1 19.98 12a2.827 2.827 0 1 1-3.81 4.17A2.827 2.827 0 1 1 12 19.98a2.827 2.827 0 1 1-4.17-3.81A1 1 0 1 1 4 12", "m7.83 7.83 8.34 8.34"];
177
+ };
178
+ readonly mail: {
179
+ readonly name: "mail";
180
+ readonly paths: readonly ["m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7", "M4 4H20a2 2 0 0 1 2 2V18a2 2 0 0 1 -2 2H4a2 2 0 0 1 -2 -2V6a2 2 0 0 1 2 -2Z"];
181
+ };
182
+ readonly medal: {
183
+ readonly name: "medal";
184
+ readonly paths: readonly ["M7.21 15 2.66 7.14a2 2 0 0 1 .13-2.2L4.4 2.8A2 2 0 0 1 6 2h12a2 2 0 0 1 1.6.8l1.6 2.14a2 2 0 0 1 .14 2.2L16.79 15", "M11 12 5.12 2.2", "m13 12 5.88-9.8", "M8 7h8", "M7 17a5 5 0 1 0 10 0a5 5 0 1 0 -10 0", "M12 18v-2h-.5"];
185
+ };
186
+ readonly mission: {
187
+ readonly name: "mission";
188
+ readonly paths: readonly ["M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528"];
189
+ };
190
+ readonly mobile: {
191
+ readonly name: "mobile";
192
+ readonly paths: readonly ["M7 2H17a2 2 0 0 1 2 2V20a2 2 0 0 1 -2 2H7a2 2 0 0 1 -2 -2V4a2 2 0 0 1 2 -2Z", "M12 18h.01"];
193
+ };
194
+ readonly portal: {
195
+ readonly name: "portal";
196
+ readonly paths: readonly ["M20.341 6.484A10 10 0 0 1 10.266 21.85", "M3.659 17.516A10 10 0 0 1 13.74 2.152", "M9 12a3 3 0 1 0 6 0a3 3 0 1 0 -6 0", "M17 5a2 2 0 1 0 4 0a2 2 0 1 0 -4 0", "M3 19a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"];
197
+ };
198
+ readonly scroll: {
199
+ readonly name: "scroll";
200
+ readonly paths: readonly ["M19 17V5a2 2 0 0 0-2-2H4", "M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3"];
201
+ };
202
+ readonly settings: {
203
+ readonly name: "settings";
204
+ readonly paths: readonly ["M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915", "M9 12a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"];
205
+ };
206
+ readonly shirt: {
207
+ readonly name: "shirt";
208
+ readonly paths: readonly ["M20.38 3.46 16 2a4 4 0 0 1-8 0L3.62 3.46a2 2 0 0 0-1.34 2.23l.58 3.47a1 1 0 0 0 .99.84H6v10c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V10h2.15a1 1 0 0 0 .99-.84l.58-3.47a2 2 0 0 0-1.34-2.23z"];
209
+ };
210
+ readonly shop: {
211
+ readonly name: "shop";
212
+ readonly paths: readonly ["M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5", "M17.774 10.31a1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.451 0 1.12 1.12 0 0 0-1.548 0 2.5 2.5 0 0 1-3.452 0 1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.77-3.248l2.889-4.184A2 2 0 0 1 7 2h10a2 2 0 0 1 1.653.873l2.895 4.192a2.5 2.5 0 0 1-3.774 3.244", "M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05"];
213
+ };
214
+ readonly smile: {
215
+ readonly name: "smile";
216
+ readonly paths: readonly ["M15 10V9", "M16.472 15a6 6 0 01-8.943 0", "M9 10V9", "M2 12a10 10 0 1 0 20 0a10 10 0 1 0 -20 0"];
217
+ };
218
+ readonly timer: {
219
+ readonly name: "timer";
220
+ readonly paths: readonly ["M10 2L14 2", "M12 14L15 11", "M4 14a8 8 0 1 0 16 0a8 8 0 1 0 -16 0"];
221
+ };
222
+ readonly trophy: {
223
+ readonly name: "trophy";
224
+ readonly paths: readonly ["M10 14.66V17a1 1 0 0 1-1 1 2 2 0 0 0-2 2v2", "M14 14.66V17a1 1 0 0 0 1 1 2 2 0 0 1 2 2v2", "M17.916 10H19.5A2.5 2.5 0 0 0 22 7.5V5a1 1 0 0 0-1-1h-3", "M4 22h16", "M6 9a6 6 0 0 0 12 0V3a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z", "M6.084 10H4.5A2.5 2.5 0 0 1 2 7.5V5a1 1 0 0 1 1-1h3"];
225
+ };
226
+ readonly vote: {
227
+ readonly name: "vote";
228
+ readonly paths: readonly ["m9 12 2 2 4-4", "M5 7c0-1.1.9-2 2-2h10a2 2 0 0 1 2 2v12H5V7Z", "M22 19H2"];
229
+ };
230
+ readonly 'arrow-left': {
231
+ readonly name: "arrow-left";
232
+ readonly paths: readonly ["m12 19-7-7 7-7", "M19 12H5"];
233
+ };
234
+ readonly 'arrow-right': {
235
+ readonly name: "arrow-right";
236
+ readonly paths: readonly ["M5 12h14", "m12 5 7 7-7 7"];
237
+ };
238
+ readonly 'chevron-down': {
239
+ readonly name: "chevron-down";
240
+ readonly paths: readonly ["m6 9 6 6 6-6"];
241
+ };
242
+ readonly 'chevron-up': {
243
+ readonly name: "chevron-up";
244
+ readonly paths: readonly ["m18 15-6-6-6 6"];
245
+ };
246
+ readonly download: {
247
+ readonly name: "download";
248
+ readonly paths: readonly ["M12 15V3", "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", "m7 10 5 5 5-5"];
249
+ };
250
+ readonly external: {
251
+ readonly name: "external";
252
+ readonly paths: readonly ["M15 3h6v6", "M10 14 21 3", "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"];
253
+ };
254
+ readonly menu: {
255
+ readonly name: "menu";
256
+ readonly paths: readonly ["M4 5h16", "M4 12h16", "M4 19h16"];
257
+ };
258
+ readonly minus: {
259
+ readonly name: "minus";
260
+ readonly paths: readonly ["M5 12h14"];
261
+ };
262
+ readonly moon: {
263
+ readonly name: "moon";
264
+ readonly paths: readonly ["M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"];
265
+ };
266
+ readonly plus: {
267
+ readonly name: "plus";
268
+ readonly paths: readonly ["M5 12h14", "M12 5v14"];
269
+ };
270
+ readonly search: {
271
+ readonly name: "search";
272
+ readonly paths: readonly ["m21 21-4.34-4.34", "M3 11a8 8 0 1 0 16 0a8 8 0 1 0 -16 0"];
273
+ };
274
+ readonly sun: {
275
+ readonly name: "sun";
276
+ readonly paths: readonly ["M8 12a4 4 0 1 0 8 0a4 4 0 1 0 -8 0", "M12 2v2", "M12 20v2", "m4.93 4.93 1.41 1.41", "m17.66 17.66 1.41 1.41", "M2 12h2", "M20 12h2", "m6.34 17.66-1.41 1.41", "m19.07 4.93-1.41 1.41"];
277
+ };
278
+ readonly user: {
279
+ readonly name: "user";
280
+ readonly paths: readonly ["M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2", "M8 7a4 4 0 1 0 8 0a4 4 0 1 0 -8 0"];
281
+ };
974
282
  };
975
283
 
976
- export declare const GAME_UI_PREVIEW_MESSAGES: readonly GameUiHistoryEntry[];
284
+ export declare const GAME_UI_DEFAULT_STYLE: GameUiStyle;
285
+
286
+ /** Appearance and illumination are independent host choices, not component variants. */
287
+ export declare const GAME_UI_STYLES: readonly ["candy", "pastel", "mist", "grey", "outline", "ink"];
977
288
 
978
289
  export declare const GAME_UI_TARGETS: {
979
290
  readonly touchMinimumPx: 44;
@@ -991,13 +302,13 @@ export declare const GAME_UI_TARGETS: {
991
302
  /**
992
303
  * The semantic `--game-ui-*` custom properties a *complete* theme must
993
304
  * override for full fidelity — this is the same list the official
994
- * `[data-game-ui-theme='night']` block in theme.css satisfies, enforced by
305
+ * `[data-game-ui-theme='dark']` block in theme.css satisfies, enforced by
995
306
  * a guard test in src/tokens.test.ts. A downstream product building its own
996
307
  * full theme (e.g. `[data-game-ui-theme='abyss']`) can reuse this constant
997
308
  * to check its own CSS for the same completeness instead of eyeballing it —
998
309
  * see "自定义第三主题" in design-system-guide.md for a usage example.
999
310
  */
1000
- export declare const GAME_UI_THEME_CONTRACT: readonly ["--game-ui-bg", "--game-ui-surface", "--game-ui-surface-raised", "--game-ui-panel", "--game-ui-panel-strong", "--game-ui-panel-deep", "--game-ui-text", "--game-ui-text-muted", "--game-ui-accent", "--game-ui-accent-bright", "--game-ui-secondary", "--game-ui-success", "--game-ui-success-bright", "--game-ui-danger", "--game-ui-danger-bright", "--game-ui-warning", "--game-ui-focus-ring", "--game-ui-border-subtle", "--game-ui-border-strong", "--game-ui-disabled", "--game-ui-ink-deep", "--game-ui-border-ink", "--game-ui-wood", "--game-ui-ink-title", "--game-ui-ink-heading", "--game-ui-liquid-metal-face", "--game-ui-liquid-metal-ink"];
311
+ export declare const GAME_UI_THEME_CONTRACT: readonly ["--game-ui-bg", "--game-ui-surface", "--game-ui-surface-raised", "--game-ui-surface-sunken", "--game-ui-text", "--game-ui-text-muted", "--game-ui-accent", "--game-ui-accent-bright", "--game-ui-secondary", "--game-ui-success", "--game-ui-success-bright", "--game-ui-danger", "--game-ui-danger-bright", "--game-ui-warning", "--game-ui-focus-ring", "--game-ui-border-subtle", "--game-ui-border-strong", "--game-ui-disabled", "--game-ui-ink-deep", "--game-ui-border-ink", "--game-ui-wood", "--game-ui-ink-title", "--game-ui-ink-heading"];
1001
312
 
1002
313
  export declare const GAME_UI_TOKENS: {
1003
314
  readonly morphShape: "var(--game-ui-liquid-gooey-morph-shape)";
@@ -1083,12 +394,10 @@ export declare const GAME_UI_TOKENS: {
1083
394
  readonly dissolveStrength: "var(--game-ui-liquid-gooey-dissolve-strength)";
1084
395
  readonly dissolveSink: "var(--game-ui-liquid-gooey-dissolve-sink)";
1085
396
  readonly dissolveSeamBlur: "var(--game-ui-liquid-gooey-dissolve-seam-blur)";
1086
- readonly iconSm: "var(--game-ui-asset-icon-sm)";
1087
- readonly iconMd: "var(--game-ui-asset-icon-md)";
1088
- readonly iconLg: "var(--game-ui-asset-icon-lg)";
1089
- readonly iconXl: "var(--game-ui-asset-icon-xl)";
397
+ readonly iconSm: "var(--game-ui-icon-sm)";
398
+ readonly iconMd: "var(--game-ui-icon-md)";
399
+ readonly iconLg: "var(--game-ui-icon-lg)";
1090
400
  readonly buttonSkinMinWidth: "var(--game-ui-asset-button-min-width)";
1091
- readonly cardFanWidth: "var(--game-ui-asset-card-fan-width)";
1092
401
  readonly stageTileMinHeight: "var(--game-ui-stage-tile-min-height)";
1093
402
  readonly terrainSwatchSize: "var(--game-ui-terrain-swatch-size)";
1094
403
  readonly terrainToolHitSize: "var(--game-ui-terrain-tool-hit-size)";
@@ -1098,7 +407,7 @@ export declare const GAME_UI_TOKENS: {
1098
407
  readonly hud: "var(--game-ui-z-hud)";
1099
408
  readonly sidebar: "var(--game-ui-z-sidebar)";
1100
409
  readonly overlay: "var(--game-ui-z-overlay)";
1101
- readonly modal: "var(--game-ui-z-modal)";
410
+ readonly zModal: "var(--game-ui-z-modal)";
1102
411
  readonly toast: "var(--game-ui-z-toast)";
1103
412
  readonly fast: "var(--game-ui-motion-fast)";
1104
413
  readonly base: "var(--game-ui-motion-base)";
@@ -1106,9 +415,7 @@ export declare const GAME_UI_TOKENS: {
1106
415
  readonly easingPop: "var(--game-ui-ease-pop)";
1107
416
  readonly easingSoft: "var(--game-ui-ease-soft)";
1108
417
  readonly reducedMotion: "var(--game-ui-reduced-motion-policy)";
1109
- readonly button: "var(--game-ui-shadow-button)";
1110
- readonly panel: "var(--game-ui-shadow-panel)";
1111
- readonly inset: "var(--game-ui-shadow-inset)";
418
+ readonly shadowRaised: "var(--game-ui-shadow-raised)";
1112
419
  readonly stroke: "var(--game-ui-stroke)";
1113
420
  readonly scrollbarSize: "var(--game-ui-scrollbar-size)";
1114
421
  readonly scrollbarTrack: "var(--game-ui-scrollbar-track)";
@@ -1117,6 +424,8 @@ export declare const GAME_UI_TOKENS: {
1117
424
  readonly bead: "var(--game-ui-radius-bead)";
1118
425
  readonly control: "var(--game-ui-radius-control)";
1119
426
  readonly card: "var(--game-ui-radius-card)";
427
+ readonly radiusPanel: "var(--game-ui-radius-panel)";
428
+ readonly radiusModal: "var(--game-ui-radius-modal)";
1120
429
  readonly px2: "var(--game-ui-space-2)";
1121
430
  readonly px4: "var(--game-ui-space-4)";
1122
431
  readonly px6: "var(--game-ui-space-6)";
@@ -1152,7 +461,7 @@ export declare const GAME_UI_TOKENS: {
1152
461
  readonly playfieldScrim: "var(--game-ui-playfield-scrim)";
1153
462
  readonly surface: "var(--game-ui-surface)";
1154
463
  readonly surfaceRaised: "var(--game-ui-surface-raised)";
1155
- readonly panelStrong: "var(--game-ui-panel-strong)";
464
+ readonly surfaceSunken: "var(--game-ui-surface-sunken)";
1156
465
  readonly text: "var(--game-ui-text)";
1157
466
  readonly textMuted: "var(--game-ui-text-muted)";
1158
467
  readonly accent: "var(--game-ui-accent)";
@@ -1167,98 +476,6 @@ export declare const GAME_UI_TOKENS: {
1167
476
  readonly disabled: "var(--game-ui-disabled)";
1168
477
  };
1169
478
 
1170
- export declare function GameActionGrid({ actions, className, density, iconLabelMode, label, style, }: GameActionGridProps): ReactNode;
1171
-
1172
- export declare interface GameActionGridProps {
1173
- actions: readonly GameUiAction[];
1174
- className?: string;
1175
- density?: GameSurfaceDensity;
1176
- iconLabelMode?: GameActionIconLabelMode;
1177
- label: string;
1178
- style?: GameActionStyle;
1179
- }
1180
-
1181
- export declare type GameActionIconLabelMode = 'hidden' | 'caption';
1182
-
1183
- export declare type GameActionStyle = 'button' | 'icon';
1184
-
1185
- export declare interface GameAssetBadge {
1186
- label: string;
1187
- tone?: GameBadgeTone;
1188
- }
1189
-
1190
- export declare function GameAssetCard({ assetId, badges, cardLayout, className, description, disabled, facts, icon, onClick, onSelect, selected, source, sourceLabel, status, statusLabel, thumbnailAlt, thumbnailSrc, title, type, ...props }: GameAssetCardProps): ReactNode;
1191
-
1192
- export declare type GameAssetCardLayout = 'auto' | 'list' | 'rail';
1193
-
1194
- export declare interface GameAssetCardProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'onSelect'> {
1195
- assetId: string;
1196
- badges?: readonly GameAssetBadge[];
1197
- cardLayout?: Exclude<GameAssetCardLayout, 'auto'>;
1198
- description?: string;
1199
- facts?: readonly GameAssetFact[];
1200
- icon?: ClayIconName;
1201
- onSelect?: (assetId: string) => void;
1202
- selected?: boolean;
1203
- source: GameAssetSource;
1204
- sourceLabel?: string;
1205
- status?: GameAssetStatus;
1206
- statusLabel?: string;
1207
- thumbnailAlt?: string;
1208
- thumbnailSrc?: string;
1209
- title: string;
1210
- }
1211
-
1212
- export declare interface GameAssetFact {
1213
- id: string;
1214
- label: string;
1215
- value: string;
1216
- }
1217
-
1218
- export declare interface GameAssetGroup {
1219
- assets: readonly Omit<GameAssetCardProps, 'onSelect' | 'selected'>[];
1220
- id: string;
1221
- label: string;
1222
- source?: GameAssetSource;
1223
- }
1224
-
1225
- export declare function GameAssetIcon({ className, icon, label, size, style, useSourceAsset, }: GameAssetIconProps): ReactNode;
1226
-
1227
- export declare interface GameAssetIconProps {
1228
- className?: string;
1229
- icon: ClayIconName;
1230
- label?: string;
1231
- size?: 'sm' | 'md' | 'lg' | 'xl';
1232
- /**
1233
- * Visual family. 'game' (default) is the colorful sculpted clay object;
1234
- * 'line' is the flat white glyph alternate. Falls back automatically when an
1235
- * icon only ships one family.
1236
- */
1237
- style?: ClayIconStyle;
1238
- useSourceAsset?: boolean;
1239
- }
1240
-
1241
- export declare function GameAssetLibrary({ cardLayout, className, density, emptyAction, emptyDescription, emptyTitle, groups, label, onSelectAsset, selectedAssetId, subtitle, title, }: GameAssetLibraryProps): ReactNode;
1242
-
1243
- export declare interface GameAssetLibraryProps {
1244
- cardLayout?: GameAssetCardLayout;
1245
- className?: string;
1246
- density?: GameSurfaceDensity;
1247
- emptyAction?: ReactNode;
1248
- emptyDescription?: string;
1249
- emptyTitle?: string;
1250
- groups: readonly GameAssetGroup[];
1251
- label: string;
1252
- onSelectAsset?: (assetId: string) => void;
1253
- selectedAssetId?: string;
1254
- subtitle?: string;
1255
- title: string;
1256
- }
1257
-
1258
- export declare type GameAssetSource = 'starter' | 'generated' | 'imported';
1259
-
1260
- export declare type GameAssetStatus = 'ready' | 'generating' | 'missing' | 'placed' | 'selected' | 'error';
1261
-
1262
479
  export declare function GameAvatar({ className, name, size, src, status, surface, }: GameAvatarProps): ReactNode;
1263
480
 
1264
481
  export declare interface GameAvatarProps {
@@ -1284,122 +501,17 @@ export declare interface GameBadgeProps {
1284
501
 
1285
502
  export declare type GameBadgeTone = 'neutral' | 'success' | 'warning' | 'danger' | 'ai';
1286
503
 
1287
- export declare function GameBeforeAfterToggle({ activeView, after, before, className, label, onViewChange, variant, 'data-testid': testId, }: GameBeforeAfterToggleProps): ReactNode;
1288
-
1289
- export declare interface GameBeforeAfterToggleProps {
1290
- activeView: GameBeforeAfterView;
1291
- after: GameConstructionPreviewPane;
1292
- before: GameConstructionPreviewPane;
1293
- className?: string | undefined;
1294
- label: string;
1295
- onViewChange?: ((view: GameBeforeAfterView) => void) | undefined;
1296
- variant?: GameConstructionVariant | undefined;
1297
- 'data-testid'?: string | undefined;
1298
- }
1299
-
1300
- export declare type GameBeforeAfterView = 'before' | 'after';
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;
504
+ export declare const GameButton: ForwardRefExoticComponent<GameButtonProps & RefAttributes<ActionElement>>;
1383
505
 
1384
- export declare interface GameButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
506
+ export declare type GameButtonProps = ActionProps & {
1385
507
  children: ReactNode;
1386
- /** Fill the available row, including the liquid silhouette and hit target. */
1387
508
  fullWidth?: boolean;
1388
- /** Named liquid material. Only used with surface="liquid"; omitted keeps the current look. */
1389
- liquidFinish?: LiquidFinish;
509
+ hue?: GameUiHue;
1390
510
  sound?: GameInteractionSoundOptions | false;
1391
- /** Disable the scale-on-press feedback where the motion would distract. */
1392
511
  static?: boolean;
1393
- /**
1394
- * Draw the button on a liquid body. The button itself is unchanged — same
1395
- * element, same classes, same hit target; a silhouette behind it does the
1396
- * deforming, so text stays crisp and the tap target never shrinks.
1397
- */
1398
- surface?: GameButtonSurface;
1399
512
  variant?: GameButtonVariant;
1400
- }
1401
-
1402
- export declare type GameButtonSurface = 'flat' | 'liquid' | 'plaque';
513
+ size?: 'md' | 'sm';
514
+ };
1403
515
 
1404
516
  export declare type GameButtonVariant = 'primary' | 'secondary' | 'ghost' | 'danger' | 'success';
1405
517
 
@@ -1407,7 +519,7 @@ export declare type GameButtonVariant = 'primary' | 'secondary' | 'ghost' | 'dan
1407
519
  * Compact product notice (wallet pitch, soft warnings, onboarding hints).
1408
520
  * Token-driven; products may still override cinema theme in host CSS.
1409
521
  */
1410
- export declare function GameCallout({ heading, children, tone, className, ...props }: GameCalloutProps): ReactNode;
522
+ export declare function GameCallout({ heading, children, tone, className, style, ...props }: GameCalloutProps): ReactNode;
1411
523
 
1412
524
  export declare interface GameCalloutProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
1413
525
  /** Visible heading (not HTML title attribute). */
@@ -1418,21 +530,6 @@ export declare interface GameCalloutProps extends Omit<HTMLAttributes<HTMLDivEle
1418
530
 
1419
531
  export declare type GameCalloutTone = 'neutral' | 'info' | 'warning' | 'success' | 'danger';
1420
532
 
1421
- export declare function GameCardFan({ cards, className, label }: GameCardFanProps): ReactNode;
1422
-
1423
- export declare interface GameCardFanCard {
1424
- id: string;
1425
- icon?: ClayIconName;
1426
- kicker: string;
1427
- title: string;
1428
- }
1429
-
1430
- export declare interface GameCardFanProps {
1431
- cards: readonly GameCardFanCard[];
1432
- className?: string;
1433
- label: string;
1434
- }
1435
-
1436
533
  export declare type GameCardOrientationStatus = 'unavailable' | 'off' | 'requesting' | 'enabled' | 'denied';
1437
534
 
1438
535
  /** Normalized card tilt; zero is level, -1 and 1 are the bounded extremes. */
@@ -1441,11 +538,12 @@ export declare interface GameCardTilt {
1441
538
  readonly y: number;
1442
539
  }
1443
540
 
1444
- export declare function GameCheckbox({ className, label, ...props }: GameCheckboxProps): ReactNode;
541
+ export declare function GameCheckbox({ className, label, hue, ...props }: GameCheckboxProps): ReactNode;
1445
542
 
1446
543
  export declare interface GameCheckboxProps extends Pick<InputHTMLAttributes<HTMLInputElement>, 'checked' | 'defaultChecked' | 'disabled' | 'name' | 'onChange' | 'required' | 'value'> {
1447
544
  label: string;
1448
545
  className?: string;
546
+ hue?: GameUiHue;
1449
547
  }
1450
548
 
1451
549
  export declare function GameCollapsiblePanel({ actions, children, className, defaultOpen, labels, onOpenChange, open, title, tone, ...props }: GameCollapsiblePanelProps): ReactNode;
@@ -1496,228 +594,43 @@ export declare interface GameCollectibleCardProps {
1496
594
  /** A row of pips under the caption, such as progress toward the next rarity. */
1497
595
  readonly pips?: {
1498
596
  readonly filled: number;
1499
- readonly total: number;
1500
- };
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;
597
+ readonly total: number;
598
+ };
599
+ /** A sticker on the corner, such as "NEW!". */
600
+ readonly sticker?: string;
601
+ /** The back of the card; the kit draws a plain emblem when omitted. */
602
+ readonly back?: ReactNode;
603
+ /** The full accessible name, including what a tap does. */
604
+ readonly label: string;
605
+ /** Controlled: whether the back is showing. */
606
+ readonly faceDown?: boolean;
607
+ /** Uncontrolled start. */
608
+ readonly defaultFaceDown?: boolean;
609
+ readonly onFlip?: (faceDown: boolean) => void;
610
+ /** A soft light turns behind the card: the moment the rarest card is revealed. */
611
+ readonly spotlight?: boolean;
612
+ /** Play a synthesized flip sound; browsers allow it only after the page has been tapped. */
613
+ readonly sound?: boolean;
614
+ /** Optional normalized tilt from one explicitly enabled sensor owner. A
615
+ * pointer on this card takes precedence; reduced motion always wins. */
616
+ readonly tilt?: GameCardTilt | null;
617
+ readonly className?: string;
1696
618
  }
1697
619
 
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;
620
+ /**
621
+ * How rare the card is, which is how it is framed: `common` a plain silver
622
+ * frame, `rare` a violet frame with a gem set in the top, `legendary` a gold
623
+ * frame with a crown, a foil that shifts as the card tilts and a soft light
624
+ * behind it. The product decides what earns each; the kit only draws them.
625
+ */
626
+ export declare type GameCollectibleCardRarity = 'common' | 'rare' | 'legendary';
1701
627
 
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
- }
628
+ /** A card not collected yet: its place in the set, and what unlocks it. Not interactive. */
629
+ export declare function GameCollectibleCardSlot({ label, className, }: {
630
+ /** What unlocks it, shown on the slot and read as its name. */
631
+ readonly label: string;
632
+ readonly className?: string;
633
+ }): ReactNode;
1721
634
 
1722
635
  export declare function GameDialog({ children, className, title }: GameDialogProps): ReactNode;
1723
636
 
@@ -1730,8 +643,8 @@ export declare interface GameDialogProps {
1730
643
  export declare function GameEmptyState({ action, className, description, icon, title, }: GameEmptyStateProps): ReactNode;
1731
644
 
1732
645
  export declare interface GameEmptyStateProps {
1733
- /** Optional clay icon shown above the title. */
1734
- icon?: ClayIconName;
646
+ /** Optional flat icon shown above the title. */
647
+ icon?: GameIconName;
1735
648
  title: string;
1736
649
  description?: string;
1737
650
  /** Optional call-to-action node (e.g. a GameButton). */
@@ -1740,7 +653,7 @@ export declare interface GameEmptyStateProps {
1740
653
  }
1741
654
 
1742
655
  export declare interface GameFactItem {
1743
- icon?: ClayIconName;
656
+ icon?: GameIconName;
1744
657
  id: string;
1745
658
  label: string;
1746
659
  meta?: string;
@@ -1793,8 +706,6 @@ export declare interface GameHistoryPanelProps {
1793
706
  label: string;
1794
707
  }
1795
708
 
1796
- export declare function GameHud({ actions, className, items, label }: GameHudProps): ReactNode;
1797
-
1798
709
  export declare function GameHudActions({ children, className, label, ...props }: GameHudActionsProps): ReactNode;
1799
710
 
1800
711
  export declare interface GameHudActionsProps extends Omit<HTMLAttributes<HTMLElement>, 'children'> {
@@ -1803,39 +714,42 @@ export declare interface GameHudActionsProps extends Omit<HTMLAttributes<HTMLEle
1803
714
  label: string;
1804
715
  }
1805
716
 
1806
- export declare interface GameHudItem {
1807
- icon?: ClayIconName;
1808
- id: string;
1809
- label: string;
1810
- meta?: string;
1811
- value: string;
1812
- }
717
+ export declare function GameIcon({ icon, size, label, className, ...props }: GameIconProps): JSX.Element;
1813
718
 
1814
- export declare interface GameHudProps {
1815
- actions?: ReactNode;
1816
- className?: string;
1817
- items: readonly GameHudItem[];
719
+ export declare const GameIconButton: ForwardRefExoticComponent<GameIconButtonProps & RefAttributes<ActionElement>>;
720
+
721
+ export declare type GameIconButtonProps = ActionProps & {
722
+ children: ReactNode;
1818
723
  label: string;
724
+ hue?: GameUiHue;
725
+ size?: 'md' | 'sm';
726
+ };
727
+
728
+ /** Immutable path geometry on the brand's 24 × 24 grid. No URLs or scripts. */
729
+ export declare interface GameIconData {
730
+ readonly name: string;
731
+ readonly paths: readonly string[];
1819
732
  }
1820
733
 
1821
- export declare function GameIconButton({ children, className, label, surface, liquidFinish, type, ...props }: GameIconButtonProps): ReactNode;
734
+ export declare type GameIconName = keyof typeof GAME_ICONS;
1822
735
 
1823
- export declare interface GameIconButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
1824
- children: ReactNode;
1825
- label: string;
1826
- surface?: GameButtonSurface;
1827
- liquidFinish?: LiquidFinish;
736
+ export declare interface GameIconProps extends Omit<SVGProps<SVGSVGElement>, 'children' | 'width' | 'height' | 'aria-label' | 'role'> {
737
+ icon: GameIconName | GameIconData;
738
+ size?: 'sm' | 'md' | 'lg';
739
+ /** A meaningful image needs a label; decorative icons remain hidden from AT. */
740
+ label?: string;
1828
741
  }
1829
742
 
1830
743
  export declare const GameInput: ForwardRefExoticComponent<GameInputProps & RefAttributes<HTMLInputElement>>;
1831
744
 
1832
745
  /**
1833
- * Clay form primitives. These are intentionally thin wrappers over the native
746
+ * Flat form primitives. These are intentionally thin wrappers over the native
1834
747
  * <input>/<textarea>/checkbox so they stay fully accessible and uncontrolled-
1835
- * or controlled-friendly; the clay look lives entirely in CSS. Text fields use
748
+ * or controlled-friendly; the flat look lives entirely in CSS. Text fields use
1836
749
  * forwardRef so hosts can focus them (e.g. refocus a chat composer after send).
1837
750
  */
1838
751
  export declare interface GameInputProps extends InputHTMLAttributes<HTMLInputElement> {
752
+ hue?: GameUiHue;
1839
753
  /** Paints the field in the danger tone for invalid values. */
1840
754
  invalid?: boolean;
1841
755
  }
@@ -1850,17 +764,17 @@ export declare interface GameInteractionAudioContext {
1850
764
  suspend?: () => Promise<void>;
1851
765
  }
1852
766
 
1853
- export declare interface GameInteractionAudioParam {
767
+ declare interface GameInteractionAudioParam {
1854
768
  exponentialRampToValueAtTime(value: number, endTime: number): void;
1855
769
  setValueAtTime(value: number, startTime: number): void;
1856
770
  }
1857
771
 
1858
- export declare interface GameInteractionGainNode {
772
+ declare interface GameInteractionGainNode {
1859
773
  connect(destination: unknown): void;
1860
774
  gain: GameInteractionAudioParam;
1861
775
  }
1862
776
 
1863
- export declare interface GameInteractionOscillatorNode {
777
+ declare interface GameInteractionOscillatorNode {
1864
778
  connect(destination: GameInteractionGainNode): void;
1865
779
  frequency: GameInteractionAudioParam;
1866
780
  start(when?: number): void;
@@ -1895,7 +809,7 @@ export declare interface GameLanguageMenuProps {
1895
809
  }
1896
810
 
1897
811
  /** A quiet list surface, with sibling controls rather than buttons inside a button. */
1898
- export declare function GameListRow({ title, description, thumbnail, current, selected, disabled, onSelect, selectLabel, actions, className, ...props }: GameListRowProps): ReactNode;
812
+ export declare function GameListRow({ title, description, thumbnail, current, selected, disabled, onSelect, selectLabel, actions, className, hue, ...props }: GameListRowProps): ReactNode;
1899
813
 
1900
814
  export declare interface GameListRowProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title' | 'onSelect' | 'children'> {
1901
815
  title: string;
@@ -1908,6 +822,7 @@ export declare interface GameListRowProps extends Omit<HTMLAttributes<HTMLDivEle
1908
822
  /** Optional name for the row's selection control, independent of its actions. */
1909
823
  selectLabel?: string;
1910
824
  actions?: ReactNode;
825
+ hue?: GameUiHue;
1911
826
  }
1912
827
 
1913
828
  export declare function GameLoadingState({ label, tone }: GameLoadingStateProps): ReactNode;
@@ -1917,6 +832,21 @@ export declare interface GameLoadingStateProps {
1917
832
  tone?: 'loading' | 'error';
1918
833
  }
1919
834
 
835
+ export declare type GameMaterialLayout = 'desktop' | 'dense' | 'mobile' | 'small-mobile';
836
+
837
+ export declare type GameMaterialPattern = 'solid' | 'speckled' | 'hatched' | 'grid';
838
+
839
+ export declare interface GameMaterialSwatch {
840
+ color: string;
841
+ compactLabel?: string;
842
+ disabled?: boolean;
843
+ id: string;
844
+ label: string;
845
+ meta?: string;
846
+ pattern?: GameMaterialPattern;
847
+ secondaryColor?: string;
848
+ }
849
+
1920
850
  export declare function GameMaterialSwatches({ activeMaterialId, className, disabled, label, materials, onMaterialChange, variant, 'data-testid': testId, }: GameMaterialSwatchesProps): ReactNode;
1921
851
 
1922
852
  export declare interface GameMaterialSwatchesProps {
@@ -1924,9 +854,9 @@ export declare interface GameMaterialSwatchesProps {
1924
854
  className?: string;
1925
855
  disabled?: boolean;
1926
856
  label: string;
1927
- materials: readonly GameTerrainMaterialSwatch[];
857
+ materials: readonly GameMaterialSwatch[];
1928
858
  onMaterialChange?: ((materialId: string) => void) | undefined;
1929
- variant?: GameTerrainBuildVariant;
859
+ variant?: GameMaterialLayout;
1930
860
  'data-testid'?: string | undefined;
1931
861
  }
1932
862
 
@@ -1958,7 +888,7 @@ export declare interface GameModalProps {
1958
888
  export declare interface GameMovementAction {
1959
889
  direction: GameMovementDirection;
1960
890
  disabled?: boolean;
1961
- icon?: ClayIconName;
891
+ icon?: GameIconName;
1962
892
  label: string;
1963
893
  shortcut?: string;
1964
894
  symbol?: string;
@@ -1979,23 +909,6 @@ export declare interface GameMovementPadProps {
1979
909
  onMove?: (direction: GameMovementDirection) => void;
1980
910
  }
1981
911
 
1982
- export declare const GameObjectToolbar: typeof GamePlacementToolbar;
1983
-
1984
- export declare type GameObjectToolbarProps = GamePlacementToolbarProps;
1985
-
1986
- export declare function GameOrientationGate({ body, cta, badgeLabel, manualHint, preview, title, }: GameOrientationGateProps): ReactNode;
1987
-
1988
- export declare interface GameOrientationGateProps {
1989
- body: string;
1990
- cta: string;
1991
- /** Warning badge text. Defaults to "Landscape only". */
1992
- badgeLabel?: string;
1993
- /** Hint shown when the browser blocks the automatic landscape lock. */
1994
- manualHint?: string;
1995
- preview?: boolean;
1996
- title: string;
1997
- }
1998
-
1999
912
  /** Numeric entry only. Sending, expiry, validation and retries belong to the host. */
2000
913
  export declare function GameOtpInput({ length, value, onChange, onComplete, invalid, disabled, readOnly, getSlotLabel, getSlotDescription, className, 'aria-describedby': describedBy, ...props }: GameOtpInputProps): ReactNode;
2001
914
 
@@ -2023,42 +936,14 @@ export declare interface GamePanelProps extends HTMLAttributes<HTMLElement> {
2023
936
  tone?: 'default' | 'strong';
2024
937
  }
2025
938
 
2026
- export declare function GamePlacementToolbar({ actions, capacityLabel, className, density, maxObjects, objectActions, placedObjects, selectedLabel, selectedTitle, statusLabel, statusTone, statusValue, title, }: GamePlacementToolbarProps): ReactNode;
2027
-
2028
- export declare interface GamePlacementToolbarProps {
2029
- actions?: readonly GameUiAction[];
2030
- capacityLabel?: string;
2031
- className?: string;
2032
- density?: GameSurfaceDensity;
2033
- maxObjects?: number;
2034
- objectActions?: readonly GameUiAction[];
2035
- placedObjects?: number;
2036
- selectedLabel?: string;
2037
- selectedTitle?: string;
2038
- statusLabel?: string;
2039
- statusTone?: GameBadgeTone;
2040
- statusValue?: string;
2041
- title: string;
2042
- }
2043
-
2044
- export declare function GameProgress({ className, label, max, showValue, tone, value, valueLabel, surface, liquidFinish, }: GameProgressProps): ReactNode;
939
+ /** Native progress semantics; only a finite, unfiltered tide meniscus moves. */
940
+ export declare function GameProgress({ value, max, label, showValue, valueLabel, className, }: GameProgressProps): ReactNode;
2045
941
 
2046
942
  export declare interface GameProgressProps {
2047
- /** Defaults to the existing liquid leading edge. Flat adds no SVG filter. */
2048
- surface?: Exclude<GameButtonSurface, 'plaque'>;
2049
- liquidFinish?: LiquidFinish;
2050
- /** Current value, between 0 and `max`. */
2051
943
  value: number;
2052
944
  max?: number;
2053
- /** Accessible label for the progress bar. */
2054
945
  label: string;
2055
- tone?: 'accent' | 'success' | 'danger' | 'warning';
2056
- /** Show the rounded percentage next to the bar. */
2057
946
  showValue?: boolean;
2058
- /**
2059
- * Text shown next to the bar in place of the percentage, for progress that
2060
- * is more meaningful as a count than a ratio (e.g. "3 / 21").
2061
- */
2062
947
  valueLabel?: string;
2063
948
  className?: string;
2064
949
  }
@@ -2084,64 +969,32 @@ export declare interface GameRadialMenuProps {
2084
969
  onSelect?: (id: string) => void;
2085
970
  }
2086
971
 
2087
- export declare interface GameRobotCrewMember {
2088
- icon?: ClayIconName | undefined;
2089
- id: string;
2090
- name: string;
2091
- role: string;
2092
- status: GameRobotCrewMemberStatus;
2093
- task?: string | undefined;
2094
- }
2095
-
2096
- export declare type GameRobotCrewMemberStatus = 'idle' | 'queued' | 'working' | 'blocked' | 'done';
2097
-
2098
- export declare function GameRobotCrewStatus({ className, crew, emptyDescription, emptyTitle, label, title, variant, 'data-testid': testId, }: GameRobotCrewStatusProps): ReactNode;
2099
-
2100
- export declare interface GameRobotCrewStatusProps {
2101
- className?: string | undefined;
2102
- crew: readonly GameRobotCrewMember[];
2103
- emptyDescription?: string | undefined;
2104
- emptyTitle?: string | undefined;
2105
- label: string;
2106
- title?: string | undefined;
2107
- variant?: GameConstructionVariant | undefined;
2108
- 'data-testid'?: string | undefined;
2109
- }
2110
-
2111
- export declare const GameSceneHudLayout: typeof GameShell;
2112
-
2113
- export declare type GameSceneHudLayoutProps = GameShellProps;
2114
-
2115
- export declare function GameSegmentedControl({ activeId, label, onSelect, options, surface, liquidFinish, disabled, }: GameSegmentedControlProps): ReactNode;
972
+ /** Selection belongs to the host. Each segment reserves the same checkmark
973
+ * cell, so changing selection does not resize the row or its native targets. */
974
+ export declare function GameSegmentedControl({ activeId, label, onSelect, options, disabled, hue, }: GameSegmentedControlProps): ReactNode;
2116
975
 
2117
976
  export declare interface GameSegmentedControlProps {
2118
977
  activeId: string;
2119
978
  label: string;
2120
979
  onSelect?: (id: string) => void;
2121
980
  options: readonly GameSegmentedOption[];
2122
- /** Existing default is liquid. Flat provides a quiet, filter-free option. */
2123
- surface?: Exclude<GameButtonSurface, 'plaque'>;
2124
- liquidFinish?: LiquidFinish;
2125
981
  disabled?: boolean;
982
+ hue?: GameUiHue;
2126
983
  }
2127
984
 
2128
985
  declare interface GameSegmentedOption {
2129
986
  id: string;
2130
987
  label: string;
988
+ hue?: GameUiHue;
2131
989
  }
2132
990
 
2133
- /**
2134
- * Native select, not a custom listbox state machine. Options/optgroups, form
2135
- * submission, reset, keyboard and the mobile picker remain browser-owned.
2136
- * Liquid paints only the closed single-select field. Disabled/multiple/list
2137
- * modes use the ordinary surface; we do not pretend to animate an OS popup.
2138
- */
991
+ /** Native options, form reset, focus, mobile popup and multiple-selection stay
992
+ * browser-owned. A field changes only its flat edge/fill, never its geometry. */
2139
993
  export declare const GameSelect: ForwardRefExoticComponent<GameSelectProps & RefAttributes<HTMLSelectElement>>;
2140
994
 
2141
995
  export declare interface GameSelectProps extends SelectHTMLAttributes<HTMLSelectElement> {
2142
996
  invalid?: boolean;
2143
- surface?: Exclude<GameButtonSurface, 'plaque'>;
2144
- liquidFinish?: LiquidFinish;
997
+ hue?: GameUiHue;
2145
998
  }
2146
999
 
2147
1000
  export declare function GameShell({ assetLibrary, bottomBar, children, className, density, hud, layout, movementPad, overlay, sidePanel, title, }: GameShellProps): ReactNode;
@@ -2226,7 +1079,7 @@ export declare function GameStageTile({ badge, className, icon, kicker, selected
2226
1079
 
2227
1080
  export declare interface GameStageTileProps extends ButtonHTMLAttributes<HTMLButtonElement> {
2228
1081
  badge?: string;
2229
- icon?: ClayIconName;
1082
+ icon?: GameIconName;
2230
1083
  kicker: string;
2231
1084
  selected?: boolean;
2232
1085
  summary: string;
@@ -2234,10 +1087,6 @@ export declare interface GameStageTileProps extends ButtonHTMLAttributes<HTMLBut
2234
1087
  tone?: 'daily' | 'portal' | 'host' | 'danger';
2235
1088
  }
2236
1089
 
2237
- export declare const GameStatList: typeof GameFactList;
2238
-
2239
- export declare type GameStatListProps = GameFactListProps;
2240
-
2241
1090
  export declare type GameSurfaceDensity = 'comfortable' | 'dense';
2242
1091
 
2243
1092
  export declare type GameSurfaceLayout = 'auto' | 'desktop' | 'mobile';
@@ -2247,11 +1096,13 @@ export declare interface GameTabItem {
2247
1096
  label: string;
2248
1097
  /** id of the tabpanel this tab controls; wires aria-controls when set. */
2249
1098
  panelId?: string;
1099
+ hue?: GameUiHue;
2250
1100
  }
2251
1101
 
2252
- export declare function GameTabs({ activeId, id, onSelect, tabs, orientation, 'aria-label': label, 'aria-labelledby': labelledBy, }: GameTabsProps): ReactNode;
1102
+ export declare function GameTabs({ activeId, id, onSelect, tabs, hue, orientation, 'aria-label': label, 'aria-labelledby': labelledBy, }: GameTabsProps): ReactNode;
2253
1103
 
2254
1104
  export declare interface GameTabsProps {
1105
+ hue?: GameUiHue;
2255
1106
  orientation?: 'horizontal' | 'vertical';
2256
1107
  'aria-label'?: string;
2257
1108
  'aria-labelledby'?: string;
@@ -2267,129 +1118,10 @@ export declare interface GameTabsProps {
2267
1118
  tabs: readonly GameTabItem[];
2268
1119
  }
2269
1120
 
2270
- export declare type GameTerrainBuildModeId = 'terrain' | 'build' | 'place' | 'inspect';
2271
-
2272
- export declare interface GameTerrainBuildModeOption {
2273
- /** Accessible label override when compact labels are used visually. */
2274
- ariaLabel?: string;
2275
- compactLabel?: string;
2276
- disabled?: boolean;
2277
- icon?: ClayIconName;
2278
- id: GameTerrainBuildModeId | string;
2279
- label: string;
2280
- meta?: string;
2281
- }
2282
-
2283
- export declare function GameTerrainBuildToolbox({ className, drawerOpen, drawerTitle, label, onDrawerOpenChange, title, variant, 'data-testid': testId, ...bodyProps }: GameTerrainBuildToolboxProps): ReactNode;
2284
-
2285
- export declare interface GameTerrainBuildToolboxProps {
2286
- activeBuildCategoryId?: string | undefined;
2287
- activeMaterialId?: string | undefined;
2288
- activeModeId: string;
2289
- activeToolId: string;
2290
- brush: GameBrushControlState;
2291
- buildCategories?: readonly GameBuildCategory[] | undefined;
2292
- className?: string;
2293
- density?: GameSurfaceDensity;
2294
- disabled?: boolean;
2295
- drawerOpen?: boolean;
2296
- drawerTitle?: string;
2297
- label: string;
2298
- materials?: readonly GameTerrainMaterialSwatch[] | undefined;
2299
- modes: readonly GameTerrainBuildModeOption[];
2300
- onBrushRadiusChange?: ((radius: number) => void) | undefined;
2301
- onBrushStrengthChange?: ((strength: number) => void) | undefined;
2302
- onBuildCategoryChange?: ((categoryId: string) => void) | undefined;
2303
- onDrawerOpenChange?: ((open: boolean) => void) | undefined;
2304
- onMaterialChange?: ((materialId: string) => void) | undefined;
2305
- onModeChange?: ((modeId: string) => void) | undefined;
2306
- onRedo?: (() => void) | undefined;
2307
- onSelectBuildItem?: ((itemId: string, categoryId: string) => void) | undefined;
2308
- onToolChange?: ((toolId: string) => void) | undefined;
2309
- onUndo?: (() => void) | undefined;
2310
- selectedBuildItemId?: string | undefined;
2311
- status?: GameTerrainStatusState | undefined;
2312
- title: string;
2313
- toolCompactLabelMode?: GameTerrainToolCompactLabelMode;
2314
- tools: readonly GameTerrainToolOption[];
2315
- undoRedo?: GameUndoRedoState | undefined;
2316
- variant?: GameTerrainBuildVariant;
2317
- 'data-testid'?: string | undefined;
2318
- }
2319
-
2320
- export declare type GameTerrainBuildVariant = 'desktop' | 'dense' | 'mobile' | 'small-mobile';
2321
-
2322
- export declare type GameTerrainMaterialPattern = 'solid' | 'speckled' | 'hatched' | 'grid';
2323
-
2324
- export declare interface GameTerrainMaterialSwatch {
2325
- color: string;
2326
- compactLabel?: string;
2327
- disabled?: boolean;
2328
- id: string;
2329
- label: string;
2330
- meta?: string;
2331
- pattern?: GameTerrainMaterialPattern;
2332
- secondaryColor?: string;
2333
- }
2334
-
2335
- export declare function GameTerrainModeControl({ activeModeId, className, disabled, label, modes, onModeChange, variant, 'data-testid': testId, }: GameTerrainModeControlProps): ReactNode;
2336
-
2337
- export declare interface GameTerrainModeControlProps {
2338
- activeModeId: string;
2339
- className?: string;
2340
- disabled?: boolean;
2341
- label: string;
2342
- modes: readonly GameTerrainBuildModeOption[];
2343
- onModeChange?: ((modeId: string) => void) | undefined;
2344
- variant?: GameTerrainBuildVariant;
2345
- 'data-testid'?: string | undefined;
2346
- }
2347
-
2348
- export declare interface GameTerrainStatusState {
2349
- description?: string;
2350
- label: string;
2351
- progressLabel?: string;
2352
- progressMax?: number;
2353
- progressValue?: number;
2354
- tone?: GameTerrainStatusTone;
2355
- }
2356
-
2357
- export declare type GameTerrainStatusTone = Extract<GameBadgeTone, 'neutral' | 'success' | 'warning' | 'danger' | 'ai'>;
2358
-
2359
- export declare type GameTerrainToolCompactLabelMode = 'auto' | GameActionIconLabelMode;
2360
-
2361
- export declare type GameTerrainToolId = 'raise' | 'lower' | 'flatten' | 'smooth' | 'paint';
2362
-
2363
- export declare interface GameTerrainToolOption {
2364
- /** Accessible label override when icon/caption controls use short copy. */
2365
- ariaLabel?: string;
2366
- compactLabel?: string;
2367
- disabled?: boolean;
2368
- icon?: ClayIconName;
2369
- id: GameTerrainToolId | string;
2370
- label: string;
2371
- meta?: string;
2372
- shortcut?: string;
2373
- }
2374
-
2375
- export declare function GameTerrainToolStrip({ activeToolId, className, compactLabelMode, density, disabled, label, onToolChange, tools, variant, 'data-testid': testId, }: GameTerrainToolStripProps): ReactNode;
2376
-
2377
- export declare interface GameTerrainToolStripProps {
2378
- activeToolId: string;
2379
- className?: string;
2380
- compactLabelMode?: GameTerrainToolCompactLabelMode;
2381
- density?: GameSurfaceDensity;
2382
- disabled?: boolean;
2383
- label: string;
2384
- onToolChange?: ((toolId: string) => void) | undefined;
2385
- tools: readonly GameTerrainToolOption[];
2386
- variant?: GameTerrainBuildVariant;
2387
- 'data-testid'?: string | undefined;
2388
- }
2389
-
2390
1121
  export declare const GameTextArea: ForwardRefExoticComponent<GameTextAreaProps & RefAttributes<HTMLTextAreaElement>>;
2391
1122
 
2392
1123
  export declare interface GameTextAreaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
1124
+ hue?: GameUiHue;
2393
1125
  invalid?: boolean;
2394
1126
  }
2395
1127
 
@@ -2400,13 +1132,12 @@ export declare interface GameToastProps {
2400
1132
  tone?: 'info' | 'success' | 'danger';
2401
1133
  }
2402
1134
 
2403
- export declare function GameToggle({ checked, disabled, label, onClick, surface, liquidFinish, }: GameToggleProps): ReactNode;
1135
+ export declare function GameToggle({ checked, disabled, label, onClick, hue }: GameToggleProps): ReactNode;
2404
1136
 
2405
1137
  export declare interface GameToggleProps extends Pick<ButtonHTMLAttributes<HTMLButtonElement>, 'disabled' | 'onClick'> {
2406
1138
  checked: boolean;
2407
1139
  label: string;
2408
- surface?: Exclude<GameButtonSurface, 'plaque'>;
2409
- liquidFinish?: LiquidFinish;
1140
+ hue?: GameUiHue;
2410
1141
  }
2411
1142
 
2412
1143
  export declare function GameTooltip({ children, label }: GameTooltipProps): ReactNode;
@@ -2417,23 +1148,6 @@ export declare interface GameTooltipProps {
2417
1148
  label: string;
2418
1149
  }
2419
1150
 
2420
- export declare interface GameUiAction {
2421
- /** Accessible label override when the visible label is intentionally compact. */
2422
- ariaLabel?: string;
2423
- badge?: string;
2424
- /** Short visual caption for dense/icon tool strips. Falls back to `label`. */
2425
- compactLabel?: string;
2426
- disabled?: boolean;
2427
- icon?: ClayIconName;
2428
- id: string;
2429
- label: string;
2430
- meta?: string;
2431
- onAction?: (id: string) => void;
2432
- selected?: boolean;
2433
- shortcut?: string;
2434
- tone?: GameButtonVariant;
2435
- }
2436
-
2437
1151
  export declare interface GameUiHistoryEntry {
2438
1152
  id: string;
2439
1153
  kind: GameUiHistoryKind;
@@ -2444,117 +1158,26 @@ export declare interface GameUiHistoryEntry {
2444
1158
 
2445
1159
  export declare type GameUiHistoryKind = 'human' | 'mystery' | 'system';
2446
1160
 
2447
- export declare function GameUiPreview({ title, body }: GameUiPreviewProps): ReactNode;
1161
+ /** Palette meaning, independent of the host's visual style and light/dark mode. */
1162
+ export declare type GameUiHue = 'coral' | 'sun' | 'leaf' | 'sky' | 'grape' | 'pink';
2448
1163
 
2449
- export declare interface GameUiPreviewProps {
2450
- title?: string;
2451
- body?: string;
2452
- }
1164
+ export declare type GameUiStyle = (typeof GAME_UI_STYLES)[number];
2453
1165
 
2454
- export declare function GameUndoRedoActions({ canRedo, canUndo, className, disabled, label, onRedo, onUndo, redoLabel, undoLabel, variant, 'data-testid': testId, }: GameUndoRedoActionsProps): ReactNode;
1166
+ export declare type GameUiTheme = 'light' | 'dark';
2455
1167
 
2456
- export declare interface GameUndoRedoActionsProps extends GameUndoRedoState {
2457
- className?: string;
1168
+ declare type LinkAction = Omit<LinkAttributes, 'ref'> & {
2458
1169
  disabled?: boolean;
2459
- label: string;
2460
- onRedo?: (() => void) | undefined;
2461
- onUndo?: (() => void) | undefined;
2462
- variant?: GameTerrainBuildVariant;
2463
- 'data-testid'?: string | undefined;
2464
- }
2465
-
2466
- export declare interface GameUndoRedoState {
2467
- canRedo?: boolean | undefined;
2468
- canUndo?: boolean | undefined;
2469
- redoLabel?: string | undefined;
2470
- undoLabel?: string | undefined;
2471
- }
2472
-
2473
- export declare function GameWindowPanel({ allowMaximize, allowMinimize, children, className, defaultState, footer, icon, labels, onClose, onStateChange, state, title, ...props }: GameWindowPanelProps): ReactNode;
2474
-
2475
- export declare interface GameWindowPanelLabels {
2476
- close: string;
2477
- maximize: string;
2478
- minimize: string;
2479
- restore: string;
2480
- }
2481
-
2482
- export declare interface GameWindowPanelProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
2483
- /** Allow the maximize button. Defaults to true. */
2484
- allowMaximize?: boolean;
2485
- /** Allow the minimize button. Defaults to true. */
2486
- allowMinimize?: boolean;
2487
- children: ReactNode;
2488
- className?: string;
2489
- /** Uncontrolled initial state. Defaults to 'normal'. */
2490
- defaultState?: GameWindowState;
2491
- footer?: ReactNode;
2492
- icon?: ReactNode;
2493
- labels?: Partial<GameWindowPanelLabels>;
2494
- /** Rendering a close button requires an onClose handler. */
2495
- onClose?: () => void;
2496
- onStateChange?: (state: GameWindowState) => void;
2497
- /** Controlled window state. Leave undefined for uncontrolled usage. */
2498
- state?: GameWindowState;
2499
- title: string;
2500
- }
2501
-
2502
- export declare type GameWindowState = 'normal' | 'minimized' | 'maximized';
2503
-
2504
- export declare function getClayAssetBasePath(): string;
2505
-
2506
- export declare function getClayAssetMode(): ClayAssetMode;
2507
-
2508
- export declare function getClayCatalogPaths(): typeof CLAY_ASSETS.catalog;
2509
-
2510
- export declare function getClayIconPath(icon: ClayIconName, options?: ClayIconResolveOptions): string;
2511
-
2512
- /** Which visual families exist for an icon (in display order: game, then line). */
2513
- export declare function getClayIconStyles(icon: ClayIconName): ClayIconStyle[];
2514
-
2515
- export declare function getClaySourceAssetPath(icon: ClayIconName, style?: ClayIconStyle): string;
2516
-
2517
- export declare function getLiquidGooeyBudget(): LiquidGooeyBudgetState;
2518
-
2519
- export declare function getLiquidMetalContextBudget(): {
2520
- limit: number;
2521
- used: number;
1170
+ type?: never;
1171
+ linkComponent?: LinkComponent;
2522
1172
  };
2523
1173
 
2524
- export declare const IMAGE_MELT_DEFAULTS: Required<ImageMeltOptions>;
2525
-
2526
- export declare interface ImageMeltOptions {
2527
- /** Goo sigma: how far the bodies reach for each other and how wide colour averaging runs. */
2528
- blur?: number;
2529
- /** Alpha-contrast slope of the liquid boundary. */
2530
- contrast?: number;
2531
- /** How far each crisp face dissolves back before its neighbour. */
2532
- reach?: number;
2533
- /** Softness of the crisp-face dissolve mask. */
2534
- fade?: number;
2535
- /** Turbulence displacement of the molten layer, in px. */
2536
- warp?: number;
2537
- /** 0..1 two-liquid marbling strength in the touch area. */
2538
- mix?: number;
2539
- /** Blur of the marble pass's source colours. */
2540
- mixBlur?: number;
2541
- /** How deep the marble zone reaches into each card. */
2542
- gravity?: number;
2543
- /** Wavelength control of the warp noise. */
2544
- waviness?: number;
2545
- }
2546
-
2547
- /** Every form name, for shelves, docs and exhaustiveness checks. */
2548
- export declare const LIQUID_FORM_NAMES: readonly LiquidForm[];
2549
-
2550
- export declare const LIQUID_FORMS: Readonly<Record<LiquidForm, LiquidFormSpec>>;
1174
+ declare type LinkAttributes = Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'type' | 'download'> & {
1175
+ href: string;
1176
+ download?: string | boolean;
1177
+ ref?: Ref<HTMLAnchorElement>;
1178
+ };
2551
1179
 
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;
1180
+ declare type LinkComponent = ComponentType<LinkAttributes>;
2558
1181
 
2559
1182
  /**
2560
1183
  * A shared liquid silhouette behind crisp item content.
@@ -2595,142 +1218,21 @@ export declare type LiquidFill = string | {
2595
1218
  readonly sheen?: number;
2596
1219
  };
2597
1220
 
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
1221
  export declare type LiquidForm = 'set' | 'press' | 'swell' | 'settle' | 'fill' | 'reach' | 'ripple' | 'drain' | 'follow' | 'merge' | 'split' | 'bead';
2618
1222
 
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';
1223
+ declare interface LiquidFormItem {
1224
+ readonly effect?: 'morph';
2678
1225
  readonly morph?: MorphTuning;
2679
1226
  readonly transition?: Transition;
2680
- readonly dissolve?: boolean;
2681
1227
  }
2682
1228
 
2683
- /** Resolve a form into item props, with the same merge-don't-replace rule. */
2684
1229
  export declare function liquidFormItem(form: LiquidForm, overrides?: LiquidFormItem): LiquidFormItem;
2685
1230
 
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
1231
  declare interface LiquidGooeyBudgetOptions {
2724
1232
  maxAnimatedGroups?: number;
2725
1233
  maxFilterArea?: number;
2726
1234
  }
2727
1235
 
2728
- declare interface LiquidGooeyBudgetState {
2729
- maxAnimatedGroups: number;
2730
- maxFilterArea: number;
2731
- activeGroups: number;
2732
- }
2733
-
2734
1236
  /**
2735
1237
  * Merges nearby item silhouettes into one shape while leaving their content
2736
1238
  * accessible and separately filtered. Morph content may cross-blur while it
@@ -2739,7 +1241,7 @@ declare interface LiquidGooeyBudgetState {
2739
1241
  * shared treatment to <LiquidGroup>.
2740
1242
  */
2741
1243
  export declare const LiquidGroup: ForwardRefExoticComponent<LiquidGroupProps & RefAttributes<HTMLDivElement>> & {
2742
- Item: ForwardRefExoticComponent<LiquidItemProps & RefAttributes<HTMLDivElement>>;
1244
+ Item: ForwardRefExoticComponent< LiquidItemProps & RefAttributes<HTMLDivElement>>;
2743
1245
  };
2744
1246
 
2745
1247
  export declare interface LiquidGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
@@ -2753,8 +1255,6 @@ export declare interface LiquidGroupProps extends Omit<HTMLAttributes<HTMLDivEle
2753
1255
  * curved surface so it reads as a material rather than as a silhouette.
2754
1256
  */
2755
1257
  gloss?: number;
2756
- /** Optional named finish. An explicit raw gloss wins; omitted preserves the old rendering. */
2757
- liquidFinish?: LiquidFinish;
2758
1258
  /**
2759
1259
  * Surface fill. Defaults to the kit's theme surface token. A colour paints
2760
1260
  * the body flat; `{ top, bottom }` gives it light (see `LiquidFill`).
@@ -2783,8 +1283,6 @@ export declare interface LiquidGroupProps extends Omit<HTMLAttributes<HTMLDivEle
2783
1283
  motion?: 'auto' | 'follow' | 'reduced';
2784
1284
  }
2785
1285
 
2786
- export declare const LiquidItem: ForwardRefExoticComponent<LiquidItemProps & RefAttributes<HTMLDivElement>>;
2787
-
2788
1286
  export declare interface LiquidItemProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
2789
1287
  /**
2790
1288
  * Crisp content rendered above the merged silhouette. Do NOT add border,
@@ -2815,48 +1313,21 @@ export declare interface LiquidItemProps extends Omit<HTMLAttributes<HTMLDivElem
2815
1313
  */
2816
1314
  blob?: BlobShape;
2817
1315
  /**
2818
- * Select the adopted item surface behavior. Bend follows child geometry.
1316
+ * Select the core Morph behavior. Optional deformation belongs to liquid-effects.
2819
1317
  * Move is a group gesture (`motion="follow"`), not an item effect.
2820
1318
  */
2821
- effect?: 'morph' | 'melt' | 'bend';
1319
+ effect?: 'morph';
2822
1320
  /** Morph shape, tempo, bounce, and content cross-blur tuning. */
2823
1321
  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. */
1322
+ /** Follow a child moved by external code. */
2827
1323
  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
1324
  }
2850
1325
 
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;
1326
+ export declare function LiquidSurface({ children, form, active, fill, stroke, shadow: shadowOverride, gloss: glossOverride, outline, radius, className, style, }: LiquidSurfaceProps): ReactNode;
2854
1327
 
2855
1328
  export declare interface LiquidSurfaceProps {
2856
1329
  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. */
1330
+ /** Which motion. All forms share one thin liquid material. */
2860
1331
  form?: LiquidForm;
2861
1332
  /**
2862
1333
  * Whether the form is engaged: pressed for `press`, landed for `settle`,
@@ -2866,8 +1337,8 @@ export declare interface LiquidSurfaceProps {
2866
1337
  /** Silhouette paint. Defaults to the kit's raised surface token. */
2867
1338
  fill?: LiquidFill;
2868
1339
  /**
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.
1340
+ * Advanced primitive override. Defaults to the shared thin material;
1341
+ * ordinary controls do not expose a second material selector.
2871
1342
  */
2872
1343
  gloss?: number;
2873
1344
  /**
@@ -2902,65 +1373,13 @@ export declare interface MorphTuning {
2902
1373
 
2903
1374
  export declare function playGameCardRevealSound(rarity: 'common' | 'rare' | 'legendary', options?: GameInteractionSoundOptions): boolean;
2904
1375
 
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
1376
  export declare function playGameInteractionSound(options?: GameInteractionSoundOptions): boolean;
2913
1377
 
2914
1378
  export declare function playGameInteractionSoundForContext(audioContext: GameInteractionAudioContext, options?: GameInteractionSoundOptions): boolean;
2915
1379
 
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
1380
  /** Update one or both host-side performance limits. */
2960
1381
  export declare function setLiquidGooeyBudget(next: number | LiquidGooeyBudgetOptions): void;
2961
1382
 
2962
- export declare function setLiquidMetalContextBudget(nextLimit: number): void;
2963
-
2964
1383
  /** Small spring-to-easing compiler used by the shared group clock. */
2965
1384
  declare interface SpringConfig {
2966
1385
  stiffness?: number;
@@ -2988,11 +1407,4 @@ export declare function useGameCardOrientation(): {
2988
1407
  reducedMotion: boolean;
2989
1408
  };
2990
1409
 
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
1410
  export { }