@loafmarkets/ui 0.1.85 → 0.1.86

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.mjs CHANGED
@@ -2664,7 +2664,7 @@ var PropertyTour = React5.forwardRef(
2664
2664
  }
2665
2665
  );
2666
2666
  PropertyTour.displayName = "PropertyTour";
2667
- var ITEMS_PER_PAGE = 4;
2667
+ var ITEMS_PER_PAGE = 5;
2668
2668
  var ensureAnimationsInjected = () => {
2669
2669
  if (typeof document === "undefined") return;
2670
2670
  if (document.getElementById("property-news-updates-animations")) return;
@@ -2912,10 +2912,10 @@ var PropertyNewsUpdates = React5.forwardRef(
2912
2912
  children: [
2913
2913
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
2914
2914
  /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "0.5rem" }, children: [
2915
- isHomeVariant && /* @__PURE__ */ 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__ */ 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" }) }),
2915
+ isHomeVariant && /* @__PURE__ */ 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__ */ 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" }) }),
2916
2916
  isPurchaseVariant && /* @__PURE__ */ 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" } }),
2917
2917
  /* @__PURE__ */ jsxs("div", { children: [
2918
- /* @__PURE__ */ jsx("p", { className: isHomeVariant ? "text-base font-semibold text-white" : "text-lg font-semibold text-white", children: resolvedHeading }),
2918
+ /* @__PURE__ */ jsx("p", { className: isHomeVariant ? "text-base font-semibold text-white" : "text-lg font-semibold text-white", style: { margin: 0 }, children: resolvedHeading }),
2919
2919
  subheading ? /* @__PURE__ */ jsx("p", { className: "text-sm text-white/60", children: subheading }) : null
2920
2920
  ] })
2921
2921
  ] }),
@@ -2930,7 +2930,7 @@ var PropertyNewsUpdates = React5.forwardRef(
2930
2930
  "LIVE"
2931
2931
  ] }) : null
2932
2932
  ] }),
