@loafmarkets/ui 0.1.86 → 0.1.88

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.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
  ] }),
@@ -5688,19 +5674,8 @@ var HeaderContainer = styled25__default.default.header`
5688
5674
  box-sizing: border-box;
5689
5675
 
5690
5676
  @media (max-width: 768px) {
5691
- top: 0.5rem;
5692
- left: 0.75rem;
5693
- right: 0.75rem;
5694
- width: calc(100% - 1.5rem);
5695
- height: 46px;
5696
- min-height: 46px;
5697
- padding: 0 0.75rem;
5698
- border-radius: 12px;
5699
- background-color: rgba(13, 17, 23, 0.92);
5700
- backdrop-filter: blur(12px);
5701
- border: 1px solid rgba(255, 255, 255, 0.08);
5702
- border-bottom: 1px solid rgba(255, 255, 255, 0.08);
5703
- box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
5677
+ padding: 0 1rem;
5678
+ padding-top: max(env(safe-area-inset-top, 0px), var(--telegram-safe-top, 0px));
5704
5679
  }
5705
5680
  `;
5706
5681
  var HeaderSpacer = styled25__default.default.div`
@@ -5708,10 +5683,6 @@ var HeaderSpacer = styled25__default.default.div`
5708
5683
  min-height: 56px;
5709
5684
  min-height: calc(56px + max(env(safe-area-inset-top, 0px), var(--telegram-safe-top, 0px)));
5710
5685
  flex-shrink: 0;
5711
-
5712
- @media (max-width: 768px) {
5713
- min-height: calc(46px + 0.5rem);
5714
- }
5715
5686
  `;
5716
5687
  var Logo = styled25__default.default.div`
5717
5688
  display: flex;
@@ -6210,6 +6181,11 @@ var LoginPopup = ({
6210
6181
  setView(initialView);
6211
6182
  }
6212
6183
  }, [initialView]);
6184
+ React5.useEffect(() => {
6185
+ if (view === "kyc" && renderKycWidget) {
6186
+ setShowKycWidget(true);
6187
+ }
6188
+ }, [view, renderKycWidget]);
6213
6189
  React5.useEffect(() => {
6214
6190
  if (!transakWidgetUrl) return;
6215
6191
  const handleTransakMessage = (event) => {
@@ -6722,7 +6698,7 @@ var LoginPopup = ({
6722
6698
  ] }) });
6723
6699
  }
