@loafmarkets/ui 0.1.81 → 0.1.83

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/index.d.mts CHANGED
@@ -824,6 +824,7 @@ interface TradeHistoryItem {
824
824
  readonly price: number;
825
825
  readonly executedAt: number;
826
826
  readonly fee: number;
827
+ readonly status?: string;
827
828
  }
828
829
  interface TransferHistoryItem {
829
830
  readonly type: 'DEPOSIT' | 'WITHDRAWAL';
@@ -978,12 +979,10 @@ type OfferingProgressCardProps = {
978
979
  raisedAmount?: number;
979
980
  targetAmount?: number;
980
981
  isPrivateClient?: boolean;
981
- /** "default" = full card with header/countdown, "compact" = bar-only, "home" = countdown left + spinner right */
982
- variant?: 'default' | 'compact' | 'home';
983
982
  style?: React__default.CSSProperties;
984
983
  className?: string;
985
984
  };
986
- declare function OfferingProgressCard({ ipoStarted, statusLabel, statusColor, ipoStatus, tokenPrice, offeringValuation, percentSold, totalSold, supplyToSell, opensAt, subscriberCount, raisedAmount, targetAmount, isPrivateClient, variant, style, className, }: OfferingProgressCardProps): react_jsx_runtime.JSX.Element;
985
+ declare function OfferingProgressCard({ ipoStarted, statusLabel, statusColor, ipoStatus, tokenPrice, offeringValuation, percentSold, totalSold, supplyToSell, opensAt, subscriberCount, raisedAmount, targetAmount, isPrivateClient, style, className, }: OfferingProgressCardProps): react_jsx_runtime.JSX.Element;
987
986
 
988
987
  type OwnerBookingProps = {
989
988
  propertyName?: string | null;
package/dist/index.d.ts CHANGED
@@ -824,6 +824,7 @@ interface TradeHistoryItem {
824
824
  readonly price: number;
825
825
  readonly executedAt: number;
826
826
  readonly fee: number;
827
+ readonly status?: string;
827
828
  }
828
829
  interface TransferHistoryItem {
829
830
  readonly type: 'DEPOSIT' | 'WITHDRAWAL';
@@ -978,12 +979,10 @@ type OfferingProgressCardProps = {
978
979
  raisedAmount?: number;
979
980
  targetAmount?: number;
980
981
  isPrivateClient?: boolean;
981
- /** "default" = full card with header/countdown, "compact" = bar-only, "home" = countdown left + spinner right */
982
- variant?: 'default' | 'compact' | 'home';
983
982
  style?: React__default.CSSProperties;
984
983
  className?: string;
985
984
  };
986
- declare function OfferingProgressCard({ ipoStarted, statusLabel, statusColor, ipoStatus, tokenPrice, offeringValuation, percentSold, totalSold, supplyToSell, opensAt, subscriberCount, raisedAmount, targetAmount, isPrivateClient, variant, style, className, }: OfferingProgressCardProps): react_jsx_runtime.JSX.Element;
985
+ declare function OfferingProgressCard({ ipoStarted, statusLabel, statusColor, ipoStatus, tokenPrice, offeringValuation, percentSold, totalSold, supplyToSell, opensAt, subscriberCount, raisedAmount, targetAmount, isPrivateClient, style, className, }: OfferingProgressCardProps): react_jsx_runtime.JSX.Element;
987
986
 
988
987
  type OwnerBookingProps = {
989
988
  propertyName?: string | null;
package/dist/index.js CHANGED
@@ -2690,7 +2690,7 @@ var PropertyTour = React5__namespace.forwardRef(
2690
2690
  }
2691
2691
  );
2692
2692
  PropertyTour.displayName = "PropertyTour";
2693
- var ITEMS_PER_PAGE = 5;
2693
+ var ITEMS_PER_PAGE = 4;
2694
2694
  var ensureAnimationsInjected = () => {
2695
2695
  if (typeof document === "undefined") return;
2696
2696
  if (document.getElementById("property-news-updates-animations")) return;
@@ -2938,10 +2938,10 @@ var PropertyNewsUpdates = React5__namespace.forwardRef(
2938
2938
  children: [
2939
2939
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
2940
2940
  /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", alignItems: "center", gap: "0.5rem" }, children: [
2941
- isHomeVariant && /* @__PURE__ */ jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "currentColor", style: { color: "var(--color-text, #fff)", flexShrink: 0, display: "block" }, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-5 14H4v-4h11v4zm0-5H4V9h11v4zm5 5h-4V9h4v9z" }) }),
2941
+ isHomeVariant && /* @__PURE__ */ jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "20", height: "20", viewBox: "0 0 24 24", fill: "currentColor", style: { color: "var(--color-text, #fff)" }, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-5 14H4v-4h11v4zm0-5H4V9h11v4zm5 5h-4V9h4v9z" }) }),
2942
2942
  isPurchaseVariant && /* @__PURE__ */ jsxRuntime.jsx("span", { style: { display: "inline-block", width: "8px", height: "8px", borderRadius: "50%", backgroundColor: "#0ecb81", boxShadow: "0 0 8px rgba(14,203,129,0.8)", animation: "propertyNewsPulse 1.5s infinite" } }),
2943
2943
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
2944
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: isHomeVariant ? "text-base font-semibold text-white" : "text-lg font-semibold text-white", style: { margin: 0 }, children: resolvedHeading }),
2944
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: isHomeVariant ? "text-base font-semibold text-white" : "text-lg font-semibold text-white", children: resolvedHeading }),
2945
2945
  subheading ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-white/60", children: subheading }) : null
2946
2946
  ] })