2933
- isHomeVariant && /* @__PURE__ */ jsx("div", { style: { display: "flex", gap: 0, marginTop: "0.75rem", marginBottom: "0.25rem" }, children: ["all", "property", "market"].map((tab) => /* @__PURE__ */ jsx(
2933
+ isHomeVariant && /* @__PURE__ */ 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__ */ jsx(
2934
2934
  "button",
2935
2935
  {
2936
2936
  type: "button",
@@ -2939,7 +2939,8 @@ var PropertyNewsUpdates = React5.forwardRef(
2939
2939
  background: "transparent",
2940
2940
  border: "none",
2941
2941
  borderBottom: homeTab === tab ? "2px solid var(--color-accent, #f0b90b)" : "2px solid transparent",
2942
- padding: "0.5rem 0.75rem",
2942
+ padding: "0 0 0.5rem 0",
2943
+ marginBottom: "-1px",
2943
2944
  fontSize: "0.75rem",
2944
2945
  fontWeight: homeTab === tab ? 600 : 400,
2945
2946
  color: homeTab === tab ? "var(--color-text, #fff)" : "var(--color-text-secondary, #848e9c)",
@@ -2953,7 +2954,7 @@ var PropertyNewsUpdates = React5.forwardRef(
2953
2954
  /* @__PURE__ */ jsx(
2954
2955
  "div",
2955
2956
  {
2956
- className: "mt-4 flex flex-1 flex-col gap-3 overflow-hidden",
2957
+ className: cn("flex flex-1 flex-col overflow-hidden", isHomeVariant ? "mt-2 gap-0" : "mt-4 gap-3"),
2957
2958
  style: !isPurchaseVariant && !isHomeVariant ? { minHeight: `${ITEMS_PER_PAGE * 86}px` } : void 0,
2958
2959
  children: isPurchaseVariant ? purchaseItems.length > 0 ? purchaseItems.slice(0, 7).map((purchase, index) => {
2959
2960
  const maxAmount = 6e4;
@@ -2992,7 +2993,7 @@ var PropertyNewsUpdates = React5.forwardRef(
2992
2993
  style: {
2993
2994
  width: "100%",
2994
2995
  textAlign: "left",
2995
- background: "transparent",
2996
+ backgroundColor: "transparent",
2996
2997
  border: "none",
2997
2998
  cursor: "pointer",
2998
2999
  padding: "0.75rem 0",
@@ -3001,11 +3002,22 @@ var PropertyNewsUpdates = React5.forwardRef(
3001
3002
  justifyContent: "space-between",
3002
3003
  alignItems: "flex-start",
3003
3004
  gap: "0.5rem",
3004
- color: "inherit"
3005
+ color: "inherit",
3006
+ transition: "background-color 0.15s"
3007
+ },
3008
+ onMouseEnter: (e) => {
3009
+ e.currentTarget.style.backgroundColor = "rgba(255,255,255,0.04)";
3010
+ const title = e.currentTarget.querySelector("h3");
3011
+ if (title) title.style.color = "var(--color-accent, #E6C87E)";
3012
+ },
3013
+ onMouseLeave: (e) => {
3014
+ e.currentTarget.style.backgroundColor = "transparent";
3015
+ const title = e.currentTarget.querySelector("h3");
3016
+ if (title) title.style.color = "#f8f9fa";
3005
3017
  },
3006
3018
  children: [
3007
3019
  /* @__PURE__ */ jsxs("div", { style: { flex: 1 }, children: [
3008
- /* @__PURE__ */ jsx("h3", { style: { fontSize: "0.85rem", fontWeight: 400, marginBottom: "0.25rem", color: "#f8f9fa", lineHeight: 1.4 }, children: item.title }),
3020
+ /* @__PURE__ */ jsx("h3", { style: { fontSize: "0.85rem", fontWeight: 400, marginBottom: "0.25rem", color: "#f8f9fa", lineHeight: 1.4, transition: "color 0.15s" }, children: item.title }),
3009
3021
  /* @__PURE__ */ jsxs("div", { style: { display: "flex", gap: "0.5rem", alignItems: "center", flexWrap: "wrap" }, children: [
3010
3022
  /* @__PURE__ */ jsx("span", { style: { color: "#848e9c", fontSize: "0.7rem" }, children: typeof item.date === "string" ? item.date : formatDate(item.date) }),
3011
3023
  item.source && /* @__PURE__ */ 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 }),
@@ -3095,8 +3107,8 @@ var PropertyNewsUpdates = React5.forwardRef(
3095
3107
  type: "button",
3096
3108
  onClick: () => setHomePage((p) => Math.max(0, p - 1)),
3097
3109
  disabled: homePage === 0,
3098
- 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)" },
3099
- children: "Prev"
3110
+ 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)" },
3111
+ children: /* @__PURE__ */ jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "14", height: "14", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { d: "M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z" }) })
3100
3112
  }
3101
3113
  ),
3102
3114
  /* @__PURE__ */ jsxs("span", { style: { fontSize: "0.7rem", color: "rgba(255,255,255,0.5)" }, children: [
@@ -3110,8 +3122,8 @@ var PropertyNewsUpdates = React5.forwardRef(
3110
3122
  type: "button",
3111
3123
  onClick: () => setHomePage((p) => Math.min(homeTotalPages - 1, p + 1)),
3112
3124
  disabled: homePage >= homeTotalPages - 1,
3113
- 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)" },
3114
- children: "Next"
3125
+ 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)" },
3126
+ children: /* @__PURE__ */ jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "14", height: "14", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { d: "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z" }) })
3115
3127
  }
3116
3128
  )
3117
3129
  ] }),
@@ -3122,8 +3134,9 @@ var PropertyNewsUpdates = React5.forwardRef(
3122
3134
  type: "button",
3123
3135
  onClick: () => setPage((p) => Math.max(0, p - 1)),
3124
3136
  disabled: page === 0,
3125
- 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"),
3126
- children: "Prev"
3137
+ className: cn("rounded-full border border-white/15 flex items-center justify-center", page === 0 ? "opacity-40 cursor-not-allowed" : "hover:border-white/40"),
3138
+ style: { width: "28px", height: "28px", padding: 0, background: "transparent", color: "rgba(255,255,255,0.6)" },
3139
+ children: /* @__PURE__ */ jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "14", height: "14", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { d: "M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z" }) })
3127
3140
  }
3128
3141
  ),
3129
3142
  /* @__PURE__ */ jsxs("span", { className: "font-medium text-white/70", children: [
@@ -3138,8 +3151,9 @@ var PropertyNewsUpdates = React5.forwardRef(
3138
3151
  type: "button",
3139
3152
  onClick: () => setPage((p) => Math.min(totalPages - 1, p + 1)),
3140
3153
  disabled: page >= totalPages - 1,
3141
- 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"),
3142
- children: "Next"
3154
+ 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"),
3155
+ style: { width: "28px", height: "28px", padding: 0, background: "transparent", color: "rgba(255,255,255,0.6)" },
3156
+ children: /* @__PURE__ */ jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "14", height: "14", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { d: "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z" }) })
3143
3157
  }
3144
3158
  )
3145
3159
  ] }),