6724
6700
  if (view === "funding") {
6725
- return /* @__PURE__ */ jsxRuntime.jsx(Overlay2, { children: /* @__PURE__ */ jsxRuntime.jsxs(
6701
+ return /* @__PURE__ */ jsxRuntime.jsx(Overlay2, { onClick: onClose, children: /* @__PURE__ */ jsxRuntime.jsxs(
6726
6702
  FundingPopupContainer,
6727
6703
  {
6728
6704
  onClick: (event) => event.stopPropagation(),
@@ -6792,16 +6768,6 @@ var Overlay2 = styled25__default.default.div`
6792
6768
  justify-content: center;
6793
6769
  align-items: center;
6794
6770
  z-index: 10000;
6795
- animation: fadeIn 0.2s ease-in-out;
6796
-
6797
- @keyframes fadeIn {
6798
- from {
6799
- opacity: 0;
6800
- }
6801
- to {
6802
- opacity: 1;
6803
- }
6804
- }
6805
6771
  `;
6806
6772
  var PopupContainer = styled25__default.default.div`
6807
6773
  background-color: var(--color-background, #0a0a0a);
@@ -6811,20 +6777,8 @@ var PopupContainer = styled25__default.default.div`
6811
6777
  max-width: 440px;
6812
6778
  width: 90%;
6813
6779
  position: relative;
6814
- animation: slideUp 0.3s ease-out;
6815
6780
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
6816
6781
 
6817
- @keyframes slideUp {
6818
- from {
6819
- transform: translateY(20px);
6820
- opacity: 0;
6821
- }
6822
- to {
6823
- transform: translateY(0);
6824
- opacity: 1;
6825
- }
6826
- }
6827
-
6828
6782
  @media (max-width: 768px) {
6829
6783
  padding: 2rem;
6830
6784
  max-width: 90%;
@@ -6838,21 +6792,9 @@ var KycPopupContainer = styled25__default.default.div`
6838
6792
  max-width: ${(props) => props.$expanded ? "680px" : "440px"};
6839
6793
  width: 90%;
6840
6794
  position: relative;
6841
- animation: slideUp 0.3s ease-out;
6842
6795
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
6843
6796
  transition: max-width 0.3s ease;
6844
6797
 
6845
- @keyframes slideUp {
6846
- from {
6847
- transform: translateY(20px);
6848
- opacity: 0;
6849
- }
6850
- to {
6851
- transform: translateY(0);
6852
- opacity: 1;
6853
- }
6854
- }
6855
-
6856
6798
  @media (max-width: 768px) {
6857
6799
  padding: 1.5rem;
6858
6800
  max-width: 95%;
@@ -7180,21 +7122,9 @@ var FundingPopupContainer = styled25__default.default.div`
7180
7122
  max-width: ${(props) => props.$hasWidget ? "900px" : "440px"};
7181
7123
  width: 90%;
7182
7124
  position: relative;
7183
- animation: slideUp 0.3s ease-out;
7184
7125
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
7185
7126
  overflow: hidden;
7186
7127
 
7187
- @keyframes slideUp {
7188
- from {
7189
- transform: translateY(20px);
7190
- opacity: 0;
7191
- }
7192
- to {
7193
- transform: translateY(0);
7194
- opacity: 1;
7195
- }
7196
- }
7197
-
7198
7128
  @media (max-width: 768px) {
7199
7129
  padding: ${(props) => props.$hasWidget ? "0" : "2rem"};
7200
7130
  max-width: 95%;
@@ -9699,7 +9629,6 @@ function OfferingProgressCard({
9699
9629
  raisedAmount,
9700
9630
  targetAmount,
9701
9631
  isPrivateClient = false,
9702
- variant = "default",
9703
9632
  style,
9704
9633
  className
9705
9634
  }) {
@@ -9731,108 +9660,6 @@ function OfferingProgressCard({
9731
9660
  const interval = setInterval(() => setCountdown(calculateCountdown()), 1e3);
9732
9661
  return () => clearInterval(interval);
9733
9662
  }, [opensAt]);
9734
- if (variant === "compact") {
9735
- return /* @__PURE__ */ jsxRuntime.jsxs(CompactContainer, { style, className, children: [
9736
- /* @__PURE__ */ jsxRuntime.jsx(ProgressBarOuter, { children: /* @__PURE__ */ jsxRuntime.jsx(ProgressBarInner, { style: { width: `${Math.min(percentSold, 100)}%` } }) }),
9737
- /* @__PURE__ */ jsxRuntime.jsxs(ProgressInfo, { children: [
9738
- /* @__PURE__ */ jsxRuntime.jsxs(ProgressSubscribers, { children: [
9739
- "Subscribers: ",
9740
- subscriberCount.toLocaleString()
9741
- ] }),
9742
- /* @__PURE__ */ jsxRuntime.jsxs(ProgressAmounts, { children: [
9743
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "raised", children: formatCurrency3(computedRaised) }),
9744
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "target", children: [
9745
- " / ",
9746
- formatCurrency3(computedTarget)
9747
- ] })
9748
- ] })
9749
- ] })
9750
- ] });
9751
- }
9752
- if (variant === "home") {
9753
- const isPreLive = !ipoStarted && ipoStatus !== "CLOSED" && ipoStatus !== "CANCELLED";
9754
- return /* @__PURE__ */ jsxRuntime.jsxs(Container, { style, className, children: [
9755
- /* @__PURE__ */ jsxRuntime.jsxs(Header2, { children: [
9756
- /* @__PURE__ */ jsxRuntime.jsxs("h3", { children: [
9757
- /* @__PURE__ */ jsxRuntime.jsx(fa.FaChartLine, {}),
9758
- " Offering Progress"
9759
- ] }),
9760
- /* @__PURE__ */ jsxRuntime.jsx("div", { style: { display: "flex", alignItems: "center", gap: "0.4rem" }, children: ipoStarted ? /* @__PURE__ */ jsxRuntime.jsxs(StatusSpan, { $color: "#0ecb81", children: [
9761
- /* @__PURE__ */ jsxRuntime.jsx(StatusDot, { $color: "#0ecb81", $pulse: true }),
9762
- "LIVE"
9763
- ] }) : /* @__PURE__ */ jsxRuntime.jsxs(StatusSpan, { $color: statusColor || "#D4AF37", children: [
9764
- /* @__PURE__ */ jsxRuntime.jsx(StatusDot, { $color: statusColor || "#D4AF37" }),
9765
- statusLabel || "Preparing"
9766
- ] }) })
9767
- ] }),
9768
- isPreLive ? /* @__PURE__ */ jsxRuntime.jsxs(HomePreLiveRow, { children: [
9769
- countdown ? /* @__PURE__ */ jsxRuntime.jsxs(HomeCountdownSide, { children: [
9770
- /* @__PURE__ */ jsxRuntime.jsx(CountdownLabel, { children: "Opens In" }),
9771
- /* @__PURE__ */ jsxRuntime.jsxs(CountdownDigits, { children: [
9772
- /* @__PURE__ */ jsxRuntime.jsx(CountdownNumber, { children: String(countdown.days).padStart(2, "0") }),
9773
- /* @__PURE__ */ jsxRuntime.jsx(CountdownUnitLabel, { children: "D" }),
9774
- /* @__PURE__ */ jsxRuntime.jsx(CountdownSeparator, { children: ":" }),
9775
- /* @__PURE__ */ jsxRuntime.jsx(CountdownNumber, { children: String(countdown.hours).padStart(2, "0") }),
9776
- /* @__PURE__ */ jsxRuntime.jsx(CountdownUnitLabel, { children: "H" }),
9777
- /* @__PURE__ */ jsxRuntime.jsx(CountdownSeparator, { children: ":" }),
9778
- /* @__PURE__ */ jsxRuntime.jsx(CountdownNumber, { children: String(countdown.minutes).padStart(2, "0") }),
9779
- /* @__PURE__ */ jsxRuntime.jsx(CountdownUnitLabel, { children: "M" }),
9780
- /* @__PURE__ */ jsxRuntime.jsx(CountdownSeparator, { children: ":" }),
9781
- /* @__PURE__ */ jsxRuntime.jsx(CountdownNumber, { children: String(countdown.seconds).padStart(2, "0") }),
9782
- /* @__PURE__ */ jsxRuntime.jsx(CountdownUnitLabel, { children: "S" })
9783
- ] })
9784
- ] }) : /* @__PURE__ */ jsxRuntime.jsx(HomeCountdownSide, { children: /* @__PURE__ */ jsxRuntime.jsx(PreLiveStatus, { $statusColor: statusColor, children: "Sale Not Yet Open" }) }),
9785
- /* @__PURE__ */ jsxRuntime.jsxs(HomeUnitsSide, { children: [
9786
- /* @__PURE__ */ jsxRuntime.jsx(HomeUnitsLabel, { children: "Units Subscribed" }),
9787
- /* @__PURE__ */ jsxRuntime.jsxs(HomeUnitsValue, { children: [
9788
- /* @__PURE__ */ jsxRuntime.jsx(HomeSpinner, {}),
9789
- /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
9790
- " / ",
9791
- supplyToSell.toLocaleString()
9792
- ] })
9793
- ] })
9794
- ] })
9795
- ] }) : /* @__PURE__ */ jsxRuntime.jsxs(LiveBody, { children: [
9796
- /* @__PURE__ */ jsxRuntime.jsxs(LiveTopRow, { children: [
9797
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
9798
- /* @__PURE__ */ jsxRuntime.jsxs(LiveLabel, { children: [
9799
- "Offering Subscribed ",
9800
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: "\u24D8" })
9801
- ] }),
9802
- /* @__PURE__ */ jsxRuntime.jsxs(LivePercent, { children: [
9803
- percentSold.toFixed(1),
9804
- "%",
9805
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "arrow", children: "\u2191" })
9806
- ] })
9807
- ] }),
9808
- /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { textAlign: "right" }, children: [
9809
- /* @__PURE__ */ jsxRuntime.jsx(LiveLabel, { children: "Units Subscribed" }),
9810
- /* @__PURE__ */ jsxRuntime.jsxs(UnitsValue, { children: [
9811
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: totalSold.toLocaleString() }),
9812
- /* @__PURE__ */ jsxRuntime.jsxs("small", { children: [
9813
- "/ ",
9814
- supplyToSell.toLocaleString()
9815
- ] })
9816
- ] })
9817
- ] })
9818
- ] }),
9819
- /* @__PURE__ */ jsxRuntime.jsx(ProgressBarOuter, { children: /* @__PURE__ */ jsxRuntime.jsx(ProgressBarInner, { style: { width: `${Math.min(percentSold, 100)}%` } }) }),
9820
- /* @__PURE__ */ jsxRuntime.jsxs(ProgressInfo, { children: [
9821
- /* @__PURE__ */ jsxRuntime.jsxs(ProgressSubscribers, { children: [
9822
- "Subscribers: ",
9823
- subscriberCount.toLocaleString()
9824
- ] }),
9825
- /* @__PURE__ */ jsxRuntime.jsxs(ProgressAmounts, { children: [
9826
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "raised", children: formatCurrency3(computedRaised) }),
9827
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "target", children: [
9828
- " / ",
9829
- formatCurrency3(computedTarget)
9830
- ] })
9831
- ] })
9832
- ] })
9833
- ] })
9834
- ] });
9835
- }
9836
9663
  return /* @__PURE__ */ jsxRuntime.jsxs(Container, { style, className, children: [
9837
9664
  /* @__PURE__ */ jsxRuntime.jsxs(Header2, { children: [
9838
9665
  /* @__PURE__ */ jsxRuntime.jsxs("h3", { children: [
@@ -9901,7 +9728,7 @@ function OfferingProgressCard({
9901
9728
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: "\u24D8" })
9902
9729
  ] }),
9903
9730
  /* @__PURE__ */ jsxRuntime.jsxs(LivePercent, { children: [
9904
- percentSold.toFixed(1),
9731
+ percentSold < 0.1 && percentSold > 0 ? percentSold.toFixed(3) : percentSold.toFixed(1),
9905
9732
  "%",
9906
9733
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "arrow", children: "\u2191" })
9907
9734
  ] })
@@ -10134,59 +9961,6 @@ var ProgressAmounts = styled25__default.default.div`
10134
9961
  .raised { color: #D4AF37; }
10135
9962
  .target { color: rgba(255,255,255,0.3); }
10136
9963
  `;
10137
- var CompactContainer = styled25__default.default.div`
10138
- width: 100%;
10139
- margin: 1.5rem 0;
10140
- display: flex;
10141
- flex-direction: column;
10142
- gap: 0.5rem;
10143
- `;
10144
- var HomePreLiveRow = styled25__default.default.div`
10145
- display: flex;
10146
- align-items: center;
10147
- justify-content: space-between;
10148
- padding-top: 1rem;
10149
- `;
10150
- var HomeCountdownSide = styled25__default.default.div`
10151
- display: flex;
10152
- flex-direction: column;
10153
- align-items: center;
10154
- flex: 1;
10155
- `;
10156
- var HomeUnitsSide = styled25__default.default.div`
10157
- text-align: center;
10158
- flex-shrink: 0;
10159
- `;
10160
- var HomeUnitsLabel = styled25__default.default.div`
10161
- font-size: 0.6rem;
10162
- color: var(--color-text-secondary);
10163
- text-transform: uppercase;
10164
- letter-spacing: 0.1em;
10165
- margin-bottom: 0.2rem;
10166
- `;
10167
- var HomeUnitsValue = styled25__default.default.div`
10168
- font-size: 1.1rem;
10169
- font-weight: 700;
10170
- font-family: monospace;
10171
- span {
10172
- color: var(--color-text-secondary);
10173
- font-weight: 400;
10174
- }
10175
- `;
10176
- var HomeSpinner = styled25__default.default.span`
10177
- display: inline-block;
10178
- width: 14px;
10179
- height: 14px;
10180
- border: 2px solid rgba(255, 255, 255, 0.1);
10181
- border-top-color: var(--color-accent, #f0b90b);
10182
- border-radius: 50%;
10183
- animation: homeSpin 1s linear infinite;
10184
- vertical-align: middle;
10185
- margin-right: 0.15rem;
10186
- @keyframes homeSpin {
10187
- to { transform: rotate(360deg); }
10188
- }
10189
- `;
10190
9964
  var MAX_DISPLAY_AMOUNT = 6e4;
10191
9965
  var formatCurrency4 = (amount) => {
10192
9966
  if (amount >= 1e6) return `$${(amount / 1e6).toFixed(2)}M`;
@@ -11864,14 +11638,7 @@ function PortfolioActivityPanel({
11864
11638
  formatTimestamp(trade.executedAt)
11865
11639
  ] })
11866
11640
  ] }),
11867
- /* @__PURE__ */ jsxRuntime.jsx(
11868
- ActivityTag,
11869
- {
11870
- $color: trade.side === "SELL" ? "#f6465d" : "#0ecb81",
11871
- $bg: trade.side === "SELL" ? "rgba(246,70,93,0.12)" : "rgba(14,203,129,0.12)",
11872
- children: sideLabel(trade.side)
11873
- }
11874
- ),
11641
+ trade.status === "SETTLEMENT_FAILED" ? /* @__PURE__ */ jsxRuntime.jsx(ActivityTag, { $color: "#f6465d", $bg: "rgba(246,70,93,0.12)", children: "Failed" }) : trade.status === "SETTLED" ? /* @__PURE__ */ jsxRuntime.jsx(ActivityTag, { $color: "#0ecb81", $bg: "rgba(14,203,129,0.12)", children: "Settled" }) : /* @__PURE__ */ jsxRuntime.jsx(ActivityTag, { $color: "#f0b90b", $bg: "rgba(240,185,11,0.15)", children: "Settling" }),
11875
11642
  /* @__PURE__ */ jsxRuntime.jsx(ActivityAmount, { children: formatCurrency5(trade.price * trade.quantity) })
11876
11643
  ] }, trade.tradeId))