2947
2947
  ] }),
@@ -2956,7 +2956,7 @@ var PropertyNewsUpdates = React5__namespace.forwardRef(
2956
2956
  "LIVE"
2957
2957
  ] }) : null
2958
2958
  ] }),
2959
- isHomeVariant && /* @__PURE__ */ jsxRuntime.jsx("div", { style: { display: "flex", gap: "1.5rem", marginTop: "0.75rem", marginBottom: "0.5rem", borderBottom: "1px solid rgba(255, 255, 255, 0.08)", paddingBottom: "0.5rem" }, children: ["all", "property", "market"].map((tab) => /* @__PURE__ */ jsxRuntime.jsx(
2959
+ isHomeVariant && /* @__PURE__ */ jsxRuntime.jsx("div", { style: { display: "flex", gap: 0, marginTop: "0.75rem", marginBottom: "0.25rem" }, children: ["all", "property", "market"].map((tab) => /* @__PURE__ */ jsxRuntime.jsx(
2960
2960
  "button",
2961
2961
  {
2962
2962
  type: "button",
@@ -2965,8 +2965,7 @@ var PropertyNewsUpdates = React5__namespace.forwardRef(
2965
2965
  background: "transparent",
2966
2966
  border: "none",
2967
2967
  borderBottom: homeTab === tab ? "2px solid var(--color-accent, #f0b90b)" : "2px solid transparent",
2968
- padding: "0 0 0.5rem 0",
2969
- marginBottom: "-1px",
2968
+ padding: "0.5rem 0.75rem",
2970
2969
  fontSize: "0.75rem",
2971
2970
  fontWeight: homeTab === tab ? 600 : 400,
2972
2971
  color: homeTab === tab ? "var(--color-text, #fff)" : "var(--color-text-secondary, #848e9c)",
@@ -2980,7 +2979,7 @@ var PropertyNewsUpdates = React5__namespace.forwardRef(
2980
2979
  /* @__PURE__ */ jsxRuntime.jsx(
2981
2980
  "div",
2982
2981
  {
2983
- className: cn("flex flex-1 flex-col overflow-hidden", isHomeVariant ? "mt-2 gap-0" : "mt-4 gap-3"),
2982
+ className: "mt-4 flex flex-1 flex-col gap-3 overflow-hidden",
2984
2983
  style: !isPurchaseVariant && !isHomeVariant ? { minHeight: `${ITEMS_PER_PAGE * 86}px` } : void 0,
2985
2984
  children: isPurchaseVariant ? purchaseItems.length > 0 ? purchaseItems.slice(0, 7).map((purchase, index) => {
2986
2985
  const maxAmount = 6e4;
@@ -3019,7 +3018,7 @@ var PropertyNewsUpdates = React5__namespace.forwardRef(
3019
3018
  style: {
3020
3019
  width: "100%",
3021
3020
  textAlign: "left",
3022
- backgroundColor: "transparent",
3021
+ background: "transparent",
3023
3022
  border: "none",
3024
3023
  cursor: "pointer",
3025
3024
  padding: "0.75rem 0",
@@ -3028,22 +3027,11 @@ var PropertyNewsUpdates = React5__namespace.forwardRef(
3028
3027
  justifyContent: "space-between",
3029
3028
  alignItems: "flex-start",
3030
3029
  gap: "0.5rem",
3031
- color: "inherit",
3032
- transition: "background-color 0.15s"
3033
- },
3034
- onMouseEnter: (e) => {
3035
- e.currentTarget.style.backgroundColor = "rgba(255,255,255,0.04)";
3036
- const title = e.currentTarget.querySelector("h3");
3037
- if (title) title.style.color = "var(--color-accent, #E6C87E)";
3038
- },
3039
- onMouseLeave: (e) => {
3040
- e.currentTarget.style.backgroundColor = "transparent";
3041
- const title = e.currentTarget.querySelector("h3");
3042
- if (title) title.style.color = "#f8f9fa";
3030
+ color: "inherit"
3043
3031
  },
3044
3032
  children: [
3045
3033
  /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { flex: 1 }, children: [
3046
- /* @__PURE__ */ jsxRuntime.jsx("h3", { style: { fontSize: "0.85rem", fontWeight: 400, marginBottom: "0.25rem", color: "#f8f9fa", lineHeight: 1.4, transition: "color 0.15s" }, children: item.title }),
3034
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { style: { fontSize: "0.85rem", fontWeight: 400, marginBottom: "0.25rem", color: "#f8f9fa", lineHeight: 1.4 }, children: item.title }),
3047
3035
  /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", gap: "0.5rem", alignItems: "center", flexWrap: "wrap" }, children: [
3048
3036
  /* @__PURE__ */ jsxRuntime.jsx("span", { style: { color: "#848e9c", fontSize: "0.7rem" }, children: typeof item.date === "string" ? item.date : formatDate(item.date) }),
3049
3037
  item.source && /* @__PURE__ */ jsxRuntime.jsx("span", { style: { padding: "0.1rem 0.4rem", borderRadius: "3px", fontSize: "0.62rem", fontWeight: 500, backgroundColor: "rgba(255,255,255,0.07)", color: "#848e9c", whiteSpace: "nowrap" }, children: item.source }),
@@ -3133,8 +3121,8 @@ var PropertyNewsUpdates = React5__namespace.forwardRef(
3133
3121
  type: "button",
3134
3122
  onClick: () => setHomePage((p) => Math.max(0, p - 1)),
3135
3123
  disabled: homePage === 0,
3136
- style: { background: "transparent", border: "1px solid rgba(255,255,255,0.15)", borderRadius: "50%", width: "28px", height: "28px", display: "flex", alignItems: "center", justifyContent: "center", padding: 0, cursor: homePage === 0 ? "not-allowed" : "pointer", opacity: homePage === 0 ? 0.4 : 1, color: "rgba(255,255,255,0.6)" },
3137
- children: /* @__PURE__ */ jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "14", height: "14", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z" }) })
3124
+ style: { background: "transparent", border: "1px solid rgba(255,255,255,0.15)", borderRadius: "999px", padding: "0.2rem 0.75rem", fontSize: "0.7rem", textTransform: "uppercase", letterSpacing: "0.15em", cursor: homePage === 0 ? "not-allowed" : "pointer", opacity: homePage === 0 ? 0.4 : 1, color: "rgba(255,255,255,0.6)" },
3125
+ children: "Prev"
3138
3126
  }
3139
3127
  ),
3140
3128
  /* @__PURE__ */ jsxRuntime.jsxs("span", { style: { fontSize: "0.7rem", color: "rgba(255,255,255,0.5)" }, children: [
@@ -3148,8 +3136,8 @@ var PropertyNewsUpdates = React5__namespace.forwardRef(
3148
3136
  type: "button",
3149
3137
  onClick: () => setHomePage((p) => Math.min(homeTotalPages - 1, p + 1)),
3150
3138
  disabled: homePage >= homeTotalPages - 1,
3151
- style: { background: "transparent", border: "1px solid rgba(255,255,255,0.15)", borderRadius: "50%", width: "28px", height: "28px", display: "flex", alignItems: "center", justifyContent: "center", padding: 0, cursor: homePage >= homeTotalPages - 1 ? "not-allowed" : "pointer", opacity: homePage >= homeTotalPages - 1 ? 0.4 : 1, color: "rgba(255,255,255,0.6)" },
3152
- children: /* @__PURE__ */ jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "14", height: "14", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z" }) })
3139
+ style: { background: "transparent", border: "1px solid rgba(255,255,255,0.15)", borderRadius: "999px", padding: "0.2rem 0.75rem", fontSize: "0.7rem", textTransform: "uppercase", letterSpacing: "0.15em", cursor: homePage >= homeTotalPages - 1 ? "not-allowed" : "pointer", opacity: homePage >= homeTotalPages - 1 ? 0.4 : 1, color: "rgba(255,255,255,0.6)" },
3140
+ children: "Next"
3153
3141
  }
3154
3142
  )
3155
3143
  ] }),
@@ -3160,9 +3148,8 @@ var PropertyNewsUpdates = React5__namespace.forwardRef(
3160
3148
  type: "button",
3161
3149
  onClick: () => setPage((p) => Math.max(0, p - 1)),
3162
3150
  disabled: page === 0,
3163
- className: cn("rounded-full border border-white/15 flex items-center justify-center", page === 0 ? "opacity-40 cursor-not-allowed" : "hover:border-white/40"),
3164
- style: { width: "28px", height: "28px", padding: 0, background: "transparent", color: "rgba(255,255,255,0.6)" },
3165
- children: /* @__PURE__ */ jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "14", height: "14", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z" }) })
3151
+ className: cn("rounded-full border border-white/15 px-3 py-1 uppercase tracking-[0.2em]", page === 0 ? "opacity-40 cursor-not-allowed" : "hover:border-white/40"),
3152
+ children: "Prev"
3166
3153
  }
3167
3154
  ),
3168
3155
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-medium text-white/70", children: [
@@ -3177,9 +3164,8 @@ var PropertyNewsUpdates = React5__namespace.forwardRef(
3177
3164
  type: "button",
3178
3165
  onClick: () => setPage((p) => Math.min(totalPages - 1, p + 1)),
3179
3166
  disabled: page >= totalPages - 1,
3180
- className: cn("rounded-full border border-white/15 flex items-center justify-center", page >= totalPages - 1 ? "opacity-40 cursor-not-allowed" : "hover:border-white/40"),
3181
- style: { width: "28px", height: "28px", padding: 0, background: "transparent", color: "rgba(255,255,255,0.6)" },
3182
- children: /* @__PURE__ */ jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "14", height: "14", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z" }) })
3167
+ className: cn("rounded-full border border-white/15 px-3 py-1 uppercase tracking-[0.2em]", page >= totalPages - 1 ? "opacity-40 cursor-not-allowed" : "hover:border-white/40"),
3168
+ children: "Next"
3183
3169
  }
3184
3170
  )
3185
3171
  ] }),
@@ -9684,7 +9670,6 @@ function OfferingProgressCard({
9684
9670
  raisedAmount,
9685
9671
  targetAmount,
9686
9672
  isPrivateClient = false,
9687
- variant = "default",
9688
9673
  style,
9689
9674
  className
9690
9675
  }) {
@@ -9716,108 +9701,6 @@ function OfferingProgressCard({
9716
9701
  const interval = setInterval(() => setCountdown(calculateCountdown()), 1e3);
9717
9702
  return () => clearInterval(interval);
9718
9703
  }, [opensAt]);
9719
- if (variant === "compact") {
9720
- return /* @__PURE__ */ jsxRuntime.jsxs(CompactContainer, { style, className, children: [
9721
- /* @__PURE__ */ jsxRuntime.jsx(ProgressBarOuter, { children: /* @__PURE__ */ jsxRuntime.jsx(ProgressBarInner, { style: { width: `${Math.min(percentSold, 100)}%` } }) }),
9722
- /* @__PURE__ */ jsxRuntime.jsxs(ProgressInfo, { children: [
9723
- /* @__PURE__ */ jsxRuntime.jsxs(ProgressSubscribers, { children: [
9724
- "Subscribers: ",
9725
- subscriberCount.toLocaleString()
9726
- ] }),
9727
- /* @__PURE__ */ jsxRuntime.jsxs(ProgressAmounts, { children: [
9728
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "raised", children: formatCurrency3(computedRaised) }),
9729
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "target", children: [
9730
- " / ",
9731
- formatCurrency3(computedTarget)
9732
- ] })
9733
- ] })
9734
- ] })
9735
- ] });
9736
- }
9737
- if (variant === "home") {
9738
- const isPreLive = !ipoStarted && ipoStatus !== "CLOSED" && ipoStatus !== "CANCELLED";
9739
- return /* @__PURE__ */ jsxRuntime.jsxs(Container, { style, className, children: [
9740
- /* @__PURE__ */ jsxRuntime.jsxs(Header2, { children: [
9741
- /* @__PURE__ */ jsxRuntime.jsxs("h3", { children: [
9742
- /* @__PURE__ */ jsxRuntime.jsx(fa.FaChartLine, {}),
9743
- " Offering Progress"
9744
- ] }),
9745
- /* @__PURE__ */ jsxRuntime.jsx("div", { style: { display: "flex", alignItems: "center", gap: "0.4rem" }, children: ipoStarted ? /* @__PURE__ */ jsxRuntime.jsxs(StatusSpan, { $color: "#0ecb81", children: [
9746
- /* @__PURE__ */ jsxRuntime.jsx(StatusDot, { $color: "#0ecb81", $pulse: true }),
9747
- "LIVE"
9748
- ] }) : /* @__PURE__ */ jsxRuntime.jsxs(StatusSpan, { $color: statusColor || "#D4AF37", children: [
9749
- /* @__PURE__ */ jsxRuntime.jsx(StatusDot, { $color: statusColor || "#D4AF37" }),
9750
- statusLabel || "Preparing"
9751
- ] }) })
9752
- ] }),
9753
- isPreLive ? /* @__PURE__ */ jsxRuntime.jsxs(HomePreLiveRow, { children: [
9754
- countdown ? /* @__PURE__ */ jsxRuntime.jsxs(HomeCountdownSide, { children: [
9755
- /* @__PURE__ */ jsxRuntime.jsx(CountdownLabel, { children: "Opens In" }),
9756
- /* @__PURE__ */ jsxRuntime.jsxs(CountdownDigits, { children: [
9757
- /* @__PURE__ */ jsxRuntime.jsx(CountdownNumber, { children: String(countdown.days).padStart(2, "0") }),
9758
- /* @__PURE__ */ jsxRuntime.jsx(CountdownUnitLabel, { children: "D" }),
9759
- /* @__PURE__ */ jsxRuntime.jsx(CountdownSeparator, { children: ":" }),
9760
- /* @__PURE__ */ jsxRuntime.jsx(CountdownNumber, { children: String(countdown.hours).padStart(2, "0") }),
9761
- /* @__PURE__ */ jsxRuntime.jsx(CountdownUnitLabel, { children: "H" }),
9762
- /* @__PURE__ */ jsxRuntime.jsx(CountdownSeparator, { children: ":" }),
9763
- /* @__PURE__ */ jsxRuntime.jsx(CountdownNumber, { children: String(countdown.minutes).padStart(2, "0") }),
9764
- /* @__PURE__ */ jsxRuntime.jsx(CountdownUnitLabel, { children: "M" }),
9765
- /* @__PURE__ */ jsxRuntime.jsx(CountdownSeparator, { children: ":" }),
9766
- /* @__PURE__ */ jsxRuntime.jsx(CountdownNumber, { children: String(countdown.seconds).padStart(2, "0") }),
9767
- /* @__PURE__ */ jsxRuntime.jsx(CountdownUnitLabel, { children: "S" })
9768
- ] })
9769
- ] }) : /* @__PURE__ */ jsxRuntime.jsx(HomeCountdownSide, { children: /* @__PURE__ */ jsxRuntime.jsx(PreLiveStatus, { $statusColor: statusColor, children: "Sale Not Yet Open" }) }),
9770
- /* @__PURE__ */ jsxRuntime.jsxs(HomeUnitsSide, { children: [
9771
- /* @__PURE__ */ jsxRuntime.jsx(HomeUnitsLabel, { children: "Units Subscribed" }),
9772
- /* @__PURE__ */ jsxRuntime.jsxs(HomeUnitsValue, { children: [
9773
- /* @__PURE__ */ jsxRuntime.jsx(HomeSpinner, {}),
9774
- /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
9775
- " / ",
9776
- supplyToSell.toLocaleString()
9777
- ] })
9778
- ] })
9779
- ] })
9780
- ] }) : /* @__PURE__ */ jsxRuntime.jsxs(LiveBody, { children: [
9781
- /* @__PURE__ */ jsxRuntime.jsxs(LiveTopRow, { children: [
9782
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
9783
- /* @__PURE__ */ jsxRuntime.jsxs(LiveLabel, { children: [
9784
- "Offering Subscribed ",
9785
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: "\u24D8" })
9786
- ] }),
9787
- /* @__PURE__ */ jsxRuntime.jsxs(LivePercent, { children: [
9788
- percentSold.toFixed(1),
9789
- "%",
9790
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "arrow", children: "\u2191" })
9791
- ] })
9792
- ] }),
9793
- /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { textAlign: "right" }, children: [
9794
- /* @__PURE__ */ jsxRuntime.jsx(LiveLabel, { children: "Units Subscribed" }),
9795
- /* @__PURE__ */ jsxRuntime.jsxs(UnitsValue, { children: [
9796
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: totalSold.toLocaleString() }),
9797
- /* @__PURE__ */ jsxRuntime.jsxs("small", { children: [
9798
- "/ ",
9799
- supplyToSell.toLocaleString()
9800
- ] })
9801
- ] })
9802
- ] })
9803
- ] }),
9804
- /* @__PURE__ */ jsxRuntime.jsx(ProgressBarOuter, { children: /* @__PURE__ */ jsxRuntime.jsx(ProgressBarInner, { style: { width: `${Math.min(percentSold, 100)}%` } }) }),
9805
- /* @__PURE__ */ jsxRuntime.jsxs(ProgressInfo, { children: [
9806
- /* @__PURE__ */ jsxRuntime.jsxs(ProgressSubscribers, { children: [
9807
- "Subscribers: ",
9808
- subscriberCount.toLocaleString()
9809
- ] }),
9810
- /* @__PURE__ */ jsxRuntime.jsxs(ProgressAmounts, { children: [
9811
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "raised", children: formatCurrency3(computedRaised) }),
9812
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "target", children: [
9813
- " / ",
9814
- formatCurrency3(computedTarget)
9815
- ] })
9816
- ] })
9817
- ] })
9818
- ] })
9819
- ] });
9820
- }
9821
9704
  return /* @__PURE__ */ jsxRuntime.jsxs(Container, { style, className, children: [
9822
9705
  /* @__PURE__ */ jsxRuntime.jsxs(Header2, { children: [
9823
9706
  /* @__PURE__ */ jsxRuntime.jsxs("h3", { children: [
@@ -9886,7 +9769,7 @@ function OfferingProgressCard({
9886
9769
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: "\u24D8" })
9887
9770
  ] }),
9888
9771
  /* @__PURE__ */ jsxRuntime.jsxs(LivePercent, { children: [
9889
- percentSold.toFixed(1),
9772
+ percentSold < 0.1 && percentSold > 0 ? percentSold.toFixed(3) : percentSold.toFixed(1),
9890
9773
  "%",
9891
9774
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "arrow", children: "\u2191" })
9892
9775
  ] })
@@ -10119,59 +10002,6 @@ var ProgressAmounts = styled25__default.default.div`
10119
10002
  .raised { color: #D4AF37; }
10120
10003
  .target { color: rgba(255,255,255,0.3); }
10121
10004
  `;
10122
- var CompactContainer = styled25__default.default.div`
10123
- width: 100%;
10124
- margin: 1.5rem 0;
10125
- display: flex;
10126
- flex-direction: column;
10127
- gap: 0.5rem;
10128
- `;
10129
- var HomePreLiveRow = styled25__default.default.div`
10130
- display: flex;
10131
- align-items: center;
10132
- justify-content: space-between;
10133
- padding-top: 1rem;
10134
- `;
10135
- var HomeCountdownSide = styled25__default.default.div`
10136
- display: flex;
10137
- flex-direction: column;
10138
- align-items: center;
10139
- flex: 1;
10140
- `;
10141
- var HomeUnitsSide = styled25__default.default.div`
10142
- text-align: center;
10143
- flex-shrink: 0;
10144
- `;
10145
- var HomeUnitsLabel = styled25__default.default.div`
10146
- font-size: 0.6rem;
10147
- color: var(--color-text-secondary);
10148
- text-transform: uppercase;
10149
- letter-spacing: 0.1em;
10150
- margin-bottom: 0.2rem;
10151
- `;
10152
- var HomeUnitsValue = styled25__default.default.div`
10153
- font-size: 1.1rem;
10154
- font-weight: 700;
10155
- font-family: monospace;
10156
- span {
10157
- color: var(--color-text-secondary);
10158
- font-weight: 400;
10159
- }
10160
- `;
10161
- var HomeSpinner = styled25__default.default.span`
10162
- display: inline-block;
10163
- width: 14px;
10164
- height: 14px;
10165
- border: 2px solid rgba(255, 255, 255, 0.1);
10166
- border-top-color: var(--color-accent, #f0b90b);
10167
- border-radius: 50%;
10168
- animation: homeSpin 1s linear infinite;
10169
- vertical-align: middle;
10170
- margin-right: 0.15rem;
10171
- @keyframes homeSpin {
10172
- to { transform: rotate(360deg); }
10173
- }
10174
- `;
10175
10005
  var MAX_DISPLAY_AMOUNT = 6e4;
10176
10006
  var formatCurrency4 = (amount) => {
10177
10007
  if (amount >= 1e6) return `$${(amount / 1e6).toFixed(2)}M`;
@@ -11849,7 +11679,7 @@ function PortfolioActivityPanel({
11849
11679
  formatTimestamp(trade.executedAt)
11850
11680
  ] })
11851
11681
  ] }),
11852
- /* @__PURE__ */ jsxRuntime.jsx(
11682
+ trade.status === "SETTLEMENT_FAILED" ? /* @__PURE__ */ jsxRuntime.jsx(ActivityTag, { $color: "#f6465d", $bg: "rgba(246,70,93,0.12)", children: "Failed" }) : /* @__PURE__ */ jsxRuntime.jsx(
11853
11683
  ActivityTag,
11854
11684
  {
11855
11685
  $color: trade.side === "SELL" ? "#f6465d" : "#0ecb81",
@@ -13928,7 +13758,7 @@ function PropertyValuation({
13928
13758
  /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "0.5rem" }, children: [
13929
13759
  /* @__PURE__ */ jsxRuntime.jsxs(PricingModelDetail, { children: [
13930
13760
  /* @__PURE__ */ jsxRuntime.jsx(PropertyDetailLabel, { children: "Last Price" }),
13931
- /* @__PURE__ */ jsxRuntime.jsx(PricingDetailValue, { children: formatCurrency6(lastPrice) })
13761
+ /* @__PURE__ */ jsxRuntime.jsx(PricingDetailValue, { children: formatCompact(lastPrice) })
13932
13762
  ] }),
13933
13763
  /* @__PURE__ */ jsxRuntime.jsxs(PricingModelDetail, { children: [
13934
13764
  /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center", width: "100%" }, children: [
@@ -13939,11 +13769,11 @@ function PropertyValuation({
13939
13769
  ] })
13940
13770
  ] }),
13941
13771
  /* @__PURE__ */ jsxRuntime.jsxs(PricingDetailValue, { style: { color: "var(--color-accent)", fontWeight: "bold" }, children: [
13942
- formatCurrency6(fairValue),
13772
+ formatCompact(fairValue),
13943
13773
  " ",
13944
13774
  /* @__PURE__ */ jsxRuntime.jsxs("span", { style: { fontSize: "0.85em", fontWeight: "normal", opacity: 0.8 }, children: [
13945
13775
  "(",
13946
- formatCurrency6(fairValue * tokensOutstanding, { maximumFractionDigits: 0 }),
13776
+ formatCompact(fairValue * tokensOutstanding),
13947
13777
  ")"
13948
13778
  ] })
13949
13779
  ] })
@@ -13960,7 +13790,7 @@ function PropertyValuation({
13960
13790
  /* @__PURE__ */ jsxRuntime.jsx(GaugeIndicator, { type: "fairValue", position: 50 }),
13961
13791
  /* @__PURE__ */ jsxRuntime.jsxs(GaugePriceTag, { position: gaugePosition, children: [
13962
13792
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Last Price" }),
13963
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: formatCurrency6(lastPrice) })
13793
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: formatCompact(lastPrice) })
13964
13794
  ] }),
13965
13795
  /* @__PURE__ */ jsxRuntime.jsx(GaugeIndicator, { type: "lastPrice", position: gaugePosition })
13966
13796
  ] }),
