@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,18 @@
1
+ // A globe held up by figures that spiral round a column flaring out from a slim waist, over a base with bands of green. Drawn for this package; a generic trophy.
2
+ import { defineLathe } from "../emblem.lathe.js";
3
+ /** Gold spiral figures rising to hold up a globe, with green bands at the base. */
4
+ export const TROPHY_SOCCER_GLOBE = /* @__PURE__ */ defineLathe("trophy:soccer-globe", "Globe on a column", "柱の上の地球儀", "ours", {
5
+ metal: "gold",
6
+ tones: { green: "#1f8a5b" },
7
+ solids: [
8
+ {
9
+ p: [
10
+ [17, 10.4, 1], [21, 9.6], [27, 6.4], [35, 4.6], [41, 5.2], [45.4, 7.4, 1],
11
+ [45.4, 9.4, 1], [47, 9.4, 1], [47, 10.2, 1, "green"], [50.6, 10.2, 1, "green"], [50.6, 10.6, 1], [52.2, 10.6, 1], [52.2, 11.4, 1, "green"], [57, 11.4, 1, "green"], [57, 11.8, 1], [58.6, 11.8, 1],
12
+ ],
13
+ decor: [["helix", 19, 44, 3, 0.55]],
14
+ },
15
+ ],
16
+ balls: [{ kind: "globe", cy: 11, r: 10 }],
17
+ plate: { y0: 52.4, y1: 56.8, tone: "green" },
18
+ });
@@ -0,0 +1,2 @@
1
+ /** A tall silver cup with phoenix-crested handles on a tall stand. */
2
+ export declare const TROPHY_SUMO_CUP: import("../emblem.core.ts").Emblem<import("../emblem.lathe.ts").LatheModel>;
@@ -0,0 +1,28 @@
1
+ // A tall silver cup on a tall stepped stand: a wide bell of a bowl with a gilt rim, a knopped stem, and on each side an ornate handle that sweeps up past the rim and ends in a crested curl like a bird's
2
+ // head, with a trailing plume below it. Drawn for this package from what such a cup is known to look like; a generic trophy that carries no name, mark or engraving.
3
+ import { defineLathe } from "../emblem.lathe.js";
4
+ /** The handle of one side: it swings out from the bowl, rises past the rim, and ends in a crest that curls over like a bird's head. */
5
+ const side = (a) => ({ a, w: 2.4, tone: "gilt", pts: [[8.4, 27], [14, 25], [18.4, 18], [17.6, 10], [15.2, 3.8], [18, 1.6], [20.2, 3.6]] });
6
+ /** A tall silver cup with phoenix-crested handles on a tall stand. */
7
+ export const TROPHY_SUMO_CUP = /* @__PURE__ */ defineLathe("trophy:sumo-cup", "Phoenix-handle cup", "鳳凰飾りの銀杯", "ours", {
8
+ metal: "silver",
9
+ tones: { dark: "#2b2f36", gilt: "#d9a620" },
10
+ solids: [
11
+ {
12
+ open: true,
13
+ p: [
14
+ [8, 11.6, 1, "gilt"], [10.2, 11.2, 1, "gilt"],
15
+ [10.2, 10.6, 1], [14, 9.8], [20, 8.4], [25.4, 6.6], [28.6, 5, 1],
16
+ [28.6, 5.4, 1, "gilt"], [30.4, 5.4, 1, "gilt"],
17
+ [30.4, 3.2, 1], [33, 3.2], [35.4, 4.8], [37.2, 3.6], [39.4, 3.2, 1],
18
+ [39.4, 6, 1, "gilt"], [41.2, 6, 1, "gilt"],
19
+ [41.2, 8, 1], [43.4, 8.4, 1],
20
+ [43.4, 9.6, 1, "dark"], [47, 9.6, 1, "dark"],
21
+ [47, 11.6, 1, "gilt"], [48.6, 11.6, 1, "gilt"],
22
+ [48.6, 13.2, 1, "dark"], [58, 13.2, 1, "dark"],
23
+ ],
24
+ },
25
+ ],
26
+ handles: [side(90), side(-90)],
27
+ plate: { y0: 50.4, y1: 56.6, tone: "dark" },
28
+ });
@@ -0,0 +1,2 @@
1
+ /** A two-handled cup with a lid and a small pineapple finial. */
2
+ export declare const TROPHY_TENNIS_CUP: import("../emblem.core.ts").Emblem<import("../emblem.lathe.ts").LatheModel>;
@@ -0,0 +1,24 @@
1
+ // A gilded two-handled cup with a domed lid and a small pineapple on top, on a stem and a round plinth. Drawn for this package; a generic trophy.
2
+ import { defineLathe } from "../emblem.lathe.js";
3
+ /** A two-handled cup with a lid and a small pineapple finial. */
4
+ export const TROPHY_TENNIS_CUP = /* @__PURE__ */ defineLathe("trophy:tennis-cup", "Pineapple cup", "パイナップル飾りのカップ", "ours", {
5
+ metal: "gold",
6
+ tones: { dark: "#2b2f36" },
7
+ solids: [
8
+ {
9
+ p: [
10
+ [11, 3, 1], [13, 4.2, 1], [13, 6.6, 1], [14.6, 6.6, 1], [14.6, 8.2], [17.4, 11.6, 1],
11
+ [17.4, 12.2, 1], [19, 12.4, 1], [19, 12.4], [27, 11.4], [34, 7.6], [37.6, 4.8, 1],
12
+ [37.6, 3.4, 1], [39.4, 3.4, 1], [39.4, 5.2, 1], [41.4, 5.2, 1], [41.4, 3.6, 1], [43.4, 3.6, 1], [43.4, 7, 1], [45, 7, 1],
13
+ [45, 7.6, 1], [53, 7.6, 1], [53, 9, 1, "dark"], [57, 9, 1, "dark"],
14
+ ],
15
+ decor: [["dots", 17.8, 16, 0.9]],
16
+ },
17
+ ],
18
+ balls: [{ kind: "pine", cy: 7.4, r: 2.2, ry: 3.6 }],
19
+ handles: [
20
+ { a: 90, w: 1.8, pts: [[10.8, 26], [14.8, 24.6], [17.6, 19], [17, 14], [15.2, 12.4]] },
21
+ { a: -90, w: 1.8, pts: [[10.8, 26], [14.8, 24.6], [17.6, 19], [17, 14], [15.2, 12.4]] },
22
+ ],
23
+ plate: { y0: 45.8, y1: 52.6 },
24
+ });
@@ -0,0 +1,2 @@
1
+ /** A silver salver with a gilt pattern. */
2
+ export declare const TROPHY_TENNIS_PLATE: import("../emblem.core.ts").Emblem<import("../emblem.lathe.ts").LatheModel>;
@@ -0,0 +1,16 @@
1
+ // A broad silver dish on a pedestal, with a raised rim and rings of gilt and rounded panels on its face. Drawn for this package; a generic trophy.
2
+ import { defineLathe } from "../emblem.lathe.js";
3
+ /** A silver salver with a gilt pattern. */
4
+ export const TROPHY_TENNIS_PLATE = /* @__PURE__ */ defineLathe("trophy:tennis-plate", "Plate on a pedestal", "台付きの大皿", "ours", {
5
+ metal: "silver",
6
+ tilt: 36,
7
+ tones: { gilt: "#d9a620", plain: "#9aa3ad" },
8
+ solids: [
9
+ {
10
+ open: true,
11
+ p: [[21, 29.5, 1], [23.6, 28.6], [27.6, 11, 1], [28.6, 6, 1], [40, 3.6, 1], [46, 8.6, 1], [46, 10.6, 1], [50, 10.6, 1], [50, 12, 1], [54, 12, 1]],
12
+ decor: [["disc", 28, "gilt"], ["disc", 25.6, "main"], ["pills", 22.6, 10, 22, 3.6, "plain"], ["disc", 18.6, "gilt"], ["disc", 15.6, "main"], ["pills", 11, 4, 36, 3.6, "plain"], ["disc", 6.4, "gilt"], ["disc", 3.8, "main"]],
13
+ },
14
+ ],
15
+ plate: { y0: 50.2, y1: 53.8 },
16
+ });
@@ -1,8 +1,21 @@
1
- export { EMBLEMS, emblemInfo, emblemModel, emblemName, emblemOf, emblemSvg, isBallId, isEmblemId, parseEmblem, renderEmblem } from "./emblems/emblem.api.ts";
2
- export type { EmblemInfo, EmblemRef } from "./emblems/emblem.api.ts";
3
- export { AWARD_IDS, BALL_IDS, CREST_IDS, EMBLEM_FOLDERS, EMBLEM_GROUPS, EMBLEM_IDS, GEAR_IDS, MEDAL_IDS, SPORT_IDS, SPORT_NAMES, TROPHY_IDS } from "./emblems/emblem.ids.ts";
4
- export type { AwardId, BallId, CrestId, EmblemGroup, EmblemId, GearId, MedalId, SportEmblemId, SportName, TrophyId } from "./emblems/emblem.ids.ts";
1
+ export { EMBLEM_DESCRIPTIONS } from "./emblems/emblem.descriptions.ts";
2
+ export type { EmblemDescription } from "./emblems/emblem.descriptions.ts";
3
+ export { EMBLEMS, crest, emblemInfo, emblemModel, emblemName, emblemOf, emblemSvg, isBallId, isEmblemId, medal, parseEmblem, pennant, renderEmblem, sportIcon } from "./emblems/emblem.api.ts";
4
+ export type { CrestOptions, EmblemInfo, EmblemRef, PennantOptions } from "./emblems/emblem.api.ts";
5
+ export { AWARD_IDS, BALL_IDS, CREST_IDS, CREST_SHAPES, EMBLEM_ALIASES, EMBLEM_FOLDERS, EMBLEM_GROUPS, EMBLEM_IDS, GEAR_IDS, JAPANESE_IDS, MEDAL_IDS, MEDAL_KINDS, PENNANT_IDS, SPORT_IDS, SPORT_NAMES, TROPHY_IDS } from "./emblems/emblem.ids.ts";
6
+ export type { AwardId, BallId, CrestId, CrestShape, EmblemGroup, EmblemId, GearId, JapaneseId, MedalId, MedalKind, PennantId, SportEmblemId, SportName, TrophyId } from "./emblems/emblem.ids.ts";
5
7
  export { EMBLEM_INK, EMBLEM_PAGE, EMBLEM_STYLES, METALS } from "./emblems/emblem.core.ts";