11877
11644
  ] }),
@@ -13943,7 +13710,7 @@ function PropertyValuation({
13943
13710
  /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "0.5rem" }, children: [
13944
13711
  /* @__PURE__ */ jsxRuntime.jsxs(PricingModelDetail, { children: [
13945
13712
  /* @__PURE__ */ jsxRuntime.jsx(PropertyDetailLabel, { children: "Last Price" }),
13946
- /* @__PURE__ */ jsxRuntime.jsx(PricingDetailValue, { children: formatCurrency6(lastPrice) })
13713
+ /* @__PURE__ */ jsxRuntime.jsx(PricingDetailValue, { children: formatCompact(lastPrice) })
13947
13714
  ] }),
13948
13715
  /* @__PURE__ */ jsxRuntime.jsxs(PricingModelDetail, { children: [
13949
13716
  /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center", width: "100%" }, children: [
@@ -13954,11 +13721,11 @@ function PropertyValuation({
13954
13721
  ] })
13955
13722
  ] }),
13956
13723
  /* @__PURE__ */ jsxRuntime.jsxs(PricingDetailValue, { style: { color: "var(--color-accent)", fontWeight: "bold" }, children: [
13957
- formatCurrency6(fairValue),
13724
+ formatCompact(fairValue),
13958
13725
  " ",
13959
13726
  /* @__PURE__ */ jsxRuntime.jsxs("span", { style: { fontSize: "0.85em", fontWeight: "normal", opacity: 0.8 }, children: [
13960
13727
  "(",
13961
- formatCurrency6(fairValue * tokensOutstanding, { maximumFractionDigits: 0 }),
13728
+ formatCompact(fairValue * tokensOutstanding),
13962
13729
  ")"
13963
13730
  ] })
13964
13731
  ] })
@@ -13975,7 +13742,7 @@ function PropertyValuation({
13975
13742
  /* @__PURE__ */ jsxRuntime.jsx(GaugeIndicator, { type: "fairValue", position: 50 }),
13976
13743
  /* @__PURE__ */ jsxRuntime.jsxs(GaugePriceTag, { position: gaugePosition, children: [
13977
13744
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Last Price" }),
13978
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: formatCurrency6(lastPrice) })
13745
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: formatCompact(lastPrice) })
13979
13746
  ] }),
