splatoon-ui 0.1.0

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 (351) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE +5 -0
  3. package/README.md +233 -0
  4. package/README_EN.md +236 -0
  5. package/README_JA.md +230 -0
  6. package/dist/chunk-KUURJUBW.js +2344 -0
  7. package/dist/chunk-KUURJUBW.js.map +1 -0
  8. package/dist/client.css +2634 -0
  9. package/dist/client.css.map +1 -0
  10. package/dist/client.d.ts +1012 -0
  11. package/dist/client.js +7708 -0
  12. package/dist/client.js.map +1 -0
  13. package/dist/server.css +1091 -0
  14. package/dist/server.css.map +1 -0
  15. package/dist/server.d.ts +813 -0
  16. package/dist/server.js +117 -0
  17. package/dist/server.js.map +1 -0
  18. package/dist/styles.css +4225 -0
  19. package/package.json +119 -0
  20. package/public/_images/backgrounds/base-bg-pattern-2x.jpg +0 -0
  21. package/public/_images/backgrounds/base-bg-pattern.jpg +0 -0
  22. package/public/_images/backgrounds/camo-black-2x.png +0 -0
  23. package/public/_images/backgrounds/camo-black-2x.webp +0 -0
  24. package/public/_images/backgrounds/camo-black.png +0 -0
  25. package/public/_images/backgrounds/camo-green-2x.png +0 -0
  26. package/public/_images/backgrounds/camo-green.png +0 -0
  27. package/public/_images/backgrounds/camo-orange-2x.png +0 -0
  28. package/public/_images/backgrounds/camo-orange.png +0 -0
  29. package/public/_images/backgrounds/camo-purple-2x.png +0 -0
  30. package/public/_images/backgrounds/camo-purple-revised-2x.png +0 -0
  31. package/public/_images/backgrounds/camo-purple-revised.png +0 -0
  32. package/public/_images/backgrounds/camo-purple.png +0 -0
  33. package/public/_images/backgrounds/camo-red-2x.png +0 -0
  34. package/public/_images/backgrounds/camo-red.png +0 -0
  35. package/public/_images/backgrounds/camo-white-2x.png +0 -0
  36. package/public/_images/backgrounds/camo-white-outline-2x.png +0 -0
  37. package/public/_images/backgrounds/camo-white-outline.png +0 -0
  38. package/public/_images/backgrounds/camo-white.png +0 -0
  39. package/public/_images/backgrounds/chip-white-2x.png +0 -0
  40. package/public/_images/backgrounds/chip-white.png +0 -0
  41. package/public/_images/backgrounds/circles-green-2x.png +0 -0
  42. package/public/_images/backgrounds/circles-green.png +0 -0
  43. package/public/_images/backgrounds/graffiti-2x.jpg +0 -0
  44. package/public/_images/backgrounds/graffiti-medium-up-2x.jpg +0 -0
  45. package/public/_images/backgrounds/graffiti-medium-up.jpg +0 -0
  46. package/public/_images/backgrounds/graffiti.jpg +0 -0
  47. package/public/_images/backgrounds/hardware-background-2x.png +0 -0
  48. package/public/_images/backgrounds/hardware-background-medium-up-2x.png +0 -0
  49. package/public/_images/backgrounds/hardware-background-medium-up.png +0 -0
  50. package/public/_images/backgrounds/hardware-background.png +0 -0
  51. package/public/_images/backgrounds/monsters-black-2x.png +0 -0
  52. package/public/_images/backgrounds/monsters-black.png +0 -0
  53. package/public/_images/backgrounds/octo-black-2x.png +0 -0
  54. package/public/_images/backgrounds/octo-black.png +0 -0
  55. package/public/_images/backgrounds/octo-red-2x.png +0 -0
  56. package/public/_images/backgrounds/octo-red.png +0 -0
  57. package/public/_images/backgrounds/octoarrow-green-2x.png +0 -0
  58. package/public/_images/backgrounds/octoarrow-green.png +0 -0
  59. package/public/_images/backgrounds/octoarrow-orange-2x.png +0 -0
  60. package/public/_images/backgrounds/octoarrow-orange.png +0 -0
  61. package/public/_images/backgrounds/squid-black-2x.png +0 -0
  62. package/public/_images/backgrounds/squid-black.png +0 -0
  63. package/public/_images/backgrounds/tapes-black-2x.jpg +0 -0
  64. package/public/_images/backgrounds/tapes-black-2x.webp +0 -0
  65. package/public/_images/backgrounds/tapes-black.jpg +0 -0
  66. package/public/_images/backgrounds/tapes-black.webp +0 -0
  67. package/public/_images/backgrounds/tapes-green-2x.jpg +0 -0
  68. package/public/_images/backgrounds/tapes-green-2x.webp +0 -0
  69. package/public/_images/backgrounds/tapes-green.jpg +0 -0
  70. package/public/_images/backgrounds/tapes-green.webp +0 -0
  71. package/public/_images/backgrounds/tapes-pattern-2x.jpg +0 -0
  72. package/public/_images/backgrounds/tapes-pattern.jpg +0 -0
  73. package/public/_images/backgrounds/tapes-purple-2x.jpg +0 -0
  74. package/public/_images/backgrounds/tapes-purple-2x.webp +0 -0
  75. package/public/_images/backgrounds/tapes-purple.jpg +0 -0
  76. package/public/_images/backgrounds/tapes-purple.webp +0 -0
  77. package/public/_images/banners/banner-blue-2x.png +0 -0
  78. package/public/_images/banners/banner-blue-medium-up-2x.png +0 -0
  79. package/public/_images/banners/banner-blue-medium-up.png +0 -0
  80. package/public/_images/banners/banner-blue.png +0 -0
  81. package/public/_images/banners/banner-design1-2x.png +0 -0
  82. package/public/_images/banners/banner-design1-medium-up-2x.png +0 -0
  83. package/public/_images/banners/banner-design1-medium-up.png +0 -0
  84. package/public/_images/banners/banner-design1.png +0 -0
  85. package/public/_images/banners/banner-design2-2x.png +0 -0
  86. package/public/_images/banners/banner-design2-medium-up-2x.png +0 -0
  87. package/public/_images/banners/banner-design2-medium-up.png +0 -0
  88. package/public/_images/banners/banner-design2.png +0 -0
  89. package/public/_images/banners/banner-design3-2x.png +0 -0
  90. package/public/_images/banners/banner-design3-medium-up-2x.png +0 -0
  91. package/public/_images/banners/banner-design3-medium-up.png +0 -0
  92. package/public/_images/banners/banner-design3.png +0 -0
  93. package/public/_images/banners/banner-green-2x.png +0 -0
  94. package/public/_images/banners/banner-green-medium-up-2x.png +0 -0
  95. package/public/_images/banners/banner-green-medium-up.png +0 -0
  96. package/public/_images/banners/banner-green.png +0 -0
  97. package/public/_images/banners/banner-orange-2x.png +0 -0
  98. package/public/_images/banners/banner-orange-medium-up-2x.png +0 -0
  99. package/public/_images/banners/banner-orange-medium-up.png +0 -0
  100. package/public/_images/banners/banner-orange.png +0 -0
  101. package/public/_images/banners/banner-purple-2x.png +0 -0
  102. package/public/_images/banners/banner-purple-medium-up-2x.png +0 -0
  103. package/public/_images/banners/banner-purple-medium-up.png +0 -0
  104. package/public/_images/banners/banner-purple.png +0 -0
  105. package/public/_images/banners/banner-red-2x.png +0 -0
  106. package/public/_images/banners/banner-red-medium-up-2x.png +0 -0
  107. package/public/_images/banners/banner-red-medium-up.png +0 -0
  108. package/public/_images/banners/banner-red.png +0 -0
  109. package/public/_images/banners/banner-yellow-2x.png +0 -0
  110. package/public/_images/banners/banner-yellow-medium-up-2x.png +0 -0
  111. package/public/_images/banners/banner-yellow-medium-up.png +0 -0
  112. package/public/_images/banners/banner-yellow.png +0 -0
  113. package/public/_images/characters/char-10.png +0 -0
  114. package/public/_images/characters/char-11.png +0 -0
  115. package/public/_images/characters/char-12.png +0 -0
  116. package/public/_images/characters/char-13.png +0 -0
  117. package/public/_images/characters/char-14.png +0 -0
  118. package/public/_images/characters/char-15.png +0 -0
  119. package/public/_images/characters/char-17.png +0 -0
  120. package/public/_images/characters/char-18.png +0 -0
  121. package/public/_images/characters/char-2.png +0 -0
  122. package/public/_images/characters/char-3.png +0 -0
  123. package/public/_images/characters/char-4.png +0 -0
  124. package/public/_images/characters/char-5.png +0 -0
  125. package/public/_images/characters/char-7.png +0 -0
  126. package/public/_images/characters/char-8.png +0 -0
  127. package/public/_images/characters/game-pack.png +0 -0
  128. package/public/_images/characters/salmonid.png +0 -0
  129. package/public/_images/events/active-splat-2x.webp +0 -0
  130. package/public/_images/events/active-splat.webp +0 -0
  131. package/public/_images/events/big-run-callout.jpg +0 -0
  132. package/public/_images/events/golden-egg.png +0 -0
  133. package/public/_images/events/splatnet-blade.jpg +0 -0
  134. package/public/_images/events/splatnet-next-page.png +0 -0
  135. package/public/_images/gameplay/battle-online/gameplay-battle-online-anarchy-1.jpg +0 -0
  136. package/public/_images/gameplay/battle-online/gameplay-battle-online-turfwar-left-screen.jpg +0 -0
  137. package/public/_images/gameplay/battle-online/gameplay-battle-online-turfwar-right-screen.jpg +0 -0
  138. package/public/_images/gameplay/gameplay-salmonrun.jpg +0 -0
  139. package/public/_images/gameplay/splatfest/gameplay-splatfest-1.jpg +0 -0
  140. package/public/_images/gameplay/splatfest/gameplay-splatfest-2.jpg +0 -0
  141. package/public/_images/home/character.png +0 -0
  142. package/public/_images/home/header-back.jpg +0 -0
  143. package/public/_images/home/s3-home-intro-blade.jpg +0 -0
  144. package/public/_images/news/news-staple-left.png +0 -0
  145. package/public/_images/news/news-staple-right.png +0 -0
  146. package/public/_images/news/next-page.png +0 -0
  147. package/public/_images/screenshots/video-trailer.jpg +0 -0
  148. package/public/_images/squid/ika.png +0 -0
  149. package/public/_images/squid/loader-morph-sprite.png +0 -0
  150. package/public/_images/squid/loader-swim-sprite.png +0 -0
  151. package/public/_images/squid/loader_ika.gif +0 -0
  152. package/public/_images/svg/icon-pagination.svg +1 -0
  153. package/public/_images/svg/left-black-tape-container.svg +1 -0
  154. package/public/_images/svg/left-tape.svg +9 -0
  155. package/public/_images/svg/left-yellow-tape-container.svg +1 -0
  156. package/public/_images/svg/pagination-splat.svg +1 -0
  157. package/public/_images/svg/paper-tear-down.svg +3 -0
  158. package/public/_images/svg/paper-tear-up.svg +3 -0
  159. package/public/_images/svg/right-black-tape-container.svg +1 -0
  160. package/public/_images/svg/right-tape.svg +10 -0
  161. package/public/_images/svg/right-yellow-tape-container.svg +1 -0
  162. package/public/_images/svg/styled-photo-background.svg +1 -0
  163. package/public/_images/tape-assets/sticker-1-2x.png +0 -0
  164. package/public/_images/tape-assets/sticker-1-2x.webp +0 -0
  165. package/public/_images/tape-assets/sticker-1-medium-up-2x.png +0 -0
  166. package/public/_images/tape-assets/sticker-1-medium-up-2x.webp +0 -0
  167. package/public/_images/tape-assets/sticker-1-medium-up.png +0 -0
  168. package/public/_images/tape-assets/sticker-1-medium-up.webp +0 -0
  169. package/public/_images/tape-assets/sticker-1.png +0 -0
  170. package/public/_images/tape-assets/sticker-1.webp +0 -0
  171. package/public/_images/tape-assets/sticker-10-2x.png +0 -0
  172. package/public/_images/tape-assets/sticker-10-2x.webp +0 -0
  173. package/public/_images/tape-assets/sticker-10-medium-up-2x.png +0 -0
  174. package/public/_images/tape-assets/sticker-10-medium-up-2x.webp +0 -0
  175. package/public/_images/tape-assets/sticker-10-medium-up.png +0 -0
  176. package/public/_images/tape-assets/sticker-10-medium-up.webp +0 -0
  177. package/public/_images/tape-assets/sticker-10.png +0 -0
  178. package/public/_images/tape-assets/sticker-10.webp +0 -0
  179. package/public/_images/tape-assets/sticker-11-2x.png +0 -0
  180. package/public/_images/tape-assets/sticker-11-2x.webp +0 -0
  181. package/public/_images/tape-assets/sticker-11-medium-up-2x.png +0 -0
  182. package/public/_images/tape-assets/sticker-11-medium-up-2x.webp +0 -0
  183. package/public/_images/tape-assets/sticker-11-medium-up.png +0 -0
  184. package/public/_images/tape-assets/sticker-11-medium-up.webp +0 -0
  185. package/public/_images/tape-assets/sticker-11.png +0 -0
  186. package/public/_images/tape-assets/sticker-11.webp +0 -0
  187. package/public/_images/tape-assets/sticker-12-2x.png +0 -0
  188. package/public/_images/tape-assets/sticker-12-2x.webp +0 -0
  189. package/public/_images/tape-assets/sticker-12-medium-up-2x.png +0 -0
  190. package/public/_images/tape-assets/sticker-12-medium-up-2x.webp +0 -0
  191. package/public/_images/tape-assets/sticker-12-medium-up.png +0 -0
  192. package/public/_images/tape-assets/sticker-12-medium-up.webp +0 -0
  193. package/public/_images/tape-assets/sticker-12.png +0 -0
  194. package/public/_images/tape-assets/sticker-12.webp +0 -0
  195. package/public/_images/tape-assets/sticker-2-red-2x.png +0 -0
  196. package/public/_images/tape-assets/sticker-2-red-2x.webp +0 -0
  197. package/public/_images/tape-assets/sticker-2-red-medium-up-2x.png +0 -0
  198. package/public/_images/tape-assets/sticker-2-red-medium-up-2x.webp +0 -0
  199. package/public/_images/tape-assets/sticker-2-red-medium-up.png +0 -0
  200. package/public/_images/tape-assets/sticker-2-red-medium-up.webp +0 -0
  201. package/public/_images/tape-assets/sticker-2-red.png +0 -0
  202. package/public/_images/tape-assets/sticker-2-red.webp +0 -0
  203. package/public/_images/tape-assets/sticker-3-2x.png +0 -0
  204. package/public/_images/tape-assets/sticker-3-2x.webp +0 -0
  205. package/public/_images/tape-assets/sticker-3-medium-up-2x.png +0 -0
  206. package/public/_images/tape-assets/sticker-3-medium-up-2x.webp +0 -0
  207. package/public/_images/tape-assets/sticker-3-medium-up.png +0 -0
  208. package/public/_images/tape-assets/sticker-3-medium-up.webp +0 -0
  209. package/public/_images/tape-assets/sticker-3.png +0 -0
  210. package/public/_images/tape-assets/sticker-3.webp +0 -0
  211. package/public/_images/tape-assets/sticker-4-2x.png +0 -0
  212. package/public/_images/tape-assets/sticker-4-2x.webp +0 -0
  213. package/public/_images/tape-assets/sticker-4-medium-up-2x.png +0 -0
  214. package/public/_images/tape-assets/sticker-4-medium-up-2x.webp +0 -0
  215. package/public/_images/tape-assets/sticker-4-medium-up.png +0 -0
  216. package/public/_images/tape-assets/sticker-4-medium-up.webp +0 -0
  217. package/public/_images/tape-assets/sticker-4.png +0 -0
  218. package/public/_images/tape-assets/sticker-4.webp +0 -0
  219. package/public/_images/tape-assets/sticker-5-2x.png +0 -0
  220. package/public/_images/tape-assets/sticker-5-2x.webp +0 -0
  221. package/public/_images/tape-assets/sticker-5-medium-up-2x.png +0 -0
  222. package/public/_images/tape-assets/sticker-5-medium-up-2x.webp +0 -0
  223. package/public/_images/tape-assets/sticker-5-medium-up.png +0 -0
  224. package/public/_images/tape-assets/sticker-5-medium-up.webp +0 -0
  225. package/public/_images/tape-assets/sticker-5.png +0 -0
  226. package/public/_images/tape-assets/sticker-5.webp +0 -0
  227. package/public/_images/tape-assets/sticker-6-2x.png +0 -0
  228. package/public/_images/tape-assets/sticker-6-2x.webp +0 -0
  229. package/public/_images/tape-assets/sticker-6-medium-up-2x.png +0 -0
  230. package/public/_images/tape-assets/sticker-6-medium-up-2x.webp +0 -0
  231. package/public/_images/tape-assets/sticker-6-medium-up.png +0 -0
  232. package/public/_images/tape-assets/sticker-6-medium-up.webp +0 -0
  233. package/public/_images/tape-assets/sticker-6.png +0 -0
  234. package/public/_images/tape-assets/sticker-6.webp +0 -0
  235. package/public/_images/tape-assets/sticker-7-2x.png +0 -0
  236. package/public/_images/tape-assets/sticker-7-2x.webp +0 -0
  237. package/public/_images/tape-assets/sticker-7-medium-up-2x.png +0 -0
  238. package/public/_images/tape-assets/sticker-7-medium-up-2x.webp +0 -0
  239. package/public/_images/tape-assets/sticker-7-medium-up.png +0 -0
  240. package/public/_images/tape-assets/sticker-7-medium-up.webp +0 -0
  241. package/public/_images/tape-assets/sticker-7.png +0 -0
  242. package/public/_images/tape-assets/sticker-7.webp +0 -0
  243. package/public/_images/tape-assets/sticker-8-2x.png +0 -0
  244. package/public/_images/tape-assets/sticker-8-2x.webp +0 -0
  245. package/public/_images/tape-assets/sticker-8-medium-up-2x.png +0 -0
  246. package/public/_images/tape-assets/sticker-8-medium-up-2x.webp +0 -0
  247. package/public/_images/tape-assets/sticker-8-medium-up.png +0 -0
  248. package/public/_images/tape-assets/sticker-8-medium-up.webp +0 -0
  249. package/public/_images/tape-assets/sticker-8.png +0 -0
  250. package/public/_images/tape-assets/sticker-8.webp +0 -0
  251. package/public/_images/tape-assets/sticker-9-2x.png +0 -0
  252. package/public/_images/tape-assets/sticker-9-2x.webp +0 -0
  253. package/public/_images/tape-assets/sticker-9-medium-up-2x.png +0 -0
  254. package/public/_images/tape-assets/sticker-9-medium-up-2x.webp +0 -0
  255. package/public/_images/tape-assets/sticker-9-medium-up.png +0 -0
  256. package/public/_images/tape-assets/sticker-9-medium-up.webp +0 -0
  257. package/public/_images/tape-assets/sticker-9.png +0 -0
  258. package/public/_images/tape-assets/sticker-9.webp +0 -0
  259. package/public/_images/tape-assets/tape-1.png +0 -0
  260. package/public/_images/tape-assets/tape-2-2x.png +0 -0
  261. package/public/_images/tape-assets/tape-2-2x.webp +0 -0
  262. package/public/_images/tape-assets/tape-2-medium-up-2x.png +0 -0
  263. package/public/_images/tape-assets/tape-2-medium-up-2x.webp +0 -0
  264. package/public/_images/tape-assets/tape-2-medium-up.png +0 -0
  265. package/public/_images/tape-assets/tape-2-medium-up.webp +0 -0
  266. package/public/_images/tape-assets/tape-2.png +0 -0
  267. package/public/_images/tape-assets/tape-2.webp +0 -0
  268. package/public/_images/tape-assets/tape-3-2x.png +0 -0
  269. package/public/_images/tape-assets/tape-3-2x.webp +0 -0
  270. package/public/_images/tape-assets/tape-3-medium-up-2x.png +0 -0
  271. package/public/_images/tape-assets/tape-3-medium-up-2x.webp +0 -0
  272. package/public/_images/tape-assets/tape-3-medium-up.png +0 -0
  273. package/public/_images/tape-assets/tape-3-medium-up.webp +0 -0
  274. package/public/_images/tape-assets/tape-3.png +0 -0
  275. package/public/_images/tape-assets/tape-3.webp +0 -0
  276. package/public/_images/tape-assets/tape-4-medium-up-2x.png +0 -0
  277. package/public/_images/tape-assets/tape-4-medium-up-2x.webp +0 -0
  278. package/public/_images/tape-assets/tape-4-medium-up.png +0 -0
  279. package/public/_images/tape-assets/tape-4-medium-up.webp +0 -0
  280. package/public/_images/tape-assets/tape-5-2x.png +0 -0
  281. package/public/_images/tape-assets/tape-5-2x.webp +0 -0
  282. package/public/_images/tape-assets/tape-5-medium-up-2x.png +0 -0
  283. package/public/_images/tape-assets/tape-5-medium-up-2x.webp +0 -0
  284. package/public/_images/tape-assets/tape-5-medium-up.png +0 -0
  285. package/public/_images/tape-assets/tape-5-medium-up.webp +0 -0
  286. package/public/_images/tape-assets/tape-5.png +0 -0
  287. package/public/_images/tape-assets/tape-5.webp +0 -0
  288. package/public/_images/tape-assets/tape-6-2x.png +0 -0
  289. package/public/_images/tape-assets/tape-6-2x.webp +0 -0
  290. package/public/_images/tape-assets/tape-6-medium-up-2x.png +0 -0
  291. package/public/_images/tape-assets/tape-6-medium-up-2x.webp +0 -0
  292. package/public/_images/tape-assets/tape-6-medium-up.png +0 -0
  293. package/public/_images/tape-assets/tape-6-medium-up.webp +0 -0
  294. package/public/_images/tape-assets/tape-6.png +0 -0
  295. package/public/_images/tape-assets/tape-6.webp +0 -0
  296. package/public/_images/tape-assets/tape-7-2x.png +0 -0
  297. package/public/_images/tape-assets/tape-7-2x.webp +0 -0
  298. package/public/_images/tape-assets/tape-7.png +0 -0
  299. package/public/_images/tape-assets/tape-7.webp +0 -0
  300. package/public/_images/weapons/marquee/s3_weapons_social-1.jpg +0 -0
  301. package/public/_images/weapons/marquee/s3_weapons_social-10.jpg +0 -0
  302. package/public/_images/weapons/marquee/s3_weapons_social-11.jpg +0 -0
  303. package/public/_images/weapons/marquee/s3_weapons_social-12.jpg +0 -0
  304. package/public/_images/weapons/marquee/s3_weapons_social-13.jpg +0 -0
  305. package/public/_images/weapons/marquee/s3_weapons_social-14.jpg +0 -0
  306. package/public/_images/weapons/marquee/s3_weapons_social-15.jpg +0 -0
  307. package/public/_images/weapons/marquee/s3_weapons_social-16.jpg +0 -0
  308. package/public/_images/weapons/marquee/s3_weapons_social-17.jpg +0 -0
  309. package/public/_images/weapons/marquee/s3_weapons_social-18.jpg +0 -0
  310. package/public/_images/weapons/marquee/s3_weapons_social-19.jpg +0 -0
  311. package/public/_images/weapons/marquee/s3_weapons_social-2.jpg +0 -0
  312. package/public/_images/weapons/marquee/s3_weapons_social-20.jpg +0 -0
  313. package/public/_images/weapons/marquee/s3_weapons_social-21.jpg +0 -0
  314. package/public/_images/weapons/marquee/s3_weapons_social-22.jpg +0 -0
  315. package/public/_images/weapons/marquee/s3_weapons_social-3.jpg +0 -0
  316. package/public/_images/weapons/marquee/s3_weapons_social-4.jpg +0 -0
  317. package/public/_images/weapons/marquee/s3_weapons_social-5.jpg +0 -0
  318. package/public/_images/weapons/marquee/s3_weapons_social-6.jpg +0 -0
  319. package/public/_images/weapons/marquee/s3_weapons_social-7.jpg +0 -0
  320. package/public/_images/weapons/marquee/s3_weapons_social-8.jpg +0 -0
  321. package/public/_images/weapons/marquee/s3_weapons_social-9.jpg +0 -0
  322. package/public/_images/weapons/shops-gallery/coco-icon.png +0 -0
  323. package/public/_images/weapons/shops-gallery/coco.png +0 -0
  324. package/public/_images/weapons/shops-gallery/eddy-icon.png +0 -0
  325. package/public/_images/weapons/shops-gallery/eddy.png +0 -0
  326. package/public/_images/weapons/shops-gallery/harmony-icon.png +0 -0
  327. package/public/_images/weapons/shops-gallery/harmony.png +0 -0
  328. package/public/_images/weapons/shops-gallery/jella-icon.png +0 -0
  329. package/public/_images/weapons/shops-gallery/jella.png +0 -0
  330. package/public/_images/weapons/shops-gallery/sheldon-icon.png +0 -0
  331. package/public/_images/weapons/shops-gallery/sheldon.png +0 -0
  332. package/public/_images/weapons/shops-gallery/weapons-express-ammo-knights-2.jpg +0 -0
  333. package/public/_images/weapons/shops-gallery/weapons-express-crush-station-5.jpg +0 -0
  334. package/public/_images/weapons/shops-gallery/weapons-express-hotlantis-1.jpg +0 -0
  335. package/public/_images/weapons/shops-gallery/weapons-express-manoward-4.jpg +0 -0
  336. package/public/_images/weapons/shops-gallery/weapons-express-naut-couture-3.jpg +0 -0
  337. package/public/fonts/foo-webfont.woff +0 -0
  338. package/public/fonts/foo-webfont.woff2 +0 -0
  339. package/public/fonts/montserrat-v24-latin-500.woff +0 -0
  340. package/public/fonts/montserrat-v24-latin-500.woff2 +0 -0
  341. package/public/fonts/montserrat-v24-latin-600.woff2 +0 -0
  342. package/public/fonts/montserrat-v24-latin-700.woff2 +0 -0
  343. package/public/fonts/montserrat-v24-latin-900.woff2 +0 -0
  344. package/public/fonts/montserrat-v24-latin-regular.woff +0 -0
  345. package/public/fonts/montserrat-v24-latin-regular.woff2 +0 -0
  346. package/public/fonts/obviously-narrow-600.woff2 +0 -0
  347. package/public/svgs/paper-tear-down.svg +3 -0
  348. package/public/svgs/paper-tear-up.svg +3 -0
  349. package/public/svgs/rip-left.svg +3 -0
  350. package/public/svgs/rip-right.svg +3 -0
  351. package/public/svgs/wave.svg +3 -0