6
- export type { Emblem, EmblemKind, EmblemOptions, EmblemSource, EmblemStyle, EmblemTheme, FrameOptions } from "./emblems/emblem.core.ts";
7
- export type { BallModel, Mark } from "./emblems/emblem.ball.ts";
8
- export type { FlatModel, Shape } from "./emblems/emblem.shapes.ts";
8
+ export type { Emblem, EmblemKind, EmblemLocale, EmblemOptions, EmblemSource, EmblemStyle, EmblemTheme, FrameOptions } from "./emblems/emblem.core.ts";
9
+ export { lineup } from "./emblems/ball/ball.index.ts";
10
+ export type { LineupOptions } from "./emblems/ball/ball.index.ts";
11
+ export type { PieceSize } from "./emblems/ball/ball.core.ts";
12
+ export type { Ball, BallKind, Decor, Handle, LatheModel, Poles, Pt, Solid } from "./emblems/emblem.lathe.ts";
13
+ export type { FlatModel, Role, Shape } from "./emblems/emblem.shapes.ts";
14
+ export { emblemSprite } from "./emblems/emblem.sprite.ts";
15
+ export type { Sprite, SpriteOptions, UseOptions } from "./emblems/emblem.sprite.ts";
16
+ export { emblemDataUri } from "./emblems/emblem.uri.ts";
17
+ export type { DataUriOptions } from "./emblems/emblem.uri.ts";
18
+ export { sportEquipment } from "./emblems/emblem.equipment.ts";
19
+ export type { SportEquipment } from "./emblems/emblem.equipment.ts";
20
+ export { awardCase, podium } from "./emblems/emblem.display.ts";
21
+ export type { AwardCaseOptions, AwardItem, DisplayOptions, PodiumOptions, PodiumPlace } from "./emblems/emblem.display.ts";
@@ -1,5 +1,11 @@
1
1
  // The emblems entry point: `renderEmblem(id, options)` draws any emblem from its id, and the ids and types say which there are. Nothing here imports a single drawing's module directly, so for one