13980
13747
  /* @__PURE__ */ jsxRuntime.jsx(GaugeIndicator, { type: "lastPrice", position: gaugePosition })
13981
13748
  ] }),
@@ -13983,36 +13750,36 @@ function PropertyValuation({
13983
13750
  /* @__PURE__ */ jsxRuntime.jsx(ValuationItem, { children: /* @__PURE__ */ jsxRuntime.jsxs(ValuationValue, { style: { color: "#4CAF50" }, children: [
13984
13751
  /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
13985
13752
  "< ",
13986
- formatCurrency6(undervaluedThreshold)
13753
+ formatCompact(undervaluedThreshold)
13987
13754
  ] }),
13988
13755
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "valuation-amount-span", style: { fontSize: "0.8rem", fontWeight: "normal" }, children: [
13989
13756
  "(",
13990
- formatMillions(undervaluedThreshold * tokensOutstanding),
13757
+ formatCompact(undervaluedThreshold * tokensOutstanding),
13991
13758
  ")"
13992
13759
  ] })
13993
13760
  ] }) }),
13994
13761
  /* @__PURE__ */ jsxRuntime.jsx(ValuationItem, { children: /* @__PURE__ */ jsxRuntime.jsxs(ValuationValue, { style: { color: "var(--color-accent)" }, children: [
13995
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: formatCurrency6(fairValue) }),
13762
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: formatCompact(fairValue) }),
13996
13763
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "valuation-amount-span", style: { fontSize: "0.8rem", fontWeight: "normal" }, children: [
13997
13764
  "(",
13998
- formatMillions(fairValue * tokensOutstanding),
13765
+ formatCompact(fairValue * tokensOutstanding),
13999
13766
  ")"
14000
13767
  ] })
