@almadar/ui 5.38.0 → 5.40.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.
@@ -8179,7 +8179,7 @@ var init_Accordion = __esm({
8179
8179
  }
8180
8180
  });
8181
8181
  function ActionButton({
8182
- label,
8182
+ label = "Attack",
8183
8183
  icon,
8184
8184
  cooldown = 0,
8185
8185
  disabled = false,
@@ -8366,7 +8366,7 @@ var init_ControlButton = __esm({
8366
8366
  }
8367
8367
  });
8368
8368
  function ActionButtons({
8369
- buttons,
8369
+ buttons = DEFAULT_BUTTONS,
8370
8370
  onAction,
8371
8371
  actionEvent,
8372
8372
  layout = "horizontal",
@@ -8473,7 +8473,7 @@ function ActionButtons({
8473
8473
  button.id
8474
8474
  )) });
8475
8475
  }
8476
- var sizeMap3, layoutMap;
8476
+ var sizeMap3, layoutMap, DEFAULT_BUTTONS;
8477
8477
  var init_ActionButtons = __esm({
8478
8478
  "components/game/molecules/ActionButtons.tsx"() {
8479
8479
  "use client";
@@ -8490,6 +8490,11 @@ var init_ActionButtons = __esm({
8490
8490
  vertical: "flex flex-col gap-2",
8491
8491
  diamond: "grid grid-cols-3 gap-1"
8492
8492
  };
8493
+ DEFAULT_BUTTONS = [
8494
+ { id: "jump", label: "Jump", icon: "chevron-up", variant: "primary" },
8495
+ { id: "attack", label: "Attack", icon: "sword", variant: "secondary" },
8496
+ { id: "dodge", label: "Dodge", icon: "wind", variant: "ghost" }
8497
+ ];
8493
8498
  ActionButtons.displayName = "ActionButtons";
8494
8499
  }
8495
8500
  });
@@ -9580,7 +9585,7 @@ function IsometricCanvas({
9580
9585
  // Rendering options
9581
9586
  scale = 0.4,
9582
9587
  debug: debug2 = false,
9583
- backgroundImage = "https://almadar-kflow-assets.web.app/shared/scenes/dark_clouds_from_above.png",
9588
+ backgroundImage = "",
9584
9589
  showMinimap = true,
9585
9590
  enableCamera = true,
9586
9591
  unitScale = 1,
@@ -10719,10 +10724,10 @@ function BattleTemplate({
10719
10724
  entity,
10720
10725
  scale = 0.45,
10721
10726
  unitScale = 1,
10722
- tiles,
10723
- units,
10724
- features,
10725
- assetManifest,
10727
+ tiles = DEFAULT_BATTLE_TILES,
10728
+ units = DEFAULT_BATTLE_UNITS,
10729
+ features = DEFAULT_BATTLE_FEATURES,
10730
+ assetManifest = DEFAULT_BATTLE_MANIFEST,
10726
10731
  className
10727
10732
  }) {
10728
10733
  const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
@@ -10748,9 +10753,62 @@ function BattleTemplate({
10748
10753
  }
10749
10754
  );
10750
10755
  }
10756
+ var CDN, DEFAULT_BATTLE_TILES, DEFAULT_BATTLE_UNITS, DEFAULT_BATTLE_FEATURES, DEFAULT_BATTLE_MANIFEST;
10751
10757
  var init_BattleTemplate = __esm({
10752
10758
  "components/game/templates/BattleTemplate.tsx"() {
10753
10759
  init_BattleBoard();
10760
+ CDN = "https://almadar-kflow-assets.web.app/shared";
10761
+ DEFAULT_BATTLE_TILES = [
10762
+ { x: 0, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
10763
+ { x: 1, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
10764
+ { x: 2, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
10765
+ { x: 3, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
10766
+ { x: 4, y: 0, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
10767
+ { x: 0, y: 1, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
10768
+ { x: 1, y: 1, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
10769
+ { x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
10770
+ { x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
10771
+ { x: 4, y: 1, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
10772
+ { x: 0, y: 2, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
10773
+ { x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
10774
+ { x: 2, y: 2, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
10775
+ { x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
10776
+ { x: 4, y: 2, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
10777
+ { x: 0, y: 3, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
10778
+ { x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
10779
+ { x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png` },
10780
+ { x: 3, y: 3, terrain: "dirt", passable: true, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png` },
10781
+ { x: 4, y: 3, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
10782
+ { x: 0, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
10783
+ { x: 1, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
10784
+ { x: 2, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
10785
+ { x: 3, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` },
10786
+ { x: 4, y: 4, terrain: "stone", passable: false, terrainSprite: `${CDN}/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png` }
10787
+ ];
10788
+ DEFAULT_BATTLE_UNITS = [
10789
+ { id: "u1", position: { x: 1, y: 1 }, unitType: "worker", name: "Worker", team: "player", health: 10, maxHealth: 10, sprite: `${CDN}/sprite-sheets/amir-sprite-sheet-se.png` },
10790
+ { id: "u2", position: { x: 3, y: 3 }, unitType: "guardian", name: "Guardian", team: "enemy", health: 8, maxHealth: 10, sprite: `${CDN}/sprite-sheets/destroyer-sprite-sheet-sw.png` }
10791
+ ];
10792
+ DEFAULT_BATTLE_FEATURES = [
10793
+ { id: "f1", x: 2, y: 2, type: "gold_mine", sprite: `${CDN}/world-map/gold_mine.png` },
10794
+ { id: "f2", x: 3, y: 1, type: "portal", sprite: `${CDN}/world-map/portal_open.png` }
10795
+ ];
10796
+ DEFAULT_BATTLE_MANIFEST = {
10797
+ baseUrl: CDN,
10798
+ terrains: {
10799
+ stone: "/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png",
10800
+ dirt: "/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png",
10801
+ grass: "/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png"
10802
+ },
10803
+ units: {
10804
+ worker: "/sprite-sheets/amir-sprite-sheet-se.png",
10805
+ guardian: "/sprite-sheets/destroyer-sprite-sheet-sw.png"
10806
+ },
10807
+ features: {
10808
+ gold_mine: "/world-map/gold_mine.png",
10809
+ portal: "/world-map/portal_open.png"
10810
+ }
10811
+ };
10754
10812
  BattleTemplate.displayName = "BattleTemplate";
10755
10813
  }
10756
10814
  });
@@ -18750,10 +18808,10 @@ var init_CastleBoard = __esm({
18750
18808
  function CastleTemplate({
18751
18809
  entity,
18752
18810
  scale = 0.45,
18753
- tiles,
18754
- units,
18755
- features,
18756
- assetManifest,
18811
+ tiles = DEFAULT_CASTLE_TILES,
18812
+ units = DEFAULT_CASTLE_UNITS,
18813
+ features = DEFAULT_CASTLE_FEATURES,
18814
+ assetManifest = DEFAULT_CASTLE_MANIFEST,
18757
18815
  className
18758
18816
  }) {
18759
18817
  const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
@@ -18774,9 +18832,61 @@ function CastleTemplate({
18774
18832
  }
18775
18833
  );
18776
18834
  }
18835
+ var CDN2, DEFAULT_CASTLE_TILES, DEFAULT_CASTLE_UNITS, DEFAULT_CASTLE_FEATURES, DEFAULT_CASTLE_MANIFEST;
18777
18836
  var init_CastleTemplate = __esm({
18778
18837
  "components/game/templates/CastleTemplate.tsx"() {
18779
18838
  init_CastleBoard();
18839
+ CDN2 = "https://almadar-kflow-assets.web.app/shared";
18840
+ DEFAULT_CASTLE_TILES = [
18841
+ { x: 0, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
18842
+ { x: 1, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
18843
+ { x: 2, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
18844
+ { x: 3, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
18845
+ { x: 4, y: 0, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
18846
+ { x: 0, y: 1, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
18847
+ { x: 1, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
18848
+ { x: 2, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
18849
+ { x: 3, y: 1, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
18850
+ { x: 4, y: 1, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
18851
+ { x: 0, y: 2, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
18852
+ { x: 1, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
18853
+ { x: 2, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_09.png` },
18854
+ { x: 3, y: 2, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
18855
+ { x: 4, y: 2, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
18856
+ { x: 0, y: 3, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
18857
+ { x: 1, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
18858
+ { x: 2, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
18859
+ { x: 3, y: 3, terrain: "floor", passable: true, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
18860
+ { x: 4, y: 3, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
18861
+ { x: 0, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
18862
+ { x: 1, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
18863
+ { x: 2, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
18864
+ { x: 3, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` },
18865
+ { x: 4, y: 4, terrain: "wall", passable: false, terrainSprite: `${CDN2}/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png` }
18866
+ ];
18867
+ DEFAULT_CASTLE_UNITS = [
18868
+ { id: "u1", position: { x: 1, y: 1 }, unitType: "worker", name: "Worker", team: "player", health: 10, maxHealth: 10, sprite: `${CDN2}/sprite-sheets/coordinator-sprite-sheet-se.png` },
18869
+ { id: "u2", position: { x: 3, y: 3 }, unitType: "guardian", name: "Guardian", team: "player", health: 10, maxHealth: 10, sprite: `${CDN2}/sprite-sheets/forger-sprite-sheet-se.png` }
18870
+ ];
18871
+ DEFAULT_CASTLE_FEATURES = [
18872
+ { id: "f1", x: 2, y: 2, type: "chest", sprite: `${CDN2}/world-map/treasure_chest_closed.png` },
18873
+ { id: "f2", x: 3, y: 1, type: "crystal", sprite: `${CDN2}/world-map/resonance_crystal.png` }
18874
+ ];
18875
+ DEFAULT_CASTLE_MANIFEST = {
18876
+ baseUrl: CDN2,
18877
+ terrains: {
18878
+ wall: "/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png",
18879
+ floor: "/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png"
18880
+ },
18881
+ units: {
18882
+ worker: "/sprite-sheets/coordinator-sprite-sheet-se.png",
18883
+ guardian: "/sprite-sheets/forger-sprite-sheet-se.png"
18884
+ },
18885
+ features: {
18886
+ chest: "/world-map/treasure_chest_closed.png",
18887
+ crystal: "/world-map/resonance_crystal.png"
18888
+ }
18889
+ };
18780
18890
  CastleTemplate.displayName = "CastleTemplate";
18781
18891
  }
18782
18892
  });
@@ -19555,7 +19665,7 @@ var init_ChartLegend = __esm({
19555
19665
  }
19556
19666
  });
19557
19667
  function ChoiceButton({
19558
- text,
19668
+ text = "Charge forward into the fray",
19559
19669
  index,
19560
19670
  disabled = false,
19561
19671
  selected = false,
@@ -19944,7 +20054,7 @@ var init_CodeRunnerPanel = __esm({
19944
20054
  }
19945
20055
  });
19946
20056
  function CombatLog({
19947
- events: events2,
20057
+ events: events2 = DEFAULT_COMBAT_EVENTS,
19948
20058
  maxVisible = 50,
19949
20059
  autoScroll = true,
19950
20060
  showTimestamps = false,
@@ -19995,7 +20105,7 @@ function CombatLog({
19995
20105
  }) }) })
19996
20106
  ] });
19997
20107
  }
19998
- var eventIcons, eventColors, eventBadgeVariants;
20108
+ var eventIcons, eventColors, eventBadgeVariants, DEFAULT_COMBAT_EVENTS;
19999
20109
  var init_CombatLog = __esm({
20000
20110
  "components/game/molecules/CombatLog.tsx"() {
20001
20111
  init_atoms2();
@@ -20027,6 +20137,13 @@ var init_CombatLog = __esm({
20027
20137
  death: "secondary",
20028
20138
  spawn: "secondary"
20029
20139
  };
20140
+ DEFAULT_COMBAT_EVENTS = [
20141
+ { id: "e1", type: "spawn", message: "Shadow Guard entered the field.", timestamp: 0, turn: 1 },
20142
+ { id: "e2", type: "move", message: "Hero moved to (3, 4).", timestamp: 1, actorName: "Hero", turn: 1 },
20143
+ { id: "e3", type: "attack", message: "Hero attacked Shadow Guard.", timestamp: 2, actorName: "Hero", targetName: "Shadow Guard", value: 18, turn: 2 },
20144
+ { id: "e4", type: "defend", message: "Shadow Guard blocked 5 damage.", timestamp: 3, actorName: "Shadow Guard", value: 5, turn: 2 },
20145
+ { id: "e5", type: "heal", message: "Hero used Health Potion.", timestamp: 4, actorName: "Hero", value: 25, turn: 3 }
20146
+ ];
20030
20147
  CombatLog.displayName = "CombatLog";
20031
20148
  }
20032
20149
  });
@@ -20042,7 +20159,7 @@ function getComboScale(combo) {
20042
20159
  return "";
20043
20160
  }
20044
20161
  function ComboCounter({
20045
- combo,
20162
+ combo = 5,
20046
20163
  multiplier,
20047
20164
  streak,
20048
20165
  size = "md",
@@ -20487,10 +20604,10 @@ var init_CounterTemplate = __esm({
20487
20604
  }
20488
20605
  });
20489
20606
  function ItemSlot({
20490
- icon,
20491
- label,
20607
+ icon = "sword",
20608
+ label = "Iron Sword",
20492
20609
  quantity,
20493
- rarity = "common",
20610
+ rarity = "uncommon",
20494
20611
  empty,
20495
20612
  size = "md",
20496
20613
  selected,
@@ -20567,9 +20684,9 @@ function isValidRarity(value) {
20567
20684
  return rarityValues.includes(value);
20568
20685
  }
20569
20686
  function CraftingRecipe({
20570
- inputs,
20571
- output,
20572
- canCraft = false,
20687
+ inputs = DEFAULT_INPUTS,
20688
+ output = DEFAULT_OUTPUT,
20689
+ canCraft = true,
20573
20690
  onCraft,
20574
20691
  craftEvent,
20575
20692
  className
@@ -20630,7 +20747,7 @@ function CraftingRecipe({
20630
20747
  }
20631
20748
  );
20632
20749
  }
20633
- var rarityValues;
20750
+ var rarityValues, DEFAULT_INPUTS, DEFAULT_OUTPUT;
20634
20751
  var init_CraftingRecipe = __esm({
20635
20752
  "components/game/molecules/CraftingRecipe.tsx"() {
20636
20753
  "use client";
@@ -20642,6 +20759,15 @@ var init_CraftingRecipe = __esm({
20642
20759
  init_Stack();
20643
20760
  init_Icon();
20644
20761
  rarityValues = ["common", "uncommon", "rare", "epic", "legendary"];
20762
+ DEFAULT_INPUTS = [
20763
+ { icon: "gem", label: "Iron Ore", required: 2, available: 3 },
20764
+ { icon: "flame", label: "Coal", required: 1, available: 1 }
20765
+ ];
20766
+ DEFAULT_OUTPUT = {
20767
+ icon: "sword",
20768
+ label: "Iron Sword",
20769
+ rarity: "uncommon"
20770
+ };
20645
20771
  CraftingRecipe.displayName = "CraftingRecipe";
20646
20772
  }
20647
20773
  });
@@ -20723,7 +20849,7 @@ var init_DPad = __esm({
20723
20849
  }
20724
20850
  });
20725
20851
  function DamageNumber({
20726
- value,
20852
+ value = 42,
20727
20853
  type = "damage",
20728
20854
  size = "md",
20729
20855
  className
@@ -26800,8 +26926,8 @@ var init_ProgressDots = __esm({
26800
26926
  }
26801
26927
  });
26802
26928
  function HealthBar({
26803
- current,
26804
- max,
26929
+ current = 3,
26930
+ max = 5,
26805
26931
  format = "hearts",
26806
26932
  size = "md",
26807
26933
  className,
@@ -27021,10 +27147,10 @@ var init_StatBadge = __esm({
27021
27147
  }
27022
27148
  });
27023
27149
  function InventoryGrid({
27024
- items,
27150
+ items = DEFAULT_GRID_ITEMS,
27025
27151
  columns = 4,
27026
- totalSlots,
27027
- selectedId,
27152
+ totalSlots = 12,
27153
+ selectedId = "",
27028
27154
  onSelect,
27029
27155
  selectEvent,
27030
27156
  size = "md",
@@ -27073,7 +27199,7 @@ function InventoryGrid({
27073
27199
  }
27074
27200
  );
27075
27201
  }
27076
- var columnMap;
27202
+ var columnMap, DEFAULT_GRID_ITEMS;
27077
27203
  var init_InventoryGrid = __esm({
27078
27204
  "components/game/molecules/InventoryGrid.tsx"() {
27079
27205
  "use client";
@@ -27090,13 +27216,19 @@ var init_InventoryGrid = __esm({
27090
27216
  7: "grid-cols-7",
27091
27217
  8: "grid-cols-8"
27092
27218
  };
27219
+ DEFAULT_GRID_ITEMS = [
27220
+ { id: "grid-1", icon: "sword", label: "Iron Sword", quantity: 1, rarity: "common" },
27221
+ { id: "grid-2", icon: "flask-conical", label: "Health Potion", quantity: 3, rarity: "uncommon" },
27222
+ { id: "grid-3", icon: "shield", label: "Wooden Shield", quantity: 1, rarity: "common" },
27223
+ { id: "grid-4", icon: "gem", label: "Ruby Gem", quantity: 2, rarity: "rare" }
27224
+ ];
27093
27225
  InventoryGrid.displayName = "InventoryGrid";
27094
27226
  }
27095
27227
  });
27096
27228
  function WaypointMarker({
27097
27229
  label,
27098
27230
  icon,
27099
- active = false,
27231
+ active = true,
27100
27232
  completed = false,
27101
27233
  size = "md",
27102
27234
  className
@@ -27164,8 +27296,8 @@ var init_WaypointMarker = __esm({
27164
27296
  }
27165
27297
  });
27166
27298
  function QuestTracker({
27167
- quests,
27168
- activeQuestId,
27299
+ quests = DEFAULT_QUESTS,
27300
+ activeQuestId = "q2",
27169
27301
  className
27170
27302
  }) {
27171
27303
  return /* @__PURE__ */ jsx(VStack, { gap: "sm", className, children: quests.map((quest) => {
@@ -27231,6 +27363,7 @@ function QuestTracker({
27231
27363
  );
27232
27364
  }) });
27233
27365
  }
27366
+ var DEFAULT_QUESTS;
27234
27367
  var init_QuestTracker = __esm({
27235
27368
  "components/game/molecules/QuestTracker.tsx"() {
27236
27369
  "use client";
@@ -27240,6 +27373,11 @@ var init_QuestTracker = __esm({
27240
27373
  init_Typography();
27241
27374
  init_Box();
27242
27375
  init_Stack();
27376
+ DEFAULT_QUESTS = [
27377
+ { id: "q1", title: "Reach the Ancient Ruins", progress: 1, maxProgress: 1, completed: true },
27378
+ { id: "q2", title: "Defeat the Shadow Guard", progress: 2, maxProgress: 5, active: true },
27379
+ { id: "q3", title: "Collect 3 Crystal Shards", progress: 0, maxProgress: 3, active: false }
27380
+ ];
27243
27381
  QuestTracker.displayName = "QuestTracker";
27244
27382
  }
27245
27383
  });
@@ -27252,7 +27390,7 @@ function formatTime(seconds) {
27252
27390
  return `${seconds}s`;
27253
27391
  }
27254
27392
  function PowerupSlots({
27255
- active,
27393
+ active = DEFAULT_ACTIVE_POWERUPS,
27256
27394
  maxSlots = 4,
27257
27395
  className
27258
27396
  }) {
@@ -27297,6 +27435,7 @@ function PowerupSlots({
27297
27435
  ))
27298
27436
  ] });
27299
27437
  }
27438
+ var DEFAULT_ACTIVE_POWERUPS;
27300
27439
  var init_PowerupSlots = __esm({
27301
27440
  "components/game/molecules/PowerupSlots.tsx"() {
27302
27441
  "use client";
@@ -27305,6 +27444,10 @@ var init_PowerupSlots = __esm({
27305
27444
  init_Box();
27306
27445
  init_Stack();
27307
27446
  init_Typography();
27447
+ DEFAULT_ACTIVE_POWERUPS = [
27448
+ { id: "pw1", icon: "zap", label: "Speed Boost", remainingTime: 12 },
27449
+ { id: "pw2", icon: "shield", label: "Iron Shield", remainingTime: 30 }
27450
+ ];
27308
27451
  PowerupSlots.displayName = "PowerupSlots";
27309
27452
  }
27310
27453
  });
@@ -27316,7 +27459,7 @@ function GameCanvas2D({
27316
27459
  tickEvent,
27317
27460
  drawEvent,
27318
27461
  fps = 60,
27319
- backgroundImage = "https://almadar-kflow-assets.web.app/shared/scenes/dark_clouds_from_above.png",
27462
+ backgroundImage = "",
27320
27463
  assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/",
27321
27464
  className
27322
27465
  }) {
@@ -27420,10 +27563,10 @@ var init_GameCanvas2D = __esm({
27420
27563
  }
27421
27564
  });
27422
27565
  function HealthPanel({
27423
- current,
27424
- max,
27425
- shield,
27426
- label,
27566
+ current = 75,
27567
+ max = 100,
27568
+ shield = 20,
27569
+ label = "Player HP",
27427
27570
  effects,
27428
27571
  showNumbers = true,
27429
27572
  size = "md",
@@ -27541,11 +27684,11 @@ var init_HealthPanel = __esm({
27541
27684
  }
27542
27685
  });
27543
27686
  function ScoreBoard({
27544
- score: rawScore,
27545
- highScore: rawHighScore,
27546
- combo: rawCombo,
27547
- multiplier: rawMultiplier,
27548
- level: rawLevel,
27687
+ score: rawScore = 4200,
27688
+ highScore: rawHighScore = 8750,
27689
+ combo: rawCombo = 3,
27690
+ multiplier: rawMultiplier = 2,
27691
+ level: rawLevel = 4,
27549
27692
  className
27550
27693
  }) {
27551
27694
  const score = rawScore ?? 0;
@@ -27618,7 +27761,7 @@ var init_ScoreBoard = __esm({
27618
27761
  }
27619
27762
  });
27620
27763
  function ResourceBar({
27621
- resources,
27764
+ resources = DEFAULT_RESOURCES,
27622
27765
  size = "md",
27623
27766
  className
27624
27767
  }) {
@@ -27644,17 +27787,23 @@ function ResourceBar({
27644
27787
  }
27645
27788
  );
27646
27789
  }
27790
+ var DEFAULT_RESOURCES;
27647
27791
  var init_ResourceBar = __esm({
27648
27792
  "components/game/molecules/ResourceBar.tsx"() {
27649
27793
  "use client";
27650
27794
  init_cn();
27651
27795
  init_StatBadge();
27652
27796
  init_Box();
27797
+ DEFAULT_RESOURCES = [
27798
+ { icon: "coins", label: "Gold", value: 320 },
27799
+ { icon: "zap", label: "Energy", value: 7, max: 10 },
27800
+ { icon: "gem", label: "Crystals", value: 15 }
27801
+ ];
27653
27802
  ResourceBar.displayName = "ResourceBar";
27654
27803
  }
27655
27804
  });
27656
27805
  function TurnIndicator({
27657
- currentTurn,
27806
+ currentTurn = 1,
27658
27807
  maxTurns,
27659
27808
  activeTeam,
27660
27809
  phase,
@@ -27706,11 +27855,11 @@ var init_TurnIndicator = __esm({
27706
27855
  }
27707
27856
  });
27708
27857
  function TurnPanel({
27709
- currentTurn,
27710
- maxTurns,
27711
- phase,
27712
- activeTeam,
27713
- actions,
27858
+ currentTurn = 3,
27859
+ maxTurns = 10,
27860
+ phase = "Attack",
27861
+ activeTeam = "Heroes",
27862
+ actions = DEFAULT_TURN_ACTIONS,
27714
27863
  className
27715
27864
  }) {
27716
27865
  const eventBus = useEventBus();
@@ -27755,6 +27904,7 @@ function TurnPanel({
27755
27904
  }
27756
27905
  );
27757
27906
  }
27907
+ var DEFAULT_TURN_ACTIONS;
27758
27908
  var init_TurnPanel = __esm({
27759
27909
  "components/game/molecules/TurnPanel.tsx"() {
27760
27910
  "use client";
@@ -27763,15 +27913,19 @@ var init_TurnPanel = __esm({
27763
27913
  init_Button();
27764
27914
  init_Box();
27765
27915
  init_useEventBus();
27916
+ DEFAULT_TURN_ACTIONS = [
27917
+ { label: "End Turn", icon: "skip-forward", event: "END_TURN" },
27918
+ { label: "Forfeit", icon: "flag", event: "FORFEIT", disabled: false }
27919
+ ];
27766
27920
  TurnPanel.displayName = "TurnPanel";
27767
27921
  }
27768
27922
  });
27769
27923
  function EnemyPlate({
27770
- name,
27771
- health,
27772
- maxHealth,
27773
- level,
27774
- effects,
27924
+ name = "Shadow Guard",
27925
+ health = 80,
27926
+ maxHealth = 100,
27927
+ level = 5,
27928
+ effects = DEFAULT_ENEMY_EFFECTS,
27775
27929
  className
27776
27930
  }) {
27777
27931
  return /* @__PURE__ */ jsxs(
@@ -27837,7 +27991,7 @@ function EnemyPlate({
27837
27991
  }
27838
27992
  );
27839
27993
  }
27840
- var effectVariantMap2;
27994
+ var effectVariantMap2, DEFAULT_ENEMY_EFFECTS;
27841
27995
  var init_EnemyPlate = __esm({
27842
27996
  "components/game/molecules/EnemyPlate.tsx"() {
27843
27997
  "use client";
@@ -27851,12 +28005,15 @@ var init_EnemyPlate = __esm({
27851
28005
  debuff: "danger",
27852
28006
  neutral: "neutral"
27853
28007
  };
28008
+ DEFAULT_ENEMY_EFFECTS = [
28009
+ { icon: "flame", label: "Burn", variant: "debuff" }
28010
+ ];
27854
28011
  EnemyPlate.displayName = "EnemyPlate";
27855
28012
  }
27856
28013
  });
27857
28014
  function UnitCommandBar({
27858
- commands,
27859
- selectedUnitId,
28015
+ commands = DEFAULT_COMMANDS,
28016
+ selectedUnitId = "unit-1",
27860
28017
  className
27861
28018
  }) {
27862
28019
  const eventBus = useEventBus();
@@ -27899,6 +28056,7 @@ function UnitCommandBar({
27899
28056
  }
27900
28057
  );
27901
28058
  }
28059
+ var DEFAULT_COMMANDS;
27902
28060
  var init_UnitCommandBar = __esm({
27903
28061
  "components/game/molecules/UnitCommandBar.tsx"() {
27904
28062
  "use client";
@@ -27907,6 +28065,12 @@ var init_UnitCommandBar = __esm({
27907
28065
  init_Box();
27908
28066
  init_Typography();
27909
28067
  init_useEventBus();
28068
+ DEFAULT_COMMANDS = [
28069
+ { label: "Move", icon: "move", event: "MOVE", hotkey: "M" },
28070
+ { label: "Attack", icon: "sword", event: "ATTACK", hotkey: "A" },
28071
+ { label: "Defend", icon: "shield", event: "DEFEND", hotkey: "D" },
28072
+ { label: "Wait", icon: "clock", event: "WAIT", hotkey: "W" }
28073
+ ];
27910
28074
  UnitCommandBar.displayName = "UnitCommandBar";
27911
28075
  }
27912
28076
  });
@@ -27940,7 +28104,7 @@ function GameHud({
27940
28104
  className,
27941
28105
  transparent = true
27942
28106
  }) {
27943
- const rawStats = propStats ?? items ?? (elements && Array.isArray(elements) ? convertElementsToStats(elements) : []);
28107
+ const rawStats = propStats ?? items ?? (elements && Array.isArray(elements) ? convertElementsToStats(elements) : DEFAULT_HUD_STATS);
27944
28108
  const stats = Array.isArray(rawStats) ? rawStats : [];
27945
28109
  const position = propPosition ?? "corners";
27946
28110
  if (position === "corners") {
@@ -27965,7 +28129,7 @@ function GameHud({
27965
28129
  }
27966
28130
  );
27967
28131
  }
27968
- var positionMap;
28132
+ var positionMap, DEFAULT_HUD_STATS;
27969
28133
  var init_GameHud = __esm({
27970
28134
  "components/game/molecules/GameHud.tsx"() {
27971
28135
  init_cn();
@@ -27975,11 +28139,17 @@ var init_GameHud = __esm({
27975
28139
  bottom: "bottom-0 left-0 right-0 flex justify-between items-end p-4",
27976
28140
  corners: "inset-0 pointer-events-none"
27977
28141
  };
28142
+ DEFAULT_HUD_STATS = [
28143
+ { label: "HP", value: 75, max: 100, format: "bar", variant: "danger" },
28144
+ { label: "MP", value: 40, max: 60, format: "bar", variant: "primary" },
28145
+ { label: "Score", value: 4200, format: "number", variant: "warning" },
28146
+ { label: "Level", value: 4, format: "number", variant: "default" }
28147
+ ];
27978
28148
  GameHud.displayName = "GameHud";
27979
28149
  }
27980
28150
  });
27981
28151
  function DialogueBox({
27982
- dialogue,
28152
+ dialogue = DEFAULT_DIALOGUE,
27983
28153
  typewriterSpeed = 30,
27984
28154
  position = "bottom",
27985
28155
  onComplete,
@@ -28162,17 +28332,27 @@ function DialogueBox({
28162
28332
  }
28163
28333
  );
28164
28334
  }
28335
+ var DEFAULT_DIALOGUE;
28165
28336
  var init_DialogueBox = __esm({
28166
28337
  "components/game/molecules/DialogueBox.tsx"() {
28167
28338
  "use client";
28168
28339
  init_cn();
28169
28340
  init_useEventBus();
28341
+ DEFAULT_DIALOGUE = {
28342
+ speaker: "Village Elder",
28343
+ text: "The ancient ruins hold great power \u2014 and great danger. Choose your path wisely, traveler.",
28344
+ choices: [
28345
+ { text: "I am ready. Lead the way.", action: "ACCEPT_QUEST" },
28346
+ { text: "Tell me more about the ruins.", action: "ASK_LORE" },
28347
+ { text: "Perhaps another time.", action: "DECLINE" }
28348
+ ]
28349
+ };
28170
28350
  }
28171
28351
  });
28172
28352
  function InventoryPanel({
28173
- items,
28174
- slots,
28175
- columns,
28353
+ items = DEFAULT_INVENTORY_ITEMS,
28354
+ slots = 12,
28355
+ columns = 4,
28176
28356
  selectedSlot,
28177
28357
  onSelectSlot,
28178
28358
  onUseItem,
@@ -28320,25 +28500,31 @@ function InventoryPanel({
28320
28500
  )
28321
28501
  ] });
28322
28502
  }
28503
+ var DEFAULT_INVENTORY_ITEMS;
28323
28504
  var init_InventoryPanel = __esm({
28324
28505
  "components/game/molecules/InventoryPanel.tsx"() {
28325
28506
  "use client";
28326
28507
  init_cn();
28327
28508
  init_useEventBus();
28509
+ DEFAULT_INVENTORY_ITEMS = [
28510
+ { id: "item-1", type: "weapon", name: "Iron Sword", quantity: 1, description: "A sturdy iron blade." },
28511
+ { id: "item-2", type: "potion", name: "Health Potion", quantity: 3, description: "Restores 50 HP." },
28512
+ { id: "item-3", type: "armor", name: "Leather Helm", quantity: 1, description: "Light head protection." }
28513
+ ];
28328
28514
  }
28329
28515
  });
28330
28516
  function GameMenu({
28331
- title,
28517
+ title = "Epic Quest",
28332
28518
  subtitle,
28333
28519
  options,
28334
28520
  menuItems,
28335
28521
  onSelect,
28336
28522
  eventBus: eventBusProp,
28337
28523
  background,
28338
- logo,
28524
+ logo = "",
28339
28525
  className
28340
28526
  }) {
28341
- const resolvedOptions = options ?? menuItems ?? [];
28527
+ const resolvedOptions = options ?? menuItems ?? DEFAULT_MENU_OPTIONS;
28342
28528
  let eventBusFromHook = null;
28343
28529
  try {
28344
28530
  eventBusFromHook = useEventBus();
@@ -28419,7 +28605,7 @@ function GameMenu({
28419
28605
  }
28420
28606
  );
28421
28607
  }
28422
- var variantMap3;
28608
+ var variantMap3, DEFAULT_MENU_OPTIONS;
28423
28609
  var init_GameMenu = __esm({
28424
28610
  "components/game/molecules/GameMenu.tsx"() {
28425
28611
  "use client";
@@ -28430,6 +28616,11 @@ var init_GameMenu = __esm({
28430
28616
  secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
28431
28617
  ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
28432
28618
  };
28619
+ DEFAULT_MENU_OPTIONS = [
28620
+ { label: "New Game", event: "NEW_GAME", variant: "primary" },
28621
+ { label: "Continue", event: "CONTINUE", variant: "secondary" },
28622
+ { label: "Settings", event: "SETTINGS", variant: "ghost" }
28623
+ ];
28433
28624
  GameMenu.displayName = "GameMenu";
28434
28625
  }
28435
28626
  });
@@ -28440,19 +28631,19 @@ function formatTime2(ms) {
28440
28631
  return `${minutes}:${remainingSeconds.toString().padStart(2, "0")}`;
28441
28632
  }
28442
28633
  function GameOverScreen({
28443
- title,
28634
+ title = "Game Over",
28444
28635
  message,
28445
- stats = [],
28636
+ stats = DEFAULT_GAME_OVER_STATS,
28446
28637
  actions,
28447
28638
  menuItems,
28448
28639
  onAction,
28449
28640
  eventBus: eventBusProp,
28450
- variant = "neutral",
28451
- highScore,
28452
- currentScore,
28641
+ variant = "defeat",
28642
+ highScore = 2e3,
28643
+ currentScore = 1240,
28453
28644
  className
28454
28645
  }) {
28455
- const resolvedActions = actions ?? menuItems ?? [];
28646
+ const resolvedActions = actions ?? menuItems ?? DEFAULT_GAME_OVER_ACTIONS;
28456
28647
  let eventBusFromHook = null;
28457
28648
  try {
28458
28649
  eventBusFromHook = useEventBus();
@@ -28539,7 +28730,7 @@ function GameOverScreen({
28539
28730
  }
28540
28731
  );
28541
28732
  }
28542
- var variantColors, buttonVariants;
28733
+ var variantColors, buttonVariants, DEFAULT_GAME_OVER_ACTIONS, DEFAULT_GAME_OVER_STATS;
28543
28734
  var init_GameOverScreen = __esm({
28544
28735
  "components/game/molecules/GameOverScreen.tsx"() {
28545
28736
  "use client";
@@ -28568,21 +28759,35 @@ var init_GameOverScreen = __esm({
28568
28759
  secondary: "bg-[var(--color-surface,#374151)] hover:bg-muted text-[var(--color-foreground)] border-muted",
28569
28760
  ghost: "bg-transparent hover:bg-foreground/10 text-[var(--color-foreground)] border-foreground/20"
28570
28761
  };
28762
+ DEFAULT_GAME_OVER_ACTIONS = [
28763
+ { label: "Play Again", event: "RESTART", variant: "primary" },
28764
+ { label: "Main Menu", event: "MAIN_MENU", variant: "secondary" }
28765
+ ];
28766
+ DEFAULT_GAME_OVER_STATS = [
28767
+ { label: "Score", value: 1240 },
28768
+ { label: "Enemies Defeated", value: 8 },
28769
+ { label: "Time", value: 93e3, format: "time" }
28770
+ ];
28571
28771
  GameOverScreen.displayName = "GameOverScreen";
28572
28772
  }
28573
28773
  });
28574
28774
  function PlatformerCanvas({
28575
28775
  player,
28576
- platforms = [],
28776
+ platforms = [
28777
+ { x: 0, y: 368, width: 800, height: 32, type: "ground" },
28778
+ { x: 150, y: 280, width: 160, height: 16, type: "platform" },
28779
+ { x: 420, y: 220, width: 160, height: 16, type: "platform" },
28780
+ { x: 620, y: 300, width: 140, height: 16, type: "platform" }
28781
+ ],
28577
28782
  worldWidth = 800,
28578
28783
  worldHeight = 400,
28579
28784
  canvasWidth = 800,
28580
28785
  canvasHeight = 400,
28581
28786
  followCamera = true,
28582
- bgColor,
28787
+ bgColor = "#5c94fc",
28583
28788
  playerSprite = "https://almadar-kflow-assets.web.app/shared/platformer/characters/platformChar_idle.png",
28584
28789
  tileSprites,
28585
- backgroundImage = "https://almadar-kflow-assets.web.app/shared/scenes/dark_clouds_from_above.png",
28790
+ backgroundImage = "",
28586
28791
  assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/platformer/",
28587
28792
  leftEvent = "MOVE_LEFT",
28588
28793
  rightEvent = "MOVE_RIGHT",
@@ -28630,10 +28835,10 @@ function PlatformerCanvas({
28630
28835
  };
28631
28836
  }, []);
28632
28837
  const resolvedPlayer = player ?? {
28633
- x: 50,
28634
- y: 300,
28635
- width: 24,
28636
- height: 32,
28838
+ x: 80,
28839
+ y: 336,
28840
+ width: 32,
28841
+ height: 48,
28637
28842
  facingRight: true
28638
28843
  };
28639
28844
  const handleKeyDown = useCallback((e) => {
@@ -39343,8 +39548,8 @@ var init_DetailPanel = __esm({
39343
39548
  }
39344
39549
  });
39345
39550
  function DialogueBubble({
39346
- speaker,
39347
- text,
39551
+ speaker = "Hero",
39552
+ text = "The dungeon awaits. Choose your path wisely.",
39348
39553
  portrait = "https://almadar-kflow-assets.web.app/shared/characters/archetypes/04_hero.png",
39349
39554
  position = "bottom",
39350
39555
  className
@@ -39426,7 +39631,7 @@ var init_DrawerSlot = __esm({
39426
39631
  }
39427
39632
  });
39428
39633
  function StateIndicator({
39429
- state,
39634
+ state = "idle",
39430
39635
  label,
39431
39636
  size = "md",
39432
39637
  animated = true,
@@ -42639,13 +42844,13 @@ var init_MediaGallery = __esm({
42639
42844
  }
42640
42845
  });
42641
42846
  function MiniMap({
42642
- tiles = [],
42643
- units = [],
42847
+ tiles = DEFAULT_TILES,
42848
+ units = DEFAULT_UNITS,
42644
42849
  width = 150,
42645
42850
  height = 150,
42646
42851
  mapWidth = 100,
42647
42852
  mapHeight = 100,
42648
- viewportRect,
42853
+ viewportRect = DEFAULT_VIEWPORT,
42649
42854
  className
42650
42855
  }) {
42651
42856
  const canvasRef = React77.useRef(null);
@@ -42724,10 +42929,25 @@ function MiniMap({
42724
42929
  }
42725
42930
  );
42726
42931
  }
42932
+ var DEFAULT_TILES, DEFAULT_UNITS, DEFAULT_VIEWPORT;
42727
42933
  var init_MiniMap = __esm({
42728
42934
  "components/game/atoms/MiniMap.tsx"() {
42729
42935
  "use client";
42730
42936
  init_cn();
42937
+ DEFAULT_TILES = [
42938
+ { x: 10, y: 10, color: "#4ade80" },
42939
+ { x: 20, y: 15, color: "#4ade80" },
42940
+ { x: 30, y: 25, color: "#22c55e" },
42941
+ { x: 50, y: 40, color: "#4ade80" },
42942
+ { x: 60, y: 55, color: "#16a34a" },
42943
+ { x: 40, y: 60, color: "#4ade80" },
42944
+ { x: 70, y: 30, color: "#22c55e" },
42945
+ { x: 80, y: 70, color: "#4ade80" }
42946
+ ];
42947
+ DEFAULT_UNITS = [
42948
+ { x: 30, y: 30, color: "#60a5fa", isPlayer: true }
42949
+ ];
42950
+ DEFAULT_VIEWPORT = { x: 20, y: 20, w: 40, h: 40 };
42731
42951
  MiniMap.displayName = "MiniMap";
42732
42952
  }
42733
42953
  });
@@ -43079,8 +43299,8 @@ var init_PricingPageTemplate = __esm({
43079
43299
  });
43080
43300
  function ResourceCounter({
43081
43301
  icon,
43082
- label,
43083
- value,
43302
+ label = "Gold",
43303
+ value = 250,
43084
43304
  max,
43085
43305
  color,
43086
43306
  size = "md",
@@ -46093,11 +46313,11 @@ var init_SplitPane = __esm({
46093
46313
  });
46094
46314
  function Sprite({
46095
46315
  spritesheet = "https://almadar-kflow-assets.web.app/shared/isometric-blocks/Spritesheet/allTiles_sheet.png",
46096
- frameWidth,
46097
- frameHeight,
46098
- frame,
46099
- x,
46100
- y,
46316
+ frameWidth = 64,
46317
+ frameHeight = 64,
46318
+ frame = 0,
46319
+ x = 0,
46320
+ y = 0,
46101
46321
  scale = 1,
46102
46322
  flipX = false,
46103
46323
  flipY = false,
@@ -46998,11 +47218,11 @@ function formatDuration(seconds) {
46998
47218
  return `${Math.round(seconds)}s`;
46999
47219
  }
47000
47220
  function StatusEffect({
47001
- icon,
47002
- label,
47003
- duration,
47221
+ icon = "shield",
47222
+ label = "Shield",
47223
+ duration = 30,
47004
47224
  stacks,
47005
- variant = "neutral",
47225
+ variant = "buff",
47006
47226
  size = "md",
47007
47227
  className
47008
47228
  }) {
@@ -47455,8 +47675,8 @@ function formatTime3(seconds, format) {
47455
47675
  return `${mins.toString().padStart(2, "0")}:${padded}`;
47456
47676
  }
47457
47677
  function TimerDisplay({
47458
- seconds,
47459
- running,
47678
+ seconds = 90,
47679
+ running = true,
47460
47680
  format = "mm:ss",
47461
47681
  size = "md",
47462
47682
  className,
@@ -48029,12 +48249,12 @@ function WorldMapTemplate({
48029
48249
  entity,
48030
48250
  scale = 0.4,
48031
48251
  unitScale = 2.5,
48032
- diamondTopY,
48252
+ diamondTopY = 374,
48033
48253
  allowMoveAllHeroes = false,
48034
- tiles,
48035
- units,
48036
- features,
48037
- assetManifest,
48254
+ tiles = DEFAULT_WORLDMAP_TILES,
48255
+ units = DEFAULT_WORLDMAP_UNITS,
48256
+ features = DEFAULT_WORLDMAP_FEATURES,
48257
+ assetManifest = DEFAULT_WORLDMAP_MANIFEST,
48038
48258
  className
48039
48259
  }) {
48040
48260
  return /* @__PURE__ */ jsx(
@@ -48057,17 +48277,71 @@ function WorldMapTemplate({
48057
48277
  }
48058
48278
  );
48059
48279
  }
48280
+ var CDN3, DEFAULT_WORLDMAP_TILES, DEFAULT_WORLDMAP_UNITS, DEFAULT_WORLDMAP_FEATURES, DEFAULT_WORLDMAP_MANIFEST;
48060
48281
  var init_WorldMapTemplate = __esm({
48061
48282
  "components/game/templates/WorldMapTemplate.tsx"() {
48062
48283
  init_WorldMapBoard();
48284
+ CDN3 = "https://almadar-kflow-assets.web.app/shared";
48285
+ DEFAULT_WORLDMAP_TILES = [
48286
+ { x: 0, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
48287
+ { x: 1, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
48288
+ { x: 2, y: 0, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
48289
+ { x: 3, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
48290
+ { x: 4, y: 0, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
48291
+ { x: 0, y: 1, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
48292
+ { x: 1, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
48293
+ { x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
48294
+ { x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
48295
+ { x: 4, y: 1, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
48296
+ { x: 0, y: 2, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
48297
+ { x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
48298
+ { x: 2, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png` },
48299
+ { x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
48300
+ { x: 4, y: 2, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
48301
+ { x: 0, y: 3, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
48302
+ { x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
48303
+ { x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
48304
+ { x: 3, y: 3, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png` },
48305
+ { x: 4, y: 3, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
48306
+ { x: 0, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
48307
+ { x: 1, y: 4, terrain: "water", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png` },
48308
+ { x: 2, y: 4, terrain: "grass", passable: true, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png` },
48309
+ { x: 3, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` },
48310
+ { x: 4, y: 4, terrain: "mountain", passable: false, terrainSprite: `${CDN3}/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png` }
48311
+ ];
48312
+ DEFAULT_WORLDMAP_UNITS = [
48313
+ { id: "h1", position: { x: 1, y: 1 }, unitType: "hero", name: "Amir", team: "player", health: 10, maxHealth: 10, sprite: `${CDN3}/sprite-sheets/amir-sprite-sheet-se.png` },
48314
+ { id: "h2", position: { x: 3, y: 3 }, unitType: "scout", name: "Archivist", team: "player", health: 10, maxHealth: 10, sprite: `${CDN3}/sprite-sheets/archivist-sprite-sheet-se.png` }
48315
+ ];
48316
+ DEFAULT_WORLDMAP_FEATURES = [
48317
+ { id: "f1", x: 2, y: 2, type: "capital", sprite: `${CDN3}/scenes/world/capital.png` },
48318
+ { id: "f2", x: 4, y: 2, type: "power_node", sprite: `${CDN3}/world-map/power_node.png` }
48319
+ ];
48320
+ DEFAULT_WORLDMAP_MANIFEST = {
48321
+ baseUrl: CDN3,
48322
+ terrains: {
48323
+ grass: "/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png",
48324
+ water: "/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png",
48325
+ mountain: "/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png",
48326
+ road: "/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png"
48327
+ },
48328
+ units: {
48329
+ hero: "/sprite-sheets/amir-sprite-sheet-se.png",
48330
+ scout: "/sprite-sheets/archivist-sprite-sheet-se.png"
48331
+ },
48332
+ features: {
48333
+ capital: "/scenes/world/capital.png",
48334
+ power_node: "/world-map/power_node.png"
48335
+ }
48336
+ };
48063
48337
  WorldMapTemplate.displayName = "WorldMapTemplate";
48064
48338
  }
48065
48339
  });
48066
48340
  function XPBar({
48067
- current,
48068
- max,
48069
- level,
48070
- showLabel = false,
48341
+ current = 350,
48342
+ max = 1e3,
48343
+ level = 5,
48344
+ showLabel = true,
48071
48345
  size = "md",
48072
48346
  animated = true,
48073
48347
  className