@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 +2 -3
- package/dist/index.d.ts +2 -3
- package/dist/index.js +56 -200
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +56 -200
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
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,
|
|
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,
|
|
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 =
|
|
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: "
|
|
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",
|
|
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:
|
|
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
|
|
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:
|
|
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
|
-
|
|
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
|
|
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: "
|
|
3137
|
-
children:
|
|
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: "
|
|
3152
|
-
children:
|
|
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
|
|
3164
|
-
|
|
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
|
|
3181
|
-
|
|
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:
|
|
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
|
-
|
|
13772
|
+
formatCompact(fairValue),
|
|
13943
13773
|
" ",
|
|
13944
13774
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { style: { fontSize: "0.85em", fontWeight: "normal", opacity: 0.8 }, children: [
|
|
13945
13775
|
"(",
|
|
13946
|
-
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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%;
|