@malilion/block-ui-react 0.2.0 → 0.4.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 (348) 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/Avatar/Avatar.d.ts +7 -0
  106. package/dist/components/display/Avatar/Avatar.d.ts.map +1 -0
  107. package/dist/components/display/Avatar/Avatar.js +53 -0
  108. package/dist/components/display/Avatar/Avatar.js.map +1 -0
  109. package/dist/components/display/Avatar/Avatar.module.js +17 -0
  110. package/dist/components/display/Avatar/Avatar.module.js.map +1 -0
  111. package/dist/components/display/Avatar/Avatar.types.d.ts +18 -0
  112. package/dist/components/display/Avatar/Avatar.types.d.ts.map +1 -0
  113. package/dist/components/display/Avatar/Avatar.types.js +11 -0
  114. package/dist/components/display/Avatar/Avatar.types.js.map +1 -0
  115. package/dist/components/display/Avatar/Avatar.utils.d.ts +7 -0
  116. package/dist/components/display/Avatar/Avatar.utils.d.ts.map +1 -0
  117. package/dist/components/display/Avatar/Avatar.utils.js +28 -0
  118. package/dist/components/display/Avatar/Avatar.utils.js.map +1 -0
  119. package/dist/components/display/Avatar/index.d.ts +5 -0
  120. package/dist/components/display/Avatar/index.d.ts.map +1 -0
  121. package/dist/components/display/SkillTree/SkillTree.d.ts +8 -0
  122. package/dist/components/display/SkillTree/SkillTree.d.ts.map +1 -0
  123. package/dist/components/display/SkillTree/SkillTree.js +138 -0
  124. package/dist/components/display/SkillTree/SkillTree.js.map +1 -0
  125. package/dist/components/display/SkillTree/SkillTree.module.js +33 -0
  126. package/dist/components/display/SkillTree/SkillTree.module.js.map +1 -0
  127. package/dist/components/display/SkillTree/SkillTree.types.d.ts +29 -0
  128. package/dist/components/display/SkillTree/SkillTree.types.d.ts.map +1 -0
  129. package/dist/components/display/SkillTree/SkillTree.utils.d.ts +8 -0
  130. package/dist/components/display/SkillTree/SkillTree.utils.d.ts.map +1 -0
  131. package/dist/components/display/SkillTree/SkillTree.utils.js +16 -0
  132. package/dist/components/display/SkillTree/SkillTree.utils.js.map +1 -0
  133. package/dist/components/display/SkillTree/index.d.ts +4 -0
  134. package/dist/components/display/SkillTree/index.d.ts.map +1 -0
  135. package/dist/components/display/index.d.ts +2 -0
  136. package/dist/components/display/index.d.ts.map +1 -1
  137. package/dist/components/feedback/Drawer/Drawer.d.ts +7 -0
  138. package/dist/components/feedback/Drawer/Drawer.d.ts.map +1 -0
  139. package/dist/components/feedback/Drawer/Drawer.js +78 -0
  140. package/dist/components/feedback/Drawer/Drawer.js.map +1 -0
  141. package/dist/components/feedback/Drawer/Drawer.module.js +25 -0
  142. package/dist/components/feedback/Drawer/Drawer.module.js.map +1 -0
  143. package/dist/components/feedback/Drawer/Drawer.types.d.ts +21 -0
  144. package/dist/components/feedback/Drawer/Drawer.types.d.ts.map +1 -0
  145. package/dist/components/feedback/Drawer/index.d.ts +3 -0
  146. package/dist/components/feedback/Drawer/index.d.ts.map +1 -0
  147. package/dist/components/feedback/EmptyState/EmptyState.d.ts +4 -0
  148. package/dist/components/feedback/EmptyState/EmptyState.d.ts.map +1 -0
  149. package/dist/components/feedback/EmptyState/EmptyState.js +35 -0
  150. package/dist/components/feedback/EmptyState/EmptyState.js.map +1 -0
  151. package/dist/components/feedback/EmptyState/EmptyState.module.js +17 -0
  152. package/dist/components/feedback/EmptyState/EmptyState.module.js.map +1 -0
  153. package/dist/components/feedback/EmptyState/EmptyState.types.d.ts +14 -0
  154. package/dist/components/feedback/EmptyState/EmptyState.types.d.ts.map +1 -0
  155. package/dist/components/feedback/EmptyState/index.d.ts +3 -0
  156. package/dist/components/feedback/EmptyState/index.d.ts.map +1 -0
  157. package/dist/components/feedback/Modal/BlockModal.d.ts.map +1 -1
  158. package/dist/components/feedback/Modal/BlockModal.js +3 -12
  159. package/dist/components/feedback/Modal/BlockModal.js.map +1 -1
  160. package/dist/components/feedback/Skeleton/Skeleton.d.ts +7 -0
  161. package/dist/components/feedback/Skeleton/Skeleton.d.ts.map +1 -0
  162. package/dist/components/feedback/Skeleton/Skeleton.js +33 -0
  163. package/dist/components/feedback/Skeleton/Skeleton.js.map +1 -0
  164. package/dist/components/feedback/Skeleton/Skeleton.module.js +12 -0
  165. package/dist/components/feedback/Skeleton/Skeleton.module.js.map +1 -0
  166. package/dist/components/feedback/Skeleton/Skeleton.types.d.ts +14 -0
  167. package/dist/components/feedback/Skeleton/Skeleton.types.d.ts.map +1 -0
  168. package/dist/components/feedback/Skeleton/Skeleton.types.js +11 -0
  169. package/dist/components/feedback/Skeleton/Skeleton.types.js.map +1 -0
  170. package/dist/components/feedback/Skeleton/index.d.ts +4 -0
  171. package/dist/components/feedback/Skeleton/index.d.ts.map +1 -0
  172. package/dist/components/feedback/index.d.ts +3 -0
  173. package/dist/components/feedback/index.d.ts.map +1 -1
  174. package/dist/components/forms/NumberInput/NumberInput.d.ts +8 -0
  175. package/dist/components/forms/NumberInput/NumberInput.d.ts.map +1 -0
  176. package/dist/components/forms/NumberInput/NumberInput.js +122 -0
  177. package/dist/components/forms/NumberInput/NumberInput.js.map +1 -0
  178. package/dist/components/forms/NumberInput/NumberInput.module.js +13 -0
  179. package/dist/components/forms/NumberInput/NumberInput.module.js.map +1 -0
  180. package/dist/components/forms/NumberInput/NumberInput.types.d.ts +20 -0
  181. package/dist/components/forms/NumberInput/NumberInput.types.d.ts.map +1 -0
  182. package/dist/components/forms/NumberInput/NumberInput.utils.d.ts +11 -0
  183. package/dist/components/forms/NumberInput/NumberInput.utils.d.ts.map +1 -0
  184. package/dist/components/forms/NumberInput/NumberInput.utils.js +26 -0
  185. package/dist/components/forms/NumberInput/NumberInput.utils.js.map +1 -0
  186. package/dist/components/forms/NumberInput/index.d.ts +3 -0
  187. package/dist/components/forms/NumberInput/index.d.ts.map +1 -0
  188. package/dist/components/forms/index.d.ts +1 -0
  189. package/dist/components/forms/index.d.ts.map +1 -1
  190. package/dist/components/hud/BiomeIndicator/BiomeIndicator.d.ts +4 -0
  191. package/dist/components/hud/BiomeIndicator/BiomeIndicator.d.ts.map +1 -0
  192. package/dist/components/hud/BiomeIndicator/BiomeIndicator.js +39 -0
  193. package/dist/components/hud/BiomeIndicator/BiomeIndicator.js.map +1 -0
  194. package/dist/components/hud/BiomeIndicator/BiomeIndicator.module.js +11 -0
  195. package/dist/components/hud/BiomeIndicator/BiomeIndicator.module.js.map +1 -0
  196. package/dist/components/hud/BiomeIndicator/BiomeIndicator.types.d.ts +16 -0
  197. package/dist/components/hud/BiomeIndicator/BiomeIndicator.types.d.ts.map +1 -0
  198. package/dist/components/hud/BiomeIndicator/BiomeIndicator.types.js +18 -0
  199. package/dist/components/hud/BiomeIndicator/BiomeIndicator.types.js.map +1 -0
  200. package/dist/components/hud/BiomeIndicator/BiomeIndicator.utils.d.ts +8 -0
  201. package/dist/components/hud/BiomeIndicator/BiomeIndicator.utils.d.ts.map +1 -0
  202. package/dist/components/hud/BiomeIndicator/BiomeIndicator.utils.js +55 -0
  203. package/dist/components/hud/BiomeIndicator/BiomeIndicator.utils.js.map +1 -0
  204. package/dist/components/hud/BiomeIndicator/index.d.ts +4 -0
  205. package/dist/components/hud/BiomeIndicator/index.d.ts.map +1 -0
  206. package/dist/components/hud/BossBar/BossBar.d.ts +4 -0
  207. package/dist/components/hud/BossBar/BossBar.d.ts.map +1 -0
  208. package/dist/components/hud/BossBar/BossBar.js +56 -0
  209. package/dist/components/hud/BossBar/BossBar.js.map +1 -0
  210. package/dist/components/hud/BossBar/BossBar.module.js +19 -0
  211. package/dist/components/hud/BossBar/BossBar.module.js.map +1 -0
  212. package/dist/components/hud/BossBar/BossBar.types.d.ts +22 -0
  213. package/dist/components/hud/BossBar/BossBar.types.d.ts.map +1 -0
  214. package/dist/components/hud/BossBar/BossBar.types.js +21 -0
  215. package/dist/components/hud/BossBar/BossBar.types.js.map +1 -0
  216. package/dist/components/hud/BossBar/index.d.ts +4 -0
  217. package/dist/components/hud/BossBar/index.d.ts.map +1 -0
  218. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.d.ts +4 -0
  219. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.d.ts.map +1 -0
  220. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.js +96 -0
  221. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.js.map +1 -0
  222. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.module.js +17 -0
  223. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.module.js.map +1 -0
  224. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.types.d.ts +19 -0
  225. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.types.d.ts.map +1 -0
  226. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.types.js +11 -0
  227. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.types.js.map +1 -0
  228. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.utils.d.ts +7 -0
  229. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.utils.d.ts.map +1 -0
  230. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.utils.js +24 -0
  231. package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.utils.js.map +1 -0
  232. package/dist/components/hud/CoordinatesHUD/index.d.ts +4 -0
  233. package/dist/components/hud/CoordinatesHUD/index.d.ts.map +1 -0
  234. package/dist/components/hud/DayNightIndicator/DayNightIndicator.d.ts +4 -0
  235. package/dist/components/hud/DayNightIndicator/DayNightIndicator.d.ts.map +1 -0
  236. package/dist/components/hud/DayNightIndicator/DayNightIndicator.js +70 -0
  237. package/dist/components/hud/DayNightIndicator/DayNightIndicator.js.map +1 -0
  238. package/dist/components/hud/DayNightIndicator/DayNightIndicator.module.js +19 -0
  239. package/dist/components/hud/DayNightIndicator/DayNightIndicator.module.js.map +1 -0
  240. package/dist/components/hud/DayNightIndicator/DayNightIndicator.types.d.ts +17 -0
  241. package/dist/components/hud/DayNightIndicator/DayNightIndicator.types.d.ts.map +1 -0
  242. package/dist/components/hud/DayNightIndicator/DayNightIndicator.utils.d.ts +15 -0
  243. package/dist/components/hud/DayNightIndicator/DayNightIndicator.utils.d.ts.map +1 -0
  244. package/dist/components/hud/DayNightIndicator/DayNightIndicator.utils.js +43 -0
  245. package/dist/components/hud/DayNightIndicator/DayNightIndicator.utils.js.map +1 -0
  246. package/dist/components/hud/DayNightIndicator/index.d.ts +4 -0
  247. package/dist/components/hud/DayNightIndicator/index.d.ts.map +1 -0
  248. package/dist/components/hud/MiniMap/MiniMap.d.ts +8 -0
  249. package/dist/components/hud/MiniMap/MiniMap.d.ts.map +1 -0
  250. package/dist/components/hud/MiniMap/MiniMap.js +76 -0
  251. package/dist/components/hud/MiniMap/MiniMap.js.map +1 -0
  252. package/dist/components/hud/MiniMap/MiniMap.module.js +17 -0
  253. package/dist/components/hud/MiniMap/MiniMap.module.js.map +1 -0
  254. package/dist/components/hud/MiniMap/MiniMap.types.d.ts +43 -0
  255. package/dist/components/hud/MiniMap/MiniMap.types.d.ts.map +1 -0
  256. package/dist/components/hud/MiniMap/MiniMap.types.js +26 -0
  257. package/dist/components/hud/MiniMap/MiniMap.types.js.map +1 -0
  258. package/dist/components/hud/MiniMap/MiniMap.utils.d.ts +14 -0
  259. package/dist/components/hud/MiniMap/MiniMap.utils.d.ts.map +1 -0
  260. package/dist/components/hud/MiniMap/MiniMap.utils.js +47 -0
  261. package/dist/components/hud/MiniMap/MiniMap.utils.js.map +1 -0
  262. package/dist/components/hud/MiniMap/index.d.ts +5 -0
  263. package/dist/components/hud/MiniMap/index.d.ts.map +1 -0
  264. package/dist/components/hud/Scoreboard/Scoreboard.d.ts +7 -0
  265. package/dist/components/hud/Scoreboard/Scoreboard.d.ts.map +1 -0
  266. package/dist/components/hud/Scoreboard/Scoreboard.js +89 -0
  267. package/dist/components/hud/Scoreboard/Scoreboard.js.map +1 -0
  268. package/dist/components/hud/Scoreboard/Scoreboard.module.js +25 -0
  269. package/dist/components/hud/Scoreboard/Scoreboard.module.js.map +1 -0
  270. package/dist/components/hud/Scoreboard/Scoreboard.types.d.ts +23 -0
  271. package/dist/components/hud/Scoreboard/Scoreboard.types.d.ts.map +1 -0
  272. package/dist/components/hud/Scoreboard/Scoreboard.utils.d.ts +5 -0
  273. package/dist/components/hud/Scoreboard/Scoreboard.utils.d.ts.map +1 -0
  274. package/dist/components/hud/Scoreboard/Scoreboard.utils.js +15 -0
  275. package/dist/components/hud/Scoreboard/Scoreboard.utils.js.map +1 -0
  276. package/dist/components/hud/Scoreboard/index.d.ts +3 -0
  277. package/dist/components/hud/Scoreboard/index.d.ts.map +1 -0
  278. package/dist/components/hud/WeatherIndicator/WeatherIndicator.d.ts +4 -0
  279. package/dist/components/hud/WeatherIndicator/WeatherIndicator.d.ts.map +1 -0
  280. package/dist/components/hud/WeatherIndicator/WeatherIndicator.js +52 -0
  281. package/dist/components/hud/WeatherIndicator/WeatherIndicator.js.map +1 -0
  282. package/dist/components/hud/WeatherIndicator/WeatherIndicator.module.js +15 -0
  283. package/dist/components/hud/WeatherIndicator/WeatherIndicator.module.js.map +1 -0
  284. package/dist/components/hud/WeatherIndicator/WeatherIndicator.types.d.ts +17 -0
  285. package/dist/components/hud/WeatherIndicator/WeatherIndicator.types.d.ts.map +1 -0
  286. package/dist/components/hud/WeatherIndicator/WeatherIndicator.types.js +12 -0
  287. package/dist/components/hud/WeatherIndicator/WeatherIndicator.types.js.map +1 -0
  288. package/dist/components/hud/WeatherIndicator/WeatherIndicator.utils.d.ts +5 -0
  289. package/dist/components/hud/WeatherIndicator/WeatherIndicator.utils.d.ts.map +1 -0
  290. package/dist/components/hud/WeatherIndicator/WeatherIndicator.utils.js +22 -0
  291. package/dist/components/hud/WeatherIndicator/WeatherIndicator.utils.js.map +1 -0
  292. package/dist/components/hud/WeatherIndicator/index.d.ts +4 -0
  293. package/dist/components/hud/WeatherIndicator/index.d.ts.map +1 -0
  294. package/dist/components/hud/hudChip.module.js +15 -0
  295. package/dist/components/hud/hudChip.module.js.map +1 -0
  296. package/dist/components/hud/index.d.ts +7 -0
  297. package/dist/components/hud/index.d.ts.map +1 -1
  298. package/dist/components/layout/Accordion/Accordion.d.ts +7 -0
  299. package/dist/components/layout/Accordion/Accordion.d.ts.map +1 -0
  300. package/dist/components/layout/Accordion/Accordion.js +95 -0
  301. package/dist/components/layout/Accordion/Accordion.js.map +1 -0
  302. package/dist/components/layout/Accordion/Accordion.module.js +23 -0
  303. package/dist/components/layout/Accordion/Accordion.module.js.map +1 -0
  304. package/dist/components/layout/Accordion/Accordion.types.d.ts +21 -0
  305. package/dist/components/layout/Accordion/Accordion.types.d.ts.map +1 -0
  306. package/dist/components/layout/Accordion/index.d.ts +3 -0
  307. package/dist/components/layout/Accordion/index.d.ts.map +1 -0
  308. package/dist/components/layout/index.d.ts +1 -0
  309. package/dist/components/layout/index.d.ts.map +1 -1
  310. package/dist/components/social/ChatWindow/ChatWindow.d.ts +8 -0
  311. package/dist/components/social/ChatWindow/ChatWindow.d.ts.map +1 -0
  312. package/dist/components/social/ChatWindow/ChatWindow.js +146 -0
  313. package/dist/components/social/ChatWindow/ChatWindow.js.map +1 -0
  314. package/dist/components/social/ChatWindow/ChatWindow.module.js +27 -0
  315. package/dist/components/social/ChatWindow/ChatWindow.module.js.map +1 -0
  316. package/dist/components/social/ChatWindow/ChatWindow.types.d.ts +29 -0
  317. package/dist/components/social/ChatWindow/ChatWindow.types.d.ts.map +1 -0
  318. package/dist/components/social/ChatWindow/ChatWindow.types.js +12 -0
  319. package/dist/components/social/ChatWindow/ChatWindow.types.js.map +1 -0
  320. package/dist/components/social/ChatWindow/index.d.ts +4 -0
  321. package/dist/components/social/ChatWindow/index.d.ts.map +1 -0
  322. package/dist/components/social/CommandConsole/CommandConsole.d.ts +7 -0
  323. package/dist/components/social/CommandConsole/CommandConsole.d.ts.map +1 -0
  324. package/dist/components/social/CommandConsole/CommandConsole.js +187 -0
  325. package/dist/components/social/CommandConsole/CommandConsole.js.map +1 -0
  326. package/dist/components/social/CommandConsole/CommandConsole.module.js +31 -0
  327. package/dist/components/social/CommandConsole/CommandConsole.module.js.map +1 -0
  328. package/dist/components/social/CommandConsole/CommandConsole.types.d.ts +28 -0
  329. package/dist/components/social/CommandConsole/CommandConsole.types.d.ts.map +1 -0
  330. package/dist/components/social/CommandConsole/CommandConsole.types.js +11 -0
  331. package/dist/components/social/CommandConsole/CommandConsole.types.js.map +1 -0
  332. package/dist/components/social/CommandConsole/CommandConsole.utils.d.ts +4 -0
  333. package/dist/components/social/CommandConsole/CommandConsole.utils.d.ts.map +1 -0
  334. package/dist/components/social/CommandConsole/CommandConsole.utils.js +11 -0
  335. package/dist/components/social/CommandConsole/CommandConsole.utils.js.map +1 -0
  336. package/dist/components/social/CommandConsole/index.d.ts +5 -0
  337. package/dist/components/social/CommandConsole/index.d.ts.map +1 -0
  338. package/dist/components/social/index.d.ts +3 -0
  339. package/dist/components/social/index.d.ts.map +1 -0
  340. package/dist/hooks/useScrollLock.d.ts +6 -0
  341. package/dist/hooks/useScrollLock.d.ts.map +1 -0
  342. package/dist/hooks/useScrollLock.js +26 -0
  343. package/dist/hooks/useScrollLock.js.map +1 -0
  344. package/dist/index.d.ts +1 -0
  345. package/dist/index.d.ts.map +1 -1
  346. package/dist/index.js +45 -1
  347. package/dist/styles.css +2511 -483
  348. package/package.json +4 -4
