@johnmorrisdotca/dougu-sports 0.1.0 → 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 (184) hide show
  1. package/CHANGELOG.md +38 -1
  2. package/NOTICE.md +9 -58
  3. package/README.md +168 -32
  4. package/dist/emblems/award/badge.d.ts +2 -2
  5. package/dist/emblems/award/badge.js +14 -5
  6. package/dist/emblems/award/crown.d.ts +1 -1
  7. package/dist/emblems/award/crown.js +14 -4
  8. package/dist/emblems/award/medal.d.ts +2 -2
  9. package/dist/emblems/award/medal.js +14 -5
  10. package/dist/emblems/award/shield.d.ts +1 -1
  11. package/dist/emblems/award/shield.js +10 -4
  12. package/dist/emblems/award/star.d.ts +1 -1
  13. package/dist/emblems/award/star.js +10 -4
  14. package/dist/emblems/ball/ball.afl.js +1 -1
  15. package/dist/emblems/ball/ball.basketball6.js +1 -1
  16. package/dist/emblems/ball/ball.core.d.ts +9 -3
  17. package/dist/emblems/ball/ball.core.js +13 -0
  18. package/dist/emblems/ball/ball.cricket.js +1 -1
  19. package/dist/emblems/ball/ball.engine.js +3 -3
  20. package/dist/emblems/ball/ball.football.js +3 -3
  21. package/dist/emblems/ball/ball.gaelic.js +1 -1
  22. package/dist/emblems/ball/ball.object.js +2 -2
  23. package/dist/emblems/ball/ball.shuttlecock.js +2 -2
  24. package/dist/emblems/ball/ball.squash.js +5 -5
  25. package/dist/emblems/emblem.api.d.ts +39 -1
  26. package/dist/emblems/emblem.api.js +20 -2
  27. package/dist/emblems/emblem.compose.d.ts +31 -0
  28. package/dist/emblems/emblem.compose.js +91 -0
  29. package/dist/emblems/emblem.core.d.ts +48 -2
  30. package/dist/emblems/emblem.core.js +30 -0
  31. package/dist/emblems/emblem.descriptions.d.ts +7 -0
  32. package/dist/emblems/emblem.descriptions.js +60 -0
  33. package/dist/emblems/emblem.display.d.ts +75 -0
  34. package/dist/emblems/emblem.display.js +214 -0
  35. package/dist/emblems/emblem.engrave.d.ts +50 -0
  36. package/dist/emblems/emblem.engrave.js +145 -0
  37. package/dist/emblems/emblem.equipment.d.ts +24 -0
  38. package/dist/emblems/emblem.equipment.js +57 -0
  39. package/dist/emblems/emblem.flip.d.ts +10 -0
  40. package/dist/emblems/emblem.flip.js +45 -0
  41. package/dist/emblems/emblem.ids.d.ts +19 -11
  42. package/dist/emblems/emblem.ids.js +21 -6
  43. package/dist/emblems/emblem.lathe.d.ts +3 -0
  44. package/dist/emblems/emblem.lathe.js +26 -4
  45. package/dist/emblems/emblem.medal.js +4 -4
  46. package/dist/emblems/emblem.pennant.d.ts +3 -0
  47. package/dist/emblems/emblem.pennant.js +79 -0
  48. package/dist/emblems/emblem.registry.js +20 -0
  49. package/dist/emblems/emblem.shapes.d.ts +19 -2
  50. package/dist/emblems/emblem.shapes.js +53 -12
  51. package/dist/emblems/emblem.sprite.d.ts +38 -0
  52. package/dist/emblems/emblem.sprite.js +65 -0
  53. package/dist/emblems/emblem.uri.d.ts +22 -0
  54. package/dist/emblems/emblem.uri.js +29 -0
  55. package/dist/emblems/gear/gear.badmintonracket.d.ts +1 -1
  56. package/dist/emblems/gear/gear.badmintonracket.js +18 -14
  57. package/dist/emblems/gear/gear.baseballglove.d.ts +1 -1
  58. package/dist/emblems/gear/gear.baseballglove.js +20 -14
  59. package/dist/emblems/gear/gear.budo.d.ts +17 -0
  60. package/dist/emblems/gear/gear.budo.js +60 -0
  61. package/dist/emblems/gear/gear.core.d.ts +12 -31
  62. package/dist/emblems/gear/gear.core.js +61 -54
  63. package/dist/emblems/gear/gear.cricketbat.d.ts +1 -1
  64. package/dist/emblems/gear/gear.cricketbat.js +16 -14
  65. package/dist/emblems/gear/gear.fieldhockeystick.d.ts +1 -1
  66. package/dist/emblems/gear/gear.fieldhockeystick.js +15 -14
  67. package/dist/emblems/gear/gear.footballhelmet.d.ts +1 -1
  68. package/dist/emblems/gear/gear.footballhelmet.js +15 -14
  69. package/dist/emblems/gear/gear.goaliemask.d.ts +1 -1
  70. package/dist/emblems/gear/gear.goaliemask.js +22 -16
  71. package/dist/emblems/gear/gear.goalnet.d.ts +1 -1
  72. package/dist/emblems/gear/gear.goalnet.js +24 -14
  73. package/dist/emblems/gear/gear.hockeystick.d.ts +1 -1
  74. package/dist/emblems/gear/gear.hockeystick.js +14 -14
  75. package/dist/emblems/gear/gear.index.js +5 -1
  76. package/dist/emblems/gear/gear.kendo.d.ts +2 -0
  77. package/dist/emblems/gear/gear.kendo.js +41 -0
  78. package/dist/emblems/gear/gear.kyudo.d.ts +2 -0
  79. package/dist/emblems/gear/gear.kyudo.js +31 -0
  80. package/dist/emblems/gear/gear.lacrossestick.d.ts +1 -1
  81. package/dist/emblems/gear/gear.lacrossestick.js +25 -14
  82. package/dist/emblems/gear/gear.skates.js +1 -1
  83. package/dist/emblems/gear/gear.sticks.js +2 -2
  84. package/dist/emblems/gear/gear.sumo.d.ts +2 -0
  85. package/dist/emblems/gear/gear.sumo.js +43 -0
  86. package/dist/emblems/gear/gear.tabletennispaddle.d.ts +1 -1
  87. package/dist/emblems/gear/gear.tabletennispaddle.js +15 -14
  88. package/dist/emblems/gear/gear.tennisracket.d.ts +1 -1
  89. package/dist/emblems/gear/gear.tennisracket.js +16 -14
  90. package/dist/emblems/pennant/championship.d.ts +2 -0
  91. package/dist/emblems/pennant/championship.js +4 -0
  92. package/dist/emblems/sport/afl.js +1 -1
  93. package/dist/emblems/sport/artisticswimming.js +1 -1
  94. package/dist/emblems/sport/cfl.d.ts +1 -1
  95. package/dist/emblems/sport/cfl.js +4 -4
  96. package/dist/emblems/sport/cricket.d.ts +1 -1
  97. package/dist/emblems/sport/cricket.js +13 -4
  98. package/dist/emblems/sport/fieldhockey.js +1 -1
  99. package/dist/emblems/sport/gaelic.js +1 -1
  100. package/dist/emblems/sport/handball.d.ts +1 -1
  101. package/dist/emblems/sport/handball.js +14 -4
  102. package/dist/emblems/sport/ifaf.d.ts +1 -1
  103. package/dist/emblems/sport/ifaf.js +4 -4
  104. package/dist/emblems/sport/judo.d.ts +2 -0
  105. package/dist/emblems/sport/judo.js +13 -0
  106. package/dist/emblems/sport/karate.d.ts +2 -0
  107. package/dist/emblems/sport/karate.js +13 -0
  108. package/dist/emblems/sport/kendo.d.ts +2 -0
  109. package/dist/emblems/sport/kendo.js +14 -0
  110. package/dist/emblems/sport/kyudo.d.ts +2 -0
  111. package/dist/emblems/sport/kyudo.js +15 -0
  112. package/dist/emblems/sport/mlb.d.ts +1 -1
  113. package/dist/emblems/sport/mlb.js +27 -4
  114. package/dist/emblems/sport/nba.d.ts +1 -1
  115. package/dist/emblems/sport/nba.js +11 -4
  116. package/dist/emblems/sport/netball.js +1 -1
  117. package/dist/emblems/sport/nfl.d.ts +2 -1
  118. package/dist/emblems/sport/nfl.js +14 -4
  119. package/dist/emblems/sport/nhl.d.ts +1 -1
  120. package/dist/emblems/sport/nhl.js +12 -4
  121. package/dist/emblems/sport/pickleball.js +1 -1
  122. package/dist/emblems/sport/racquetball.js +1 -1
  123. package/dist/emblems/sport/roundnet.js +1 -1
  124. package/dist/emblems/sport/rugby.d.ts +1 -1
  125. package/dist/emblems/sport/rugby.js +11 -4
  126. package/dist/emblems/sport/sepaktakraw.js +1 -1
  127. package/dist/emblems/sport/soccer.d.ts +1 -1
  128. package/dist/emblems/sport/soccer.js +30 -4
  129. package/dist/emblems/sport/squash.js +1 -1
  130. package/dist/emblems/sport/sumo.d.ts +2 -0
  131. package/dist/emblems/sport/sumo.js +15 -0
  132. package/dist/emblems/sport/tabletennis.js +1 -1
  133. package/dist/emblems/sport/tennis.d.ts +1 -1
  134. package/dist/emblems/sport/tennis.js +14 -4
  135. package/dist/emblems/sport/teqball.js +1 -1
  136. package/dist/emblems/sport/volleyball.d.ts +1 -1
  137. package/dist/emblems/sport/volleyball.js +24 -4
  138. package/dist/emblems/trophy/banner.d.ts +2 -0
  139. package/dist/emblems/trophy/banner.js +20 -0
  140. package/dist/emblems/trophy/baseball.js +1 -0
  141. package/dist/emblems/trophy/basketball.js +1 -0
  142. package/dist/emblems/trophy/belt.js +2 -1
  143. package/dist/emblems/trophy/bowl.js +1 -0
  144. package/dist/emblems/trophy/canadian-bowl.js +1 -0
  145. package/dist/emblems/trophy/championship-banner.d.ts +2 -0
  146. package/dist/emblems/trophy/championship-banner.js +67 -0
  147. package/dist/emblems/trophy/cricket-urn.js +1 -0
  148. package/dist/emblems/trophy/cup.d.ts +1 -1
  149. package/dist/emblems/trophy/cup.js +15 -4
  150. package/dist/emblems/trophy/football.js +2 -1
  151. package/dist/emblems/trophy/globe.js +1 -0
  152. package/dist/emblems/trophy/hockey-cup.js +2 -1
  153. package/dist/emblems/trophy/lidded-cup.js +1 -0
  154. package/dist/emblems/trophy/plaque.js +2 -1
  155. package/dist/emblems/trophy/ring.d.ts +2 -0
  156. package/dist/emblems/trophy/ring.js +30 -0
  157. package/dist/emblems/trophy/rugby-cup.js +1 -0
  158. package/dist/emblems/trophy/salver.js +1 -0
  159. package/dist/emblems/trophy/soccer-ball.js +2 -1
  160. package/dist/emblems/trophy/soccer-globe.js +1 -0
  161. package/dist/emblems/trophy/sumo-cup.d.ts +2 -0
  162. package/dist/emblems/trophy/sumo-cup.js +28 -0
  163. package/dist/emblems/trophy/tennis-cup.js +2 -1
  164. package/dist/emblems/trophy/tennis-plate.js +1 -0
  165. package/dist/emblems-entry.d.ts +15 -6
  166. package/dist/emblems-entry.js +7 -2
  167. package/dist/index.d.ts +17 -0
  168. package/dist/index.js +15 -0
  169. package/dist/turn-control.d.ts +101 -0
  170. package/dist/turn-control.js +363 -0
  171. package/dist/turn-entry.d.ts +2 -0
  172. package/dist/turn-entry.js +1 -0
  173. package/dist/version.d.ts +1 -1
  174. package/dist/version.js +1 -1
  175. package/package.json +7 -1
  176. package/LICENSES/Apache-2.0.txt +0 -202
  177. package/LICENSES/CC-BY-3.0.txt +0 -319
  178. package/LICENSES/upstream/game-icons.license.txt +0 -45
  179. package/LICENSES/upstream/noto-emoji-2D-svg.LICENSE +0 -13
  180. package/LICENSES/upstream/pictogrammers-mdi.LICENSE +0 -20
  181. package/dist/emblems/emblem.material.d.ts +0 -9
  182. package/dist/emblems/emblem.material.data.d.ts +0 -34
  183. package/dist/emblems/emblem.material.data.js +0 -85
  184. package/dist/emblems/emblem.material.js +0 -23
