@malilion/block-ui-react 0.5.1 → 0.6.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/actions/ContextMenu/ContextMenu.d.ts.map +1 -1
- package/dist/components/actions/ContextMenu/ContextMenu.js +4 -2
- package/dist/components/actions/ContextMenu/ContextMenu.js.map +1 -1
- package/dist/components/actions/ContextMenu/ContextMenu.types.d.ts +1 -1
- package/dist/components/actions/ContextMenu/ContextMenu.types.d.ts.map +1 -1
- package/dist/components/cards/AchievementCard/AchievementCard.d.ts.map +1 -1
- package/dist/components/cards/AchievementCard/AchievementCard.js +6 -4
- package/dist/components/cards/AchievementCard/AchievementCard.js.map +1 -1
- package/dist/components/cards/PlayerCard/PlayerCard.d.ts.map +1 -1
- package/dist/components/cards/PlayerCard/PlayerCard.js +7 -5
- package/dist/components/cards/PlayerCard/PlayerCard.js.map +1 -1
- package/dist/components/cards/QuestCard/QuestCard.d.ts.map +1 -1
- package/dist/components/cards/QuestCard/QuestCard.js +9 -7
- package/dist/components/cards/QuestCard/QuestCard.js.map +1 -1
- package/dist/components/cards/ServerBrowser/ServerBrowser.d.ts.map +1 -1
- package/dist/components/cards/ServerBrowser/ServerBrowser.js +27 -25
- package/dist/components/cards/ServerBrowser/ServerBrowser.js.map +1 -1
- package/dist/components/cards/ServerBrowser/ServerBrowser.types.d.ts +2 -2
- package/dist/components/cards/ServerBrowser/ServerBrowser.types.d.ts.map +1 -1
- package/dist/components/cards/ServerCard/ServerCard.d.ts.map +1 -1
- package/dist/components/cards/ServerCard/ServerCard.js +10 -8
- package/dist/components/cards/ServerCard/ServerCard.js.map +1 -1
- package/dist/components/cards/WorldBrowser/WorldBrowser.d.ts.map +1 -1
- package/dist/components/cards/WorldBrowser/WorldBrowser.js +20 -18
- package/dist/components/cards/WorldBrowser/WorldBrowser.js.map +1 -1
- package/dist/components/cards/WorldBrowser/WorldBrowser.types.d.ts +2 -2
- package/dist/components/cards/WorldBrowser/WorldBrowser.types.d.ts.map +1 -1
- package/dist/components/cards/WorldCard/WorldCard.d.ts.map +1 -1
- package/dist/components/cards/WorldCard/WorldCard.js +16 -6
- package/dist/components/cards/WorldCard/WorldCard.js.map +1 -1
- package/dist/components/crafting/Anvil/Anvil.d.ts.map +1 -1
- package/dist/components/crafting/Anvil/Anvil.js +9 -7
- package/dist/components/crafting/Anvil/Anvil.js.map +1 -1
- package/dist/components/crafting/Anvil/Anvil.types.d.ts +1 -1
- package/dist/components/crafting/Anvil/Anvil.types.d.ts.map +1 -1
- package/dist/components/crafting/BrewingStand/BrewingStand.d.ts.map +1 -1
- package/dist/components/crafting/BrewingStand/BrewingStand.js +11 -20
- package/dist/components/crafting/BrewingStand/BrewingStand.js.map +1 -1
- package/dist/components/crafting/BrewingStand/BrewingStand.types.d.ts +1 -1
- package/dist/components/crafting/BrewingStand/BrewingStand.types.d.ts.map +1 -1
- package/dist/components/crafting/BrewingStand/BrewingStand.types.js.map +1 -1
- package/dist/components/crafting/CraftingGrid/CraftingGrid.d.ts.map +1 -1
- package/dist/components/crafting/CraftingGrid/CraftingGrid.js +4 -2
- package/dist/components/crafting/CraftingGrid/CraftingGrid.js.map +1 -1
- package/dist/components/crafting/CraftingResult/CraftingResult.d.ts.map +1 -1
- package/dist/components/crafting/CraftingResult/CraftingResult.js +5 -2
- package/dist/components/crafting/CraftingResult/CraftingResult.js.map +1 -1
- package/dist/components/crafting/CraftingResult/CraftingResult.types.d.ts +1 -1
- package/dist/components/crafting/CraftingResult/CraftingResult.types.d.ts.map +1 -1
- package/dist/components/crafting/CraftingTable/CraftingTable.d.ts.map +1 -1
- package/dist/components/crafting/CraftingTable/CraftingTable.js +5 -3
- package/dist/components/crafting/CraftingTable/CraftingTable.js.map +1 -1
- package/dist/components/crafting/CraftingTable/CraftingTable.types.d.ts +2 -2
- package/dist/components/crafting/CraftingTable/CraftingTable.types.d.ts.map +1 -1
- package/dist/components/crafting/EnchantingTable/EnchantingTable.d.ts.map +1 -1
- package/dist/components/crafting/EnchantingTable/EnchantingTable.js +15 -13
- package/dist/components/crafting/EnchantingTable/EnchantingTable.js.map +1 -1
- package/dist/components/crafting/EnchantingTable/EnchantingTable.types.d.ts +1 -1
- package/dist/components/crafting/EnchantingTable/EnchantingTable.types.d.ts.map +1 -1
- package/dist/components/crafting/Furnace/Furnace.d.ts.map +1 -1
- package/dist/components/crafting/Furnace/Furnace.js +11 -16
- package/dist/components/crafting/Furnace/Furnace.js.map +1 -1
- package/dist/components/crafting/Furnace/Furnace.types.d.ts +1 -1
- package/dist/components/crafting/Furnace/Furnace.types.d.ts.map +1 -1
- package/dist/components/crafting/Furnace/Furnace.types.js.map +1 -1
- package/dist/components/crafting/RecipeBook/RecipeBook.d.ts.map +1 -1
- package/dist/components/crafting/RecipeBook/RecipeBook.js +17 -15
- package/dist/components/crafting/RecipeBook/RecipeBook.js.map +1 -1
- package/dist/components/crafting/RecipeBook/RecipeBook.types.d.ts +1 -1
- package/dist/components/crafting/RecipeBook/RecipeBook.types.d.ts.map +1 -1
- package/dist/components/crafting/TradingUI/TradingUI.d.ts +1 -1
- package/dist/components/crafting/TradingUI/TradingUI.d.ts.map +1 -1
- package/dist/components/crafting/TradingUI/TradingUI.js +14 -13
- package/dist/components/crafting/TradingUI/TradingUI.js.map +1 -1
- package/dist/components/crafting/TradingUI/TradingUI.types.d.ts +1 -1
- package/dist/components/crafting/TradingUI/TradingUI.types.d.ts.map +1 -1
- package/dist/components/crafting/TradingUI/TradingUI.types.js.map +1 -1
- package/dist/components/display/Avatar/Avatar.d.ts.map +1 -1
- package/dist/components/display/Avatar/Avatar.js +3 -7
- package/dist/components/display/Avatar/Avatar.js.map +1 -1
- package/dist/components/display/BlockTable/BlockTable.d.ts.map +1 -1
- package/dist/components/display/BlockTable/BlockTable.js +4 -2
- package/dist/components/display/BlockTable/BlockTable.js.map +1 -1
- package/dist/components/display/BlockTable/BlockTable.types.d.ts +1 -1
- package/dist/components/display/BlockTable/BlockTable.types.d.ts.map +1 -1
- package/dist/components/display/SkillTree/SkillTree.d.ts.map +1 -1
- package/dist/components/display/SkillTree/SkillTree.js +16 -15
- package/dist/components/display/SkillTree/SkillTree.js.map +1 -1
- package/dist/components/display/SkillTree/SkillTree.types.d.ts +1 -1
- package/dist/components/display/SkillTree/SkillTree.types.d.ts.map +1 -1
- package/dist/components/feedback/Alert/BlockAlert.d.ts.map +1 -1
- package/dist/components/feedback/Alert/BlockAlert.js +4 -2
- package/dist/components/feedback/Alert/BlockAlert.js.map +1 -1
- package/dist/components/feedback/Alert/BlockAlert.types.d.ts +1 -1
- package/dist/components/feedback/Alert/BlockAlert.types.d.ts.map +1 -1
- package/dist/components/feedback/Alert/BlockAlert.types.js.map +1 -1
- package/dist/components/feedback/ConfirmDialog/ConfirmDialog.d.ts.map +1 -1
- package/dist/components/feedback/ConfirmDialog/ConfirmDialog.js +5 -3
- package/dist/components/feedback/ConfirmDialog/ConfirmDialog.js.map +1 -1
- package/dist/components/feedback/ConfirmDialog/ConfirmDialog.types.d.ts +2 -2
- package/dist/components/feedback/ConfirmDialog/ConfirmDialog.types.d.ts.map +1 -1
- package/dist/components/feedback/Drawer/Drawer.d.ts.map +1 -1
- package/dist/components/feedback/Drawer/Drawer.js +3 -2
- package/dist/components/feedback/Drawer/Drawer.js.map +1 -1
- package/dist/components/feedback/Loading/BlockLoading.d.ts.map +1 -1
- package/dist/components/feedback/Loading/BlockLoading.js +4 -2
- package/dist/components/feedback/Loading/BlockLoading.js.map +1 -1
- package/dist/components/feedback/Loading/BlockLoading.types.d.ts +1 -1
- package/dist/components/feedback/Loading/BlockLoading.types.d.ts.map +1 -1
- package/dist/components/feedback/Modal/BlockModal.d.ts.map +1 -1
- package/dist/components/feedback/Modal/BlockModal.js +3 -2
- package/dist/components/feedback/Modal/BlockModal.js.map +1 -1
- package/dist/components/feedback/Progress/BlockProgress.d.ts.map +1 -1
- package/dist/components/feedback/Progress/BlockProgress.js +3 -1
- package/dist/components/feedback/Progress/BlockProgress.js.map +1 -1
- package/dist/components/feedback/Toast/Toast.d.ts +1 -1
- package/dist/components/feedback/Toast/Toast.d.ts.map +1 -1
- package/dist/components/feedback/Toast/Toast.js +6 -4
- package/dist/components/feedback/Toast/Toast.js.map +1 -1
- package/dist/components/feedback/Toast/Toast.types.d.ts +1 -1
- package/dist/components/feedback/Toast/Toast.types.d.ts.map +1 -1
- package/dist/components/forms/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist/components/forms/NumberInput/NumberInput.js +4 -2
- package/dist/components/forms/NumberInput/NumberInput.js.map +1 -1
- package/dist/components/hud/ArmorBar/ArmorBar.d.ts.map +1 -1
- package/dist/components/hud/ArmorBar/ArmorBar.js +4 -2
- package/dist/components/hud/ArmorBar/ArmorBar.js.map +1 -1
- package/dist/components/hud/BiomeIndicator/BiomeIndicator.d.ts.map +1 -1
- package/dist/components/hud/BiomeIndicator/BiomeIndicator.js +4 -2
- package/dist/components/hud/BiomeIndicator/BiomeIndicator.js.map +1 -1
- package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.d.ts.map +1 -1
- package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.js +9 -7
- package/dist/components/hud/CoordinatesHUD/CoordinatesHUD.js.map +1 -1
- package/dist/components/hud/DayNightIndicator/DayNightIndicator.d.ts.map +1 -1
- package/dist/components/hud/DayNightIndicator/DayNightIndicator.js +7 -11
- package/dist/components/hud/DayNightIndicator/DayNightIndicator.js.map +1 -1
- package/dist/components/hud/DayNightIndicator/DayNightIndicator.utils.d.ts +4 -1
- package/dist/components/hud/DayNightIndicator/DayNightIndicator.utils.d.ts.map +1 -1
- package/dist/components/hud/DayNightIndicator/DayNightIndicator.utils.js +5 -2
- package/dist/components/hud/DayNightIndicator/DayNightIndicator.utils.js.map +1 -1
- package/dist/components/hud/HealthBar/HealthBar.d.ts.map +1 -1
- package/dist/components/hud/HealthBar/HealthBar.js +4 -2
- package/dist/components/hud/HealthBar/HealthBar.js.map +1 -1
- package/dist/components/hud/HungerBar/HungerBar.d.ts.map +1 -1
- package/dist/components/hud/HungerBar/HungerBar.js +4 -2
- package/dist/components/hud/HungerBar/HungerBar.js.map +1 -1
- package/dist/components/hud/MiniMap/MiniMap.d.ts.map +1 -1
- package/dist/components/hud/MiniMap/MiniMap.js +8 -7
- package/dist/components/hud/MiniMap/MiniMap.js.map +1 -1
- package/dist/components/hud/MiniMap/MiniMap.utils.d.ts +10 -2
- package/dist/components/hud/MiniMap/MiniMap.utils.d.ts.map +1 -1
- package/dist/components/hud/MiniMap/MiniMap.utils.js +12 -15
- package/dist/components/hud/MiniMap/MiniMap.utils.js.map +1 -1
- package/dist/components/hud/PlayerHUD/PlayerHUD.d.ts.map +1 -1
- package/dist/components/hud/PlayerHUD/PlayerHUD.js +4 -2
- package/dist/components/hud/PlayerHUD/PlayerHUD.js.map +1 -1
- package/dist/components/hud/PointsBar/PointsBar.d.ts.map +1 -1
- package/dist/components/hud/PointsBar/PointsBar.js +3 -1
- package/dist/components/hud/PointsBar/PointsBar.js.map +1 -1
- package/dist/components/hud/Scoreboard/Scoreboard.d.ts.map +1 -1
- package/dist/components/hud/Scoreboard/Scoreboard.js +9 -11
- package/dist/components/hud/Scoreboard/Scoreboard.js.map +1 -1
- package/dist/components/hud/WeatherIndicator/WeatherIndicator.d.ts.map +1 -1
- package/dist/components/hud/WeatherIndicator/WeatherIndicator.js +7 -4
- package/dist/components/hud/WeatherIndicator/WeatherIndicator.js.map +1 -1
- package/dist/components/hud/WeatherIndicator/WeatherIndicator.utils.js +1 -8
- package/dist/components/hud/WeatherIndicator/WeatherIndicator.utils.js.map +1 -1
- package/dist/components/hud/XPBar/XPBar.d.ts.map +1 -1
- package/dist/components/hud/XPBar/XPBar.js +6 -4
- package/dist/components/hud/XPBar/XPBar.js.map +1 -1
- package/dist/components/inventory/DurabilityBar/DurabilityBar.d.ts.map +1 -1
- package/dist/components/inventory/DurabilityBar/DurabilityBar.js +4 -2
- package/dist/components/inventory/DurabilityBar/DurabilityBar.js.map +1 -1
- package/dist/components/inventory/Hotbar/Hotbar.d.ts.map +1 -1
- package/dist/components/inventory/Hotbar/Hotbar.js +4 -2
- package/dist/components/inventory/Hotbar/Hotbar.js.map +1 -1
- package/dist/components/inventory/Inventory/Inventory.d.ts.map +1 -1
- package/dist/components/inventory/Inventory/Inventory.js +4 -2
- package/dist/components/inventory/Inventory/Inventory.js.map +1 -1
- package/dist/components/inventory/InventoryGrid/InventoryGrid.d.ts.map +1 -1
- package/dist/components/inventory/InventoryGrid/InventoryGrid.js +4 -2
- package/dist/components/inventory/InventoryGrid/InventoryGrid.js.map +1 -1
- package/dist/components/inventory/InventorySlot/InventorySlot.d.ts.map +1 -1
- package/dist/components/inventory/InventorySlot/InventorySlot.js +3 -1
- package/dist/components/inventory/InventorySlot/InventorySlot.js.map +1 -1
- package/dist/components/inventory/ItemStack/ItemStack.d.ts.map +1 -1
- package/dist/components/inventory/ItemStack/ItemStack.js +3 -1
- package/dist/components/inventory/ItemStack/ItemStack.js.map +1 -1
- package/dist/components/inventory/ItemStack/ItemStack.utils.d.ts +2 -1
- package/dist/components/inventory/ItemStack/ItemStack.utils.d.ts.map +1 -1
- package/dist/components/inventory/ItemStack/ItemStack.utils.js +6 -2
- package/dist/components/inventory/ItemStack/ItemStack.utils.js.map +1 -1
- package/dist/components/inventory/ItemTooltip/ItemTooltip.d.ts.map +1 -1
- package/dist/components/inventory/ItemTooltip/ItemTooltip.js +3 -1
- package/dist/components/inventory/ItemTooltip/ItemTooltip.js.map +1 -1
- package/dist/components/navigation/BlockPagination/BlockPagination.d.ts.map +1 -1
- package/dist/components/navigation/BlockPagination/BlockPagination.js +9 -12
- package/dist/components/navigation/BlockPagination/BlockPagination.js.map +1 -1
- package/dist/components/navigation/BlockPagination/BlockPagination.types.d.ts +1 -1
- package/dist/components/navigation/BlockPagination/BlockPagination.types.d.ts.map +1 -1
- package/dist/components/navigation/BlockSidebar/BlockSidebar.d.ts.map +1 -1
- package/dist/components/navigation/BlockSidebar/BlockSidebar.js +4 -2
- package/dist/components/navigation/BlockSidebar/BlockSidebar.js.map +1 -1
- package/dist/components/navigation/BlockSidebar/BlockSidebar.types.d.ts +1 -1
- package/dist/components/navigation/BlockSidebar/BlockSidebar.types.d.ts.map +1 -1
- package/dist/components/navigation/BlockStepper/BlockStepper.d.ts.map +1 -1
- package/dist/components/navigation/BlockStepper/BlockStepper.js +4 -2
- package/dist/components/navigation/BlockStepper/BlockStepper.js.map +1 -1
- package/dist/components/navigation/BlockStepper/BlockStepper.types.d.ts +1 -1
- package/dist/components/navigation/BlockStepper/BlockStepper.types.d.ts.map +1 -1
- package/dist/components/navigation/Breadcrumb/Breadcrumb.d.ts.map +1 -1
- package/dist/components/navigation/Breadcrumb/Breadcrumb.js +4 -2
- package/dist/components/navigation/Breadcrumb/Breadcrumb.js.map +1 -1
- package/dist/components/navigation/Breadcrumb/Breadcrumb.types.d.ts +1 -1
- package/dist/components/navigation/Breadcrumb/Breadcrumb.types.d.ts.map +1 -1
- package/dist/components/navigation/HotbarNavigation/HotbarNavigation.d.ts.map +1 -1
- package/dist/components/navigation/HotbarNavigation/HotbarNavigation.js +4 -2
- package/dist/components/navigation/HotbarNavigation/HotbarNavigation.js.map +1 -1
- package/dist/components/navigation/HotbarNavigation/HotbarNavigation.types.d.ts +1 -1
- package/dist/components/navigation/HotbarNavigation/HotbarNavigation.types.d.ts.map +1 -1
- package/dist/components/social/ChatWindow/ChatWindow.d.ts.map +1 -1
- package/dist/components/social/ChatWindow/ChatWindow.js +10 -7
- package/dist/components/social/ChatWindow/ChatWindow.js.map +1 -1
- package/dist/components/social/ChatWindow/ChatWindow.types.d.ts +2 -2
- package/dist/components/social/ChatWindow/ChatWindow.types.d.ts.map +1 -1
- package/dist/components/social/ChatWindow/ChatWindow.types.js.map +1 -1
- package/dist/components/social/CommandConsole/CommandConsole.d.ts.map +1 -1
- package/dist/components/social/CommandConsole/CommandConsole.js +7 -4
- package/dist/components/social/CommandConsole/CommandConsole.js.map +1 -1
- package/dist/components/social/CommandConsole/CommandConsole.types.d.ts +1 -1
- package/dist/components/social/CommandConsole/CommandConsole.types.d.ts.map +1 -1
- package/dist/components/social/CommandConsole/CommandConsole.types.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/locale/index.d.ts +4 -0
- package/dist/locale/index.d.ts.map +1 -0
- package/dist/locale/messages.d.ts +289 -0
- package/dist/locale/messages.d.ts.map +1 -0
- package/dist/locale/messages.js +341 -0
- package/dist/locale/messages.js.map +1 -0
- package/dist/locale/zhTW.d.ts +4 -0
- package/dist/locale/zhTW.d.ts.map +1 -0
- package/dist/locale/zhTW.js +331 -0
- package/dist/locale/zhTW.js.map +1 -0
- package/dist/provider/BlockUIProvider.d.ts.map +1 -1
- package/dist/provider/BlockUIProvider.js +10 -3
- package/dist/provider/BlockUIProvider.js.map +1 -1
- package/dist/provider/BlockUIProvider.types.d.ts +9 -0
- package/dist/provider/BlockUIProvider.types.d.ts.map +1 -1
- package/dist/provider/context.d.ts +3 -0
- package/dist/provider/context.d.ts.map +1 -1
- package/dist/provider/context.js +6 -1
- package/dist/provider/context.js.map +1 -1
- package/dist/provider/index.d.ts +1 -1
- package/dist/provider/index.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { cx } from "../../../utils/cx.js";
|
|
2
|
+
import { useBlockUIMessages } from "../../../provider/context.js";
|
|
2
3
|
import { BlockButton } from "../../actions/BlockButton/BlockButton.js";
|
|
3
4
|
import { BlockInput } from "../../forms/BlockInput/BlockInput.js";
|
|
4
5
|
import { BlockSelect } from "../../forms/BlockSelect/BlockSelect.js";
|
|
@@ -9,15 +10,16 @@ import { forwardRef, useState } from "react";
|
|
|
9
10
|
import { PlusIcon, SearchIcon } from "@malilion/block-ui-icons";
|
|
10
11
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
11
12
|
//#region src/components/cards/WorldBrowser/WorldBrowser.tsx
|
|
12
|
-
var SORT_OPTIONS = [{
|
|
13
|
-
value: "recent",
|
|
14
|
-
label: "Last played"
|
|
15
|
-
}, {
|
|
16
|
-
value: "name",
|
|
17
|
-
label: "Name"
|
|
18
|
-
}];
|
|
19
13
|
/** Singleplayer world list: search, game-mode filter and sort over `WorldCard`s. */
|
|
20
|
-
var WorldBrowser = forwardRef(function WorldBrowser({ worlds, onPlay, onCreate, defaultSort = "recent", emptyText
|
|
14
|
+
var WorldBrowser = forwardRef(function WorldBrowser({ worlds, onPlay, onCreate, defaultSort = "recent", emptyText, label, className, ...rest }, ref) {
|
|
15
|
+
const m = useBlockUIMessages();
|
|
16
|
+
const sortOptions = [{
|
|
17
|
+
value: "recent",
|
|
18
|
+
label: m.worldBrowser.lastPlayed
|
|
19
|
+
}, {
|
|
20
|
+
value: "name",
|
|
21
|
+
label: m.common.name
|
|
22
|
+
}];
|
|
21
23
|
const [query, setQuery] = useState("");
|
|
22
24
|
const [mode, setMode] = useState("all");
|
|
23
25
|
const [sort, setSort] = useState(defaultSort);
|
|
@@ -30,7 +32,7 @@ var WorldBrowser = forwardRef(function WorldBrowser({ worlds, onPlay, onCreate,
|
|
|
30
32
|
return /* @__PURE__ */ jsxs("div", {
|
|
31
33
|
ref,
|
|
32
34
|
role: "region",
|
|
33
|
-
"aria-label": label,
|
|
35
|
+
"aria-label": label ?? m.worldBrowser.label,
|
|
34
36
|
className: cx(browser_module_default.browser, className),
|
|
35
37
|
...rest,
|
|
36
38
|
children: [
|
|
@@ -39,19 +41,19 @@ var WorldBrowser = forwardRef(function WorldBrowser({ worlds, onPlay, onCreate,
|
|
|
39
41
|
children: [
|
|
40
42
|
/* @__PURE__ */ jsx(BlockInput, {
|
|
41
43
|
type: "search",
|
|
42
|
-
label:
|
|
44
|
+
label: m.worldBrowser.search,
|
|
43
45
|
value: query,
|
|
44
46
|
onChange: (event) => setQuery(event.target.value),
|
|
45
47
|
startIcon: /* @__PURE__ */ jsx(SearchIcon, { size: 16 }),
|
|
46
48
|
wrapperClassName: browser_module_default.search
|
|
47
49
|
}),
|
|
48
50
|
modes.length > 1 ? /* @__PURE__ */ jsx(BlockSelect, {
|
|
49
|
-
label:
|
|
51
|
+
label: m.worldBrowser.gameMode,
|
|
50
52
|
value: mode,
|
|
51
53
|
onChange: (event) => setMode(event.target.value),
|
|
52
54
|
options: [{
|
|
53
55
|
value: "all",
|
|
54
|
-
label:
|
|
56
|
+
label: m.worldBrowser.allModes
|
|
55
57
|
}, ...modes.map((value) => ({
|
|
56
58
|
value,
|
|
57
59
|
label: value
|
|
@@ -59,10 +61,10 @@ var WorldBrowser = forwardRef(function WorldBrowser({ worlds, onPlay, onCreate,
|
|
|
59
61
|
wrapperClassName: browser_module_default.filter
|
|
60
62
|
}) : null,
|
|
61
63
|
/* @__PURE__ */ jsx(BlockSelect, {
|
|
62
|
-
label:
|
|
64
|
+
label: m.common.sortBy,
|
|
63
65
|
value: sort,
|
|
64
66
|
onChange: (event) => setSort(event.target.value),
|
|
65
|
-
options:
|
|
67
|
+
options: sortOptions,
|
|
66
68
|
wrapperClassName: browser_module_default.filter
|
|
67
69
|
}),
|
|
68
70
|
onCreate ? /* @__PURE__ */ jsx("div", {
|
|
@@ -71,7 +73,7 @@ var WorldBrowser = forwardRef(function WorldBrowser({ worlds, onPlay, onCreate,
|
|
|
71
73
|
variant: "grass",
|
|
72
74
|
startIcon: /* @__PURE__ */ jsx(PlusIcon, { size: 16 }),
|
|
73
75
|
onClick: onCreate,
|
|
74
|
-
children:
|
|
76
|
+
children: m.worldBrowser.createWorld
|
|
75
77
|
})
|
|
76
78
|
}) : null
|
|
77
79
|
]
|
|
@@ -79,18 +81,18 @@ var WorldBrowser = forwardRef(function WorldBrowser({ worlds, onPlay, onCreate,
|
|
|
79
81
|
/* @__PURE__ */ jsx("p", {
|
|
80
82
|
className: browser_module_default.count,
|
|
81
83
|
role: "status",
|
|
82
|
-
children:
|
|
84
|
+
children: m.worldBrowser.count(visible.length)
|
|
83
85
|
}),
|
|
84
86
|
visible.length > 0 ? /* @__PURE__ */ jsx("ul", {
|
|
85
87
|
className: browser_module_default.list,
|
|
86
|
-
"aria-label":
|
|
88
|
+
"aria-label": m.worldBrowser.worlds,
|
|
87
89
|
children: visible.map(({ id, lastPlayedAt: _lastPlayedAt, ...world }) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(WorldCard, {
|
|
88
90
|
...world,
|
|
89
91
|
onPlay: onPlay ? () => onPlay(id) : void 0
|
|
90
92
|
}) }, id))
|
|
91
93
|
}) : /* @__PURE__ */ jsx("p", {
|
|
92
94
|
className: browser_module_default.empty,
|
|
93
|
-
children: emptyText
|
|
95
|
+
children: emptyText === void 0 ? m.worldBrowser.empty : emptyText
|
|
94
96
|
})
|
|
95
97
|
]
|
|
96
98
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorldBrowser.js","names":["styles"],"sources":["../../../../src/components/cards/WorldBrowser/WorldBrowser.tsx"],"sourcesContent":["import { PlusIcon, SearchIcon } from \"@malilion/block-ui-icons\";\nimport { forwardRef, useState } from \"react\";\nimport { cx } from \"../../../utils/cx\";\nimport { BlockButton } from \"../../actions/BlockButton/BlockButton\";\nimport { BlockInput } from \"../../forms/BlockInput/BlockInput\";\nimport { BlockSelect } from \"../../forms/BlockSelect/BlockSelect\";\nimport styles from \"../browser.module.css\";\nimport { WorldCard } from \"../WorldCard/WorldCard\";\nimport type { WorldBrowserProps, WorldSort } from \"./WorldBrowser.types\";\nimport { ALL_MODES, browseWorlds, gameModes } from \"./WorldBrowser.utils\";\n\
|
|
1
|
+
{"version":3,"file":"WorldBrowser.js","names":["styles"],"sources":["../../../../src/components/cards/WorldBrowser/WorldBrowser.tsx"],"sourcesContent":["import { PlusIcon, SearchIcon } from \"@malilion/block-ui-icons\";\nimport { forwardRef, useState } from \"react\";\nimport { useBlockUIMessages } from \"../../../provider/context\";\nimport { cx } from \"../../../utils/cx\";\nimport { BlockButton } from \"../../actions/BlockButton/BlockButton\";\nimport { BlockInput } from \"../../forms/BlockInput/BlockInput\";\nimport { BlockSelect } from \"../../forms/BlockSelect/BlockSelect\";\nimport styles from \"../browser.module.css\";\nimport { WorldCard } from \"../WorldCard/WorldCard\";\nimport type { WorldBrowserProps, WorldSort } from \"./WorldBrowser.types\";\nimport { ALL_MODES, browseWorlds, gameModes } from \"./WorldBrowser.utils\";\n\n/** Singleplayer world list: search, game-mode filter and sort over `WorldCard`s. */\nexport const WorldBrowser = forwardRef<HTMLDivElement, WorldBrowserProps>(function WorldBrowser(\n { worlds, onPlay, onCreate, defaultSort = \"recent\", emptyText, label, className, ...rest },\n ref,\n) {\n const m = useBlockUIMessages();\n const sortOptions = [\n { value: \"recent\", label: m.worldBrowser.lastPlayed },\n { value: \"name\", label: m.common.name },\n ];\n const [query, setQuery] = useState(\"\");\n const [mode, setMode] = useState(ALL_MODES);\n const [sort, setSort] = useState<WorldSort>(defaultSort);\n const modes = gameModes(worlds);\n const visible = browseWorlds(worlds, { query, mode, sort });\n\n return (\n <div\n ref={ref}\n role=\"region\"\n aria-label={label ?? m.worldBrowser.label}\n className={cx(styles.browser, className)}\n {...rest}\n >\n <div className={styles.toolbar}>\n <BlockInput\n type=\"search\"\n label={m.worldBrowser.search}\n value={query}\n onChange={(event) => setQuery(event.target.value)}\n startIcon={<SearchIcon size={16} />}\n wrapperClassName={styles.search}\n />\n {modes.length > 1 ? (\n <BlockSelect\n label={m.worldBrowser.gameMode}\n value={mode}\n onChange={(event) => setMode(event.target.value)}\n options={[\n { value: ALL_MODES, label: m.worldBrowser.allModes },\n ...modes.map((value) => ({ value, label: value })),\n ]}\n wrapperClassName={styles.filter}\n />\n ) : null}\n <BlockSelect\n label={m.common.sortBy}\n value={sort}\n onChange={(event) => setSort(event.target.value as WorldSort)}\n options={sortOptions}\n wrapperClassName={styles.filter}\n />\n {onCreate ? (\n <div className={styles.actions}>\n <BlockButton variant=\"grass\" startIcon={<PlusIcon size={16} />} onClick={onCreate}>\n {m.worldBrowser.createWorld}\n </BlockButton>\n </div>\n ) : null}\n </div>\n <p className={styles.count} role=\"status\">\n {m.worldBrowser.count(visible.length)}\n </p>\n {visible.length > 0 ? (\n <ul className={styles.list} aria-label={m.worldBrowser.worlds}>\n {visible.map(({ id, lastPlayedAt: _lastPlayedAt, ...world }) => (\n <li key={id}>\n <WorldCard {...world} onPlay={onPlay ? () => onPlay(id) : undefined} />\n </li>\n ))}\n </ul>\n ) : (\n <p className={styles.empty}>{emptyText === undefined ? m.worldBrowser.empty : emptyText}</p>\n )}\n </div>\n );\n});\n"],"mappings":";;;;;;;;;;;;;AAaA,IAAa,eAAe,WAA8C,SAAS,aACjF,EAAE,QAAQ,QAAQ,UAAU,cAAc,UAAU,WAAW,OAAO,WAAW,GAAG,QACpF,KACA;CACA,MAAM,IAAI,mBAAmB;CAC7B,MAAM,cAAc,CAClB;EAAE,OAAO;EAAU,OAAO,EAAE,aAAa;CAAW,GACpD;EAAE,OAAO;EAAQ,OAAO,EAAE,OAAO;CAAK,CACxC;CACA,MAAM,CAAC,OAAO,YAAY,SAAS,EAAE;CACrC,MAAM,CAAC,MAAM,WAAW,SAAA,KAAkB;CAC1C,MAAM,CAAC,MAAM,WAAW,SAAoB,WAAW;CACvD,MAAM,QAAQ,UAAU,MAAM;CAC9B,MAAM,UAAU,aAAa,QAAQ;EAAE;EAAO;EAAM;CAAK,CAAC;CAE1D,OACE,qBAAC,OAAD;EACO;EACL,MAAK;EACL,cAAY,SAAS,EAAE,aAAa;EACpC,WAAW,GAAGA,uBAAO,SAAS,SAAS;EACvC,GAAI;EALN,UAAA;GAOE,qBAAC,OAAD;IAAK,WAAWA,uBAAO;IAAvB,UAAA;KACE,oBAAC,YAAD;MACE,MAAK;MACL,OAAO,EAAE,aAAa;MACtB,OAAO;MACP,WAAW,UAAU,SAAS,MAAM,OAAO,KAAK;MAChD,WAAW,oBAAC,YAAD,EAAY,MAAM,GAAK,CAAA;MAClC,kBAAkBA,uBAAO;KAC1B,CAAA;KACA,MAAM,SAAS,IACd,oBAAC,aAAD;MACE,OAAO,EAAE,aAAa;MACtB,OAAO;MACP,WAAW,UAAU,QAAQ,MAAM,OAAO,KAAK;MAC/C,SAAS,CACP;OAAE,OAAA;OAAkB,OAAO,EAAE,aAAa;MAAS,GACnD,GAAG,MAAM,KAAK,WAAW;OAAE;OAAO,OAAO;MAAM,EAAE,CACnD;MACA,kBAAkBA,uBAAO;KAC1B,CAAA,IACC;KACJ,oBAAC,aAAD;MACE,OAAO,EAAE,OAAO;MAChB,OAAO;MACP,WAAW,UAAU,QAAQ,MAAM,OAAO,KAAkB;MAC5D,SAAS;MACT,kBAAkBA,uBAAO;KAC1B,CAAA;KACA,WACC,oBAAC,OAAD;MAAK,WAAWA,uBAAO;MACrB,UAAA,oBAAC,aAAD;OAAa,SAAQ;OAAQ,WAAW,oBAAC,UAAD,EAAU,MAAM,GAAK,CAAA;OAAG,SAAS;OACtE,UAAA,EAAE,aAAa;MACL,CAAA;KACV,CAAA,IACH;IACD;;GACL,oBAAC,KAAD;IAAG,WAAWA,uBAAO;IAAO,MAAK;IAC9B,UAAA,EAAE,aAAa,MAAM,QAAQ,MAAM;GACnC,CAAA;GACF,QAAQ,SAAS,IAChB,oBAAC,MAAD;IAAI,WAAWA,uBAAO;IAAM,cAAY,EAAE,aAAa;IACpD,UAAA,QAAQ,KAAK,EAAE,IAAI,cAAc,eAAe,GAAG,YAClD,oBAAC,MAAD,EAAA,UACE,oBAAC,WAAD;KAAW,GAAI;KAAO,QAAQ,eAAe,OAAO,EAAE,IAAI,KAAA;IAAY,CAAA,EACpE,GAFK,EAEL,CACL;GACC,CAAA,IAEJ,oBAAC,KAAD;IAAG,WAAWA,uBAAO;IAAQ,UAAA,cAAc,KAAA,IAAY,EAAE,aAAa,QAAQ;GAAa,CAAA;EAE1F;;AAET,CAAC"}
|
|
@@ -14,9 +14,9 @@ export interface WorldBrowserProps extends Omit<HTMLAttributes<HTMLDivElement>,
|
|
|
14
14
|
onCreate?: () => void;
|
|
15
15
|
/** Initial sort. @default "recent" */
|
|
16
16
|
defaultSort?: WorldSort;
|
|
17
|
-
/** Shown when no world matches. @default "No worlds yet" */
|
|
17
|
+
/** Shown when no world matches. @default messages.worldBrowser.empty ("No worlds yet") */
|
|
18
18
|
emptyText?: ReactNode;
|
|
19
|
-
/** Accessible name. @default "World browser" */
|
|
19
|
+
/** Accessible name. @default messages.worldBrowser.label ("World browser") */
|
|
20
20
|
label?: string;
|
|
21
21
|
}
|
|
22
22
|
//# sourceMappingURL=WorldBrowser.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorldBrowser.types.d.ts","sourceRoot":"","sources":["../../../../src/components/cards/WorldBrowser/WorldBrowser.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvE,EAAE,EAAE,MAAM,CAAC;IACX,uFAAuF;IACvF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE1C,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC;IACvF,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,gEAAgE;IAChE,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,sCAAsC;IACtC,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,
|
|
1
|
+
{"version":3,"file":"WorldBrowser.types.d.ts","sourceRoot":"","sources":["../../../../src/components/cards/WorldBrowser/WorldBrowser.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvE,EAAE,EAAE,MAAM,CAAC;IACX,uFAAuF;IACvF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE1C,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC;IACvF,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,gEAAgE;IAChE,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,sCAAsC;IACtC,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorldCard.d.ts","sourceRoot":"","sources":["../../../../src/components/cards/WorldCard/WorldCard.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WorldCard.d.ts","sourceRoot":"","sources":["../../../../src/components/cards/WorldCard/WorldCard.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,6DAA6D;AAC7D,eAAO,MAAM,SAAS,wGA+DpB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { cx } from "../../../utils/cx.js";
|
|
2
|
+
import { useBlockUIMessages } from "../../../provider/context.js";
|
|
2
3
|
import { IconButton } from "../../actions/IconButton/IconButton.js";
|
|
3
4
|
import { formatNumber } from "../../../utils/number.js";
|
|
4
5
|
import { BlockCard } from "../BlockCard/BlockCard.js";
|
|
@@ -9,11 +10,12 @@ import { PlayIcon } from "@malilion/block-ui-icons";
|
|
|
9
10
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
11
|
//#region src/components/cards/WorldCard/WorldCard.tsx
|
|
11
12
|
/** Saved world with a preview, details and a Play button. */
|
|
12
|
-
var WorldCard = forwardRef(function WorldCard({ name, image, gameMode, day, seed, lastPlayed, onPlay, material = "grass", label
|
|
13
|
+
var WorldCard = forwardRef(function WorldCard({ name, image, gameMode, day, seed, lastPlayed, onPlay, material = "grass", label, className, ...rest }, ref) {
|
|
14
|
+
const m = useBlockUIMessages();
|
|
13
15
|
return /* @__PURE__ */ jsxs(BlockCard, {
|
|
14
16
|
ref,
|
|
15
17
|
material,
|
|
16
|
-
label,
|
|
18
|
+
label: label === void 0 ? m.worldCard.label : label,
|
|
17
19
|
className: cx(cards_module_default.card, className),
|
|
18
20
|
...rest,
|
|
19
21
|
children: [/* @__PURE__ */ jsx("div", {
|
|
@@ -37,20 +39,28 @@ var WorldCard = forwardRef(function WorldCard({ name, image, gameMode, day, seed
|
|
|
37
39
|
}),
|
|
38
40
|
/* @__PURE__ */ jsx("p", {
|
|
39
41
|
className: cards_module_default.description,
|
|
40
|
-
children: [gameMode, day !== void 0 ?
|
|
42
|
+
children: [gameMode, day !== void 0 ? m.worldCard.day(formatNumber(day)) : void 0].filter(Boolean).join(" · ")
|
|
41
43
|
}),
|
|
42
44
|
seed ? /* @__PURE__ */ jsxs("p", {
|
|
43
45
|
className: cards_module_default.description,
|
|
44
|
-
children: [
|
|
46
|
+
children: [
|
|
47
|
+
m.worldCard.seed,
|
|
48
|
+
" ",
|
|
49
|
+
seed
|
|
50
|
+
]
|
|
45
51
|
}) : null,
|
|
46
52
|
lastPlayed ? /* @__PURE__ */ jsxs("p", {
|
|
47
53
|
className: cards_module_default.description,
|
|
48
|
-
children: [
|
|
54
|
+
children: [
|
|
55
|
+
m.worldCard.lastPlayed,
|
|
56
|
+
" ",
|
|
57
|
+
lastPlayed
|
|
58
|
+
]
|
|
49
59
|
}) : null
|
|
50
60
|
]
|
|
51
61
|
}), onPlay ? /* @__PURE__ */ jsx(IconButton, {
|
|
52
62
|
icon: /* @__PURE__ */ jsx(PlayIcon, { size: 16 }),
|
|
53
|
-
label:
|
|
63
|
+
label: m.worldCard.play(name),
|
|
54
64
|
variant: "grass",
|
|
55
65
|
onClick: onPlay,
|
|
56
66
|
className: WorldCard_module_default.play
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorldCard.js","names":["styles","worldStyles"],"sources":["../../../../src/components/cards/WorldCard/WorldCard.tsx"],"sourcesContent":["import { PlayIcon } from \"@malilion/block-ui-icons\";\nimport { forwardRef } from \"react\";\nimport { cx } from \"../../../utils/cx\";\nimport { formatNumber } from \"../../../utils/number\";\nimport { IconButton } from \"../../actions/IconButton/IconButton\";\nimport { BlockCard } from \"../BlockCard/BlockCard\";\nimport styles from \"../cards.module.css\";\nimport worldStyles from \"./WorldCard.module.css\";\nimport type { WorldCardProps } from \"./WorldCard.types\";\n\n/** Saved world with a preview, details and a Play button. */\nexport const WorldCard = forwardRef<HTMLElement, WorldCardProps>(function WorldCard(\n {\n name,\n image,\n gameMode,\n day,\n seed,\n lastPlayed,\n onPlay,\n material = \"grass\",\n label
|
|
1
|
+
{"version":3,"file":"WorldCard.js","names":["styles","worldStyles"],"sources":["../../../../src/components/cards/WorldCard/WorldCard.tsx"],"sourcesContent":["import { PlayIcon } from \"@malilion/block-ui-icons\";\nimport { forwardRef } from \"react\";\nimport { useBlockUIMessages } from \"../../../provider/context\";\nimport { cx } from \"../../../utils/cx\";\nimport { formatNumber } from \"../../../utils/number\";\nimport { IconButton } from \"../../actions/IconButton/IconButton\";\nimport { BlockCard } from \"../BlockCard/BlockCard\";\nimport styles from \"../cards.module.css\";\nimport worldStyles from \"./WorldCard.module.css\";\nimport type { WorldCardProps } from \"./WorldCard.types\";\n\n/** Saved world with a preview, details and a Play button. */\nexport const WorldCard = forwardRef<HTMLElement, WorldCardProps>(function WorldCard(\n {\n name,\n image,\n gameMode,\n day,\n seed,\n lastPlayed,\n onPlay,\n material = \"grass\",\n label,\n className,\n ...rest\n },\n ref,\n) {\n const m = useBlockUIMessages();\n return (\n <BlockCard\n ref={ref}\n material={material}\n label={label === undefined ? m.worldCard.label : label}\n className={cx(styles.card, className)}\n {...rest}\n >\n <div className={worldStyles.preview}>\n {image ? (\n <img src={image} alt=\"\" className={worldStyles.image} />\n ) : (\n <span className={worldStyles.landscape} aria-hidden=\"true\" />\n )}\n </div>\n <div className={worldStyles.info}>\n <div className={styles.titleBlock}>\n <p className={styles.title}>{name}</p>\n <p className={styles.description}>\n {[gameMode, day !== undefined ? m.worldCard.day(formatNumber(day)) : undefined]\n .filter(Boolean)\n .join(\" · \")}\n </p>\n {seed ? (\n <p className={styles.description}>\n {m.worldCard.seed} {seed}\n </p>\n ) : null}\n {lastPlayed ? (\n <p className={styles.description}>\n {m.worldCard.lastPlayed} {lastPlayed}\n </p>\n ) : null}\n </div>\n {onPlay ? (\n <IconButton\n icon={<PlayIcon size={16} />}\n label={m.worldCard.play(name)}\n variant=\"grass\"\n onClick={onPlay}\n className={worldStyles.play}\n />\n ) : null}\n </div>\n </BlockCard>\n );\n});\n"],"mappings":";;;;;;;;;;;;AAYA,IAAa,YAAY,WAAwC,SAAS,UACxE,EACE,MACA,OACA,UACA,KACA,MACA,YACA,QACA,WAAW,SACX,OACA,WACA,GAAG,QAEL,KACA;CACA,MAAM,IAAI,mBAAmB;CAC7B,OACE,qBAAC,WAAD;EACO;EACK;EACV,OAAO,UAAU,KAAA,IAAY,EAAE,UAAU,QAAQ;EACjD,WAAW,GAAGA,qBAAO,MAAM,SAAS;EACpC,GAAI;EALN,UAAA,CAOE,oBAAC,OAAD;GAAK,WAAWC,yBAAY;GACzB,UAAA,QACC,oBAAC,OAAD;IAAK,KAAK;IAAO,KAAI;IAAG,WAAWA,yBAAY;GAAQ,CAAA,IAEvD,oBAAC,QAAD;IAAM,WAAWA,yBAAY;IAAW,eAAY;GAAQ,CAAA;EAE3D,CAAA,GACL,qBAAC,OAAD;GAAK,WAAWA,yBAAY;GAA5B,UAAA,CACE,qBAAC,OAAD;IAAK,WAAWD,qBAAO;IAAvB,UAAA;KACE,oBAAC,KAAD;MAAG,WAAWA,qBAAO;MAAQ,UAAA;KAAQ,CAAA;KACrC,oBAAC,KAAD;MAAG,WAAWA,qBAAO;MAClB,UAAA,CAAC,UAAU,QAAQ,KAAA,IAAY,EAAE,UAAU,IAAI,aAAa,GAAG,CAAC,IAAI,KAAA,CAAS,CAAC,CAC5E,OAAO,OAAO,CAAC,CACf,KAAK,KAAK;KACZ,CAAA;KACF,OACC,qBAAC,KAAD;MAAG,WAAWA,qBAAO;MAArB,UAAA;OACG,EAAE,UAAU;OAAK;OAAE;MACnB;KACD,CAAA,IAAA;KACH,aACC,qBAAC,KAAD;MAAG,WAAWA,qBAAO;MAArB,UAAA;OACG,EAAE,UAAU;OAAW;OAAE;MACzB;KACD,CAAA,IAAA;IACD;GACJ,CAAA,GAAA,SACC,oBAAC,YAAD;IACE,MAAM,oBAAC,UAAD,EAAU,MAAM,GAAK,CAAA;IAC3B,OAAO,EAAE,UAAU,KAAK,IAAI;IAC5B,SAAQ;IACR,SAAS;IACT,WAAWC,yBAAY;GACxB,CAAA,IACC,IACD;EACI,CAAA,CAAA;;AAEf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Anvil.d.ts","sourceRoot":"","sources":["../../../../src/components/crafting/Anvil/Anvil.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Anvil.d.ts","sourceRoot":"","sources":["../../../../src/components/crafting/Anvil/Anvil.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAKhD;;;GAGG;AACH,eAAO,MAAM,KAAK,uGAsFhB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { cx } from "../../../utils/cx.js";
|
|
2
|
+
import { useBlockUIMessages } from "../../../provider/context.js";
|
|
2
3
|
import { BlockInput } from "../../forms/BlockInput/BlockInput.js";
|
|
3
4
|
import { useControllableState } from "../../../hooks/useControllableState.js";
|
|
4
5
|
import { InventorySlot } from "../../inventory/InventorySlot/InventorySlot.js";
|
|
@@ -14,7 +15,8 @@ var filled = (node) => node !== void 0 && node !== null && node !== false;
|
|
|
14
15
|
* Anvil: rename field, two input slots combining into a result, and the
|
|
15
16
|
* experience cost — red when the player cannot afford it, "Too Expensive!" at the cap.
|
|
16
17
|
*/
|
|
17
|
-
var Anvil = forwardRef(function Anvil({ left, right, result, name, defaultName = "", onNameChange, cost, playerLevel, maxCost = 40, onTakeResult, label
|
|
18
|
+
var Anvil = forwardRef(function Anvil({ left, right, result, name, defaultName = "", onNameChange, cost, playerLevel, maxCost = 40, onTakeResult, label, className, ...rest }, ref) {
|
|
19
|
+
const m = useBlockUIMessages();
|
|
18
20
|
const costId = useId();
|
|
19
21
|
const [itemName, setItemName] = useControllableState({
|
|
20
22
|
value: name,
|
|
@@ -27,7 +29,7 @@ var Anvil = forwardRef(function Anvil({ left, right, result, name, defaultName =
|
|
|
27
29
|
return /* @__PURE__ */ jsxs("div", {
|
|
28
30
|
ref,
|
|
29
31
|
role: "group",
|
|
30
|
-
"aria-label": label,
|
|
32
|
+
"aria-label": label ?? m.anvil.label,
|
|
31
33
|
"data-cost": costState,
|
|
32
34
|
className: cx(Anvil_module_default.anvil, className),
|
|
33
35
|
...rest,
|
|
@@ -39,7 +41,7 @@ var Anvil = forwardRef(function Anvil({ left, right, result, name, defaultName =
|
|
|
39
41
|
"aria-hidden": "true",
|
|
40
42
|
children: /* @__PURE__ */ jsx(AnvilIcon, { size: 32 })
|
|
41
43
|
}), /* @__PURE__ */ jsx(BlockInput, {
|
|
42
|
-
label:
|
|
44
|
+
label: m.anvil.itemName,
|
|
43
45
|
value: itemName,
|
|
44
46
|
onChange: (event) => setItemName(event.target.value),
|
|
45
47
|
disabled: !hasLeft,
|
|
@@ -52,7 +54,7 @@ var Anvil = forwardRef(function Anvil({ left, right, result, name, defaultName =
|
|
|
52
54
|
children: [
|
|
53
55
|
/* @__PURE__ */ jsx(InventorySlot, {
|
|
54
56
|
size: "lg",
|
|
55
|
-
label: hasLeft ? void 0 :
|
|
57
|
+
label: hasLeft ? void 0 : m.common.emptyNamed(m.anvil.item),
|
|
56
58
|
children: left
|
|
57
59
|
}),
|
|
58
60
|
/* @__PURE__ */ jsx("span", {
|
|
@@ -62,7 +64,7 @@ var Anvil = forwardRef(function Anvil({ left, right, result, name, defaultName =
|
|
|
62
64
|
}),
|
|
63
65
|
/* @__PURE__ */ jsx(InventorySlot, {
|
|
64
66
|
size: "lg",
|
|
65
|
-
label: filled(right) ? void 0 :
|
|
67
|
+
label: filled(right) ? void 0 : m.common.emptyNamed(m.anvil.material),
|
|
66
68
|
children: right
|
|
67
69
|
}),
|
|
68
70
|
/* @__PURE__ */ jsx("span", {
|
|
@@ -71,7 +73,7 @@ var Anvil = forwardRef(function Anvil({ left, right, result, name, defaultName =
|
|
|
71
73
|
children: /* @__PURE__ */ jsx(ArrowIcon, { size: 32 })
|
|
72
74
|
}),
|
|
73
75
|
/* @__PURE__ */ jsx(CraftingResult, {
|
|
74
|
-
label:
|
|
76
|
+
label: m.common.result,
|
|
75
77
|
onTake: blocked ? void 0 : onTakeResult,
|
|
76
78
|
disabled: blocked,
|
|
77
79
|
"aria-describedby": costState === "none" ? void 0 : costId,
|
|
@@ -83,7 +85,7 @@ var Anvil = forwardRef(function Anvil({ left, right, result, name, defaultName =
|
|
|
83
85
|
id: costId,
|
|
84
86
|
className: Anvil_module_default.cost,
|
|
85
87
|
"aria-live": "polite",
|
|
86
|
-
children: costState === "tooExpensive" ?
|
|
88
|
+
children: costState === "tooExpensive" ? m.anvil.tooExpensive : m.anvil.cost(String(cost)) + (costState === "unaffordable" ? m.anvil.notEnoughLevels : "")
|
|
87
89
|
}) : null
|
|
88
90
|
]
|
|
89
91
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Anvil.js","names":["styles"],"sources":["../../../../src/components/crafting/Anvil/Anvil.tsx"],"sourcesContent":["import { AnvilIcon, ArrowIcon, PlusIcon } from \"@malilion/block-ui-icons\";\nimport { forwardRef, useId } from \"react\";\nimport { useControllableState } from \"../../../hooks/useControllableState\";\nimport { cx } from \"../../../utils/cx\";\nimport { BlockInput } from \"../../forms/BlockInput/BlockInput\";\nimport { InventorySlot } from \"../../inventory/InventorySlot/InventorySlot\";\nimport { CraftingResult } from \"../CraftingResult/CraftingResult\";\nimport styles from \"./Anvil.module.css\";\nimport type { AnvilProps } from \"./Anvil.types\";\nimport { anvilCostState } from \"./Anvil.utils\";\n\nconst filled = (node: unknown) => node !== undefined && node !== null && node !== false;\n\n/**\n * Anvil: rename field, two input slots combining into a result, and the\n * experience cost — red when the player cannot afford it, \"Too Expensive!\" at the cap.\n */\nexport const Anvil = forwardRef<HTMLDivElement, AnvilProps>(function Anvil(\n {\n left,\n right,\n result,\n name,\n defaultName = \"\",\n onNameChange,\n cost,\n playerLevel,\n maxCost = 40,\n onTakeResult,\n label
|
|
1
|
+
{"version":3,"file":"Anvil.js","names":["styles"],"sources":["../../../../src/components/crafting/Anvil/Anvil.tsx"],"sourcesContent":["import { AnvilIcon, ArrowIcon, PlusIcon } from \"@malilion/block-ui-icons\";\nimport { forwardRef, useId } from \"react\";\nimport { useControllableState } from \"../../../hooks/useControllableState\";\nimport { useBlockUIMessages } from \"../../../provider/context\";\nimport { cx } from \"../../../utils/cx\";\nimport { BlockInput } from \"../../forms/BlockInput/BlockInput\";\nimport { InventorySlot } from \"../../inventory/InventorySlot/InventorySlot\";\nimport { CraftingResult } from \"../CraftingResult/CraftingResult\";\nimport styles from \"./Anvil.module.css\";\nimport type { AnvilProps } from \"./Anvil.types\";\nimport { anvilCostState } from \"./Anvil.utils\";\n\nconst filled = (node: unknown) => node !== undefined && node !== null && node !== false;\n\n/**\n * Anvil: rename field, two input slots combining into a result, and the\n * experience cost — red when the player cannot afford it, \"Too Expensive!\" at the cap.\n */\nexport const Anvil = forwardRef<HTMLDivElement, AnvilProps>(function Anvil(\n {\n left,\n right,\n result,\n name,\n defaultName = \"\",\n onNameChange,\n cost,\n playerLevel,\n maxCost = 40,\n onTakeResult,\n label,\n className,\n ...rest\n },\n ref,\n) {\n const m = useBlockUIMessages();\n const costId = useId();\n const [itemName, setItemName] = useControllableState({\n value: name,\n defaultValue: defaultName,\n onChange: onNameChange,\n });\n const costState = anvilCostState(cost, playerLevel, maxCost);\n const blocked = costState === \"tooExpensive\" || costState === \"unaffordable\";\n const hasLeft = filled(left);\n\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-label={label ?? m.anvil.label}\n data-cost={costState}\n className={cx(styles.anvil, className)}\n {...rest}\n >\n <div className={styles.header}>\n <span className={styles.icon} aria-hidden=\"true\">\n <AnvilIcon size={32} />\n </span>\n <BlockInput\n label={m.anvil.itemName}\n value={itemName}\n onChange={(event) => setItemName(event.target.value)}\n disabled={!hasLeft}\n maxLength={50}\n wrapperClassName={styles.name}\n />\n </div>\n <div className={styles.layout}>\n <InventorySlot size=\"lg\" label={hasLeft ? undefined : m.common.emptyNamed(m.anvil.item)}>\n {left}\n </InventorySlot>\n <span className={styles.symbol} aria-hidden=\"true\">\n <PlusIcon size={24} />\n </span>\n <InventorySlot\n size=\"lg\"\n label={filled(right) ? undefined : m.common.emptyNamed(m.anvil.material)}\n >\n {right}\n </InventorySlot>\n <span className={styles.symbol} aria-hidden=\"true\">\n <ArrowIcon size={32} />\n </span>\n <CraftingResult\n label={m.common.result}\n onTake={blocked ? undefined : onTakeResult}\n disabled={blocked}\n aria-describedby={costState === \"none\" ? undefined : costId}\n >\n {result}\n </CraftingResult>\n </div>\n {costState !== \"none\" ? (\n <p id={costId} className={styles.cost} aria-live=\"polite\">\n {costState === \"tooExpensive\"\n ? m.anvil.tooExpensive\n : m.anvil.cost(String(cost)) +\n (costState === \"unaffordable\" ? m.anvil.notEnoughLevels : \"\")}\n </p>\n ) : null}\n </div>\n );\n});\n"],"mappings":";;;;;;;;;;;;AAYA,IAAM,UAAU,SAAkB,SAAS,KAAA,KAAa,SAAS,QAAQ,SAAS;;;;;AAMlF,IAAa,QAAQ,WAAuC,SAAS,MACnE,EACE,MACA,OACA,QACA,MACA,cAAc,IACd,cACA,MACA,aACA,UAAU,IACV,cACA,OACA,WACA,GAAG,QAEL,KACA;CACA,MAAM,IAAI,mBAAmB;CAC7B,MAAM,SAAS,MAAM;CACrB,MAAM,CAAC,UAAU,eAAe,qBAAqB;EACnD,OAAO;EACP,cAAc;EACd,UAAU;CACZ,CAAC;CACD,MAAM,YAAY,eAAe,MAAM,aAAa,OAAO;CAC3D,MAAM,UAAU,cAAc,kBAAkB,cAAc;CAC9D,MAAM,UAAU,OAAO,IAAI;CAE3B,OACE,qBAAC,OAAD;EACO;EACL,MAAK;EACL,cAAY,SAAS,EAAE,MAAM;EAC7B,aAAW;EACX,WAAW,GAAGA,qBAAO,OAAO,SAAS;EACrC,GAAI;EANN,UAAA;GAQE,qBAAC,OAAD;IAAK,WAAWA,qBAAO;IAAvB,UAAA,CACE,oBAAC,QAAD;KAAM,WAAWA,qBAAO;KAAM,eAAY;KACxC,UAAA,oBAAC,WAAD,EAAW,MAAM,GAAK,CAAA;IAClB,CAAA,GACN,oBAAC,YAAD;KACE,OAAO,EAAE,MAAM;KACf,OAAO;KACP,WAAW,UAAU,YAAY,MAAM,OAAO,KAAK;KACnD,UAAU,CAAC;KACX,WAAW;KACX,kBAAkBA,qBAAO;IAC1B,CAAA,CACE;;GACL,qBAAC,OAAD;IAAK,WAAWA,qBAAO;IAAvB,UAAA;KACE,oBAAC,eAAD;MAAe,MAAK;MAAK,OAAO,UAAU,KAAA,IAAY,EAAE,OAAO,WAAW,EAAE,MAAM,IAAI;MACnF,UAAA;KACY,CAAA;KACf,oBAAC,QAAD;MAAM,WAAWA,qBAAO;MAAQ,eAAY;MAC1C,UAAA,oBAAC,UAAD,EAAU,MAAM,GAAK,CAAA;KACjB,CAAA;KACN,oBAAC,eAAD;MACE,MAAK;MACL,OAAO,OAAO,KAAK,IAAI,KAAA,IAAY,EAAE,OAAO,WAAW,EAAE,MAAM,QAAQ;MAEtE,UAAA;KACY,CAAA;KACf,oBAAC,QAAD;MAAM,WAAWA,qBAAO;MAAQ,eAAY;MAC1C,UAAA,oBAAC,WAAD,EAAW,MAAM,GAAK,CAAA;KAClB,CAAA;KACN,oBAAC,gBAAD;MACE,OAAO,EAAE,OAAO;MAChB,QAAQ,UAAU,KAAA,IAAY;MAC9B,UAAU;MACV,oBAAkB,cAAc,SAAS,KAAA,IAAY;MAEpD,UAAA;KACa,CAAA;IACb;;GACJ,cAAc,SACb,oBAAC,KAAD;IAAG,IAAI;IAAQ,WAAWA,qBAAO;IAAM,aAAU;IAC9C,UAAA,cAAc,iBACX,EAAE,MAAM,eACR,EAAE,MAAM,KAAK,OAAO,IAAI,CAAC,KACxB,cAAc,iBAAiB,EAAE,MAAM,kBAAkB;GAC7D,CAAA,IACD;EACD;;AAET,CAAC"}
|
|
@@ -19,7 +19,7 @@ export interface AnvilProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
19
19
|
maxCost?: number;
|
|
20
20
|
/** Called when the result is taken. */
|
|
21
21
|
onTakeResult?: () => void;
|
|
22
|
-
/** Accessible name. @default "Anvil" */
|
|
22
|
+
/** Accessible name. @default locale `anvil.label` ("Anvil") */
|
|
23
23
|
label?: string;
|
|
24
24
|
}
|
|
25
25
|
//# sourceMappingURL=Anvil.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Anvil.types.d.ts","sourceRoot":"","sources":["../../../../src/components/crafting/Anvil/Anvil.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,MAAM,WAAW,UAAW,SAAQ,cAAc,CAAC,cAAc,CAAC;IAChE,sCAAsC;IACtC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,kDAAkD;IAClD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,mBAAmB;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2FAA2F;IAC3F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B
|
|
1
|
+
{"version":3,"file":"Anvil.types.d.ts","sourceRoot":"","sources":["../../../../src/components/crafting/Anvil/Anvil.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,MAAM,WAAW,UAAW,SAAQ,cAAc,CAAC,cAAc,CAAC;IAChE,sCAAsC;IACtC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,kDAAkD;IAClD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,mBAAmB;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2FAA2F;IAC3F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrewingStand.d.ts","sourceRoot":"","sources":["../../../../src/components/crafting/BrewingStand/BrewingStand.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BrewingStand.d.ts","sourceRoot":"","sources":["../../../../src/components/crafting/BrewingStand/BrewingStand.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG9D;;;GAGG;AACH,eAAO,MAAM,YAAY,8GA4GvB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { cx } from "../../../utils/cx.js";
|
|
2
|
+
import { useBlockUIMessages } from "../../../provider/context.js";
|
|
2
3
|
import { clamp } from "../../../utils/number.js";
|
|
3
4
|
import { InventorySlot } from "../../inventory/InventorySlot/InventorySlot.js";
|
|
4
5
|
import BrewingStand_module_default from "./BrewingStand.module.js";
|
|
@@ -7,22 +8,12 @@ import { forwardRef } from "react";
|
|
|
7
8
|
import { BlazePowderIcon, PotionIcon } from "@malilion/block-ui-icons";
|
|
8
9
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
10
|
//#region src/components/crafting/BrewingStand/BrewingStand.tsx
|
|
10
|
-
var defaultLabels = {
|
|
11
|
-
idle: "Idle",
|
|
12
|
-
brewing: "Brewing",
|
|
13
|
-
complete: "Complete",
|
|
14
|
-
noFuel: "No fuel"
|
|
15
|
-
};
|
|
16
|
-
var BOTTLE_NAMES = [
|
|
17
|
-
"Left bottle",
|
|
18
|
-
"Middle bottle",
|
|
19
|
-
"Right bottle"
|
|
20
|
-
];
|
|
21
11
|
/**
|
|
22
12
|
* Brewing stand: fuel with its gauge, the ingredient on top, a progress bar
|
|
23
13
|
* filling downwards and three bottle slots. States: idle, brewing, complete, no fuel.
|
|
24
14
|
*/
|
|
25
|
-
var BrewingStand = forwardRef(function BrewingStand({ ingredient, fuel, bottles = [], progress = 0, fuelLevel = 0, state, statusLabels, label
|
|
15
|
+
var BrewingStand = forwardRef(function BrewingStand({ ingredient, fuel, bottles = [], progress = 0, fuelLevel = 0, state, statusLabels, label, className, ...rest }, ref) {
|
|
16
|
+
const m = useBlockUIMessages();
|
|
26
17
|
const current = state ?? getBrewingState({
|
|
27
18
|
ingredient,
|
|
28
19
|
bottles,
|
|
@@ -32,14 +23,14 @@ var BrewingStand = forwardRef(function BrewingStand({ ingredient, fuel, bottles
|
|
|
32
23
|
const pct = clamp(progress, 0, 100);
|
|
33
24
|
const fuelPct = clamp(fuelLevel, 0, 100);
|
|
34
25
|
const labels = {
|
|
35
|
-
...
|
|
26
|
+
...m.brewingStand.status,
|
|
36
27
|
...statusLabels
|
|
37
28
|
};
|
|
38
29
|
const statusText = current === "brewing" ? `${labels.brewing} ${Math.round(pct)}%` : labels[current];
|
|
39
30
|
return /* @__PURE__ */ jsxs("div", {
|
|
40
31
|
ref,
|
|
41
32
|
role: "group",
|
|
42
|
-
"aria-label": label,
|
|
33
|
+
"aria-label": label ?? m.brewingStand.label,
|
|
43
34
|
"data-state": current,
|
|
44
35
|
className: cx(BrewingStand_module_default.stand, className),
|
|
45
36
|
style: {
|
|
@@ -53,7 +44,7 @@ var BrewingStand = forwardRef(function BrewingStand({ ingredient, fuel, bottles
|
|
|
53
44
|
className: BrewingStand_module_default.fuel,
|
|
54
45
|
children: [/* @__PURE__ */ jsx(InventorySlot, {
|
|
55
46
|
size: "md",
|
|
56
|
-
label: isFilled(fuel) ? void 0 :
|
|
47
|
+
label: isFilled(fuel) ? void 0 : m.common.emptyNamed(m.common.fuel),
|
|
57
48
|
children: fuel ?? /* @__PURE__ */ jsx("span", {
|
|
58
49
|
className: BrewingStand_module_default.ghost,
|
|
59
50
|
"aria-hidden": "true",
|
|
@@ -61,7 +52,7 @@ var BrewingStand = forwardRef(function BrewingStand({ ingredient, fuel, bottles
|
|
|
61
52
|
})
|
|
62
53
|
}), /* @__PURE__ */ jsx("div", {
|
|
63
54
|
role: "meter",
|
|
64
|
-
"aria-label":
|
|
55
|
+
"aria-label": m.common.fuel,
|
|
65
56
|
"aria-valuemin": 0,
|
|
66
57
|
"aria-valuemax": 100,
|
|
67
58
|
"aria-valuenow": Math.round(fuelPct),
|
|
@@ -73,12 +64,12 @@ var BrewingStand = forwardRef(function BrewingStand({ ingredient, fuel, bottles
|
|
|
73
64
|
children: [
|
|
74
65
|
/* @__PURE__ */ jsx(InventorySlot, {
|
|
75
66
|
size: "lg",
|
|
76
|
-
label: isFilled(ingredient) ? void 0 :
|
|
67
|
+
label: isFilled(ingredient) ? void 0 : m.common.emptyNamed(m.brewingStand.ingredient),
|
|
77
68
|
children: ingredient
|
|
78
69
|
}),
|
|
79
70
|
/* @__PURE__ */ jsx("div", {
|
|
80
71
|
role: "progressbar",
|
|
81
|
-
"aria-label":
|
|
72
|
+
"aria-label": m.brewingStand.progress,
|
|
82
73
|
"aria-valuemin": 0,
|
|
83
74
|
"aria-valuemax": 100,
|
|
84
75
|
"aria-valuenow": Math.round(pct),
|
|
@@ -87,11 +78,11 @@ var BrewingStand = forwardRef(function BrewingStand({ ingredient, fuel, bottles
|
|
|
87
78
|
}),
|
|
88
79
|
/* @__PURE__ */ jsx("div", {
|
|
89
80
|
className: BrewingStand_module_default.bottles,
|
|
90
|
-
children:
|
|
81
|
+
children: m.brewingStand.bottles.map((name, index) => {
|
|
91
82
|
const bottle = bottles[index];
|
|
92
83
|
return /* @__PURE__ */ jsx(InventorySlot, {
|
|
93
84
|
size: "lg",
|
|
94
|
-
label: isFilled(bottle) ? void 0 :
|
|
85
|
+
label: isFilled(bottle) ? void 0 : m.common.emptyNamed(name),
|
|
95
86
|
className: BrewingStand_module_default.bottle,
|
|
96
87
|
children: isFilled(bottle) ? bottle : /* @__PURE__ */ jsx("span", {
|
|
97
88
|
className: BrewingStand_module_default.ghost,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrewingStand.js","names":["styles"],"sources":["../../../../src/components/crafting/BrewingStand/BrewingStand.tsx"],"sourcesContent":["import { BlazePowderIcon, PotionIcon } from \"@malilion/block-ui-icons\";\nimport { forwardRef, type CSSProperties } from \"react\";\nimport { cx } from \"../../../utils/cx\";\nimport { clamp } from \"../../../utils/number\";\nimport { InventorySlot } from \"../../inventory/InventorySlot/InventorySlot\";\nimport styles from \"./BrewingStand.module.css\";\nimport type { BrewingStandProps
|
|
1
|
+
{"version":3,"file":"BrewingStand.js","names":["styles"],"sources":["../../../../src/components/crafting/BrewingStand/BrewingStand.tsx"],"sourcesContent":["import { BlazePowderIcon, PotionIcon } from \"@malilion/block-ui-icons\";\nimport { forwardRef, type CSSProperties } from \"react\";\nimport { cx } from \"../../../utils/cx\";\nimport { clamp } from \"../../../utils/number\";\nimport { useBlockUIMessages } from \"../../../provider/context\";\nimport { InventorySlot } from \"../../inventory/InventorySlot/InventorySlot\";\nimport styles from \"./BrewingStand.module.css\";\nimport type { BrewingStandProps } from \"./BrewingStand.types\";\nimport { getBrewingState, isFilled } from \"./BrewingStand.utils\";\n\n/**\n * Brewing stand: fuel with its gauge, the ingredient on top, a progress bar\n * filling downwards and three bottle slots. States: idle, brewing, complete, no fuel.\n */\nexport const BrewingStand = forwardRef<HTMLDivElement, BrewingStandProps>(function BrewingStand(\n {\n ingredient,\n fuel,\n bottles = [],\n progress = 0,\n fuelLevel = 0,\n state,\n statusLabels,\n label,\n className,\n ...rest\n },\n ref,\n) {\n const m = useBlockUIMessages();\n const current = state ?? getBrewingState({ ingredient, bottles, progress, fuelLevel });\n const pct = clamp(progress, 0, 100);\n const fuelPct = clamp(fuelLevel, 0, 100);\n const labels = { ...m.brewingStand.status, ...statusLabels };\n const statusText =\n current === \"brewing\" ? `${labels.brewing} ${Math.round(pct)}%` : labels[current];\n\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-label={label ?? m.brewingStand.label}\n data-state={current}\n className={cx(styles.stand, className)}\n style={\n {\n \"--block-brew-progress\": `${pct}%`,\n \"--block-brew-fuel\": `${fuelPct}%`,\n } as CSSProperties\n }\n {...rest}\n >\n <div className={styles.layout}>\n <div className={styles.fuel}>\n <InventorySlot\n size=\"md\"\n label={isFilled(fuel) ? undefined : m.common.emptyNamed(m.common.fuel)}\n >\n {fuel ?? (\n <span className={styles.ghost} aria-hidden=\"true\">\n <BlazePowderIcon size={24} />\n </span>\n )}\n </InventorySlot>\n <div\n role=\"meter\"\n aria-label={m.common.fuel}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-valuenow={Math.round(fuelPct)}\n className={styles.gauge}\n >\n <span className={styles.gaugeFill} />\n </div>\n </div>\n <div className={styles.center}>\n <InventorySlot\n size=\"lg\"\n label={\n isFilled(ingredient) ? undefined : m.common.emptyNamed(m.brewingStand.ingredient)\n }\n >\n {ingredient}\n </InventorySlot>\n <div\n role=\"progressbar\"\n aria-label={m.brewingStand.progress}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-valuenow={Math.round(pct)}\n className={styles.progress}\n >\n <span className={styles.progressFill} />\n </div>\n <div className={styles.bottles}>\n {m.brewingStand.bottles.map((name, index) => {\n const bottle = bottles[index];\n return (\n <InventorySlot\n key={name}\n size=\"lg\"\n label={isFilled(bottle) ? undefined : m.common.emptyNamed(name)}\n className={styles.bottle}\n >\n {isFilled(bottle) ? (\n bottle\n ) : (\n <span className={styles.ghost} aria-hidden=\"true\">\n <PotionIcon size={32} />\n </span>\n )}\n </InventorySlot>\n );\n })}\n </div>\n </div>\n </div>\n <p className={styles.status} aria-live=\"polite\">\n {statusText}\n </p>\n </div>\n );\n});\n"],"mappings":";;;;;;;;;;;;;;AAcA,IAAa,eAAe,WAA8C,SAAS,aACjF,EACE,YACA,MACA,UAAU,CAAC,GACX,WAAW,GACX,YAAY,GACZ,OACA,cACA,OACA,WACA,GAAG,QAEL,KACA;CACA,MAAM,IAAI,mBAAmB;CAC7B,MAAM,UAAU,SAAS,gBAAgB;EAAE;EAAY;EAAS;EAAU;CAAU,CAAC;CACrF,MAAM,MAAM,MAAM,UAAU,GAAG,GAAG;CAClC,MAAM,UAAU,MAAM,WAAW,GAAG,GAAG;CACvC,MAAM,SAAS;EAAE,GAAG,EAAE,aAAa;EAAQ,GAAG;CAAa;CAC3D,MAAM,aACJ,YAAY,YAAY,GAAG,OAAO,QAAQ,GAAG,KAAK,MAAM,GAAG,EAAE,KAAK,OAAO;CAE3E,OACE,qBAAC,OAAD;EACO;EACL,MAAK;EACL,cAAY,SAAS,EAAE,aAAa;EACpC,cAAY;EACZ,WAAW,GAAGA,4BAAO,OAAO,SAAS;EACrC,OACE;GACE,yBAAyB,GAAG,IAAI;GAChC,qBAAqB,GAAG,QAAQ;EAClC;EAEF,GAAI;EAZN,UAAA,CAcE,qBAAC,OAAD;GAAK,WAAWA,4BAAO;GAAvB,UAAA,CACE,qBAAC,OAAD;IAAK,WAAWA,4BAAO;IAAvB,UAAA,CACE,oBAAC,eAAD;KACE,MAAK;KACL,OAAO,SAAS,IAAI,IAAI,KAAA,IAAY,EAAE,OAAO,WAAW,EAAE,OAAO,IAAI;KAEpE,UAAA,QACC,oBAAC,QAAD;MAAM,WAAWA,4BAAO;MAAO,eAAY;MACzC,UAAA,oBAAC,iBAAD,EAAiB,MAAM,GAAK,CAAA;KACxB,CAAA;IAEK,CAAA,GACf,oBAAC,OAAD;KACE,MAAK;KACL,cAAY,EAAE,OAAO;KACrB,iBAAe;KACf,iBAAe;KACf,iBAAe,KAAK,MAAM,OAAO;KACjC,WAAWA,4BAAO;KAElB,UAAA,oBAAC,QAAD,EAAM,WAAWA,4BAAO,UAAY,CAAA;IACjC,CAAA,CACF;GACL,CAAA,GAAA,qBAAC,OAAD;IAAK,WAAWA,4BAAO;IAAvB,UAAA;KACE,oBAAC,eAAD;MACE,MAAK;MACL,OACE,SAAS,UAAU,IAAI,KAAA,IAAY,EAAE,OAAO,WAAW,EAAE,aAAa,UAAU;MAGjF,UAAA;KACY,CAAA;KACf,oBAAC,OAAD;MACE,MAAK;MACL,cAAY,EAAE,aAAa;MAC3B,iBAAe;MACf,iBAAe;MACf,iBAAe,KAAK,MAAM,GAAG;MAC7B,WAAWA,4BAAO;MAElB,UAAA,oBAAC,QAAD,EAAM,WAAWA,4BAAO,aAAe,CAAA;KACpC,CAAA;KACL,oBAAC,OAAD;MAAK,WAAWA,4BAAO;MACpB,UAAA,EAAE,aAAa,QAAQ,KAAK,MAAM,UAAU;OAC3C,MAAM,SAAS,QAAQ;OACvB,OACE,oBAAC,eAAD;QAEE,MAAK;QACL,OAAO,SAAS,MAAM,IAAI,KAAA,IAAY,EAAE,OAAO,WAAW,IAAI;QAC9D,WAAWA,4BAAO;QAEjB,UAAA,SAAS,MAAM,IACd,SAEA,oBAAC,QAAD;SAAM,WAAWA,4BAAO;SAAO,eAAY;SACzC,UAAA,oBAAC,YAAD,EAAY,MAAM,GAAK,CAAA;QACnB,CAAA;OAEK,GAZR,IAYQ;MAEnB,CAAC;KACE,CAAA;IACF;GACF,CAAA,CAAA;EACL,CAAA,GAAA,oBAAC,KAAD;GAAG,WAAWA,4BAAO;GAAQ,aAAU;GACpC,UAAA;EACA,CAAA,CACA;;AAET,CAAC"}
|
|
@@ -16,7 +16,7 @@ export interface BrewingStandProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
16
16
|
state?: BrewingState;
|
|
17
17
|
/** Override status texts. */
|
|
18
18
|
statusLabels?: Partial<Record<BrewingState, string>>;
|
|
19
|
-
/** Accessible name. @default "Brewing stand" */
|
|
19
|
+
/** Accessible name. @default locale `brewingStand.label` ("Brewing stand") */
|
|
20
20
|
label?: string;
|
|
21
21
|
}
|
|
22
22
|
//# sourceMappingURL=BrewingStand.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrewingStand.types.d.ts","sourceRoot":"","sources":["../../../../src/components/crafting/BrewingStand/BrewingStand.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,eAAO,MAAM,aAAa,oDAAqD,CAAC;AAEhF,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACvE,4CAA4C;IAC5C,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,gCAAgC;IAChC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IAC/C,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,6BAA6B;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,
|
|
1
|
+
{"version":3,"file":"BrewingStand.types.d.ts","sourceRoot":"","sources":["../../../../src/components/crafting/BrewingStand/BrewingStand.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,eAAO,MAAM,aAAa,oDAAqD,CAAC;AAEhF,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACvE,4CAA4C;IAC5C,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,gCAAgC;IAChC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IAC/C,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,6BAA6B;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrewingStand.types.js","names":[],"sources":["../../../../src/components/crafting/BrewingStand/BrewingStand.types.ts"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from \"react\";\n\nexport const brewingStates = [\"idle\", \"brewing\", \"complete\", \"noFuel\"] as const;\n\nexport type BrewingState = (typeof brewingStates)[number];\n\nexport interface BrewingStandProps extends HTMLAttributes<HTMLDivElement> {\n /** Ingredient on top (e.g. nether wart). */\n ingredient?: ReactNode;\n /** Fuel slot (blaze powder). */\n fuel?: ReactNode;\n /** Up to three bottles, left to right. */\n bottles?: [ReactNode?, ReactNode?, ReactNode?];\n /** Brewing progress 0–100. @default 0 */\n progress?: number;\n /** Remaining fuel 0–100. @default 0 */\n fuelLevel?: number;\n /** Override the derived state. */\n state?: BrewingState;\n /** Override status texts. */\n statusLabels?: Partial<Record<BrewingState, string>>;\n /** Accessible name. @default \"Brewing stand\" */\n label?: string;\n}\n"],"mappings":";AAEA,IAAa,gBAAgB;CAAC;CAAQ;CAAW;CAAY;AAAQ"}
|
|
1
|
+
{"version":3,"file":"BrewingStand.types.js","names":[],"sources":["../../../../src/components/crafting/BrewingStand/BrewingStand.types.ts"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from \"react\";\n\nexport const brewingStates = [\"idle\", \"brewing\", \"complete\", \"noFuel\"] as const;\n\nexport type BrewingState = (typeof brewingStates)[number];\n\nexport interface BrewingStandProps extends HTMLAttributes<HTMLDivElement> {\n /** Ingredient on top (e.g. nether wart). */\n ingredient?: ReactNode;\n /** Fuel slot (blaze powder). */\n fuel?: ReactNode;\n /** Up to three bottles, left to right. */\n bottles?: [ReactNode?, ReactNode?, ReactNode?];\n /** Brewing progress 0–100. @default 0 */\n progress?: number;\n /** Remaining fuel 0–100. @default 0 */\n fuelLevel?: number;\n /** Override the derived state. */\n state?: BrewingState;\n /** Override status texts. */\n statusLabels?: Partial<Record<BrewingState, string>>;\n /** Accessible name. @default locale `brewingStand.label` (\"Brewing stand\") */\n label?: string;\n}\n"],"mappings":";AAEA,IAAa,gBAAgB;CAAC;CAAQ;CAAW;CAAY;AAAQ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CraftingGrid.d.ts","sourceRoot":"","sources":["../../../../src/components/crafting/CraftingGrid/CraftingGrid.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CraftingGrid.d.ts","sourceRoot":"","sources":["../../../../src/components/crafting/CraftingGrid/CraftingGrid.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,YAAY,8GAwBvB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { cx } from "../../../utils/cx.js";
|
|
2
|
+
import { useBlockUIMessages } from "../../../provider/context.js";
|
|
2
3
|
import { InventoryGrid } from "../../inventory/InventoryGrid/InventoryGrid.js";
|
|
3
4
|
import { CraftingSlot } from "../CraftingSlot/CraftingSlot.js";
|
|
4
5
|
import CraftingGrid_module_default from "./CraftingGrid.module.js";
|
|
@@ -9,7 +10,8 @@ import { jsx } from "react/jsx-runtime";
|
|
|
9
10
|
* 2 × 2 or 3 × 3 crafting input grid. Missing slots are filled with empty
|
|
10
11
|
* `CraftingSlot`s; keyboard behaviour matches `InventoryGrid`.
|
|
11
12
|
*/
|
|
12
|
-
var CraftingGrid = forwardRef(function CraftingGrid({ size = 3, slotSize = "lg", label
|
|
13
|
+
var CraftingGrid = forwardRef(function CraftingGrid({ size = 3, slotSize = "lg", label, className, children, ...rest }, ref) {
|
|
14
|
+
const m = useBlockUIMessages();
|
|
13
15
|
const filled = Children.toArray(children);
|
|
14
16
|
const padded = [...filled];
|
|
15
17
|
for (let i = filled.length; i < size * size; i += 1) padded.push(/* @__PURE__ */ jsx(CraftingSlot, {}, `block-crafting-empty-${i}`));
|
|
@@ -17,7 +19,7 @@ var CraftingGrid = forwardRef(function CraftingGrid({ size = 3, slotSize = "lg",
|
|
|
17
19
|
ref,
|
|
18
20
|
columns: size,
|
|
19
21
|
slotSize,
|
|
20
|
-
label,
|
|
22
|
+
label: label ?? m.craftingGrid.label,
|
|
21
23
|
"data-crafting-size": size,
|
|
22
24
|
className: cx(CraftingGrid_module_default.craftingGrid, className),
|
|
23
25
|
...rest,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CraftingGrid.js","names":["styles"],"sources":["../../../../src/components/crafting/CraftingGrid/CraftingGrid.tsx"],"sourcesContent":["import { Children, forwardRef } from \"react\";\nimport { cx } from \"../../../utils/cx\";\nimport { InventoryGrid } from \"../../inventory/InventoryGrid/InventoryGrid\";\nimport { CraftingSlot } from \"../CraftingSlot/CraftingSlot\";\nimport styles from \"./CraftingGrid.module.css\";\nimport type { CraftingGridProps } from \"./CraftingGrid.types\";\n\n/**\n * 2 × 2 or 3 × 3 crafting input grid. Missing slots are filled with empty\n * `CraftingSlot`s; keyboard behaviour matches `InventoryGrid`.\n */\nexport const CraftingGrid = forwardRef<HTMLDivElement, CraftingGridProps>(function CraftingGrid(\n { size = 3, slotSize = \"lg\", label
|
|
1
|
+
{"version":3,"file":"CraftingGrid.js","names":["styles"],"sources":["../../../../src/components/crafting/CraftingGrid/CraftingGrid.tsx"],"sourcesContent":["import { Children, forwardRef } from \"react\";\nimport { cx } from \"../../../utils/cx\";\nimport { useBlockUIMessages } from \"../../../provider/context\";\nimport { InventoryGrid } from \"../../inventory/InventoryGrid/InventoryGrid\";\nimport { CraftingSlot } from \"../CraftingSlot/CraftingSlot\";\nimport styles from \"./CraftingGrid.module.css\";\nimport type { CraftingGridProps } from \"./CraftingGrid.types\";\n\n/**\n * 2 × 2 or 3 × 3 crafting input grid. Missing slots are filled with empty\n * `CraftingSlot`s; keyboard behaviour matches `InventoryGrid`.\n */\nexport const CraftingGrid = forwardRef<HTMLDivElement, CraftingGridProps>(function CraftingGrid(\n { size = 3, slotSize = \"lg\", label, className, children, ...rest },\n ref,\n) {\n const m = useBlockUIMessages();\n const filled = Children.toArray(children);\n const padded = [...filled];\n for (let i = filled.length; i < size * size; i += 1) {\n padded.push(<CraftingSlot key={`block-crafting-empty-${i}`} />);\n }\n\n return (\n <InventoryGrid\n ref={ref}\n columns={size}\n slotSize={slotSize}\n label={label ?? m.craftingGrid.label}\n data-crafting-size={size}\n className={cx(styles.craftingGrid, className)}\n {...rest}\n >\n {padded}\n </InventoryGrid>\n );\n});\n"],"mappings":";;;;;;;;;;;;AAYA,IAAa,eAAe,WAA8C,SAAS,aACjF,EAAE,OAAO,GAAG,WAAW,MAAM,OAAO,WAAW,UAAU,GAAG,QAC5D,KACA;CACA,MAAM,IAAI,mBAAmB;CAC7B,MAAM,SAAS,SAAS,QAAQ,QAAQ;CACxC,MAAM,SAAS,CAAC,GAAG,MAAM;CACzB,KAAK,IAAI,IAAI,OAAO,QAAQ,IAAI,OAAO,MAAM,KAAK,GAChD,OAAO,KAAK,oBAAC,cAAD,CAAiD,GAA9B,wBAAwB,GAAM,CAAC;CAGhE,OACE,oBAAC,eAAD;EACO;EACL,SAAS;EACC;EACV,OAAO,SAAS,EAAE,aAAa;EAC/B,sBAAoB;EACpB,WAAW,GAAGA,4BAAO,cAAc,SAAS;EAC5C,GAAI;EAEH,UAAA;CACY,CAAA;AAEnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CraftingResult.d.ts","sourceRoot":"","sources":["../../../../src/components/crafting/CraftingResult/CraftingResult.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CraftingResult.d.ts","sourceRoot":"","sources":["../../../../src/components/crafting/CraftingResult/CraftingResult.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,mGAAmG;AACnG,eAAO,MAAM,cAAc,gHA8B1B,CAAC"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { cx } from "../../../utils/cx.js";
|
|
2
|
+
import { useBlockUIMessages } from "../../../provider/context.js";
|
|
2
3
|
import { InventorySlot } from "../../inventory/InventorySlot/InventorySlot.js";
|
|
3
4
|
import CraftingResult_module_default from "./CraftingResult.module.js";
|
|
4
5
|
import { forwardRef } from "react";
|
|
5
6
|
import { jsx } from "react/jsx-runtime";
|
|
6
7
|
//#region src/components/crafting/CraftingResult/CraftingResult.tsx
|
|
7
8
|
/** The large output slot of a crafting table or furnace. Result changes are announced politely. */
|
|
8
|
-
var CraftingResult = forwardRef(function CraftingResult({ children, onTake, label
|
|
9
|
+
var CraftingResult = forwardRef(function CraftingResult({ children, onTake, label: labelProp, disabled = false, className, ...rest }, ref) {
|
|
10
|
+
const m = useBlockUIMessages();
|
|
11
|
+
const label = labelProp ?? m.craftingResult.label;
|
|
9
12
|
const empty = children === void 0 || children === null || children === false;
|
|
10
13
|
return /* @__PURE__ */ jsx("div", {
|
|
11
14
|
ref,
|
|
@@ -20,7 +23,7 @@ var CraftingResult = forwardRef(function CraftingResult({ children, onTake, labe
|
|
|
20
23
|
disabled: disabled || empty,
|
|
21
24
|
onClick: onTake,
|
|
22
25
|
className: CraftingResult_module_default.slot,
|
|
23
|
-
label: empty ?
|
|
26
|
+
label: empty ? m.common.emptyNamed(label) : void 0,
|
|
24
27
|
children
|
|
25
28
|
})
|
|
26
29
|
});
|