14001
13768
  ] }) }),
14002
13769
  /* @__PURE__ */ jsxRuntime.jsx(ValuationItem, { children: /* @__PURE__ */ jsxRuntime.jsxs(ValuationValue, { style: { color: "#F44336" }, children: [
14003
13770
  /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
14004
13771
  "> ",
14005
- formatCurrency6(overvaluedThreshold)
13772
+ formatCompact(overvaluedThreshold)
14006
13773
  ] }),
14007
13774
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "valuation-amount-span", style: { fontSize: "0.8rem", fontWeight: "normal" }, children: [
14008
13775
  "(",
14009
- formatMillions(overvaluedThreshold * tokensOutstanding),
13776
+ formatCompact(overvaluedThreshold * tokensOutstanding),
14010
13777
  ")"
14011
13778
  ] })
14012
13779
  ] }) })
14013
13780
  ] })
14014
13781
  ] }),
14015
- /* @__PURE__ */ jsxRuntime.jsxs(HiddenMobileChart, { children: [
13782
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
14016
13783
  /* @__PURE__ */ jsxRuntime.jsx("h3", { style: { marginBottom: "1rem", fontSize: "1.1rem", color: "#fff" }, children: "Historical Valuation" }),
14017
13784
  /* @__PURE__ */ jsxRuntime.jsx(ChartContainer, { children: /* @__PURE__ */ jsxRuntime.jsxs(ChartBackground, { children: [
14018
13785
  axisLabels.map((label, index) => /* @__PURE__ */ jsxRuntime.jsx(YAxisLabel, { style: { top: `${10 + index * 22}%` }, children: label }, `${label}-${index}`)),
@@ -14131,15 +13898,7 @@ function PropertyValuation({
14131
13898
  ] })
14132
13899
  ] }) })
14133
13900
  ] })