@@ -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
+ });
@@ -1 +1 @@
1
- export declare const GEAR_LACROSSE_STICK: import("./gear.index.ts").Piece<import("./gear.core.ts").CopiedSpec>;
1
+ export declare const GEAR_LACROSSE_STICK: import("./gear.index.ts").Piece<import("./gear.core.ts").GearSpec>;
@@ -1,15 +1,26 @@
1
- // Gear: Lacrosse stick and ball. Copied, with changes, from Noto Emoji `2D/svg/emoji_u1f94d.svg` (googlefonts/noto-emoji at e20cbc2bbec1926686be9f9bee7d1d2cfa1fea0e), Apache-2.0, Copyright 2013 Google, Inc. All Rights Reserved..
2
- // SHA-256 of the file as published: ce40c95b1697093ca59efbd1a7172da719b7e529112e85d841270c24dc9db568.
3
- // The line style is worked out of the colour artwork (dark parts become the ink); no other line artwork is used.
4
- // Changes: editor wrappers, metadata and ids removed, coordinates written absolute and rounded. Modified files are marked as the Apache-2.0 licence asks. Do not edit by hand: scripts/dougu/build-gear.mjs writes this file.
5
- import { copied } from "./gear.core.js";
6
- export const GEAR_LACROSSE_STICK = /* @__PURE__ */ copied({
7
- id: "gear:lacrosse-stick",
8
- en: "Lacrosse stick and ball",
9
- ja: "ラクロスのクロスとボール",
10
- source: "noto",
11
- credit: "Noto Emoji `2D/svg/emoji_u1f94d.svg` (googlefonts/noto-emoji at e20cbc2bbec1926686be9f9bee7d1d2cfa1fea0e), Apache-2.0, Copyright 2013 Google, Inc. All Rights Reserved..",
12
- box: "0 0 128 128",
13
- colour: `<g><polygon fill="#9A9A99" points="12.4 110.7 51.8 71.6 56.7 77 17 116"/><g><path fill="#9B9B9C" d="M123 53.8C123 53.7 121.3 51.2 119.1 49C116.7 46.6 113.3 44.5 113.2 44.4L110.9 43L111.3 45.6C111.3 45.6 111.6 48.3 111.5 50.4C111.3 53.6 110.6 56.1 110.6 56.1C110.5 56.8 110.9 57.5 111.5 57.6C111.6 57.6 111.7 57.7 111.8 57.7C112.4 57.7 112.9 57.3 113.1 56.7C113.1 56.6 113.7 54 114 50.5C114 49.7 114 48.8 114 48C115 48.7 116.3 49.7 117.3 50.8C119.4 52.8 120.9 55.1 121 55.2C121.3 55.7 122.1 55.9 122.7 55.5C123.3 55.1 123.4 54.3 123 53.8Z"/><path fill="#9B9B9C" d="M72.3 67.9C71.6 67.9 71.1 68.4 71.1 69.1L71.2 77.8C71.2 78.5 71.8 79 72.5 79C72.5 79 72.5 79 72.5 79C73.2 79 73.7 78.4 73.7 77.7L73.6 69.1C73.6 68.4 73 67.9 72.3 67.9Z"/><path fill="#9B9B9C" d="M109.7 39.7C110.6 40.4 111.4 41.1 112.1 41.7C112 41.9 112 42 111.9 42L113 42.6C114.3 44 115 45.1 115 45.1L116.7 44.1C116.6 43.9 115.9 42.8 114.5 41.3C115 40.1 115.6 38.5 116.2 36.3C118.8 38.4 120.4 40 120.5 40.1L121.9 38.7C121.8 38.5 119.8 36.6 116.7 34.2C116.8 33.6 116.9 33.1 117 32.5C117.3 31.1 117.5 29.7 117.6 28.4C120 29.6 121.3 30.6 121.3 30.6L122.5 29C122.4 28.9 120.7 27.7 117.8 26.3C117.9 23.6 117.8 21.5 117.6 20.3C118.5 20.5 119 20.6 119 20.6L119.5 18.7C119.2 18.6 115.8 17.8 110.5 17.4C110.2 15.8 109.9 14.7 109.9 14.6L107.9 15.1C108 15.1 108.2 15.9 108.4 17.3C107.4 17.2 106.3 17.2 105.1 17.2C104.6 15.2 103.8 13.5 102.9 12.1C106.7 11.8 109.5 12 109.5 12L109.7 10C109.5 10 106.1 9.7 101.7 10.2C99.7 7.6 97.9 6.3 97.7 6.2L96.6 7.8C96.6 7.9 97.9 8.7 99.3 10.5C98.4 10.6 97.5 10.8 96.6 11C96.1 11.1 95.5 11.2 94.9 11.4C92.3 8.5 89.7 6.6 89.5 6.5L88.4 8.2C88.4 8.2 90.5 9.7 92.7 11.9C90.7 12.5 88.9 13.1 87.3 13.6C86.9 13.4 86.7 13.3 86.6 13.3L86.3 14C84.2 14.8 82.8 15.4 82.2 15.6L84 12.7L76.6 5C76.1 4.5 75.3 4.4 74.8 4.9C74.3 5.4 74.3 6.2 74.8 6.7L80.8 13.1L80 14.4C79.2 14.4 77.7 14.6 76 14.8C73.6 15.1 71.5 15.5 71.4 15.6C70.7 15.7 70.3 16.3 70.4 17C70.6 17.6 71.1 18 71.7 18C71.7 18 71.8 18 71.9 18C71.9 18 74.1 17.6 76.4 17.3C78.7 16.9 80.8 16.8 80.8 16.8L81.5 16.8L82 15.9L82.5 16.9L81.3 18C81.3 18 82.3 19.1 83.7 21.3C80.6 22.6 78.7 23.6 78.5 23.7L79.5 25.5C79.6 25.5 81.6 24.4 84.7 23.1C85.1 23.7 85.4 24.3 85.8 25C80.8 27 77.6 29.4 77.4 29.6L78.6 31.2C78.6 31.1 81.8 28.8 86.6 26.9C87.3 28.7 87.8 30.6 88.1 32.5C86.6 32.7 85.1 32.8 83.8 33C83.5 31.6 83.3 30.7 83.3 30.6L81.3 31C81.3 31.1 81.5 31.9 81.8 33.3C80.2 33.6 78.8 33.9 77.5 34.2C77.2 33 76.9 32.5 76.8 32.4L75.2 33.6C75.2 33.6 75.4 33.9 75.6 34.7C74.3 35 73.6 35.3 73.4 35.3L74 37.2C74.1 37.2 74.8 37 76 36.6C76.1 37.5 76.2 38.5 76.3 39.8C74.9 40.1 73.7 40.4 72.6 40.8C72.5 40.5 72.5 40.4 72.5 40.3L70.5 40.4C70.5 40.4 70.6 40.8 70.6 41.4C68.9 41.9 67.9 42.3 67.8 42.4L68.6 44.2C68.6 44.2 69.3 43.9 70.6 43.5C70.7 44.1 70.7 44.8 70.7 45.5C69.6 45.8 68.7 46 67.9 46.2L66.2 46L66.1 46.8C64.5 47.3 63.6 47.6 63.5 47.7L64.2 49.5C64.3 49.5 64.8 49.3 65.7 49L65.2 52.1C62.2 53.2 60 54.3 58.9 55.2C58.7 55.1 58.5 55 58.2 55C58.1 55 55.1 54.9 53.1 55.1C49.9 55.4 47.4 56 47.3 56C46.6 56.1 46.2 56.8 46.3 57.5C46.5 58.1 47 58.4 47.6 58.4C47.6 58.4 47.7 58.4 47.8 58.4C47.8 58.4 50.3 57.9 53.3 57.6C55.2 57.4 58.1 57.5 58.2 57.5C58.9 57.5 59.4 57 59.4 56.3H60.1C60.1 56.6 59.9 56.9 59.8 57C60.1 56.7 61.9 55.6 64.8 54.5L64.8 54.8L66.8 55.1L67 53.7C68 53.3 69.1 53 70.2 52.7C70 54.1 69.8 55.3 69.5 56.3C68.1 56.6 67.2 56.9 67.1 56.9L67.7 58.8C67.7 58.8 68.1 58.7 68.8 58.5C68.8 58.6 68.8 58.7 68.8 58.7L70.6 59.4C70.6 59.4 70.8 58.9 71.1 58C72.2 57.8 73.5 57.6 74.8 57.4C74.6 58.3 74.3 59.2 74.1 60C71.8 60.4 70.4 61 70.3 61.1L71.1 62.9C71.1 62.9 71.9 62.5 73.3 62.2C72.4 64.7 71.7 66.2 71.6 66.3L73.4 67.2C73.5 67 74.5 65 75.6 61.9C76 61.8 76.4 61.8 76.9 61.8C80.3 61.7 82 62.4 82 62.5L82.8 60.6C82.8 60.6 82.5 60.5 82 60.3C82.2 59.5 82.5 58.4 82.8 57C86.1 57 87.3 56.9 87.3 56.9L88.1 56.9L88.3 56.2C88.3 56 88.9 53.9 89.4 50.9C94.7 51.1 95.9 51.8 96 51.9L96.6 51.1L97.4 50.4C97.3 50.3 97.1 50.2 96.7 50C96.7 49.4 96.8 48.2 96.9 46.5C97.4 46.7 97.9 46.8 98.3 47C97.8 48 97.4 48.6 97.4 48.6L99.1 49.7C99.2 49.5 99.6 48.9 100.2 47.7C101.7 48.5 102.4 49.1 102.5 49.1L103.8 47.7C103.7 47.6 102.8 46.8 101.1 45.9C101.5 45 102 43.9 102.5 42.6C103.8 43.4 104.8 44.2 105.5 44.9C105 45.9 104.7 46.4 104.7 46.4L106.4 47.5C106.4 47.4 106.6 47.1 106.9 46.6C107 46.7 107 46.8 107.1 46.9L108.8 45.9C108.8 45.8 108.5 45.3 107.9 44.6C108.5 43.3 109.1 41.7 109.7 39.7ZM113 39.8C112.2 39 111.3 38.3 110.2 37.6C110.6 36.1 110.9 34.5 111.2 32.7C111.2 32.7 111.3 32.8 111.4 32.8C112.5 33.5 113.5 34.3 114.5 35C113.9 37 113.4 38.6 113 39.8ZM95 44C93.6 43.7 92.1 43.5 90.4 43.4C90.4 43.4 90.4 43.3 90.4 43.2C90.4 42.1 90.5 41.1 90.5 40C91.4 40 92.4 40 93.3 40C93.9 40.1 94.5 40.1 95 40.2C95 41.5 95 42.8 95 44ZM84.2 48.9C84.3 47.8 84.4 46.7 84.5 45.5C84.5 45.5 84.5 45.5 84.6 45.5C85.9 45.4 87.1 45.4 88.2 45.4C88.1 46.6 87.9 47.7 87.8 48.8C86.7 48.8 85.5 48.8 84.2 48.9ZM81.1 49C80.2 49.1 79.2 49.1 78.3 49.2C78.4 48.3 78.5 47.3 78.5 46.3C78.5 46.2 78.5 46.2 78.5 46.1C79.8 46 81.1 45.8 82.5 45.7C82.4 46.8 82.3 47.9 82.2 49C81.8 49 81.4 49 81.1 49ZM81.9 51C81.7 52.5 81.4 53.8 81.2 55C80.5 55 79.8 55.1 78.9 55.1C78.4 55.1 78 55.1 77.5 55.1C77.7 53.9 77.9 52.6 78.1 51.3C79.1 51.2 80.1 51.1 81.2 51C81.4 51 81.6 51 81.9 51ZM72.7 47.1C73.8 46.9 75.1 46.6 76.5 46.4C76.4 47.5 76.4 48.5 76.3 49.5C75 49.7 73.8 49.9 72.6 50.1C72.6 49.9 72.6 49.6 72.6 49.4C72.7 48.7 72.7 47.9 72.7 47.1ZM82.6 43.6C81.2 43.8 79.8 43.9 78.5 44.1C78.5 43.1 78.5 42.2 78.4 41.4C79.7 41.1 81.1 40.8 82.6 40.6C82.6 41.6 82.7 42.6 82.6 43.6ZM84.6 43.5C84.7 42.4 84.6 41.4 84.6 40.3C85.9 40.2 87.2 40.1 88.5 40C88.5 41.1 88.4 42.1 88.4 43.1C88.4 43.2 88.4 43.3 88.4 43.4C87.2 43.3 85.9 43.4 84.6 43.5ZM93.4 38C92.5 38 91.5 38 90.5 38C90.5 36.8 90.4 35.6 90.3 34.4C91.8 34.4 93.3 34.4 94.8 34.5C94.9 35.7 95 37 95 38.2C94.5 38.1 94 38.1 93.4 38ZM96.9 34.7C97.6 34.8 98.3 34.9 99.1 35C100.3 35.3 101.5 35.6 102.6 36C102.3 37.4 101.8 38.6 101.4 39.8C100.1 39.3 98.7 38.8 97 38.5C97 37.3 96.9 36 96.9 34.7ZM99.4 33.1C98.5 32.9 97.6 32.8 96.7 32.7C96.6 31 96.4 29.3 96.1 27.6C95.9 26.5 95.7 25.5 95.4 24.5C96.5 24.4 97.7 24.3 99 24.2C99.2 26.2 99 27.4 99 27.4L99.3 27.4V28.9C99.4 28.9 101.3 29 104 29.6C103.8 31.2 103.5 32.6 103.1 34.1C102 33.7 100.8 33.3 99.4 33.1ZM103.6 19.3C103.8 20.3 104 21.4 104.1 22.5C103 22.3 101.8 22.3 100.7 22.2C100.5 21.4 100.2 20.5 99.8 19.5C101.1 19.4 102.4 19.3 103.6 19.3ZM109.4 29.5C108.3 28.9 107.2 28.5 106.1 28.2C106.2 27 106.3 25.9 106.2 24.8C107.4 25 108.4 25.2 109.5 25.4C109.5 26.7 109.5 28.1 109.4 29.5ZM104.2 27.6C102.9 27.3 101.9 27.2 101.1 27.1C101.1 26.5 101.1 25.5 101 24.2C102.1 24.3 103.2 24.4 104.2 24.5C104.3 25.5 104.2 26.6 104.2 27.6ZM98.6 22.2C97.3 22.3 95.9 22.4 94.7 22.6C94.4 21.8 94 21.1 93.6 20.4C94.9 20.1 96.3 19.9 97.8 19.7C98.1 20.6 98.4 21.5 98.6 22.2ZM105.9 30.2C107 30.6 108.1 31 109.3 31.6C109.1 33.3 108.8 35 108.4 36.5C107.4 35.9 106.3 35.3 105.1 34.8C105.4 33.3 105.7 31.8 105.9 30.2ZM115.1 32.1C115 32.4 115 32.6 114.9 32.8C114.2 32.3 113.3 31.7 112.5 31.1C112.1 30.9 111.7 30.7 111.4 30.5C111.5 29 111.5 27.5 111.5 26C113.1 26.5 114.5 27 115.7 27.5C115.6 29 115.4 30.5 115.1 32.1ZM115.6 20C115.7 20.8 115.9 22.7 115.8 25.4C114.5 24.9 113 24.3 111.4 23.9C111.3 22.2 111.1 20.8 110.9 19.5C112.7 19.6 114.3 19.8 115.6 20ZM109.3 23.3C108.3 23.1 107.3 22.9 106.1 22.7C106.1 21.6 105.9 20.4 105.6 19.3C106.7 19.3 107.8 19.3 108.8 19.3C109 20.5 109.2 21.9 109.3 23.3ZM97.1 12.9C98.3 12.7 99.5 12.5 100.7 12.3C101.6 13.7 102.4 15.3 103.1 17.3C101.8 17.3 100.4 17.4 99 17.5C98.8 17.1 98.6 16.7 98.4 16.2C97.8 15.1 97.1 14.1 96.4 13.1C96.6 13.1 96.8 13 97.1 12.9ZM94.2 13.6C95.1 14.7 96 15.9 96.6 17.2C96.7 17.4 96.8 17.6 96.9 17.8C95.4 18 93.9 18.3 92.5 18.6C91.4 17.1 90.3 15.9 89.3 15.1C90.8 14.6 92.4 14.1 94.2 13.6ZM83.4 17.3C84 17 85.3 16.5 87.1 15.9C87.9 16.5 89.2 17.6 90.4 19.1C88.6 19.6 87 20.1 85.6 20.6C84.7 19 83.9 18 83.4 17.3ZM87.7 24.3C87.3 23.6 87 23 86.7 22.4C88.1 21.9 89.8 21.3 91.6 20.9C92 21.5 92.3 22.2 92.7 23C90.9 23.3 89.2 23.8 87.7 24.3C87.7 24.3 87.7 24.3 87.7 24.3ZM88.5 26.2C90 25.7 91.7 25.2 93.4 24.8C93.7 25.8 94 26.8 94.1 27.9C94.4 29.4 94.6 30.9 94.7 32.5C93.2 32.4 91.6 32.4 90.1 32.4C89.8 30.3 89.3 28.2 88.5 26.2ZM88.3 34.5C88.4 35.7 88.5 36.8 88.5 38C87.1 38.1 85.8 38.2 84.5 38.3C84.4 37.1 84.2 36 84.1 35C85.4 34.8 86.9 34.7 88.3 34.5ZM78 36.2C79.2 35.9 80.6 35.6 82.1 35.3C82.3 36.3 82.4 37.4 82.5 38.6C81 38.8 79.6 39 78.3 39.3C78.2 38.1 78.1 37 78 36.2ZM72.7 42.8C73.7 42.5 75 42.2 76.4 41.8C76.5 42.6 76.5 43.4 76.5 44.4C75.1 44.6 73.9 44.8 72.7 45.1C72.7 44.3 72.7 43.5 72.7 42.8ZM67.4 51.4L67.9 48.3C68.7 48.1 69.6 47.8 70.7 47.6C70.7 48.2 70.7 48.8 70.6 49.2C70.6 49.7 70.6 50.1 70.5 50.5C69.4 50.8 68.4 51.1 67.4 51.4ZM71.7 55.8C72 54.8 72.2 53.6 72.4 52.2C73.5 51.9 74.8 51.7 76.1 51.5C75.9 52.8 75.6 54.1 75.4 55.3C74.1 55.4 72.8 55.6 71.7 55.8ZM80.1 59.9C79.2 59.8 78.1 59.7 76.9 59.8C76.7 59.8 76.5 59.8 76.3 59.8C76.5 59 76.8 58.1 77 57.2C77.6 57.1 78.3 57.1 79 57.1C79.6 57.1 80.2 57.1 80.7 57.1C80.5 58.2 80.3 59.2 80.1 59.9ZM86.5 54.9C85.9 54.9 84.8 55 83.2 55C83.5 53.8 83.7 52.4 83.9 50.9C85.2 50.8 86.4 50.8 87.4 50.8C87.1 52.6 86.7 54.1 86.5 54.9ZM94.7 49.4C93.6 49.2 92 49 89.8 48.9C89.9 47.8 90.1 46.6 90.2 45.4C92 45.5 93.5 45.7 94.9 46C94.9 47.5 94.8 48.7 94.7 49.4ZM99.2 45.1C98.6 44.9 97.8 44.7 97 44.4C97 43.3 97.4 42 97.4 40.6C98.8 40.9 99.7 41.3 100.7 41.7C100.2 43 99.7 44.2 99.2 45.1ZM103.3 40.7C103.7 39.5 104.2 38.2 104.6 36.7C105.8 37.3 106.9 37.9 107.9 38.5C107.4 40.3 106.9 41.8 106.4 43C105.6 42.2 104.6 41.5 103.3 40.7Z"/></g><path fill="#5E6367" d="M114.7 11.6C96.5 -4.7 80.8 7.9 80.1 12C79.6 14.3 78.6 20.3 77.3 24.3C76 28.3 70.4 36.6 66 42.1C61.5 47.5 56.6 52.9 56 56.7C55.6 59.6 55.6 61.5 54.8 63.6C54.1 65.8 50 68.4 50.2 70.5C50.3 72.5 56 78.1 57.3 78.4C59.2 78.7 61.3 75.2 63.3 73.9C65.4 72.6 68.2 71.9 71.7 71.2C75.3 70.6 79.6 66.3 84 62.8C89.9 58 98.1 51.8 104.7 50.3C110.3 49 116.6 48.4 118.8 47.2C121.2 46.1 131.7 26.9 114.7 11.6ZM109.9 11.9C110.7 11.1 112.2 12.3 113.7 13.7C115.2 15.2 116.7 16.6 115.9 17.4C115.4 18.1 113.5 16.8 112.3 15.6C111 14.4 109.3 12.5 109.9 11.9ZM75.8 63.8C71.5 67.1 67.9 67.7 63.5 63.3C59.6 59.4 61.5 54.4 63.7 51.8C64.8 50.5 68.8 45.3 73 39.7C73 39.7 92.7 23.5 98.2 29.7C102.3 34.5 92.6 49.8 91.6 51.4C85.6 55.3 79.3 61.1 75.8 63.8ZM97.9 48.1C100.8 42.5 105.1 32.4 100.9 27.6C94.8 20.7 83.6 27.6 79.1 30.7C81.7 25.6 82.5 20 83.3 16.2C85.6 16.5 94.3 18 101.9 25C109.6 32.1 110.7 42.3 110.8 44.8C106.9 45.8 101.9 46.7 97.9 48.1ZM117.6 41.9C117.1 42.6 116.1 43.2 114.6 43.7L114.7 43.7C114.7 43.7 114.5 31.5 104.6 22.3C96.7 15 87.8 12.9 84.5 12.3C84.6 12.2 84.7 12 84.8 11.9C93.8 3.3 106.9 11.1 106.9 11.1C106.9 11.1 106.2 14.4 110.2 18C114.7 22.2 117.6 21 117.6 21C117.6 21 123.5 33.3 117.6 41.9Z"/><path fill="#5E6367" d="M62.7 57.7C63.1 60.7 67.3 64.9 70.1 65.2C72.5 65.5 74.3 63.8 74.3 62.3C74.3 60.8 67.2 53.7 65.9 53.4C64.6 53.2 62.5 55.5 62.7 57.7Z"/><path fill="#5F6367" d="M4.1 116.2C4.1 117.3 10.7 124.2 11.4 124.2C12.1 124.2 17.8 117.7 18.3 116.1C18.7 114.9 18.8 114.4 18.4 113.9C18 113.5 14.4 109.7 13.8 109.3C13.3 108.9 12.2 109.3 11.3 109.9C10.4 110.4 4.1 115.2 4.1 116.2Z"/><path fill="#C7C7C7" d="M51.5 74.8C50.3 73.5 40.6 84.7 31.8 93.2C23.1 101.8 16 109 15.6 109.5C15 110.3 16.4 111.8 17.3 111.1C18.1 110.4 25.6 103.3 34.3 94.2C43 85.2 52.7 76.2 51.5 74.8Z"/><path fill="#FF6011" d="M97.1 66C91 66.1 84 69.6 83.9 78.8C83.8 86.9 90.4 92 96.7 92C103.2 92 109.6 87.4 109.8 79.2C110 70.8 103.9 66 97.1 66Z"/><path fill="#FF8F50" d="M91.6 84.3C95.5 86.1 101 85.1 102.7 81C105.1 75.4 102.3 70.8 98.7 69.3C95.3 67.9 90.8 68.9 88.6 72.6C87.1 75.1 86.3 81.8 91.6 84.3Z"/><path fill="#FFAF76" d="M89.8 81.9C88 82.5 85.2 76 89.4 71.4C93.4 67 99.4 68.9 99.5 70.7C99.7 74 95.3 71.4 92.8 74.4C90.2 77.6 92.6 81.1 89.8 81.9Z"/></g>`,
14
- line: "derived",
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
+ ],
15
26
  });