@@ -13968,30 +13798,30 @@ function PropertyValuation({
13968
13798
  /* @__PURE__ */ jsxRuntime.jsx(ValuationItem, { children: /* @__PURE__ */ jsxRuntime.jsxs(ValuationValue, { style: { color: "#4CAF50" }, children: [
13969
13799
  /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
13970
13800
  "< ",
13971
- formatCurrency6(undervaluedThreshold)
13801
+ formatCompact(undervaluedThreshold)
13972
13802
  ] }),
13973
13803
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "valuation-amount-span", style: { fontSize: "0.8rem", fontWeight: "normal" }, children: [
13974
13804
  "(",
13975
- formatMillions(undervaluedThreshold * tokensOutstanding),
13805
+ formatCompact(undervaluedThreshold * tokensOutstanding),
13976
13806
  ")"
13977
13807
  ] })
13978
13808
  ] }) }),
13979
13809
  /* @__PURE__ */ jsxRuntime.jsx(ValuationItem, { children: /* @__PURE__ */ jsxRuntime.jsxs(ValuationValue, { style: { color: "var(--color-accent)" }, children: [
13980
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: formatCurrency6(fairValue) }),
13810
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: formatCompact(fairValue) }),
13981
13811
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "valuation-amount-span", style: { fontSize: "0.8rem", fontWeight: "normal" }, children: [
13982
13812
  "(",
13983
- formatMillions(fairValue * tokensOutstanding),
13813
+ formatCompact(fairValue * tokensOutstanding),
13984
13814
  ")"
13985
13815
  ] })
