@almadar/ui 4.45.0 → 4.46.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.
@@ -4473,8 +4473,8 @@ var init_SectionHeader = __esm({
4473
4473
  }
4474
4474
  });
4475
4475
  var sizeClasses4; exports.MarketingStatCard = void 0;
4476
- var init_StatCard = __esm({
4477
- "components/atoms/StatCard.tsx"() {
4476
+ var init_MarketingStatCard = __esm({
4477
+ "components/atoms/MarketingStatCard.tsx"() {
4478
4478
  init_cn();
4479
4479
  init_Stack();
4480
4480
  init_Typography();
@@ -8340,7 +8340,7 @@ function ActionButton({
8340
8340
  disabled: isDisabled,
8341
8341
  onClick,
8342
8342
  className: cn(
8343
- "relative inline-flex items-center gap-1.5 rounded-md border font-medium text-[var(--color-foreground)] overflow-hidden transition-colors duration-150",
8343
+ "relative inline-flex items-center gap-1.5 rounded-md border font-medium overflow-hidden transition-colors duration-150",
8344
8344
  sizes.button,
8345
8345
  variantStyles7[variant],
8346
8346
  isDisabled && "opacity-60 cursor-not-allowed",
@@ -8350,7 +8350,7 @@ function ActionButton({
8350
8350
  onCooldown && /* @__PURE__ */ jsxRuntime.jsx(
8351
8351
  "div",
8352
8352
  {
8353
- className: "absolute inset-0 bg-black/60 pointer-events-none",
8353
+ className: "absolute inset-0 bg-foreground/40 pointer-events-none",
8354
8354
  style: {
8355
8355
  clipPath: `conic-gradient(from 0deg, transparent ${360 - cooldownDeg}deg, black ${360 - cooldownDeg}deg)`,
8356
8356
  WebkitClipPath: `conic-gradient(from 0deg, transparent ${360 - cooldownDeg}deg, black ${360 - cooldownDeg}deg)`,
@@ -8358,13 +8358,16 @@ function ActionButton({
8358
8358
  }
8359
8359
  }
8360
8360
  ),
8361
- icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("flex-shrink-0", sizes.icon), children: icon }),
8361
+ icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("flex-shrink-0", sizes.icon), children: typeof icon === "string" ? (() => {
8362
+ const I = resolveIcon(icon);
8363
+ return I ? /* @__PURE__ */ jsxRuntime.jsx(I, { className: "w-4 h-4" }) : null;
8364
+ })() : icon }),
8362
8365
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "relative z-10", children: label }),
8363
8366
  hotkey && /* @__PURE__ */ jsxRuntime.jsx(
8364
8367
  "span",
8365
8368
  {
8366
8369
  className: cn(
8367
- "absolute top-0.5 right-0.5 bg-black/50 text-gray-300 rounded font-mono leading-tight",
8370
+ "absolute top-0.5 right-0.5 bg-foreground/30 text-primary-foreground rounded font-mono leading-tight",
8368
8371
  sizes.hotkey
8369
8372
  ),
8370
8373
  children: hotkey
@@ -8378,15 +8381,16 @@ var sizeMap, variantStyles7;
8378
8381
  var init_ActionButton = __esm({
8379
8382
  "components/atoms/game/ActionButton.tsx"() {
8380
8383
  init_cn();
8384
+ init_Icon();
8381
8385
  sizeMap = {
8382
8386
  sm: { button: "px-3 py-1.5 text-xs", hotkey: "text-[9px] px-1", icon: "text-xs" },
8383
8387
  md: { button: "px-4 py-2 text-sm", hotkey: "text-[10px] px-1.5", icon: "text-sm" },
8384
8388
  lg: { button: "px-5 py-2.5 text-base", hotkey: "text-xs px-2", icon: "text-base" }
8385
8389
  };
8386
8390
  variantStyles7 = {
8387
- primary: "bg-blue-600 hover:bg-blue-500 border-blue-400/40",
8388
- secondary: "bg-gray-700 hover:bg-gray-600 border-gray-500/40",
8389
- danger: "bg-red-700 hover:bg-red-600 border-red-400/40"
8391
+ primary: "bg-primary text-primary-foreground hover:bg-primary-hover border-primary",
8392
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary-hover border-border",
8393
+ danger: "bg-error text-error-foreground hover:bg-error/90 border-error"
8390
8394
  };
8391
8395
  ActionButton.displayName = "ActionButton";
8392
8396
  }
@@ -8455,12 +8459,15 @@ function ControlButton({
8455
8459
  sizeMap2[size] ?? sizeMap2.md,
8456
8460
  shapeMap[shape] ?? shapeMap.circle,
8457
8461
  variantMap[variant] ?? variantMap.secondary,
8458
- actualPressed && "scale-95 brightness-110 border-white",
8462
+ actualPressed && "scale-95 brightness-110 border-foreground",
8459
8463
  disabled && "opacity-50 cursor-not-allowed",
8460
8464
  className
8461
8465
  ),
8462
8466
  children: [
8463
- icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-2xl", children: icon }),
8467
+ icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-2xl", children: typeof icon === "string" ? (() => {
8468
+ const I = resolveIcon(icon);
8469
+ return I ? /* @__PURE__ */ jsxRuntime.jsx(I, { className: "w-6 h-6" }) : null;
8470
+ })() : icon }),
8464
8471
  label && !icon && /* @__PURE__ */ jsxRuntime.jsx("span", { children: label })
8465
8472
  ]
8466
8473
  }
@@ -8472,6 +8479,7 @@ var init_ControlButton = __esm({
8472
8479
  "use client";
8473
8480
  init_cn();
8474
8481
  init_useEventBus();
8482
+ init_Icon();
8475
8483
  sizeMap2 = {
8476
8484
  sm: "w-10 h-10 text-sm",
8477
8485
  md: "w-14 h-14 text-base",
@@ -8484,9 +8492,9 @@ var init_ControlButton = __esm({
8484
8492
  square: "rounded-md"
8485
8493
  };
8486
8494
  variantMap = {
8487
- primary: "bg-blue-600 text-[var(--color-foreground)] border-blue-400 hover:bg-blue-500",
8488
- secondary: "bg-[var(--color-surface,#374151)] text-[var(--color-foreground)] border-gray-500 hover:bg-gray-600",
8489
- ghost: "bg-transparent text-[var(--color-foreground)] border-white/30 hover:bg-white/10"
8495
+ primary: "bg-primary text-primary-foreground border-primary hover:bg-primary-hover",
8496
+ secondary: "bg-secondary text-secondary-foreground border-border hover:bg-secondary-hover",
8497
+ ghost: "bg-transparent text-foreground border-border hover:bg-muted"
8490
8498
  };
8491
8499
  ControlButton.displayName = "ControlButton";
8492
8500
  }
@@ -18106,8 +18114,8 @@ function ChoiceButton({
18106
18114
  className: cn(
18107
18115
  "w-full text-left px-4 py-2.5 rounded-md border transition-all duration-150",
18108
18116
  "flex items-center gap-2",
18109
- selected ? "bg-yellow-500/20 border-yellow-400 text-yellow-300" : "bg-white/5 border-white/10 text-[var(--color-foreground)] hover:bg-white/10 hover:border-white/30",
18110
- disabled && "opacity-40 cursor-not-allowed hover:bg-white/5 hover:border-white/10",
18117
+ selected ? "bg-accent/15 border-accent text-foreground" : "bg-muted/40 border-border text-foreground hover:bg-muted hover:border-border",
18118
+ disabled && "opacity-40 cursor-not-allowed hover:bg-muted/40 hover:border-border",
18111
18119
  className
18112
18120
  ),
18113
18121
  children: [
@@ -18116,7 +18124,7 @@ function ChoiceButton({
18116
18124
  {
18117
18125
  className: cn(
18118
18126
  "flex-shrink-0 font-mono font-bold text-sm",
18119
- selected ? "text-yellow-400" : "text-gray-500"
18127
+ selected ? "text-accent" : "text-muted-foreground"
18120
18128
  ),
18121
18129
  children: [
18122
18130
  index,
@@ -20320,7 +20328,7 @@ function DataGrid({
20320
20328
  onClick: handleActionClick(action, itemData),
20321
20329
  "data-testid": `action-${action.event}`,
20322
20330
  "data-row-id": String(itemData.id),
20323
- className: "text-error hover:bg-error/10 px-2",
20331
+ className: "text-error hover:text-error hover:bg-error/10 px-2",
20324
20332
  children: [
20325
20333
  action.icon && /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: action.icon, size: "xs" }),
20326
20334
  action.label
@@ -23062,7 +23070,7 @@ function StatBadge({
23062
23070
  const I = resolveIcon(icon);
23063
23071
  return I ? /* @__PURE__ */ jsxRuntime.jsx(I, { className: "w-4 h-4" }) : icon;
23064
23072
  })() : icon }),
23065
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-400 font-medium", children: label }),
23073
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground font-medium", children: label }),
23066
23074
  format === "hearts" && max && /* @__PURE__ */ jsxRuntime.jsx(
23067
23075
  HealthBar,
23068
23076
  {
@@ -23089,7 +23097,7 @@ function StatBadge({
23089
23097
  animated: true
23090
23098
  }
23091
23099
  ),
23092
- format === "text" && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-bold text-[var(--color-foreground)]", children: value })
23100
+ format === "text" && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-bold text-foreground", children: value })
23093
23101
  ]
23094
23102
  }
23095
23103
  );
@@ -23107,11 +23115,11 @@ var init_StatBadge = __esm({
23107
23115
  lg: "text-base px-4 py-2"
23108
23116
  };
23109
23117
  variantMap2 = {
23110
- default: "bg-[var(--color-card)]/80 border-gray-700",
23111
- primary: "bg-blue-900/80 border-blue-700",
23112
- success: "bg-green-900/80 border-green-700",
23113
- warning: "bg-yellow-900/80 border-yellow-700",
23114
- danger: "bg-red-900/80 border-red-700"
23118
+ default: "bg-card/80 border-border text-foreground",
23119
+ primary: "bg-primary/15 border-primary/40 text-foreground",
23120
+ success: "bg-success/15 border-success/40 text-foreground",
23121
+ warning: "bg-warning/15 border-warning/40 text-foreground",
23122
+ danger: "bg-error/15 border-error/40 text-foreground"
23115
23123
  };
23116
23124
  StatBadge.displayName = "StatBadge";
23117
23125
  }
@@ -36020,9 +36028,45 @@ var init_List = __esm({
36020
36028
  exports.List.displayName = "List";
36021
36029
  }
36022
36030
  });
36023
- var DefaultEmptyDetail, MasterDetail;
36031
+ function MasterDetail({
36032
+ entity,
36033
+ masterFields,
36034
+ detailFields: _detailFields,
36035
+ // Captured but not used here - detail handled separately
36036
+ loading: externalLoading,
36037
+ isLoading: externalIsLoading,
36038
+ error: externalError,
36039
+ className,
36040
+ ...rest
36041
+ }) {
36042
+ const loading = externalLoading ?? false;
36043
+ const isLoading = externalIsLoading ?? false;
36044
+ const error = externalError ?? null;
36045
+ return /* @__PURE__ */ jsxRuntime.jsx(
36046
+ DataTable,
36047
+ {
36048
+ fields: masterFields,
36049
+ columns: masterFields,
36050
+ entity,
36051
+ isLoading: loading || isLoading,
36052
+ error,
36053
+ className,
36054
+ emptyTitle: "No items found",
36055
+ emptyDescription: "Create your first item to get started.",
36056
+ ...rest
36057
+ }
36058
+ );
36059
+ }
36024
36060
  var init_MasterDetail = __esm({
36025
- "components/organisms/layout/MasterDetail.tsx"() {
36061
+ "components/organisms/MasterDetail.tsx"() {
36062
+ "use client";
36063
+ init_DataTable();
36064
+ MasterDetail.displayName = "MasterDetail";
36065
+ }
36066
+ });
36067
+ var DefaultEmptyDetail; exports.MasterDetailLayout = void 0;
36068
+ var init_MasterDetailLayout = __esm({
36069
+ "components/organisms/layout/MasterDetailLayout.tsx"() {
36026
36070
  init_cn();
36027
36071
  init_Typography();
36028
36072
  DefaultEmptyDetail = () => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center h-full border-2 border-dashed border-border", children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -36033,7 +36077,7 @@ var init_MasterDetail = __esm({
36033
36077
  children: "Select an item to view details"
36034
36078
  }
36035
36079
  ) });
36036
- MasterDetail = ({
36080
+ exports.MasterDetailLayout = ({
36037
36081
  master,
36038
36082
  detail,
36039
36083
  emptyDetail,
@@ -36068,7 +36112,7 @@ var init_MasterDetail = __esm({
36068
36112
  }
36069
36113
  );
36070
36114
  };
36071
- MasterDetail.displayName = "MasterDetail";
36115
+ exports.MasterDetailLayout.displayName = "MasterDetailLayout";
36072
36116
  }
36073
36117
  });
36074
36118
  var COLUMN_CLASSES, ASPECT_CLASSES; exports.MediaGallery = void 0;
@@ -40882,7 +40926,7 @@ var init_Sprite = __esm({
40882
40926
  }
40883
40927
  });
40884
40928
  exports.StatCard = void 0;
40885
- var init_StatCard2 = __esm({
40929
+ var init_StatCard = __esm({
40886
40930
  "components/organisms/StatCard.tsx"() {
40887
40931
  "use client";
40888
40932
  init_cn();
@@ -43242,6 +43286,7 @@ var init_component_registry_generated = __esm({
43242
43286
  init_LoadingState();
43243
43287
  init_MarkdownContent();
43244
43288
  init_MasterDetail();
43289
+ init_MasterDetailLayout();
43245
43290
  init_MatrixQuestion();
43246
43291
  init_MediaGallery();
43247
43292
  init_Meter();
@@ -43309,7 +43354,7 @@ var init_component_registry_generated = __esm({
43309
43354
  init_Stack();
43310
43355
  init_StarRating();
43311
43356
  init_StatBadge();
43312
- init_StatCard2();
43357
+ init_StatCard();
43313
43358
  init_StatDisplay();
43314
43359
  init_StateArchitectBoard();
43315
43360
  init_StateIndicator();
@@ -43536,6 +43581,7 @@ var init_component_registry_generated = __esm({
43536
43581
  "MapViewPattern": MapViewPattern,
43537
43582
  "MarkdownContent": exports.MarkdownContent,
43538
43583
  "MasterDetail": MasterDetail,
43584
+ "MasterDetailLayout": exports.MasterDetailLayout,
43539
43585
  "MatrixQuestion": exports.MatrixQuestion,
43540
43586
  "MediaGallery": exports.MediaGallery,
43541
43587
  "Menu": MenuPattern,
@@ -44635,7 +44681,7 @@ var init_atoms = __esm({
44635
44681
  init_ConfettiEffect();
44636
44682
  init_TypewriterText();
44637
44683
  init_SectionHeader();
44638
- init_StatCard();
44684
+ init_MarketingStatCard();
44639
44685
  init_ContentSection();
44640
44686
  init_PatternTile();
44641
44687
  init_AnimatedReveal();
@@ -44652,7 +44698,7 @@ init_molecules();
44652
44698
  // components/organisms/index.ts
44653
44699
  init_types3();
44654
44700
  init_DataTable();
44655
- init_StatCard2();
44701
+ init_StatCard();
44656
44702
  init_PageHeader();
44657
44703
  init_DetailPanel();
44658
44704
 
@@ -44790,41 +44836,7 @@ init_Split();
44790
44836
  init_Table();
44791
44837
  init_List();
44792
44838
  init_CardGrid();
44793
-
44794
- // components/organisms/MasterDetail.tsx
44795
- init_DataTable();
44796
- function MasterDetail2({
44797
- entity,
44798
- masterFields,
44799
- detailFields: _detailFields,
44800
- // Captured but not used here - detail handled separately
44801
- loading: externalLoading,
44802
- isLoading: externalIsLoading,
44803
- error: externalError,
44804
- className,
44805
- ...rest
44806
- }) {
44807
- const loading = externalLoading ?? false;
44808
- const isLoading = externalIsLoading ?? false;
44809
- const error = externalError ?? null;
44810
- return /* @__PURE__ */ jsxRuntime.jsx(
44811
- DataTable,
44812
- {
44813
- fields: masterFields,
44814
- columns: masterFields,
44815
- entity,
44816
- isLoading: loading || isLoading,
44817
- error,
44818
- className,
44819
- emptyTitle: "No items found",
44820
- emptyDescription: "Create your first item to get started.",
44821
- ...rest
44822
- }
44823
- );
44824
- }
44825
- MasterDetail2.displayName = "MasterDetail";
44826
-
44827
- // components/organisms/index.ts
44839
+ init_MasterDetail();
44828
44840
  init_ConfirmDialog();
44829
44841
  init_WizardContainer();
44830
44842
  init_OrbitalVisualization();
@@ -44842,6 +44854,7 @@ init_types2();
44842
44854
 
44843
44855
  // components/organisms/layout/index.ts
44844
44856
  init_SplitPane();
44857
+ init_MasterDetailLayout();
44845
44858
  init_DashboardGrid();
44846
44859
  init_TabbedContainer();
44847
44860
 
@@ -47646,7 +47659,7 @@ exports.InventoryPanel = InventoryPanel;
47646
47659
  exports.IsometricCanvas = IsometricCanvas;
47647
47660
  exports.ItemSlot = ItemSlot;
47648
47661
  exports.MapView = MapView;
47649
- exports.MasterDetail = MasterDetail2;
47662
+ exports.MasterDetail = MasterDetail;
47650
47663
  exports.MiniMap = MiniMap;
47651
47664
  exports.NegotiatorBoard = NegotiatorBoard;
47652
47665
  exports.NotifyListener = NotifyListener;