2
2
  // emblem and nothing else import its own module (`@johnmorrisdotca/dougu-sports/ball/soccer`).
3
- export { EMBLEMS, emblemInfo, emblemModel, emblemName, emblemOf, emblemSvg, isBallId, isEmblemId, parseEmblem, renderEmblem } from "./emblems/emblem.api.js";
4
- export { AWARD_IDS, BALL_IDS, CREST_IDS, EMBLEM_FOLDERS, EMBLEM_GROUPS, EMBLEM_IDS, GEAR_IDS, MEDAL_IDS, SPORT_IDS, SPORT_NAMES, TROPHY_IDS } from "./emblems/emblem.ids.js";
3
+ export { EMBLEM_DESCRIPTIONS } from "./emblems/emblem.descriptions.js";
4
+ export { EMBLEMS, crest, emblemInfo, emblemModel, emblemName, emblemOf, emblemSvg, isBallId, isEmblemId, medal, parseEmblem, pennant, renderEmblem, sportIcon } from "./emblems/emblem.api.js";
5
+ export { AWARD_IDS, BALL_IDS, CREST_IDS, CREST_SHAPES, EMBLEM_ALIASES, EMBLEM_FOLDERS, EMBLEM_GROUPS, EMBLEM_IDS, GEAR_IDS, JAPANESE_IDS, MEDAL_IDS, MEDAL_KINDS, PENNANT_IDS, SPORT_IDS, SPORT_NAMES, TROPHY_IDS } from "./emblems/emblem.ids.js";
5
6
  export { EMBLEM_INK, EMBLEM_PAGE, EMBLEM_STYLES, METALS } from "./emblems/emblem.core.js";
7
+ export { lineup } from "./emblems/ball/ball.index.js";
8
+ export { emblemSprite } from "./emblems/emblem.sprite.js";
9
+ export { emblemDataUri } from "./emblems/emblem.uri.js";
10
+ export { sportEquipment } from "./emblems/emblem.equipment.js";
11
+ export { awardCase, podium } from "./emblems/emblem.display.js";
package/dist/index.d.ts CHANGED
@@ -1,6 +1,136 @@
1
1
  export * from "./emblems-entry.ts";
2
2
  export { ballFrame, emblemFrame } from "./emblems/emblem.api.ts";
3
+ export { bindTurn } from "./turn-control.ts";
4
+ export type { TurnAngles, TurnContainer, TurnControlOptions, TurnController, TurnEvent } from "./turn-control.ts";
3
5
  export { EMBLEM_TABLE } from "./emblems/emblem.registry.ts";
4
6
  export { AWARD_MEDAL } from "./emblems/award/medal.ts";
