@almadar/ui 5.40.0 → 5.41.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.
@@ -11225,6 +11225,7 @@ var init_ResourceCounter = __esm({
11225
11225
  }
11226
11226
  });
11227
11227
  function ItemSlot({
11228
+ assetUrl = DEFAULT_ASSET_URL,
11228
11229
  icon = "sword",
11229
11230
  label = "Iron Sword",
11230
11231
  quantity,
@@ -11236,6 +11237,7 @@ function ItemSlot({
11236
11237
  className
11237
11238
  }) {
11238
11239
  const isClickable = onClick != null;
11240
+ const px = assetSizeMap[size];
11239
11241
  return /* @__PURE__ */ jsxRuntime.jsx(
11240
11242
  "button",
11241
11243
  {
@@ -11256,7 +11258,17 @@ function ItemSlot({
11256
11258
  className
11257
11259
  ),
11258
11260
  children: empty ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-base", children: "+" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
11259
- icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0", children: typeof icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: icon }) : /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon }) }),
11261
+ assetUrl ? /* @__PURE__ */ jsxRuntime.jsx(
11262
+ "img",
11263
+ {
11264
+ src: assetUrl,
11265
+ alt: label,
11266
+ width: px,
11267
+ height: px,
11268
+ style: { imageRendering: "pixelated", objectFit: "contain" },
11269
+ className: "flex-shrink-0"
11270
+ }
11271
+ ) : icon ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0", children: typeof icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: icon }) : /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon }) }) : null,
11260
11272
  quantity != null && quantity > 1 && /* @__PURE__ */ jsxRuntime.jsx(
11261
11273
  "span",
11262
11274
  {
@@ -11272,7 +11284,7 @@ function ItemSlot({
11272
11284
  }
11273
11285
  );
11274
11286
  }
11275
- var sizeMap6, rarityBorderMap, rarityGlowMap;
11287
+ var sizeMap6, rarityBorderMap, rarityGlowMap, DEFAULT_ASSET_URL, assetSizeMap;
11276
11288
  var init_ItemSlot = __esm({
11277
11289
  "components/game/atoms/ItemSlot.tsx"() {
11278
11290
  "use client";
@@ -11297,6 +11309,12 @@ var init_ItemSlot = __esm({
11297
11309
  epic: "shadow-lg",
11298
11310
  legendary: "shadow-lg"
11299
11311
  };
11312
+ DEFAULT_ASSET_URL = "https://almadar-kflow-assets.web.app/shared/isometric-dungeon/Isometric/chestClosed_E.png";
11313
+ assetSizeMap = {
11314
+ sm: 28,
11315
+ md: 40,
11316
+ lg: 56
11317
+ };
11300
11318
  ItemSlot.displayName = "ItemSlot";
11301
11319
  }
11302
11320
  });
package/dist/avl/index.js CHANGED
@@ -11179,6 +11179,7 @@ var init_ResourceCounter = __esm({
11179
11179
  }
11180
11180
  });
11181
11181
  function ItemSlot({
11182
+ assetUrl = DEFAULT_ASSET_URL,
11182
11183
  icon = "sword",
11183
11184
  label = "Iron Sword",
11184
11185
  quantity,
@@ -11190,6 +11191,7 @@ function ItemSlot({
11190
11191
  className
11191
11192
  }) {
11192
11193
  const isClickable = onClick != null;
11194
+ const px = assetSizeMap[size];
11193
11195
  return /* @__PURE__ */ jsx(
11194
11196
  "button",
11195
11197
  {
@@ -11210,7 +11212,17 @@ function ItemSlot({
11210
11212
  className
11211
11213
  ),
11212
11214
  children: empty ? /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-base", children: "+" }) : /* @__PURE__ */ jsxs(Fragment, { children: [
11213
- icon && /* @__PURE__ */ jsx("span", { className: "flex-shrink-0", children: typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon }) : /* @__PURE__ */ jsx(Icon, { icon }) }),
11215
+ assetUrl ? /* @__PURE__ */ jsx(
11216
+ "img",
11217
+ {
11218
+ src: assetUrl,
11219
+ alt: label,
11220
+ width: px,
11221
+ height: px,
11222
+ style: { imageRendering: "pixelated", objectFit: "contain" },
11223
+ className: "flex-shrink-0"
11224
+ }
11225
+ ) : icon ? /* @__PURE__ */ jsx("span", { className: "flex-shrink-0", children: typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon }) : /* @__PURE__ */ jsx(Icon, { icon }) }) : null,
11214
11226
  quantity != null && quantity > 1 && /* @__PURE__ */ jsx(
11215
11227
  "span",
11216
11228
  {
@@ -11226,7 +11238,7 @@ function ItemSlot({
11226
11238
  }
11227
11239
  );
11228
11240
  }
11229
- var sizeMap6, rarityBorderMap, rarityGlowMap;
11241
+ var sizeMap6, rarityBorderMap, rarityGlowMap, DEFAULT_ASSET_URL, assetSizeMap;
11230
11242
  var init_ItemSlot = __esm({
11231
11243
  "components/game/atoms/ItemSlot.tsx"() {
11232
11244
  "use client";
@@ -11251,6 +11263,12 @@ var init_ItemSlot = __esm({
11251
11263
  epic: "shadow-lg",
11252
11264
  legendary: "shadow-lg"
11253
11265
  };
11266
+ DEFAULT_ASSET_URL = "https://almadar-kflow-assets.web.app/shared/isometric-dungeon/Isometric/chestClosed_E.png";
11267
+ assetSizeMap = {
11268
+ sm: 28,
11269
+ md: 40,
11270
+ lg: 56
11271
+ };
11254
11272
  ItemSlot.displayName = "ItemSlot";
11255
11273
  }
11256
11274
  });
@@ -1,6 +1,9 @@
1
1
  import { type IconInput } from '../../core/atoms/Icon';
2
+ import type { AssetUrl } from '@almadar/core';
2
3
  export interface ItemSlotProps {
3
- /** Icon component or emoji */
4
+ /** Sprite image URL takes precedence over icon when provided */
5
+ assetUrl?: AssetUrl;
6
+ /** Icon component or emoji — shown only when assetUrl is absent */
4
7
  icon?: IconInput;
5
8
  /** Item label */
6
9
  label?: string;
@@ -19,7 +22,7 @@ export interface ItemSlotProps {
19
22
  /** Additional CSS classes */
20
23
  className?: string;
21
24
  }
22
- export declare function ItemSlot({ icon, label, quantity, rarity, empty, size, selected, onClick, className, }: ItemSlotProps): import("react/jsx-runtime").JSX.Element;
25
+ export declare function ItemSlot({ assetUrl, icon, label, quantity, rarity, empty, size, selected, onClick, className, }: ItemSlotProps): import("react/jsx-runtime").JSX.Element;
23
26
  export declare namespace ItemSlot {
24
27
  var displayName: string;
25
28
  }
@@ -20649,6 +20649,7 @@ var init_CounterTemplate = __esm({
20649
20649
  }
20650
20650
  });
20651
20651
  function ItemSlot({
20652
+ assetUrl = DEFAULT_ASSET_URL,
20652
20653
  icon = "sword",
20653
20654
  label = "Iron Sword",
20654
20655
  quantity,
@@ -20660,6 +20661,7 @@ function ItemSlot({
20660
20661
  className
20661
20662
  }) {
20662
20663
  const isClickable = onClick != null;
20664
+ const px = assetSizeMap[size];
20663
20665
  return /* @__PURE__ */ jsxRuntime.jsx(
20664
20666
  "button",
20665
20667
  {
@@ -20680,7 +20682,17 @@ function ItemSlot({
20680
20682
  className
20681
20683
  ),
20682
20684
  children: empty ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-base", children: "+" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
20683
- icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0", children: typeof icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: icon }) : /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { icon }) }),
20685
+ assetUrl ? /* @__PURE__ */ jsxRuntime.jsx(
20686
+ "img",
20687
+ {
20688
+ src: assetUrl,
20689
+ alt: label,
20690
+ width: px,
20691
+ height: px,
20692
+ style: { imageRendering: "pixelated", objectFit: "contain" },
20693
+ className: "flex-shrink-0"
20694
+ }
20695
+ ) : icon ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0", children: typeof icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: icon }) : /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { icon }) }) : null,
20684
20696
  quantity != null && quantity > 1 && /* @__PURE__ */ jsxRuntime.jsx(
20685
20697
  "span",
20686
20698
  {
@@ -20696,7 +20708,7 @@ function ItemSlot({
20696
20708
  }
20697
20709
  );
20698
20710
  }
20699
- var sizeMap5, rarityBorderMap, rarityGlowMap;
20711
+ var sizeMap5, rarityBorderMap, rarityGlowMap, DEFAULT_ASSET_URL, assetSizeMap;
20700
20712
  var init_ItemSlot = __esm({
20701
20713
  "components/game/atoms/ItemSlot.tsx"() {
20702
20714
  "use client";
@@ -20721,6 +20733,12 @@ var init_ItemSlot = __esm({
20721
20733
  epic: "shadow-lg",
20722
20734
  legendary: "shadow-lg"
20723
20735
  };
20736
+ DEFAULT_ASSET_URL = "https://almadar-kflow-assets.web.app/shared/isometric-dungeon/Isometric/chestClosed_E.png";
20737
+ assetSizeMap = {
20738
+ sm: 28,
20739
+ md: 40,
20740
+ lg: 56
20741
+ };
20724
20742
  ItemSlot.displayName = "ItemSlot";
20725
20743
  }
20726
20744
  });
@@ -20604,6 +20604,7 @@ var init_CounterTemplate = __esm({
20604
20604
  }
20605
20605
  });
20606
20606
  function ItemSlot({
20607
+ assetUrl = DEFAULT_ASSET_URL,
20607
20608
  icon = "sword",
20608
20609
  label = "Iron Sword",
20609
20610
  quantity,
@@ -20615,6 +20616,7 @@ function ItemSlot({
20615
20616
  className
20616
20617
  }) {
20617
20618
  const isClickable = onClick != null;
20619
+ const px = assetSizeMap[size];
20618
20620
  return /* @__PURE__ */ jsx(
20619
20621
  "button",
20620
20622
  {
@@ -20635,7 +20637,17 @@ function ItemSlot({
20635
20637
  className
20636
20638
  ),
20637
20639
  children: empty ? /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-base", children: "+" }) : /* @__PURE__ */ jsxs(Fragment, { children: [
20638
- icon && /* @__PURE__ */ jsx("span", { className: "flex-shrink-0", children: typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon }) : /* @__PURE__ */ jsx(Icon, { icon }) }),
20640
+ assetUrl ? /* @__PURE__ */ jsx(
20641
+ "img",
20642
+ {
20643
+ src: assetUrl,
20644
+ alt: label,
20645
+ width: px,
20646
+ height: px,
20647
+ style: { imageRendering: "pixelated", objectFit: "contain" },
20648
+ className: "flex-shrink-0"
20649
+ }
20650
+ ) : icon ? /* @__PURE__ */ jsx("span", { className: "flex-shrink-0", children: typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon }) : /* @__PURE__ */ jsx(Icon, { icon }) }) : null,
20639
20651
  quantity != null && quantity > 1 && /* @__PURE__ */ jsx(
20640
20652
  "span",
20641
20653
  {
@@ -20651,7 +20663,7 @@ function ItemSlot({
20651
20663
  }
20652
20664
  );
20653
20665
  }
20654
- var sizeMap5, rarityBorderMap, rarityGlowMap;
20666
+ var sizeMap5, rarityBorderMap, rarityGlowMap, DEFAULT_ASSET_URL, assetSizeMap;
20655
20667
  var init_ItemSlot = __esm({
20656
20668
  "components/game/atoms/ItemSlot.tsx"() {
20657
20669
  "use client";
@@ -20676,6 +20688,12 @@ var init_ItemSlot = __esm({
20676
20688
  epic: "shadow-lg",
20677
20689
  legendary: "shadow-lg"
20678
20690
  };
20691
+ DEFAULT_ASSET_URL = "https://almadar-kflow-assets.web.app/shared/isometric-dungeon/Isometric/chestClosed_E.png";
20692
+ assetSizeMap = {
20693
+ sm: 28,
20694
+ md: 40,
20695
+ lg: 56
20696
+ };
20679
20697
  ItemSlot.displayName = "ItemSlot";
20680
20698
  }
20681
20699
  });
@@ -7575,6 +7575,7 @@ var init_ResourceCounter = __esm({
7575
7575
  }
7576
7576
  });
7577
7577
  function ItemSlot({
7578
+ assetUrl = DEFAULT_ASSET_URL,
7578
7579
  icon = "sword",
7579
7580
  label = "Iron Sword",
7580
7581
  quantity,
@@ -7586,6 +7587,7 @@ function ItemSlot({
7586
7587
  className
7587
7588
  }) {
7588
7589
  const isClickable = onClick != null;
7590
+ const px = assetSizeMap[size];
7589
7591
  return /* @__PURE__ */ jsxRuntime.jsx(
7590
7592
  "button",
7591
7593
  {
@@ -7606,7 +7608,17 @@ function ItemSlot({
7606
7608
  className
7607
7609
  ),
7608
7610
  children: empty ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-base", children: "+" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7609
- icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0", children: typeof icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: icon }) : /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon }) }),
7611
+ assetUrl ? /* @__PURE__ */ jsxRuntime.jsx(
7612
+ "img",
7613
+ {
7614
+ src: assetUrl,
7615
+ alt: label,
7616
+ width: px,
7617
+ height: px,
7618
+ style: { imageRendering: "pixelated", objectFit: "contain" },
7619
+ className: "flex-shrink-0"
7620
+ }
7621
+ ) : icon ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0", children: typeof icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: icon }) : /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon }) }) : null,
7610
7622
  quantity != null && quantity > 1 && /* @__PURE__ */ jsxRuntime.jsx(
7611
7623
  "span",
7612
7624
  {
@@ -7622,7 +7634,7 @@ function ItemSlot({
7622
7634
  }
7623
7635
  );
7624
7636
  }
7625
- var sizeMap6, rarityBorderMap, rarityGlowMap;
7637
+ var sizeMap6, rarityBorderMap, rarityGlowMap, DEFAULT_ASSET_URL, assetSizeMap;
7626
7638
  var init_ItemSlot = __esm({
7627
7639
  "components/game/atoms/ItemSlot.tsx"() {
7628
7640
  "use client";
@@ -7647,6 +7659,12 @@ var init_ItemSlot = __esm({
7647
7659
  epic: "shadow-lg",
7648
7660
  legendary: "shadow-lg"
7649
7661
  };
7662
+ DEFAULT_ASSET_URL = "https://almadar-kflow-assets.web.app/shared/isometric-dungeon/Isometric/chestClosed_E.png";
7663
+ assetSizeMap = {
7664
+ sm: 28,
7665
+ md: 40,
7666
+ lg: 56
7667
+ };
7650
7668
  ItemSlot.displayName = "ItemSlot";
7651
7669
  }
7652
7670
  });
@@ -7529,6 +7529,7 @@ var init_ResourceCounter = __esm({
7529
7529
  }
7530
7530
  });
7531
7531
  function ItemSlot({
7532
+ assetUrl = DEFAULT_ASSET_URL,
7532
7533
  icon = "sword",
7533
7534
  label = "Iron Sword",
7534
7535
  quantity,
@@ -7540,6 +7541,7 @@ function ItemSlot({
7540
7541
  className
7541
7542
  }) {
7542
7543
  const isClickable = onClick != null;
7544
+ const px = assetSizeMap[size];
7543
7545
  return /* @__PURE__ */ jsx(
7544
7546
  "button",
7545
7547
  {
@@ -7560,7 +7562,17 @@ function ItemSlot({
7560
7562
  className
7561
7563
  ),
7562
7564
  children: empty ? /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-base", children: "+" }) : /* @__PURE__ */ jsxs(Fragment, { children: [
7563
- icon && /* @__PURE__ */ jsx("span", { className: "flex-shrink-0", children: typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon }) : /* @__PURE__ */ jsx(Icon, { icon }) }),
7565
+ assetUrl ? /* @__PURE__ */ jsx(
7566
+ "img",
7567
+ {
7568
+ src: assetUrl,
7569
+ alt: label,
7570
+ width: px,
7571
+ height: px,
7572
+ style: { imageRendering: "pixelated", objectFit: "contain" },
7573
+ className: "flex-shrink-0"
7574
+ }
7575
+ ) : icon ? /* @__PURE__ */ jsx("span", { className: "flex-shrink-0", children: typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon }) : /* @__PURE__ */ jsx(Icon, { icon }) }) : null,
7564
7576
  quantity != null && quantity > 1 && /* @__PURE__ */ jsx(
7565
7577
  "span",
7566
7578
  {
@@ -7576,7 +7588,7 @@ function ItemSlot({
7576
7588
  }
7577
7589
  );
7578
7590
  }
7579
- var sizeMap6, rarityBorderMap, rarityGlowMap;
7591
+ var sizeMap6, rarityBorderMap, rarityGlowMap, DEFAULT_ASSET_URL, assetSizeMap;
7580
7592
  var init_ItemSlot = __esm({
7581
7593
  "components/game/atoms/ItemSlot.tsx"() {
7582
7594
  "use client";
@@ -7601,6 +7613,12 @@ var init_ItemSlot = __esm({
7601
7613
  epic: "shadow-lg",
7602
7614
  legendary: "shadow-lg"
7603
7615
  };
7616
+ DEFAULT_ASSET_URL = "https://almadar-kflow-assets.web.app/shared/isometric-dungeon/Isometric/chestClosed_E.png";
7617
+ assetSizeMap = {
7618
+ sm: 28,
7619
+ md: 40,
7620
+ lg: 56
7621
+ };
7604
7622
  ItemSlot.displayName = "ItemSlot";
7605
7623
  }
7606
7624
  });
@@ -7486,6 +7486,7 @@ var init_ResourceCounter = __esm({
7486
7486
  }
7487
7487
  });
7488
7488
  function ItemSlot({
7489
+ assetUrl = DEFAULT_ASSET_URL,
7489
7490
  icon = "sword",
7490
7491
  label = "Iron Sword",
7491
7492
  quantity,
@@ -7497,6 +7498,7 @@ function ItemSlot({
7497
7498
  className
7498
7499
  }) {
7499
7500
  const isClickable = onClick != null;
7501
+ const px = assetSizeMap[size];
7500
7502
  return /* @__PURE__ */ jsxRuntime.jsx(
7501
7503
  "button",
7502
7504
  {
@@ -7517,7 +7519,17 @@ function ItemSlot({
7517
7519
  className
7518
7520
  ),
7519
7521
  children: empty ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-base", children: "+" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7520
- icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0", children: typeof icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: icon }) : /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon }) }),
7522
+ assetUrl ? /* @__PURE__ */ jsxRuntime.jsx(
7523
+ "img",
7524
+ {
7525
+ src: assetUrl,
7526
+ alt: label,
7527
+ width: px,
7528
+ height: px,
7529
+ style: { imageRendering: "pixelated", objectFit: "contain" },
7530
+ className: "flex-shrink-0"
7531
+ }
7532
+ ) : icon ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0", children: typeof icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: icon }) : /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon }) }) : null,
7521
7533
  quantity != null && quantity > 1 && /* @__PURE__ */ jsxRuntime.jsx(
7522
7534
  "span",
7523
7535
  {
@@ -7533,7 +7545,7 @@ function ItemSlot({
7533
7545
  }
7534
7546
  );
7535
7547
  }
7536
- var sizeMap6, rarityBorderMap, rarityGlowMap;
7548
+ var sizeMap6, rarityBorderMap, rarityGlowMap, DEFAULT_ASSET_URL, assetSizeMap;
7537
7549
  var init_ItemSlot = __esm({
7538
7550
  "components/game/atoms/ItemSlot.tsx"() {
7539
7551
  "use client";
@@ -7558,6 +7570,12 @@ var init_ItemSlot = __esm({
7558
7570
  epic: "shadow-lg",
7559
7571
  legendary: "shadow-lg"
7560
7572
  };
7573
+ DEFAULT_ASSET_URL = "https://almadar-kflow-assets.web.app/shared/isometric-dungeon/Isometric/chestClosed_E.png";
7574
+ assetSizeMap = {
7575
+ sm: 28,
7576
+ md: 40,
7577
+ lg: 56
7578
+ };
7561
7579
  ItemSlot.displayName = "ItemSlot";
7562
7580
  }
7563
7581
  });
@@ -7440,6 +7440,7 @@ var init_ResourceCounter = __esm({
7440
7440
  }
7441
7441
  });
7442
7442
  function ItemSlot({
7443
+ assetUrl = DEFAULT_ASSET_URL,
7443
7444
  icon = "sword",
7444
7445
  label = "Iron Sword",
7445
7446
  quantity,
@@ -7451,6 +7452,7 @@ function ItemSlot({
7451
7452
  className
7452
7453
  }) {
7453
7454
  const isClickable = onClick != null;
7455
+ const px = assetSizeMap[size];
7454
7456
  return /* @__PURE__ */ jsx(
7455
7457
  "button",
7456
7458
  {
@@ -7471,7 +7473,17 @@ function ItemSlot({
7471
7473
  className
7472
7474
  ),
7473
7475
  children: empty ? /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-base", children: "+" }) : /* @__PURE__ */ jsxs(Fragment, { children: [
7474
- icon && /* @__PURE__ */ jsx("span", { className: "flex-shrink-0", children: typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon }) : /* @__PURE__ */ jsx(Icon, { icon }) }),
7476
+ assetUrl ? /* @__PURE__ */ jsx(
7477
+ "img",
7478
+ {
7479
+ src: assetUrl,
7480
+ alt: label,
7481
+ width: px,
7482
+ height: px,
7483
+ style: { imageRendering: "pixelated", objectFit: "contain" },
7484
+ className: "flex-shrink-0"
7485
+ }
7486
+ ) : icon ? /* @__PURE__ */ jsx("span", { className: "flex-shrink-0", children: typeof icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: icon }) : /* @__PURE__ */ jsx(Icon, { icon }) }) : null,
7475
7487
  quantity != null && quantity > 1 && /* @__PURE__ */ jsx(
7476
7488
  "span",
7477
7489
  {
@@ -7487,7 +7499,7 @@ function ItemSlot({
7487
7499
  }
7488
7500
  );
7489
7501
  }
7490
- var sizeMap6, rarityBorderMap, rarityGlowMap;
7502
+ var sizeMap6, rarityBorderMap, rarityGlowMap, DEFAULT_ASSET_URL, assetSizeMap;
7491
7503
  var init_ItemSlot = __esm({
7492
7504
  "components/game/atoms/ItemSlot.tsx"() {
7493
7505
  "use client";
@@ -7512,6 +7524,12 @@ var init_ItemSlot = __esm({
7512
7524
  epic: "shadow-lg",
7513
7525
  legendary: "shadow-lg"
7514
7526
  };
7527
+ DEFAULT_ASSET_URL = "https://almadar-kflow-assets.web.app/shared/isometric-dungeon/Isometric/chestClosed_E.png";
7528
+ assetSizeMap = {
7529
+ sm: 28,
7530
+ md: 40,
7531
+ lg: 56
7532
+ };
7515
7533
  ItemSlot.displayName = "ItemSlot";
7516
7534
  }
7517
7535
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@almadar/ui",
3
- "version": "5.40.0",
3
+ "version": "5.41.0",
4
4
  "description": "React UI components, hooks, and providers for Almadar",
5
5
  "type": "module",
6
6
  "sideEffects": [