@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.
- package/dist/components/cards/ServerBrowser/ServerBrowser.d.ts +7 -0
- package/dist/components/cards/ServerBrowser/ServerBrowser.d.ts.map +1 -0
- package/dist/components/cards/ServerBrowser/ServerBrowser.js +106 -0
- package/dist/components/cards/ServerBrowser/ServerBrowser.js.map +1 -0
- package/dist/components/cards/ServerBrowser/ServerBrowser.types.d.ts +22 -0
- package/dist/components/cards/ServerBrowser/ServerBrowser.types.d.ts.map +1 -0
- package/dist/components/cards/ServerBrowser/ServerBrowser.utils.d.ts +8 -0
- package/dist/components/cards/ServerBrowser/ServerBrowser.utils.d.ts.map +1 -0
- package/dist/components/cards/ServerBrowser/ServerBrowser.utils.js +16 -0
- package/dist/components/cards/ServerBrowser/ServerBrowser.utils.js.map +1 -0
- package/dist/components/cards/ServerBrowser/index.d.ts +4 -0
- package/dist/components/cards/ServerBrowser/index.d.ts.map +1 -0
- package/dist/components/cards/WorldBrowser/WorldBrowser.d.ts +4 -0
- package/dist/components/cards/WorldBrowser/WorldBrowser.d.ts.map +1 -0
- package/dist/components/cards/WorldBrowser/WorldBrowser.js +101 -0
- package/dist/components/cards/WorldBrowser/WorldBrowser.js.map +1 -0
- package/dist/components/cards/WorldBrowser/WorldBrowser.types.d.ts +22 -0
- package/dist/components/cards/WorldBrowser/WorldBrowser.types.d.ts.map +1 -0
- package/dist/components/cards/WorldBrowser/WorldBrowser.utils.d.ts +10 -0
- package/dist/components/cards/WorldBrowser/WorldBrowser.utils.d.ts.map +1 -0
- package/dist/components/cards/WorldBrowser/WorldBrowser.utils.js +12 -0
- package/dist/components/cards/WorldBrowser/WorldBrowser.utils.js.map +1 -0
- package/dist/components/cards/WorldBrowser/index.d.ts +4 -0
- package/dist/components/cards/WorldBrowser/index.d.ts.map +1 -0
- package/dist/components/cards/browser.module.js +23 -0
- package/dist/components/cards/browser.module.js.map +1 -0
- package/dist/components/cards/index.d.ts +2 -0
- package/dist/components/cards/index.d.ts.map +1 -1
- package/dist/components/crafting/Anvil/Anvil.d.ts +7 -0
- package/dist/components/crafting/Anvil/Anvil.d.ts.map +1 -0
- package/dist/components/crafting/Anvil/Anvil.js +94 -0
- package/dist/components/crafting/Anvil/Anvil.js.map +1 -0
- package/dist/components/crafting/Anvil/Anvil.module.js +21 -0
- package/dist/components/crafting/Anvil/Anvil.module.js.map +1 -0
- package/dist/components/crafting/Anvil/Anvil.types.d.ts +25 -0
- package/dist/components/crafting/Anvil/Anvil.types.d.ts.map +1 -0
- package/dist/components/crafting/Anvil/Anvil.utils.d.ts +3 -0
- package/dist/components/crafting/Anvil/Anvil.utils.d.ts.map +1 -0
- package/dist/components/crafting/Anvil/Anvil.utils.js +11 -0
- package/dist/components/crafting/Anvil/Anvil.utils.js.map +1 -0
- package/dist/components/crafting/Anvil/index.d.ts +5 -0
- package/dist/components/crafting/Anvil/index.d.ts.map +1 -0
- package/dist/components/crafting/BrewingStand/BrewingStand.d.ts +7 -0
- package/dist/components/crafting/BrewingStand/BrewingStand.d.ts.map +1 -0
- package/dist/components/crafting/BrewingStand/BrewingStand.js +116 -0
- package/dist/components/crafting/BrewingStand/BrewingStand.js.map +1 -0
- package/dist/components/crafting/BrewingStand/BrewingStand.module.js +29 -0
- package/dist/components/crafting/BrewingStand/BrewingStand.module.js.map +1 -0
- package/dist/components/crafting/BrewingStand/BrewingStand.types.d.ts +22 -0
- package/dist/components/crafting/BrewingStand/BrewingStand.types.d.ts.map +1 -0
- package/dist/components/crafting/BrewingStand/BrewingStand.types.js +11 -0
- package/dist/components/crafting/BrewingStand/BrewingStand.types.js.map +1 -0
- package/dist/components/crafting/BrewingStand/BrewingStand.utils.d.ts +6 -0
- package/dist/components/crafting/BrewingStand/BrewingStand.utils.d.ts.map +1 -0
- package/dist/components/crafting/BrewingStand/BrewingStand.utils.js +13 -0
- package/dist/components/crafting/BrewingStand/BrewingStand.utils.js.map +1 -0
- package/dist/components/crafting/BrewingStand/index.d.ts +5 -0
- package/dist/components/crafting/BrewingStand/index.d.ts.map +1 -0
- package/dist/components/crafting/EnchantingTable/EnchantingTable.d.ts +7 -0
- package/dist/components/crafting/EnchantingTable/EnchantingTable.d.ts.map +1 -0
- package/dist/components/crafting/EnchantingTable/EnchantingTable.js +105 -0
- package/dist/components/crafting/EnchantingTable/EnchantingTable.js.map +1 -0
- package/dist/components/crafting/EnchantingTable/EnchantingTable.module.js +32 -0
- package/dist/components/crafting/EnchantingTable/EnchantingTable.module.js.map +1 -0
- package/dist/components/crafting/EnchantingTable/EnchantingTable.types.d.ts +29 -0
- package/dist/components/crafting/EnchantingTable/EnchantingTable.types.d.ts.map +1 -0
- package/dist/components/crafting/EnchantingTable/EnchantingTable.utils.d.ts +11 -0
- package/dist/components/crafting/EnchantingTable/EnchantingTable.utils.d.ts.map +1 -0
- package/dist/components/crafting/EnchantingTable/EnchantingTable.utils.js +14 -0
- package/dist/components/crafting/EnchantingTable/EnchantingTable.utils.js.map +1 -0
- package/dist/components/crafting/EnchantingTable/index.d.ts +3 -0
- package/dist/components/crafting/EnchantingTable/index.d.ts.map +1 -0
- package/dist/components/crafting/RecipeBook/RecipeBook.d.ts +7 -0
- package/dist/components/crafting/RecipeBook/RecipeBook.d.ts.map +1 -0
- package/dist/components/crafting/RecipeBook/RecipeBook.js +149 -0
- package/dist/components/crafting/RecipeBook/RecipeBook.js.map +1 -0
- package/dist/components/crafting/RecipeBook/RecipeBook.module.js +39 -0
- package/dist/components/crafting/RecipeBook/RecipeBook.module.js.map +1 -0
- package/dist/components/crafting/RecipeBook/RecipeBook.types.d.ts +36 -0
- package/dist/components/crafting/RecipeBook/RecipeBook.types.d.ts.map +1 -0
- package/dist/components/crafting/RecipeBook/RecipeBook.utils.d.ts +9 -0
- package/dist/components/crafting/RecipeBook/RecipeBook.utils.d.ts.map +1 -0
- package/dist/components/crafting/RecipeBook/RecipeBook.utils.js +21 -0
- package/dist/components/crafting/RecipeBook/RecipeBook.utils.js.map +1 -0
- package/dist/components/crafting/RecipeBook/index.d.ts +4 -0
- package/dist/components/crafting/RecipeBook/index.d.ts.map +1 -0
- package/dist/components/crafting/TradingUI/TradingUI.d.ts +7 -0
- package/dist/components/crafting/TradingUI/TradingUI.d.ts.map +1 -0
- package/dist/components/crafting/TradingUI/TradingUI.js +181 -0
- package/dist/components/crafting/TradingUI/TradingUI.js.map +1 -0
- package/dist/components/crafting/TradingUI/TradingUI.module.js +39 -0
- package/dist/components/crafting/TradingUI/TradingUI.module.js.map +1 -0
- package/dist/components/crafting/TradingUI/TradingUI.types.d.ts +36 -0
- package/dist/components/crafting/TradingUI/TradingUI.types.d.ts.map +1 -0
- package/dist/components/crafting/TradingUI/TradingUI.types.js +12 -0
- package/dist/components/crafting/TradingUI/TradingUI.types.js.map +1 -0
- package/dist/components/crafting/TradingUI/TradingUI.utils.d.ts +3 -0
- package/dist/components/crafting/TradingUI/TradingUI.utils.d.ts.map +1 -0
- package/dist/components/crafting/TradingUI/TradingUI.utils.js +8 -0
- package/dist/components/crafting/TradingUI/TradingUI.utils.js.map +1 -0
- package/dist/components/crafting/TradingUI/index.d.ts +4 -0
- package/dist/components/crafting/TradingUI/index.d.ts.map +1 -0
- package/dist/components/crafting/index.d.ts +5 -0
- package/dist/components/crafting/index.d.ts.map +1 -1
- package/dist/components/display/Avatar/Avatar.d.ts +7 -0
- package/dist/components/display/Avatar/Avatar.d.ts.map +1 -0
- package/dist/components/display/Avatar/Avatar.js +53 -0
- package/dist/components/display/Avatar/Avatar.js.map +1 -0
- package/dist/components/display/Avatar/Avatar.module.js +17 -0
- package/dist/components/display/Avatar/Avatar.module.js.map +1 -0
- package/dist/components/display/Avatar/Avatar.types.d.ts +18 -0
- package/dist/components/display/Avatar/Avatar.types.d.ts.map +1 -0
- package/dist/components/display/Avatar/Avatar.types.js +11 -0
- package/dist/components/display/Avatar/Avatar.types.js.map +1 -0
- package/dist/components/display/Avatar/Avatar.utils.d.ts +7 -0
- package/dist/components/display/Avatar/Avatar.utils.d.ts.map +1 -0
- package/dist/components/display/Avatar/Avatar.utils.js +28 -0
- package/dist/components/display/Avatar/Avatar.utils.js.map +1 -0
- package/dist/components/display/Avatar/index.d.ts +5 -0
- package/dist/components/display/Avatar/index.d.ts.map +1 -0
- package/dist/components/display/SkillTree/SkillTree.d.ts +8 -0
- package/dist/components/display/SkillTree/SkillTree.d.ts.map +1 -0
- package/dist/components/display/SkillTree/SkillTree.js +138 -0
- package/dist/components/display/SkillTree/SkillTree.js.map +1 -0
- package/dist/components/display/SkillTree/SkillTree.module.js +33 -0
- package/dist/components/display/SkillTree/SkillTree.module.js.map +1 -0
- package/dist/components/display/SkillTree/SkillTree.types.d.ts +29 -0
- package/dist/components/display/SkillTree/SkillTree.types.d.ts.map +1 -0
- package/dist/components/display/SkillTree/SkillTree.utils.d.ts +8 -0
- package/dist/components/display/SkillTree/SkillTree.utils.d.ts.map +1 -0
- package/dist/components/display/SkillTree/SkillTree.utils.js +16 -0
- package/dist/components/display/SkillTree/SkillTree.utils.js.map +1 -0
- package/dist/components/display/SkillTree/index.d.ts +4 -0
- package/dist/components/display/SkillTree/index.d.ts.map +1 -0
- package/dist/components/display/index.d.ts +2 -0
- package/dist/components/display/index.d.ts.map +1 -1
- package/dist/components/feedback/Drawer/Drawer.d.ts +7 -0
- package/dist/components/feedback/Drawer/Drawer.d.ts.map +1 -0
- package/dist/components/feedback/Drawer/Drawer.js +78 -0
- package/dist/components/feedback/Drawer/Drawer.js.map +1 -0
- package/dist/components/feedback/Drawer/Drawer.module.js +25 -0
- package/dist/components/feedback/Drawer/Drawer.module.js.map +1 -0
- package/dist/components/feedback/Drawer/Drawer.types.d.ts +21 -0
- package/dist/components/feedback/Drawer/Drawer.types.d.ts.map +1 -0
- package/dist/components/feedback/Drawer/index.d.ts +3 -0
- package/dist/components/feedback/Drawer/index.d.ts.map +1 -0
- package/dist/components/feedback/EmptyState/EmptyState.d.ts +4 -0
- package/dist/components/feedback/EmptyState/EmptyState.d.ts.map +1 -0
- package/dist/components/feedback/EmptyState/EmptyState.js +35 -0
- package/dist/components/feedback/EmptyState/EmptyState.js.map +1 -0
- package/dist/components/feedback/EmptyState/EmptyState.module.js +17 -0
- package/dist/components/feedback/EmptyState/EmptyState.module.js.map +1 -0
- package/dist/components/feedback/EmptyState/EmptyState.types.d.ts +14 -0
- package/dist/components/feedback/EmptyState/EmptyState.types.d.ts.map +1 -0
- package/dist/components/feedback/EmptyState/index.d.ts +3 -0
- package/dist/components/feedback/EmptyState/index.d.ts.map +1 -0
- package/dist/components/feedback/Modal/BlockModal.d.ts.map +1 -1
- package/dist/components/feedback/Modal/BlockModal.js +3 -12
- package/dist/components/feedback/Modal/BlockModal.js.map +1 -1
- package/dist/components/feedback/Skeleton/Skeleton.d.ts +7 -0
- package/dist/components/feedback/Skeleton/Skeleton.d.ts.map +1 -0
- package/dist/components/feedback/Skeleton/Skeleton.js +33 -0
- package/dist/components/feedback/Skeleton/Skeleton.js.map +1 -0
- package/dist/components/feedback/Skeleton/Skeleton.module.js +12 -0
- package/dist/components/feedback/Skeleton/Skeleton.module.js.map +1 -0
- package/dist/components/feedback/Skeleton/Skeleton.types.d.ts +14 -0
- package/dist/components/feedback/Skeleton/Skeleton.types.d.ts.map +1 -0
- package/dist/components/feedback/Skeleton/Skeleton.types.js +11 -0
- package/dist/components/feedback/Skeleton/Skeleton.types.js.map +1 -0
- package/dist/components/feedback/Skeleton/index.d.ts +4 -0
- package/dist/components/feedback/Skeleton/index.d.ts.map +1 -0
- package/dist/components/feedback/index.d.ts +3 -0
- package/dist/components/feedback/index.d.ts.map +1 -1
- package/dist/components/forms/NumberInput/NumberInput.d.ts +8 -0
- package/dist/components/forms/NumberInput/NumberInput.d.ts.map +1 -0
- package/dist/components/forms/NumberInput/NumberInput.js +122 -0
- package/dist/components/forms/NumberInput/NumberInput.js.map +1 -0
- package/dist/components/forms/NumberInput/NumberInput.module.js +13 -0
- package/dist/components/forms/NumberInput/NumberInput.module.js.map +1 -0
- package/dist/components/forms/NumberInput/NumberInput.types.d.ts +20 -0
- package/dist/components/forms/NumberInput/NumberInput.types.d.ts.map +1 -0
- package/dist/components/forms/NumberInput/NumberInput.utils.d.ts +11 -0
- package/dist/components/forms/NumberInput/NumberInput.utils.d.ts.map +1 -0
- package/dist/components/forms/NumberInput/NumberInput.utils.js +26 -0
- package/dist/components/forms/NumberInput/NumberInput.utils.js.map +1 -0
- package/dist/components/forms/NumberInput/index.d.ts +3 -0
- package/dist/components/forms/NumberInput/index.d.ts.map +1 -0
- package/dist/components/forms/index.d.ts +1 -0
- package/dist/components/forms/index.d.ts.map +1 -1
- package/dist/components/hud/BiomeIndicator/BiomeIndicator.d.ts +4 -0
- package/dist/components/hud/BiomeIndicator/BiomeIndicator.d.ts.map +1 -0
- package/dist/components/hud/BiomeIndicator/BiomeIndicator.js +39 -0
- package/dist/components/hud/BiomeIndicator/BiomeIndicator.js.map +1 -0
- package/dist/components/hud/BiomeIndicator/BiomeIndicator.module.js +11 -0
- package/dist/components/hud/BiomeIndicator/BiomeIndicator.module.js.map +1 -0
- package/dist/components/hud/BiomeIndicator/BiomeIndicator.types.d.ts +16 -0
- package/dist/components/hud/BiomeIndicator/BiomeIndicator.types.d.ts.map +1 -0
- package/dist/components/hud/BiomeIndicator/BiomeIndicator.types.js +18 -0
- package/dist/components/hud/BiomeIndicator/BiomeIndicator.types.js.map +1 -0
- package/dist/components/hud/BiomeIndicator/BiomeIndicator.utils.d.ts +8 -0
- package/dist/components/hud/BiomeIndicator/BiomeIndicator.utils.d.ts.map +1 -0
- package/dist/components/hud/BiomeIndicator/BiomeIndicator.utils.js +55 -0
- package/dist/components/hud/BiomeIndicator/BiomeIndicator.utils.js.map +1 -0
- package/dist/components/hud/BiomeIndicator/index.d.ts +4 -0
- package/dist/components/hud/BiomeIndicator/index.d.ts.map +1 -0
- package/dist/components/hud/BossBar/BossBar.d.ts +4 -0
- package/dist/components/hud/BossBar/BossBar.d.ts.map +1 -0
- package/dist/components/hud/BossBar/BossBar.js +56 -0
- package/dist/components/hud/BossBar/BossBar.js.map +1 -0
- package/dist/components/hud/BossBar/BossBar.module.js +19 -0
- package/dist/components/hud/BossBar/BossBar.module.js.map +1 -0
- package/dist/components/hud/BossBar/BossBar.types.d.ts +22 -0
- package/dist/components/hud/BossBar/BossBar.types.d.ts.map +1 -0
- package/dist/components/hud/BossBar/BossBar.types.js +21 -0
- package/dist/components/hud/BossBar/BossBar.types.js.map +1 -0
- package/dist/components/hud/BossBar/index.d.ts +4 -0
- package/dist/components/hud/BossBar/index.d.ts.map +1 -0
- package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.d.ts +4 -0
- package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.d.ts.map +1 -0
- package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.js +96 -0
- package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.js.map +1 -0
- package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.module.js +17 -0
- package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.module.js.map +1 -0
- package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.types.d.ts +19 -0
- package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.types.d.ts.map +1 -0
- package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.types.js +11 -0
- package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.types.js.map +1 -0
- package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.utils.d.ts +7 -0
- package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.utils.d.ts.map +1 -0
- package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.utils.js +24 -0
- package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.utils.js.map +1 -0
- package/dist/components/hud/CoordinatesHUD/index.d.ts +4 -0
- package/dist/components/hud/CoordinatesHUD/index.d.ts.map +1 -0
- package/dist/components/hud/DayNightIndicator/DayNightIndicator.d.ts +4 -0
- package/dist/components/hud/DayNightIndicator/DayNightIndicator.d.ts.map +1 -0
- package/dist/components/hud/DayNightIndicator/DayNightIndicator.js +70 -0
- package/dist/components/hud/DayNightIndicator/DayNightIndicator.js.map +1 -0
- package/dist/components/hud/DayNightIndicator/DayNightIndicator.module.js +19 -0
- package/dist/components/hud/DayNightIndicator/DayNightIndicator.module.js.map +1 -0
- package/dist/components/hud/DayNightIndicator/DayNightIndicator.types.d.ts +17 -0
- package/dist/components/hud/DayNightIndicator/DayNightIndicator.types.d.ts.map +1 -0
- package/dist/components/hud/DayNightIndicator/DayNightIndicator.utils.d.ts +15 -0
- package/dist/components/hud/DayNightIndicator/DayNightIndicator.utils.d.ts.map +1 -0
- package/dist/components/hud/DayNightIndicator/DayNightIndicator.utils.js +43 -0
- package/dist/components/hud/DayNightIndicator/DayNightIndicator.utils.js.map +1 -0
- package/dist/components/hud/DayNightIndicator/index.d.ts +4 -0
- package/dist/components/hud/DayNightIndicator/index.d.ts.map +1 -0
- package/dist/components/hud/MiniMap/MiniMap.d.ts +8 -0
- package/dist/components/hud/MiniMap/MiniMap.d.ts.map +1 -0
- package/dist/components/hud/MiniMap/MiniMap.js +76 -0
- package/dist/components/hud/MiniMap/MiniMap.js.map +1 -0
- package/dist/components/hud/MiniMap/MiniMap.module.js +17 -0
- package/dist/components/hud/MiniMap/MiniMap.module.js.map +1 -0
- package/dist/components/hud/MiniMap/MiniMap.types.d.ts +43 -0
- package/dist/components/hud/MiniMap/MiniMap.types.d.ts.map +1 -0
- package/dist/components/hud/MiniMap/MiniMap.types.js +26 -0
- package/dist/components/hud/MiniMap/MiniMap.types.js.map +1 -0
- package/dist/components/hud/MiniMap/MiniMap.utils.d.ts +14 -0
- package/dist/components/hud/MiniMap/MiniMap.utils.d.ts.map +1 -0
- package/dist/components/hud/MiniMap/MiniMap.utils.js +47 -0
- package/dist/components/hud/MiniMap/MiniMap.utils.js.map +1 -0
- package/dist/components/hud/MiniMap/index.d.ts +5 -0
- package/dist/components/hud/MiniMap/index.d.ts.map +1 -0
- package/dist/components/hud/Scoreboard/Scoreboard.d.ts +7 -0
- package/dist/components/hud/Scoreboard/Scoreboard.d.ts.map +1 -0
- package/dist/components/hud/Scoreboard/Scoreboard.js +89 -0
- package/dist/components/hud/Scoreboard/Scoreboard.js.map +1 -0
- package/dist/components/hud/Scoreboard/Scoreboard.module.js +25 -0
- package/dist/components/hud/Scoreboard/Scoreboard.module.js.map +1 -0
- package/dist/components/hud/Scoreboard/Scoreboard.types.d.ts +23 -0
- package/dist/components/hud/Scoreboard/Scoreboard.types.d.ts.map +1 -0
- package/dist/components/hud/Scoreboard/Scoreboard.utils.d.ts +5 -0
- package/dist/components/hud/Scoreboard/Scoreboard.utils.d.ts.map +1 -0
- package/dist/components/hud/Scoreboard/Scoreboard.utils.js +15 -0
- package/dist/components/hud/Scoreboard/Scoreboard.utils.js.map +1 -0
- package/dist/components/hud/Scoreboard/index.d.ts +3 -0
- package/dist/components/hud/Scoreboard/index.d.ts.map +1 -0
- package/dist/components/hud/WeatherIndicator/WeatherIndicator.d.ts +4 -0
- package/dist/components/hud/WeatherIndicator/WeatherIndicator.d.ts.map +1 -0
- package/dist/components/hud/WeatherIndicator/WeatherIndicator.js +52 -0
- package/dist/components/hud/WeatherIndicator/WeatherIndicator.js.map +1 -0
- package/dist/components/hud/WeatherIndicator/WeatherIndicator.module.js +15 -0
- package/dist/components/hud/WeatherIndicator/WeatherIndicator.module.js.map +1 -0
- package/dist/components/hud/WeatherIndicator/WeatherIndicator.types.d.ts +17 -0
- package/dist/components/hud/WeatherIndicator/WeatherIndicator.types.d.ts.map +1 -0
- package/dist/components/hud/WeatherIndicator/WeatherIndicator.types.js +12 -0
- package/dist/components/hud/WeatherIndicator/WeatherIndicator.types.js.map +1 -0
- package/dist/components/hud/WeatherIndicator/WeatherIndicator.utils.d.ts +5 -0
- package/dist/components/hud/WeatherIndicator/WeatherIndicator.utils.d.ts.map +1 -0
- package/dist/components/hud/WeatherIndicator/WeatherIndicator.utils.js +22 -0
- package/dist/components/hud/WeatherIndicator/WeatherIndicator.utils.js.map +1 -0
- package/dist/components/hud/WeatherIndicator/index.d.ts +4 -0
- package/dist/components/hud/WeatherIndicator/index.d.ts.map +1 -0
- package/dist/components/hud/hudChip.module.js +15 -0
- package/dist/components/hud/hudChip.module.js.map +1 -0
- package/dist/components/hud/index.d.ts +7 -0
- package/dist/components/hud/index.d.ts.map +1 -1
- package/dist/components/layout/Accordion/Accordion.d.ts +7 -0
- package/dist/components/layout/Accordion/Accordion.d.ts.map +1 -0
- package/dist/components/layout/Accordion/Accordion.js +95 -0
- package/dist/components/layout/Accordion/Accordion.js.map +1 -0
- package/dist/components/layout/Accordion/Accordion.module.js +23 -0
- package/dist/components/layout/Accordion/Accordion.module.js.map +1 -0
- package/dist/components/layout/Accordion/Accordion.types.d.ts +21 -0
- package/dist/components/layout/Accordion/Accordion.types.d.ts.map +1 -0
- package/dist/components/layout/Accordion/index.d.ts +3 -0
- package/dist/components/layout/Accordion/index.d.ts.map +1 -0
- package/dist/components/layout/index.d.ts +1 -0
- package/dist/components/layout/index.d.ts.map +1 -1
- package/dist/components/social/ChatWindow/ChatWindow.d.ts +8 -0
- package/dist/components/social/ChatWindow/ChatWindow.d.ts.map +1 -0
- package/dist/components/social/ChatWindow/ChatWindow.js +146 -0
- package/dist/components/social/ChatWindow/ChatWindow.js.map +1 -0
- package/dist/components/social/ChatWindow/ChatWindow.module.js +27 -0
- package/dist/components/social/ChatWindow/ChatWindow.module.js.map +1 -0
- package/dist/components/social/ChatWindow/ChatWindow.types.d.ts +29 -0
- package/dist/components/social/ChatWindow/ChatWindow.types.d.ts.map +1 -0
- package/dist/components/social/ChatWindow/ChatWindow.types.js +12 -0
- package/dist/components/social/ChatWindow/ChatWindow.types.js.map +1 -0
- package/dist/components/social/ChatWindow/index.d.ts +4 -0
- package/dist/components/social/ChatWindow/index.d.ts.map +1 -0
- package/dist/components/social/CommandConsole/CommandConsole.d.ts +7 -0
- package/dist/components/social/CommandConsole/CommandConsole.d.ts.map +1 -0
- package/dist/components/social/CommandConsole/CommandConsole.js +187 -0
- package/dist/components/social/CommandConsole/CommandConsole.js.map +1 -0
- package/dist/components/social/CommandConsole/CommandConsole.module.js +31 -0
- package/dist/components/social/CommandConsole/CommandConsole.module.js.map +1 -0
- package/dist/components/social/CommandConsole/CommandConsole.types.d.ts +28 -0
- package/dist/components/social/CommandConsole/CommandConsole.types.d.ts.map +1 -0
- package/dist/components/social/CommandConsole/CommandConsole.types.js +11 -0
- package/dist/components/social/CommandConsole/CommandConsole.types.js.map +1 -0
- package/dist/components/social/CommandConsole/CommandConsole.utils.d.ts +4 -0
- package/dist/components/social/CommandConsole/CommandConsole.utils.d.ts.map +1 -0
- package/dist/components/social/CommandConsole/CommandConsole.utils.js +11 -0
- package/dist/components/social/CommandConsole/CommandConsole.utils.js.map +1 -0
- package/dist/components/social/CommandConsole/index.d.ts +5 -0
- package/dist/components/social/CommandConsole/index.d.ts.map +1 -0
- package/dist/components/social/index.d.ts +3 -0
- package/dist/components/social/index.d.ts.map +1 -0
- package/dist/hooks/useScrollLock.d.ts +6 -0
- package/dist/hooks/useScrollLock.d.ts.map +1 -0
- package/dist/hooks/useScrollLock.js +26 -0
- package/dist/hooks/useScrollLock.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +45 -1
- package/dist/styles.css +2511 -483
- 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 @@
|
|
|
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 @@
|
|
|
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":"
|
|
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,
|
|
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
|
-
|
|
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,
|
|
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 @@
|
|
|
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 @@
|
|
|
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"}
|
|
@@ -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
|