@@ -5648,8 +5662,19 @@ var HeaderContainer = styled25.header`
5648
5662
  box-sizing: border-box;
5649
5663
 
5650
5664
  @media (max-width: 768px) {
5651
- padding: 0 1rem;
5652
- padding-top: max(env(safe-area-inset-top, 0px), var(--telegram-safe-top, 0px));
5665
+ top: 0.5rem;
5666
+ left: 0.75rem;
5667
+ right: 0.75rem;
5668
+ width: calc(100% - 1.5rem);
5669
+ height: 46px;
5670
+ min-height: 46px;
5671
+ padding: 0 0.75rem;
5672
+ border-radius: 12px;
5673
+ background-color: rgba(13, 17, 23, 0.92);
5674
+ backdrop-filter: blur(12px);
5675
+ border: 1px solid rgba(255, 255, 255, 0.08);
5676
+ border-bottom: 1px solid rgba(255, 255, 255, 0.08);
5677
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
5653
5678
  }
5654
5679
  `;
5655
5680
  var HeaderSpacer = styled25.div`
@@ -5657,6 +5682,10 @@ var HeaderSpacer = styled25.div`
5657
5682
  min-height: 56px;
5658
5683
  min-height: calc(56px + max(env(safe-area-inset-top, 0px), var(--telegram-safe-top, 0px)));
5659
5684
  flex-shrink: 0;
5685
+
5686
+ @media (max-width: 768px) {
5687
+ min-height: calc(46px + 0.5rem);
5688
+ }
5660
5689
  `;
5661
5690
  var Logo = styled25.div`
5662
5691
  display: flex;
@@ -6667,7 +6696,7 @@ var LoginPopup = ({
6667
6696
  ] }) });
6668
6697
  }