14134
- ] }),
14135
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "desktop-only-historical-chart", style: { marginBottom: "1rem", fontSize: "1.1rem", color: "#fff" }, children: "Historical Valuation" }),
14136
- /* @__PURE__ */ jsxRuntime.jsx(ChartContainer, { className: "desktop-only-historical-chart", children: /* @__PURE__ */ jsxRuntime.jsxs(ChartBackground, { children: [
14137
- axisLabels.map((label, index) => /* @__PURE__ */ jsxRuntime.jsx(YAxisLabel, { style: { top: `${10 + index * 22}%` }, children: label }, `${label}-${index}`)),
14138
- /* @__PURE__ */ jsxRuntime.jsxs(ValuationSvg, { viewBox: `0 0 ${CHART_WIDTH} ${CHART_HEIGHT}`, preserveAspectRatio: "none", children: [
14139
- valuationPath ? /* @__PURE__ */ jsxRuntime.jsx("path", { d: valuationPath, fill: "none", stroke: "#D4AF37", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", vectorEffect: "non-scaling-stroke" }) : null,
14140
- fairValuePath ? /* @__PURE__ */ jsxRuntime.jsx("path", { d: fairValuePath, fill: "none", stroke: "#FFFFFF", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", vectorEffect: "non-scaling-stroke" }) : null
14141
- ] })
14142
- ] }) })
13901
+ ] })
14143
13902
  ] })