5
- export { BALL_SOCCER } from "./emblems/ball/soccer.ts";
7
+ export { AWARD_BADGE } from "./emblems/award/badge.ts";
8
+ export { AWARD_CROWN } from "./emblems/award/crown.ts";
9
+ export { AWARD_STAR } from "./emblems/award/star.ts";
10
+ export { AWARD_SHIELD } from "./emblems/award/shield.ts";
11
+ export { TROPHY_CUP } from "./emblems/trophy/cup.ts";
12
+ export { TROPHY_LIDDED_CUP } from "./emblems/trophy/lidded-cup.ts";
13
+ export { TROPHY_BOWL } from "./emblems/trophy/bowl.ts";
14
+ export { TROPHY_SALVER } from "./emblems/trophy/salver.ts";
15
+ export { TROPHY_GLOBE } from "./emblems/trophy/globe.ts";
16
+ export { TROPHY_HOCKEY_CUP } from "./emblems/trophy/hockey-cup.ts";
17
+ export { TROPHY_BASKETBALL } from "./emblems/trophy/basketball.ts";
18
+ export { TROPHY_BASEBALL } from "./emblems/trophy/baseball.ts";
19
+ export { TROPHY_FOOTBALL } from "./emblems/trophy/football.ts";
20
+ export { TROPHY_CANADIAN_BOWL } from "./emblems/trophy/canadian-bowl.ts";
21
+ export { TROPHY_SOCCER_BALL } from "./emblems/trophy/soccer-ball.ts";
22
+ export { TROPHY_SOCCER_GLOBE } from "./emblems/trophy/soccer-globe.ts";
23
+ export { TROPHY_TENNIS_PLATE } from "./emblems/trophy/tennis-plate.ts";
24
+ export { TROPHY_TENNIS_CUP } from "./emblems/trophy/tennis-cup.ts";
25
+ export { TROPHY_CRICKET_URN } from "./emblems/trophy/cricket-urn.ts";
26
+ export { TROPHY_RUGBY_CUP } from "./emblems/trophy/rugby-cup.ts";
27
+ export { TROPHY_PLAQUE } from "./emblems/trophy/plaque.ts";
28
+ export { TROPHY_BELT } from "./emblems/trophy/belt.ts";
29
+ export { TROPHY_LAUREL } from "./emblems/trophy/laurel.ts";
30
+ export { TROPHY_ROSETTE } from "./emblems/trophy/rosette.ts";
31
+ export { TROPHY_SUMO_CUP } from "./emblems/trophy/sumo-cup.ts";
32
+ export { TROPHY_CHAMPIONSHIP_BANNER } from "./emblems/trophy/championship-banner.ts";
33
+ export { TROPHY_RING } from "./emblems/trophy/ring.ts";
34
+ export { TROPHY_BANNER } from "./emblems/trophy/banner.ts";
35
+ export { MEDAL_GOLD } from "./emblems/medal/gold.ts";
36
+ export { MEDAL_SILVER } from "./emblems/medal/silver.ts";
37
+ export { MEDAL_BRONZE } from "./emblems/medal/bronze.ts";
38
+ export { MEDAL_PLACE_1 } from "./emblems/medal/place-1.ts";
39
+ export { MEDAL_PLACE_2 } from "./emblems/medal/place-2.ts";
40
+ export { MEDAL_PLACE_3 } from "./emblems/medal/place-3.ts";
41
+ export { CREST_SHIELD } from "./emblems/crest/shield.ts";
42
+ export { CREST_ROUNDEL } from "./emblems/crest/roundel.ts";
43
+ export { CREST_DIAMOND } from "./emblems/crest/diamond.ts";
44
+ export { CREST_PENNANT } from "./emblems/crest/pennant.ts";
45
+ export { PENNANT_CHAMPIONSHIP } from "./emblems/pennant/championship.ts";
46
+ export { SPORT_NFL } from "./emblems/sport/nfl.ts";
47
+ export { SPORT_CFL } from "./emblems/sport/cfl.ts";
48
+ export { SPORT_IFAF } from "./emblems/sport/ifaf.ts";
49
+ export { SPORT_NHL } from "./emblems/sport/nhl.ts";
50
+ export { SPORT_NBA } from "./emblems/sport/nba.ts";
51
+ export { SPORT_MLB } from "./emblems/sport/mlb.ts";
52
+ export { SPORT_SOCCER } from "./emblems/sport/soccer.ts";
53
+ export { SPORT_CURLING } from "./emblems/sport/curling.ts";
54
+ export { SPORT_TENNIS } from "./emblems/sport/tennis.ts";
55
+ export { SPORT_VOLLEYBALL } from "./emblems/sport/volleyball.ts";
56
+ export { SPORT_BADMINTON } from "./emblems/sport/badminton.ts";
57
+ export { SPORT_PICKLEBALL } from "./emblems/sport/pickleball.ts";
58
+ export { SPORT_TABLETENNIS } from "./emblems/sport/tabletennis.ts";
59
+ export { SPORT_PADEL } from "./emblems/sport/padel.ts";
60
+ export { SPORT_SQUASH } from "./emblems/sport/squash.ts";
61
+ export { SPORT_RACQUETBALL } from "./emblems/sport/racquetball.ts";
62
+ export { SPORT_SEPAKTAKRAW } from "./emblems/sport/sepaktakraw.ts";
63
+ export { SPORT_TEQBALL } from "./emblems/sport/teqball.ts";
64
+ export { SPORT_ROUNDNET } from "./emblems/sport/roundnet.ts";
65
+ export { SPORT_NETBALL } from "./emblems/sport/netball.ts";
66
+ export { SPORT_SWIMMING } from "./emblems/sport/swimming.ts";
67
+ export { SPORT_WATERPOLO } from "./emblems/sport/waterpolo.ts";
68
+ export { SPORT_DIVING } from "./emblems/sport/diving.ts";
69
+ export { SPORT_ARTISTICSWIMMING } from "./emblems/sport/artisticswimming.ts";
70
+ export { SPORT_LACROSSE } from "./emblems/sport/lacrosse.ts";
71
+ export { SPORT_RUGBY } from "./emblems/sport/rugby.ts";
72
+ export { SPORT_AFL } from "./emblems/sport/afl.ts";
73
+ export { SPORT_GAELIC } from "./emblems/sport/gaelic.ts";
74
+ export { SPORT_CRICKET } from "./emblems/sport/cricket.ts";
75
+ export { SPORT_FIELDHOCKEY } from "./emblems/sport/fieldhockey.ts";
76
+ export { SPORT_HANDBALL } from "./emblems/sport/handball.ts";
77
+ export { SPORT_ATHLETICS } from "./emblems/sport/athletics.ts";
78
+ export { SPORT_SKATING } from "./emblems/sport/skating.ts";
79
+ export { SPORT_SUMO } from "./emblems/sport/sumo.ts";
80
+ export { SPORT_KENDO } from "./emblems/sport/kendo.ts";
81
+ export { SPORT_JUDO } from "./emblems/sport/judo.ts";
82
+ export { SPORT_KYUDO } from "./emblems/sport/kyudo.ts";
83
+ export { SPORT_KARATE } from "./emblems/sport/karate.ts";
84
+ export { BALL_AFL } from "./emblems/ball/ball.afl.ts";
85
+ export { BALL_BASEBALL } from "./emblems/ball/ball.baseball.ts";
86
+ export { BALL_BASKETBALL } from "./emblems/ball/ball.basketball.ts";
87
+ export { BALL_BASKETBALL_3X3 } from "./emblems/ball/ball.basketball3x3.ts";
88
+ export { BALL_BASKETBALL_6 } from "./emblems/ball/ball.basketball6.ts";
89
+ export { BALL_CRICKET_RED, BALL_CRICKET_WHITE, BALL_CRICKET_PINK } from "./emblems/ball/ball.cricket.ts";
90
+ export { BALL_CURLING_STONE } from "./emblems/ball/ball.curlingstone.ts";
91
+ export { BALL_DISCUS } from "./emblems/ball/ball.discus.ts";
92
+ export { BALL_FIELD_HOCKEY } from "./emblems/ball/ball.fieldhockey.ts";
93
+ export { BALL_FOOTBALL, BALL_FOOTBALL_CFL, BALL_FOOTBALL_IFAF } from "./emblems/ball/ball.football.ts";
94
+ export { BALL_GAELIC_FOOTBALL, BALL_NETBALL } from "./emblems/ball/ball.gaelic.ts";
95
+ export { BALL_GOLF } from "./emblems/ball/ball.golf.ts";
96
+ export { BALL_HAMMER } from "./emblems/ball/ball.hammer.ts";
97
+ export { BALL_HANDBALL } from "./emblems/ball/ball.handball.ts";
98
+ export { BALL_PADEL } from "./emblems/ball/ball.padel.ts";
99
+ export { BALL_PICKLEBALL_OUTDOOR, BALL_PICKLEBALL_INDOOR } from "./emblems/ball/ball.pickleball.ts";
100
+ export { BALL_PUCK } from "./emblems/ball/ball.puck.ts";
101
+ export { BALL_ROUNDNET } from "./emblems/ball/ball.roundnet.ts";
102
+ export { BALL_RUGBY } from "./emblems/ball/ball.rugby.ts";
103
+ export { BALL_SEPAK_TAKRAW } from "./emblems/ball/ball.sepaktakraw.ts";
104
+ export { BALL_SHUTTLECOCK_FEATHER, BALL_SHUTTLECOCK_NYLON } from "./emblems/ball/ball.shuttlecock.ts";
105
+ export { BALL_SLIOTAR } from "./emblems/ball/ball.sliotar.ts";
106
+ export { BALL_LACROSSE, BALL_RACQUETBALL, BALL_TABLE_TENNIS, BALL_SHOT } from "./emblems/ball/ball.smooth.ts";
107
+ export { BALL_SOCCER, BALL_SOCCER_COLOUR } from "./emblems/ball/ball.soccer.ts";
108
+ export { BALL_SOFTBALL } from "./emblems/ball/ball.softball.ts";
109
+ export { BALL_SQUASH_DOUBLE_YELLOW, BALL_SQUASH_YELLOW, BALL_SQUASH_RED, BALL_SQUASH_BLUE, BALL_SQUASH_GREEN } from "./emblems/ball/ball.squash.ts";
110
+ export { BALL_TENNIS } from "./emblems/ball/ball.tennis.ts";
111
+ export { BALL_TEQBALL } from "./emblems/ball/ball.teqball.ts";
112
+ export { BALL_VOLLEYBALL, BALL_VOLLEYBALL_8, BALL_BEACH_VOLLEYBALL } from "./emblems/ball/ball.volleyball.ts";
113
+ export { BALL_WATER_POLO } from "./emblems/ball/ball.waterpolo.ts";
114
+ export { GEAR_BADMINTON_RACKET } from "./emblems/gear/gear.badmintonracket.ts";
115
+ export { GEAR_BASEBALL_GLOVE } from "./emblems/gear/gear.baseballglove.ts";
116
+ export { GEAR_CRICKET_BAT } from "./emblems/gear/gear.cricketbat.ts";
117
+ export { GEAR_BASEBALL_BAT, GEAR_BASKETBALL_HOOP, GEAR_VOLLEYBALL_NET, GEAR_GOALPOSTS, GEAR_WICKET, GEAR_ROUNDNET_SET } from "./emblems/gear/gear.field.ts";
118
+ export { GEAR_FIELD_HOCKEY_STICK } from "./emblems/gear/gear.fieldhockeystick.ts";
119
+ export { GEAR_FOOTBALL_HELMET } from "./emblems/gear/gear.footballhelmet.ts";
120
+ export { GEAR_GOALIE_MASK } from "./emblems/gear/gear.goaliemask.ts";
121
+ export { GEAR_GOAL_NET } from "./emblems/gear/gear.goalnet.ts";
122
+ export { GEAR_HOCKEY_STICK } from "./emblems/gear/gear.hockeystick.ts";
123
+ export { GEAR_LACROSSE_STICK } from "./emblems/gear/gear.lacrossestick.ts";
124
+ export { GEAR_SQUASH_RACKET, GEAR_RACQUETBALL_RACKET, GEAR_PADEL_RACKET, GEAR_PICKLEBALL_PADDLE } from "./emblems/gear/gear.rackets.ts";
125
+ export { GEAR_HOCKEY_SKATE, GEAR_FIGURE_SKATE, GEAR_SPEED_SKATE } from "./emblems/gear/gear.skates.ts";
126
+ export { GEAR_GOALIE_STICK, GEAR_HURLEY, GEAR_CURLING_BROOM } from "./emblems/gear/gear.sticks.ts";
127
+ export { GEAR_TABLE_TENNIS_PADDLE } from "./emblems/gear/gear.tabletennispaddle.ts";
128
+ export { GEAR_TENNIS_RACKET } from "./emblems/gear/gear.tennisracket.ts";
129
+ export { GEAR_STARTING_BLOCKS, GEAR_RELAY_BATON, GEAR_JAVELIN, GEAR_HURDLES } from "./emblems/gear/gear.track.ts";
130
+ export { GEAR_DIVING_BOARD, GEAR_SWIM_GOGGLES } from "./emblems/gear/gear.water.ts";
131
+ export { GEAR_GUNBAI, GEAR_MAWASHI } from "./emblems/gear/gear.sumo.ts";
132
+ export { GEAR_SHINAI, GEAR_KENDO_MEN } from "./emblems/gear/gear.kendo.ts";
133
+ export { GEAR_JUDOGI, GEAR_KARATE_GI, GEAR_OBI, OBI_RANKS, obi } from "./emblems/gear/gear.budo.ts";
134
+ export type { ObiRank } from "./emblems/gear/gear.budo.ts";
135
+ export { GEAR_YUMI, GEAR_YA } from "./emblems/gear/gear.kyudo.ts";
6
136
  export { VERSION } from "./version.ts";