6669
6698
  if (view === "funding") {
6670
- return /* @__PURE__ */ jsx(Overlay2, { onClick: onClose, children: /* @__PURE__ */ jsxs(
6699
+ return /* @__PURE__ */ jsx(Overlay2, { children: /* @__PURE__ */ jsxs(
6671
6700
  FundingPopupContainer,
6672
6701
  {
6673
6702
  onClick: (event) => event.stopPropagation(),
@@ -6737,6 +6766,16 @@ var Overlay2 = styled25.div`
6737
6766
  justify-content: center;
6738
6767
  align-items: center;
6739
6768
  z-index: 10000;
6769
+ animation: fadeIn 0.2s ease-in-out;
6770
+
6771
+ @keyframes fadeIn {
6772
+ from {
6773
+ opacity: 0;
6774
+ }
6775
+ to {
6776
+ opacity: 1;
6777
+ }
6778
+ }
6740
6779
  `;
6741
6780
  var PopupContainer = styled25.div`
6742
6781
  background-color: var(--color-background, #0a0a0a);
@@ -6746,8 +6785,20 @@ var PopupContainer = styled25.div`
6746
6785
  max-width: 440px;
6747
6786
  width: 90%;
6748
6787
  position: relative;
6788
+ animation: slideUp 0.3s ease-out;
6749
6789
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
6750
6790
 
6791
+ @keyframes slideUp {
6792
+ from {
6793
+ transform: translateY(20px);
6794
+ opacity: 0;
6795
+ }
6796
+ to {
6797
+ transform: translateY(0);
6798
+ opacity: 1;
6799
+ }
6800
+ }
6801
+
6751
6802
  @media (max-width: 768px) {
6752
6803
  padding: 2rem;
6753
6804
  max-width: 90%;
@@ -6761,9 +6812,21 @@ var KycPopupContainer = styled25.div`
6761
6812
  max-width: ${(props) => props.$expanded ? "680px" : "440px"};
6762
6813
  width: 90%;
6763
6814
  position: relative;
6815
+ animation: slideUp 0.3s ease-out;
6764
6816
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
6765
6817
  transition: max-width 0.3s ease;
6766
6818
 
6819
+ @keyframes slideUp {
6820
+ from {
6821
+ transform: translateY(20px);
6822
+ opacity: 0;
6823
+ }
6824
+ to {
6825
+ transform: translateY(0);
6826
+ opacity: 1;
6827
+ }
6828
+ }
6829
+
6767
6830
  @media (max-width: 768px) {
6768
6831
  padding: 1.5rem;
6769
6832
  max-width: 95%;
@@ -7091,9 +7154,21 @@ var FundingPopupContainer = styled25.div`
7091
7154
  max-width: ${(props) => props.$hasWidget ? "900px" : "440px"};
7092
7155
  width: 90%;
7093
7156
  position: relative;
7157
+ animation: slideUp 0.3s ease-out;
7094
7158
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
7095
7159
  overflow: hidden;
7096
7160
 
7161
+ @keyframes slideUp {
7162
+ from {
7163
+ transform: translateY(20px);
7164
+ opacity: 0;
7165
+ }
7166
+ to {
7167
+ transform: translateY(0);
7168
+ opacity: 1;
7169
+ }
7170
+ }
7171
+
7097
7172
  @media (max-width: 768px) {
7098
7173
  padding: ${(props) => props.$hasWidget ? "0" : "2rem"};
7099
7174
  max-width: 95%;
@@ -9598,6 +9673,7 @@ function OfferingProgressCard({
9598
9673
  raisedAmount,
9599
9674
  targetAmount,
9600
9675
  isPrivateClient = false,
9676
+ variant = "default",
9601
9677
  style,
9602
9678
  className
9603
9679
  }) {
@@ -9629,6 +9705,108 @@ function OfferingProgressCard({
9629
9705
  const interval = setInterval(() => setCountdown(calculateCountdown()), 1e3);
9630
9706
  return () => clearInterval(interval);
9631
9707
  }, [opensAt]);
9708
+ if (variant === "compact") {
9709
+ return /* @__PURE__ */ jsxs(CompactContainer, { style, className, children: [
9710
+ /* @__PURE__ */ jsx(ProgressBarOuter, { children: /* @__PURE__ */ jsx(ProgressBarInner, { style: { width: `${Math.min(percentSold, 100)}%` } }) }),
9711
+ /* @__PURE__ */ jsxs(ProgressInfo, { children: [
9712
+ /* @__PURE__ */ jsxs(ProgressSubscribers, { children: [
9713
+ "Subscribers: ",
9714
+ subscriberCount.toLocaleString()
9715
+ ] }),
9716
+ /* @__PURE__ */ jsxs(ProgressAmounts, { children: [
9717
+ /* @__PURE__ */ jsx("span", { className: "raised", children: formatCurrency3(computedRaised) }),
9718
+ /* @__PURE__ */ jsxs("span", { className: "target", children: [
9719
+ " / ",
9720
+ formatCurrency3(computedTarget)
9721
+ ] })
9722
+ ] })
9723
+ ] })
9724
+ ] });
9725
+ }
9726
+ if (variant === "home") {
9727
+ const isPreLive = !ipoStarted && ipoStatus !== "CLOSED" && ipoStatus !== "CANCELLED";
9728
+ return /* @__PURE__ */ jsxs(Container, { style, className, children: [
9729
+ /* @__PURE__ */ jsxs(Header2, { children: [
9730
+ /* @__PURE__ */ jsxs("h3", { children: [
9731
+ /* @__PURE__ */ jsx(FaChartLine, {}),
9732
+ " Offering Progress"
9733
+ ] }),
9734
+ /* @__PURE__ */ jsx("div", { style: { display: "flex", alignItems: "center", gap: "0.4rem" }, children: ipoStarted ? /* @__PURE__ */ jsxs(StatusSpan, { $color: "#0ecb81", children: [
9735
+ /* @__PURE__ */ jsx(StatusDot, { $color: "#0ecb81", $pulse: true }),
9736
+ "LIVE"
9737
+ ] }) : /* @__PURE__ */ jsxs(StatusSpan, { $color: statusColor || "#D4AF37", children: [
9738
+ /* @__PURE__ */ jsx(StatusDot, { $color: statusColor || "#D4AF37" }),
9739
+ statusLabel || "Preparing"
9740
+ ] }) })
9741
+ ] }),
9742
+ isPreLive ? /* @__PURE__ */ jsxs(HomePreLiveRow, { children: [
9743
+ countdown ? /* @__PURE__ */ jsxs(HomeCountdownSide, { children: [
9744
+ /* @__PURE__ */ jsx(CountdownLabel, { children: "Opens In" }),
9745
+ /* @__PURE__ */ jsxs(CountdownDigits, { children: [
9746
+ /* @__PURE__ */ jsx(CountdownNumber, { children: String(countdown.days).padStart(2, "0") }),
9747
+ /* @__PURE__ */ jsx(CountdownUnitLabel, { children: "D" }),
9748
+ /* @__PURE__ */ jsx(CountdownSeparator, { children: ":" }),
9749
+ /* @__PURE__ */ jsx(CountdownNumber, { children: String(countdown.hours).padStart(2, "0") }),
9750
+ /* @__PURE__ */ jsx(CountdownUnitLabel, { children: "H" }),
9751
+ /* @__PURE__ */ jsx(CountdownSeparator, { children: ":" }),
9752
+ /* @__PURE__ */ jsx(CountdownNumber, { children: String(countdown.minutes).padStart(2, "0") }),
9753
+ /* @__PURE__ */ jsx(CountdownUnitLabel, { children: "M" }),
9754
+ /* @__PURE__ */ jsx(CountdownSeparator, { children: ":" }),
9755
+ /* @__PURE__ */ jsx(CountdownNumber, { children: String(countdown.seconds).padStart(2, "0") }),
9756
+ /* @__PURE__ */ jsx(CountdownUnitLabel, { children: "S" })
9757
+ ] })
9758
+ ] }) : /* @__PURE__ */ jsx(HomeCountdownSide, { children: /* @__PURE__ */ jsx(PreLiveStatus, { $statusColor: statusColor, children: "Sale Not Yet Open" }) }),
9759
+ /* @__PURE__ */ jsxs(HomeUnitsSide, { children: [
9760
+ /* @__PURE__ */ jsx(HomeUnitsLabel, { children: "Units Subscribed" }),
9761
+ /* @__PURE__ */ jsxs(HomeUnitsValue, { children: [
9762
+ /* @__PURE__ */ jsx(HomeSpinner, {}),
9763
+ /* @__PURE__ */ jsxs("span", { children: [
9764
+ " / ",
9765
+ supplyToSell.toLocaleString()
9766
+ ] })
9767
+ ] })
9768
+ ] })
9769
+ ] }) : /* @__PURE__ */ jsxs(LiveBody, { children: [
9770
+ /* @__PURE__ */ jsxs(LiveTopRow, { children: [
9771
+ /* @__PURE__ */ jsxs("div", { children: [
9772
+ /* @__PURE__ */ jsxs(LiveLabel, { children: [
9773
+ "Offering Subscribed ",
9774
+ /* @__PURE__ */ jsx("span", { children: "\u24D8" })
9775
+ ] }),
9776
+ /* @__PURE__ */ jsxs(LivePercent, { children: [
9777
+ percentSold.toFixed(1),
9778
+ "%",
9779
+ /* @__PURE__ */ jsx("span", { className: "arrow", children: "\u2191" })
9780
+ ] })
9781
+ ] }),
9782
+ /* @__PURE__ */ jsxs("div", { style: { textAlign: "right" }, children: [
9783
+ /* @__PURE__ */ jsx(LiveLabel, { children: "Units Subscribed" }),
9784
+ /* @__PURE__ */ jsxs(UnitsValue, { children: [
9785
+ /* @__PURE__ */ jsx("span", { children: totalSold.toLocaleString() }),
9786
+ /* @__PURE__ */ jsxs("small", { children: [
9787
+ "/ ",
9788
+ supplyToSell.toLocaleString()
9789
+ ] })
9790
+ ] })
9791
+ ] })
9792
+ ] }),
9793
+ /* @__PURE__ */ jsx(ProgressBarOuter, { children: /* @__PURE__ */ jsx(ProgressBarInner, { style: { width: `${Math.min(percentSold, 100)}%` } }) }),
9794
+ /* @__PURE__ */ jsxs(ProgressInfo, { children: [
9795
+ /* @__PURE__ */ jsxs(ProgressSubscribers, { children: [
9796
+ "Subscribers: ",
9797
+ subscriberCount.toLocaleString()
9798
+ ] }),
9799
+ /* @__PURE__ */ jsxs(ProgressAmounts, { children: [
9800
+ /* @__PURE__ */ jsx("span", { className: "raised", children: formatCurrency3(computedRaised) }),
9801
+ /* @__PURE__ */ jsxs("span", { className: "target", children: [
9802
+ " / ",
9803
+ formatCurrency3(computedTarget)
9804
+ ] })
9805
+ ] })
9806
+ ] })
9807
+ ] })
9808
+ ] });
9809
+ }
9632
9810
  return /* @__PURE__ */ jsxs(Container, { style, className, children: [
9633
9811
  /* @__PURE__ */ jsxs(Header2, { children: [
9634
9812
  /* @__PURE__ */ jsxs("h3", { children: [
@@ -9697,7 +9875,7 @@ function OfferingProgressCard({
9697
9875
  /* @__PURE__ */ jsx("span", { children: "\u24D8" })
9698
9876
  ] }),
9699
9877
  /* @__PURE__ */ jsxs(LivePercent, { children: [
9700
- percentSold < 0.1 && percentSold > 0 ? percentSold.toFixed(3) : percentSold.toFixed(1),
9878
+ percentSold.toFixed(1),
9701
9879
  "%",
9702
9880
  /* @__PURE__ */ jsx("span", { className: "arrow", children: "\u2191" })
9703
9881
  ] })
@@ -9930,6 +10108,59 @@ var ProgressAmounts = styled25.div`
9930
10108
  .raised { color: #D4AF37; }
9931
10109
  .target { color: rgba(255,255,255,0.3); }
9932
10110
  `;
10111
+ var CompactContainer = styled25.div`
10112
+ width: 100%;
10113
+ margin: 1.5rem 0;
10114
+ display: flex;
10115
+ flex-direction: column;
10116
+ gap: 0.5rem;
10117
+ `;
10118
+ var HomePreLiveRow = styled25.div`
10119
+ display: flex;
10120
+ align-items: center;
10121
+ justify-content: space-between;
10122
+ padding-top: 1rem;
10123
+ `;
10124
+ var HomeCountdownSide = styled25.div`
10125
+ display: flex;
10126
+ flex-direction: column;
10127
+ align-items: center;
10128
+ flex: 1;
10129
+ `;
10130
+ var HomeUnitsSide = styled25.div`
10131
+ text-align: center;
10132
+ flex-shrink: 0;
10133
+ `;
10134
+ var HomeUnitsLabel = styled25.div`
10135
+ font-size: 0.6rem;
10136
+ color: var(--color-text-secondary);
10137
+ text-transform: uppercase;
10138
+ letter-spacing: 0.1em;
10139
+ margin-bottom: 0.2rem;
10140
+ `;
10141
+ var HomeUnitsValue = styled25.div`
10142
+ font-size: 1.1rem;
10143
+ font-weight: 700;
10144
+ font-family: monospace;
10145
+ span {
10146
+ color: var(--color-text-secondary);
10147
+ font-weight: 400;
10148
+ }
10149
+ `;
10150
+ var HomeSpinner = styled25.span`
10151
+ display: inline-block;
10152
+ width: 14px;
10153
+ height: 14px;
10154
+ border: 2px solid rgba(255, 255, 255, 0.1);
10155
+ border-top-color: var(--color-accent, #f0b90b);
10156
+ border-radius: 50%;
10157
+ animation: homeSpin 1s linear infinite;
10158
+ vertical-align: middle;
10159
+ margin-right: 0.15rem;
10160
+ @keyframes homeSpin {
10161
+ to { transform: rotate(360deg); }
10162
+ }
10163
+ `;
9933
10164
  var MAX_DISPLAY_AMOUNT = 6e4;
9934
10165
  var formatCurrency4 = (amount) => {
9935
10166
  if (amount >= 1e6) return `$${(amount / 1e6).toFixed(2)}M`;
@@ -11607,7 +11838,7 @@ function PortfolioActivityPanel({
11607
11838
  formatTimestamp(trade.executedAt)
11608
11839
  ] })
11609
11840
  ] }),
11610
- trade.status === "SETTLEMENT_FAILED" ? /* @__PURE__ */ jsx(ActivityTag, { $color: "#f6465d", $bg: "rgba(246,70,93,0.12)", children: "Failed" }) : /* @__PURE__ */ jsx(
11841
+ /* @__PURE__ */ jsx(
11611
11842
  ActivityTag,
11612
11843
  {
11613
11844
  $color: trade.side === "SELL" ? "#f6465d" : "#0ecb81",
@@ -13686,7 +13917,7 @@ function PropertyValuation({
13686
13917
  /* @__PURE__ */ jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "0.5rem" }, children: [
13687
13918
  /* @__PURE__ */ jsxs(PricingModelDetail, { children: [
13688
13919
  /* @__PURE__ */ jsx(PropertyDetailLabel, { children: "Last Price" }),
13689
- /* @__PURE__ */ jsx(PricingDetailValue, { children: formatCompact(lastPrice) })
13920
+ /* @__PURE__ */ jsx(PricingDetailValue, { children: formatCurrency6(lastPrice) })
13690
13921
  ] }),
13691
13922
  /* @__PURE__ */ jsxs(PricingModelDetail, { children: [
13692
13923
  /* @__PURE__ */ jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center", width: "100%" }, children: [
@@ -13697,11 +13928,11 @@ function PropertyValuation({
13697
13928
  ] })
13698
13929
  ] }),
13699
13930
  /* @__PURE__ */ jsxs(PricingDetailValue, { style: { color: "var(--color-accent)", fontWeight: "bold" }, children: [
13700
- formatCompact(fairValue),
13931
+ formatCurrency6(fairValue),
13701
13932
  " ",
13702
13933
  /* @__PURE__ */ jsxs("span", { style: { fontSize: "0.85em", fontWeight: "normal", opacity: 0.8 }, children: [
13703
13934
  "(",
13704
- formatCompact(fairValue * tokensOutstanding),
13935
+ formatCurrency6(fairValue * tokensOutstanding, { maximumFractionDigits: 0 }),
13705
13936
  ")"
13706
13937
  ] })
13707
13938
  ] })
@@ -13718,7 +13949,7 @@ function PropertyValuation({
13718
13949
  /* @__PURE__ */ jsx(GaugeIndicator, { type: "fairValue", position: 50 }),
13719
13950
  /* @__PURE__ */ jsxs(GaugePriceTag, { position: gaugePosition, children: [
13720
13951
  /* @__PURE__ */ jsx("span", { children: "Last Price" }),
13721
- /* @__PURE__ */ jsx("span", { children: formatCompact(lastPrice) })
13952
+ /* @__PURE__ */ jsx("span", { children: formatCurrency6(lastPrice) })
13722
13953
  ] }),
13723
13954
  /* @__PURE__ */ jsx(GaugeIndicator, { type: "lastPrice", position: gaugePosition })
13724
13955
  ] }),
@@ -13726,36 +13957,36 @@ function PropertyValuation({
13726
13957
  /* @__PURE__ */ jsx(ValuationItem, { children: /* @__PURE__ */ jsxs(ValuationValue, { style: { color: "#4CAF50" }, children: [
13727
13958
  /* @__PURE__ */ jsxs("span", { children: [
13728
13959
  "< ",
13729
- formatCompact(undervaluedThreshold)
13960
+ formatCurrency6(undervaluedThreshold)
13730
13961
  ] }),
13731
13962
  /* @__PURE__ */ jsxs("span", { className: "valuation-amount-span", style: { fontSize: "0.8rem", fontWeight: "normal" }, children: [
13732
13963
  "(",
13733
- formatCompact(undervaluedThreshold * tokensOutstanding),
13964
+ formatMillions(undervaluedThreshold * tokensOutstanding),
13734
13965
  ")"
13735
13966
  ] })
13736
13967
  ] }) }),
13737
13968
  /* @__PURE__ */ jsx(ValuationItem, { children: /* @__PURE__ */ jsxs(ValuationValue, { style: { color: "var(--color-accent)" }, children: [
13738
- /* @__PURE__ */ jsx("span", { children: formatCompact(fairValue) }),
13969
+ /* @__PURE__ */ jsx("span", { children: formatCurrency6(fairValue) }),
13739
13970
  /* @__PURE__ */ jsxs("span", { className: "valuation-amount-span", style: { fontSize: "0.8rem", fontWeight: "normal" }, children: [
13740
13971
  "(",
13741
- formatCompact(fairValue * tokensOutstanding),
13972
+ formatMillions(fairValue * tokensOutstanding),
13742
13973
  ")"
13743
13974
  ] })
13744
13975
  ] }) }),
13745
13976
  /* @__PURE__ */ jsx(ValuationItem, { children: /* @__PURE__ */ jsxs(ValuationValue, { style: { color: "#F44336" }, children: [
13746
13977
  /* @__PURE__ */ jsxs("span", { children: [
13747
13978
  "> ",
13748
- formatCompact(overvaluedThreshold)
13979
+ formatCurrency6(overvaluedThreshold)
13749
13980
  ] }),
13750
13981
  /* @__PURE__ */ jsxs("span", { className: "valuation-amount-span", style: { fontSize: "0.8rem", fontWeight: "normal" }, children: [
13751
13982
  "(",
13752
- formatCompact(overvaluedThreshold * tokensOutstanding),
13983
+ formatMillions(overvaluedThreshold * tokensOutstanding),
13753
13984
  ")"
13754
13985
  ] })
13755
13986
  ] }) })
13756
13987
  ] })
13757
13988
  ] }),
13758
- /* @__PURE__ */ jsxs("div", { children: [
13989
+ /* @__PURE__ */ jsxs(HiddenMobileChart, { children: [
13759
13990
  /* @__PURE__ */ jsx("h3", { style: { marginBottom: "1rem", fontSize: "1.1rem", color: "#fff" }, children: "Historical Valuation" }),
13760
13991
  /* @__PURE__ */ jsx(ChartContainer, { children: /* @__PURE__ */ jsxs(ChartBackground, { children: [
13761
13992
  axisLabels.map((label, index) => /* @__PURE__ */ jsx(YAxisLabel, { style: { top: `${10 + index * 22}%` }, children: label }, `${label}-${index}`)),
@@ -13874,7 +14105,15 @@ function PropertyValuation({
13874
14105
  ] })
13875
14106
  ] }) })
13876
14107
  ] })
13877
- ] })
14108
+ ] }),
14109
+ /* @__PURE__ */ jsx("h3", { className: "desktop-only-historical-chart", style: { marginBottom: "1rem", fontSize: "1.1rem", color: "#fff" }, children: "Historical Valuation" }),
14110
+ /* @__PURE__ */ jsx(ChartContainer, { className: "desktop-only-historical-chart", children: /* @__PURE__ */ jsxs(ChartBackground, { children: [
14111
+ axisLabels.map((label, index) => /* @__PURE__ */ jsx(YAxisLabel, { style: { top: `${10 + index * 22}%` }, children: label }, `${label}-${index}`)),
14112
+ /* @__PURE__ */ jsxs(ValuationSvg, { viewBox: `0 0 ${CHART_WIDTH} ${CHART_HEIGHT}`, preserveAspectRatio: "none", children: [
14113
+ valuationPath ? /* @__PURE__ */ jsx("path", { d: valuationPath, fill: "none", stroke: "#D4AF37", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", vectorEffect: "non-scaling-stroke" }) : null,
14114
+ fairValuePath ? /* @__PURE__ */ jsx("path", { d: fairValuePath, fill: "none", stroke: "#FFFFFF", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", vectorEffect: "non-scaling-stroke" }) : null
14115
+ ] })
14116
+ ] }) })
13878
14117
  ] })
13879
14118
  ] }),
13880
14119
  /* @__PURE__ */ jsxs(RecentSalesSection, { children: [
@@ -13948,14 +14187,6 @@ function formatMillions(value) {
13948
14187
  }
13949
14188
  return `$${(value / 1e6).toFixed(2)}m`;
13950
14189
  }
13951
- function formatCompact(value) {
13952
- if (value == null || !Number.isFinite(value)) return "\u2014";
13953
- const abs = Math.abs(value);
13954
- if (abs >= 1e9) return `$${(value / 1e9).toFixed(2)}B`;
13955
- if (abs >= 1e6) return `$${(value / 1e6).toFixed(2)}M`;
13956
- if (abs >= 1e3) return `$${(value / 1e3).toFixed(1)}K`;
13957
- return formatCurrency6(value);
13958
- }
13959
14190
  function formatBedroomLabel(bedrooms) {
13960
14191
  if (!Number.isFinite(bedrooms)) return "\u2014";
13961
14192
  return `${bedrooms} Bed`;
@@ -14079,6 +14310,12 @@ var GaugePriceTag = styled25.div`
14079
14310
  color: var(--color-accent);
14080
14311
  }
14081
14312
  `;
14313
+ var HiddenMobileChart = styled25.div`
14314
+ display: none;
14315
+ @media (max-width: 480px) {
14316
+ display: block;
14317
+ }
14318
+ `;
14082
14319
  var ValuationWrapper = styled25.div`
14083
14320
  display: flex;
14084
14321
  flex-direction: column;
@@ -14130,10 +14367,9 @@ var PricingModelCard = styled25.div`
14130
14367
  var PricingModelHeader = styled25.div`
14131
14368
  display: flex;
14132
14369
  justify-content: space-between;
14133
- align-items: flex-start;
14370
+ align-items: center;
14134
14371
  margin-bottom: 1.5rem;
14135
14372
  gap: 1rem;
14136
- flex-wrap: wrap;
14137
14373
 
14138
14374
  .valuation-info {
14139
14375
  display: flex;
@@ -14141,7 +14377,6 @@ var PricingModelHeader = styled25.div`
14141
14377
  gap: 0.25rem;
14142
14378
  font-size: 0.85rem;
14143
14379
  color: rgba(255, 255, 255, 0.75);
14144
- flex-shrink: 0;
14145
14380
  }
14146
14381
  `;
14147
14382
  var PricingModelTitle = styled25.h3`
@@ -14208,31 +14443,15 @@ var ValuationDetails = styled25.div`
14208
14443
  display: flex;
14209
14444
  justify-content: space-between;
14210
14445
  margin-top: 1rem;
14211
- gap: 0.25rem;
14212
14446
  `;
14213
14447
  var ValuationItem = styled25.div`
14214
14448
  display: flex;
14215
14449
  flex-direction: column;
14216
- min-width: 0;
14217
- overflow: hidden;
14218
14450
  `;
14219
14451
  var ValuationValue = styled25.div`
14220
14452
  font-size: 1rem;
14221
14453
  font-weight: 600;
14222
14454
  color: #fff;
14223
- display: flex;
14224
- flex-direction: column;
14225
- gap: 2px;
14226
- overflow-wrap: break-word;
14227
- word-break: break-word;
14228
-
14229
- @media (max-width: 480px) {
14230
- font-size: 0.72rem;
14231
-
14232
- .valuation-amount-span {
14233
- display: none;
14234
- }
14235
- }
14236
14455
  `;
14237
14456
  var ChartContainer = styled25.div`
14238
14457
  width: 100%;