@malilion/block-ui-react 0.2.0 → 0.3.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 (263) hide show
  1. package/dist/components/cards/ServerBrowser/ServerBrowser.d.ts +7 -0
  2. package/dist/components/cards/ServerBrowser/ServerBrowser.d.ts.map +1 -0
  3. package/dist/components/cards/ServerBrowser/ServerBrowser.js +106 -0
  4. package/dist/components/cards/ServerBrowser/ServerBrowser.js.map +1 -0
  5. package/dist/components/cards/ServerBrowser/ServerBrowser.types.d.ts +22 -0
  6. package/dist/components/cards/ServerBrowser/ServerBrowser.types.d.ts.map +1 -0
  7. package/dist/components/cards/ServerBrowser/ServerBrowser.utils.d.ts +8 -0
  8. package/dist/components/cards/ServerBrowser/ServerBrowser.utils.d.ts.map +1 -0
  9. package/dist/components/cards/ServerBrowser/ServerBrowser.utils.js +16 -0
  10. package/dist/components/cards/ServerBrowser/ServerBrowser.utils.js.map +1 -0
  11. package/dist/components/cards/ServerBrowser/index.d.ts +4 -0
  12. package/dist/components/cards/ServerBrowser/index.d.ts.map +1 -0
  13. package/dist/components/cards/WorldBrowser/WorldBrowser.d.ts +4 -0
  14. package/dist/components/cards/WorldBrowser/WorldBrowser.d.ts.map +1 -0
  15. package/dist/components/cards/WorldBrowser/WorldBrowser.js +101 -0
  16. package/dist/components/cards/WorldBrowser/WorldBrowser.js.map +1 -0
  17. package/dist/components/cards/WorldBrowser/WorldBrowser.types.d.ts +22 -0
  18. package/dist/components/cards/WorldBrowser/WorldBrowser.types.d.ts.map +1 -0
  19. package/dist/components/cards/WorldBrowser/WorldBrowser.utils.d.ts +10 -0
  20. package/dist/components/cards/WorldBrowser/WorldBrowser.utils.d.ts.map +1 -0
  21. package/dist/components/cards/WorldBrowser/WorldBrowser.utils.js +12 -0
  22. package/dist/components/cards/WorldBrowser/WorldBrowser.utils.js.map +1 -0
  23. package/dist/components/cards/WorldBrowser/index.d.ts +4 -0
  24. package/dist/components/cards/WorldBrowser/index.d.ts.map +1 -0
  25. package/dist/components/cards/browser.module.js +23 -0
  26. package/dist/components/cards/browser.module.js.map +1 -0
  27. package/dist/components/cards/index.d.ts +2 -0
  28. package/dist/components/cards/index.d.ts.map +1 -1
  29. package/dist/components/crafting/Anvil/Anvil.d.ts +7 -0
  30. package/dist/components/crafting/Anvil/Anvil.d.ts.map +1 -0
  31. package/dist/components/crafting/Anvil/Anvil.js +94 -0
  32. package/dist/components/crafting/Anvil/Anvil.js.map +1 -0
  33. package/dist/components/crafting/Anvil/Anvil.module.js +21 -0
  34. package/dist/components/crafting/Anvil/Anvil.module.js.map +1 -0
  35. package/dist/components/crafting/Anvil/Anvil.types.d.ts +25 -0
  36. package/dist/components/crafting/Anvil/Anvil.types.d.ts.map +1 -0
  37. package/dist/components/crafting/Anvil/Anvil.utils.d.ts +3 -0
  38. package/dist/components/crafting/Anvil/Anvil.utils.d.ts.map +1 -0
  39. package/dist/components/crafting/Anvil/Anvil.utils.js +11 -0
  40. package/dist/components/crafting/Anvil/Anvil.utils.js.map +1 -0
  41. package/dist/components/crafting/Anvil/index.d.ts +5 -0
  42. package/dist/components/crafting/Anvil/index.d.ts.map +1 -0
  43. package/dist/components/crafting/BrewingStand/BrewingStand.d.ts +7 -0
  44. package/dist/components/crafting/BrewingStand/BrewingStand.d.ts.map +1 -0
  45. package/dist/components/crafting/BrewingStand/BrewingStand.js +116 -0
  46. package/dist/components/crafting/BrewingStand/BrewingStand.js.map +1 -0
  47. package/dist/components/crafting/BrewingStand/BrewingStand.module.js +29 -0
  48. package/dist/components/crafting/BrewingStand/BrewingStand.module.js.map +1 -0
  49. package/dist/components/crafting/BrewingStand/BrewingStand.types.d.ts +22 -0
  50. package/dist/components/crafting/BrewingStand/BrewingStand.types.d.ts.map +1 -0
  51. package/dist/components/crafting/BrewingStand/BrewingStand.types.js +11 -0
  52. package/dist/components/crafting/BrewingStand/BrewingStand.types.js.map +1 -0
  53. package/dist/components/crafting/BrewingStand/BrewingStand.utils.d.ts +6 -0
  54. package/dist/components/crafting/BrewingStand/BrewingStand.utils.d.ts.map +1 -0
  55. package/dist/components/crafting/BrewingStand/BrewingStand.utils.js +13 -0
  56. package/dist/components/crafting/BrewingStand/BrewingStand.utils.js.map +1 -0
  57. package/dist/components/crafting/BrewingStand/index.d.ts +5 -0
  58. package/dist/components/crafting/BrewingStand/index.d.ts.map +1 -0
  59. package/dist/components/crafting/EnchantingTable/EnchantingTable.d.ts +7 -0
  60. package/dist/components/crafting/EnchantingTable/EnchantingTable.d.ts.map +1 -0
  61. package/dist/components/crafting/EnchantingTable/EnchantingTable.js +105 -0
  62. package/dist/components/crafting/EnchantingTable/EnchantingTable.js.map +1 -0
  63. package/dist/components/crafting/EnchantingTable/EnchantingTable.module.js +32 -0
  64. package/dist/components/crafting/EnchantingTable/EnchantingTable.module.js.map +1 -0
  65. package/dist/components/crafting/EnchantingTable/EnchantingTable.types.d.ts +29 -0
  66. package/dist/components/crafting/EnchantingTable/EnchantingTable.types.d.ts.map +1 -0
  67. package/dist/components/crafting/EnchantingTable/EnchantingTable.utils.d.ts +11 -0
  68. package/dist/components/crafting/EnchantingTable/EnchantingTable.utils.d.ts.map +1 -0
  69. package/dist/components/crafting/EnchantingTable/EnchantingTable.utils.js +14 -0
  70. package/dist/components/crafting/EnchantingTable/EnchantingTable.utils.js.map +1 -0
  71. package/dist/components/crafting/EnchantingTable/index.d.ts +3 -0
  72. package/dist/components/crafting/EnchantingTable/index.d.ts.map +1 -0
  73. package/dist/components/crafting/RecipeBook/RecipeBook.d.ts +7 -0
  74. package/dist/components/crafting/RecipeBook/RecipeBook.d.ts.map +1 -0
  75. package/dist/components/crafting/RecipeBook/RecipeBook.js +149 -0
  76. package/dist/components/crafting/RecipeBook/RecipeBook.js.map +1 -0
  77. package/dist/components/crafting/RecipeBook/RecipeBook.module.js +39 -0
  78. package/dist/components/crafting/RecipeBook/RecipeBook.module.js.map +1 -0
  79. package/dist/components/crafting/RecipeBook/RecipeBook.types.d.ts +36 -0
  80. package/dist/components/crafting/RecipeBook/RecipeBook.types.d.ts.map +1 -0
  81. package/dist/components/crafting/RecipeBook/RecipeBook.utils.d.ts +9 -0
  82. package/dist/components/crafting/RecipeBook/RecipeBook.utils.d.ts.map +1 -0
  83. package/dist/components/crafting/RecipeBook/RecipeBook.utils.js +21 -0
  84. package/dist/components/crafting/RecipeBook/RecipeBook.utils.js.map +1 -0
  85. package/dist/components/crafting/RecipeBook/index.d.ts +4 -0
  86. package/dist/components/crafting/RecipeBook/index.d.ts.map +1 -0
  87. package/dist/components/crafting/TradingUI/TradingUI.d.ts +7 -0
  88. package/dist/components/crafting/TradingUI/TradingUI.d.ts.map +1 -0
  89. package/dist/components/crafting/TradingUI/TradingUI.js +181 -0
  90. package/dist/components/crafting/TradingUI/TradingUI.js.map +1 -0
  91. package/dist/components/crafting/TradingUI/TradingUI.module.js +39 -0
  92. package/dist/components/crafting/TradingUI/TradingUI.module.js.map +1 -0
  93. package/dist/components/crafting/TradingUI/TradingUI.types.d.ts +36 -0
  94. package/dist/components/crafting/TradingUI/TradingUI.types.d.ts.map +1 -0
  95. package/dist/components/crafting/TradingUI/TradingUI.types.js +12 -0
  96. package/dist/components/crafting/TradingUI/TradingUI.types.js.map +1 -0
  97. package/dist/components/crafting/TradingUI/TradingUI.utils.d.ts +3 -0
  98. package/dist/components/crafting/TradingUI/TradingUI.utils.d.ts.map +1 -0
  99. package/dist/components/crafting/TradingUI/TradingUI.utils.js +8 -0
  100. package/dist/components/crafting/TradingUI/TradingUI.utils.js.map +1 -0
  101. package/dist/components/crafting/TradingUI/index.d.ts +4 -0
  102. package/dist/components/crafting/TradingUI/index.d.ts.map +1 -0
  103. package/dist/components/crafting/index.d.ts +5 -0
  104. package/dist/components/crafting/index.d.ts.map +1 -1
  105. package/dist/components/display/SkillTree/SkillTree.d.ts +8 -0
  106. package/dist/components/display/SkillTree/SkillTree.d.ts.map +1 -0
  107. package/dist/components/display/SkillTree/SkillTree.js +138 -0
  108. package/dist/components/display/SkillTree/SkillTree.js.map +1 -0
  109. package/dist/components/display/SkillTree/SkillTree.module.js +33 -0
  110. package/dist/components/display/SkillTree/SkillTree.module.js.map +1 -0
  111. package/dist/components/display/SkillTree/SkillTree.types.d.ts +29 -0
  112. package/dist/components/display/SkillTree/SkillTree.types.d.ts.map +1 -0
  113. package/dist/components/display/SkillTree/SkillTree.utils.d.ts +8 -0
  114. package/dist/components/display/SkillTree/SkillTree.utils.d.ts.map +1 -0
  115. package/dist/components/display/SkillTree/SkillTree.utils.js +16 -0
  116. package/dist/components/display/SkillTree/SkillTree.utils.js.map +1 -0
  117. package/dist/components/display/SkillTree/index.d.ts +4 -0
  118. package/dist/components/display/SkillTree/index.d.ts.map +1 -0
  119. package/dist/components/display/index.d.ts +1 -0
  120. package/dist/components/display/index.d.ts.map +1 -1
  121. package/dist/components/hud/BiomeIndicator/BiomeIndicator.d.ts +4 -0
  122. package/dist/components/hud/BiomeIndicator/BiomeIndicator.d.ts.map +1 -0
  123. package/dist/components/hud/BiomeIndicator/BiomeIndicator.js +39 -0
  124. package/dist/components/hud/BiomeIndicator/BiomeIndicator.js.map +1 -0
  125. package/dist/components/hud/BiomeIndicator/BiomeIndicator.module.js +11 -0
  126. package/dist/components/hud/BiomeIndicator/BiomeIndicator.module.js.map +1 -0
  127. package/dist/components/hud/BiomeIndicator/BiomeIndicator.types.d.ts +16 -0
  128. package/dist/components/hud/BiomeIndicator/BiomeIndicator.types.d.ts.map +1 -0
  129. package/dist/components/hud/BiomeIndicator/BiomeIndicator.types.js +18 -0
  130. package/dist/components/hud/BiomeIndicator/BiomeIndicator.types.js.map +1 -0
  131. package/dist/components/hud/BiomeIndicator/BiomeIndicator.utils.d.ts +8 -0
  132. package/dist/components/hud/BiomeIndicator/BiomeIndicator.utils.d.ts.map +1 -0
  133. package/dist/components/hud/BiomeIndicator/BiomeIndicator.utils.js +55 -0
  134. package/dist/components/hud/BiomeIndicator/BiomeIndicator.utils.js.map +1 -0
  135. package/dist/components/hud/BiomeIndicator/index.d.ts +4 -0
  136. package/dist/components/hud/BiomeIndicator/index.d.ts.map +1 -0
  137. package/dist/components/hud/BossBar/BossBar.d.ts +4 -0
  138. package/dist/components/hud/BossBar/BossBar.d.ts.map +1 -0
  139. package/dist/components/hud/BossBar/BossBar.js +56 -0
  140. package/dist/components/hud/BossBar/BossBar.js.map +1 -0
  141. package/dist/components/hud/BossBar/BossBar.module.js +19 -0
  142. package/dist/components/hud/BossBar/BossBar.module.js.map +1 -0
  143. package/dist/components/hud/BossBar/BossBar.types.d.ts +22 -0
  144. package/dist/components/hud/BossBar/BossBar.types.d.ts.map +1 -0
  145. package/dist/components/hud/BossBar/BossBar.types.js +21 -0
  146. package/dist/components/hud/BossBar/BossBar.types.js.map +1 -0
  147. package/dist/components/hud/BossBar/index.d.ts +4 -0
  148. package/dist/components/hud/BossBar/index.d.ts.map +1 -0
  149. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.d.ts +4 -0
  150. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.d.ts.map +1 -0
  151. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.js +96 -0
  152. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.js.map +1 -0
  153. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.module.js +17 -0
  154. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.module.js.map +1 -0
  155. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.types.d.ts +19 -0
  156. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.types.d.ts.map +1 -0
  157. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.types.js +11 -0
  158. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.types.js.map +1 -0
  159. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.utils.d.ts +7 -0
  160. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.utils.d.ts.map +1 -0
  161. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.utils.js +24 -0
  162. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.utils.js.map +1 -0
  163. package/dist/components/hud/CoordinatesHUD/index.d.ts +4 -0
  164. package/dist/components/hud/CoordinatesHUD/index.d.ts.map +1 -0
  165. package/dist/components/hud/DayNightIndicator/DayNightIndicator.d.ts +4 -0
  166. package/dist/components/hud/DayNightIndicator/DayNightIndicator.d.ts.map +1 -0
  167. package/dist/components/hud/DayNightIndicator/DayNightIndicator.js +70 -0
  168. package/dist/components/hud/DayNightIndicator/DayNightIndicator.js.map +1 -0
  169. package/dist/components/hud/DayNightIndicator/DayNightIndicator.module.js +19 -0
  170. package/dist/components/hud/DayNightIndicator/DayNightIndicator.module.js.map +1 -0
  171. package/dist/components/hud/DayNightIndicator/DayNightIndicator.types.d.ts +17 -0
  172. package/dist/components/hud/DayNightIndicator/DayNightIndicator.types.d.ts.map +1 -0
  173. package/dist/components/hud/DayNightIndicator/DayNightIndicator.utils.d.ts +15 -0
  174. package/dist/components/hud/DayNightIndicator/DayNightIndicator.utils.d.ts.map +1 -0
  175. package/dist/components/hud/DayNightIndicator/DayNightIndicator.utils.js +43 -0
  176. package/dist/components/hud/DayNightIndicator/DayNightIndicator.utils.js.map +1 -0
  177. package/dist/components/hud/DayNightIndicator/index.d.ts +4 -0
  178. package/dist/components/hud/DayNightIndicator/index.d.ts.map +1 -0
  179. package/dist/components/hud/MiniMap/MiniMap.d.ts +8 -0
  180. package/dist/components/hud/MiniMap/MiniMap.d.ts.map +1 -0
  181. package/dist/components/hud/MiniMap/MiniMap.js +76 -0
  182. package/dist/components/hud/MiniMap/MiniMap.js.map +1 -0
  183. package/dist/components/hud/MiniMap/MiniMap.module.js +17 -0
  184. package/dist/components/hud/MiniMap/MiniMap.module.js.map +1 -0
  185. package/dist/components/hud/MiniMap/MiniMap.types.d.ts +43 -0
  186. package/dist/components/hud/MiniMap/MiniMap.types.d.ts.map +1 -0
  187. package/dist/components/hud/MiniMap/MiniMap.types.js +26 -0
  188. package/dist/components/hud/MiniMap/MiniMap.types.js.map +1 -0
  189. package/dist/components/hud/MiniMap/MiniMap.utils.d.ts +14 -0
  190. package/dist/components/hud/MiniMap/MiniMap.utils.d.ts.map +1 -0
  191. package/dist/components/hud/MiniMap/MiniMap.utils.js +47 -0
  192. package/dist/components/hud/MiniMap/MiniMap.utils.js.map +1 -0
  193. package/dist/components/hud/MiniMap/index.d.ts +5 -0
  194. package/dist/components/hud/MiniMap/index.d.ts.map +1 -0
  195. package/dist/components/hud/Scoreboard/Scoreboard.d.ts +7 -0
  196. package/dist/components/hud/Scoreboard/Scoreboard.d.ts.map +1 -0
  197. package/dist/components/hud/Scoreboard/Scoreboard.js +89 -0
  198. package/dist/components/hud/Scoreboard/Scoreboard.js.map +1 -0
  199. package/dist/components/hud/Scoreboard/Scoreboard.module.js +25 -0
  200. package/dist/components/hud/Scoreboard/Scoreboard.module.js.map +1 -0
  201. package/dist/components/hud/Scoreboard/Scoreboard.types.d.ts +23 -0
  202. package/dist/components/hud/Scoreboard/Scoreboard.types.d.ts.map +1 -0
  203. package/dist/components/hud/Scoreboard/Scoreboard.utils.d.ts +5 -0
  204. package/dist/components/hud/Scoreboard/Scoreboard.utils.d.ts.map +1 -0
  205. package/dist/components/hud/Scoreboard/Scoreboard.utils.js +15 -0
  206. package/dist/components/hud/Scoreboard/Scoreboard.utils.js.map +1 -0
  207. package/dist/components/hud/Scoreboard/index.d.ts +3 -0
  208. package/dist/components/hud/Scoreboard/index.d.ts.map +1 -0
  209. package/dist/components/hud/WeatherIndicator/WeatherIndicator.d.ts +4 -0
  210. package/dist/components/hud/WeatherIndicator/WeatherIndicator.d.ts.map +1 -0
  211. package/dist/components/hud/WeatherIndicator/WeatherIndicator.js +52 -0
  212. package/dist/components/hud/WeatherIndicator/WeatherIndicator.js.map +1 -0
  213. package/dist/components/hud/WeatherIndicator/WeatherIndicator.module.js +15 -0
  214. package/dist/components/hud/WeatherIndicator/WeatherIndicator.module.js.map +1 -0
  215. package/dist/components/hud/WeatherIndicator/WeatherIndicator.types.d.ts +17 -0
  216. package/dist/components/hud/WeatherIndicator/WeatherIndicator.types.d.ts.map +1 -0
  217. package/dist/components/hud/WeatherIndicator/WeatherIndicator.types.js +12 -0
  218. package/dist/components/hud/WeatherIndicator/WeatherIndicator.types.js.map +1 -0
  219. package/dist/components/hud/WeatherIndicator/WeatherIndicator.utils.d.ts +5 -0
  220. package/dist/components/hud/WeatherIndicator/WeatherIndicator.utils.d.ts.map +1 -0
  221. package/dist/components/hud/WeatherIndicator/WeatherIndicator.utils.js +22 -0
  222. package/dist/components/hud/WeatherIndicator/WeatherIndicator.utils.js.map +1 -0
  223. package/dist/components/hud/WeatherIndicator/index.d.ts +4 -0
  224. package/dist/components/hud/WeatherIndicator/index.d.ts.map +1 -0
  225. package/dist/components/hud/hudChip.module.js +15 -0
  226. package/dist/components/hud/hudChip.module.js.map +1 -0
  227. package/dist/components/hud/index.d.ts +7 -0
  228. package/dist/components/hud/index.d.ts.map +1 -1
  229. package/dist/components/social/ChatWindow/ChatWindow.d.ts +8 -0
  230. package/dist/components/social/ChatWindow/ChatWindow.d.ts.map +1 -0
  231. package/dist/components/social/ChatWindow/ChatWindow.js +146 -0
  232. package/dist/components/social/ChatWindow/ChatWindow.js.map +1 -0
  233. package/dist/components/social/ChatWindow/ChatWindow.module.js +27 -0
  234. package/dist/components/social/ChatWindow/ChatWindow.module.js.map +1 -0
  235. package/dist/components/social/ChatWindow/ChatWindow.types.d.ts +29 -0
  236. package/dist/components/social/ChatWindow/ChatWindow.types.d.ts.map +1 -0
  237. package/dist/components/social/ChatWindow/ChatWindow.types.js +12 -0
  238. package/dist/components/social/ChatWindow/ChatWindow.types.js.map +1 -0
  239. package/dist/components/social/ChatWindow/index.d.ts +4 -0
  240. package/dist/components/social/ChatWindow/index.d.ts.map +1 -0
  241. package/dist/components/social/CommandConsole/CommandConsole.d.ts +7 -0
  242. package/dist/components/social/CommandConsole/CommandConsole.d.ts.map +1 -0
  243. package/dist/components/social/CommandConsole/CommandConsole.js +187 -0
  244. package/dist/components/social/CommandConsole/CommandConsole.js.map +1 -0
  245. package/dist/components/social/CommandConsole/CommandConsole.module.js +31 -0
  246. package/dist/components/social/CommandConsole/CommandConsole.module.js.map +1 -0
  247. package/dist/components/social/CommandConsole/CommandConsole.types.d.ts +28 -0
  248. package/dist/components/social/CommandConsole/CommandConsole.types.d.ts.map +1 -0
  249. package/dist/components/social/CommandConsole/CommandConsole.types.js +11 -0
  250. package/dist/components/social/CommandConsole/CommandConsole.types.js.map +1 -0
  251. package/dist/components/social/CommandConsole/CommandConsole.utils.d.ts +4 -0
  252. package/dist/components/social/CommandConsole/CommandConsole.utils.d.ts.map +1 -0
  253. package/dist/components/social/CommandConsole/CommandConsole.utils.js +11 -0
  254. package/dist/components/social/CommandConsole/CommandConsole.utils.js.map +1 -0
  255. package/dist/components/social/CommandConsole/index.d.ts +5 -0
  256. package/dist/components/social/CommandConsole/index.d.ts.map +1 -0
  257. package/dist/components/social/index.d.ts +3 -0
  258. package/dist/components/social/index.d.ts.map +1 -0
  259. package/dist/index.d.ts +1 -0
  260. package/dist/index.d.ts.map +1 -1
  261. package/dist/index.js +36 -1
  262. package/dist/styles.css +2055 -486
  263. package/package.json +4 -4
