@johnmorrisdotca/dougu-sports 0.0.1 → 0.2.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 (338) hide show
  1. package/CHANGELOG.md +61 -1
  2. package/LICENSES/README.md +4 -3
  3. package/NOTICE.md +54 -14
  4. package/README.md +251 -80
  5. package/dist/emblems/award/badge.d.ts +2 -0
  6. package/dist/emblems/award/badge.js +14 -0
  7. package/dist/emblems/award/crown.d.ts +2 -0
  8. package/dist/emblems/award/crown.js +15 -0
  9. package/dist/emblems/award/medal.d.ts +1 -1
  10. package/dist/emblems/award/medal.js +10 -15
  11. package/dist/emblems/award/shield.d.ts +2 -0
  12. package/dist/emblems/award/shield.js +11 -0
  13. package/dist/emblems/award/star.d.ts +2 -0
  14. package/dist/emblems/award/star.js +11 -0
  15. package/dist/emblems/ball/ball.afl.d.ts +1 -0
  16. package/dist/emblems/ball/ball.afl.js +24 -0
  17. package/dist/emblems/ball/ball.baseball.d.ts +1 -0
  18. package/dist/emblems/ball/ball.baseball.js +14 -0
  19. package/dist/emblems/ball/ball.basketball.d.ts +7 -0
  20. package/dist/emblems/ball/ball.basketball.js +32 -0
  21. package/dist/emblems/ball/ball.basketball3x3.d.ts +1 -0
  22. package/dist/emblems/ball/ball.basketball3x3.js +10 -0
  23. package/dist/emblems/ball/ball.basketball6.d.ts +1 -0
  24. package/dist/emblems/ball/ball.basketball6.js +10 -0
  25. package/dist/emblems/ball/ball.core.d.ts +111 -0
  26. package/dist/emblems/ball/ball.core.js +79 -0
  27. package/dist/emblems/ball/ball.cricket.d.ts +5 -0
  28. package/dist/emblems/ball/ball.cricket.js +31 -0
  29. package/dist/emblems/ball/ball.curlingstone.d.ts +3 -0
  30. package/dist/emblems/ball/ball.curlingstone.js +46 -0
  31. package/dist/emblems/ball/ball.discus.d.ts +1 -0
  32. package/dist/emblems/ball/ball.discus.js +24 -0
  33. package/dist/emblems/ball/ball.engine.d.ts +114 -0
  34. package/dist/emblems/ball/ball.engine.js +342 -0
  35. package/dist/emblems/ball/ball.family.dotted.d.ts +27 -0
  36. package/dist/emblems/ball/ball.family.dotted.js +20 -0
  37. package/dist/emblems/ball/ball.family.panelled.d.ts +7 -0
  38. package/dist/emblems/ball/ball.family.panelled.js +60 -0
  39. package/dist/emblems/ball/ball.family.prolate.d.ts +16 -0
  40. package/dist/emblems/ball/ball.family.prolate.js +29 -0
  41. package/dist/emblems/ball/ball.family.seamed.d.ts +31 -0
  42. package/dist/emblems/ball/ball.family.seamed.js +26 -0
  43. package/dist/emblems/ball/ball.fieldhockey.d.ts +1 -0
  44. package/dist/emblems/ball/ball.fieldhockey.js +15 -0
  45. package/dist/emblems/ball/ball.football.d.ts +3 -0
  46. package/dist/emblems/ball/ball.football.js +51 -0
  47. package/dist/emblems/ball/ball.gaelic.d.ts +2 -0
  48. package/dist/emblems/ball/ball.gaelic.js +30 -0
  49. package/dist/emblems/ball/ball.golf.d.ts +1 -0
  50. package/dist/emblems/ball/ball.golf.js +15 -0
  51. package/dist/emblems/ball/ball.hammer.d.ts +1 -0
  52. package/dist/emblems/ball/ball.hammer.js +31 -0
  53. package/dist/emblems/ball/ball.handball.d.ts +1 -0
  54. package/dist/emblems/ball/ball.handball.js +25 -0
  55. package/dist/emblems/ball/ball.index.d.ts +48 -0
  56. package/dist/emblems/ball/ball.index.js +103 -0
  57. package/dist/emblems/ball/ball.math.d.ts +38 -0
  58. package/dist/emblems/ball/ball.math.js +105 -0
  59. package/dist/emblems/ball/ball.object.d.ts +38 -0
  60. package/dist/emblems/ball/ball.object.js +20 -0
  61. package/dist/emblems/ball/ball.padel.d.ts +1 -0
  62. package/dist/emblems/ball/ball.padel.js +13 -0
  63. package/dist/emblems/ball/ball.pickleball.d.ts +2 -0
  64. package/dist/emblems/ball/ball.pickleball.js +26 -0
  65. package/dist/emblems/ball/ball.polyhedra.d.ts +15 -0
  66. package/dist/emblems/ball/ball.polyhedra.js +63 -0
  67. package/dist/emblems/ball/ball.puck.d.ts +3 -0
  68. package/dist/emblems/ball/ball.puck.js +22 -0
  69. package/dist/emblems/ball/ball.roundnet.d.ts +1 -0
  70. package/dist/emblems/ball/ball.roundnet.js +15 -0
  71. package/dist/emblems/ball/ball.rugby.d.ts +1 -0
  72. package/dist/emblems/ball/ball.rugby.js +35 -0
  73. package/dist/emblems/ball/ball.sepaktakraw.d.ts +1 -0
  74. package/dist/emblems/ball/ball.sepaktakraw.js +48 -0
  75. package/dist/emblems/ball/ball.shuttlecock.d.ts +6 -0
  76. package/dist/emblems/ball/ball.shuttlecock.js +93 -0
  77. package/dist/emblems/ball/ball.sliotar.d.ts +1 -0
  78. package/dist/emblems/ball/ball.sliotar.js +14 -0
  79. package/dist/emblems/ball/ball.smooth.d.ts +4 -0
  80. package/dist/emblems/ball/ball.smooth.js +51 -0
  81. package/dist/emblems/ball/ball.soccer.d.ts +2 -0
  82. package/dist/emblems/ball/ball.soccer.js +54 -0
  83. package/dist/emblems/ball/ball.softball.d.ts +1 -0
  84. package/dist/emblems/ball/ball.softball.js +14 -0
  85. package/dist/emblems/ball/ball.squash.d.ts +7 -0
  86. package/dist/emblems/ball/ball.squash.js +27 -0
  87. package/dist/emblems/ball/ball.stack.d.ts +48 -0
  88. package/dist/emblems/ball/ball.stack.js +127 -0
  89. package/dist/emblems/ball/ball.stitch.d.ts +10 -0
  90. package/dist/emblems/ball/ball.stitch.js +59 -0
  91. package/dist/emblems/ball/ball.tennis.d.ts +1 -0
  92. package/dist/emblems/ball/ball.tennis.js +13 -0
  93. package/dist/emblems/ball/ball.teqball.d.ts +1 -0
  94. package/dist/emblems/ball/ball.teqball.js +27 -0
  95. package/dist/emblems/ball/ball.volleyball.d.ts +3 -0
  96. package/dist/emblems/ball/ball.volleyball.js +56 -0
  97. package/dist/emblems/ball/ball.waterpolo.d.ts +1 -0
  98. package/dist/emblems/ball/ball.waterpolo.js +31 -0
  99. package/dist/emblems/crest/diamond.d.ts +2 -0
  100. package/dist/emblems/crest/diamond.js +18 -0
  101. package/dist/emblems/crest/pennant.d.ts +2 -0
  102. package/dist/emblems/crest/pennant.js +18 -0
  103. package/dist/emblems/crest/roundel.d.ts +2 -0
  104. package/dist/emblems/crest/roundel.js +18 -0
  105. package/dist/emblems/crest/shield.d.ts +2 -0
  106. package/dist/emblems/crest/shield.js +17 -0
  107. package/dist/emblems/emblem.api.d.ts +77 -9
  108. package/dist/emblems/emblem.api.js +56 -10
  109. package/dist/emblems/emblem.compose.d.ts +31 -0
  110. package/dist/emblems/emblem.compose.js +91 -0
  111. package/dist/emblems/emblem.core.d.ts +89 -7
  112. package/dist/emblems/emblem.core.js +85 -11
  113. package/dist/emblems/emblem.descriptions.d.ts +7 -0
  114. package/dist/emblems/emblem.descriptions.js +60 -0
  115. package/dist/emblems/emblem.display.d.ts +75 -0
  116. package/dist/emblems/emblem.display.js +214 -0
  117. package/dist/emblems/emblem.engrave.d.ts +50 -0
  118. package/dist/emblems/emblem.engrave.js +145 -0
  119. package/dist/emblems/emblem.equipment.d.ts +24 -0
  120. package/dist/emblems/emblem.equipment.js +57 -0
  121. package/dist/emblems/emblem.flip.d.ts +10 -0
  122. package/dist/emblems/emblem.flip.js +45 -0
  123. package/dist/emblems/emblem.ids.d.ts +44 -30
  124. package/dist/emblems/emblem.ids.js +51 -17
  125. package/dist/emblems/emblem.lathe.d.ts +62 -0
  126. package/dist/emblems/emblem.lathe.js +426 -0
  127. package/dist/emblems/emblem.medal.d.ts +6 -0
  128. package/dist/emblems/emblem.medal.js +38 -0
  129. package/dist/emblems/emblem.pennant.d.ts +3 -0
  130. package/dist/emblems/emblem.pennant.js +79 -0
  131. package/dist/emblems/emblem.registry.js +162 -4
  132. package/dist/emblems/emblem.shapes.d.ts +48 -12
  133. package/dist/emblems/emblem.shapes.js +138 -31
  134. package/dist/emblems/emblem.sprite.d.ts +38 -0
  135. package/dist/emblems/emblem.sprite.js +65 -0
  136. package/dist/emblems/emblem.uri.d.ts +22 -0
  137. package/dist/emblems/emblem.uri.js +29 -0
  138. package/dist/emblems/gear/gear.badmintonracket.d.ts +1 -0
  139. package/dist/emblems/gear/gear.badmintonracket.js +19 -0
  140. package/dist/emblems/gear/gear.baseballglove.d.ts +1 -0
  141. package/dist/emblems/gear/gear.baseballglove.js +21 -0
  142. package/dist/emblems/gear/gear.budo.d.ts +17 -0
  143. package/dist/emblems/gear/gear.budo.js +60 -0
  144. package/dist/emblems/gear/gear.core.d.ts +64 -0
  145. package/dist/emblems/gear/gear.core.js +127 -0
  146. package/dist/emblems/gear/gear.cricketbat.d.ts +1 -0
  147. package/dist/emblems/gear/gear.cricketbat.js +17 -0
  148. package/dist/emblems/gear/gear.field.d.ts +6 -0
  149. package/dist/emblems/gear/gear.field.js +81 -0
  150. package/dist/emblems/gear/gear.fieldhockeystick.d.ts +1 -0
  151. package/dist/emblems/gear/gear.fieldhockeystick.js +16 -0
  152. package/dist/emblems/gear/gear.footballhelmet.d.ts +1 -0
  153. package/dist/emblems/gear/gear.footballhelmet.js +16 -0
  154. package/dist/emblems/gear/gear.goaliemask.d.ts +1 -0
  155. package/dist/emblems/gear/gear.goaliemask.js +23 -0
  156. package/dist/emblems/gear/gear.goalnet.d.ts +1 -0
  157. package/dist/emblems/gear/gear.goalnet.js +25 -0
  158. package/dist/emblems/gear/gear.hockeystick.d.ts +1 -0
  159. package/dist/emblems/gear/gear.hockeystick.js +15 -0
  160. package/dist/emblems/gear/gear.index.d.ts +22 -0
  161. package/dist/emblems/gear/gear.index.js +49 -0
  162. package/dist/emblems/gear/gear.kendo.d.ts +2 -0
  163. package/dist/emblems/gear/gear.kendo.js +41 -0
  164. package/dist/emblems/gear/gear.kyudo.d.ts +2 -0
  165. package/dist/emblems/gear/gear.kyudo.js +31 -0
  166. package/dist/emblems/gear/gear.lacrossestick.d.ts +1 -0
  167. package/dist/emblems/gear/gear.lacrossestick.js +26 -0
  168. package/dist/emblems/gear/gear.rackets.d.ts +4 -0
  169. package/dist/emblems/gear/gear.rackets.js +60 -0
  170. package/dist/emblems/gear/gear.skates.d.ts +3 -0
  171. package/dist/emblems/gear/gear.skates.js +39 -0
  172. package/dist/emblems/gear/gear.sticks.d.ts +3 -0
  173. package/dist/emblems/gear/gear.sticks.js +34 -0
  174. package/dist/emblems/gear/gear.sumo.d.ts +2 -0
  175. package/dist/emblems/gear/gear.sumo.js +43 -0
  176. package/dist/emblems/gear/gear.tabletennispaddle.d.ts +1 -0
  177. package/dist/emblems/gear/gear.tabletennispaddle.js +16 -0
  178. package/dist/emblems/gear/gear.tennisracket.d.ts +1 -0
  179. package/dist/emblems/gear/gear.tennisracket.js +17 -0
  180. package/dist/emblems/gear/gear.track.d.ts +4 -0
  181. package/dist/emblems/gear/gear.track.js +45 -0
  182. package/dist/emblems/gear/gear.water.d.ts +2 -0
  183. package/dist/emblems/gear/gear.water.js +25 -0
  184. package/dist/emblems/medal/bronze.d.ts +2 -0
  185. package/dist/emblems/medal/bronze.js +4 -0
  186. package/dist/emblems/medal/gold.d.ts +2 -0
  187. package/dist/emblems/medal/gold.js +4 -0
  188. package/dist/emblems/medal/place-1.d.ts +2 -0
  189. package/dist/emblems/medal/place-1.js +4 -0
  190. package/dist/emblems/medal/place-2.d.ts +2 -0
  191. package/dist/emblems/medal/place-2.js +4 -0
  192. package/dist/emblems/medal/place-3.d.ts +2 -0
  193. package/dist/emblems/medal/place-3.js +4 -0
  194. package/dist/emblems/medal/silver.d.ts +2 -0
  195. package/dist/emblems/medal/silver.js +4 -0
  196. package/dist/emblems/pennant/championship.d.ts +2 -0
  197. package/dist/emblems/pennant/championship.js +4 -0
  198. package/dist/emblems/sport/afl.d.ts +2 -0
  199. package/dist/emblems/sport/afl.js +12 -0
  200. package/dist/emblems/sport/artisticswimming.d.ts +2 -0
  201. package/dist/emblems/sport/artisticswimming.js +16 -0
  202. package/dist/emblems/sport/athletics.d.ts +2 -0
  203. package/dist/emblems/sport/athletics.js +12 -0
  204. package/dist/emblems/sport/badminton.d.ts +2 -0
  205. package/dist/emblems/sport/badminton.js +13 -0
  206. package/dist/emblems/sport/cfl.d.ts +2 -0
  207. package/dist/emblems/sport/cfl.js +5 -0
  208. package/dist/emblems/sport/cricket.d.ts +2 -0
  209. package/dist/emblems/sport/cricket.js +14 -0
  210. package/dist/emblems/sport/curling.d.ts +2 -0
  211. package/dist/emblems/sport/curling.js +14 -0
  212. package/dist/emblems/sport/diving.d.ts +2 -0
  213. package/dist/emblems/sport/diving.js +18 -0
  214. package/dist/emblems/sport/fieldhockey.d.ts +2 -0
  215. package/dist/emblems/sport/fieldhockey.js +11 -0
  216. package/dist/emblems/sport/gaelic.d.ts +2 -0
  217. package/dist/emblems/sport/gaelic.js +11 -0
  218. package/dist/emblems/sport/handball.d.ts +2 -0
  219. package/dist/emblems/sport/handball.js +15 -0
  220. package/dist/emblems/sport/ifaf.d.ts +2 -0
  221. package/dist/emblems/sport/ifaf.js +5 -0
  222. package/dist/emblems/sport/judo.d.ts +2 -0
  223. package/dist/emblems/sport/judo.js +13 -0
  224. package/dist/emblems/sport/karate.d.ts +2 -0
  225. package/dist/emblems/sport/karate.js +13 -0
  226. package/dist/emblems/sport/kendo.d.ts +2 -0
  227. package/dist/emblems/sport/kendo.js +14 -0
  228. package/dist/emblems/sport/kyudo.d.ts +2 -0
  229. package/dist/emblems/sport/kyudo.js +15 -0
  230. package/dist/emblems/sport/lacrosse.d.ts +2 -0
  231. package/dist/emblems/sport/lacrosse.js +13 -0
  232. package/dist/emblems/sport/mlb.d.ts +2 -0
  233. package/dist/emblems/sport/mlb.js +28 -0
  234. package/dist/emblems/sport/nba.d.ts +2 -0
  235. package/dist/emblems/sport/nba.js +12 -0
  236. package/dist/emblems/sport/netball.d.ts +2 -0
  237. package/dist/emblems/sport/netball.js +14 -0
  238. package/dist/emblems/sport/nfl.d.ts +3 -0
  239. package/dist/emblems/sport/nfl.js +15 -0
  240. package/dist/emblems/sport/nhl.d.ts +2 -0
  241. package/dist/emblems/sport/nhl.js +13 -0
  242. package/dist/emblems/sport/padel.d.ts +2 -0
  243. package/dist/emblems/sport/padel.js +14 -0
  244. package/dist/emblems/sport/pickleball.d.ts +2 -0
  245. package/dist/emblems/sport/pickleball.js +13 -0
  246. package/dist/emblems/sport/racquetball.d.ts +2 -0
  247. package/dist/emblems/sport/racquetball.js +13 -0
  248. package/dist/emblems/sport/roundnet.d.ts +2 -0
  249. package/dist/emblems/sport/roundnet.js +15 -0
  250. package/dist/emblems/sport/rugby.d.ts +2 -0
  251. package/dist/emblems/sport/rugby.js +12 -0
  252. package/dist/emblems/sport/sepaktakraw.d.ts +2 -0
  253. package/dist/emblems/sport/sepaktakraw.js +11 -0
  254. package/dist/emblems/sport/skating.d.ts +2 -0
  255. package/dist/emblems/sport/skating.js +14 -0
  256. package/dist/emblems/sport/soccer.d.ts +2 -0
  257. package/dist/emblems/sport/soccer.js +31 -0
  258. package/dist/emblems/sport/squash.d.ts +2 -0
  259. package/dist/emblems/sport/squash.js +15 -0
  260. package/dist/emblems/sport/sumo.d.ts +2 -0
  261. package/dist/emblems/sport/sumo.js +15 -0
  262. package/dist/emblems/sport/swimming.d.ts +2 -0
  263. package/dist/emblems/sport/swimming.js +15 -0
  264. package/dist/emblems/sport/tabletennis.d.ts +2 -0
  265. package/dist/emblems/sport/tabletennis.js +12 -0
  266. package/dist/emblems/sport/tennis.d.ts +2 -0
  267. package/dist/emblems/sport/tennis.js +15 -0
  268. package/dist/emblems/sport/teqball.d.ts +2 -0
  269. package/dist/emblems/sport/teqball.js +15 -0
  270. package/dist/emblems/sport/volleyball.d.ts +2 -0
  271. package/dist/emblems/sport/volleyball.js +25 -0
  272. package/dist/emblems/sport/waterpolo.d.ts +2 -0
  273. package/dist/emblems/sport/waterpolo.js +15 -0
  274. package/dist/emblems/trophy/banner.d.ts +2 -0
  275. package/dist/emblems/trophy/banner.js +20 -0
  276. package/dist/emblems/trophy/baseball.d.ts +2 -0
  277. package/dist/emblems/trophy/baseball.js +15 -0
  278. package/dist/emblems/trophy/basketball.d.ts +2 -0
  279. package/dist/emblems/trophy/basketball.js +17 -0
  280. package/dist/emblems/trophy/belt.d.ts +2 -0
  281. package/dist/emblems/trophy/belt.js +17 -0
  282. package/dist/emblems/trophy/bowl.d.ts +2 -0
  283. package/dist/emblems/trophy/bowl.js +8 -0
  284. package/dist/emblems/trophy/canadian-bowl.d.ts +2 -0
  285. package/dist/emblems/trophy/canadian-bowl.js +23 -0
  286. package/dist/emblems/trophy/championship-banner.d.ts +2 -0
  287. package/dist/emblems/trophy/championship-banner.js +67 -0
  288. package/dist/emblems/trophy/cricket-urn.d.ts +2 -0
  289. package/dist/emblems/trophy/cricket-urn.js +23 -0
  290. package/dist/emblems/trophy/cup.d.ts +2 -0
  291. package/dist/emblems/trophy/cup.js +16 -0
  292. package/dist/emblems/trophy/football.d.ts +2 -0
  293. package/dist/emblems/trophy/football.js +11 -0
  294. package/dist/emblems/trophy/globe.d.ts +2 -0
  295. package/dist/emblems/trophy/globe.js +9 -0
  296. package/dist/emblems/trophy/hockey-cup.d.ts +2 -0
  297. package/dist/emblems/trophy/hockey-cup.js +22 -0
  298. package/dist/emblems/trophy/laurel.d.ts +2 -0
  299. package/dist/emblems/trophy/laurel.js +40 -0
  300. package/dist/emblems/trophy/lidded-cup.d.ts +2 -0
  301. package/dist/emblems/trophy/lidded-cup.js +21 -0
  302. package/dist/emblems/trophy/plaque.d.ts +2 -0
  303. package/dist/emblems/trophy/plaque.js +17 -0
  304. package/dist/emblems/trophy/ring.d.ts +2 -0
  305. package/dist/emblems/trophy/ring.js +30 -0
  306. package/dist/emblems/trophy/rosette.d.ts +2 -0
  307. package/dist/emblems/trophy/rosette.js +27 -0
  308. package/dist/emblems/trophy/rugby-cup.d.ts +2 -0
  309. package/dist/emblems/trophy/rugby-cup.js +23 -0
  310. package/dist/emblems/trophy/salver.d.ts +2 -0
  311. package/dist/emblems/trophy/salver.js +9 -0
  312. package/dist/emblems/trophy/soccer-ball.d.ts +2 -0
  313. package/dist/emblems/trophy/soccer-ball.js +9 -0
  314. package/dist/emblems/trophy/soccer-globe.d.ts +2 -0
  315. package/dist/emblems/trophy/soccer-globe.js +18 -0
  316. package/dist/emblems/trophy/sumo-cup.d.ts +2 -0
  317. package/dist/emblems/trophy/sumo-cup.js +28 -0
  318. package/dist/emblems/trophy/tennis-cup.d.ts +2 -0
  319. package/dist/emblems/trophy/tennis-cup.js +24 -0
  320. package/dist/emblems/trophy/tennis-plate.d.ts +2 -0
  321. package/dist/emblems/trophy/tennis-plate.js +16 -0
  322. package/dist/emblems-entry.d.ts +20 -7
  323. package/dist/emblems-entry.js +8 -2
  324. package/dist/index.d.ts +131 -1
  325. package/dist/index.js +131 -3
  326. package/dist/turn-control.d.ts +101 -0
  327. package/dist/turn-control.js +363 -0
  328. package/dist/turn-entry.d.ts +2 -0
  329. package/dist/turn-entry.js +1 -0
  330. package/dist/version.d.ts +1 -1
  331. package/dist/version.js +1 -1
  332. package/package.json +33 -7
  333. package/LICENSES/Apache-2.0.txt +0 -55
  334. package/LICENSES/CC-BY-3.0.md +0 -15
  335. package/dist/emblems/ball/soccer.d.ts +0 -2
  336. package/dist/emblems/ball/soccer.js +0 -9
  337. package/dist/emblems/emblem.ball.d.ts +0 -28
  338. package/dist/emblems/emblem.ball.js +0 -70