13986
13816
  ] }) }),
13987
13817
  /* @__PURE__ */ jsxRuntime.jsx(ValuationItem, { children: /* @__PURE__ */ jsxRuntime.jsxs(ValuationValue, { style: { color: "#F44336" }, children: [
13988
13818
  /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
13989
13819
  "> ",
13990
- formatCurrency6(overvaluedThreshold)
13820
+ formatCompact(overvaluedThreshold)
13991
13821
  ] }),
13992
13822
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "valuation-amount-span", style: { fontSize: "0.8rem", fontWeight: "normal" }, children: [
13993
13823
  "(",
13994
- formatMillions(overvaluedThreshold * tokensOutstanding),
13824
+ formatCompact(overvaluedThreshold * tokensOutstanding),
13995
13825
  ")"
13996
13826
  ] })
13997
13827
  ] }) })
@@ -14198,6 +14028,14 @@ function formatMillions(value) {
14198
14028
  }
14199
14029
  return `$${(value / 1e6).toFixed(2)}m`;
14200
14030
  }
14031
+ function formatCompact(value) {
14032
+ if (value == null || !Number.isFinite(value)) return "\u2014";
14033
+ const abs = Math.abs(value);
14034
+ if (abs >= 1e9) return `$${(value / 1e9).toFixed(2)}B`;
14035
+ if (abs >= 1e6) return `$${(value / 1e6).toFixed(2)}M`;
14036
+ if (abs >= 1e3) return `$${(value / 1e3).toFixed(1)}K`;
14037
+ return formatCurrency6(value);
14038
+ }
14201
14039
  function formatBedroomLabel(bedrooms) {
14202
14040
  if (!Number.isFinite(bedrooms)) return "\u2014";
14203
14041
  return `${bedrooms} Bed`;
@@ -14378,9 +14216,10 @@ var PricingModelCard = styled25__default.default.div`
14378
14216
  var PricingModelHeader = styled25__default.default.div`
14379
14217
  display: flex;
14380
14218
  justify-content: space-between;
14381
- align-items: center;
14219
+ align-items: flex-start;
14382
14220
  margin-bottom: 1.5rem;
14383
14221
  gap: 1rem;
14222
+ flex-wrap: wrap;
14384
14223
 
14385
14224
  .valuation-info {
14386
14225
  display: flex;
@@ -14388,6 +14227,7 @@ var PricingModelHeader = styled25__default.default.div`
14388
14227
  gap: 0.25rem;
14389
14228
  font-size: 0.85rem;
14390
14229
  color: rgba(255, 255, 255, 0.75);
14230
+ flex-shrink: 0;
14391
14231
  }
14392
14232
  `;
14393
14233
  var PricingModelTitle = styled25__default.default.h3`
@@ -14454,15 +14294,31 @@ var ValuationDetails = styled25__default.default.div`
14454
14294
  display: flex;
14455
14295
  justify-content: space-between;
14456
14296
  margin-top: 1rem;
14297
+ gap: 0.25rem;
14457
14298
  `;
14458
14299
  var ValuationItem = styled25__default.default.div`
14459
14300
  display: flex;
14460
14301
  flex-direction: column;
14302
+ min-width: 0;
14303
+ overflow: hidden;
14461
14304
  `;
14462
14305
  var ValuationValue = styled25__default.default.div`
14463
14306
  font-size: 1rem;
14464
14307
  font-weight: 600;
14465
14308
  color: #fff;
14309
+ display: flex;
14310
+ flex-direction: column;
14311
+ gap: 2px;
14312
+ overflow-wrap: break-word;
14313
+ word-break: break-word;
14314
+
14315
+ @media (max-width: 480px) {
14316
+ font-size: 0.72rem;
14317
+
14318
+ .valuation-amount-span {
14319
+ display: none;
14320
+ }
14321
+ }
14466
14322
  `;
14467
14323
  var ChartContainer = styled25__default.default.div`
14468
14324
  width: 100%;