14144
13903
  ] }),
14145
13904
  /* @__PURE__ */ jsxRuntime.jsxs(RecentSalesSection, { children: [
@@ -14213,6 +13972,14 @@ function formatMillions(value) {
14213
13972
  }
14214
13973
  return `$${(value / 1e6).toFixed(2)}m`;
14215
13974
  }
13975
+ function formatCompact(value) {
13976
+ if (value == null || !Number.isFinite(value)) return "\u2014";
13977
+ const abs = Math.abs(value);
13978
+ if (abs >= 1e9) return `$${(value / 1e9).toFixed(2)}B`;
13979
+ if (abs >= 1e6) return `$${(value / 1e6).toFixed(2)}M`;
13980
+ if (abs >= 1e3) return `$${(value / 1e3).toFixed(1)}K`;
13981
+ return formatCurrency6(value);
13982
+ }
14216
13983
  function formatBedroomLabel(bedrooms) {
14217
13984
  if (!Number.isFinite(bedrooms)) return "\u2014";
14218
13985
  return `${bedrooms} Bed`;
@@ -14336,12 +14103,6 @@ var GaugePriceTag = styled25__default.default.div`
14336
14103
  color: var(--color-accent);
14337
14104
  }
14338
14105
  `;
14339
- var HiddenMobileChart = styled25__default.default.div`
14340
- display: none;
14341
- @media (max-width: 480px) {
14342
- display: block;
14343
- }
14344
- `;
14345
14106
  var ValuationWrapper = styled25__default.default.div`
14346
14107
  display: flex;
14347
14108
  flex-direction: column;
@@ -14393,9 +14154,10 @@ var PricingModelCard = styled25__default.default.div`
14393
14154
  var PricingModelHeader = styled25__default.default.div`
14394
14155
  display: flex;
14395
14156
  justify-content: space-between;
14396
- align-items: center;
14157
+ align-items: flex-start;
14397
14158
  margin-bottom: 1.5rem;
14398
14159
  gap: 1rem;
14160
+ flex-wrap: wrap;
14399
14161
 
14400
14162
  .valuation-info {
14401
14163
  display: flex;
@@ -14403,6 +14165,7 @@ var PricingModelHeader = styled25__default.default.div`
14403
14165
  gap: 0.25rem;
14404
14166
  font-size: 0.85rem;
14405
14167
  color: rgba(255, 255, 255, 0.75);
14168
+ flex-shrink: 0;
14406
14169
  }
14407
14170
  `;
14408
14171
  var PricingModelTitle = styled25__default.default.h3`
@@ -14469,15 +14232,31 @@ var ValuationDetails = styled25__default.default.div`
14469
14232
  display: flex;
14470
14233
  justify-content: space-between;
14471
14234
  margin-top: 1rem;
14235
+ gap: 0.25rem;
14472
14236
  `;
14473
14237
  var ValuationItem = styled25__default.default.div`
14474
14238
  display: flex;
14475
14239
  flex-direction: column;
14240
+ min-width: 0;
14241
+ overflow: hidden;
14476
14242
  `;
14477
14243
  var ValuationValue = styled25__default.default.div`
14478
14244
  font-size: 1rem;
14479
14245
  font-weight: 600;
14480
14246
  color: #fff;
14247
+ display: flex;
14248
+ flex-direction: column;
14249
+ gap: 2px;
14250
+ overflow-wrap: break-word;
14251
+ word-break: break-word;
14252
+
14253
+ @media (max-width: 480px) {
14254
+ font-size: 0.72rem;
14255
+
14256
+ .valuation-amount-span {
14257
+ display: none;
14258
+ }
14259
+ }
14481
14260
  `;
14482
14261
  var ChartContainer = styled25__default.default.div`
14483
14262
  width: 100%;