@@ -0,0 +1,78 @@
1
+ import { cx } from "../../../utils/cx.js";
2
+ import { usePortalContainer } from "../../../provider/context.js";
3
+ import { mergeRefs } from "../../../utils/refs.js";
4
+ import { useFocusTrap } from "../../../hooks/useFocusTrap.js";
5
+ import { useScrollLock } from "../../../hooks/useScrollLock.js";
6
+ import Drawer_module_default from "./Drawer.module.js";
7
+ import { forwardRef, useId, useRef } from "react";
8
+ import { createPortal } from "react-dom";
9
+ import { CloseIcon } from "@malilion/block-ui-icons";
10
+ import { jsx, jsxs } from "react/jsx-runtime";
11
+ //#region src/components/feedback/Drawer/Drawer.tsx
12
+ /**
13
+ * Panel that slides in from an edge (inventory, settings, mobile menu). Modal
14
+ * like `BlockModal`: focus trap, Escape, overlay click and focus restoration.
15
+ */
16
+ var Drawer = forwardRef(function Drawer({ open, onClose, title, children, footer, side = "right", size = "md", closeOnOverlayClick = true, closeOnEscape = true, initialFocusRef, className, ...rest }, ref) {
17
+ const container = usePortalContainer();
18
+ const panelRef = useRef(null);
19
+ const titleId = useId();
20
+ useFocusTrap(panelRef, open && container !== null, { initialFocus: initialFocusRef });
21
+ useScrollLock(open);
22
+ if (!open || !container) return null;
23
+ const handleKeyDown = (event) => {
24
+ if (event.key === "Escape" && closeOnEscape) {
25
+ event.stopPropagation();
26
+ onClose();
27
+ }
28
+ };
29
+ const handleOverlayClick = (event) => {
30
+ if (closeOnOverlayClick && event.target === event.currentTarget) onClose();
31
+ };
32
+ return createPortal(/* @__PURE__ */ jsx("div", {
33
+ role: "presentation",
34
+ className: Drawer_module_default.overlay,
35
+ "data-side": side,
36
+ onMouseDown: handleOverlayClick,
37
+ onKeyDown: handleKeyDown,
38
+ children: /* @__PURE__ */ jsxs("div", {
39
+ ref: mergeRefs(panelRef, ref),
40
+ role: "dialog",
41
+ "aria-modal": "true",
42
+ "aria-labelledby": titleId,
43
+ tabIndex: -1,
44
+ "data-side": side,
45
+ "data-size": size,
46
+ className: cx(Drawer_module_default.drawer, className),
47
+ ...rest,
48
+ children: [
49
+ /* @__PURE__ */ jsxs("div", {
50
+ className: Drawer_module_default.header,
51
+ children: [/* @__PURE__ */ jsx("h2", {
52
+ id: titleId,
53
+ className: Drawer_module_default.title,
54
+ children: title
55
+ }), /* @__PURE__ */ jsx("button", {
56
+ type: "button",
57
+ className: Drawer_module_default.close,
58
+ "aria-label": "Close",
59
+ onClick: onClose,
60
+ children: /* @__PURE__ */ jsx(CloseIcon, { size: 16 })
61
+ })]
62
+ }),
63
+ /* @__PURE__ */ jsx("div", {
64
+ className: Drawer_module_default.body,
65
+ children
66
+ }),
67
+ footer ? /* @__PURE__ */ jsx("div", {
68
+ className: Drawer_module_default.footer,
69
+ children: footer
70
+ }) : null
71
+ ]
72
+ })
73
+ }), container);
74
+ });
75
+ //#endregion
76
+ export { Drawer };
77
+
78
+ //# sourceMappingURL=Drawer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Drawer.js","names":["styles"],"sources":["../../../../src/components/feedback/Drawer/Drawer.tsx"],"sourcesContent":["import { CloseIcon } from \"@malilion/block-ui-icons\";\nimport { forwardRef, useId, useRef, type KeyboardEvent, type MouseEvent } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { useFocusTrap } from \"../../../hooks/useFocusTrap\";\nimport { useScrollLock } from \"../../../hooks/useScrollLock\";\nimport { usePortalContainer } from \"../../../provider/context\";\nimport { cx } from \"../../../utils/cx\";\nimport { mergeRefs } from \"../../../utils/refs\";\nimport styles from \"./Drawer.module.css\";\nimport type { DrawerProps } from \"./Drawer.types\";\n\n/**\n * Panel that slides in from an edge (inventory, settings, mobile menu). Modal\n * like `BlockModal`: focus trap, Escape, overlay click and focus restoration.\n */\nexport const Drawer = forwardRef<HTMLDivElement, DrawerProps>(function Drawer(\n {\n open,\n onClose,\n title,\n children,\n footer,\n side = \"right\",\n size = \"md\",\n closeOnOverlayClick = true,\n closeOnEscape = true,\n initialFocusRef,\n className,\n ...rest\n },\n ref,\n) {\n const container = usePortalContainer();\n const panelRef = useRef<HTMLDivElement>(null);\n const titleId = useId();\n\n useFocusTrap(panelRef, open && container !== null, { initialFocus: initialFocusRef });\n useScrollLock(open);\n\n if (!open || !container) return null;\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"Escape\" && closeOnEscape) {\n event.stopPropagation();\n onClose();\n }\n };\n\n const handleOverlayClick = (event: MouseEvent<HTMLDivElement>) => {\n if (closeOnOverlayClick && event.target === event.currentTarget) onClose();\n };\n\n return createPortal(\n <div\n role=\"presentation\"\n className={styles.overlay}\n data-side={side}\n onMouseDown={handleOverlayClick}\n onKeyDown={handleKeyDown}\n >\n <div\n ref={mergeRefs(panelRef, ref)}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n tabIndex={-1}\n data-side={side}\n data-size={size}\n className={cx(styles.drawer, className)}\n {...rest}\n >\n <div className={styles.header}>\n <h2 id={titleId} className={styles.title}>\n {title}\n </h2>\n <button type=\"button\" className={styles.close} aria-label=\"Close\" onClick={onClose}>\n <CloseIcon size={16} />\n </button>\n </div>\n <div className={styles.body}>{children}</div>\n {footer ? <div className={styles.footer}>{footer}</div> : null}\n </div>\n </div>,\n container,\n );\n});\n"],"mappings":";;;;;;;;;;;;;;;AAeA,IAAa,SAAS,WAAwC,SAAS,OACrE,EACE,MACA,SACA,OACA,UACA,QACA,OAAO,SACP,OAAO,MACP,sBAAsB,MACtB,gBAAgB,MAChB,iBACA,WACA,GAAG,QAEL,KACA;CACA,MAAM,YAAY,mBAAmB;CACrC,MAAM,WAAW,OAAuB,IAAI;CAC5C,MAAM,UAAU,MAAM;CAEtB,aAAa,UAAU,QAAQ,cAAc,MAAM,EAAE,cAAc,gBAAgB,CAAC;CACpF,cAAc,IAAI;CAElB,IAAI,CAAC,QAAQ,CAAC,WAAW,OAAO;CAEhC,MAAM,iBAAiB,UAAyC;EAC9D,IAAI,MAAM,QAAQ,YAAY,eAAe;GAC3C,MAAM,gBAAgB;GACtB,QAAQ;EACV;CACF;CAEA,MAAM,sBAAsB,UAAsC;EAChE,IAAI,uBAAuB,MAAM,WAAW,MAAM,eAAe,QAAQ;CAC3E;CAEA,OAAO,aACL,oBAAC,OAAD;EACE,MAAK;EACL,WAAWA,sBAAO;EAClB,aAAW;EACX,aAAa;EACb,WAAW;EAEX,UAAA,qBAAC,OAAD;GACE,KAAK,UAAU,UAAU,GAAG;GAC5B,MAAK;GACL,cAAW;GACX,mBAAiB;GACjB,UAAU;GACV,aAAW;GACX,aAAW;GACX,WAAW,GAAGA,sBAAO,QAAQ,SAAS;GACtC,GAAI;GATN,UAAA;IAWE,qBAAC,OAAD;KAAK,WAAWA,sBAAO;KAAvB,UAAA,CACE,oBAAC,MAAD;MAAI,IAAI;MAAS,WAAWA,sBAAO;MAChC,UAAA;KACC,CAAA,GACJ,oBAAC,UAAD;MAAQ,MAAK;MAAS,WAAWA,sBAAO;MAAO,cAAW;MAAQ,SAAS;MACzE,UAAA,oBAAC,WAAD,EAAW,MAAM,GAAK,CAAA;KAChB,CAAA,CACL;;IACL,oBAAC,OAAD;KAAK,WAAWA,sBAAO;KAAO;IAAc,CAAA;IAC3C,SAAS,oBAAC,OAAD;KAAK,WAAWA,sBAAO;KAAS,UAAA;IAAY,CAAA,IAAI;GACvD;;CACF,CAAA,GACL,SACF;AACF,CAAC"}
@@ -0,0 +1,25 @@
1
+ //#region src/components/feedback/Drawer/Drawer.module.css
2
+ var overlay = "block-overlay-MaF41";
3
+ var drawer = "block-drawer-aWDC6";
4
+ var header = "block-header-FheCx";
5
+ var title = "block-title-4QE9I";
6
+ var close = "block-close-fdVrq";
7
+ var body = "block-body-aFN-w";
8
+ var footer = "block-footer-m9z0P";
9
+ var Drawer_module_default = {
10
+ overlay,
11
+ "block-drawer-fade": "block-block-drawer-fade-4rcmM",
12
+ drawer,
13
+ "block-drawer-in-right": "block-block-drawer-in-right-Krar9",
14
+ "block-drawer-in-left": "block-block-drawer-in-left-EnlSn",
15
+ "block-drawer-in-bottom": "block-block-drawer-in-bottom-yyZ8z",
16
+ header,
17
+ title,
18
+ close,
19
+ body,
20
+ footer
21
+ };
22
+ //#endregion
23
+ export { body, close, Drawer_module_default as default, drawer, footer, header, overlay, title };
24
+
25
+ //# sourceMappingURL=Drawer.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Drawer.module.js","names":[],"sources":["../../../../src/components/feedback/Drawer/Drawer.module.css"],"sourcesContent":[".overlay {\n position: fixed;\n inset: 0;\n z-index: var(--block-z-modal);\n display: flex;\n justify-content: flex-end;\n background-color: var(--block-overlay);\n animation: block-drawer-fade var(--block-duration-fast) steps(3, end);\n}\n\n.overlay[data-side=\"left\"] {\n justify-content: flex-start;\n}\n\n.overlay[data-side=\"bottom\"] {\n flex-direction: column;\n justify-content: flex-end;\n}\n\n.drawer {\n --drawer-size: 360px;\n display: flex;\n flex-direction: column;\n width: min(var(--drawer-size), 100%);\n height: 100%;\n color: var(--block-text);\n background-color: var(--block-surface);\n background-image:\n linear-gradient(\n color-mix(in srgb, var(--block-surface) 88%, transparent),\n color-mix(in srgb, var(--block-surface) 88%, transparent)\n ),\n var(--block-texture);\n background-size:\n auto,\n 64px 64px;\n border-left: var(--block-border-width) solid var(--block-border);\n box-shadow: var(--block-shadow-bevel);\n outline: none;\n animation: block-drawer-in-right var(--block-duration-normal) steps(4, end);\n}\n\n.drawer[data-size=\"sm\"] {\n --drawer-size: 280px;\n}\n\n.drawer[data-size=\"lg\"] {\n --drawer-size: 520px;\n}\n\n.drawer[data-side=\"left\"] {\n border-left: 0;\n border-right: var(--block-border-width) solid var(--block-border);\n animation-name: block-drawer-in-left;\n}\n\n.drawer[data-side=\"bottom\"] {\n --drawer-size: 50dvh;\n width: 100%;\n height: min(var(--drawer-size), 100%);\n border-left: 0;\n border-top: var(--block-border-width) solid var(--block-border);\n animation-name: block-drawer-in-bottom;\n}\n\n.drawer[data-side=\"bottom\"][data-size=\"sm\"] {\n --drawer-size: 33dvh;\n}\n\n.drawer[data-side=\"bottom\"][data-size=\"lg\"] {\n --drawer-size: 80dvh;\n}\n\n.header {\n display: flex;\n align-items: center;\n gap: var(--block-space-2);\n margin: 3px 3px 0;\n padding: var(--block-space-2) var(--block-space-3);\n background-color: var(--block-surface-header);\n border-bottom: var(--block-border-width-thin) solid var(--block-border);\n}\n\n.title {\n flex: 1;\n margin: 0;\n font-family: var(--block-font-display);\n font-size: var(--block-font-size-lg);\n font-weight: var(--block-font-weight-bold);\n letter-spacing: var(--block-letter-spacing-wide);\n text-transform: uppercase;\n text-shadow: var(--block-shadow-text);\n}\n\n.close {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n color: var(--block-text);\n background-color: var(--block-slot);\n border: var(--block-border-width-thin) solid var(--block-border);\n box-shadow: var(--block-shadow-inset);\n cursor: pointer;\n}\n\n.close:focus-visible {\n outline: 3px solid var(--block-focus);\n outline-offset: 2px;\n}\n\n.body {\n flex: 1;\n min-height: 0;\n padding: var(--block-space-4);\n overflow-y: auto;\n}\n\n.footer {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n gap: var(--block-space-2);\n padding: var(--block-space-3) var(--block-space-4);\n border-top: var(--block-border-width-thin) solid var(--block-border);\n}\n\n@keyframes block-drawer-fade {\n from {\n opacity: 0;\n }\n}\n\n@keyframes block-drawer-in-right {\n from {\n transform: translateX(100%);\n }\n}\n\n@keyframes block-drawer-in-left {\n from {\n transform: translateX(-100%);\n }\n}\n\n@keyframes block-drawer-in-bottom {\n from {\n transform: translateY(100%);\n }\n}\n"],"mappings":""}
@@ -0,0 +1,21 @@
1
+ import type { HTMLAttributes, ReactNode, RefObject } from "react";
2
+ export interface DrawerProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
3
+ open: boolean;
4
+ /** Called on Escape, overlay click or the close button. */
5
+ onClose: () => void;
6
+ title: ReactNode;
7
+ children?: ReactNode;
8
+ /** Action row pinned to the bottom. */
9
+ footer?: ReactNode;
10
+ /** Edge the drawer slides from. @default "right" */
11
+ side?: "left" | "right" | "bottom";
12
+ /** Width (or height for `bottom`). @default "md" */
13
+ size?: "sm" | "md" | "lg";
14
+ /** @default true */
15
+ closeOnOverlayClick?: boolean;
16
+ /** @default true */
17
+ closeOnEscape?: boolean;
18
+ /** Element focused when the drawer opens. Defaults to the first focusable element. */
19
+ initialFocusRef?: RefObject<HTMLElement | null>;
20
+ }
21
+ //# sourceMappingURL=Drawer.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Drawer.types.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Drawer/Drawer.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElE,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAChF,IAAI,EAAE,OAAO,CAAC;IACd,2DAA2D;IAC3D,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,uCAAuC;IACvC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACnC,oDAAoD;IACpD,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,oBAAoB;IACpB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oBAAoB;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,sFAAsF;IACtF,eAAe,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CACjD"}
@@ -0,0 +1,3 @@
1
+ export { Drawer } from "./Drawer";
2
+ export type { DrawerProps } from "./Drawer.types";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Drawer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { EmptyStateProps } from "./EmptyState.types";
2
+ /** Placeholder for an empty list or search: icon, title, description and an action. */
3
+ export declare const EmptyState: import("react").ForwardRefExoticComponent<EmptyStateProps & import("react").RefAttributes<HTMLDivElement>>;
4
+ //# sourceMappingURL=EmptyState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/EmptyState/EmptyState.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,uFAAuF;AACvF,eAAO,MAAM,UAAU,4GAcrB,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { cx } from "../../../utils/cx.js";
2
+ import EmptyState_module_default from "./EmptyState.module.js";
3
+ import { createElement, forwardRef } from "react";
4
+ import { ChestIcon } from "@malilion/block-ui-icons";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ //#region src/components/feedback/EmptyState/EmptyState.tsx
7
+ /** Placeholder for an empty list or search: icon, title, description and an action. */
8
+ var EmptyState = forwardRef(function EmptyState({ title, description, icon, action, headingLevel = 3, size = "md", className, ...rest }, ref) {
9
+ return /* @__PURE__ */ jsxs("div", {
10
+ ref,
11
+ "data-size": size,
12
+ className: cx(EmptyState_module_default.empty, className),
13
+ ...rest,
14
+ children: [
15
+ /* @__PURE__ */ jsx("span", {
16
+ className: EmptyState_module_default.icon,
17
+ "aria-hidden": "true",
18
+ children: icon ?? /* @__PURE__ */ jsx(ChestIcon, { size: size === "sm" ? 32 : 48 })
19
+ }),
20
+ createElement(`h${headingLevel}`, { className: EmptyState_module_default.title }, title),
21
+ description ? /* @__PURE__ */ jsx("p", {
22
+ className: EmptyState_module_default.description,
23
+ children: description
24
+ }) : null,
25
+ action ? /* @__PURE__ */ jsx("div", {
26
+ className: EmptyState_module_default.action,
27
+ children: action
28
+ }) : null
29
+ ]
30
+ });
31
+ });
32
+ //#endregion
33
+ export { EmptyState };
34
+
35
+ //# sourceMappingURL=EmptyState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmptyState.js","names":["styles"],"sources":["../../../../src/components/feedback/EmptyState/EmptyState.tsx"],"sourcesContent":["import { ChestIcon } from \"@malilion/block-ui-icons\";\nimport { createElement, forwardRef } from \"react\";\nimport { cx } from \"../../../utils/cx\";\nimport styles from \"./EmptyState.module.css\";\nimport type { EmptyStateProps } from \"./EmptyState.types\";\n\n/** Placeholder for an empty list or search: icon, title, description and an action. */\nexport const EmptyState = forwardRef<HTMLDivElement, EmptyStateProps>(function EmptyState(\n { title, description, icon, action, headingLevel = 3, size = \"md\", className, ...rest },\n ref,\n) {\n return (\n <div ref={ref} data-size={size} className={cx(styles.empty, className)} {...rest}>\n <span className={styles.icon} aria-hidden=\"true\">\n {icon ?? <ChestIcon size={size === \"sm\" ? 32 : 48} />}\n </span>\n {createElement(`h${headingLevel}`, { className: styles.title }, title)}\n {description ? <p className={styles.description}>{description}</p> : null}\n {action ? <div className={styles.action}>{action}</div> : null}\n </div>\n );\n});\n"],"mappings":";;;;;;;AAOA,IAAa,aAAa,WAA4C,SAAS,WAC7E,EAAE,OAAO,aAAa,MAAM,QAAQ,eAAe,GAAG,OAAO,MAAM,WAAW,GAAG,QACjF,KACA;CACA,OACE,qBAAC,OAAD;EAAU;EAAK,aAAW;EAAM,WAAW,GAAGA,0BAAO,OAAO,SAAS;EAAG,GAAI;EAA5E,UAAA;GACE,oBAAC,QAAD;IAAM,WAAWA,0BAAO;IAAM,eAAY;IACvC,UAAA,QAAQ,oBAAC,WAAD,EAAW,MAAM,SAAS,OAAO,KAAK,GAAK,CAAA;GAChD,CAAA;GACL,cAAc,IAAI,gBAAgB,EAAE,WAAWA,0BAAO,MAAM,GAAG,KAAK;GACpE,cAAc,oBAAC,KAAD;IAAG,WAAWA,0BAAO;IAAc,UAAA;GAAe,CAAA,IAAI;GACpE,SAAS,oBAAC,OAAD;IAAK,WAAWA,0BAAO;IAAS,UAAA;GAAY,CAAA,IAAI;EACvD;;AAET,CAAC"}
@@ -0,0 +1,17 @@
1
+ //#region src/components/feedback/EmptyState/EmptyState.module.css
2
+ var empty = "block-empty-CypAE";
3
+ var icon = "block-icon-RT29d";
4
+ var title = "block-title-gsp4I";
5
+ var description = "block-description-es-JM";
6
+ var action = "block-action-TqLZE";
7
+ var EmptyState_module_default = {
8
+ empty,
9
+ icon,
10
+ title,
11
+ description,
12
+ action
13
+ };
14
+ //#endregion
15
+ export { action, EmptyState_module_default as default, description, empty, icon, title };
16
+
17
+ //# sourceMappingURL=EmptyState.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmptyState.module.js","names":[],"sources":["../../../../src/components/feedback/EmptyState/EmptyState.module.css"],"sourcesContent":[".empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--block-space-2);\n width: 100%;\n padding: var(--block-space-8) var(--block-space-4);\n text-align: center;\n color: var(--block-text);\n background-color: var(--block-slot);\n border: var(--block-border-width-thin) dashed var(--block-border);\n}\n\n.empty[data-size=\"sm\"] {\n padding: var(--block-space-4) var(--block-space-3);\n}\n\n.icon {\n display: inline-flex;\n opacity: 0.6;\n filter: grayscale(0.5);\n}\n\n.title {\n margin: 0;\n font-family: var(--block-font-display);\n font-size: var(--block-font-size-md);\n font-weight: var(--block-font-weight-bold);\n letter-spacing: var(--block-letter-spacing-wide);\n text-transform: uppercase;\n text-shadow: var(--block-shadow-text);\n}\n\n.empty[data-size=\"sm\"] .title {\n font-size: var(--block-font-size-sm);\n}\n\n.description {\n max-width: 42ch;\n margin: 0;\n font-size: var(--block-font-size-sm);\n color: var(--block-text-muted);\n}\n\n.action {\n margin-top: var(--block-space-2);\n}\n"],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ export interface EmptyStateProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
3
+ title: ReactNode;
4
+ description?: ReactNode;
5
+ /** Pixel icon above the title. Defaults to an empty chest. */
6
+ icon?: ReactNode;
7
+ /** Call to action, usually a `BlockButton`. */
8
+ action?: ReactNode;
9
+ /** Heading level of the title. @default 3 */
10
+ headingLevel?: 2 | 3 | 4 | 5 | 6;
11
+ /** @default "md" */
12
+ size?: "sm" | "md";
13
+ }
14
+ //# sourceMappingURL=EmptyState.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmptyState.types.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/EmptyState/EmptyState.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IACpF,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjC,oBAAoB;IACpB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB"}
@@ -0,0 +1,3 @@
1
+ export { EmptyState } from "./EmptyState";
2
+ export type { EmptyStateProps } from "./EmptyState.types";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/EmptyState/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BlockModal.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Modal/BlockModal.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAI1D;;;GAGG;AACH,eAAO,MAAM,UAAU,4GAiGrB,CAAC"}
1
+ {"version":3,"file":"BlockModal.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Modal/BlockModal.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,UAAU,4GAwFrB,CAAC"}
@@ -2,13 +2,13 @@ import { cx } from "../../../utils/cx.js";
2
2
  import { usePortalContainer } from "../../../provider/context.js";