@@ -0,0 +1,8 @@
1
+ import type { MiniMapProps } from "./MiniMap.types";
2
+ /**
3
+ * Top-down mini map: terrain pixels centred on the player, a heading arrow,
4
+ * markers and a compass "N". Screen readers get the heading and each marker's
5
+ * distance and direction as text.
6
+ */
7
+ export declare const MiniMap: import("react").ForwardRefExoticComponent<MiniMapProps & import("react").RefAttributes<HTMLElement>>;
8
+ //# sourceMappingURL=MiniMap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MiniMap.d.ts","sourceRoot":"","sources":["../../../../src/components/hud/MiniMap/MiniMap.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGpD;;;;GAIG;AACH,eAAO,MAAM,OAAO,sGAsElB,CAAC"}
@@ -0,0 +1,76 @@
1
+ import { cx } from "../../../utils/cx.js";
2
+ import MiniMap_module_default from "./MiniMap.module.js";
3
+ import { compassName, describeMarker, terrainRuns } from "./MiniMap.utils.js";
4
+ import { forwardRef, useId } from "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ //#region src/components/hud/MiniMap/MiniMap.tsx
7
+ /**
8
+ * Top-down mini map: terrain pixels centred on the player, a heading arrow,
9
+ * markers and a compass "N". Screen readers get the heading and each marker's
10
+ * distance and direction as text.
11
+ */
12
+ var MiniMap = forwardRef(function MiniMap({ tiles, heading = 0, markers = [], shape = "square", size = "md", label = "Mini map", className, ...rest }, ref) {
13
+ const captionId = useId();
14
+ const rows = Math.max(1, tiles.length);
15
+ const columns = Math.max(1, ...tiles.map((row) => row.length));
16
+ const cx0 = columns / 2;
17
+ const cy0 = rows / 2;
18
+ return /* @__PURE__ */ jsxs("figure", {
19
+ ref,
20
+ "aria-labelledby": captionId,
21
+ "data-shape": shape,
22
+ "data-size": size,
23
+ className: cx(MiniMap_module_default.map, className),
24
+ ...rest,
25
+ children: [
26
+ /* @__PURE__ */ jsxs("svg", {
27
+ className: MiniMap_module_default.svg,
28
+ viewBox: `0 0 ${columns} ${rows}`,
29
+ shapeRendering: "crispEdges",
30
+ "aria-hidden": "true",
31
+ children: [
32
+ terrainRuns(tiles).map((run) => /* @__PURE__ */ jsx("rect", {
33
+ x: run.x,
34
+ y: run.y,
35
+ width: run.width,
36
+ height: 1,
37
+ "data-terrain": run.terrain
38
+ }, `${run.x}-${run.y}`)),
39
+ markers.map((marker) => /* @__PURE__ */ jsx("rect", {
40
+ className: MiniMap_module_default.marker,
41
+ "data-kind": marker.kind ?? "poi",
42
+ x: cx0 + marker.x - .75,
43
+ y: cy0 + marker.y - .75,
44
+ width: 1.5,
45
+ height: 1.5
46
+ }, marker.id)),
47
+ /* @__PURE__ */ jsx("polygon", {
48
+ className: MiniMap_module_default.player,
49
+ points: `${cx0},${cy0 - 1.6} ${cx0 + 1.1},${cy0 + 1.1} ${cx0},${cy0 + .5} ${cx0 - 1.1},${cy0 + 1.1}`,
50
+ transform: `rotate(${heading} ${cx0} ${cy0})`
51
+ })
52
+ ]
53
+ }),
54
+ /* @__PURE__ */ jsx("span", {
55
+ className: MiniMap_module_default.north,
56
+ "aria-hidden": "true",
57
+ children: "N"
58
+ }),
59
+ /* @__PURE__ */ jsxs("figcaption", {
60
+ id: captionId,
61
+ className: "block-visually-hidden",
62
+ children: [
63
+ label,
64
+ ". Facing ",
65
+ compassName(heading),
66
+ ".",
67
+ markers.length > 0 ? ` ${markers.map(describeMarker).join(". ")}.` : ""
68
+ ]
69
+ })
70
+ ]
71
+ });
72
+ });
73
+ //#endregion
74
+ export { MiniMap };
75
+
76
+ //# sourceMappingURL=MiniMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MiniMap.js","names":["styles"],"sources":["../../../../src/components/hud/MiniMap/MiniMap.tsx"],"sourcesContent":["import { forwardRef, useId } from \"react\";\nimport { cx } from \"../../../utils/cx\";\nimport styles from \"./MiniMap.module.css\";\nimport type { MiniMapProps } from \"./MiniMap.types\";\nimport { compassName, describeMarker, terrainRuns } from \"./MiniMap.utils\";\n\n/**\n * Top-down mini map: terrain pixels centred on the player, a heading arrow,\n * markers and a compass \"N\". Screen readers get the heading and each marker's\n * distance and direction as text.\n */\nexport const MiniMap = forwardRef<HTMLElement, MiniMapProps>(function MiniMap(\n {\n tiles,\n heading = 0,\n markers = [],\n shape = \"square\",\n size = \"md\",\n label = \"Mini map\",\n className,\n ...rest\n },\n ref,\n) {\n const captionId = useId();\n const rows = Math.max(1, tiles.length);\n const columns = Math.max(1, ...tiles.map((row) => row.length));\n const cx0 = columns / 2;\n const cy0 = rows / 2;\n\n return (\n <figure\n ref={ref}\n aria-labelledby={captionId}\n data-shape={shape}\n data-size={size}\n className={cx(styles.map, className)}\n {...rest}\n >\n <svg\n className={styles.svg}\n viewBox={`0 0 ${columns} ${rows}`}\n shapeRendering=\"crispEdges\"\n aria-hidden=\"true\"\n >\n {terrainRuns(tiles).map((run) => (\n <rect\n key={`${run.x}-${run.y}`}\n x={run.x}\n y={run.y}\n width={run.width}\n height={1}\n data-terrain={run.terrain}\n />\n ))}\n {markers.map((marker) => (\n <rect\n key={marker.id}\n className={styles.marker}\n data-kind={marker.kind ?? \"poi\"}\n x={cx0 + marker.x - 0.75}\n y={cy0 + marker.y - 0.75}\n width={1.5}\n height={1.5}\n />\n ))}\n <polygon\n className={styles.player}\n points={`${cx0},${cy0 - 1.6} ${cx0 + 1.1},${cy0 + 1.1} ${cx0},${cy0 + 0.5} ${cx0 - 1.1},${cy0 + 1.1}`}\n transform={`rotate(${heading} ${cx0} ${cy0})`}\n />\n </svg>\n <span className={styles.north} aria-hidden=\"true\">\n N\n </span>\n <figcaption id={captionId} className=\"block-visually-hidden\">\n {label}. Facing {compassName(heading)}.\n {markers.length > 0 ? ` ${markers.map(describeMarker).join(\". \")}.` : \"\"}\n </figcaption>\n </figure>\n );\n});\n"],"mappings":";;;;;;;;;;;AAWA,IAAa,UAAU,WAAsC,SAAS,QACpE,EACE,OACA,UAAU,GACV,UAAU,CAAC,GACX,QAAQ,UACR,OAAO,MACP,QAAQ,YACR,WACA,GAAG,QAEL,KACA;CACA,MAAM,YAAY,MAAM;CACxB,MAAM,OAAO,KAAK,IAAI,GAAG,MAAM,MAAM;CACrC,MAAM,UAAU,KAAK,IAAI,GAAG,GAAG,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC;CAC7D,MAAM,MAAM,UAAU;CACtB,MAAM,MAAM,OAAO;CAEnB,OACE,qBAAC,UAAD;EACO;EACL,mBAAiB;EACjB,cAAY;EACZ,aAAW;EACX,WAAW,GAAGA,uBAAO,KAAK,SAAS;EACnC,GAAI;EANN,UAAA;GAQE,qBAAC,OAAD;IACE,WAAWA,uBAAO;IAClB,SAAS,OAAO,QAAQ,GAAG;IAC3B,gBAAe;IACf,eAAY;IAJd,UAAA;KAMG,YAAY,KAAK,CAAC,CAAC,KAAK,QACvB,oBAAC,QAAD;MAEE,GAAG,IAAI;MACP,GAAG,IAAI;MACP,OAAO,IAAI;MACX,QAAQ;MACR,gBAAc,IAAI;KACnB,GANM,GAAG,IAAI,EAAE,GAAG,IAAI,GAMtB,CACF;KACA,QAAQ,KAAK,WACZ,oBAAC,QAAD;MAEE,WAAWA,uBAAO;MAClB,aAAW,OAAO,QAAQ;MAC1B,GAAG,MAAM,OAAO,IAAI;MACpB,GAAG,MAAM,OAAO,IAAI;MACpB,OAAO;MACP,QAAQ;KACT,GAPM,OAAO,EAOb,CACF;KACD,oBAAC,WAAD;MACE,WAAWA,uBAAO;MAClB,QAAQ,GAAG,IAAI,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,IAAI,GAAG,MAAM,GAAI,GAAG,MAAM,IAAI,GAAG,MAAM;MAChG,WAAW,UAAU,QAAQ,GAAG,IAAI,GAAG,IAAI;KAC5C,CAAA;IACE;;GACL,oBAAC,QAAD;IAAM,WAAWA,uBAAO;IAAO,eAAY;IAAO,UAAA;GAE5C,CAAA;GACN,qBAAC,cAAD;IAAY,IAAI;IAAW,WAAU;IAArC,UAAA;KACG;KAAM;KAAU,YAAY,OAAO;KAAE;KACrC,QAAQ,SAAS,IAAI,IAAI,QAAQ,IAAI,cAAc,CAAC,CAAC,KAAK,IAAI,EAAE,KAAK;IAC5D;;EACN;;AAEZ,CAAC"}
@@ -0,0 +1,17 @@
1
+ //#region src/components/hud/MiniMap/MiniMap.module.css
2
+ var map = "block-map-QzhiQ";
3
+ var svg = "block-svg-VlTbt";
4
+ var marker = "block-marker-ovenA";
5
+ var player = "block-player-4KZP-";
6
+ var north = "block-north-lfYMy";
7
+ var MiniMap_module_default = {
8
+ map,
9
+ svg,
10
+ marker,
11
+ player,
12
+ north
13
+ };
14
+ //#endregion
15
+ export { MiniMap_module_default as default, map, marker, north, player, svg };
16
+
17
+ //# sourceMappingURL=MiniMap.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MiniMap.module.js","names":[],"sources":["../../../../src/components/hud/MiniMap/MiniMap.module.css"],"sourcesContent":[".map {\n --map-size: 128px;\n position: relative;\n width: var(--map-size);\n height: var(--map-size);\n margin: 0;\n flex-shrink: 0;\n overflow: hidden;\n background-color: var(--block-black);\n border: var(--block-border-width) solid var(--block-border);\n box-shadow: var(--block-shadow-bevel);\n}\n\n.map[data-size=\"sm\"] {\n --map-size: 96px;\n}\n\n.map[data-size=\"lg\"] {\n --map-size: 192px;\n}\n\n.map[data-shape=\"round\"] {\n border-radius: 50%;\n}\n\n.svg {\n display: block;\n width: 100%;\n height: 100%;\n}\n\n.svg [data-terrain=\"grass\"] {\n fill: var(--block-grass);\n}\n\n.svg [data-terrain=\"forest\"] {\n fill: var(--block-grass-dark);\n}\n\n.svg [data-terrain=\"dirt\"] {\n fill: var(--block-dirt);\n}\n\n.svg [data-terrain=\"sand\"] {\n fill: var(--block-sand);\n}\n\n.svg [data-terrain=\"water\"] {\n fill: var(--block-water);\n}\n\n.svg [data-terrain=\"stone\"] {\n fill: var(--block-stone);\n}\n\n.svg [data-terrain=\"snow\"] {\n fill: var(--block-white);\n}\n\n.svg [data-terrain=\"lava\"] {\n fill: var(--block-lava);\n}\n\n.svg [data-terrain=\"unknown\"] {\n fill: var(--block-black);\n}\n\n.marker {\n stroke: var(--block-black);\n stroke-width: 0.3;\n}\n\n.marker[data-kind=\"home\"] {\n fill: var(--block-gold-light);\n}\n\n.marker[data-kind=\"player\"] {\n fill: var(--block-diamond-light);\n}\n\n.marker[data-kind=\"death\"] {\n fill: var(--block-redstone-light);\n}\n\n.marker[data-kind=\"poi\"] {\n fill: var(--block-amethyst-light);\n}\n\n.player {\n fill: var(--block-white);\n stroke: var(--block-black);\n stroke-width: 0.3;\n stroke-linejoin: round;\n}\n\n.north {\n position: absolute;\n top: 2px;\n left: 50%;\n transform: translateX(-50%);\n font-family: var(--block-font-display);\n font-size: var(--block-font-size-xs);\n font-weight: var(--block-font-weight-bold);\n line-height: 1;\n color: var(--block-redstone-light);\n text-shadow: var(--block-shadow-text);\n}\n"],"mappings":""}
@@ -0,0 +1,43 @@
1
+ import type { HTMLAttributes } from "react";
2
+ /**
3
+ * Terrain codes for `tiles`: `g` grass, `f` forest, `d` dirt, `s` sand,
4
+ * `w` water, `t` stone, `n` snow, `l` lava, `.` unexplored.
5
+ */
6
+ export declare const miniMapTerrain: {
7
+ readonly g: "grass";
8
+ readonly f: "forest";
9
+ readonly d: "dirt";
10
+ readonly s: "sand";
11
+ readonly w: "water";
12
+ readonly t: "stone";
13
+ readonly n: "snow";
14
+ readonly l: "lava";
15
+ readonly ".": "unknown";
16
+ };
17
+ export type MiniMapTerrainCode = keyof typeof miniMapTerrain;
18
+ export declare const miniMapMarkerKinds: readonly ["home", "player", "death", "poi"];
19
+ export type MiniMapMarkerKind = (typeof miniMapMarkerKinds)[number];
20
+ export interface MiniMapMarker {
21
+ id: string;
22
+ /** Tiles east (+) / west (−) of the player. */
23
+ x: number;
24
+ /** Tiles south (+) / north (−) of the player. */
25
+ y: number;
26
+ label: string;
27
+ /** @default "poi" */
28
+ kind?: MiniMapMarkerKind;
29
+ }
30
+ export interface MiniMapProps extends HTMLAttributes<HTMLElement> {
31
+ /** Rows of terrain codes (see `miniMapTerrain`), centred on the player. */
32
+ tiles: string[];
33
+ /** Player heading in degrees, 0 = north, clockwise. @default 0 */
34
+ heading?: number;
35
+ markers?: MiniMapMarker[];
36
+ /** @default "square" */
37
+ shape?: "square" | "round";
38
+ /** 96 / 128 / 192 px. @default "md" */
39
+ size?: "sm" | "md" | "lg";
40
+ /** Accessible name. @default "Mini map" */
41
+ label?: string;
42
+ }
43
+ //# sourceMappingURL=MiniMap.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MiniMap.types.d.ts","sourceRoot":"","sources":["../../../../src/components/hud/MiniMap/MiniMap.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;CAUjB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,cAAc,CAAC;AAE7D,eAAO,MAAM,kBAAkB,6CAA8C,CAAC;AAE9E,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,+CAA+C;IAC/C,CAAC,EAAE,MAAM,CAAC;IACV,iDAAiD;IACjD,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,IAAI,CAAC,EAAE,iBAAiB,CAAC;CAC1B;AAED,MAAM,WAAW,YAAa,SAAQ,cAAc,CAAC,WAAW,CAAC;IAC/D,2EAA2E;IAC3E,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,wBAAwB;IACxB,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC3B,uCAAuC;IACvC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,26 @@
1
+ //#region src/components/hud/MiniMap/MiniMap.types.ts
2
+ /**
3
+ * Terrain codes for `tiles`: `g` grass, `f` forest, `d` dirt, `s` sand,
4
+ * `w` water, `t` stone, `n` snow, `l` lava, `.` unexplored.
5
+ */
6
+ var miniMapTerrain = {
7
+ g: "grass",
8
+ f: "forest",
9
+ d: "dirt",
10
+ s: "sand",
11
+ w: "water",
12
+ t: "stone",
13
+ n: "snow",
14
+ l: "lava",
15
+ ".": "unknown"
16
+ };
17
+ var miniMapMarkerKinds = [
18
+ "home",
19
+ "player",
20
+ "death",
21
+ "poi"
22
+ ];
23
+ //#endregion
24
+ export { miniMapMarkerKinds, miniMapTerrain };
25
+
26
+ //# sourceMappingURL=MiniMap.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MiniMap.types.js","names":[],"sources":["../../../../src/components/hud/MiniMap/MiniMap.types.ts"],"sourcesContent":["import type { HTMLAttributes } from \"react\";\n\n/**\n * Terrain codes for `tiles`: `g` grass, `f` forest, `d` dirt, `s` sand,\n * `w` water, `t` stone, `n` snow, `l` lava, `.` unexplored.\n */\nexport const miniMapTerrain = {\n g: \"grass\",\n f: \"forest\",\n d: \"dirt\",\n s: \"sand\",\n w: \"water\",\n t: \"stone\",\n n: \"snow\",\n l: \"lava\",\n \".\": \"unknown\",\n} as const;\n\nexport type MiniMapTerrainCode = keyof typeof miniMapTerrain;\n\nexport const miniMapMarkerKinds = [\"home\", \"player\", \"death\", \"poi\"] as const;\n\nexport type MiniMapMarkerKind = (typeof miniMapMarkerKinds)[number];\n\nexport interface MiniMapMarker {\n id: string;\n /** Tiles east (+) / west (−) of the player. */\n x: number;\n /** Tiles south (+) / north (−) of the player. */\n y: number;\n label: string;\n /** @default \"poi\" */\n kind?: MiniMapMarkerKind;\n}\n\nexport interface MiniMapProps extends HTMLAttributes<HTMLElement> {\n /** Rows of terrain codes (see `miniMapTerrain`), centred on the player. */\n tiles: string[];\n /** Player heading in degrees, 0 = north, clockwise. @default 0 */\n heading?: number;\n markers?: MiniMapMarker[];\n /** @default \"square\" */\n shape?: \"square\" | \"round\";\n /** 96 / 128 / 192 px. @default \"md\" */\n size?: \"sm\" | \"md\" | \"lg\";\n /** Accessible name. @default \"Mini map\" */\n label?: string;\n}\n"],"mappings":";;;;;AAMA,IAAa,iBAAiB;CAC5B,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,KAAK;AACP;AAIA,IAAa,qBAAqB;CAAC;CAAQ;CAAU;CAAS;AAAK"}
@@ -0,0 +1,14 @@
1
+ import { type MiniMapMarker } from "./MiniMap.types";
2
+ /** 8-way compass name for a clockwise angle from north. */
3
+ export declare function compassName(degrees: number): string;
4
+ /** "Home: 12 blocks north-east" style description of a marker. */
5
+ export declare function describeMarker(marker: MiniMapMarker): string;
6
+ export interface TerrainRun {
7
+ terrain: string;
8
+ x: number;
9
+ y: number;
10
+ width: number;
11
+ }
12
+ /** Merges horizontal runs of the same terrain into single rectangles. */
13
+ export declare function terrainRuns(tiles: string[]): TerrainRun[];
14
+ //# sourceMappingURL=MiniMap.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MiniMap.utils.d.ts","sourceRoot":"","sources":["../../../../src/components/hud/MiniMap/MiniMap.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,aAAa,EAA2B,MAAM,iBAAiB,CAAC;AAa9F,2DAA2D;AAC3D,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED,kEAAkE;AAClE,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAK5D;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf;AAED,yEAAyE;AACzE,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,CAazD"}
@@ -0,0 +1,47 @@
1
+ import { miniMapTerrain } from "./MiniMap.types.js";
2
+ //#region src/components/hud/MiniMap/MiniMap.utils.ts
3
+ var DIRECTIONS = [
4
+ "north",
5
+ "north-east",
6
+ "east",
7
+ "south-east",
8
+ "south",
9
+ "south-west",
10
+ "west",
11
+ "north-west"
12
+ ];
13
+ /** 8-way compass name for a clockwise angle from north. */
14
+ function compassName(degrees) {
15
+ return DIRECTIONS[Math.round((degrees % 360 + 360) % 360 / 45) % 8] ?? "north";
16
+ }
17
+ /** "Home: 12 blocks north-east" style description of a marker. */
18
+ function describeMarker(marker) {
19
+ const distance = Math.round(Math.hypot(marker.x, marker.y));
20
+ if (distance === 0) return `${marker.label}: here`;
21
+ const angle = Math.atan2(marker.x, -marker.y) * 180 / Math.PI;
22
+ return `${marker.label}: ${distance} ${distance === 1 ? "block" : "blocks"} ${compassName(angle)}`;
23
+ }
24
+ /** Merges horizontal runs of the same terrain into single rectangles. */
25
+ function terrainRuns(tiles) {
26
+ const runs = [];
27
+ tiles.forEach((row, y) => {
28
+ let x = 0;
29
+ while (x < row.length) {
30
+ const code = row[x];
31
+ let width = 1;
32
+ while (row[x + width] === code) width += 1;
33
+ runs.push({
34
+ terrain: miniMapTerrain[code] ?? "unknown",
35
+ x,
36
+ y,
37
+ width
38
+ });
39
+ x += width;
40
+ }
41
+ });
42
+ return runs;
43
+ }
44
+ //#endregion
45
+ export { compassName, describeMarker, terrainRuns };
46
+
47
+ //# sourceMappingURL=MiniMap.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MiniMap.utils.js","names":[],"sources":["../../../../src/components/hud/MiniMap/MiniMap.utils.ts"],"sourcesContent":["import { miniMapTerrain, type MiniMapMarker, type MiniMapTerrainCode } from \"./MiniMap.types\";\n\nconst DIRECTIONS = [\n \"north\",\n \"north-east\",\n \"east\",\n \"south-east\",\n \"south\",\n \"south-west\",\n \"west\",\n \"north-west\",\n];\n\n/** 8-way compass name for a clockwise angle from north. */\nexport function compassName(degrees: number): string {\n const index = Math.round((((degrees % 360) + 360) % 360) / 45) % 8;\n return DIRECTIONS[index] ?? \"north\";\n}\n\n/** \"Home: 12 blocks north-east\" style description of a marker. */\nexport function describeMarker(marker: MiniMapMarker): string {\n const distance = Math.round(Math.hypot(marker.x, marker.y));\n if (distance === 0) return `${marker.label}: here`;\n const angle = (Math.atan2(marker.x, -marker.y) * 180) / Math.PI;\n return `${marker.label}: ${distance} ${distance === 1 ? \"block\" : \"blocks\"} ${compassName(angle)}`;\n}\n\nexport interface TerrainRun {\n terrain: string;\n x: number;\n y: number;\n width: number;\n}\n\n/** Merges horizontal runs of the same terrain into single rectangles. */\nexport function terrainRuns(tiles: string[]): TerrainRun[] {\n const runs: TerrainRun[] = [];\n tiles.forEach((row, y) => {\n let x = 0;\n while (x < row.length) {\n const code = row[x] as MiniMapTerrainCode;\n let width = 1;\n while (row[x + width] === code) width += 1;\n runs.push({ terrain: miniMapTerrain[code] ?? \"unknown\", x, y, width });\n x += width;\n }\n });\n return runs;\n}\n"],"mappings":";;AAEA,IAAM,aAAa;CACjB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;;AAGA,SAAgB,YAAY,SAAyB;CAEnD,OAAO,WADO,KAAK,OAAS,UAAU,MAAO,OAAO,MAAO,EAAE,IAAI,MACrC;AAC9B;;AAGA,SAAgB,eAAe,QAA+B;CAC5D,MAAM,WAAW,KAAK,MAAM,KAAK,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC;CAC1D,IAAI,aAAa,GAAG,OAAO,GAAG,OAAO,MAAM;CAC3C,MAAM,QAAS,KAAK,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,MAAO,KAAK;CAC7D,OAAO,GAAG,OAAO,MAAM,IAAI,SAAS,GAAG,aAAa,IAAI,UAAU,SAAS,GAAG,YAAY,KAAK;AACjG;;AAUA,SAAgB,YAAY,OAA+B;CACzD,MAAM,OAAqB,CAAC;CAC5B,MAAM,SAAS,KAAK,MAAM;EACxB,IAAI,IAAI;EACR,OAAO,IAAI,IAAI,QAAQ;GACrB,MAAM,OAAO,IAAI;GACjB,IAAI,QAAQ;GACZ,OAAO,IAAI,IAAI,WAAW,MAAM,SAAS;GACzC,KAAK,KAAK;IAAE,SAAS,eAAe,SAAS;IAAW;IAAG;IAAG;GAAM,CAAC;GACrE,KAAK;EACP;CACF,CAAC;CACD,OAAO;AACT"}
@@ -0,0 +1,5 @@
1
+ export { MiniMap } from "./MiniMap";
2
+ export { miniMapMarkerKinds, miniMapTerrain } from "./MiniMap.types";
3
+ export { compassName, describeMarker } from "./MiniMap.utils";
4
+ export type { MiniMapMarker, MiniMapMarkerKind, MiniMapProps, MiniMapTerrainCode, } from "./MiniMap.types";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/hud/MiniMap/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC9D,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,GACnB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ScoreboardProps } from "./Scoreboard.types";
2
+ /**
3
+ * Sidebar scoreboard: an objective title over name / score rows, sorted by
4
+ * score. A captioned table, so screen readers announce each name with its score.
5
+ */
6
+ export declare const Scoreboard: import("react").ForwardRefExoticComponent<ScoreboardProps & import("react").RefAttributes<HTMLDivElement>>;
7
+ //# sourceMappingURL=Scoreboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scoreboard.d.ts","sourceRoot":"","sources":["../../../../src/components/hud/Scoreboard/Scoreboard.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D;;;GAGG;AACH,eAAO,MAAM,UAAU,4GAgErB,CAAC"}
@@ -0,0 +1,89 @@
1
+ import { cx } from "../../../utils/cx.js";
2
+ import { formatNumber } from "../../../utils/number.js";
3
+ import Scoreboard_module_default from "./Scoreboard.module.js";
4
+ import { entryKey, sortEntries } from "./Scoreboard.utils.js";
5
+ import { forwardRef, useId } from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ //#region src/components/hud/Scoreboard/Scoreboard.tsx
8
+ /**
9
+ * Sidebar scoreboard: an objective title over name / score rows, sorted by
10
+ * score. A captioned table, so screen readers announce each name with its score.
11
+ */
12
+ var Scoreboard = forwardRef(function Scoreboard({ title, entries, sort = "desc", maxEntries = 15, highlightId, showRank = false, emptyText = "No scores yet", className, ...rest }, ref) {
13
+ const captionId = useId();
14
+ const sorted = sortEntries(entries, sort);
15
+ const visible = sorted.slice(0, Math.max(0, maxEntries));
16
+ const hidden = sorted.length - visible.length;
17
+ return /* @__PURE__ */ jsxs("div", {
18
+ ref,
19
+ className: cx(Scoreboard_module_default.scoreboard, className),
20
+ ...rest,
21
+ children: [/* @__PURE__ */ jsxs("table", {
22
+ className: Scoreboard_module_default.table,
23
+ "aria-labelledby": captionId,
24
+ children: [
25
+ /* @__PURE__ */ jsx("caption", {
26
+ id: captionId,
27
+ className: Scoreboard_module_default.title,
28
+ children: title
29
+ }),
30
+ /* @__PURE__ */ jsx("thead", {
31
+ className: "block-visually-hidden",
32
+ children: /* @__PURE__ */ jsxs("tr", { children: [
33
+ showRank ? /* @__PURE__ */ jsx("th", {
34
+ scope: "col",
35
+ children: "Rank"
36
+ }) : null,
37
+ /* @__PURE__ */ jsx("th", {
38
+ scope: "col",
39
+ children: "Name"
40
+ }),
41
+ /* @__PURE__ */ jsx("th", {
42
+ scope: "col",
43
+ children: "Score"
44
+ })
45
+ ] })
46
+ }),
47
+ /* @__PURE__ */ jsx("tbody", { children: visible.length === 0 ? /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", {
48
+ colSpan: showRank ? 3 : 2,
49
+ className: Scoreboard_module_default.empty,
50
+ children: emptyText
51
+ }) }) : visible.map((entry, index) => {
52
+ const key = entryKey(entry, index);
53
+ const highlighted = highlightId !== void 0 && key === highlightId;
54
+ return /* @__PURE__ */ jsxs("tr", {
55
+ className: Scoreboard_module_default.row,
56
+ "data-highlighted": highlighted || void 0,
57
+ "aria-current": highlighted ? "true" : void 0,
58
+ children: [
59
+ showRank ? /* @__PURE__ */ jsx("td", {
60
+ className: Scoreboard_module_default.rank,
61
+ children: index + 1
62
+ }) : null,
63
+ /* @__PURE__ */ jsx("th", {
64
+ scope: "row",
65
+ className: Scoreboard_module_default.name,
66
+ children: entry.name
67
+ }),
68
+ /* @__PURE__ */ jsx("td", {
69
+ className: Scoreboard_module_default.score,
70
+ children: formatNumber(entry.score)
71
+ })
72
+ ]
73
+ }, key);
74
+ }) })
75
+ ]
76
+ }), hidden > 0 ? /* @__PURE__ */ jsxs("p", {
77
+ className: Scoreboard_module_default.more,
78
+ children: [
79
+ "+",
80
+ hidden,
81
+ " more"
82
+ ]
83
+ }) : null]
84
+ });
85
+ });
86
+ //#endregion
87
+ export { Scoreboard };
88
+
89
+ //# sourceMappingURL=Scoreboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scoreboard.js","names":["styles"],"sources":["../../../../src/components/hud/Scoreboard/Scoreboard.tsx"],"sourcesContent":["import { forwardRef, useId } from \"react\";\nimport { cx } from \"../../../utils/cx\";\nimport { formatNumber } from \"../../../utils/number\";\nimport styles from \"./Scoreboard.module.css\";\nimport type { ScoreboardProps } from \"./Scoreboard.types\";\nimport { entryKey, sortEntries } from \"./Scoreboard.utils\";\n\n/**\n * Sidebar scoreboard: an objective title over name / score rows, sorted by\n * score. A captioned table, so screen readers announce each name with its score.\n */\nexport const Scoreboard = forwardRef<HTMLDivElement, ScoreboardProps>(function Scoreboard(\n {\n title,\n entries,\n sort = \"desc\",\n maxEntries = 15,\n highlightId,\n showRank = false,\n emptyText = \"No scores yet\",\n className,\n ...rest\n },\n ref,\n) {\n const captionId = useId();\n const sorted = sortEntries(entries, sort);\n const visible = sorted.slice(0, Math.max(0, maxEntries));\n const hidden = sorted.length - visible.length;\n\n return (\n <div ref={ref} className={cx(styles.scoreboard, className)} {...rest}>\n <table className={styles.table} aria-labelledby={captionId}>\n <caption id={captionId} className={styles.title}>\n {title}\n </caption>\n <thead className=\"block-visually-hidden\">\n <tr>\n {showRank ? <th scope=\"col\">Rank</th> : null}\n <th scope=\"col\">Name</th>\n <th scope=\"col\">Score</th>\n </tr>\n </thead>\n <tbody>\n {visible.length === 0 ? (\n <tr>\n <td colSpan={showRank ? 3 : 2} className={styles.empty}>\n {emptyText}\n </td>\n </tr>\n ) : (\n visible.map((entry, index) => {\n const key = entryKey(entry, index);\n const highlighted = highlightId !== undefined && key === highlightId;\n return (\n <tr\n key={key}\n className={styles.row}\n data-highlighted={highlighted || undefined}\n aria-current={highlighted ? \"true\" : undefined}\n >\n {showRank ? <td className={styles.rank}>{index + 1}</td> : null}\n <th scope=\"row\" className={styles.name}>\n {entry.name}\n </th>\n <td className={styles.score}>{formatNumber(entry.score)}</td>\n </tr>\n );\n })\n )}\n </tbody>\n </table>\n {hidden > 0 ? <p className={styles.more}>+{hidden} more</p> : null}\n </div>\n );\n});\n"],"mappings":";;;;;;;;;;;AAWA,IAAa,aAAa,WAA4C,SAAS,WAC7E,EACE,OACA,SACA,OAAO,QACP,aAAa,IACb,aACA,WAAW,OACX,YAAY,iBACZ,WACA,GAAG,QAEL,KACA;CACA,MAAM,YAAY,MAAM;CACxB,MAAM,SAAS,YAAY,SAAS,IAAI;CACxC,MAAM,UAAU,OAAO,MAAM,GAAG,KAAK,IAAI,GAAG,UAAU,CAAC;CACvD,MAAM,SAAS,OAAO,SAAS,QAAQ;CAEvC,OACE,qBAAC,OAAD;EAAU;EAAK,WAAW,GAAGA,0BAAO,YAAY,SAAS;EAAG,GAAI;EAAhE,UAAA,CACE,qBAAC,SAAD;GAAO,WAAWA,0BAAO;GAAO,mBAAiB;GAAjD,UAAA;IACE,oBAAC,WAAD;KAAS,IAAI;KAAW,WAAWA,0BAAO;KACvC,UAAA;IACM,CAAA;IACT,oBAAC,SAAD;KAAO,WAAU;KACf,UAAA,qBAAC,MAAD,EAAA,UAAA;MACG,WAAW,oBAAC,MAAD;OAAI,OAAM;OAAM,UAAA;MAAQ,CAAA,IAAI;MACxC,oBAAC,MAAD;OAAI,OAAM;OAAM,UAAA;MAAQ,CAAA;MACxB,oBAAC,MAAD;OAAI,OAAM;OAAM,UAAA;MAAS,CAAA;KACvB,EAAA,CAAA;IACC,CAAA;IACP,oBAAC,SAAD,EAAA,UACG,QAAQ,WAAW,IAClB,oBAAC,MAAD,EAAA,UACE,oBAAC,MAAD;KAAI,SAAS,WAAW,IAAI;KAAG,WAAWA,0BAAO;KAC9C,UAAA;IACC,CAAA,EACF,CAAA,IAEJ,QAAQ,KAAK,OAAO,UAAU;KAC5B,MAAM,MAAM,SAAS,OAAO,KAAK;KACjC,MAAM,cAAc,gBAAgB,KAAA,KAAa,QAAQ;KACzD,OACE,qBAAC,MAAD;MAEE,WAAWA,0BAAO;MAClB,oBAAkB,eAAe,KAAA;MACjC,gBAAc,cAAc,SAAS,KAAA;MAJvC,UAAA;OAMG,WAAW,oBAAC,MAAD;QAAI,WAAWA,0BAAO;QAAO,UAAA,QAAQ;OAAM,CAAA,IAAI;OAC3D,oBAAC,MAAD;QAAI,OAAM;QAAM,WAAWA,0BAAO;QAC/B,UAAA,MAAM;OACL,CAAA;OACJ,oBAAC,MAAD;QAAI,WAAWA,0BAAO;QAAQ,UAAA,aAAa,MAAM,KAAK;OAAM,CAAA;MAC1D;KAVG,GAAA,GAUH;IAER,CAAC,EAEE,CAAA;GACF;EACN,CAAA,GAAA,SAAS,IAAI,qBAAC,KAAD;GAAG,WAAWA,0BAAO;GAArB,UAAA;IAA2B;IAAE;IAAO;GAAQ;EAAI,CAAA,IAAA,IAC3D;;AAET,CAAC"}
@@ -0,0 +1,25 @@
1
+ //#region src/components/hud/Scoreboard/Scoreboard.module.css
2
+ var scoreboard = "block-scoreboard-2KTaQ";
3
+ var table = "block-table-4kliz";
4
+ var title = "block-title-6zX-U";
5
+ var row = "block-row-gK5cA";
6
+ var rank = "block-rank-TJ44y";
7
+ var name = "block-name-H8EuJ";
8
+ var score = "block-score-C7mhx";
9
+ var empty = "block-empty-1FO3R";
10
+ var more = "block-more-3TTcW";
11
+ var Scoreboard_module_default = {
12
+ scoreboard,
13
+ table,
14
+ title,
15
+ row,
16
+ rank,
17
+ name,
18
+ score,
19
+ empty,
20
+ more
21
+ };
22
+ //#endregion
23
+ export { Scoreboard_module_default as default, empty, more, name, rank, row, score, scoreboard, table, title };
24
+
25
+ //# sourceMappingURL=Scoreboard.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scoreboard.module.js","names":[],"sources":["../../../../src/components/hud/Scoreboard/Scoreboard.module.css"],"sourcesContent":[".scoreboard {\n display: inline-flex;\n flex-direction: column;\n min-width: 180px;\n max-width: 100%;\n padding: var(--block-space-1) var(--block-space-2) var(--block-space-2);\n font-family: var(--block-font-display);\n font-size: var(--block-font-size-sm);\n color: var(--block-text-primary);\n text-shadow: var(--block-shadow-text);\n background-color: color-mix(in srgb, var(--block-obsidian-dark) 82%, transparent);\n border: var(--block-border-width-thin) solid var(--block-black);\n}\n\n.table {\n width: 100%;\n border-collapse: collapse;\n}\n\n.title {\n padding: var(--block-space-1) 0 var(--block-space-2);\n font-size: var(--block-font-size-md);\n font-weight: var(--block-font-weight-bold);\n text-align: center;\n color: var(--block-gold-light);\n overflow-wrap: anywhere;\n}\n\n.row > * {\n padding: 2px 0;\n vertical-align: baseline;\n}\n\n.rank {\n width: 1%;\n padding-right: var(--block-space-2);\n color: var(--block-text-secondary);\n font-variant-numeric: tabular-nums;\n text-align: right;\n}\n\n.name {\n font-weight: var(--block-font-weight-regular);\n text-align: left;\n overflow-wrap: anywhere;\n}\n\n.score {\n padding-left: var(--block-space-4);\n text-align: right;\n white-space: nowrap;\n color: var(--block-redstone-light);\n font-variant-numeric: tabular-nums;\n}\n\n.row[data-highlighted] > * {\n background-color: color-mix(in srgb, var(--block-emerald) 30%, transparent);\n}\n\n.row[data-highlighted] .name {\n color: var(--block-emerald-light);\n}\n\n.empty {\n padding: var(--block-space-2) 0;\n text-align: center;\n color: var(--block-text-secondary);\n}\n\n.more {\n margin: var(--block-space-1) 0 0;\n font-size: var(--block-font-size-xs);\n text-align: right;\n color: var(--block-text-secondary);\n}\n"],"mappings":""}
@@ -0,0 +1,23 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ export interface ScoreboardEntry {
3
+ /** Stable key; defaults to `name` when it is a string. */
4
+ id?: string;
5
+ name: ReactNode;
6
+ score: number;
7
+ }
8
+ export interface ScoreboardProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
9
+ /** Objective shown in the header — also the table caption. */
10
+ title: ReactNode;
11
+ entries: ScoreboardEntry[];
12
+ /** `desc` puts the highest score first. `none` keeps the given order. @default "desc" */
13
+ sort?: "desc" | "asc" | "none";
14
+ /** Rows shown after sorting; the rest are summarised. @default 15 */
15
+ maxEntries?: number;
16
+ /** Entry id (or string name) to highlight, e.g. the current player. */
17
+ highlightId?: string;
18
+ /** Show a rank number before each name. */
19
+ showRank?: boolean;
20
+ /** Text when there are no entries. @default "No scores yet" */
21
+ emptyText?: ReactNode;
22
+ }
23
+ //# sourceMappingURL=Scoreboard.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scoreboard.types.d.ts","sourceRoot":"","sources":["../../../../src/components/hud/Scoreboard/Scoreboard.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,MAAM,WAAW,eAAe;IAC9B,0DAA0D;IAC1D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IACpF,8DAA8D;IAC9D,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,yFAAyF;IACzF,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IAC/B,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB"}
@@ -0,0 +1,5 @@
1
+ import type { ScoreboardEntry } from "./Scoreboard.types";
2
+ export declare function entryKey(entry: ScoreboardEntry, index: number): string;
3
+ /** Sorted copy (stable), highest first for `desc`. */
4
+ export declare function sortEntries(entries: ScoreboardEntry[], sort: "desc" | "asc" | "none"): ScoreboardEntry[];
5
+ //# sourceMappingURL=Scoreboard.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scoreboard.utils.d.ts","sourceRoot":"","sources":["../../../../src/components/hud/Scoreboard/Scoreboard.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,wBAAgB,QAAQ,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGtE;AAED,sDAAsD;AACtD,wBAAgB,WAAW,CACzB,OAAO,EAAE,eAAe,EAAE,EAC1B,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAC5B,eAAe,EAAE,CAInB"}
@@ -0,0 +1,15 @@
1
+ //#region src/components/hud/Scoreboard/Scoreboard.utils.ts
2
+ function entryKey(entry, index) {
3
+ if (entry.id !== void 0) return entry.id;
4
+ return typeof entry.name === "string" ? entry.name : String(index);
5
+ }
6
+ /** Sorted copy (stable), highest first for `desc`. */
7
+ function sortEntries(entries, sort) {
8
+ if (sort === "none") return entries;
9
+ const sign = sort === "desc" ? -1 : 1;
10
+ return [...entries].sort((a, b) => (a.score - b.score) * sign);
11
+ }
12
+ //#endregion
13
+ export { entryKey, sortEntries };
14
+
15
+ //# sourceMappingURL=Scoreboard.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scoreboard.utils.js","names":[],"sources":["../../../../src/components/hud/Scoreboard/Scoreboard.utils.ts"],"sourcesContent":["import type { ScoreboardEntry } from \"./Scoreboard.types\";\n\nexport function entryKey(entry: ScoreboardEntry, index: number): string {\n if (entry.id !== undefined) return entry.id;\n return typeof entry.name === \"string\" ? entry.name : String(index);\n}\n\n/** Sorted copy (stable), highest first for `desc`. */\nexport function sortEntries(\n entries: ScoreboardEntry[],\n sort: \"desc\" | \"asc\" | \"none\",\n): ScoreboardEntry[] {\n if (sort === \"none\") return entries;\n const sign = sort === \"desc\" ? -1 : 1;\n return [...entries].sort((a, b) => (a.score - b.score) * sign);\n}\n"],"mappings":";AAEA,SAAgB,SAAS,OAAwB,OAAuB;CACtE,IAAI,MAAM,OAAO,KAAA,GAAW,OAAO,MAAM;CACzC,OAAO,OAAO,MAAM,SAAS,WAAW,MAAM,OAAO,OAAO,KAAK;AACnE;;AAGA,SAAgB,YACd,SACA,MACmB;CACnB,IAAI,SAAS,QAAQ,OAAO;CAC5B,MAAM,OAAO,SAAS,SAAS,KAAK;CACpC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,MAAM,GAAG,OAAO,EAAE,QAAQ,EAAE,SAAS,IAAI;AAC/D"}
@@ -0,0 +1,3 @@
1
+ export { Scoreboard } from "./Scoreboard";
2
+ export type { ScoreboardEntry, ScoreboardProps } from "./Scoreboard.types";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/hud/Scoreboard/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { WeatherIndicatorProps } from "./WeatherIndicator.types";
2
+ /** Current weather read-out with a pixel icon and an optional time remaining. */
3
+ export declare const WeatherIndicator: import("react").ForwardRefExoticComponent<WeatherIndicatorProps & import("react").RefAttributes<HTMLDivElement>>;
4
+ //# sourceMappingURL=WeatherIndicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WeatherIndicator.d.ts","sourceRoot":"","sources":["../../../../src/components/hud/WeatherIndicator/WeatherIndicator.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGtE,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,kHA8B5B,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { cx } from "../../../utils/cx.js";
2
+ import hudChip_module_default from "../hudChip.module.js";
3
+ import WeatherIndicator_module_default from "./WeatherIndicator.module.js";
4
+ import { WEATHER_LABEL, weatherIcon } from "./WeatherIndicator.utils.js";
5
+ import { forwardRef } from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ //#region src/components/hud/WeatherIndicator/WeatherIndicator.tsx
8
+ /** Current weather read-out with a pixel icon and an optional time remaining. */
9
+ var WeatherIndicator = forwardRef(function WeatherIndicator({ weather, name, remaining, night = false, announce = false, size = "md", className, ...rest }, ref) {
10
+ const Icon = weatherIcon(weather, night);
11
+ return /* @__PURE__ */ jsxs("div", {
12
+ ref,
13
+ role: announce ? "status" : void 0,
14
+ "data-weather": weather,
15
+ "data-size": size,
16
+ className: cx(hudChip_module_default.chip, WeatherIndicator_module_default.weather, className),
17
+ ...rest,
18
+ children: [
19
+ /* @__PURE__ */ jsx("span", {
20
+ className: cx(hudChip_module_default.icon, WeatherIndicator_module_default.icon),
21
+ "aria-hidden": "true",
22
+ children: /* @__PURE__ */ jsx(Icon, { size: size === "lg" ? 24 : 16 })
23
+ }),
24
+ /* @__PURE__ */ jsxs("span", { children: [
25
+ /* @__PURE__ */ jsx("span", {
26
+ className: hudChip_module_default.label,
27
+ children: "Weather"
28
+ }),
29
+ " ",
30
+ /* @__PURE__ */ jsx("span", {
31
+ className: WeatherIndicator_module_default.name,
32
+ children: name ?? WEATHER_LABEL[weather]
33
+ })
34
+ ] }),
35
+ remaining !== void 0 ? /* @__PURE__ */ jsxs("span", {
36
+ className: hudChip_module_default.label,
37
+ children: [
38
+ "· ",
39
+ /* @__PURE__ */ jsx("span", {
40
+ className: hudChip_module_default.value,
41
+ children: remaining
42
+ }),
43
+ " left"
44
+ ]
45
+ }) : null
46
+ ]
47
+ });
48
+ });
49
+ //#endregion
50
+ export { WeatherIndicator };
51
+
52
+ //# sourceMappingURL=WeatherIndicator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WeatherIndicator.js","names":["chip","styles"],"sources":["../../../../src/components/hud/WeatherIndicator/WeatherIndicator.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport { cx } from \"../../../utils/cx\";\nimport chip from \"../hudChip.module.css\";\nimport styles from \"./WeatherIndicator.module.css\";\nimport type { WeatherIndicatorProps } from \"./WeatherIndicator.types\";\nimport { WEATHER_LABEL, weatherIcon } from \"./WeatherIndicator.utils\";\n\n/** Current weather read-out with a pixel icon and an optional time remaining. */\nexport const WeatherIndicator = forwardRef<HTMLDivElement, WeatherIndicatorProps>(\n function WeatherIndicator(\n { weather, name, remaining, night = false, announce = false, size = \"md\", className, ...rest },\n ref,\n ) {\n const Icon = weatherIcon(weather, night);\n return (\n <div\n ref={ref}\n role={announce ? \"status\" : undefined}\n data-weather={weather}\n data-size={size}\n className={cx(chip.chip, styles.weather, className)}\n {...rest}\n >\n <span className={cx(chip.icon, styles.icon)} aria-hidden=\"true\">\n <Icon size={size === \"lg\" ? 24 : 16} />\n </span>\n <span>\n <span className={chip.label}>Weather</span>{\" \"}\n <span className={styles.name}>{name ?? WEATHER_LABEL[weather]}</span>\n </span>\n {remaining !== undefined ? (\n <span className={chip.label}>\n · <span className={chip.value}>{remaining}</span> left\n </span>\n ) : null}\n </div>\n );\n },\n);\n"],"mappings":";;;;;;;;AAQA,IAAa,mBAAmB,WAC9B,SAAS,iBACP,EAAE,SAAS,MAAM,WAAW,QAAQ,OAAO,WAAW,OAAO,OAAO,MAAM,WAAW,GAAG,QACxF,KACA;CACA,MAAM,OAAO,YAAY,SAAS,KAAK;CACvC,OACE,qBAAC,OAAD;EACO;EACL,MAAM,WAAW,WAAW,KAAA;EAC5B,gBAAc;EACd,aAAW;EACX,WAAW,GAAGA,uBAAK,MAAMC,gCAAO,SAAS,SAAS;EAClD,GAAI;EANN,UAAA;GAQE,oBAAC,QAAD;IAAM,WAAW,GAAGD,uBAAK,MAAMC,gCAAO,IAAI;IAAG,eAAY;IACvD,UAAA,oBAAC,MAAD,EAAM,MAAM,SAAS,OAAO,KAAK,GAAK,CAAA;GAClC,CAAA;GACN,qBAAC,QAAD,EAAA,UAAA;IACE,oBAAC,QAAD;KAAM,WAAWD,uBAAK;KAAO,UAAA;IAAa,CAAA;IAAE;IAC5C,oBAAC,QAAD;KAAM,WAAWC,gCAAO;KAAO,UAAA,QAAQ,cAAc;IAAe,CAAA;GAChE,EAAA,CAAA;GACL,cAAc,KAAA,IACb,qBAAC,QAAD;IAAM,WAAWD,uBAAK;IAAtB,UAAA;KAA6B;KACzB,oBAAC,QAAD;MAAM,WAAWA,uBAAK;MAAQ,UAAA;KAAgB,CAAA;KAAC;IAC7C;GACJ,CAAA,IAAA;EACD;;AAET,CACF"}
@@ -0,0 +1,15 @@
1
+ //#region src/components/hud/WeatherIndicator/WeatherIndicator.module.css
2
+ var weather = "block-weather-7zqS2";
3
+ var icon = "block-icon-sAoQZ";
4
+ var name = "block-name-GjdrU";
5
+ var WeatherIndicator_module_default = {
6
+ weather,
7
+ icon,
8
+ "block-weather-drift": "block-block-weather-drift-CfW9y",
9
+ "block-weather-flash": "block-block-weather-flash-vbjyP",
10
+ name
11
+ };
12
+ //#endregion
13
+ export { WeatherIndicator_module_default as default, icon, name, weather };
14
+
15
+ //# sourceMappingURL=WeatherIndicator.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WeatherIndicator.module.js","names":[],"sources":["../../../../src/components/hud/WeatherIndicator/WeatherIndicator.module.css"],"sourcesContent":[".weather[data-weather=\"rain\"] .icon,\n.weather[data-weather=\"snow\"] .icon {\n animation: block-weather-drift 1.2s steps(2, end) infinite;\n}\n\n.weather[data-weather=\"thunder\"] .icon {\n animation: block-weather-flash 2.4s steps(1, end) infinite;\n}\n\n.weather[data-weather=\"thunder\"] .name {\n color: var(--block-gold-light);\n}\n\n.weather[data-weather=\"snow\"] .name {\n color: var(--block-diamond-light);\n}\n\n/* Two-frame pixel drift; reduced motion stops it (base.css). */\n@keyframes block-weather-drift {\n from {\n transform: translateY(0);\n }\n to {\n transform: translateY(2px);\n }\n}\n\n@keyframes block-weather-flash {\n 0%,\n 90% {\n filter: none;\n }\n 92% {\n filter: brightness(1.8);\n }\n}\n"],"mappings":""}
@@ -0,0 +1,17 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ export declare const weatherTypes: readonly ["clear", "cloudy", "rain", "thunder", "snow"];
3
+ export type WeatherType = (typeof weatherTypes)[number];
4
+ export interface WeatherIndicatorProps extends HTMLAttributes<HTMLDivElement> {
5
+ weather: WeatherType;
6
+ /** Display text. Defaults to "Clear", "Cloudy", "Rain", "Thunderstorm" or "Snow". */
7
+ name?: ReactNode;
8
+ /** Time left for this weather, e.g. "4 min". */
9
+ remaining?: ReactNode;
10
+ /** Show the moon instead of the sun for clear weather. */
11
+ night?: boolean;
12
+ /** Announce weather changes politely to screen readers (`role="status"`). */
13
+ announce?: boolean;
14
+ /** @default "md" */
15
+ size?: "sm" | "md" | "lg";
16
+ }
17
+ //# sourceMappingURL=WeatherIndicator.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WeatherIndicator.types.d.ts","sourceRoot":"","sources":["../../../../src/components/hud/WeatherIndicator/WeatherIndicator.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,eAAO,MAAM,YAAY,yDAA0D,CAAC;AAEpF,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD,MAAM,WAAW,qBAAsB,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC3E,OAAO,EAAE,WAAW,CAAC;IACrB,qFAAqF;IACrF,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,gDAAgD;IAChD,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oBAAoB;IACpB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC3B"}