@@ -0,0 +1,41 @@
1
+ // Kendo gear, drawn for this package: the bamboo sword with its leather fittings, and the helmet with its steel grille, cloth flaps and throat guard.
2
+ import { capsule, drawn, ellipse, seg } from "./gear.core.js";
3
+ const T = "rotate(40 32 32) translate(32 33) scale(1.25) translate(-32 -33)";
4
+ export const GEAR_SHINAI = /* @__PURE__ */ drawn("gear:shinai", "Bamboo sword", "竹刀", {
5
+ main: "#e2c47c",
6
+ accent: "#27345f",
7
+ parts: [
8
+ { d: capsule(32, 6, 32, 46, 4.6), fill: "$main", t: T, cyl: 1, shade: 0 },
9
+ { d: "M30.6 8V45M33.4 8V45", fill: "none", stroke: "#b58e3c", w: 0.6, t: T, op: 0.8, line: "none" },
10
+ { d: "M32 3.6a2.6 3 0 0 1 2.6 3v3.2h-5.2V6.6a2.6 3 0 0 1 2.6-3z", fill: "#6b3a1f", t: T, cyl: 0.8, shade: 0 },
11
+ { d: "M29.2 20.4h5.6v3.6h-5.6z", fill: "#6b3a1f", t: T, cyl: 0.8, shade: 0 },
12
+ { d: "M34.8 9.4V45", fill: "none", stroke: "#efe3c0", w: 0.8, t: T, line: "none" },
13
+ { d: ellipse(32, 47.6, 7.4, 2.4), fill: "$accent", t: T, cyl: 0.6, shade: 0.4 },
14
+ { d: capsule(32, 48, 32, 61, 5), fill: "$accent", t: T, cyl: 0.9, shade: 0 },
15
+ { d: seg(29.8, 51, 34.2, 51) + seg(29.8, 54, 34.2, 54) + seg(29.8, 57, 34.2, 57), fill: "none", stroke: "#8fa0d0", w: 0.7, t: T, op: 0.8, line: "none" },
16
+ ],
17
+ });
18
+ /** The bars of the grille across the face opening. */
19
+ const BARS = (() => {
20
+ let d = "";
21
+ for (let y = 24; y <= 46; y += 3.8) {
22
+ const h = 15.4 * Math.sqrt(Math.max(0.01, 1 - ((y - 34) / 16) ** 2));
23
+ d += `M${32 - h} ${y}H${32 + h}`;
24
+ }
25
+ return d;
26
+ })();
27
+ export const GEAR_KENDO_MEN = /* @__PURE__ */ drawn("gear:kendo-men", "Kendo helmet", "剣道の面", {
28
+ main: "#34478a",
29
+ accent: "#c8cfd8",
30
+ parts: [
31
+ { d: "M14 48L17 60Q32 66 47 60L50 48Z", fill: "$main", cyl: 0.5, shade: 0.4 },
32
+ { d: "M18 53.4h28M18.6 57h26.8", fill: "none", stroke: "#8fa0d0", w: 0.8, op: 0.8, line: "none" },
33
+ { d: "M32 3C48 3 59 12 59 26V37Q59 46 52 50L47 50L47 24H17V50L12 50Q5 46 5 37V26C5 12 16 3 32 3Z", fill: "$main", cyl: 0.7, shade: 0.4 },
34
+ { d: "M9 28H17M9 33H17M9 38H17M9 43H15M47 28H55M47 33H55M47 38H55M49 43H55", fill: "none", stroke: "#8fa0d0", w: 0.8, op: 0.8, line: "none" },
35
+ { d: "M13 11Q32 5 51 11M10.6 16.4Q32 10.6 53.4 16.4M9 21.6Q32 15.8 55 21.6", fill: "none", stroke: "#8fa0d0", w: 0.8, op: 0.8, line: "none" },
36
+ { d: ellipse(32, 35, 17.4, 18.6), fill: "#1f2430", stroke: "$accent", w: 2.4, shade: 0, line: "stroke" },
37
+ { d: BARS, fill: "none", stroke: "$accent", w: 1.5 },
38
+ { d: seg(32, 18.4, 32, 51.6), fill: "none", stroke: "$accent", w: 1.2, line: "none" },
39
+ { d: "M14.6 12Q22 6.6 32 6", fill: "none", stroke: "#fff", w: 1.6, op: 0.4, line: "none", fx: true },
40
+ ],
41
+ });
@@ -0,0 +1,2 @@
1
+ export declare const GEAR_YUMI: import("./gear.index.ts").Piece<import("./gear.core.ts").GearSpec>;
2
+ export declare const GEAR_YA: import("./gear.index.ts").Piece<import("./gear.core.ts").GearSpec>;
@@ -0,0 +1,31 @@
1
+ // Kyudo gear, drawn for this package: the long bow, held a third of the way up from its lower tip, with its string and wrapped grip; and the arrow, with its feathers, nock and steel point.
2
+ import { capsule, drawn, swell } from "./gear.core.js";
3
+ /** The bow's limbs: a long upper limb and a short lower one, thickest at the hand and thin at the tips. */
4
+ const BOW = swell([44, 2], [12, 10], [16, 52], [38, 62], (t) => 1.6 + 2.6 * Math.sin(Math.PI * Math.min(1, t * 1.15)) ** 0.6, 22);
5
+ export const GEAR_YUMI = /* @__PURE__ */ drawn("gear:yumi", "Long bow", "弓道の弓", {
6
+ main: "#4a2e1e",
7
+ accent: "#d9b66a",
8
+ parts: [
9
+ { d: "M44 2.4L38 62", fill: "none", stroke: "#f1ead8", w: 0.9 },
10
+ { d: BOW, fill: "$main", cyl: 0.8, shade: 0.2 },
11
+ { d: "M20.4 38.6L28.6 40.2L28.4 48.8L19.8 47.2Z", fill: "$accent", cyl: 0.7, shade: 0.3 },
12
+ { d: "M21 41.6L28.4 43M20.8 44.6L28.2 46", fill: "none", stroke: "#8a6a2a", w: 0.7, line: "none" },
13
+ { d: "M20.6 17.6L26.6 17.4M18.4 24.8L24.4 25M20.2 30.2L26 31", fill: "none", stroke: "$accent", w: 1.4, line: "none" },
14
+ { d: "M20.4 13.6Q26 11.4 30 6", fill: "none", stroke: "#fff", w: 0.9, op: 0.4, line: "none", fx: true },
15
+ ],
16
+ });
17
+ const T = "rotate(40 32 32) translate(32 33) scale(1.22) translate(-32 -33)";
18
+ export const GEAR_YA = /* @__PURE__ */ drawn("gear:ya", "Arrow", "弓道の矢", {
19
+ main: "#d6ae63",
20
+ accent: "#f4f1ea",
21
+ parts: [
22
+ { d: capsule(32, 9, 32, 58, 2.2), fill: "$main", t: T, cyl: 1, shade: 0 },
23
+ { d: "M32 1.4L33.8 9.8H30.2Z", fill: "#aeb6c0", t: T, cyl: 0.9, shade: 0.3 },
24
+ { d: "M31.2 38.4Q27.8 43.4 28.2 55.4Q30.4 53 31.2 48.6Z", fill: "$accent", t: T, shade: 0.5 },
25
+ { d: "M32.8 38.4Q36.2 43.4 35.8 55.4Q33.6 53 32.8 48.6Z", fill: "$accent", t: T, shade: 0.5 },
26
+ { d: "M32 36.6Q33.6 46 32 56Q30.4 46 32 36.6Z", fill: "$accent", t: T, shade: 0.5 },
27
+ { d: "M28.6 49.4Q30 47.8 31.2 47.8M35.4 49.4Q34 47.8 32.8 47.8", fill: "none", stroke: "#3a2a22", w: 1.4, t: T, line: "none" },
28
+ { d: "M30.6 57h2.8l.3 3.8h-3.4z", fill: "#3a2a22", t: T, cyl: 0.5, shade: 0.3 },
29
+ { d: "M30.4 36h3.2M30.4 24h3.2", fill: "none", stroke: "#8a6a2a", w: 0.8, t: T, line: "none" },
30
+ ],
31
+ });
@@ -0,0 +1 @@
1
+ export declare const GEAR_LACROSSE_STICK: import("./gear.index.ts").Piece<import("./gear.core.ts").GearSpec>;
@@ -0,0 +1,26 @@
1
+ // A lacrosse stick and ball, drawn for this package: a metal shaft with a plastic head that widens to a scoop, a netted pocket, and an orange ball.
2
+ import { capsule, circle, drawn } from "./gear.core.js";
3
+ const T = "rotate(30 32 32)";
4
+ /** The net of the pocket: crossing strings inside the head. */
5
+ const NET = (() => {
6
+ const half = (y) => (y >= 13 ? 6.2 - (y - 13) * 0.3 : 6.2 - (13 - y) * 0.55) - 0.6;
7
+ let d = "";
8
+ for (let y = 7; y <= 25; y += 3)
9
+ d += `M${32 - half(y)} ${y}H${32 + half(y)}`;
10
+ for (const x of [-3.2, 0, 3.2])
11
+ d += `M${32 + x} 6.5V${x === 0 ? 26 : 22}`;
12
+ return d;
13
+ })();
14
+ export const GEAR_LACROSSE_STICK = /* @__PURE__ */ drawn("gear:lacrosse-stick", "Lacrosse stick and ball", "ラクロスのクロスとボール", {
15
+ main: "#aeb6c0",
16
+ accent: "#1f4f9c",
17
+ parts: [
18
+ { d: capsule(32, 22, 32, 61, 3.4), fill: "$main", t: T, cyl: 1, shade: 0 },
19
+ { d: capsule(32, 56, 32, 61, 3.8), fill: "#2a2f38", t: T, line: "stroke", shade: 0.3 },
20
+ { d: NET, fill: "none", stroke: "#8f98a3", w: 0.6, t: T },
21
+ { d: "M29.4 27L25.4 13Q22.6 3.4 32 2.6Q41.4 3.4 38.6 13L34.6 27Z", fill: "none", stroke: "$accent", w: 3.2, t: T },
22
+ { d: "M29.2 28.6h5.6v3.4h-5.6z", fill: "$accent", t: T, cyl: 0.9, shade: 0 },
23
+ { d: circle(53, 52.6, 5.8), fill: "#f0701e", stroke: "#8a3a0a", shade: 0.8 },
24
+ { d: "M49.4 49.2a5.8 5.8 0 0 1 3.2-1.8", fill: "none", stroke: "#fff", w: 1.1, line: "none", fx: true, op: 0.6 },
25
+ ],
26
+ });
@@ -0,0 +1,4 @@
1
+ export declare const GEAR_SQUASH_RACKET: import("./gear.index.ts").Piece<import("./gear.core.ts").GearSpec>;
2
+ export declare const GEAR_RACQUETBALL_RACKET: import("./gear.index.ts").Piece<import("./gear.core.ts").GearSpec>;
3
+ export declare const GEAR_PADEL_RACKET: import("./gear.index.ts").Piece<import("./gear.core.ts").GearSpec>;
4
+ export declare const GEAR_PICKLEBALL_PADDLE: import("./gear.index.ts").Piece<import("./gear.core.ts").GearSpec>;
@@ -0,0 +1,60 @@
1
+ // Squash, racquetball and padel rackets and the pickleball paddle, drawn by us: head up, in a 64 by 64 box.
2
+ import { capsule, circle, drawn, ellipse, rect, seg, strings } from "./gear.core.js";
3
+ export const GEAR_SQUASH_RACKET = /* @__PURE__ */ drawn("gear:squash-racket", "Squash racket", "スカッシュのラケット", {
4
+ main: "#2b3a52",
5
+ accent: "#e0502a",
6
+ parts: [
7
+ { d: strings(32, 19, 11, 15, 3.4), stroke: "#8a95a3", w: 0.7, line: "stroke" },
8
+ { d: ellipse(32, 19, 11.5, 15.5), stroke: "$main", w: 2.8 },
9
+ { d: "M25.5 33.5L30.6 43M38.5 33.5L33.4 43", stroke: "$main", w: 2.4 },
10
+ { d: capsule(32, 40, 32, 60, 4.6), fill: "$accent", shade: 0.6 },
11
+ { d: seg(30, 48, 34, 48) + seg(30, 52, 34, 52) + seg(30, 56, 34, 56), stroke: "#5a2412", w: 0.8, line: "none" },
12
+ ],
13
+ });
14
+ export const GEAR_RACQUETBALL_RACKET = /* @__PURE__ */ drawn("gear:racquetball-racket", "Racquetball racket", "ラケットボールのラケット", {
15
+ main: "#2a63c8",
16
+ accent: "#1b1f27",
17
+ parts: [
18
+ { d: strings(32, 21, 14.5, 17, 3.4), stroke: "#8a95a3", w: 0.7 },
19
+ { d: "M32 3.5c9.5 0 16 6 16 17.500c0 8-4.500 13.500-10.500 15.500L35 38.500h-6l-2.500-2c-6-2-10.500-7.500-10.500-15.500C16 9.500 22.500 3.500 32 3.500z", stroke: "$main", w: 3.2 },
20
+ { d: capsule(32, 36, 32, 59, 5.4), fill: "$accent", shade: 0.5 },
21
+ { d: seg(29.600, 46, 34.400, 46) + seg(29.600, 51, 34.400, 51) + seg(29.600, 56, 34.400, 56), stroke: "#555a66", w: 0.8, line: "none" },
22
+ ],
23
+ });
24
+ const holes = () => {
25
+ let d = "";
26
+ for (let r = 0; r < 4; r++) {
27
+ const y = 12 + r * 6.5;
28
+ const n = r === 0 ? 3 : r === 1 ? 4 : r === 2 ? 4 : 3;
29
+ for (let i = 0; i < n; i++)
30
+ d += circle(32 + (i - (n - 1) / 2) * 6.4, y, 1.35);
31
+ }
32
+ return d;
33
+ };
34
+ export const GEAR_PADEL_RACKET = /* @__PURE__ */ drawn("gear:padel-racket", "Padel racket", "パデルのラケット", {
35
+ main: "#2a2f38",
36
+ accent: "#f2701d",
37
+ parts: [
38
+ { d: "M32 3c11 0 18 7 18 18c0 8.500-5 14.500-11 17.500l-2 5h-10l-2-5C19 35.500 14 29.500 14 21C14 10 21 3 32 3z", fill: "$main", stroke: "$accent", w: 2 },
39
+ { d: holes(), fill: "#e4e9ee", stroke: "none", line: "stroke", shade: 0, w: 1.4 },
40
+ { d: capsule(32, 43, 32, 60, 5.4), fill: "$accent", shade: 0.5 },
41
+ { d: seg(29.5, 49, 34.5, 49) + seg(29.500, 53, 34.5, 53) + seg(29.5, 57, 34.5, 57), stroke: "#5a2c0a", w: 0.8, line: "none" },
42
+ ],
43
+ });
44
+ const dimples = () => {
45
+ let d = "";
46
+ for (let r = 0; r < 5; r++)
47
+ for (let c = 0; c < 4; c++)
48
+ d += circle(20.500 + c * 7.600 + (r % 2) * 3.8, 10 + r * 6.5, 1.1);
49
+ return d;
50
+ };
51
+ export const GEAR_PICKLEBALL_PADDLE = /* @__PURE__ */ drawn("gear:pickleball-paddle", "Pickleball paddle", "ピックルボールのパドル", {
52
+ main: "#1fa3a8",
53
+ accent: "#f2701d",
54
+ parts: [
55
+ { d: rect(14, 3, 36, 35, 11), fill: "$main", stroke: "$accent", w: 2.2 },
56
+ { d: dimples(), fill: "#ffffff", stroke: "none", op: 0.35, shade: 0, line: "none" },
57
+ { d: rect(27, 37, 10, 22, 3), fill: "#24272e", shade: 0.5 },
58
+ { d: seg(27.500, 45, 36.500, 45) + seg(27.500, 50, 36.500, 50) + seg(27.500, 55, 36.500, 55), stroke: "#5a5f6a", w: 0.8, line: "none" },
59
+ ],
60
+ });
@@ -0,0 +1,3 @@
1
+ export declare const GEAR_HOCKEY_SKATE: import("./gear.index.ts").Piece<import("./gear.core.ts").GearSpec>;
2
+ export declare const GEAR_FIGURE_SKATE: import("./gear.index.ts").Piece<import("./gear.core.ts").GearSpec>;
3
+ export declare const GEAR_SPEED_SKATE: import("./gear.index.ts").Piece<import("./gear.core.ts").GearSpec>;
@@ -0,0 +1,39 @@
1
+ // Ice skates drawn by us, all facing right: a hockey skate, a figure skate and a speed skate.
2
+ import { capsule, drawn, rect, seg } from "./gear.core.js";
3
+ export const GEAR_HOCKEY_SKATE = /* @__PURE__ */ drawn("gear:hockey-skate", "Hockey skate", "アイスホッケースケート", {
4
+ main: "#232a36",
5
+ accent: "#d4202c",
6
+ parts: [
7
+ { d: "M9 6h19v17c9 2 23 5 30 14v8H9z", fill: "$main" },
8
+ { d: "M40 31c6 2 13 4 18 8v6H44z", fill: "$accent", shade: 0.5 },
9
+ { d: seg(30, 26, 40, 30) + seg(27, 32, 37, 35), stroke: "#f4f1ea", w: 1.200, line: "none" },
10
+ { d: rect(13, 45, 43, 5, 1), fill: "#c8ced6" },
11
+ { d: rect(18, 49, 4, 6, 0), fill: "#c8ced6", shade: 0.4 },
12
+ { d: rect(47, 49, 4, 6, 0), fill: "#c8ced6", shade: 0.4 },
13
+ { d: capsule(6, 56, 61, 56, 5), fill: "#aab2bd", shade: 0.9 },
14
+ ],
15
+ });
16
+ export const GEAR_FIGURE_SKATE = /* @__PURE__ */ drawn("gear:figure-skate", "Figure skate", "フィギュアスケート靴", {
17
+ main: "#f6f2ea",
18
+ accent: "#c8a26a",
19
+ parts: [
20
+ { d: "M9 3h16v26c10 2 24 6 31 13v6H9z", fill: "$main" },
21
+ { d: rect(9, 45, 48, 4, 1.500), fill: "$accent", shade: 0.5 },
22
+ { d: seg(26, 24, 31, 27) + seg(25, 29, 34, 32) + seg(24, 34, 37, 37) + seg(22, 39, 40, 42), stroke: "#8a949f", w: 1, line: "none" },
23
+ { d: rect(11, 49, 8, 5, 0), fill: "$accent", shade: 0.4 },
24
+ { d: rect(41, 49, 3, 5, 0), fill: "#aab2bd", shade: 0.4 },
25
+ { d: "M7 55H49C55 55 59 52 60 46L64 47C63 55 58 60 49 60H7C4 60 4 55 7 55Z", fill: "#aab2bd", shade: 0.9 },
26
+ ],
27
+ });
28
+ export const GEAR_SPEED_SKATE = /* @__PURE__ */ drawn("gear:speed-skate", "Speed skate", "スピードスケート靴", {
29
+ main: "#2a5fb0",
30
+ accent: "#1d1f24",
31
+ parts: [
32
+ { d: "M9 14h17l1 14c11 0 24 3 31 9v6H9z", fill: "$main" },
33
+ { d: seg(28, 29, 37, 31) + seg(26, 34, 35, 36), stroke: "#f4f1ea", w: 1.200, line: "none" },
34
+ { d: rect(14, 43, 42, 3, 1), fill: "$accent", shade: 0.4 },
35
+ { d: rect(16, 46, 3, 8, 0), fill: "#aab2bd", shade: 0.4 },
36
+ { d: rect(46, 46, 3, 8, 0), fill: "#aab2bd", shade: 0.4 },
37
+ { d: capsule(2, 56, 62, 56, 3.600), fill: "#aab2bd", shade: 0.9 },
38
+ ],
39
+ });
@@ -0,0 +1,3 @@
1
+ export declare const GEAR_GOALIE_STICK: import("./gear.index.ts").Piece<import("./gear.core.ts").GearSpec>;
2
+ export declare const GEAR_HURLEY: import("./gear.index.ts").Piece<import("./gear.core.ts").GearSpec>;
3
+ export declare const GEAR_CURLING_BROOM: import("./gear.index.ts").Piece<import("./gear.core.ts").GearSpec>;
@@ -0,0 +1,34 @@
1
+ // A goalie's stick, a hurley and a curling broom, drawn by us.
2
+ import { capsule, drawn, poly, rect, seg } from "./gear.core.js";
3
+ const TURN = "translate(30 29) rotate(28) scale(.78) translate(-32 -33)";
4
+ export const GEAR_GOALIE_STICK = /* @__PURE__ */ drawn("gear:goalie-stick", "Goalie stick", "ゴーリーのスティック", {
5
+ main: "#d9b57a",
6
+ accent: "#1d1f24",
7
+ parts: [
8
+ { d: rect(30, 1, 4.4, 36, 1.5), fill: "#c79a58", t: TURN },
9
+ { d: rect(30, 24, 4.4, 9, 0), fill: "$accent", t: TURN, shade: 0.4 },
10
+ { d: poly([24, 33], [42, 33], [43, 56], [23, 56]), fill: "$main", t: TURN },
11
+ { d: seg(23.600, 38, 42.500, 38) + seg(23.400, 44, 42.700, 44) + seg(23.200, 50, 42.800, 50), stroke: "$accent", w: 1.1, t: TURN, line: "none" },
12
+ { d: "M13 56h46c2 0 3 1 3 3v2c0 1-1 2-3 2H13c-2 0-3-1-3-2v-2c0-2 1-3 3-3z", fill: "$main", t: TURN },
13
+ ],
14
+ });
15
+ export const GEAR_HURLEY = /* @__PURE__ */ drawn("gear:hurley", "Hurley", "ハーリングのスティック", {
16
+ main: "#e0c48e",
17
+ accent: "#8a949f",
18
+ parts: [
19
+ { d: capsule(32, 3, 32, 42, 3.6), fill: "#d6b378", t: TURN },
20
+ { d: rect(29.500, 12, 5, 5, 0), fill: "$accent", t: TURN, shade: 0.5 },
21
+ { d: "M28 38C18 41 13 49 15 57c1 5 9 5 17 5s16 0 17-5c2-8-3-16-13-19z", fill: "$main", t: TURN },
22
+ { d: "M22 52c6 3 14 3 20 0", stroke: "#a98650", w: 1, t: TURN, line: "none" },
23
+ ],
24
+ });
25
+ export const GEAR_CURLING_BROOM = /* @__PURE__ */ drawn("gear:curling-broom", "Curling broom", "カーリングのブラシ", {
26
+ main: "#2a5fb0",
27
+ accent: "#f4efe4",
28
+ parts: [
29
+ { d: capsule(55, 6, 31, 40, 3.4), fill: "#3a4252", shade: 0.5 },
30
+ { d: rect(10, 38, 24, 8, 2.500), fill: "$main", t: "rotate(36.900 31 42)" },
31
+ { d: rect(10, 46, 24, 8, 1.500), fill: "$accent", t: "rotate(36.900 31 42)" },
32
+ { d: seg(14, 49, 14, 53) + seg(18, 49, 18, 53) + seg(22, 49, 22, 53) + seg(26, 49, 26, 53) + seg(30, 49, 30, 53), stroke: "#9aa3ae", w: 0.8, t: "rotate(36.900 31 42)", line: "none" },
33
+ ],
34
+ });
@@ -0,0 +1,2 @@
1
+ export declare const GEAR_GUNBAI: import("./gear.index.ts").Piece<import("./gear.core.ts").GearSpec>;
2
+ export declare const GEAR_MAWASHI: import("./gear.index.ts").Piece<import("./gear.core.ts").GearSpec>;
@@ -0,0 +1,43 @@
1
+ // Sumo gear, drawn for this package: the referee's war fan with its tassel, and the wrestler's belt with its stiff hanging cords.
2
+ import { capsule, circle, drawn, seg } from "./gear.core.js";
3
+ export const GEAR_GUNBAI = /* @__PURE__ */ drawn("gear:gunbai", "Referee's war fan", "軍配", {
4
+ main: "#4a2428",
5
+ accent: "#f0dca6",
6
+ parts: [
7
+ { d: capsule(32, 44, 32, 54, 6.6), fill: "#c99456", cyl: 1, shade: 0 },
8
+ { d: seg(28.8, 47, 35.2, 47) + seg(28.8, 50, 35.2, 50) + seg(28.8, 53, 35.2, 53), fill: "none", stroke: "#7a4a1c", w: 0.9, line: "none" },
9
+ { d: "M32 2.4C46.4 2.4 55.4 12 55.4 24C55.4 36 44.4 44.4 38.4 47.4H25.6C19.6 44.4 8.6 36 8.6 24C8.6 12 17.6 2.4 32 2.4Z", fill: "$main", cyl: 0.8, shade: 0.4 },
10
+ { d: "M32 7.6C43.4 7.6 50.4 15.2 50.4 24.6C50.4 33.4 42 40.4 36.6 43H27.4C22 40.4 13.6 33.4 13.6 24.6C13.6 15.2 20.6 7.6 32 7.6Z", fill: "$accent", stroke: "#d9a620", w: 1.2, shade: 0.5 },
11
+ { d: circle(32, 24.6, 8.8), fill: "#c8202c", stroke: "#8a1620", shade: 0.6, line: "stroke" },
12
+ { d: "M26 20Q28.6 16.8 32.6 16.6", fill: "none", stroke: "#fff", w: 1.4, op: 0.5, line: "none", fx: true },
13
+ { d: circle(32, 56.4, 1.9), fill: "#d9a620", shade: 0.8 },
14
+ { d: "M28.6 58.2H35.4L37.2 63.4H26.8Z", fill: "#c8202c", stroke: "#8a1620", shade: 0.5 },
15
+ { d: seg(30, 59, 29.4, 63) + seg(32, 59, 32, 63) + seg(34, 59, 34.6, 63), fill: "none", stroke: "#8a1620", w: 0.6, line: "none" },
16
+ ],
17
+ });
18
+ /** The cords that hang from the front of the belt, and the gilt ends of them: stiff, a little apart, spreading as they fall. */
19
+ const CORDS = (() => {
20
+ let cords = "";
21
+ let ends = "";
22
+ for (let i = 0; i < 9; i++) {
23
+ const x = 13 + i * 4.75;
24
+ const dx = (i - 4) * 0.8;
25
+ const y = 51 + (4 - Math.abs(i - 4)) * 0.9;
26
+ cords += capsule(x, 32, x + dx, y, 2.8);
27
+ ends += circle(x + dx, y + 1.4, 1.7);
28
+ }
29
+ return { cords, ends };
30
+ })();
31
+ export const GEAR_MAWASHI = /* @__PURE__ */ drawn("gear:mawashi", "Sumo belt", "廻し", {
32
+ main: "#3b3f8c",
33
+ accent: "#d9a620",
34
+ parts: [
35
+ { d: CORDS.cords, fill: "#e8e2d2", shade: 0.7 },
36
+ { d: CORDS.ends, fill: "$accent", shade: 0.6, line: "none" },
37
+ { d: "M17 27H47L43.4 41H20.6Z", fill: "$main", stroke: "#1c1f4a", cyl: 0.9, shade: 0.3 },
38
+ { d: "M3 14Q32 5 61 14V28Q32 19 3 28Z", fill: "$main", cyl: 0.9, shade: 0.2 },
39
+ { d: "M5 18.6Q32 9.6 59 18.6M5 23.4Q32 14.4 59 23.4", fill: "none", stroke: "#fff", w: 0.7, op: 0.4, line: "none", fx: true },
40
+ { d: "M24.6 12.6h14.8V27H24.6z", fill: "$main", stroke: "#1c1f4a", cyl: 1, shade: 0.2 },
41
+ { d: "M24.6 17.4h14.8M24.6 22.2h14.8", fill: "none", stroke: "#1c1f4a", w: 0.8, line: "none" },
42
+ ],
43
+ });
@@ -0,0 +1 @@
1
+ export declare const GEAR_TABLE_TENNIS_PADDLE: import("./gear.index.ts").Piece<import("./gear.core.ts").GearSpec>;
@@ -0,0 +1,16 @@
1
+ // A table-tennis paddle and ball, drawn for this package: a round red rubber blade with a wooden edge and a flared handle, and a white ball.
2
+ import { circle, drawn } from "./gear.core.js";
3
+ const T = "rotate(30 32 32)";
4
+ export const GEAR_TABLE_TENNIS_PADDLE = /* @__PURE__ */ drawn("gear:table-tennis-paddle", "Table-tennis paddle", "卓球のラケット", {
5
+ main: "#d9392b",
6
+ accent: "#d8a868",
7
+ parts: [
8
+ { d: "M28 38h8l1.6 21.4a2.6 2.6 0 0 1-2.6 2.6h-6a2.6 2.6 0 0 1-2.6-2.6z", fill: "$accent", t: T, cyl: 1, shade: 0 },
9
+ { d: "M28.4 46h7.2M28.2 51h7.6M28.2 56h7.6", fill: "none", stroke: "#a87b3e", w: 0.8, t: T, line: "none" },
10
+ { d: circle(32, 21, 17.5), fill: "$accent", t: T, shade: 0.5 },
11
+ { d: circle(32, 21, 15.4), fill: "$main", t: T, shade: 1 },
12
+ { d: "M22 12Q27 7.6 33 7.4", fill: "none", stroke: "#fff", w: 1.8, t: T, op: 0.5, line: "none", fx: true },
13
+ { d: circle(52, 52, 6), fill: "#f6f4ef", stroke: "#8f98a3", shade: 0.9 },
14
+ { d: "M48.4 48.8a6 6 0 0 1 3.6-1.6", fill: "none", stroke: "#fff", w: 1.2, line: "none", fx: true },
15
+ ],
16
+ });
@@ -0,0 +1 @@
1
+ export declare const GEAR_TENNIS_RACKET: import("./gear.index.ts").Piece<import("./gear.core.ts").GearSpec>;
@@ -0,0 +1,17 @@
1
+ // A tennis racket and a ball, drawn for this package: a large oval strung head with a heavy frame, a triangular throat and a grip, and a yellow ball with its seam.
2
+ import { capsule, circle, drawn, ellipse, seg, strings } from "./gear.core.js";
3
+ const T = "rotate(32 32 32)";
4
+ export const GEAR_TENNIS_RACKET = /* @__PURE__ */ drawn("gear:tennis-racket", "Tennis racket and ball", "テニスのラケットとボール", {
5
+ main: "#2b64c8",
6
+ accent: "#2a2f38",
7
+ parts: [
8
+ { d: strings(32, 16, 12, 14.4, 3.4), fill: "none", stroke: "#9aa7b6", w: 0.6, t: T },
9
+ { d: ellipse(32, 16, 12.8, 15.2), fill: "none", stroke: "$main", w: 3, t: T },
10
+ { d: "M23 27.6L30.4 38.4H33.6L41 27.6", fill: "none", stroke: "$main", w: 2.4, t: T },
11
+ { d: capsule(32, 36, 32, 46, 2.6), fill: "$main", t: T, cyl: 0.8, shade: 0 },
12
+ { d: capsule(32, 44, 32, 62, 5), fill: "$accent", t: T, cyl: 0.8, shade: 0 },
13
+ { d: seg(29.4, 50, 34.6, 50) + seg(29.4, 55, 34.6, 55), fill: "none", stroke: "#6a7482", w: 0.7, t: T, line: "none" },
14
+ { d: circle(52, 53, 7), fill: "#d4e22a", stroke: "#8a9410", shade: 0.8 },
15
+ { d: "M46.8 48.6Q52 52 48 59M57.4 47.8Q53 52.4 57.4 58.6", fill: "none", stroke: "#fff", w: 1.1, op: 0.85, line: "none" },
16
+ ],
17
+ });
@@ -0,0 +1,4 @@
1
+ export declare const GEAR_STARTING_BLOCKS: import("./gear.index.ts").Piece<import("./gear.core.ts").GearSpec>;
2
+ export declare const GEAR_RELAY_BATON: import("./gear.index.ts").Piece<import("./gear.core.ts").GearSpec>;
3
+ export declare const GEAR_JAVELIN: import("./gear.index.ts").Piece<import("./gear.core.ts").GearSpec>;
4
+ export declare const GEAR_HURDLES: import("./gear.index.ts").Piece<import("./gear.core.ts").GearSpec>;
@@ -0,0 +1,45 @@
1
+ // Athletics gear drawn by us: starting blocks, a relay baton, a javelin and a hurdle.
2
+ import { capsule, drawn, poly, rect, seg } from "./gear.core.js";
3
+ export const GEAR_STARTING_BLOCKS = /* @__PURE__ */ drawn("gear:starting-blocks", "Starting blocks", "スターティングブロック", {
4
+ main: "#f08a1c",
5
+ accent: "#3a3f48",
6
+ parts: [
7
+ { d: capsule(5, 53, 59, 53, 3.6), fill: "$accent" },
8
+ { d: poly([15, 51], [23, 25], [31, 28], [26, 51]), fill: "$main" },
9
+ { d: poly([38, 51], [43, 33], [51, 36], [49, 51]), fill: "$main" },
10
+ { d: seg(17, 44, 28, 47) + seg(19.500, 36, 29, 39), stroke: "#a85a0e", w: 0.9, line: "none" },
11
+ { d: poly([8, 53], [14, 53], [14, 57], [6, 57]), fill: "$accent", shade: 0.3 },
12
+ { d: poly([50, 53], [58, 53], [60, 57], [52, 57]), fill: "$accent", shade: 0.3 },
13
+ ],
14
+ });
15
+ export const GEAR_RELAY_BATON = /* @__PURE__ */ drawn("gear:relay-baton", "Relay baton", "リレーのバトン", {
16
+ main: "#f2a31c",
17
+ accent: "#ffffff",
18
+ parts: [
19
+ { d: capsule(11, 53, 53, 11, 9.5), fill: "$main", shade: 0.8 },
20
+ { d: capsule(24, 40, 28.500, 35.500, 9.500), fill: "$accent", stroke: "none", op: 0.35, line: "none", shade: 0 },
21
+ ],
22
+ });
23
+ export const GEAR_JAVELIN = /* @__PURE__ */ drawn("gear:javelin", "Javelin", "やり投げのやり", {
24
+ main: "#e9e6dd",
25
+ accent: "#8a5a2a",
26
+ parts: [
27
+ { d: capsule(5, 59, 55, 9, 2.8), fill: "$main" },
28
+ { d: capsule(22, 42, 33, 31, 4.2), fill: "$accent", shade: 0.6 },
29
+ { d: poly([50, 14], [60, 4], [56, 18]), fill: "#aeb6c0" },
30
+ ],
31
+ });
32
+ export const GEAR_HURDLES = /* @__PURE__ */ drawn("gear:hurdles", "Hurdle", "ハードル", {
33
+ main: "#f4f1ea",
34
+ accent: "#1d1f24",
35
+ parts: [
36
+ { d: rect(13, 22, 4, 31), fill: "#aeb6c0", shade: 0.5 },
37
+ { d: rect(47, 22, 4, 31), fill: "#aeb6c0", shade: 0.5 },
38
+ { d: rect(5, 51, 18, 5, 1.500), fill: "$accent", shade: 0.4 },
39
+ { d: rect(41, 51, 18, 5, 1.500), fill: "$accent", shade: 0.4 },
40
+ { d: rect(7, 12, 50, 11, 1.500), fill: "$main" },
41
+ { d: rect(7, 12, 9, 11, 1.500), fill: "$accent", shade: 0.4 },
42
+ { d: rect(48, 12, 9, 11, 1.500), fill: "$accent", shade: 0.4 },
43
+ { d: rect(16, 12, 16, 11, 0), fill: "$main", stroke: "none", line: "none", shade: 0 },
44
+ ],
45
+ });
@@ -0,0 +1,2 @@
1
+ export declare const GEAR_DIVING_BOARD: import("./gear.index.ts").Piece<import("./gear.core.ts").GearSpec>;
2
+ export declare const GEAR_SWIM_GOGGLES: import("./gear.index.ts").Piece<import("./gear.core.ts").GearSpec>;
@@ -0,0 +1,25 @@
1
+ // Swimming and diving gear drawn by us: a diving board over water, and a pair of goggles.
2
+ import { capsule, drawn, ellipse, rect } from "./gear.core.js";
3
+ export const GEAR_DIVING_BOARD = /* @__PURE__ */ drawn("gear:diving-board", "Diving board", "飛び込み板", {
4
+ main: "#4b84b8",
5
+ accent: "#8a949f",
6
+ parts: [
7
+ { d: rect(8, 36, 11, 24, 1.500), fill: "$accent" },
8
+ { d: rect(3, 29, 52, 7, 3), fill: "$main", shade: 0.9 },
9
+ { d: "M0 53q8-5 16 0t16 0 16 0 16 0v11H0z", fill: "#4fb3e8", stroke: "#2d86bd", op: 0.9, shade: 0 },
10
+ { d: "M0 58q8-5 16 0t16 0 16 0 16 0", stroke: "#bfe6f8", w: 1.200, line: "none" },
11
+ ],
12
+ });
13
+ export const GEAR_SWIM_GOGGLES = /* @__PURE__ */ drawn("gear:swim-goggles", "Swim goggles", "水泳のゴーグル", {
14
+ main: "#2a7fd0",
15
+ accent: "#1d1f24",
16
+ parts: [
17
+ { d: capsule(9, 31, 0.500, 25, 2.600), fill: "$accent", shade: 0 },
18
+ { d: capsule(55, 31, 63.500, 25, 2.600), fill: "$accent", shade: 0 },
19
+ { d: "M28.500 29q3.500-3.500 7 0", stroke: "$accent", w: 2.600 },
20
+ { d: ellipse(19, 33, 12, 10), fill: "$main", stroke: "$accent", w: 2.200, shade: 0.8 },
21
+ { d: ellipse(45, 33, 12, 10), fill: "$main", stroke: "$accent", w: 2.200, shade: 0.8 },
22
+ { d: ellipse(15.500, 29, 4.500, 2.600), fill: "#ffffff", stroke: "none", op: 0.5, shade: 0, line: "none" },
23
+ { d: ellipse(41.500, 29, 4.500, 2.600), fill: "#ffffff", stroke: "none", op: 0.5, shade: 0, line: "none" },
24
+ ],
25
+ });
@@ -0,0 +1,2 @@
1
+ /** A bronze medal on a ribbon. Turned, it flips like a coin and shows its plain back. */
2
+ export declare const MEDAL_BRONZE: import("../emblem.core.ts").Emblem<import("../emblem.shapes.ts").FlatModel>;
@@ -0,0 +1,4 @@
1
+ // A bronze medal on a ribbon of five stripes: a bevelled disc with a star, and a plain back. Drawn for this package; the ribbon carries no rings.
2
+ import { defineMedal } from "../emblem.medal.js";
3
+ /** A bronze medal on a ribbon. Turned, it flips like a coin and shows its plain back. */
4
+ export const MEDAL_BRONZE = /* @__PURE__ */ defineMedal("medal:bronze", "Bronze medal", "銅メダル", "bronze");
@@ -0,0 +1,2 @@
1
+ /** A gold medal on a ribbon. Turned, it flips like a coin and shows its plain back. */
2
+ export declare const MEDAL_GOLD: import("../emblem.core.ts").Emblem<import("../emblem.shapes.ts").FlatModel>;
@@ -0,0 +1,4 @@
1
+ // A gold medal on a ribbon of five stripes: a bevelled disc with a star, and a plain back. Drawn for this package; the ribbon carries no rings.
2
+ import { defineMedal } from "../emblem.medal.js";
3
+ /** A gold medal on a ribbon. Turned, it flips like a coin and shows its plain back. */
4
+ export const MEDAL_GOLD = /* @__PURE__ */ defineMedal("medal:gold", "Gold medal", "金メダル", "gold");
@@ -0,0 +1,2 @@
1
+ /** A badge for first place. */
2
+ export declare const MEDAL_PLACE_1: import("../emblem.core.ts").Emblem<import("../emblem.shapes.ts").FlatModel>;
@@ -0,0 +1,4 @@
1
+ // A badge for first place: a bevelled gold disc with its numeral. Drawn for this package.
2
+ import { definePlace } from "../emblem.medal.js";
3
+ /** A badge for first place. */
4
+ export const MEDAL_PLACE_1 = /* @__PURE__ */ definePlace("medal:place-1", "First place badge", "1位のバッジ", 1, "gold");
@@ -0,0 +1,2 @@
1
+ /** A badge for second place. */
2
+ export declare const MEDAL_PLACE_2: import("../emblem.core.ts").Emblem<import("../emblem.shapes.ts").FlatModel>;
@@ -0,0 +1,4 @@
1
+ // A badge for second place: a bevelled silver disc with its numeral. Drawn for this package.
2
+ import { definePlace } from "../emblem.medal.js";
3
+ /** A badge for second place. */
4
+ export const MEDAL_PLACE_2 = /* @__PURE__ */ definePlace("medal:place-2", "Second place badge", "2位のバッジ", 2, "silver");
@@ -0,0 +1,2 @@
1
+ /** A badge for third place. */
2
+ export declare const MEDAL_PLACE_3: import("../emblem.core.ts").Emblem<import("../emblem.shapes.ts").FlatModel>;
@@ -0,0 +1,4 @@
1
+ // A badge for third place: a bevelled bronze disc with its numeral. Drawn for this package.
2
+ import { definePlace } from "../emblem.medal.js";
3
+ /** A badge for third place. */
4
+ export const MEDAL_PLACE_3 = /* @__PURE__ */ definePlace("medal:place-3", "Third place badge", "3位のバッジ", 3, "bronze");
@@ -0,0 +1,2 @@
1
+ /** A silver medal on a ribbon. Turned, it flips like a coin and shows its plain back. */
2
+ export declare const MEDAL_SILVER: import("../emblem.core.ts").Emblem<import("../emblem.shapes.ts").FlatModel>;
@@ -0,0 +1,4 @@
1
+ // A silver medal on a ribbon of five stripes: a bevelled disc with a star, and a plain back. Drawn for this package; the ribbon carries no rings.
2
+ import { defineMedal } from "../emblem.medal.js";
3
+ /** A silver medal on a ribbon. Turned, it flips like a coin and shows its plain back. */
4
+ export const MEDAL_SILVER = /* @__PURE__ */ defineMedal("medal:silver", "Silver medal", "銀メダル", "silver");
@@ -0,0 +1,2 @@
1
+ /** A championship pennant. */
2
+ export declare const PENNANT_CHAMPIONSHIP: import("../emblem.core.ts").Emblem<null>;
@@ -0,0 +1,4 @@
1
+ // A championship pennant: a long triangle of felt on a dowel, stitched round its edge, with the words and the year in felt letters. Drawn for this package: generic, no team's or league's design.
2
+ import { definePennant } from "../emblem.pennant.js";
3
+ /** A championship pennant. */
4
+ export const PENNANT_CHAMPIONSHIP = /* @__PURE__ */ definePennant("pennant:championship", "Championship pennant", "優勝ペナント");
@@ -0,0 +1,2 @@
1
+ /** Oval ball. */
2
+ export declare const SPORT_AFL: import("../emblem.core.ts").Emblem<import("../emblem.shapes.ts").FlatModel>;
@@ -0,0 +1,12 @@
1
+ // Oval ball: a pictogram of the equipment, drawn for this package, in a 64 by 64 box. The metal style paints its main shapes with a grey sheet, the line style draws one outline.
2
+ import { defineIcon, ellipsePath as ell } from "../emblem.shapes.js";
3
+ /** Oval ball. */
4
+ export const SPORT_AFL = /* @__PURE__ */ defineIcon("sport:afl", "Oval ball", "オーストラリアンフットボール", "ours", {
5
+ metal: "flat",
6
+ ink: true,
7
+ front: [
8
+ ["m", ell(32, 32, 15, 25)],
9
+ ["t", "M32 10v44M26 22h12M26 30h12M26 38h12M26 46h12"],
10
+ ["n", "M20 18c8 4 16 4 24 0M20 46c8-4 16-4 24 0"],
11
+ ],
12
+ });
@@ -0,0 +1,2 @@
1
+ /** Raised legs. */
2
+ export declare const SPORT_ARTISTICSWIMMING: import("../emblem.core.ts").Emblem<import("../emblem.shapes.ts").FlatModel>;
@@ -0,0 +1,16 @@
1
+ // Raised legs: a pictogram of the equipment, drawn for this package, in a 64 by 64 box. The metal style paints its main shapes with a grey sheet, the line style draws one outline.
2
+ import { defineIcon } from "../emblem.shapes.js";
3
+ /** Waves: a wavy line across the box at a height. */
4
+ const wave = (y) => `M3 ${y}q7-6 14 0t14 0 14 0 14 0`;
5
+ /** Raised legs. */
6
+ export const SPORT_ARTISTICSWIMMING = /* @__PURE__ */ defineIcon("sport:artisticswimming", "Raised legs", "水面に上げた脚", "ours", {
7
+ metal: "flat",
8
+ ink: true,
9
+ front: [
10
+ ["b", "M25 52V9M37 52V30l9-11"],
11
+ ["b", "M25 9l-5-3M46 19l5 1"],
12
+ ["t", "M12 8l3 4M56 9l-3 4M33 5v5"],
13
+ ["n", wave(52)],
14
+ ["n", wave(60)],
15
+ ],
16
+ });
@@ -0,0 +1,2 @@
1
+ /** Running track. */
2
+ export declare const SPORT_ATHLETICS: import("../emblem.core.ts").Emblem<import("../emblem.shapes.ts").FlatModel>;
@@ -0,0 +1,12 @@
1
+ // Running track: a pictogram of the equipment, drawn for this package, in a 64 by 64 box. The metal style paints its main shapes with a grey sheet, the line style draws one outline.
2
+ import { defineIcon } from "../emblem.shapes.js";
3
+ /** Running track. */
4
+ export const SPORT_ATHLETICS = /* @__PURE__ */ defineIcon("sport:athletics", "Running track", "陸上競技のトラック", "ours", {
5
+ metal: "flat",
6
+ ink: true,
7
+ front: [
8
+ ["m", "M20 10h24a22 22 0 0 1 0 44H20a22 22 0 0 1 0-44z"],
9
+ ["p", "M20 20h24a12 12 0 0 1 0 24H20a12 12 0 0 1 0-24z"],
10
+ ["t", "M20 15h24a17 17 0 0 1 0 34H20a17 17 0 0 1 0-34z"],
11
+ ],
12
+ });
@@ -0,0 +1,2 @@
1
+ /** Shuttlecock. */
2
+ export declare const SPORT_BADMINTON: import("../emblem.core.ts").Emblem<import("../emblem.shapes.ts").FlatModel>;
@@ -0,0 +1,13 @@
1
+ // Shuttlecock: a pictogram of the equipment, drawn for this package, in a 64 by 64 box. The metal style paints its main shapes with a grey sheet, the line style draws one outline.
2
+ import { defineIcon } from "../emblem.shapes.js";
3
+ /** Shuttlecock. */
4
+ export const SPORT_BADMINTON = /* @__PURE__ */ defineIcon("sport:badminton", "Shuttlecock", "シャトルコック", "ours", {
5
+ metal: "flat",
6
+ ink: true,
7
+ front: [
8
+ ["p", "M24 44L12 8q20-6 40 0L40 44z"],
9
+ ["t", "M28 43L19 9M32 44V7M36 43l9-34"],
10
+ ["t", "M16 24q16-5 32 0"],
11
+ ["m", "M24 44h16a8 8 0 0 1-16 0z"],
12
+ ],
13
+ });
@@ -0,0 +1,2 @@
1
+ /** Canadian football. */
2
+ export declare const SPORT_CFL: import("../emblem.core.ts").Emblem<import("../emblem.shapes.ts").FlatModel>;
@@ -0,0 +1,5 @@
1
+ // Canadian football: a pictogram drawn for this package, in a 64 by 64 box. The metal style paints its main shapes with a grey sheet, the line style draws one outline.
2
+ import { defineIcon } from "../emblem.shapes.js";
3
+ import { SPORT_NFL } from "./nfl.js";
4
+ /** Canadian football. */
5
+ export const SPORT_CFL = /* @__PURE__ */ defineIcon("sport:cfl", "Canadian football", "カナディアンフットボール", "ours", SPORT_NFL.model);
@@ -0,0 +1,2 @@
1
+ /** Cricket. */
2
+ export declare const SPORT_CRICKET: import("../emblem.core.ts").Emblem<import("../emblem.shapes.ts").FlatModel>;