3
3
  import { mergeRefs } from "../../../utils/refs.js";
4
4
  import { useFocusTrap } from "../../../hooks/useFocusTrap.js";
5
+ import { useScrollLock } from "../../../hooks/useScrollLock.js";
5
6
  import BlockModal_module_default from "./BlockModal.module.js";
6
- import { forwardRef, useEffect, useId, useRef } from "react";
7
+ import { forwardRef, useId, useRef } from "react";
7
8
  import { createPortal } from "react-dom";
8
9
  import { CloseIcon } from "@malilion/block-ui-icons";
9
10
  import { jsx, jsxs } from "react/jsx-runtime";
10
11
  //#region src/components/feedback/Modal/BlockModal.tsx
11
- var openModals = 0;
12
12
  /**
13
13
  * Accessible modal dialog: focus trap, `Escape` to close, overlay, focus
14
14
  * restoration and `aria-modal` dialog semantics (PRD §45).
@@ -19,16 +19,7 @@ var BlockModal = forwardRef(function BlockModal({ open, onClose, title, descript
19
19
  const titleId = useId();
20
20
  const descriptionId = useId();
21
21
  useFocusTrap(dialogRef, open && container !== null, { initialFocus: initialFocusRef });
22
- useEffect(() => {
23
- if (!open) return void 0;
24
- openModals += 1;
25
- const previous = document.body.style.overflow;
26
- document.body.style.overflow = "hidden";
27
- return () => {
28
- openModals -= 1;
29
- if (openModals === 0) document.body.style.overflow = previous;
30
- };
31
- }, [open]);
22
+ useScrollLock(open);
32
23
  if (!open || !container) return null;
33
24
  const handleKeyDown = (event) => {
34
25
  if (event.key === "Escape" && closeOnEscape) {
@@ -1 +1 @@
1
- {"version":3,"file":"BlockModal.js","names":["styles"],"sources":["../../../../src/components/feedback/Modal/BlockModal.tsx"],"sourcesContent":["import { CloseIcon } from \"@malilion/block-ui-icons\";\nimport { forwardRef, useEffect, useId, useRef, type KeyboardEvent, type MouseEvent } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { useFocusTrap } from \"../../../hooks/useFocusTrap\";\nimport { usePortalContainer } from \"../../../provider/context\";\nimport { cx } from \"../../../utils/cx\";\nimport { mergeRefs } from \"../../../utils/refs\";\nimport styles from \"./BlockModal.module.css\";\nimport type { BlockModalProps } from \"./BlockModal.types\";\n\nlet openModals = 0;\n\n/**\n * Accessible modal dialog: focus trap, `Escape` to close, overlay, focus\n * restoration and `aria-modal` dialog semantics (PRD §45).\n */\nexport const BlockModal = forwardRef<HTMLDivElement, BlockModalProps>(function BlockModal(\n {\n open,\n onClose,\n title,\n description,\n children,\n footer,\n size = \"md\",\n closeOnOverlayClick = true,\n closeOnEscape = true,\n hideCloseButton = false,\n initialFocusRef,\n role = \"dialog\",\n icon,\n className,\n ...rest\n },\n ref,\n) {\n const container = usePortalContainer();\n const dialogRef = useRef<HTMLDivElement>(null);\n const titleId = useId();\n const descriptionId = useId();\n\n useFocusTrap(dialogRef, open && container !== null, { initialFocus: initialFocusRef });\n\n useEffect(() => {\n if (!open) return undefined;\n openModals += 1;\n const previous = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n return () => {\n openModals -= 1;\n if (openModals === 0) document.body.style.overflow = previous;\n };\n }, [open]);\n\n if (!open || !container) return null;\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"Escape\" && closeOnEscape) {\n event.stopPropagation();\n onClose();\n }\n };\n\n const handleOverlayClick = (event: MouseEvent<HTMLDivElement>) => {\n if (closeOnOverlayClick && event.target === event.currentTarget) onClose();\n };\n\n return createPortal(\n <div\n role=\"presentation\"\n className={styles.overlay}\n onMouseDown={handleOverlayClick}\n onKeyDown={handleKeyDown}\n >\n <div\n ref={mergeRefs(dialogRef, ref)}\n role={role}\n aria-modal=\"true\"\n aria-labelledby={titleId}\n aria-describedby={description ? descriptionId : undefined}\n tabIndex={-1}\n data-size={size}\n className={cx(styles.dialog, className)}\n {...rest}\n >\n <div className={styles.header}>\n <h2 id={titleId} className={styles.title}>\n {title}\n </h2>\n {hideCloseButton ? null : (\n <button type=\"button\" className={styles.close} aria-label=\"Close\" onClick={onClose}>\n <CloseIcon size={16} />\n </button>\n )}\n </div>\n <div className={styles.body}>\n {icon ? (\n <div className={styles.icon} aria-hidden=\"true\">\n {icon}\n </div>\n ) : null}\n {description ? (\n <div id={descriptionId} className={styles.description}>\n {description}\n </div>\n ) : null}\n {children}\n </div>\n {footer ? <div className={styles.footer}>{footer}</div> : null}\n </div>\n </div>,\n container,\n );\n});\n"],"mappings":";;;;;;;;;;AAUA,IAAI,aAAa;;;;;AAMjB,IAAa,aAAa,WAA4C,SAAS,WAC7E,EACE,MACA,SACA,OACA,aACA,UACA,QACA,OAAO,MACP,sBAAsB,MACtB,gBAAgB,MAChB,kBAAkB,OAClB,iBACA,OAAO,UACP,MACA,WACA,GAAG,QAEL,KACA;CACA,MAAM,YAAY,mBAAmB;CACrC,MAAM,YAAY,OAAuB,IAAI;CAC7C,MAAM,UAAU,MAAM;CACtB,MAAM,gBAAgB,MAAM;CAE5B,aAAa,WAAW,QAAQ,cAAc,MAAM,EAAE,cAAc,gBAAgB,CAAC;CAErF,gBAAgB;EACd,IAAI,CAAC,MAAM,OAAO,KAAA;EAClB,cAAc;EACd,MAAM,WAAW,SAAS,KAAK,MAAM;EACrC,SAAS,KAAK,MAAM,WAAW;EAC/B,aAAa;GACX,cAAc;GACd,IAAI,eAAe,GAAG,SAAS,KAAK,MAAM,WAAW;EACvD;CACF,GAAG,CAAC,IAAI,CAAC;CAET,IAAI,CAAC,QAAQ,CAAC,WAAW,OAAO;CAEhC,MAAM,iBAAiB,UAAyC;EAC9D,IAAI,MAAM,QAAQ,YAAY,eAAe;GAC3C,MAAM,gBAAgB;GACtB,QAAQ;EACV;CACF;CAEA,MAAM,sBAAsB,UAAsC;EAChE,IAAI,uBAAuB,MAAM,WAAW,MAAM,eAAe,QAAQ;CAC3E;CAEA,OAAO,aACL,oBAAC,OAAD;EACE,MAAK;EACL,WAAWA,0BAAO;EAClB,aAAa;EACb,WAAW;EAEX,UAAA,qBAAC,OAAD;GACE,KAAK,UAAU,WAAW,GAAG;GACvB;GACN,cAAW;GACX,mBAAiB;GACjB,oBAAkB,cAAc,gBAAgB,KAAA;GAChD,UAAU;GACV,aAAW;GACX,WAAW,GAAGA,0BAAO,QAAQ,SAAS;GACtC,GAAI;GATN,UAAA;IAWE,qBAAC,OAAD;KAAK,WAAWA,0BAAO;KAAvB,UAAA,CACE,oBAAC,MAAD;MAAI,IAAI;MAAS,WAAWA,0BAAO;MAChC,UAAA;KACC,CAAA,GACH,kBAAkB,OACjB,oBAAC,UAAD;MAAQ,MAAK;MAAS,WAAWA,0BAAO;MAAO,cAAW;MAAQ,SAAS;MACzE,UAAA,oBAAC,WAAD,EAAW,MAAM,GAAK,CAAA;KAChB,CAAA,CAEP;;IACL,qBAAC,OAAD;KAAK,WAAWA,0BAAO;KAAvB,UAAA;MACG,OACC,oBAAC,OAAD;OAAK,WAAWA,0BAAO;OAAM,eAAY;OACtC,UAAA;MACE,CAAA,IACH;MACH,cACC,oBAAC,OAAD;OAAK,IAAI;OAAe,WAAWA,0BAAO;OACvC,UAAA;MACE,CAAA,IACH;MACH;KACE;;IACJ,SAAS,oBAAC,OAAD;KAAK,WAAWA,0BAAO;KAAS,UAAA;IAAY,CAAA,IAAI;GACvD;;CACF,CAAA,GACL,SACF;AACF,CAAC"}
1
+ {"version":3,"file":"BlockModal.js","names":["styles"],"sources":["../../../../src/components/feedback/Modal/BlockModal.tsx"],"sourcesContent":["import { CloseIcon } from \"@malilion/block-ui-icons\";\nimport { forwardRef, useId, useRef, type KeyboardEvent, type MouseEvent } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { useFocusTrap } from \"../../../hooks/useFocusTrap\";\nimport { useScrollLock } from \"../../../hooks/useScrollLock\";\nimport { usePortalContainer } from \"../../../provider/context\";\nimport { cx } from \"../../../utils/cx\";\nimport { mergeRefs } from \"../../../utils/refs\";\nimport styles from \"./BlockModal.module.css\";\nimport type { BlockModalProps } from \"./BlockModal.types\";\n\n/**\n * Accessible modal dialog: focus trap, `Escape` to close, overlay, focus\n * restoration and `aria-modal` dialog semantics (PRD §45).\n */\nexport const BlockModal = forwardRef<HTMLDivElement, BlockModalProps>(function BlockModal(\n {\n open,\n onClose,\n title,\n description,\n children,\n footer,\n size = \"md\",\n closeOnOverlayClick = true,\n closeOnEscape = true,\n hideCloseButton = false,\n initialFocusRef,\n role = \"dialog\",\n icon,\n className,\n ...rest\n },\n ref,\n) {\n const container = usePortalContainer();\n const dialogRef = useRef<HTMLDivElement>(null);\n const titleId = useId();\n const descriptionId = useId();\n\n useFocusTrap(dialogRef, open && container !== null, { initialFocus: initialFocusRef });\n\n useScrollLock(open);\n\n if (!open || !container) return null;\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"Escape\" && closeOnEscape) {\n event.stopPropagation();\n onClose();\n }\n };\n\n const handleOverlayClick = (event: MouseEvent<HTMLDivElement>) => {\n if (closeOnOverlayClick && event.target === event.currentTarget) onClose();\n };\n\n return createPortal(\n <div\n role=\"presentation\"\n className={styles.overlay}\n onMouseDown={handleOverlayClick}\n onKeyDown={handleKeyDown}\n >\n <div\n ref={mergeRefs(dialogRef, ref)}\n role={role}\n aria-modal=\"true\"\n aria-labelledby={titleId}\n aria-describedby={description ? descriptionId : undefined}\n tabIndex={-1}\n data-size={size}\n className={cx(styles.dialog, className)}\n {...rest}\n >\n <div className={styles.header}>\n <h2 id={titleId} className={styles.title}>\n {title}\n </h2>\n {hideCloseButton ? null : (\n <button type=\"button\" className={styles.close} aria-label=\"Close\" onClick={onClose}>\n <CloseIcon size={16} />\n </button>\n )}\n </div>\n <div className={styles.body}>\n {icon ? (\n <div className={styles.icon} aria-hidden=\"true\">\n {icon}\n </div>\n ) : null}\n {description ? (\n <div id={descriptionId} className={styles.description}>\n {description}\n </div>\n ) : null}\n {children}\n </div>\n {footer ? <div className={styles.footer}>{footer}</div> : null}\n </div>\n </div>,\n container,\n );\n});\n"],"mappings":";;;;;;;;;;;;;;;AAeA,IAAa,aAAa,WAA4C,SAAS,WAC7E,EACE,MACA,SACA,OACA,aACA,UACA,QACA,OAAO,MACP,sBAAsB,MACtB,gBAAgB,MAChB,kBAAkB,OAClB,iBACA,OAAO,UACP,MACA,WACA,GAAG,QAEL,KACA;CACA,MAAM,YAAY,mBAAmB;CACrC,MAAM,YAAY,OAAuB,IAAI;CAC7C,MAAM,UAAU,MAAM;CACtB,MAAM,gBAAgB,MAAM;CAE5B,aAAa,WAAW,QAAQ,cAAc,MAAM,EAAE,cAAc,gBAAgB,CAAC;CAErF,cAAc,IAAI;CAElB,IAAI,CAAC,QAAQ,CAAC,WAAW,OAAO;CAEhC,MAAM,iBAAiB,UAAyC;EAC9D,IAAI,MAAM,QAAQ,YAAY,eAAe;GAC3C,MAAM,gBAAgB;GACtB,QAAQ;EACV;CACF;CAEA,MAAM,sBAAsB,UAAsC;EAChE,IAAI,uBAAuB,MAAM,WAAW,MAAM,eAAe,QAAQ;CAC3E;CAEA,OAAO,aACL,oBAAC,OAAD;EACE,MAAK;EACL,WAAWA,0BAAO;EAClB,aAAa;EACb,WAAW;EAEX,UAAA,qBAAC,OAAD;GACE,KAAK,UAAU,WAAW,GAAG;GACvB;GACN,cAAW;GACX,mBAAiB;GACjB,oBAAkB,cAAc,gBAAgB,KAAA;GAChD,UAAU;GACV,aAAW;GACX,WAAW,GAAGA,0BAAO,QAAQ,SAAS;GACtC,GAAI;GATN,UAAA;IAWE,qBAAC,OAAD;KAAK,WAAWA,0BAAO;KAAvB,UAAA,CACE,oBAAC,MAAD;MAAI,IAAI;MAAS,WAAWA,0BAAO;MAChC,UAAA;KACC,CAAA,GACH,kBAAkB,OACjB,oBAAC,UAAD;MAAQ,MAAK;MAAS,WAAWA,0BAAO;MAAO,cAAW;MAAQ,SAAS;MACzE,UAAA,oBAAC,WAAD,EAAW,MAAM,GAAK,CAAA;KAChB,CAAA,CAEP;;IACL,qBAAC,OAAD;KAAK,WAAWA,0BAAO;KAAvB,UAAA;MACG,OACC,oBAAC,OAAD;OAAK,WAAWA,0BAAO;OAAM,eAAY;OACtC,UAAA;MACE,CAAA,IACH;MACH,cACC,oBAAC,OAAD;OAAK,IAAI;OAAe,WAAWA,0BAAO;OACvC,UAAA;MACE,CAAA,IACH;MACH;KACE;;IACJ,SAAS,oBAAC,OAAD;KAAK,WAAWA,0BAAO;KAAS,UAAA;IAAY,CAAA,IAAI;GACvD;;CACF,CAAA,GACL,SACF;AACF,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { SkeletonProps } from "./Skeleton.types";
2
+ /**
3
+ * Pixel placeholder shown while content loads. Decorative (`aria-hidden`):
4
+ * mark the loading container with `aria-busy` and announce loading separately.
5
+ */
6
+ export declare const Skeleton: import("react").ForwardRefExoticComponent<SkeletonProps & import("react").RefAttributes<HTMLSpanElement>>;
7
+ //# sourceMappingURL=Skeleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Skeleton.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Skeleton/Skeleton.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,QAAQ,2GA6BnB,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { cx } from "../../../utils/cx.js";
2
+ import Skeleton_module_default from "./Skeleton.module.js";
3
+ import { forwardRef } from "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ //#region src/components/feedback/Skeleton/Skeleton.tsx
6
+ /**
7
+ * Pixel placeholder shown while content loads. Decorative (`aria-hidden`):
8
+ * mark the loading container with `aria-busy` and announce loading separately.
9
+ */
10
+ var Skeleton = forwardRef(function Skeleton({ variant = "text", lines = 1, width, height, className, style, ...rest }, ref) {
11
+ const sizing = {
12
+ ...width ? { "--block-skeleton-width": width } : null,
13
+ ...height ? { "--block-skeleton-height": height } : null,
14
+ ...style
15
+ };
16
+ const count = variant === "text" ? Math.max(1, Math.floor(lines)) : 1;
17
+ return /* @__PURE__ */ jsx("span", {
18
+ ref,
19
+ "aria-hidden": "true",
20
+ "data-variant": variant,
21
+ className: cx(Skeleton_module_default.skeleton, className),
22
+ style: sizing,
23
+ ...rest,
24
+ children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsx("span", {
25
+ className: Skeleton_module_default.bone,
26
+ "data-last": count > 1 && index === count - 1 || void 0
27
+ }, index))
28
+ });
29
+ });
30
+ //#endregion
31
+ export { Skeleton };
32
+
33
+ //# sourceMappingURL=Skeleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Skeleton.js","names":["styles"],"sources":["../../../../src/components/feedback/Skeleton/Skeleton.tsx"],"sourcesContent":["import { forwardRef, type CSSProperties } from \"react\";\nimport { cx } from \"../../../utils/cx\";\nimport styles from \"./Skeleton.module.css\";\nimport type { SkeletonProps } from \"./Skeleton.types\";\n\n/**\n * Pixel placeholder shown while content loads. Decorative (`aria-hidden`):\n * mark the loading container with `aria-busy` and announce loading separately.\n */\nexport const Skeleton = forwardRef<HTMLSpanElement, SkeletonProps>(function Skeleton(\n { variant = \"text\", lines = 1, width, height, className, style, ...rest },\n ref,\n) {\n const sizing = {\n ...(width ? { \"--block-skeleton-width\": width } : null),\n ...(height ? { \"--block-skeleton-height\": height } : null),\n ...style,\n } as CSSProperties;\n const count = variant === \"text\" ? Math.max(1, Math.floor(lines)) : 1;\n\n return (\n <span\n ref={ref}\n aria-hidden=\"true\"\n data-variant={variant}\n className={cx(styles.skeleton, className)}\n style={sizing}\n {...rest}\n >\n {Array.from({ length: count }, (_, index) => (\n <span\n key={index}\n className={styles.bone}\n data-last={(count > 1 && index === count - 1) || undefined}\n />\n ))}\n </span>\n );\n});\n"],"mappings":";;;;;;;;;AASA,IAAa,WAAW,WAA2C,SAAS,SAC1E,EAAE,UAAU,QAAQ,QAAQ,GAAG,OAAO,QAAQ,WAAW,OAAO,GAAG,QACnE,KACA;CACA,MAAM,SAAS;EACb,GAAI,QAAQ,EAAE,0BAA0B,MAAM,IAAI;EAClD,GAAI,SAAS,EAAE,2BAA2B,OAAO,IAAI;EACrD,GAAG;CACL;CACA,MAAM,QAAQ,YAAY,SAAS,KAAK,IAAI,GAAG,KAAK,MAAM,KAAK,CAAC,IAAI;CAEpE,OACE,oBAAC,QAAD;EACO;EACL,eAAY;EACZ,gBAAc;EACd,WAAW,GAAGA,wBAAO,UAAU,SAAS;EACxC,OAAO;EACP,GAAI;EAEH,UAAA,MAAM,KAAK,EAAE,QAAQ,MAAM,IAAI,GAAG,UACjC,oBAAC,QAAD;GAEE,WAAWA,wBAAO;GAClB,aAAY,QAAQ,KAAK,UAAU,QAAQ,KAAM,KAAA;EAClD,GAHM,KAGN,CACF;CACG,CAAA;AAEV,CAAC"}
@@ -0,0 +1,12 @@
1
+ //#region src/components/feedback/Skeleton/Skeleton.module.css
2
+ var skeleton = "block-skeleton-iGMZW";
3
+ var bone = "block-bone-cYRm-";
4
+ var Skeleton_module_default = {
5
+ skeleton,
6
+ bone,
7
+ "block-skeleton-sweep": "block-block-skeleton-sweep-8kYA1"
8
+ };
9
+ //#endregion
10
+ export { bone, Skeleton_module_default as default, skeleton };
11
+
12
+ //# sourceMappingURL=Skeleton.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Skeleton.module.js","names":[],"sources":["../../../../src/components/feedback/Skeleton/Skeleton.module.css"],"sourcesContent":[".skeleton {\n display: flex;\n flex-direction: column;\n gap: var(--block-space-2);\n width: var(--block-skeleton-width, 100%);\n max-width: 100%;\n}\n\n.bone {\n display: block;\n height: 12px;\n background-color: var(--block-slot);\n background-image: linear-gradient(\n 90deg,\n transparent 0 40%,\n color-mix(in srgb, var(--block-text) 12%, transparent) 40% 60%,\n transparent 60%\n );\n background-size: 300% 100%;\n border: var(--block-border-width-thin) solid var(--block-border);\n animation: block-skeleton-sweep 1.2s steps(8, end) infinite;\n}\n\n.bone[data-last] {\n width: 60%;\n}\n\n.skeleton[data-variant=\"block\"] .bone {\n height: var(--block-skeleton-height, 96px);\n}\n\n.skeleton[data-variant=\"slot\"] {\n width: var(--block-skeleton-width, var(--block-size-slot-md));\n}\n\n.skeleton[data-variant=\"slot\"] .bone {\n aspect-ratio: 1;\n height: auto;\n box-shadow: var(--block-shadow-inset);\n}\n\n.skeleton[data-variant=\"avatar\"] {\n width: var(--block-skeleton-width, 48px);\n}\n\n.skeleton[data-variant=\"avatar\"] .bone {\n aspect-ratio: 1;\n height: auto;\n}\n\n/* A stepped highlight sweep; reduced motion stops it (base.css). */\n@keyframes block-skeleton-sweep {\n from {\n background-position: 100% 0;\n }\n to {\n background-position: 0 0;\n }\n}\n"],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import type { HTMLAttributes } from "react";
2
+ export declare const skeletonVariants: readonly ["text", "block", "slot", "avatar"];
3
+ export type SkeletonVariant = (typeof skeletonVariants)[number];
4
+ export interface SkeletonProps extends HTMLAttributes<HTMLSpanElement> {
5
+ /** `text` lines, a `block` rectangle, an inventory `slot` or a square `avatar`. @default "text" */
6
+ variant?: SkeletonVariant;
7
+ /** Number of lines for `text` (the last one is shorter). @default 1 */
8
+ lines?: number;
9
+ /** CSS width, e.g. `"200px"` or `"60%"`. */
10
+ width?: string;
11
+ /** CSS height for `block`, e.g. `"120px"`. */
12
+ height?: string;
13
+ }
14
+ //# sourceMappingURL=Skeleton.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Skeleton.types.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Skeleton/Skeleton.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,eAAO,MAAM,gBAAgB,8CAA+C,CAAC;AAE7E,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhE,MAAM,WAAW,aAAc,SAAQ,cAAc,CAAC,eAAe,CAAC;IACpE,mGAAmG;IACnG,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,11 @@
1
+ //#region src/components/feedback/Skeleton/Skeleton.types.ts
2
+ var skeletonVariants = [
3
+ "text",
4
+ "block",
5
+ "slot",
6
+ "avatar"
7
+ ];
8
+ //#endregion
9
+ export { skeletonVariants };
10
+
11
+ //# sourceMappingURL=Skeleton.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Skeleton.types.js","names":[],"sources":["../../../../src/components/feedback/Skeleton/Skeleton.types.ts"],"sourcesContent":["import type { HTMLAttributes } from \"react\";\n\nexport const skeletonVariants = [\"text\", \"block\", \"slot\", \"avatar\"] as const;\n\nexport type SkeletonVariant = (typeof skeletonVariants)[number];\n\nexport interface SkeletonProps extends HTMLAttributes<HTMLSpanElement> {\n /** `text` lines, a `block` rectangle, an inventory `slot` or a square `avatar`. @default \"text\" */\n variant?: SkeletonVariant;\n /** Number of lines for `text` (the last one is shorter). @default 1 */\n lines?: number;\n /** CSS width, e.g. `\"200px\"` or `\"60%\"`. */\n width?: string;\n /** CSS height for `block`, e.g. `\"120px\"`. */\n height?: string;\n}\n"],"mappings":";AAEA,IAAa,mBAAmB;CAAC;CAAQ;CAAS;CAAQ;AAAQ"}
@@ -0,0 +1,4 @@
1
+ export { Skeleton } from "./Skeleton";
2
+ export { skeletonVariants } from "./Skeleton.types";
3
+ export type { SkeletonProps, SkeletonVariant } from "./Skeleton.types";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Skeleton/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
@@ -4,4 +4,7 @@ export * from "./Modal";
4
4
  export * from "./ConfirmDialog";
5
5
  export * from "./Progress";
6
6
  export * from "./Loading";
7
+ export * from "./Drawer";
8
+ export * from "./EmptyState";
9
+ export * from "./Skeleton";
7
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/feedback/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/feedback/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { NumberInputProps } from "./NumberInput.types";
2
+ /**
3
+ * Number field with − / + buttons, following the WAI-ARIA spinbutton pattern:
4
+ * ↑ / ↓ step, Page Up / Down step ×10, Home / End jump to min / max. Values are
5
+ * clamped and rounded when committed (step, Enter or blur).
6
+ */
7
+ export declare const NumberInput: import("react").ForwardRefExoticComponent<NumberInputProps & import("react").RefAttributes<HTMLInputElement>>;
8
+ //# sourceMappingURL=NumberInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumberInput.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/NumberInput/NumberInput.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG5D;;;;GAIG;AACH,eAAO,MAAM,WAAW,+GAmItB,CAAC"}
@@ -0,0 +1,122 @@
1
+ import { cx } from "../../../utils/cx.js";
2
+ import { Field } from "../Field/Field.js";
3
+ import control_module_default from "../Field/control.module.js";
4
+ import { useControllableState } from "../../../hooks/useControllableState.js";
5
+ import NumberInput_module_default from "./NumberInput.module.js";
6
+ import { normalizeNumber, parseNumber, stepPrecision } from "./NumberInput.utils.js";
7
+ import { forwardRef, useState } from "react";
8
+ import { MinusIcon, PlusIcon } from "@malilion/block-ui-icons";
9
+ import { jsx, jsxs } from "react/jsx-runtime";
10
+ //#region src/components/forms/NumberInput/NumberInput.tsx
11
+ /**
12
+ * Number field with − / + buttons, following the WAI-ARIA spinbutton pattern:
13
+ * ↑ / ↓ step, Page Up / Down step ×10, Home / End jump to min / max. Values are
14
+ * clamped and rounded when committed (step, Enter or blur).
15
+ */
16
+ var NumberInput = forwardRef(function NumberInput({ id, label, error, success, helperText, value, defaultValue = null, onValueChange, min, max, step = 1, disabled, required, className, wrapperClassName, onBlur, onKeyDown, "aria-describedby": ariaDescribedBy, ...rest }, ref) {
17
+ const [current, setCurrent] = useControllableState({
18
+ value,
19
+ defaultValue,
20
+ onChange: onValueChange
21
+ });
22
+ const [draft, setDraft] = useState(null);
23
+ const precision = stepPrecision(step);
24
+ const format = (n) => n === null ? "" : n.toFixed(precision);
25
+ const commit = (next) => {
26
+ const normalized = next === null ? null : normalizeNumber(next, {
27
+ min,
28
+ max,
29
+ step
30
+ });
31
+ setDraft(null);
32
+ if (normalized !== current) setCurrent(normalized);
33
+ };
34
+ const base = () => {
35
+ return (draft !== null ? parseNumber(draft) : current) ?? min ?? 0;
36
+ };
37
+ const stepBy = (amount) => {
38
+ if (disabled) return;
39
+ commit(base() + amount);
40
+ };
41
+ const atMin = current !== null && min !== void 0 && current <= min;
42
+ const atMax = current !== null && max !== void 0 && current >= max;
43
+ const handleKeyDown = (event) => {
44
+ onKeyDown?.(event);
45
+ if (event.defaultPrevented) return;
46
+ let handled = true;
47
+ if (event.key === "ArrowUp") stepBy(step);
48
+ else if (event.key === "ArrowDown") stepBy(-step);
49
+ else if (event.key === "PageUp") stepBy(step * 10);
50
+ else if (event.key === "PageDown") stepBy(-step * 10);
51
+ else if (event.key === "Home" && min !== void 0) commit(min);
52
+ else if (event.key === "End" && max !== void 0) commit(max);
53
+ else if (event.key === "Enter" && draft !== null) commit(parseNumber(draft));
54
+ else handled = false;
55
+ if (handled) event.preventDefault();
56
+ };
57
+ return /* @__PURE__ */ jsx(Field, {
58
+ id,
59
+ label,
60
+ error,
61
+ success,
62
+ helperText,
63
+ disabled,
64
+ required,
65
+ className: wrapperClassName,
66
+ children: ({ inputId, describedBy, invalid }) => /* @__PURE__ */ jsxs("div", {
67
+ className: NumberInput_module_default.wrapper,
68
+ children: [
69
+ /* @__PURE__ */ jsx("button", {
70
+ type: "button",
71
+ tabIndex: -1,
72
+ "aria-label": "Decrease",
73
+ "aria-controls": inputId,
74
+ disabled: disabled || atMin,
75
+ className: NumberInput_module_default.button,
76
+ onMouseDown: (event) => event.preventDefault(),
77
+ onClick: () => stepBy(-step),
78
+ children: /* @__PURE__ */ jsx(MinusIcon, { size: 16 })
79
+ }),
80
+ /* @__PURE__ */ jsx("input", {
81
+ ref,
82
+ id: inputId,
83
+ type: "text",
84
+ role: "spinbutton",
85
+ inputMode: precision > 0 || min !== void 0 && min < 0 ? "decimal" : "numeric",
86
+ autoComplete: "off",
87
+ value: draft ?? format(current),
88
+ "aria-valuenow": current ?? void 0,
89
+ "aria-valuemin": min,
90
+ "aria-valuemax": max,
91
+ disabled,
92
+ required,
93
+ "aria-invalid": invalid || void 0,
94
+ "aria-describedby": cx(describedBy, ariaDescribedBy) || void 0,
95
+ className: cx(control_module_default.control, NumberInput_module_default.input, className),
96
+ onChange: (event) => setDraft(event.target.value),
97
+ onBlur: (event) => {
98
+ if (draft !== null) commit(parseNumber(draft));
99
+ onBlur?.(event);
100
+ },
101
+ onKeyDown: handleKeyDown,
102
+ ...rest
103
+ }),
104
+ /* @__PURE__ */ jsx("button", {
105
+ type: "button",
106
+ tabIndex: -1,
107
+ "aria-label": "Increase",
108
+ "aria-controls": inputId,
109
+ disabled: disabled || atMax,
110
+ className: NumberInput_module_default.button,
111
+ onMouseDown: (event) => event.preventDefault(),
112
+ onClick: () => stepBy(step),
113
+ children: /* @__PURE__ */ jsx(PlusIcon, { size: 16 })
114
+ })
115
+ ]
116
+ })
117
+ });
118
+ });
119
+ //#endregion
120
+ export { NumberInput };
121
+
122
+ //# sourceMappingURL=NumberInput.js.map