package/dist/index.js CHANGED
@@ -1,8 +1,136 @@
1
- // The full registry: every emblem by id, the functions that draw and turn them, and each emblem as a named constant (`AWARD_MEDAL`, `BALL_SOCCER`). Importing this pulls in every drawing; for one emblem import
2
- // its own module (`@johnmorrisdotca/dougu-sports/ball/soccer`), and for the functions alone `@johnmorrisdotca/dougu-sports/emblems`.
1
+ // The full registry: every emblem by id, the functions that draw and turn them, and each emblem as a named constant (`TROPHY_CUP`, `MEDAL_GOLD`, `SPORT_NHL`). Importing this pulls in every drawing; for one emblem import
2
+ // its own module (`@johnmorrisdotca/dougu-sports/trophy/hockey-cup`), and for the functions alone `@johnmorrisdotca/dougu-sports/emblems`.
3
3
  export * from "./emblems-entry.js";
4
4
  export { ballFrame, emblemFrame } from "./emblems/emblem.api.js";
5
+ export { bindTurn } from "./turn-control.js";
5
6
  export { EMBLEM_TABLE } from "./emblems/emblem.registry.js";
6
7
  export { AWARD_MEDAL } from "./emblems/award/medal.js";
7
- export { BALL_SOCCER } from "./emblems/ball/soccer.js";
8
+ export { AWARD_BADGE } from "./emblems/award/badge.js";
9
+ export { AWARD_CROWN } from "./emblems/award/crown.js";
10
+ export { AWARD_STAR } from "./emblems/award/star.js";
11
+ export { AWARD_SHIELD } from "./emblems/award/shield.js";
12
+ export { TROPHY_CUP } from "./emblems/trophy/cup.js";
13
+ export { TROPHY_LIDDED_CUP } from "./emblems/trophy/lidded-cup.js";
14
+ export { TROPHY_BOWL } from "./emblems/trophy/bowl.js";
15
+ export { TROPHY_SALVER } from "./emblems/trophy/salver.js";
16
+ export { TROPHY_GLOBE } from "./emblems/trophy/globe.js";
17
+ export { TROPHY_HOCKEY_CUP } from "./emblems/trophy/hockey-cup.js";
18
+ export { TROPHY_BASKETBALL } from "./emblems/trophy/basketball.js";
19
+ export { TROPHY_BASEBALL } from "./emblems/trophy/baseball.js";
20
+ export { TROPHY_FOOTBALL } from "./emblems/trophy/football.js";
21
+ export { TROPHY_CANADIAN_BOWL } from "./emblems/trophy/canadian-bowl.js";
22
+ export { TROPHY_SOCCER_BALL } from "./emblems/trophy/soccer-ball.js";
23
+ export { TROPHY_SOCCER_GLOBE } from "./emblems/trophy/soccer-globe.js";
24
+ export { TROPHY_TENNIS_PLATE } from "./emblems/trophy/tennis-plate.js";
25
+ export { TROPHY_TENNIS_CUP } from "./emblems/trophy/tennis-cup.js";
26
+ export { TROPHY_CRICKET_URN } from "./emblems/trophy/cricket-urn.js";
27
+ export { TROPHY_RUGBY_CUP } from "./emblems/trophy/rugby-cup.js";
28
+ export { TROPHY_PLAQUE } from "./emblems/trophy/plaque.js";
29
+ export { TROPHY_BELT } from "./emblems/trophy/belt.js";
30
+ export { TROPHY_LAUREL } from "./emblems/trophy/laurel.js";
31
+ export { TROPHY_ROSETTE } from "./emblems/trophy/rosette.js";
32
+ export { TROPHY_SUMO_CUP } from "./emblems/trophy/sumo-cup.js";
33
+ export { TROPHY_CHAMPIONSHIP_BANNER } from "./emblems/trophy/championship-banner.js";
34
+ export { TROPHY_RING } from "./emblems/trophy/ring.js";
35
+ export { TROPHY_BANNER } from "./emblems/trophy/banner.js";
36
+ export { MEDAL_GOLD } from "./emblems/medal/gold.js";
37
+ export { MEDAL_SILVER } from "./emblems/medal/silver.js";
38
+ export { MEDAL_BRONZE } from "./emblems/medal/bronze.js";
39
+ export { MEDAL_PLACE_1 } from "./emblems/medal/place-1.js";
40
+ export { MEDAL_PLACE_2 } from "./emblems/medal/place-2.js";
41
+ export { MEDAL_PLACE_3 } from "./emblems/medal/place-3.js";
42
+ export { CREST_SHIELD } from "./emblems/crest/shield.js";
43
+ export { CREST_ROUNDEL } from "./emblems/crest/roundel.js";
44
+ export { CREST_DIAMOND } from "./emblems/crest/diamond.js";
45
+ export { CREST_PENNANT } from "./emblems/crest/pennant.js";
46
+ export { PENNANT_CHAMPIONSHIP } from "./emblems/pennant/championship.js";
47
+ export { SPORT_NFL } from "./emblems/sport/nfl.js";
48
+ export { SPORT_CFL } from "./emblems/sport/cfl.js";
49
+ export { SPORT_IFAF } from "./emblems/sport/ifaf.js";
50
+ export { SPORT_NHL } from "./emblems/sport/nhl.js";
51
+ export { SPORT_NBA } from "./emblems/sport/nba.js";
52
+ export { SPORT_MLB } from "./emblems/sport/mlb.js";
53
+ export { SPORT_SOCCER } from "./emblems/sport/soccer.js";
54
+ export { SPORT_CURLING } from "./emblems/sport/curling.js";
55
+ export { SPORT_TENNIS } from "./emblems/sport/tennis.js";
56
+ export { SPORT_VOLLEYBALL } from "./emblems/sport/volleyball.js";
57
+ export { SPORT_BADMINTON } from "./emblems/sport/badminton.js";
58
+ export { SPORT_PICKLEBALL } from "./emblems/sport/pickleball.js";
59
+ export { SPORT_TABLETENNIS } from "./emblems/sport/tabletennis.js";
60
+ export { SPORT_PADEL } from "./emblems/sport/padel.js";
61
+ export { SPORT_SQUASH } from "./emblems/sport/squash.js";
62
+ export { SPORT_RACQUETBALL } from "./emblems/sport/racquetball.js";
63
+ export { SPORT_SEPAKTAKRAW } from "./emblems/sport/sepaktakraw.js";
64
+ export { SPORT_TEQBALL } from "./emblems/sport/teqball.js";
65
+ export { SPORT_ROUNDNET } from "./emblems/sport/roundnet.js";
66
+ export { SPORT_NETBALL } from "./emblems/sport/netball.js";
67
+ export { SPORT_SWIMMING } from "./emblems/sport/swimming.js";
68
+ export { SPORT_WATERPOLO } from "./emblems/sport/waterpolo.js";
69
+ export { SPORT_DIVING } from "./emblems/sport/diving.js";
70
+ export { SPORT_ARTISTICSWIMMING } from "./emblems/sport/artisticswimming.js";
71
+ export { SPORT_LACROSSE } from "./emblems/sport/lacrosse.js";
72
+ export { SPORT_RUGBY } from "./emblems/sport/rugby.js";
73
+ export { SPORT_AFL } from "./emblems/sport/afl.js";
74
+ export { SPORT_GAELIC } from "./emblems/sport/gaelic.js";
75
+ export { SPORT_CRICKET } from "./emblems/sport/cricket.js";
76
+ export { SPORT_FIELDHOCKEY } from "./emblems/sport/fieldhockey.js";
77
+ export { SPORT_HANDBALL } from "./emblems/sport/handball.js";
78
+ export { SPORT_ATHLETICS } from "./emblems/sport/athletics.js";
79
+ export { SPORT_SKATING } from "./emblems/sport/skating.js";
80
+ export { SPORT_SUMO } from "./emblems/sport/sumo.js";
81
+ export { SPORT_KENDO } from "./emblems/sport/kendo.js";
82
+ export { SPORT_JUDO } from "./emblems/sport/judo.js";
83
+ export { SPORT_KYUDO } from "./emblems/sport/kyudo.js";
84
+ export { SPORT_KARATE } from "./emblems/sport/karate.js";
85
+ export { BALL_AFL } from "./emblems/ball/ball.afl.js";
86
+ export { BALL_BASEBALL } from "./emblems/ball/ball.baseball.js";
87
+ export { BALL_BASKETBALL } from "./emblems/ball/ball.basketball.js";
88
+ export { BALL_BASKETBALL_3X3 } from "./emblems/ball/ball.basketball3x3.js";
89
+ export { BALL_BASKETBALL_6 } from "./emblems/ball/ball.basketball6.js";
90
+ export { BALL_CRICKET_RED, BALL_CRICKET_WHITE, BALL_CRICKET_PINK } from "./emblems/ball/ball.cricket.js";
91
+ export { BALL_CURLING_STONE } from "./emblems/ball/ball.curlingstone.js";
92
+ export { BALL_DISCUS } from "./emblems/ball/ball.discus.js";
93
+ export { BALL_FIELD_HOCKEY } from "./emblems/ball/ball.fieldhockey.js";
94
+ export { BALL_FOOTBALL, BALL_FOOTBALL_CFL, BALL_FOOTBALL_IFAF } from "./emblems/ball/ball.football.js";
95
+ export { BALL_GAELIC_FOOTBALL, BALL_NETBALL } from "./emblems/ball/ball.gaelic.js";
96
+ export { BALL_GOLF } from "./emblems/ball/ball.golf.js";
97
+ export { BALL_HAMMER } from "./emblems/ball/ball.hammer.js";
98
+ export { BALL_HANDBALL } from "./emblems/ball/ball.handball.js";
99
+ export { BALL_PADEL } from "./emblems/ball/ball.padel.js";
100
+ export { BALL_PICKLEBALL_OUTDOOR, BALL_PICKLEBALL_INDOOR } from "./emblems/ball/ball.pickleball.js";
101
+ export { BALL_PUCK } from "./emblems/ball/ball.puck.js";
102
+ export { BALL_ROUNDNET } from "./emblems/ball/ball.roundnet.js";
103
+ export { BALL_RUGBY } from "./emblems/ball/ball.rugby.js";
104
+ export { BALL_SEPAK_TAKRAW } from "./emblems/ball/ball.sepaktakraw.js";
105
+ export { BALL_SHUTTLECOCK_FEATHER, BALL_SHUTTLECOCK_NYLON } from "./emblems/ball/ball.shuttlecock.js";
106
+ export { BALL_SLIOTAR } from "./emblems/ball/ball.sliotar.js";
107
+ export { BALL_LACROSSE, BALL_RACQUETBALL, BALL_TABLE_TENNIS, BALL_SHOT } from "./emblems/ball/ball.smooth.js";
108
+ export { BALL_SOCCER, BALL_SOCCER_COLOUR } from "./emblems/ball/ball.soccer.js";
109
+ export { BALL_SOFTBALL } from "./emblems/ball/ball.softball.js";
110
+ export { BALL_SQUASH_DOUBLE_YELLOW, BALL_SQUASH_YELLOW, BALL_SQUASH_RED, BALL_SQUASH_BLUE, BALL_SQUASH_GREEN } from "./emblems/ball/ball.squash.js";
111
+ export { BALL_TENNIS } from "./emblems/ball/ball.tennis.js";
112
+ export { BALL_TEQBALL } from "./emblems/ball/ball.teqball.js";
113
+ export { BALL_VOLLEYBALL, BALL_VOLLEYBALL_8, BALL_BEACH_VOLLEYBALL } from "./emblems/ball/ball.volleyball.js";
114
+ export { BALL_WATER_POLO } from "./emblems/ball/ball.waterpolo.js";
115
+ export { GEAR_BADMINTON_RACKET } from "./emblems/gear/gear.badmintonracket.js";
116
+ export { GEAR_BASEBALL_GLOVE } from "./emblems/gear/gear.baseballglove.js";
117
+ export { GEAR_CRICKET_BAT } from "./emblems/gear/gear.cricketbat.js";
118
+ export { GEAR_BASEBALL_BAT, GEAR_BASKETBALL_HOOP, GEAR_VOLLEYBALL_NET, GEAR_GOALPOSTS, GEAR_WICKET, GEAR_ROUNDNET_SET } from "./emblems/gear/gear.field.js";
119
+ export { GEAR_FIELD_HOCKEY_STICK } from "./emblems/gear/gear.fieldhockeystick.js";
120
+ export { GEAR_FOOTBALL_HELMET } from "./emblems/gear/gear.footballhelmet.js";
121
+ export { GEAR_GOALIE_MASK } from "./emblems/gear/gear.goaliemask.js";
122
+ export { GEAR_GOAL_NET } from "./emblems/gear/gear.goalnet.js";
123
+ export { GEAR_HOCKEY_STICK } from "./emblems/gear/gear.hockeystick.js";
124
+ export { GEAR_LACROSSE_STICK } from "./emblems/gear/gear.lacrossestick.js";
125
+ export { GEAR_SQUASH_RACKET, GEAR_RACQUETBALL_RACKET, GEAR_PADEL_RACKET, GEAR_PICKLEBALL_PADDLE } from "./emblems/gear/gear.rackets.js";
126
+ export { GEAR_HOCKEY_SKATE, GEAR_FIGURE_SKATE, GEAR_SPEED_SKATE } from "./emblems/gear/gear.skates.js";
127
+ export { GEAR_GOALIE_STICK, GEAR_HURLEY, GEAR_CURLING_BROOM } from "./emblems/gear/gear.sticks.js";
128
+ export { GEAR_TABLE_TENNIS_PADDLE } from "./emblems/gear/gear.tabletennispaddle.js";
129
+ export { GEAR_TENNIS_RACKET } from "./emblems/gear/gear.tennisracket.js";
130
+ export { GEAR_STARTING_BLOCKS, GEAR_RELAY_BATON, GEAR_JAVELIN, GEAR_HURDLES } from "./emblems/gear/gear.track.js";
131
+ export { GEAR_DIVING_BOARD, GEAR_SWIM_GOGGLES } from "./emblems/gear/gear.water.js";
132
+ export { GEAR_GUNBAI, GEAR_MAWASHI } from "./emblems/gear/gear.sumo.js";
133
+ export { GEAR_SHINAI, GEAR_KENDO_MEN } from "./emblems/gear/gear.kendo.js";
134
+ export { GEAR_JUDOGI, GEAR_KARATE_GI, GEAR_OBI, OBI_RANKS, obi } from "./emblems/gear/gear.budo.js";
135
+ export { GEAR_YUMI, GEAR_YA } from "./emblems/gear/gear.kyudo.js";
8
136
  export { VERSION } from "./version.js";