@@ -1,6 +1,6 @@
1
1
  // Ice skates drawn by us, all facing right: a hockey skate, a figure skate and a speed skate.
2
2
  import { capsule, drawn, rect, seg } from "./gear.core.js";
3
- export const GEAR_HOCKEY_SKATE = /* @__PURE__ */ drawn("gear:hockey-skate", "Hockey skate", "アイスホッケーのスケート靴", {
3
+ export const GEAR_HOCKEY_SKATE = /* @__PURE__ */ drawn("gear:hockey-skate", "Hockey skate", "アイスホッケースケート", {
4
4
  main: "#232a36",
5
5
  accent: "#d4202c",
6
6
  parts: [
@@ -1,7 +1,7 @@
1
1
  // A goalie's stick, a hurley and a curling broom, drawn by us.
2
2
  import { capsule, drawn, poly, rect, seg } from "./gear.core.js";
3
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", "ゴールキーパーのスティック", {
4
+ export const GEAR_GOALIE_STICK = /* @__PURE__ */ drawn("gear:goalie-stick", "Goalie stick", "ゴーリーのスティック", {
5
5
  main: "#d9b57a",
6
6
  accent: "#1d1f24",
7
7
  parts: [
@@ -12,7 +12,7 @@ export const GEAR_GOALIE_STICK = /* @__PURE__ */ drawn("gear:goalie-stick", "Goa
12
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
13
  ],
14
14
  });
15
- export const GEAR_HURLEY = /* @__PURE__ */ drawn("gear:hurley", "Hurley", "ハーリー(ハーリングのスティック)", {
15
+ export const GEAR_HURLEY = /* @__PURE__ */ drawn("gear:hurley", "Hurley", "ハーリングのスティック", {
16
16
  main: "#e0c48e",
17
17
  accent: "#8a949f",
18
18
  parts: [
@@ -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
+ });
@@ -1 +1 @@
1
- export declare const GEAR_TABLE_TENNIS_PADDLE: import("./gear.index.ts").Piece<import("./gear.core.ts").CopiedSpec>;
1
+ export declare const GEAR_TABLE_TENNIS_PADDLE: import("./gear.index.ts").Piece<import("./gear.core.ts").GearSpec>;
@@ -1,15 +1,16 @@
1
- // Gear: Table-tennis paddle and ball. Copied, with changes, from Noto Emoji `2D/svg/emoji_u1f3d3.svg` (googlefonts/noto-emoji at e20cbc2bbec1926686be9f9bee7d1d2cfa1fea0e), Apache-2.0, Copyright 2013 Google, Inc. All Rights Reserved..
2
- // SHA-256 of the file as published: 869fec9adbb6509ed18129cbbd7871dfd58ac3790c2aabd0476805ec7dbd75c4.
3
- // The line style is the one-path icon Pictogrammers Material Design Icons `svg/table-tennis.svg` (Templarian/MaterialDesign-SVG at 9e04201d4557e729822fb57f62a316c3dea1d4a8), Apache-2.0, icon by Google (SHA-256 a0207fec1a5db279513a855faabc3e6cab1c3606024f8b2b993ef59d142f8959).
4
- // Changes: editor wrappers, metadata and ids removed, coordinates written absolute and rounded. Modified files are marked as the Apache-2.0 licence asks. Do not edit by hand: scripts/dougu/build-gear.mjs writes this file.
5
- import { copied } from "./gear.core.js";
6
- export const GEAR_TABLE_TENNIS_PADDLE = /* @__PURE__ */ copied({
7
- id: "gear:table-tennis-paddle",
8
- en: "Table-tennis paddle and ball",
9
- ja: "卓球のラケットとボール",
10
- source: "noto",
11
- credit: "Noto Emoji `2D/svg/emoji_u1f3d3.svg` (googlefonts/noto-emoji at e20cbc2bbec1926686be9f9bee7d1d2cfa1fea0e), Apache-2.0, Copyright 2013 Google, Inc. All Rights Reserved.. Line style: Pictogrammers Material Design Icons `svg/table-tennis.svg` (Templarian/MaterialDesign-SVG at 9e04201d4557e729822fb57f62a316c3dea1d4a8), Apache-2.0, icon by Google.",
12
- box: "0 0 128 128",
13
- colour: `<g><path fill="#FDD083" d="M40.8 62C40.8 62 31.5 65.8 31.8 66.9C32 68 33.7 70.6 34.6 72.8C35.3 74.4 36.6 77.1 36.4 79.4C36.1 81.7 34.8 85.9 34.8 85.9L48.7 97.6C48.7 97.6 51.2 94.8 55.2 93.6C59 92.4 62 93.2 63.4 93.3C66 93.5 69.6 93.8 70.2 93.6C71.3 93 55.8 73 55.8 73L40.8 62Z"/><path fill="#F3A25A" d="M42 73C42 73 33.8 86.4 28.4 94C23.1 101.5 18.5 107.1 17.8 107.8C17.2 108.5 13.8 111.3 13.9 112.8C14.1 114.4 18 116.9 21.8 119.6C25.6 122.3 28.7 125.2 30.2 124.6C31.6 124.1 35.5 117 37.9 113.5C42.4 107.1 59 83.6 59 83.6L42 73Z"/><path fill="#FDD083" d="M41 82.4C41.4 82.4 41.2 85.7 44.2 87.5C47.2 89.4 49.6 89 49.9 89.4C50.1 89.5 46.6 94.6 42.5 100.4C37.3 107.8 31.5 115.7 31 116.5C30.3 117.6 28.2 119.4 25.9 118C23.7 116.6 21.3 114.8 20.4 113.4C19.6 112 20.5 110.8 21.8 109.1C22.5 108.2 27.6 101.1 32.5 94.1C36.6 88.4 40.7 82.4 41 82.4Z"/><path fill="#FF4F28" d="M31.8 66.9L68.5 93.7C68.5 93.7 78.7 95 85.5 91.5C92.3 88 100 82.8 107.4 69.1C115.1 54.9 122.2 28.9 96.9 12.8C71.7 -3.3 49.1 16.7 42.6 24.5C36 32.3 29.9 41.5 29.4 52.5C28.9 62.5 31.8 66.9 31.8 66.9Z"/><g><path fill="#EE3E23" d="M107.4 69.1C108 68.1 108.5 67 109.1 65.9C108.5 65 107.9 64.2 107.2 63.5C101 57.3 91 57.3 84.8 61.9C78.5 66.5 75.6 76.6 80.9 84.6C82.5 87 84.9 89 87.8 90.3C94.1 86.8 100.9 81.3 107.4 69.1Z"/><path fill="#D8CDC9" d="M85.9 68.3C79.6 73 76.6 83.1 81.9 91.1C86.6 98.1 98.7 101.5 107.1 94.2C116 86.6 112.9 74.6 108.3 70C102.1 63.8 92.1 63.8 85.9 68.3Z"/><path fill="#EAEBEB" d="M87.4 71.3C83.2 75.3 82.2 83.3 87.5 87.3C92.4 91 99.1 90.6 103 86C107 81.3 105.2 73.1 101.4 70.6C98.4 68.6 92 66.8 87.4 71.3Z"/><path fill="#FEFFFF" d="M86.4 84.7C88.3 84.5 88.5 82.8 88.9 79.7C89.3 76.7 92.2 73.3 94.7 72.7C97.4 72.1 99 72.1 99 70.4C99 68.3 95 66.7 90.4 68.8C85.8 70.9 83.4 76.4 83.4 80C83.4 83.7 84.6 84.9 86.4 84.7Z"/></g></g>`,
14
- line: { box: "0 0 24 24", d: `M18.5 14C19.9 14 21 15.1 21 16.5C21 17.9 19.9 19 18.5 19C17.1 19 16 17.9 16 16.5C16 15.1 17.1 14 18.5 14M7 15C7 15 8 16 8 17V20.5C8 21.3 8.7 22 9.5 22C10.3 22 11 21.3 11 20.5V17C11 16 12 15 12 15H7M8 14H11C11 14 16 14 16 9C16 4 12 2 9.5 2C7 2 3 4 3 9C3 14 8 14 8 14Z` },
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
+ ],
15
16
  });
@@ -1 +1 @@
1
- export declare const GEAR_TENNIS_RACKET: import("./gear.index.ts").Piece<import("./gear.core.ts").CopiedSpec>;
1
+ export declare const GEAR_TENNIS_RACKET: import("./gear.index.ts").Piece<import("./gear.core.ts").GearSpec>;
@@ -1,15 +1,17 @@
1
- // Gear: Tennis racket and ball. Copied, with changes, from Noto Emoji `2D/svg/emoji_u1f3be.svg` (googlefonts/noto-emoji at e20cbc2bbec1926686be9f9bee7d1d2cfa1fea0e), Apache-2.0, Copyright 2013 Google, Inc. All Rights Reserved..
2
- // SHA-256 of the file as published: b29a39b365f454efcc88d505c47d5e4cbc6331dd9e526ed560605a57cd4e3a3f.
3
- // The line style is the one-path icon Pictogrammers Material Design Icons `svg/tennis.svg` (Templarian/MaterialDesign-SVG at 9e04201d4557e729822fb57f62a316c3dea1d4a8), Apache-2.0, icon by Google (SHA-256 231243424c9d54cef75b45772f4ae5da8c8d5ff912add24429b8affb4025ce8e).
4
- // Changes: editor wrappers, metadata and ids removed, coordinates written absolute and rounded. Modified files are marked as the Apache-2.0 licence asks. Do not edit by hand: scripts/dougu/build-gear.mjs writes this file.
5
- import { copied } from "./gear.core.js";
6
- export const GEAR_TENNIS_RACKET = /* @__PURE__ */ copied({
7
- id: "gear:tennis-racket",
8
- en: "Tennis racket and ball",
9
- ja: "テニスのラケットとボール",
10
- source: "noto",
11
- credit: "Noto Emoji `2D/svg/emoji_u1f3be.svg` (googlefonts/noto-emoji at e20cbc2bbec1926686be9f9bee7d1d2cfa1fea0e), Apache-2.0, Copyright 2013 Google, Inc. All Rights Reserved.. Line style: Pictogrammers Material Design Icons `svg/tennis.svg` (Templarian/MaterialDesign-SVG at 9e04201d4557e729822fb57f62a316c3dea1d4a8), Apache-2.0, icon by Google.",
12
- box: "0 0 128 128",
13
- colour: `<path fill="#024AB1" d="M32.3 94.9C32.3 94.9 37.9 86.8 38.1 86.5C38.3 86.2 46.8 67.1 46.8 67.1L50.6 68.6L49.9 70.1C49.9 70.1 49 70.8 48.1 72.7C47.3 74.6 42.5 87.2 42.5 87.2L61.8 80.9L84.8 77.6C84.8 77.6 96.2 71.1 98.3 69.8C100.4 68.6 112.4 55.5 112.4 55.5L118.5 43.1L119.9 29.2L118 16.7C118 16.7 126 24 123.4 40C120.2 60.1 105.4 76.5 82 82.4C71.1 85.2 57.9 86.1 46.6 90.7C40.8 93.1 33.8 100.9 33.8 100.9L32.3 94.9Z"/><path fill="#024AB1" d="M51.2 40.7L49.1 55.4L47.4 66.1L59 70.8C59 70.8 50.8 57.1 55.6 44C61.6 27.6 77.8 13.5 91.1 12.5C100.3 11.8 102.7 13.9 107.3 16.1C113.2 18.9 116.6 25.7 116.6 25.7C116.6 25.7 115.3 16.7 114.9 16.3C114.6 15.9 100.2 7.6 100.2 7.6C100.2 7.6 84.8 8.1 84.4 8.3C84 8.6 71.1 14.6 70.8 15.3C70.6 15.9 58.4 28.8 57.1 30.7C55.8 32.6 51.2 40.7 51.2 40.7Z"/><g><path fill="#B7CDD2" d="M105.7 64.5C105.3 64.5 104.9 64.4 104.6 64.1L66 26.5C65.4 25.9 65.4 24.9 66 24.3C66.6 23.7 67.5 23.7 68.1 24.3L106.7 62C107.3 62.5 107.3 63.5 106.8 64.1C106.5 64.4 106.1 64.5 105.7 64.5Z"/></g><g><path fill="#B7CDD2" d="M111.8 57.4C111.4 57.4 111 57.2 110.7 56.9L73.2 19.5C72.6 18.9 72.6 18 73.2 17.4C73.8 16.8 74.7 16.8 75.3 17.4L112.8 54.8C113.4 55.4 113.4 56.3 112.8 56.9C112.6 57.2 112.2 57.4 111.8 57.4Z"/></g><g><path fill="#B7CDD2" d="M115.8 48.5C115.5 48.5 115.1 48.3 114.8 48L82.3 14.7C81.7 14.1 81.7 13.1 82.3 12.5C82.9 12 83.8 12 84.4 12.6L116.9 45.9C117.5 46.5 117.5 47.5 116.9 48.1C116.6 48.3 116.2 48.5 115.8 48.5Z"/></g><g><path fill="#B7CDD2" d="M118.1 36.9C117.7 36.9 117.3 36.8 117 36.5L93.2 13C92.6 12.4 92.6 11.4 93.2 10.8C93.8 10.3 94.7 10.2 95.3 10.8L119.1 34.4C119.7 34.9 119.7 35.9 119.2 36.5C118.9 36.8 118.5 36.9 118.1 36.9Z"/></g><g><path fill="#B7CDD2" d="M98.5 71.4C98.1 71.4 97.7 71.3 97.4 71L59.8 34.1C59.2 33.6 59.2 32.6 59.8 32C60.4 31.4 61.3 31.4 61.9 32L99.5 68.8C100.1 69.4 100.1 70.4 99.5 71C99.2 71.3 98.8 71.4 98.5 71.4Z"/></g><g><path fill="#B7CDD2" d="M88.5 76.5C88.1 76.5 87.7 76.4 87.4 76.1L55.2 43.2C54.6 42.6 54.6 41.7 55.2 41.1C55.8 40.5 56.8 40.5 57.3 41.1L89.5 74C90.1 74.5 90.1 75.5 89.5 76.1C89.2 76.4 88.8 76.5 88.5 76.5Z"/></g><g><path fill="#B7CDD2" d="M78.2 78.9C77.8 78.9 77.4 78.7 77.1 78.4L52.7 54.6C52.1 54 52 53.1 52.6 52.5C53.2 51.9 54.2 51.9 54.7 52.4L79.2 76.3C79.8 76.9 79.9 77.8 79.3 78.4C79 78.7 78.6 78.9 78.2 78.9Z"/></g><g><path fill="#B7CDD2" d="M56.6 67.1C56.2 67.1 55.8 66.9 55.5 66.6C54.9 66.1 54.9 65.1 55.5 64.5L105.7 15.2C106.3 14.6 107.2 14.6 107.8 15.2C108.4 15.8 108.4 16.8 107.8 17.3L57.6 66.7C57.3 67 57 67.1 56.6 67.1Z"/></g><g><path fill="#B7CDD2" d="M54 58.2C53.6 58.2 53.3 58.1 53 57.8C52.4 57.2 52.4 56.3 53 55.7C69.5 38.6 94.5 12.6 95.9 11C96.3 10.3 97.1 10.1 97.8 10.4C98.6 10.8 98.9 11.7 98.5 12.5C98.4 12.7 98 13.5 55.1 57.8C54.8 58.1 54.4 58.2 54 58.2Z"/></g><g><path fill="#B7CDD2" d="M56.3 43.6C55.9 43.6 55.5 43.4 55.2 43.2C54.6 42.6 54.6 41.6 55.2 41L82.2 12.5C82.7 11.9 83.8 12 84.4 12.5C85 13.1 85 13.9 84.4 14.5L57.4 43.1C57.1 43.4 56.7 43.6 56.3 43.6Z"/></g><g><path fill="#B7CDD2" d="M61.5 75.7C61.1 75.7 60.7 75.5 60.5 75.2C59.9 74.6 59.9 73.7 60.4 73.1L111.9 20.3C112.4 19.7 113.5 19.6 114.1 20.2C114.7 20.7 114.6 21.8 114 22.4L62.6 75.2C62.3 75.5 61.9 75.7 61.5 75.7Z"/></g><g><path fill="#B7CDD2" d="M71.3 79.4C71 79.4 70.6 79.3 70.3 79C69.7 78.4 69.7 77.4 70.3 76.8L117.6 28.9C118.1 28.3 119.1 28.3 119.7 28.9C120.3 29.5 120.3 30.4 119.7 31L72.4 79C72.1 79.2 71.7 79.4 71.3 79.4Z"/></g><g><path fill="#B7CDD2" d="M85.2 77.9C84.8 77.9 84.5 77.8 84.2 77.5C83.6 77 83.5 76.1 84 75.4C84.5 74.8 108.8 50.6 116.2 43.1C116.8 42.6 117.7 42.6 118.3 43.1C118.9 43.7 118.9 44.7 118.3 45.3C109.7 53.9 87.1 76.5 86.3 77.4C86 77.7 85.6 77.9 85.2 77.9Z"/></g><path fill="#1F87FF" d="M40.1 86.7C40.1 86.7 46 70.1 47.5 69.5C48.3 69.3 49.2 71.3 52.1 74.1C55.3 77.2 57.2 78.3 56.9 79.6C56.5 81.6 40.1 86.7 40.1 86.7ZM117.6 33.7C116.9 50.3 104.3 67.9 87.6 74.3C77.3 78.3 65.3 77.4 58.2 69.9C51.4 62.8 50.6 55.4 52.4 46.9C55.4 32.2 68.9 15.9 81.3 11.6C93.8 7.2 102.1 9.3 109.7 14.9C115.5 19.3 117.8 27.3 117.6 33.7ZM117.7 16.2C113.7 11.5 105.1 2.8 88.3 5.2C73.2 7.4 60.7 19.5 53.3 32.4C47.5 42.6 46.9 50.7 45.2 59.1C43.5 67.2 37.2 82.8 35.9 85.4C32.8 91.6 29.6 92.7 29.2 93.6L31.6 101.4C31.6 101.4 33.8 97.6 38.8 92.5C43.9 87.4 55.3 85 60.2 84C65.8 82.8 74.6 82.9 88.9 77.7C105.5 71.7 121.1 52.4 121.7 35.9C122.1 26.1 121.8 21.1 117.7 16.2Z"/><path fill="#5F6369" d="M30.3 91.5C28.9 91.7 13.7 108.1 13.7 108.1C13.7 108.1 7.9 111 6.8 111.7C5.8 112.4 5.7 114.4 6.7 115.5C7.8 116.7 14.2 123 15.1 123.8C15.9 124.5 18.3 124.5 18.8 122.8C19.3 121.4 21.5 117.4 21.5 117.4C21.5 117.4 38.2 100.2 38.2 99.3C38.2 98.5 31 91.4 30.3 91.5Z"/><path fill="#858686" d="M11.8 113.1C12.3 115.8 16 115.9 18.2 114.3C19.8 113.1 19 111.6 20.2 110.3C21.6 108.8 22.8 109.7 24.1 108.2C25.4 106.7 25 105.7 25.8 104.8C26.9 103.5 28.1 104.3 29.3 102.9C30.5 101.5 29.8 100.3 30.7 99.4C31.6 98.5 33.7 99 33.2 96.7C32.7 94.4 29.6 94.7 28.2 95.8C27.1 96.6 27.1 98.2 25.9 99.2C24.9 100.1 23.7 99.8 22.4 101C21 102.3 21.4 103.8 20.4 104.9C19.5 105.9 18.2 105.1 16.8 106.7C15.3 108.4 16 109.3 14.6 110.4C13.6 111.1 11.3 110.8 11.8 113.1Z"/><path fill="#B6D401" d="M12.5 9.4L4.1 22.9C4.1 22.9 4.1 32.9 13.2 38C22.6 43.2 35.1 39.5 39.6 30.1C44 20.9 39.8 10.1 35.3 6.6C30.1 2.6 12.5 9.4 12.5 9.4Z"/><path fill="#D5F100" d="M15.1 3.4C8.3 6.6 4.4 12.7 3.8 18.8C3.6 20.9 3.8 22.7 3.8 22.7C3.8 22.7 6.6 32.4 18.9 33.2C32.2 34.1 38.4 25.8 38.8 16.7C39.1 9.6 35.1 6.2 35.1 6.2C35.1 6.2 33.3 3.8 29.2 2.6C27.5 2 21.6 0.3 15.1 3.4Z"/><path fill="#FFFFFF" d="M7.6 18.9C11.9 24.2 19.7 28.8 21.1 33.9C22.3 38.3 20.4 40.4 20.4 40.4C20.4 40.4 20.9 40.7 21.6 40.8C22.2 40.8 22.9 40.5 22.9 40.5C22.9 40.5 24.2 38.8 23.7 34C23.2 29.2 18.6 25.4 15.5 22.9C12.9 20.9 9.8 18.5 8.7 16.5C6.9 13.4 6.9 9.8 6.9 9.8C6.9 9.8 6.1 10.1 5.6 11.4C5.2 12.5 4.7 15.6 7.6 18.9Z"/><path fill="#FFFFFF" d="M26.4 1.7C26.4 1.7 27 2.9 29.4 5.7C31.6 8.3 34.9 11.9 37.2 16.1C39 19.2 40.9 26.7 40.9 26.7C40.9 26.7 41.6 24.1 41.6 22.4C41.6 21.4 40.1 17.2 38.7 14.5C37.1 11.4 34 7.8 32.6 6.1C31.8 5.1 29.4 2.2 29.4 2.2C29.4 2.2 26.6 1.4 26.4 1.7Z"/>`,
14
- line: { box: "0 0 24 24", d: `M18 15A4 4 0 0 1 22 19A4 4 0 0 1 18 23A4 4 0 0 1 14 19A4 4 0 0 1 18 15M18 17A2 2 0 0 0 16 19A2 2 0 0 0 18 21A2 2 0 0 0 20 19A2 2 0 0 0 18 17M6.05 14.54C6.05 14.54 7.46 13.12 7.47 10.3C7.11 8.11 7.97 5.54 9.94 3.58C12.87 0.65 17.14 0.17 19.5 2.5C21.83 4.86 21.35 9.13 18.42 12.06C16.46 14.03 13.89 14.89 11.7 14.53C8.88 14.54 7.46 15.95 7.46 15.95L3.22 20.19L1.81 18.78L6.05 14.54M18.07 3.93C16.5 2.37 13.5 2.84 11.35 5C9.21 7.14 8.73 10.15 10.29 11.71C11.86 13.27 14.86 12.79 17 10.65C19.16 8.5 19.63 5.5 18.07 3.93Z` },
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
+ ],
15
17
  });
@@ -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", "優勝ペナント");
@@ -1,7 +1,7 @@
1
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
2
  import { defineIcon, ellipsePath as ell } from "../emblem.shapes.js";
3
3
  /** Oval ball. */
4
- export const SPORT_AFL = /* @__PURE__ */ defineIcon("sport:afl", "Oval ball", "オーストラリアンフットボールのボール", "ours", {
4
+ export const SPORT_AFL = /* @__PURE__ */ defineIcon("sport:afl", "Oval ball", "オーストラリアンフットボール", "ours", {
5
5
  metal: "flat",
6
6
  ink: true,
7
7
  front: [
@@ -3,7 +3,7 @@ import { defineIcon } from "../emblem.shapes.js";
3
3
  /** Waves: a wavy line across the box at a height. */
4
4
  const wave = (y) => `M3 ${y}q7-6 14 0t14 0 14 0 14 0`;
5
5
  /** Raised legs. */
6
- export const SPORT_ARTISTICSWIMMING = /* @__PURE__ */ defineIcon("sport:artisticswimming", "Raised legs", "水面に上げた脚(アーティスティックスイミング)", "ours", {
6
+ export const SPORT_ARTISTICSWIMMING = /* @__PURE__ */ defineIcon("sport:artisticswimming", "Raised legs", "水面に上げた脚", "ours", {
7
7
  metal: "flat",
8
8
  ink: true,
9
9
  front: [
@@ -1,2 +1,2 @@
1
1
  /** Canadian football. */
2
- export declare const SPORT_CFL: import("../emblem.core.ts").Emblem<import("../emblem.material.ts").MaterialModel>;
2
+ export declare const SPORT_CFL: import("../emblem.core.ts").Emblem<import("../emblem.shapes.ts").FlatModel>;
@@ -1,5 +1,5 @@
1
- // Canadian football: the Material Symbols icon `sports_football` (Google, Apache License 2.0; see NOTICE.md), drawn in the page's ink unless it is tinted.
2
- import { M_SPORTS_FOOTBALL } from "../emblem.material.data.js";
3
- import { defineMaterial } from "../emblem.material.js";
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
4
  /** Canadian football. */
5
- export const SPORT_CFL = /* @__PURE__ */ defineMaterial("sport:cfl", "Canadian football", "カナディアンフットボール", M_SPORTS_FOOTBALL, "flat");
5
+ export const SPORT_CFL = /* @__PURE__ */ defineIcon("sport:cfl", "Canadian football", "カナディアンフットボール", "ours", SPORT_NFL.model);
@@ -1,2 +1,2 @@
1
1
  /** Cricket. */
2
- export declare const SPORT_CRICKET: import("../emblem.core.ts").Emblem<import("../emblem.material.ts").MaterialModel>;
2
+ export declare const SPORT_CRICKET: import("../emblem.core.ts").Emblem<import("../emblem.shapes.ts").FlatModel>;
@@ -1,5 +1,14 @@
1
- // Cricket: the Material Symbols icon `sports_cricket` (Google, Apache License 2.0; see NOTICE.md), drawn in the page's ink unless it is tinted.
2
- import { M_SPORTS_CRICKET } from "../emblem.material.data.js";
3
- import { defineMaterial } from "../emblem.material.js";
1
+ // Cricket: a pictogram of a bat and a ball, 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 { bar, circlePath as circ, defineIcon } from "../emblem.shapes.js";
4
3
  /** Cricket. */
5
- export const SPORT_CRICKET = /* @__PURE__ */ defineMaterial("sport:cricket", "Cricket", "クリケット", M_SPORTS_CRICKET, "flat");
4
+ export const SPORT_CRICKET = /* @__PURE__ */ defineIcon("sport:cricket", "Cricket", "クリケット", "ours", {
5
+ metal: "flat",
6
+ ink: true,
7
+ front: [
8
+ ["m", bar(9, 55, 34, 30, 14).replace(/^/, "")],
9
+ ["b", "M33 31L45 19"],
10
+ ["k", bar(44, 20, 55, 9, 5.4)],
11
+ ["m", circ(48, 49, 8)],
12
+ ["t", "M42 43.6Q47 47 43 54.4M54 43.4Q50 47 54 54.4"],
13
+ ],
14
+ });
@@ -1,7 +1,7 @@
1
1
  // Hooked stick and 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
2
  import { circlePath as circ, defineIcon } from "../emblem.shapes.js";
3
3
  /** Hooked stick and ball. */
4
- export const SPORT_FIELDHOCKEY = /* @__PURE__ */ defineIcon("sport:fieldhockey", "Hooked stick and ball", "フィールドホッケーのスティックとボール", "ours", {
4
+ export const SPORT_FIELDHOCKEY = /* @__PURE__ */ defineIcon("sport:fieldhockey", "Hooked stick", "フィールドホッケー", "ours", {
5
5
  metal: "flat",
6
6
  ink: true,
7
7
  front: [
@@ -1,7 +1,7 @@
1
1
  // Round ball with seams: 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
2
  import { circlePath as circ, defineIcon } from "../emblem.shapes.js";
3
3
  /** Round ball with seams. */
4
- export const SPORT_GAELIC = /* @__PURE__ */ defineIcon("sport:gaelic", "Round ball with seams", "ゲーリック・フットボールのボール", "ours", {
4
+ export const SPORT_GAELIC = /* @__PURE__ */ defineIcon("sport:gaelic", "Round ball", "ゲーリックフットボール", "ours", {
5
5
  metal: "flat",
6
6
  ink: true,
7
7
  front: [
@@ -1,2 +1,2 @@
1
1
  /** Handball. */
2
- export declare const SPORT_HANDBALL: import("../emblem.core.ts").Emblem<import("../emblem.material.ts").MaterialModel>;
2
+ export declare const SPORT_HANDBALL: import("../emblem.core.ts").Emblem<import("../emblem.shapes.ts").FlatModel>;
@@ -1,5 +1,15 @@
1
- // Handball: the Material Symbols icon `sports_handball` (Google, Apache License 2.0; see NOTICE.md), drawn in the page's ink unless it is tinted.
2
- import { M_SPORTS_HANDBALL } from "../emblem.material.data.js";
3
- import { defineMaterial } from "../emblem.material.js";
1
+ // Handball: a pictogram of a hand throwing the ball, drawn for this package, in a 64 by 64 box: the ball with its seams and lines of speed behind it, and the open hand, fingers spread, that carries it. The
2
+ // metal style paints its main shapes with a grey sheet, the line style draws one outline.
3
+ import { circlePath as circ, defineIcon } from "../emblem.shapes.js";
4
4
  /** Handball. */
5
- export const SPORT_HANDBALL = /* @__PURE__ */ defineMaterial("sport:handball", "Handball", "ハンドボール", M_SPORTS_HANDBALL, "flat");
5
+ export const SPORT_HANDBALL = /* @__PURE__ */ defineIcon("sport:handball", "Handball", "ハンドボール", "ours", {
6
+ metal: "flat",
7
+ ink: true,
8
+ front: [
9
+ ["t", "M3 9h12M1 17h10M4 25h7"],
10
+ ["m", circ(42.5, 22.5, 16.5)],
11
+ ["k", "M43.5 16.1L48.6 19.8L46.7 25.9L40.3 25.9L38.4 19.8z"],
12
+ ["t", "M43.5 16.1L43.5 6M48.6 19.8L58 16.8M46.7 25.9L53.3 35M40.3 25.9L33 36M38.4 19.8L27.2 16.2"],
13
+ ["m", "M30.9 26.3L29.5 24.7L27.3 25.2L22.2 40.3L15.3 43.8L13.8 41L12.4 36.1L11.4 35.4L10.2 35.4L8.7 36.4L8.4 38.1L9.2 42.3L12.2 48L10.7 51.1L11 52.5L7 55.1L5.6 56.5L5.4 59.4L7.3 61.6L10.2 61.8L13.8 59.6L22.4 60.3L30.8 55.3L32.7 48.3L44.7 41.4L44.8 39.2L42.9 38.1L34.8 42.2L42.2 35L42.2 32.9L40.3 31.7L38.8 32.3L31.2 39.7L37.2 29.9L37.1 28.2L35.8 27.1L34.6 27.1L33.3 28.1L27.9 36.7Z"],
14
+ ],
15
+ });
@@ -1,2 +1,2 @@
1
1
  /** American football, international rules. */
2
- export declare const SPORT_IFAF: import("../emblem.core.ts").Emblem<import("../emblem.material.ts").MaterialModel>;
2
+ export declare const SPORT_IFAF: import("../emblem.core.ts").Emblem<import("../emblem.shapes.ts").FlatModel>;
@@ -1,5 +1,5 @@
1
- // American football, international rules: the Material Symbols icon `sports_football` (Google, Apache License 2.0; see NOTICE.md), drawn in the page's ink unless it is tinted.
2
- import { M_SPORTS_FOOTBALL } from "../emblem.material.data.js";
3
- import { defineMaterial } from "../emblem.material.js";
1
+ // International 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
4
  /** American football, international rules. */
5
- export const SPORT_IFAF = /* @__PURE__ */ defineMaterial("sport:ifaf", "American football, international rules", "国際ルールのアメリカンフットボール", M_SPORTS_FOOTBALL, "flat");
5
+ export const SPORT_IFAF = /* @__PURE__ */ defineIcon("sport:ifaf", "International football", "国際アメフト", "ours", SPORT_NFL.model);
@@ -0,0 +1,2 @@
1
+ /** Judo. */
2
+ export declare const SPORT_JUDO: import("../emblem.core.ts").Emblem<import("../emblem.shapes.ts").FlatModel>;
@@ -0,0 +1,13 @@
1
+ // Judo: a pictogram of the suit and its belt, 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
+ /** Judo. */
4
+ export const SPORT_JUDO = /* @__PURE__ */ defineIcon("sport:judo", "Judo", "柔道", "ours", {
5
+ metal: "flat",
6
+ ink: true,
7
+ front: [
8
+ ["m", "M23.6 8L7 36.6Q5.6 39.6 8.4 41.6L14.4 45.4Q17.2 46.8 18.8 43.8L19.4 42.6V58H31V46.6H33V58H44.6V42.6L45.2 43.8Q46.8 46.8 49.6 45.4L55.6 41.6Q58.4 39.6 57 36.6L40.4 8Q32 5.6 23.6 8Z"],
9
+ ["n", "M25.4 7.6L36 32M38.6 7.6L28 32"],
10
+ ["k", "M19.4 38.4H44.6V44H19.4z"],
11
+ ["k", "M29.4 44L26 56h3.6L32.4 44zM34.6 44L38 55h-3.6L31.6 44z"],
12
+ ],
13
+ });
@@ -0,0 +1,2 @@
1
+ /** Karate. */
2
+ export declare const SPORT_KARATE: import("../emblem.core.ts").Emblem<import("../emblem.shapes.ts").FlatModel>;
@@ -0,0 +1,13 @@
1
+ // Karate: a pictogram of a clenched fist seen from the front, 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
+ /** Karate. */
4
+ export const SPORT_KARATE = /* @__PURE__ */ defineIcon("sport:karate", "Karate", "空手", "ours", {
5
+ metal: "flat",
6
+ ink: true,
7
+ front: [
8
+ ["m", "M14 30V21a4.5 4.5 0 0 1 9 0v9zM23 30V17a4.5 4.5 0 0 1 9 0v13zM32 30V17a4.5 4.5 0 0 1 9 0v13zM41 30V21a4.5 4.5 0 0 1 9 0v9z"],
9
+ ["m", "M14 28H50V46Q50 59 37 59H27Q14 59 14 46Z"],
10
+ ["m", "M19 34H45a4.4 4.4 0 0 1 0 8.8H19a4.4 4.4 0 0 1 0-8.8z"],
11
+ ["t", "M16 50Q32 55 48 50"],
12
+ ],
13
+ });
@@ -0,0 +1,2 @@
1
+ /** Kendo. */
2
+ export declare const SPORT_KENDO: import("../emblem.core.ts").Emblem<import("../emblem.shapes.ts").FlatModel>;
@@ -0,0 +1,14 @@
1
+ // Kendo: a pictogram of the helmet, 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
+ /** Kendo. */
4
+ export const SPORT_KENDO = /* @__PURE__ */ defineIcon("sport:kendo", "Kendo", "剣道", "ours", {
5
+ metal: "flat",
6
+ ink: true,
7
+ front: [
8
+ ["m", "M32 4C48 4 58 12 58 26V36Q58 44 51 48L47 48V24H17V48L13 48Q6 44 6 36V26C6 12 16 4 32 4Z"],
9
+ ["m", "M14 49L17 59Q32 65 47 59L50 49Z"],
10
+ ["p", ell(32, 34, 17, 18)],
11
+ ["t", "M16 28H48M15.6 34H48.4M16.6 40H47.4M32 17V51"],
12
+ ["t", "M13 10Q32 4 51 10M10.6 16Q32 10 53.4 16"],
13
+ ],
14
+ });
@@ -0,0 +1,2 @@
1
+ /** Kyudo. */
2
+ export declare const SPORT_KYUDO: import("../emblem.core.ts").Emblem<import("../emblem.shapes.ts").FlatModel>;
@@ -0,0 +1,15 @@
1
+ // Kyudo: a pictogram of the long bow, its string and an arrow, 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
+ /** Kyudo. */
4
+ export const SPORT_KYUDO = /* @__PURE__ */ defineIcon("sport:kyudo", "Kyudo", "弓道", "ours", {
5
+ metal: "flat",
6
+ ink: true,
7
+ front: [
8
+ ["b", "M30 3Q4 12 9 36Q13 54 28 61"],
9
+ ["s", "M7.6 33.6L13.8 34.6L13.2 44L7 43z"],
10
+ ["t", "M30 3L28 61"],
11
+ ["n", "M29 32H57"],
12
+ ["k", "M57 32L47.6 27.6V36.4z"],
13
+ ["t", "M32.4 32L29 28.4M32.4 32L29 35.6M37.4 32l-3.4-3.6M37.4 32l-3.4 3.6"],
14
+ ],
15
+ });
@@ -1,2 +1,2 @@
1
1
  /** Baseball. */
2
- export declare const SPORT_MLB: import("../emblem.core.ts").Emblem<import("../emblem.material.ts").MaterialModel>;
2
+ export declare const SPORT_MLB: import("../emblem.core.ts").Emblem<import("../emblem.shapes.ts").FlatModel>;