@@ -0,0 +1,1012 @@
1
+ import { RuggedTheme, StapleCardProps, NavLink, LinkRenderProps } from './server.js';
2
+ export { Alert, AlertDescription, AlertProps, AlertTitle, AssetImage, AssetImageProps, BlackTapeContainer, BlackTapeContainerProps, ButtonArrow, ButtonArrowProps, ButtonDrip, ButtonDripProps, CharacterImageAsset, DemoContent, DemoContentProps, DemoExampleGroup, EventCallout, EventCalloutProps, EventImageAsset, GitHubMark, HeadingTape, HeadingTapeDecoration, HeadingTapeDecorationImage, HeadingTapeProps, ImageAsset, Input, Marquee, MarqueeItem, MediaDecoration, MediaDecorationProps, NavChevron, NewsImageAsset, PaperSurface, PaperSurfaceProps, PaperSurfaceTone, PaperTearEdge, PaperTearEdgeProps, Pattern, PhotoDecoration, PhotoDecorationProps, PhotoFrame, PhotoFrameProps, PhotoTape, PhotoTapeProps, RuggedCard, RuggedCardProps, Section, SectionBackground, SectionBackgroundProps, SectionProps, ShowcaseImageAsset, SquidImageAsset, SquidSpriteAsset, Staple, StapleCard, StapleCardDescription, StapleCardTitle, StapleProps, Sticker10, Sticker2Red, Sticker5, TagHanger, Tape, TapeAsset, TapeAssetSource, TapeDivider, TapeDividerProps, TapeImageVariant, TapePicture, TapeProps, TapeResponsivePictures, TapeTitle, TapeVariant, TornCard, TornCardDescription, TornCardProps, TornCardSlot, TornCardSlotProps, TornCardTitle, WaveButton, WaveButtonAnimation, WaveButtonProps, WaveButtonSize, WaveButtonVariant, WeaponGalleryAsset, WeaponMarqueeAsset, WeaponShopGalleryAsset, WideTornPaper, characterImageAssets, eventImageAssets, isTapeImageVariant, newsStapleAssets, pageTransitionCharacterAssets, showcaseMediaAssets, squidImageAssets, squidSpriteAssets, tapeImageAssets, weaponMarqueeItems, weaponShopGalleryItems, weaponShowcaseItems } from './server.js';
3
+ import * as React from 'react';
4
+ import * as class_variance_authority_types from 'class-variance-authority/types';
5
+ import { useRender } from '@base-ui/react/use-render';
6
+ import { VariantProps } from 'class-variance-authority';
7
+ import { Button as Button$1 } from '@base-ui/react/button';
8
+ import { HTMLMotionProps } from 'framer-motion';
9
+ import { Checkbox as Checkbox$1 } from '@base-ui/react/checkbox';
10
+ import { Dialog as Dialog$1 } from '@base-ui/react/dialog';
11
+ import * as _base_ui_react from '@base-ui/react';
12
+ import { Popover as Popover$1 } from '@base-ui/react/popover';
13
+ import * as ProgressPrimitive from '@radix-ui/react-progress';
14
+ import { Radio } from '@base-ui/react/radio';
15
+ import { RadioGroup as RadioGroup$1 } from '@base-ui/react/radio-group';
16
+ import { Select as Select$1 } from '@base-ui/react/select';
17
+ import { Tabs as Tabs$1 } from '@base-ui/react/tabs';
18
+
19
+ declare const badgeVariants: (props?: ({
20
+ variant?: "blue" | "green" | "purple" | "red" | "yellow" | "monochrome" | "sticker" | null | undefined;
21
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
22
+ declare function Badge({ className, variant, render, ...props }: useRender.ComponentProps<"span"> & VariantProps<typeof badgeVariants>): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
23
+
24
+ type BannerDividerVariant = 'design1' | 'design2' | 'design3' | 'yellow' | 'blue' | 'green' | 'purple' | 'orange' | 'red';
25
+ type BannerDividerRotation = 'up' | 'down';
26
+ interface BannerDividerTape {
27
+ variant: BannerDividerVariant;
28
+ rotate: BannerDividerRotation;
29
+ /** [base, medium-up] responsive top offset in px. Default varies by position. */
30
+ offsetY?: [number, number];
31
+ className?: string;
32
+ /** InView animation delay level (0-20). Default: auto (index-based) */
33
+ animDelay?: number;
34
+ }
35
+ interface BannerDividerProps extends React.HTMLAttributes<HTMLDivElement> {
36
+ /** Pattern tape variant (design1/2/3). Combined with `color` for the common 2-tape divider. */
37
+ pattern?: BannerDividerVariant;
38
+ /** Color tape variant. Combined with `pattern` for the common 2-tape divider. */
39
+ color?: BannerDividerVariant;
40
+ /**
41
+ * Explicit tape layers. Overrides `pattern`/`color` when provided.
42
+ * Use for custom stacking or 3+ layer dividers.
43
+ */
44
+ tapes?: BannerDividerTape[];
45
+ /** Enable InView fly-in animation on each tape. */
46
+ animate?: boolean;
47
+ /** Root margin for InView IntersectionObserver. */
48
+ rootMargin?: string;
49
+ /**
50
+ * Overlay matches the reference behavior: the divider paints across the section edge
51
+ * without reserving document flow height. Use spacer only when a layout intentionally
52
+ * needs the divider to occupy vertical space.
53
+ */
54
+ layout?: 'overlay' | 'spacer';
55
+ }
56
+ declare function BannerDivider({ pattern, color, tapes: tapesProp, animate, rootMargin, layout, className, style: styleProp, ...props }: BannerDividerProps): React.JSX.Element;
57
+ /** Convenience: 3-tape variant (design1 + design2 + blue) */
58
+ declare const BANNER_DIVIDER_THREE_TAPES: [BannerDividerTape, BannerDividerTape, BannerDividerTape];
59
+
60
+ interface BlobPlayButtonProps extends React.HTMLAttributes<HTMLDivElement> {
61
+ idleWobbleAmount?: number;
62
+ /** Blob color */
63
+ hexColor?: string;
64
+ /** Container width in px */
65
+ blobSize?: number;
66
+ }
67
+ declare function BlobPlayButton({ ref, className, idleWobbleAmount, hexColor, blobSize, ...props }: BlobPlayButtonProps & {
68
+ ref?: React.Ref<HTMLDivElement>;
69
+ }): React.JSX.Element;
70
+
71
+ type ButtonThemePreset = 'dark' | 'light' | 'yellow' | 'dark-yellow' | 'dark-red' | 'dark-purple' | 'dark-purpleOrange' | 'dark-green' | 'dark-blue' | 'light-blue' | 'light-green' | 'light-purple' | 'light-red' | 'black';
72
+ type ButtonColorToken = 'yellow' | 'blue' | 'green' | 'purple' | 'orange' | 'red' | 'white' | 'black';
73
+
74
+ declare const buttonVariants: (props?: ({
75
+ variant?: "blue" | "green" | "orange" | "purple" | "yellow" | "destructive" | "ghost" | "outline" | "arrow" | null | undefined;
76
+ size?: "default" | "icon" | "lg" | "sm" | "icon-sm" | "icon-lg" | null | undefined;
77
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
78
+ interface ButtonProps$1 extends React.ComponentPropsWithoutRef<typeof Button$1>, VariantProps<typeof buttonVariants> {
79
+ hasChevron?: boolean;
80
+ leftIcon?: React.ReactNode;
81
+ color?: ButtonColorToken;
82
+ hoverColor?: ButtonColorToken;
83
+ textColor?: ButtonColorToken;
84
+ textHoverColor?: ButtonColorToken;
85
+ theme?: ButtonThemePreset;
86
+ }
87
+ declare function Button({ ref, className, variant, size, children, hasChevron, leftIcon, onClick, onMouseEnter, onMouseLeave, color, hoverColor, textColor, textHoverColor, theme, render, nativeButton, ...props }: ButtonProps$1 & {
88
+ ref?: React.Ref<HTMLElement>;
89
+ }): React.JSX.Element;
90
+
91
+ interface CardImageProps extends React.ComponentProps<"div"> {
92
+ src?: string;
93
+ alt?: string;
94
+ }
95
+ declare function CardImage({ ref, className, src, alt, children, ...props }: CardImageProps & {
96
+ ref?: React.Ref<HTMLDivElement>;
97
+ }): React.JSX.Element;
98
+
99
+ type CardVariant = 'paper' | 'staple' | 'rugged' | 'torn';
100
+ declare const CardContext: React.Context<{
101
+ variant?: CardVariant;
102
+ surface?: "white" | "dark";
103
+ }>;
104
+ interface CardProps extends Omit<React.ComponentProps<'div'>, 'title'> {
105
+ variant?: CardVariant;
106
+ surface?: 'white' | 'dark';
107
+ /** Card rotation angle (rugged/torn) */
108
+ rotation?: string;
109
+ /** Theme preset (rugged only) */
110
+ ruggedTheme?: RuggedTheme;
111
+ /** Custom background ReactNode (rugged/torn) */
112
+ ruggedBackground?: React.ReactNode;
113
+ /** Image/media shown in the tilted image area */
114
+ image?: React.ReactNode;
115
+ /** Convenience: renders a title paragraph in the info area */
116
+ title?: React.ReactNode;
117
+ /** Convenience: renders a subtitle paragraph below the title */
118
+ subtitle?: React.ReactNode;
119
+ /** Convenience: renders an action element at the bottom of info */
120
+ action?: React.ReactNode;
121
+ /** Whether to show the decorative tape element at the top (staple/torn, default: true) */
122
+ showTape?: boolean;
123
+ /** Enable hover tilt animation (staple/paper variant) */
124
+ hoverTilt?: boolean;
125
+ }
126
+ declare function Card({ className, variant, surface, ruggedTheme, rotation, ruggedBackground, image, title, subtitle, action, showTape, hoverTilt, children, ...props }: CardProps): React.JSX.Element;
127
+ declare function CardHeader({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
128
+ declare function CardTitle({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
129
+ declare function CardDescription({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
130
+ declare function CardAction({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
131
+ declare function CardContent({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
132
+ declare function CardFooter({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
133
+
134
+ interface CarouselContextType {
135
+ currentIndex: number;
136
+ prevIndex: number;
137
+ navigationDirection: number;
138
+ itemCount: number;
139
+ canGoPrev: boolean;
140
+ canGoNext: boolean;
141
+ goToNext: () => void;
142
+ goToPrev: () => void;
143
+ goToIndex: (index: number) => void;
144
+ }
145
+ declare function useCarousel(): CarouselContextType;
146
+ interface CarouselProps extends React.HTMLAttributes<HTMLDivElement> {
147
+ index?: number;
148
+ defaultIndex?: number;
149
+ /** @deprecated Use defaultIndex for uncontrolled carousels. */
150
+ initialIndex?: number;
151
+ itemCount?: number;
152
+ onIndexChange?: (index: number) => void;
153
+ }
154
+ declare function Carousel({ ref, children, className, index, defaultIndex, initialIndex, itemCount: itemCountProp, onIndexChange, onKeyDown, role, tabIndex, ...props }: CarouselProps & {
155
+ ref?: React.Ref<HTMLDivElement>;
156
+ }): React.JSX.Element;
157
+ declare function CarouselViewport({ ref, className, ...props }: React.HTMLAttributes<HTMLDivElement> & {
158
+ ref?: React.Ref<HTMLDivElement>;
159
+ }): React.JSX.Element;
160
+ declare function CarouselBleedBoundary({ ref, className, ...props }: React.HTMLAttributes<HTMLDivElement> & {
161
+ ref?: React.Ref<HTMLDivElement>;
162
+ }): React.JSX.Element;
163
+ declare function CarouselContent({ ref, className, children, ...props }: React.HTMLAttributes<HTMLDivElement> & {
164
+ ref?: React.Ref<HTMLDivElement>;
165
+ }): React.JSX.Element;
166
+ declare function useCarouselItemState(index: number | undefined): {
167
+ isActive: boolean;
168
+ wasActive: boolean;
169
+ isLeft: boolean;
170
+ isRight: boolean;
171
+ offset: number;
172
+ currentIndex: number;
173
+ index: number | undefined;
174
+ };
175
+ interface CarouselItemProps extends React.HTMLAttributes<HTMLDivElement> {
176
+ 'data-index'?: number;
177
+ }
178
+ declare function CarouselItem({ ref, className, children, 'data-index': index, ...props }: CarouselItemProps & {
179
+ ref?: React.Ref<HTMLDivElement>;
180
+ }): React.JSX.Element;
181
+ interface FadeCarouselItemProps extends React.HTMLAttributes<HTMLDivElement> {
182
+ 'data-index'?: number;
183
+ rotateAmount?: number;
184
+ }
185
+ declare function FadeCarouselItem({ ref, className, children, 'data-index': index, rotateAmount, ...props }: FadeCarouselItemProps & {
186
+ ref?: React.Ref<HTMLDivElement>;
187
+ }): React.JSX.Element;
188
+ declare function SwipeableGallery({ children, className, }: {
189
+ children: React.ReactNode;
190
+ className?: string;
191
+ }): React.JSX.Element;
192
+ interface CarouselPaginationProps extends React.HTMLAttributes<HTMLUListElement> {
193
+ labels?: string[];
194
+ }
195
+ declare function CarouselPagination({ ref, className, labels, ...props }: CarouselPaginationProps & {
196
+ ref?: React.Ref<HTMLUListElement>;
197
+ }): React.JSX.Element;
198
+ interface CarouselImagePaginationItem {
199
+ src: string;
200
+ alt?: string;
201
+ rotate?: number;
202
+ }
203
+ interface CarouselImagePaginationProps extends React.HTMLAttributes<HTMLUListElement> {
204
+ images: CarouselImagePaginationItem[];
205
+ }
206
+ declare function CarouselImagePagination({ ref, className, images, ...props }: CarouselImagePaginationProps & {
207
+ ref?: React.Ref<HTMLUListElement>;
208
+ }): React.JSX.Element;
209
+
210
+ type CardStackCarouselItemLayout = "default" | "feed";
211
+ declare function CardStackCarouselScene({ children }: {
212
+ children: React.ReactNode;
213
+ }): React.JSX.Element;
214
+ declare function CardStackCarouselContent({ ref, className, style, ...props }: React.ComponentPropsWithoutRef<typeof CarouselContent> & {
215
+ ref?: React.Ref<HTMLDivElement>;
216
+ }): React.JSX.Element;
217
+ interface CardStackCarouselItemProps extends Omit<HTMLMotionProps<"div">, "children"> {
218
+ children?: React.ReactNode;
219
+ itemLayout?: CardStackCarouselItemLayout;
220
+ itemWidth?: React.CSSProperties["width"];
221
+ /** @deprecated Use itemLayout or itemWidth instead. */
222
+ shellClassName?: string;
223
+ /** @deprecated Use itemLayout or itemWidth instead. */
224
+ shellStyle?: React.CSSProperties;
225
+ "data-index"?: number;
226
+ }
227
+ declare function CardStackCarouselItem({ ref, className, children, itemLayout, itemWidth, shellClassName, shellStyle, style, "data-index": index, ...props }: CardStackCarouselItemProps & {
228
+ ref?: React.Ref<HTMLDivElement>;
229
+ }): React.JSX.Element;
230
+ declare function CardStackCarouselPrevious({ ref, ...props }: React.ButtonHTMLAttributes<HTMLButtonElement> & {
231
+ ref?: React.Ref<HTMLButtonElement>;
232
+ }): React.JSX.Element;
233
+ declare function CardStackCarouselNext({ ref, ...props }: React.ButtonHTMLAttributes<HTMLButtonElement> & {
234
+ ref?: React.Ref<HTMLButtonElement>;
235
+ }): React.JSX.Element;
236
+
237
+ declare function Checkbox({ className, ...props }: Checkbox$1.Root.Props): React.JSX.Element;
238
+
239
+ type DialogSurface = 'paper' | 'cream' | 'danger';
240
+ interface DialogProps extends Omit<Dialog$1.Root.Props, 'open' | 'onOpenChange' | 'children'> {
241
+ open?: boolean;
242
+ onOpenChange?: (open: boolean) => void;
243
+ children?: React.ReactNode;
244
+ }
245
+ declare function Dialog({ children, open: controlledOpen, onOpenChange, ...props }: DialogProps): React.JSX.Element;
246
+ declare function DialogTrigger({ ref, ...props }: Dialog$1.Trigger.Props & {
247
+ ref?: React.Ref<HTMLButtonElement>;
248
+ }): React.JSX.Element;
249
+ declare const DialogTriggerButton: ({ ref, children, variant, size, theme, hasChevron, color, hoverColor, textColor, textHoverColor, ...props }: Omit<Record<string, unknown>, "children" | "render"> & {
250
+ color?: ButtonColorToken | undefined;
251
+ children?: React.ReactNode;
252
+ size?: "default" | "icon" | "lg" | "sm" | "icon-sm" | "icon-lg" | null | undefined;
253
+ variant?: "blue" | "green" | "orange" | "purple" | "yellow" | "destructive" | "ghost" | "outline" | "arrow" | null | undefined;
254
+ textColor?: ButtonColorToken | undefined;
255
+ hoverColor?: ButtonColorToken | undefined;
256
+ textHoverColor?: ButtonColorToken | undefined;
257
+ theme?: ButtonThemePreset | undefined;
258
+ hasChevron?: boolean | undefined;
259
+ } & {
260
+ ref?: React.Ref<HTMLButtonElement>;
261
+ }) => React.JSX.Element;
262
+ declare function DialogPortal({ ...props }: Dialog$1.Portal.Props): React.JSX.Element;
263
+ declare function DialogOverlay({ className, ...props }: Dialog$1.Backdrop.Props): React.JSX.Element;
264
+ interface DialogContentProps extends Dialog$1.Popup.Props {
265
+ showCloseButton?: boolean;
266
+ hasTape?: boolean;
267
+ tapePosition?: 'news' | 'event';
268
+ surface?: DialogSurface;
269
+ fullScreen?: boolean;
270
+ }
271
+ declare function DialogContent({ className, children, showCloseButton, hasTape, tapePosition, surface, fullScreen, ...props }: DialogContentProps): React.JSX.Element;
272
+ declare function DialogHeader({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
273
+ declare function DialogFooter({ className, showCloseButton, children, ...props }: React.ComponentProps<'div'> & {
274
+ showCloseButton?: boolean;
275
+ }): React.JSX.Element;
276
+ declare function DialogTitle({ className, style, ...props }: Dialog$1.Title.Props): React.JSX.Element;
277
+ declare function DialogDescription({ className, style, ...props }: Dialog$1.Description.Props): React.JSX.Element;
278
+
279
+ interface FeedCarouselItem extends Pick<StapleCardProps, 'image' | 'title' | 'subtitle' | 'action' | 'surface' | 'showTape' | 'hoverTilt'> {
280
+ id: React.Key;
281
+ cardClassName?: string;
282
+ }
283
+ interface FeedCarouselProps extends Omit<React.ComponentPropsWithoutRef<typeof Carousel>, 'children'> {
284
+ items: FeedCarouselItem[];
285
+ mediaAspectRatio?: React.CSSProperties['aspectRatio'] | false;
286
+ }
287
+ declare function FeedCarousel({ items, className, mediaAspectRatio, ...props }: FeedCarouselProps): React.JSX.Element;
288
+
289
+ interface FooterProps extends React.HTMLAttributes<HTMLElement> {
290
+ /** Wave fill color (default: var(--color-black)) */
291
+ waveColor?: string;
292
+ /** Wave height in px (default 120) */
293
+ waveHeight?: number;
294
+ }
295
+ declare function Footer({ waveColor, waveHeight, className, ...props }: FooterProps): React.JSX.Element;
296
+
297
+ interface GalleryControlsProps extends React.HTMLAttributes<HTMLDivElement> {
298
+ className?: string;
299
+ wrapButton?: (direction: "left" | "right", button: React.ReactNode) => React.ReactNode;
300
+ }
301
+ declare function GalleryControls({ ref, className, wrapButton, ...props }: GalleryControlsProps & {
302
+ ref?: React.Ref<HTMLDivElement>;
303
+ }): React.JSX.Element;
304
+ declare function GalleryBounce({ children, className }: {
305
+ children: React.ReactNode;
306
+ className?: string;
307
+ }): React.JSX.Element;
308
+
309
+ /**
310
+ * IconButton — circular icon button for Splatoon UI controls.
311
+ *
312
+ * Variants control color; size is explicit override (default varies by variant).
313
+ * Pass `size` to force a specific dimension regardless of variant defaults.
314
+ */
315
+
316
+ type IconButtonVariant = 'carousel' | 'primary' | 'ghost' | 'yellow' | 'outline' | 'accent';
317
+ type IconButtonSize = 'sm' | 'md' | 'lg';
318
+ type IconButtonAnimation = 'squish' | 'pulse' | 'none';
319
+ type IconButtonDirection = 'left' | 'right' | 'up' | 'down';
320
+ interface IconButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {
321
+ variant?: IconButtonVariant;
322
+ /** Explicit size override. When omitted, variant determines default size. */
323
+ size?: IconButtonSize;
324
+ animation?: IconButtonAnimation;
325
+ direction?: IconButtonDirection;
326
+ icon?: React.ReactNode;
327
+ }
328
+ declare const IconButton: React.ForwardRefExoticComponent<IconButtonProps & React.RefAttributes<HTMLButtonElement>>;
329
+
330
+ interface GalleryItem {
331
+ id: React.Key;
332
+ image: string;
333
+ className?: string;
334
+ }
335
+ interface MarqueeCarouselItem extends GalleryItem {
336
+ alt?: string;
337
+ }
338
+ interface MarqueeCarouselProps extends Omit<React.ComponentPropsWithoutRef<typeof Carousel>, "children"> {
339
+ items: MarqueeCarouselItem[];
340
+ pagination?: React.ReactNode;
341
+ renderItem?: (item: MarqueeCarouselItem, index: number) => React.ReactNode;
342
+ }
343
+ declare function MarqueeCarousel({ items, className, pagination, renderItem, ...props }: MarqueeCarouselProps): React.JSX.Element;
344
+ interface MarqueeGalleryItemProps extends React.HTMLAttributes<HTMLDivElement> {
345
+ item: MarqueeCarouselItem;
346
+ "data-index"?: number;
347
+ }
348
+ declare function MarqueeGalleryItem({ ref, className, item, "data-index": index, ...props }: MarqueeGalleryItemProps & {
349
+ ref?: React.Ref<HTMLDivElement>;
350
+ }): React.JSX.Element;
351
+
352
+ interface IconPaginatedCarouselItem extends GalleryItem {
353
+ title: string;
354
+ description?: string;
355
+ icon: string;
356
+ iconRotate?: number;
357
+ }
358
+ interface IconPaginatedCarouselProps extends React.ComponentPropsWithoutRef<typeof MarqueeCarousel> {
359
+ items: IconPaginatedCarouselItem[];
360
+ }
361
+ declare function IconPaginatedCarousel({ items, className, ...props }: IconPaginatedCarouselProps): React.JSX.Element;
362
+
363
+ /**
364
+ * Arrow-down icon for the back-to-top button.
365
+ * ViewBox: 0 0 16 9.45
366
+ */
367
+ declare function NavArrowDown({ className, ...props }: React.SVGProps<SVGSVGElement>): React.JSX.Element;
368
+
369
+ /**
370
+ * InView — scroll-triggered animation helper.
371
+ *
372
+ * Uses IntersectionObserver to add `.in-view` class to the wrapper,
373
+ * triggering CSS transitions on child `.anim` elements.
374
+ *
375
+ * CSS modules provide `.anim`, `.stagger`, and directional transition classes.
376
+ */
377
+
378
+ type InViewDirection = 'left' | 'right' | 'up' | 'up-min' | 'down' | 'pop';
379
+ type InViewDelay = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20;
380
+ interface InViewProps extends React.HTMLAttributes<HTMLDivElement> {
381
+ /** Animation direction */
382
+ direction?: InViewDirection;
383
+ /** Delay level (1-20, each = 0.1s) */
384
+ delay?: InViewDelay;
385
+ /** Root margin for IntersectionObserver (e.g. "-100px", "0%") */
386
+ rootMargin?: string;
387
+ /** Only trigger once */
388
+ once?: boolean;
389
+ /** Use drop animation (start-scale: 1.1) instead of direction */
390
+ drop?: boolean | 'slow';
391
+ /** Content to animate */
392
+ children?: React.ReactNode;
393
+ }
394
+ declare function InView({ direction, delay, rootMargin, once, drop, className, children, ...props }: InViewProps): React.JSX.Element;
395
+ interface InViewStaggerProps extends React.HTMLAttributes<HTMLDivElement> {
396
+ /** Stagger direction variant */
397
+ variant?: 'up-min' | 'pop';
398
+ /** Root margin for IntersectionObserver */
399
+ rootMargin?: string;
400
+ /** Only trigger once */
401
+ once?: boolean;
402
+ /** Override IntersectionObserver — when provided, controls active state directly */
403
+ active?: boolean;
404
+ children?: React.ReactNode;
405
+ }
406
+ declare function InViewStagger({ variant, rootMargin, once, active, className, children, ...props }: InViewStaggerProps): React.JSX.Element;
407
+
408
+ /**
409
+ * WebGL-based ink splash transition effect.
410
+ * Uses fragment shaders with simplex noise (Ashima Arts) for organic ink edges.
411
+ *
412
+ * Uses raw WebGL with WebGL2-first fallback — no external dependencies
413
+ * Implemented with raw WebGL.
414
+ */
415
+
416
+ interface InkSplashCanvasProps {
417
+ /** Animation state */
418
+ state: 'in' | 'out' | 'idle';
419
+ /** Duration for opening animation (ms) */
420
+ durationIn?: number;
421
+ /** Duration for closing animation (ms) */
422
+ durationOut?: number;
423
+ /** Ink color (hex) */
424
+ color?: string;
425
+ /** Seed for noise variation (increment each open) */
426
+ count?: number;
427
+ /** Start position in NDC coordinates [-0.5..0.5]. If not provided, defaults to [0,0] (center). */
428
+ startPosition?: [number, number];
429
+ /** Optional texture for the splat-transition shader. */
430
+ background?: string;
431
+ /**
432
+ * Pre-loaded image element for the background texture.
433
+ * When provided, skips async Image() loading — texture uploads synchronously on mount.
434
+ * Use this to avoid the first-play flash where the shader falls back to solid color.
435
+ */
436
+ preloadedBackground?: HTMLImageElement | null;
437
+ /** Called when animation completes */
438
+ onComplete?: () => void;
439
+ /** Additional CSS class */
440
+ className?: string;
441
+ }
442
+ declare function InkSplashCanvas({ state, durationIn, durationOut, color, count, startPosition, background, preloadedBackground, onComplete, className, }: InkSplashCanvasProps): React.JSX.Element;
443
+
444
+ /**
445
+ * Canvas-based ink trail effect following mouse/touch movement.
446
+ * Ink cursor trail:
447
+ * organic ink blobs spawn at the cursor position and fade/shrink
448
+ * naturally over time.
449
+ *
450
+ * Uses 2D Canvas with requestAnimationFrame — no external dependencies.
451
+ * Respects prefers-reduced-motion (reduces density, never fully disables).
452
+ */
453
+
454
+ interface InkTrailCanvasProps extends React.ComponentProps<'div'> {
455
+ /** Enable the trail effect */
456
+ enabled?: boolean;
457
+ /** Ink colors to cycle through */
458
+ colors?: string[];
459
+ /** Base size of each ink blob in px */
460
+ blobSize?: number;
461
+ /** Random size variance (0-1) */
462
+ sizeVariance?: number;
463
+ /** How often to spawn particles (ms). Lower = denser trail */
464
+ spawnInterval?: number;
465
+ /** Maximum particle lifetime in ms */
466
+ particleLifetime?: number;
467
+ /** Maximum distance from cursor to spawn particle (px) */
468
+ spawnRadius?: number;
469
+ /** Opacity of newly spawned particles (0-1) */
470
+ initialOpacity?: number;
471
+ /** Particle z-index layer */
472
+ zIndex?: number;
473
+ }
474
+ declare function InkTrailCanvas({ ref, enabled, colors, blobSize, sizeVariance, spawnInterval, particleLifetime, spawnRadius, initialOpacity, className, style, children, ...props }: InkTrailCanvasProps & {
475
+ ref?: React.Ref<HTMLDivElement>;
476
+ }): React.JSX.Element;
477
+
478
+ declare function Label({ className, ...props }: React.ComponentProps<"label">): React.JSX.Element;
479
+
480
+ type LoaderAnimation = 'glyph' | 'morph' | 'swim';
481
+ interface LoaderProps extends React.HTMLAttributes<HTMLSpanElement> {
482
+ /** Loader color variant. */
483
+ variant?: 'default' | 'blue' | 'red';
484
+ /** Animation source used by the loader. */
485
+ animation?: LoaderAnimation;
486
+ /** Size in CSS units (e.g. '1em', '2rem', '32px'). */
487
+ size?: string;
488
+ /** Accessible status label. */
489
+ label?: string;
490
+ }
491
+ /**
492
+ * Loader — image-backed animated squid loading glyph.
493
+ */
494
+ declare function Loader({ variant, animation, size, label, className, style, 'aria-label': ariaLabel, ...props }: LoaderProps): React.JSX.Element;
495
+
496
+ type NavMenuButtonProps = React.ComponentProps<'button'> & {
497
+ pressed?: boolean;
498
+ };
499
+ declare function NavMenuButton({ ref, className, pressed, ...props }: NavMenuButtonProps & {
500
+ ref?: React.Ref<HTMLButtonElement>;
501
+ }): React.JSX.Element;
502
+
503
+ interface NavigationProps {
504
+ /** Decorative element at the bottom-left of the header — receives isCollapsed for responsive positioning */
505
+ headerDecoration?: (isCollapsed: boolean) => React.ReactNode;
506
+ /** Navigation menu content (e.g. NavigationDialog) */
507
+ children: React.ReactNode;
508
+ /** Header className — defaults to 'bg-black text-white' */
509
+ headerClassName?: string;
510
+ /** Whether to show the skip-to-content link — defaults to true */
511
+ showSkipLink?: boolean;
512
+ /** Skip-to-content href — defaults to '#main-content' */
513
+ skipToContentHref?: string;
514
+ /** Whether to show the reduced motion toggle — defaults to true */
515
+ showReducedMotionToggle?: boolean;
516
+ }
517
+ declare function Navigation({ headerDecoration, children, headerClassName, showSkipLink, skipToContentHref, showReducedMotionToggle, }: NavigationProps): React.JSX.Element;
518
+
519
+ type ContentPhase = 'hidden' | 'entering' | 'visible' | 'exiting';
520
+ type CanvasState = 'in' | 'out' | 'idle';
521
+
522
+ type BackgroundTransitionProps = {
523
+ canvasState: CanvasState;
524
+ openCount: number;
525
+ onComplete: () => void;
526
+ };
527
+ type NavigationDialogProps = {
528
+ isReducedMotion?: boolean;
529
+ navLinks: NavLink[];
530
+ highlightColor: string;
531
+ cta?: React.ReactNode;
532
+ logo?: (contentPhase: ContentPhase) => React.ReactNode;
533
+ menuDecorations?: React.ReactNode;
534
+ overlayDecorations?: (contentPhase: ContentPhase) => React.ReactNode;
535
+ renderLink?: (link: NavLink, props: LinkRenderProps) => React.ReactNode;
536
+ backgroundTransition: (props: BackgroundTransitionProps) => React.ReactNode;
537
+ onNavigate?: (href: string) => void;
538
+ };
539
+ declare function NavigationDialog({ isReducedMotion, navLinks, highlightColor, cta, logo, menuDecorations, overlayDecorations, renderLink, backgroundTransition, onNavigate, }: NavigationDialogProps): React.JSX.Element;
540
+
541
+ /**
542
+ * PageTransition — Splatoon-style ink splash page transition.
543
+ *
544
+ * Wraps page content and provides ink-cover/reveal transitions
545
+ * using the existing InkSplashCanvas WebGL shader.
546
+ *
547
+ * Usage:
548
+ * const ref = useRef<PageTransitionHandle>(null)
549
+ * await ref.current?.transitionOut()
550
+ * // ... swap content ...
551
+ * ref.current?.transitionIn()
552
+ */
553
+
554
+ interface PageTransitionHandle {
555
+ transitionOut: (options?: {
556
+ color?: string;
557
+ duration?: number;
558
+ }) => Promise<void>;
559
+ transitionIn: (options?: {
560
+ color?: string;
561
+ duration?: number;
562
+ }) => void;
563
+ readonly state: Phase$1;
564
+ }
565
+ interface PageTransitionProps extends Omit<React.ComponentProps<'div'>, 'ref'> {
566
+ color?: string;
567
+ durationIn?: number;
568
+ durationOut?: number;
569
+ autoReveal?: boolean;
570
+ onCovered?: () => void;
571
+ onRevealed?: () => void;
572
+ }
573
+ type Phase$1 = 'idle' | 'covering' | 'covered' | 'revealing';
574
+ declare function PageTransition({ ref, color: inkColor, durationIn, durationOut, autoReveal, onCovered, onRevealed, className, children, ...props }: PageTransitionProps & {
575
+ ref?: React.Ref<PageTransitionHandle>;
576
+ }): React.JSX.Element;
577
+
578
+ declare function Popover({ ...props }: Popover$1.Root.Props): React.JSX.Element;
579
+ declare function PopoverTrigger({ ...props }: Popover$1.Trigger.Props): React.JSX.Element;
580
+ declare const PopoverTriggerButton: ({ ref, children, variant, size, theme, hasChevron, color, hoverColor, textColor, textHoverColor, ...props }: Omit<Record<string, unknown>, "children" | "render"> & {
581
+ color?: ButtonColorToken | undefined;
582
+ children?: React.ReactNode;
583
+ size?: "default" | "icon" | "lg" | "sm" | "icon-sm" | "icon-lg" | null | undefined;
584
+ variant?: "blue" | "green" | "orange" | "purple" | "yellow" | "destructive" | "ghost" | "outline" | "arrow" | null | undefined;
585
+ textColor?: ButtonColorToken | undefined;
586
+ hoverColor?: ButtonColorToken | undefined;
587
+ textHoverColor?: ButtonColorToken | undefined;
588
+ theme?: ButtonThemePreset | undefined;
589
+ hasChevron?: boolean | undefined;
590
+ } & {
591
+ ref?: React.Ref<HTMLButtonElement>;
592
+ }) => React.JSX.Element;
593
+ declare function PopoverPortal({ ...props }: Popover$1.Portal.Props): React.JSX.Element;
594
+ declare function PopoverPositioner({ className, align, alignOffset, side, sideOffset, ...props }: Popover$1.Positioner.Props): React.JSX.Element;
595
+ declare const PopoverContent: React.ForwardRefExoticComponent<Omit<_base_ui_react.PopoverPopupProps & {
596
+ align?: Popover$1.Positioner.Props["align"];
597
+ alignOffset?: Popover$1.Positioner.Props["alignOffset"];
598
+ side?: Popover$1.Positioner.Props["side"];
599
+ sideOffset?: Popover$1.Positioner.Props["sideOffset"];
600
+ }, "ref"> & React.RefAttributes<HTMLDivElement>>;
601
+ declare function PopoverHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
602
+ declare function PopoverTitle({ className, ...props }: Popover$1.Title.Props): React.JSX.Element;
603
+ declare function PopoverDescription({ className, ...props }: Popover$1.Description.Props): React.JSX.Element;
604
+
605
+ type ProgressVariant = "yellow" | "blue" | "green" | "purple" | "orange" | "red" | "black" | "white";
606
+ type ProgressTrackVariant = "dark" | "light" | "transparent";
607
+ type ProgressSize = "sm" | "default" | "lg";
608
+ interface ProgressProps extends Omit<React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root>, "children" | "max" | "value"> {
609
+ value?: number;
610
+ max?: number;
611
+ variant?: ProgressVariant;
612
+ trackVariant?: ProgressTrackVariant;
613
+ size?: ProgressSize;
614
+ skewed?: boolean;
615
+ splattered?: boolean;
616
+ }
617
+ declare function Progress({ ref, className, value, max, variant, trackVariant, size, skewed, splattered, ...props }: ProgressProps & {
618
+ ref?: React.Ref<React.ElementRef<typeof ProgressPrimitive.Root>>;
619
+ }): React.JSX.Element;
620
+
621
+ declare function RadioGroup({ className, ...props }: RadioGroup$1.Props): React.JSX.Element;
622
+ declare function RadioGroupItem({ className, ...props }: Radio.Root.Props): React.JSX.Element;
623
+
624
+ interface SectionNavItem {
625
+ /** Unique section identifier — must match the `id` of the target anchor element */
626
+ id: string;
627
+ /** Display number (e.g. "01", "02") */
628
+ number: string;
629
+ }
630
+ interface SectionSideNavProps extends React.ComponentProps<'nav'> {
631
+ /** Sections to display in the navigation */
632
+ sections: SectionNavItem[];
633
+ /** Ref to the content container wrapping all sections. Sidebar visibility
634
+ * is tied to this element's viewport intersection — exactly matching the
635
+ * Splatoon UI section navigation implementation. */
636
+ contentRef: React.RefObject<HTMLElement | null>;
637
+ /** Height, in CSS pixels, reserved for fixed chrome above the nav. */
638
+ topInset?: number;
639
+ /** Minimum distance, in CSS pixels, between the nav and usable viewport edges. */
640
+ viewportMargin?: number;
641
+ }
642
+ declare function SectionSideNav({ ref, sections, contentRef, className, style, topInset, viewportMargin, ...props }: SectionSideNavProps & {
643
+ ref?: React.Ref<HTMLElement>;
644
+ }): React.JSX.Element;
645
+
646
+ declare const Select: typeof Select$1.Root;
647
+ declare function SelectGroup({ className, ...props }: Select$1.Group.Props): React.JSX.Element;
648
+ declare function SelectValue({ className, ...props }: Select$1.Value.Props): React.JSX.Element;
649
+ declare function SelectTrigger({ className, size, children, ...props }: Select$1.Trigger.Props & {
650
+ size?: "sm" | "default";
651
+ }): React.JSX.Element;
652
+ declare function SelectContent({ className, children, side, sideOffset, align, alignOffset, alignItemWithTrigger, ...props }: Select$1.Popup.Props & Pick<Select$1.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset" | "alignItemWithTrigger">): React.JSX.Element;
653
+ declare function SelectLabel({ className, ...props }: Select$1.GroupLabel.Props): React.JSX.Element;
654
+ declare function SelectItem({ className, children, ...props }: Select$1.Item.Props): React.JSX.Element;
655
+ declare function SelectSeparator({ className, ...props }: Select$1.Separator.Props): React.JSX.Element;
656
+ declare function SelectScrollUpButton({ className, ...props }: React.ComponentProps<typeof Select$1.ScrollUpArrow>): React.JSX.Element;
657
+ declare function SelectScrollDownButton({ className, ...props }: React.ComponentProps<typeof Select$1.ScrollDownArrow>): React.JSX.Element;
658
+
659
+ declare function Sheet({ ...props }: Dialog$1.Root.Props): React.JSX.Element;
660
+ declare function SheetTrigger({ ...props }: Dialog$1.Trigger.Props): React.JSX.Element;
661
+ declare const SheetTriggerButton: ({ ref, children, variant, size, theme, hasChevron, color, hoverColor, textColor, textHoverColor, ...props }: Omit<Record<string, unknown>, "children" | "render"> & {
662
+ color?: ButtonColorToken | undefined;
663
+ children?: React.ReactNode;
664
+ size?: "default" | "icon" | "lg" | "sm" | "icon-sm" | "icon-lg" | null | undefined;
665
+ variant?: "blue" | "green" | "orange" | "purple" | "yellow" | "destructive" | "ghost" | "outline" | "arrow" | null | undefined;
666
+ textColor?: ButtonColorToken | undefined;
667
+ hoverColor?: ButtonColorToken | undefined;
668
+ textHoverColor?: ButtonColorToken | undefined;
669
+ theme?: ButtonThemePreset | undefined;
670
+ hasChevron?: boolean | undefined;
671
+ } & {
672
+ ref?: React.Ref<HTMLButtonElement>;
673
+ }) => React.JSX.Element;
674
+ declare function SheetPortal({ ...props }: Dialog$1.Portal.Props): React.JSX.Element;
675
+ declare function SheetOverlay({ className, ...props }: Dialog$1.Backdrop.Props): React.JSX.Element;
676
+ type SheetSide = "top" | "right" | "bottom" | "left";
677
+ declare const SheetPopup: React.ForwardRefExoticComponent<Omit<_base_ui_react.AlertDialogPopupProps & {
678
+ side?: SheetSide;
679
+ }, "ref"> & React.RefAttributes<HTMLDivElement>>;
680
+ declare const SheetContent: React.ForwardRefExoticComponent<Omit<_base_ui_react.AlertDialogPopupProps & {
681
+ side?: SheetSide;
682
+ showCloseButton?: boolean;
683
+ }, "ref"> & React.RefAttributes<HTMLDivElement>>;
684
+ declare function SheetHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
685
+ declare function SheetFooter({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
686
+ declare function SheetTitle({ className, ...props }: Dialog$1.Title.Props): React.JSX.Element;
687
+ declare function SheetDescription({ className, ...props }: Dialog$1.Description.Props): React.JSX.Element;
688
+
689
+ /**
690
+ * SplatoonTitle — image-capable heading for the Splatoon UI demo.
691
+ * Pass custom image assets when a bitmap title is needed; otherwise the
692
+ * component renders an accessible text fallback.
693
+ */
694
+
695
+ type SplatoonTitleVariant = 'logo' | 'section';
696
+ type SplatoonTitleSize = 'sm' | 'md' | 'lg' | 'xl' | '2xl';
697
+ interface SplatoonTitleProps extends React.ComponentProps<'div'> {
698
+ /** Title variant */
699
+ variant?: SplatoonTitleVariant;
700
+ /** Optional section key used for text fallback labels */
701
+ section?: string;
702
+ /** Title size */
703
+ size?: SplatoonTitleSize;
704
+ /** Animation on mount */
705
+ animate?: boolean;
706
+ /** Custom image URL (overrides section) */
707
+ image?: string;
708
+ /** Custom image URL for hover state */
709
+ imageHover?: string;
710
+ /** Text content (used as fallback or alt text) */
711
+ children?: React.ReactNode;
712
+ }
713
+ declare function SplatoonTitle({ ref, variant, section, size, animate, image, imageHover, children, className, ...props }: SplatoonTitleProps & {
714
+ ref?: React.Ref<HTMLDivElement>;
715
+ }): React.JSX.Element;
716
+
717
+ interface SplatProps extends Omit<React.SVGProps<SVGSVGElement>, 'id'> {
718
+ /** Bundled splat ID (1 to 12) */
719
+ id: number;
720
+ /** CSS color value or CSS variable */
721
+ color?: string;
722
+ }
723
+ /**
724
+ * Dynamic Splat Router Component.
725
+ * Routes dynamically to Splat1 through Splat12.
726
+ * Ideal for loops or dynamic particle rendering.
727
+ */
728
+ declare function Splat({ id, ...props }: SplatProps): React.JSX.Element | null;
729
+
730
+ interface InteractiveSplatterProps extends React.HTMLAttributes<HTMLDivElement> {
731
+ /** Maximum number of splats on screen before older ones fade out (default: 15) */
732
+ maxSplats?: number;
733
+ /** Minimum diameter of spawned splat in pixels (default: 90) */
734
+ minSize?: number;
735
+ /** Maximum diameter of spawned splat in pixels (default: 180) */
736
+ maxSize?: number;
737
+ /** List of custom ink colors to cycle/pick randomly (default: Splatoon brand colors) */
738
+ colors?: string[];
739
+ /** Allow clicking parent container to spawn splats (default: true) */
740
+ interactive?: boolean;
741
+ /** Specific splat IDs to pick from. Defaults to all bundled splat shapes. */
742
+ splatIds?: number[];
743
+ }
744
+ /**
745
+ * InteractiveSplatter Component.
746
+ * Attach this inside a positioned container. Clicking anywhere in the parent
747
+ * container will spawn dynamic ink splats in the background.
748
+ */
749
+ declare function InteractiveSplatter({ ref, className, maxSplats, minSize, maxSize, colors, interactive, splatIds, ...props }: InteractiveSplatterProps & {
750
+ ref?: React.Ref<HTMLDivElement>;
751
+ }): React.JSX.Element;
752
+
753
+ interface Splat1Props extends React.SVGProps<SVGSVGElement> {
754
+ /** CSS color value or CSS variable e.g. "var(--color-yellow)" */
755
+ color?: string;
756
+ }
757
+ /**
758
+ * Ink splat decorative shape #1.
759
+ * ViewBox: 0 0 478 624
760
+ */
761
+ declare function Splat1({ color, className, style, ...props }: Splat1Props): React.JSX.Element;
762
+
763
+ interface Splat2Props extends React.SVGProps<SVGSVGElement> {
764
+ /** CSS color value or CSS variable e.g. "var(--color-yellow)" */
765
+ color?: string;
766
+ }
767
+ /**
768
+ * Ink splat decorative shape #2.
769
+ * ViewBox: 0 0 628 539
770
+ */
771
+ declare function Splat2({ color, className, style, ...props }: Splat2Props): React.JSX.Element;
772
+
773
+ interface Splat3Props extends React.SVGProps<SVGSVGElement> {
774
+ /** CSS color value or CSS variable e.g. "var(--color-yellow)" */
775
+ color?: string;
776
+ }
777
+ /**
778
+ * Ink splat decorative shape #3.
779
+ * ViewBox: 0 0 510 497
780
+ */
781
+ declare function Splat3({ color, className, style, ...props }: Splat3Props): React.JSX.Element;
782
+
783
+ interface Splat4Props extends React.SVGProps<SVGSVGElement> {
784
+ /** CSS color value or CSS variable e.g. "var(--color-yellow)" */
785
+ color?: string;
786
+ }
787
+ /**
788
+ * Ink splat decorative shape #4.
789
+ * ViewBox: 0 0 271 286
790
+ */
791
+ declare function Splat4({ color, className, style, ...props }: Splat4Props): React.JSX.Element;
792
+
793
+ interface Splat5Props extends React.SVGProps<SVGSVGElement> {
794
+ /** CSS color value or CSS variable e.g. "var(--color-yellow)" */
795
+ color?: string;
796
+ }
797
+ /**
798
+ * Ink splat decorative shape #5.
799
+ * ViewBox: 0 0 318 267
800
+ */
801
+ declare function Splat5({ color, className, style, ...props }: Splat5Props): React.JSX.Element;
802
+
803
+ interface Splat6Props extends React.SVGProps<SVGSVGElement> {
804
+ /** CSS color value or CSS variable e.g. "var(--color-yellow)" */
805
+ color?: string;
806
+ }
807
+ /**
808
+ * Ink splat decorative shape #6.
809
+ * ViewBox: 0 0 244 265
810
+ */
811
+ declare function Splat6({ color, className, style, ...props }: Splat6Props): React.JSX.Element;
812
+
813
+ interface Splat7Props extends React.SVGProps<SVGSVGElement> {
814
+ /** CSS color value or CSS variable e.g. "var(--color-yellow)" */
815
+ color?: string;
816
+ }
817
+ /**
818
+ * Ink splat decorative shape #7.
819
+ * ViewBox: 0 0 630 630
820
+ */
821
+ declare function Splat7({ color, className, style, ...props }: Splat7Props): React.JSX.Element;
822
+
823
+ interface Splat8Props extends React.SVGProps<SVGSVGElement> {
824
+ /** CSS color value or CSS variable e.g. "var(--color-yellow)" */
825
+ color?: string;
826
+ }
827
+ /**
828
+ * Ink splat decorative shape #8.
829
+ * ViewBox: 0 0 630 630
830
+ */
831
+ declare function Splat8({ color, className, style, ...props }: Splat8Props): React.JSX.Element;
832
+
833
+ interface Splat9Props extends React.SVGProps<SVGSVGElement> {
834
+ /** CSS color value or CSS variable e.g. "var(--color-yellow)" */
835
+ color?: string;
836
+ }
837
+ /**
838
+ * Ink splat decorative shape #9.
839
+ * ViewBox: 0 0 630 630
840
+ */
841
+ declare function Splat9({ color, className, style, ...props }: Splat9Props): React.JSX.Element;
842
+
843
+ interface Splat10Props extends React.SVGProps<SVGSVGElement> {
844
+ /** CSS color value or CSS variable e.g. "var(--color-yellow)" */
845
+ color?: string;
846
+ }
847
+ /**
848
+ * Ink splat decorative shape #10.
849
+ * ViewBox: 0 0 320 320
850
+ */
851
+ declare function Splat10({ color, className, style, ...props }: Splat10Props): React.JSX.Element;
852
+
853
+ interface Splat11Props extends React.SVGProps<SVGSVGElement> {
854
+ /** CSS color value or CSS variable e.g. "var(--color-yellow)" */
855
+ color?: string;
856
+ }
857
+ /**
858
+ * Ink splat decorative shape #11.
859
+ * ViewBox: 0 0 320 320
860
+ */
861
+ declare function Splat11({ color, className, style, ...props }: Splat11Props): React.JSX.Element;
862
+
863
+ interface Splat12Props extends React.SVGProps<SVGSVGElement> {
864
+ /** CSS color value or CSS variable e.g. "var(--color-yellow)" */
865
+ color?: string;
866
+ }
867
+ /**
868
+ * Ink splat decorative shape #12.
869
+ * ViewBox: 0 0 320 320
870
+ */
871
+ declare function Splat12({ color, className, style, ...props }: Splat12Props): React.JSX.Element;
872
+
873
+ /**
874
+ * Ink splat decoration behind the active section nav item.
875
+ * Ported from official splatoon.nintendo.com `icon-gallery-nav-splat` symbol.
876
+ * ViewBox: 0 0 156 136
877
+ */
878
+ declare function NavSplat({ className, ...props }: React.SVGProps<SVGSVGElement>): React.JSX.Element;
879
+
880
+ /**
881
+ * SquidMaskTransition — Canvas 2D rotating squid mask transition.
882
+ *
883
+ * Canvas 2D rotating squid mask transition:
884
+ * a squid image rotates and scales on a canvas, then a black fill
885
+ * with source-out compositing covers/reveals the page.
886
+ *
887
+ * The local mask asset is read from the shared squid asset registry.
888
+ */
889
+
890
+ interface SquidMaskTransitionHandle {
891
+ transitionOut: (options?: {
892
+ duration?: number;
893
+ }) => Promise<void>;
894
+ transitionIn: (options?: {
895
+ duration?: number;
896
+ }) => void;
897
+ readonly state: Phase;
898
+ }
899
+ interface SquidMaskTransitionProps extends Omit<React.ComponentProps<'div'>, 'ref'> {
900
+ durationIn?: number;
901
+ durationOut?: number;
902
+ autoReveal?: boolean;
903
+ onCovered?: () => void;
904
+ onRevealed?: () => void;
905
+ }
906
+ type Phase = 'idle' | 'covering' | 'covered' | 'revealing';
907
+ declare function SquidMaskTransition({ ref, durationIn, durationOut, autoReveal, onCovered, onRevealed, className, children, ...props }: SquidMaskTransitionProps & {
908
+ ref?: React.Ref<SquidMaskTransitionHandle>;
909
+ }): React.JSX.Element;
910
+
911
+ declare function Tabs({ className, orientation, ...props }: Tabs$1.Root.Props): React.JSX.Element;
912
+ declare const tabsListVariants: (props?: ({
913
+ variant?: "line" | "default" | null | undefined;
914
+ color?: "blue" | "green" | "orange" | "red" | "yellow" | null | undefined;
915
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
916
+ declare function TabsList({ className, variant, color, ...props }: Tabs$1.List.Props & VariantProps<typeof tabsListVariants>): React.JSX.Element;
917
+ declare function TabsTrigger({ className, children, ...props }: Tabs$1.Tab.Props): React.JSX.Element;
918
+ declare function TabsContent({ className, ...props }: Tabs$1.Panel.Props): React.JSX.Element;
919
+
920
+ type ButtonProps = React.ComponentProps<typeof Button>;
921
+ type TriggerButtonOwnProps = Pick<ButtonProps, "children" | "variant" | "size" | "theme" | "hasChevron" | "color" | "hoverColor" | "textColor" | "textHoverColor">;
922
+ declare function assignRef<T>(ref: React.Ref<T> | undefined, value: T | null): void;
923
+ declare function mergeRefs<T>(...refs: Array<React.Ref<T> | undefined>): (value: T | null) => void;
924
+ /**
925
+ * Factory: creates a TriggerButton component that renders a Base UI trigger
926
+ * with a Button as its `render` output.
927
+ *
928
+ * Usage:
929
+ * const DialogTriggerButton = createTriggerButton(DialogPrimitive.Trigger, "dialog-trigger")
930
+ */
931
+ declare function createTriggerButton<TTrigger extends React.ComponentType<Record<string, unknown>>>(Trigger: TTrigger, dataSlot: string, options?: {
932
+ useRegisterRef?: () => React.Ref<HTMLButtonElement> | undefined;
933
+ }): ({ ref, children, variant, size, theme, hasChevron, color, hoverColor, textColor, textHoverColor, ...props }: (Omit<React.ComponentProps<TTrigger>, "children" | "render"> & TriggerButtonOwnProps) & {
934
+ ref?: React.Ref<HTMLButtonElement>;
935
+ }) => React.JSX.Element;
936
+
937
+ interface VideoDialogProps extends Omit<React.ComponentProps<typeof Dialog>, 'children'> {
938
+ children?: React.ReactNode;
939
+ }
940
+ declare function VideoDialog({ children, ...props }: VideoDialogProps): React.JSX.Element;
941
+ interface VideoDialogThumbnailProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
942
+ src: string;
943
+ alt?: string;
944
+ width?: number;
945
+ height?: number;
946
+ srcSet?: string;
947
+ sizes?: string;
948
+ blobColor?: string;
949
+ blobSize?: number;
950
+ imageClassName?: string;
951
+ loading?: React.ComponentProps<'img'>['loading'];
952
+ }
953
+ declare function VideoDialogThumbnail({ ref, src, alt, width, height, srcSet, sizes, className, blobColor, blobSize, imageClassName, loading, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, ...props }: VideoDialogThumbnailProps & {
954
+ ref?: React.Ref<HTMLButtonElement>;
955
+ }): React.JSX.Element;
956
+ type VideoDialogContentMode = 'iframe' | 'video';
957
+ interface VideoDialogVideoSource {
958
+ src: string;
959
+ type?: string;
960
+ }
961
+ interface VideoDialogTrack {
962
+ src: string;
963
+ kind?: React.ComponentProps<'track'>['kind'];
964
+ srcLang?: string;
965
+ label?: string;
966
+ default?: boolean;
967
+ }
968
+ interface VideoDialogContentProps {
969
+ src: string;
970
+ title?: string;
971
+ className?: string;
972
+ mode?: VideoDialogContentMode;
973
+ sources?: VideoDialogVideoSource[];
974
+ tracks?: VideoDialogTrack[];
975
+ poster?: string;
976
+ autoPlay?: boolean;
977
+ controls?: boolean;
978
+ loop?: boolean;
979
+ muted?: boolean;
980
+ playsInline?: boolean;
981
+ preload?: React.ComponentProps<'video'>['preload'];
982
+ }
983
+ declare function VideoDialogContent({ src, title, className, mode, sources, tracks, poster, autoPlay, controls, loop, muted, playsInline, preload, }: VideoDialogContentProps): React.JSX.Element;
984
+
985
+ interface WaveCanvasProps extends React.ComponentProps<'canvas'> {
986
+ /** Fill color of the wave */
987
+ color?: string;
988
+ /** Height of the canvas in px (default 200) */
989
+ height?: number;
990
+ /** Enable mouse interaction (respects prefers-reduced-motion) */
991
+ interactive?: boolean;
992
+ /** Number of wave points (default 20) */
993
+ numPoints?: number;
994
+ /** Physics elasticity (default 0.0001) */
995
+ elasticity?: number;
996
+ /** Physics friction (default 0.0025) */
997
+ friction?: number;
998
+ }
999
+ declare function WaveCanvas({ ref, color, height, interactive, numPoints, elasticity, friction, className, style, ...props }: WaveCanvasProps & {
1000
+ ref?: React.Ref<HTMLCanvasElement>;
1001
+ }): React.JSX.Element | null;
1002
+
1003
+ interface WeaponsGalleryCarouselItem extends GalleryItem {
1004
+ title: string;
1005
+ description?: string;
1006
+ }
1007
+ interface WeaponsGalleryCarouselProps extends Omit<React.ComponentPropsWithoutRef<typeof Carousel>, "children"> {
1008
+ items: WeaponsGalleryCarouselItem[];
1009
+ }
1010
+ declare function WeaponsGalleryCarousel({ items, className, ...props }: WeaponsGalleryCarouselProps): React.JSX.Element;
1011
+
1012
+ export { BANNER_DIVIDER_THREE_TAPES, Badge, BannerDivider, type BannerDividerProps, type BannerDividerRotation, type BannerDividerTape, type BannerDividerVariant, BlobPlayButton, Button, type ButtonProps$1 as ButtonProps, Card, CardAction, CardContent, CardContext, CardDescription, CardFooter, CardHeader, CardImage, type CardImageProps, type CardProps, CardStackCarouselContent, CardStackCarouselItem, type CardStackCarouselItemProps, CardStackCarouselNext, CardStackCarouselPrevious, CardStackCarouselScene, CardTitle, Carousel, CarouselBleedBoundary, CarouselContent, CarouselImagePagination, type CarouselImagePaginationItem, type CarouselImagePaginationProps, CarouselItem, type CarouselItemProps, CarouselPagination, type CarouselPaginationProps, type CarouselProps, CarouselViewport, Checkbox, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DialogTriggerButton, FadeCarouselItem, type FadeCarouselItemProps, FeedCarousel, type FeedCarouselItem, type FeedCarouselProps, Footer, type FooterProps, GalleryBounce, GalleryControls, type GalleryControlsProps, type GalleryItem, IconButton, type IconButtonAnimation, type IconButtonDirection, type IconButtonProps, type IconButtonSize, type IconButtonVariant, IconPaginatedCarousel, type IconPaginatedCarouselItem, type IconPaginatedCarouselProps, InView, type InViewDelay, type InViewDirection, type InViewProps, InViewStagger, type InViewStaggerProps, InkSplashCanvas, type InkSplashCanvasProps, InkTrailCanvas, type InkTrailCanvasProps, InteractiveSplatter, type InteractiveSplatterProps, Label, LinkRenderProps, Loader, type LoaderAnimation, type LoaderProps, MarqueeCarousel, type MarqueeCarouselItem, type MarqueeCarouselProps, MarqueeGalleryItem, NavArrowDown, NavLink, NavMenuButton, NavSplat, Navigation, NavigationDialog, PageTransition, type PageTransitionHandle, type PageTransitionProps, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverPortal, PopoverPositioner, PopoverTitle, PopoverTrigger, PopoverTriggerButton, Progress, type ProgressProps, RadioGroup, RadioGroupItem, RuggedTheme, type SectionNavItem, SectionSideNav, type SectionSideNavProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Sheet, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPopup, SheetPortal, SheetTitle, SheetTrigger, SheetTriggerButton, Splat, Splat1, Splat10, type Splat10Props, Splat11, type Splat11Props, Splat12, type Splat12Props, type Splat1Props, Splat2, type Splat2Props, Splat3, type Splat3Props, Splat4, type Splat4Props, Splat5, type Splat5Props, Splat6, type Splat6Props, Splat7, type Splat7Props, Splat8, type Splat8Props, Splat9, type Splat9Props, type SplatProps, SplatoonTitle, type SplatoonTitleProps, type SplatoonTitleSize, type SplatoonTitleVariant, SquidMaskTransition, type SquidMaskTransitionHandle, type SquidMaskTransitionProps, StapleCardProps, SwipeableGallery, Tabs, TabsContent, TabsList, TabsTrigger, VideoDialog, VideoDialogContent, VideoDialogThumbnail, type VideoDialogTrack, type VideoDialogVideoSource, WaveCanvas, type WaveCanvasProps, WeaponsGalleryCarousel, type WeaponsGalleryCarouselItem, type WeaponsGalleryCarouselProps, assignRef, badgeVariants, buttonVariants, createTriggerButton, mergeRefs, tabsListVariants, useCarousel, useCarouselItemState };