@@ -0,0 +1,101 @@
1
+ import { type EmblemRef } from "./emblems/emblem.api.ts";
2
+ import type { FrameOptions } from "./emblems/emblem.core.ts";
3
+ /** The three angles of a turn, in degrees. */
4
+ export interface TurnAngles {
5
+ /** About the vertical axis, from -180 (excluded) to 180. */
6
+ yaw: number;
7
+ /** The tilt toward the eye, within `pitchRange`. */
8
+ pitch: number;
9
+ /** A ball: the turn about the line of sight, from -180 (excluded) to 180. */
10
+ roll: number;
11
+ }
12
+ /** What `bindTurn` takes: the frame options (`style`, `size`, `tint`, `theme`, and the first `yaw`, `pitch` and `roll`) and how the turning behaves. */
13
+ export interface TurnControlOptions extends FrameOptions {
14
+ /** Degrees of turn for each pixel the pointer moves (1.5 by default). */
15
+ sensitivity?: number;
16
+ /** The least and most tilt, in degrees (`[-60, 60]` by default). */
17
+ pitchRange?: readonly [number, number];
18
+ /** Degrees an arrow key turns (5 by default); with Shift it is three times as much (15). */
19
+ keyStep?: number;
20
+ /** Called after each turn the pointer, a key or the auto-turn makes, with the new angles. It is not called for `setAngles` or `update`, which the caller makes itself. */
21
+ onTurn?: (angles: TurnAngles) => void;
22
+ /**
23
+ * `true` starts the auto-turn when the emblem is bound, unless the reader prefers reduced motion, when it starts paused; `"force"` starts it anyway. By default (`false`) nothing turns until `play()` is called.
24
+ * Only read by `bindTurn`.
25
+ */
26
+ autoPlay?: boolean | "force";
27
+ /** Degrees of yaw each second the auto-turn advances (36 by default; negative turns the other way). */
28
+ speed?: number;
29
+ /** When true (the default), a drag holds the auto-turn while the pointer is down, and an arrow key, Home or `setAngles` pauses it. When false nothing but `pause()` stops it. */
30
+ pauseOnInteract?: boolean;
31
+ /** Called with `true` when the auto-turn starts and `false` when it stops, whatever stopped it. */
32
+ onPlayChange?: (playing: boolean) => void;
33
+ }
34
+ /** What `bindTurn` returns. */
35
+ export interface TurnController {
36
+ /** The angles now (a copy). */
37
+ readonly angles: TurnAngles;
38
+ /** Whether the auto-turn is running. */
39
+ readonly playing: boolean;
40
+ /** Whether the emblem now drawn can be turned at all (read from the registry, so an emblem that gains a turn is turnable here without a change). */
41
+ readonly turnable: boolean;
42
+ /** Sets some of the angles (wrapped or clamped as a drag would) and draws. Pauses the auto-turn when `pauseOnInteract` is on. */
43
+ setAngles(angles: Partial<TurnAngles>): void;
44
+ /** Draws another emblem, or the same one with other options, and keeps the angles (unless the options carry some). */
45
+ update(ref: EmblemRef, options?: TurnControlOptions): void;
46
+ /** Starts the auto-turn. An emblem that cannot turn does nothing and gives `false`. */
47
+ play(): boolean;
48
+ /** Stops the auto-turn. */
49
+ pause(): void;
50
+ /** Starts or stops the auto-turn and gives the new state; `false` for an emblem that cannot turn. */
51
+ togglePlay(): boolean;
52
+ /** Removes the listeners and the attributes and styles `bindTurn` added; the last drawing stays. */
53
+ destroy(): void;
54
+ }
55
+ /** An event, as much of it as `bindTurn` reads: a pointer's or a key's. */
56
+ export interface TurnEvent {
57
+ button?: number;
58
+ isPrimary?: boolean;
59
+ pointerId?: number;
60
+ clientX?: number;
61
+ clientY?: number;
62
+ shiftKey?: boolean;
63
+ ctrlKey?: boolean;
64
+ metaKey?: boolean;
65
+ altKey?: boolean;
66
+ key?: string;
67
+ preventDefault(): void;
68
+ }
69
+ /** What `bindTurn` needs of an element: any `HTMLElement` is one, and so is a small fake in a test. */
70
+ export interface TurnContainer {
71
+ innerHTML: string;
72
+ style: {
73
+ touchAction: string;
74
+ userSelect: string;
75
+ cursor: string;
76
+ webkitUserSelect?: string;
77
+ };
78
+ addEventListener(type: string, listener: (event: TurnEvent) => void): void;
79
+ removeEventListener(type: string, listener: (event: TurnEvent) => void): void;
80
+ getAttribute(name: string): string | null;
81
+ setAttribute(name: string, value: string): void;
82
+ removeAttribute(name: string): void;
83
+ setPointerCapture?(pointerId: number): void;
84
+ releasePointerCapture?(pointerId: number): void;
85
+ }
86
+ /** An angle wrapped into -180 (excluded) to 180, as the demo's slider is. */
87
+ export declare function wrapAngle(value: number): number;
88
+ /**
89
+ * Binds an emblem to an element so that it can be turned: it draws `emblemFrame` into `container`, and a drag turns it (left and right are yaw, up and down are pitch, and Shift on a ball is roll), the arrow keys turn
90
+ * it, Home or 0 puts it back, and Space starts and stops an auto-turn. An emblem that cannot turn is drawn as it is, and nothing is listened to. Nothing moves by itself: `autoPlay` is off by default and, under
91
+ * `prefers-reduced-motion`, only starts when it is `"force"`. The element gets `touch-action: none`, `user-select: none`, a grab cursor, a tab stop, a role description and a hint; `destroy()` takes them away.
92
+ * @example
93
+ * ```ts
94
+ * import { bindTurn } from "@johnmorrisdotca/dougu-sports/turn";
95
+ * const turner = bindTurn(document.getElementById("cup")!, "trophy:tennis-cup", { size: 160 });
96
+ * turner.setAngles({ yaw: 40 });
97
+ * console.log(turner.angles.yaw);
98
+ * // 40
99
+ * ```
100
+ */
101
+ export declare function bindTurn(container: TurnContainer, ref: EmblemRef, options?: TurnControlOptions): TurnController;