@loafmarkets/ui 0.1.254 → 0.1.256
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 +491 -863
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +491 -863
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -183,7 +183,7 @@ var PortfolioSummary = React5__namespace.forwardRef(
|
|
|
183
183
|
onResetAccount,
|
|
184
184
|
positionsHeading = "Current Positions",
|
|
185
185
|
emptyPositionsText = "No positions yet. Start trading to build your portfolio!",
|
|
186
|
-
formatCurrency:
|
|
186
|
+
formatCurrency: formatCurrency6 = defaultFormatCurrency,
|
|
187
187
|
formatPercent: formatPercent2 = defaultFormatPercent,
|
|
188
188
|
formatSignedCurrency = defaultFormatSignedCurrency,
|
|
189
189
|
className,
|
|
@@ -221,11 +221,11 @@ var PortfolioSummary = React5__namespace.forwardRef(
|
|
|
221
221
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
222
222
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
223
223
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs uppercase tracking-[0.5px] text-white/50", children: "Available Cash" }),
|
|
224
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[1.25rem] font-semibold text-white", children:
|
|
224
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[1.25rem] font-semibold text-white", children: formatCurrency6(availableCash) })
|
|
225
225
|
] }),
|
|
226
226
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
227
227
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs uppercase tracking-[0.5px] text-white/50", children: "Portfolio Value" }),
|
|
228
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[1.25rem] font-semibold text-white", children:
|
|
228
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[1.25rem] font-semibold text-white", children: formatCurrency6(portfolioValue) })
|
|
229
229
|
] }),
|
|
230
230
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
231
231
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs uppercase tracking-[0.5px] text-white/50", children: "Total Return" }),
|
|
@@ -7416,7 +7416,7 @@ var MiniLiveFeed = () => {
|
|
|
7416
7416
|
}, 2e3 + Math.random() * 2e3);
|
|
7417
7417
|
return () => clearInterval(interval);
|
|
7418
7418
|
}, []);
|
|
7419
|
-
const
|
|
7419
|
+
const formatCurrency6 = (amount) => `$${amount.toLocaleString()}`;
|
|
7420
7420
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
7421
7421
|
"div",
|
|
7422
7422
|
{
|
|
@@ -7506,7 +7506,7 @@ var MiniLiveFeed = () => {
|
|
|
7506
7506
|
] }),
|
|
7507
7507
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", alignItems: "center", gap: "0.5rem", position: "relative", zIndex: 1 }, children: [
|
|
7508
7508
|
/* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: "0.75rem", color: "var(--color-text-secondary, #848e9c)" }, children: "bought" }),
|
|
7509
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: "0.8rem", fontWeight: 600, color: "#fff" }, children:
|
|
7509
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: "0.8rem", fontWeight: 600, color: "#fff" }, children: formatCurrency6(purchase.amount) })
|
|
7510
7510
|
] })
|
|
7511
7511
|
]
|
|
7512
7512
|
},
|
|
@@ -8457,7 +8457,7 @@ function PropertyOverview({
|
|
|
8457
8457
|
description: descriptionProp,
|
|
8458
8458
|
tradeButtonLabel = "Trade",
|
|
8459
8459
|
images,
|
|
8460
|
-
galleryCategories
|
|
8460
|
+
galleryCategories = [],
|
|
8461
8461
|
videoUrl,
|
|
8462
8462
|
tokenName,
|
|
8463
8463
|
landSizeSqm: landProp,
|
|
@@ -8679,7 +8679,7 @@ function PropertyOverview({
|
|
|
8679
8679
|
GalleryMapSection,
|
|
8680
8680
|
{
|
|
8681
8681
|
images: galleryImages.map((img) => ({ src: img.imageUrl, title: img.title, subtitle: img.subtitle })),
|
|
8682
|
-
categories:
|
|
8682
|
+
categories: galleryCategories,
|
|
8683
8683
|
propertyLocation: location,
|
|
8684
8684
|
videoUrl,
|
|
8685
8685
|
tokenName,
|
|
@@ -8911,7 +8911,7 @@ function PropertyOverview({
|
|
|
8911
8911
|
GalleryMapSection,
|
|
8912
8912
|
{
|
|
8913
8913
|
images: galleryImages.map((img) => ({ src: img.imageUrl, title: img.title, subtitle: img.subtitle })),
|
|
8914
|
-
categories:
|
|
8914
|
+
categories: galleryCategories,
|
|
8915
8915
|
propertyLocation: location,
|
|
8916
8916
|
videoUrl,
|
|
8917
8917
|
tokenName,
|
|
@@ -12245,342 +12245,6 @@ var HomeSpinner = styled9__default.default.span`
|
|
|
12245
12245
|
to { transform: rotate(360deg); }
|
|
12246
12246
|
}
|
|
12247
12247
|
`;
|
|
12248
|
-
var MAX_DISPLAY_AMOUNT = 6e4;
|
|
12249
|
-
var formatCurrency4 = (amount) => {
|
|
12250
|
-
if (amount >= 1e6) return `$${(amount / 1e6).toFixed(2)}M`;
|
|
12251
|
-
return `$${Math.round(amount).toLocaleString()}`;
|
|
12252
|
-
};
|
|
12253
|
-
var formatTimeAgo2 = (timestamp) => {
|
|
12254
|
-
const seconds = Math.floor(Date.now() / 1e3) - timestamp;
|
|
12255
|
-
if (seconds < 60) return `${seconds}s ago`;
|
|
12256
|
-
const minutes = Math.floor(seconds / 60);
|
|
12257
|
-
if (minutes < 60) return `${minutes}m ago`;
|
|
12258
|
-
const hours = Math.floor(minutes / 60);
|
|
12259
|
-
if (hours < 24) return `${hours}h ago`;
|
|
12260
|
-
return `${Math.floor(hours / 24)}d ago`;
|
|
12261
|
-
};
|
|
12262
|
-
function VideoActivitySection({
|
|
12263
|
-
ipoStarted,
|
|
12264
|
-
ipoEnded = false,
|
|
12265
|
-
isLoading = false,
|
|
12266
|
-
recentOrders = [],
|
|
12267
|
-
ordersAllocated = 0,
|
|
12268
|
-
tokenPrice = 0
|
|
12269
|
-
}) {
|
|
12270
|
-
const sortedOrders = React5.useMemo(
|
|
12271
|
-
() => [...recentOrders].sort((a, b) => b.timestamp - a.timestamp).slice(0, 7),
|
|
12272
|
-
[recentOrders]
|
|
12273
|
-
);
|
|
12274
|
-
const headerStatusText = ipoEnded ? `Sale ended${ordersAllocated > 0 ? ` \xB7 ${ordersAllocated.toLocaleString()} orders` : ""}` : ipoStarted ? isLoading && sortedOrders.length === 0 ? "Loading orders\u2026" : `Active orders: ${ordersAllocated.toLocaleString()}` : "Waiting for Offer to Open";
|
|
12275
|
-
const showSkeletonFeed = ipoStarted && isLoading && sortedOrders.length === 0;
|
|
12276
|
-
const showOrderFeed = !showSkeletonFeed && (ipoStarted || ipoEnded && sortedOrders.length > 0);
|
|
12277
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(Section4, { children: [
|
|
12278
|
-
/* @__PURE__ */ jsxRuntime.jsxs(VideoPanel, { children: [
|
|
12279
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "section-header", children: /* @__PURE__ */ jsxRuntime.jsx("h3", { children: "Musgrave" }) }),
|
|
12280
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "video-container", children: /* @__PURE__ */ jsxRuntime.jsxs("video", { controls: true, loop: true, autoPlay: true, muted: true, playsInline: true, children: [
|
|
12281
|
-
/* @__PURE__ */ jsxRuntime.jsx("source", { src: "/properties/Musgrave/musgrave.mp4", type: "video/mp4" }),
|
|
12282
|
-
"Your browser does not support the video tag."
|
|
12283
|
-
] }) })
|
|
12284
|
-
] }),
|
|
12285
|
-
/* @__PURE__ */ jsxRuntime.jsxs(ActivityPanel, { children: [
|
|
12286
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "section-header", children: [
|
|
12287
|
-
/* @__PURE__ */ jsxRuntime.jsxs("h3", { children: [
|
|
12288
|
-
/* @__PURE__ */ jsxRuntime.jsx(LiveIndicatorDot, { $active: ipoStarted && !ipoEnded }),
|
|
12289
|
-
"Recent Order Activity"
|
|
12290
|
-
] }),
|
|
12291
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: headerStatusText })
|
|
12292
|
-
] }),
|
|
12293
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "activity-content", children: showSkeletonFeed ? /* @__PURE__ */ jsxRuntime.jsx(FeedList, { children: Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsxs(SkeletonFeedRow, { children: [
|
|
12294
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "info-col", children: [
|
|
12295
|
-
/* @__PURE__ */ jsxRuntime.jsx(Skeleton, { width: 110, height: 14 }),
|
|
12296
|
-
/* @__PURE__ */ jsxRuntime.jsx(Skeleton, { width: 56, height: 10 })
|
|
12297
|
-
] }),
|
|
12298
|
-
/* @__PURE__ */ jsxRuntime.jsx(Skeleton, { width: 70, height: 14 })
|
|
12299
|
-
] }, `feed-skel-${i}`)) }) : showOrderFeed ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
12300
|
-
ipoEnded && /* @__PURE__ */ jsxRuntime.jsx(EndedBanner, { children: "Sale ended \u2014 final allocations" }),
|
|
12301
|
-
/* @__PURE__ */ jsxRuntime.jsx(FeedList, { children: sortedOrders.map((order, index) => {
|
|
12302
|
-
const amount = tokenPrice * order.quantity;
|
|
12303
|
-
const barPercent = Math.min(85, Math.max(15, amount / MAX_DISPLAY_AMOUNT * 100));
|
|
12304
|
-
const isAlternate = index % 2 === 1;
|
|
12305
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
12306
|
-
PurchaseItem,
|
|
12307
|
-
{
|
|
12308
|
-
$barWidth: `${barPercent}%`,
|
|
12309
|
-
$isAlternate: isAlternate,
|
|
12310
|
-
children: [
|
|
12311
|
-
/* @__PURE__ */ jsxRuntime.jsxs(PurchaseInfo, { children: [
|
|
12312
|
-
/* @__PURE__ */ jsxRuntime.jsx(PurchaseName, { children: order.buyerHandle || `${order.buyerAddress.slice(0, 6)}...${order.buyerAddress.slice(-4)}` }),
|
|
12313
|
-
/* @__PURE__ */ jsxRuntime.jsx(PurchaseTime, { children: formatTimeAgo2(order.timestamp) })
|
|
12314
|
-
] }),
|
|
12315
|
-
/* @__PURE__ */ jsxRuntime.jsx(PurchaseAmount, { children: formatCurrency4(amount) })
|
|
12316
|
-
]
|
|
12317
|
-
},
|
|
12318
|
-
order.txHash
|
|
12319
|
-
);
|
|
12320
|
-
}) })
|
|
12321
|
-
] }) : ipoEnded ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "activity-empty", children: /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Sale ended \u2014 no orders were placed." }) }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "activity-empty", children: [
|
|
12322
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "spinner" }),
|
|
12323
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { children: "Activity will appear once the Offering opens" })
|
|
12324
|
-
] }) })
|
|
12325
|
-
] })
|
|
12326
|
-
] });
|
|
12327
|
-
}
|
|
12328
|
-
var Section4 = styled9__default.default.div`
|
|
12329
|
-
display: flex;
|
|
12330
|
-
gap: 1.5rem;
|
|
12331
|
-
align-items: stretch;
|
|
12332
|
-
@media (max-width: 1024px) {
|
|
12333
|
-
flex-direction: column;
|
|
12334
|
-
gap: 1rem;
|
|
12335
|
-
}
|
|
12336
|
-
`;
|
|
12337
|
-
var VideoPanel = styled9__default.default.div`
|
|
12338
|
-
flex: 1;
|
|
12339
|
-
background-color: var(--color-card-darker, #111);
|
|
12340
|
-
border-radius: 8px;
|
|
12341
|
-
padding: 1.5rem;
|
|
12342
|
-
box-shadow: 0 4px 8px rgba(0,0,0,0.2);
|
|
12343
|
-
border: 1px solid var(--color-border);
|
|
12344
|
-
overflow: hidden;
|
|
12345
|
-
display: flex;
|
|
12346
|
-
flex-direction: column;
|
|
12347
|
-
@media (max-width: 768px) {
|
|
12348
|
-
display: none;
|
|
12349
|
-
}
|
|
12350
|
-
.section-header {
|
|
12351
|
-
display: flex;
|
|
12352
|
-
justify-content: space-between;
|
|
12353
|
-
align-items: center;
|
|
12354
|
-
padding-bottom: 0.75rem;
|
|
12355
|
-
margin-bottom: 1rem;
|
|
12356
|
-
border-bottom: 1px solid rgba(255,255,255,0.1);
|
|
12357
|
-
h3 {
|
|
12358
|
-
font-size: 0.9rem;
|
|
12359
|
-
font-weight: 600;
|
|
12360
|
-
color: var(--color-text);
|
|
12361
|
-
margin: 0;
|
|
12362
|
-
}
|
|
12363
|
-
}
|
|
12364
|
-
.video-container {
|
|
12365
|
-
flex: 1;
|
|
12366
|
-
position: relative;
|
|
12367
|
-
background: #000;
|
|
12368
|
-
border-radius: 8px;
|
|
12369
|
-
overflow: hidden;
|
|
12370
|
-
min-height: 300px;
|
|
12371
|
-
video {
|
|
12372
|
-
position: absolute;
|
|
12373
|
-
top: 0;
|
|
12374
|
-
left: 0;
|
|
12375
|
-
width: 100%;
|
|
12376
|
-
height: 100%;
|
|
12377
|
-
object-fit: cover;
|
|
12378
|
-
}
|
|
12379
|
-
}
|
|
12380
|
-
`;
|
|
12381
|
-
var ActivityPanel = styled9__default.default.div`
|
|
12382
|
-
flex: 0 0 auto;
|
|
12383
|
-
min-width: 450px;
|
|
12384
|
-
max-width: 520px;
|
|
12385
|
-
display: flex;
|
|
12386
|
-
flex-direction: column;
|
|
12387
|
-
background-color: var(--color-card-darker, #111);
|
|
12388
|
-
border-radius: 8px;
|
|
12389
|
-
padding: 1.5rem;
|
|
12390
|
-
box-shadow: 0 4px 8px rgba(0,0,0,0.2);
|
|
12391
|
-
border: 1px solid var(--color-border);
|
|
12392
|
-
@media (max-width: 1024px) {
|
|
12393
|
-
min-width: 0;
|
|
12394
|
-
max-width: none;
|
|
12395
|
-
width: 100%;
|
|
12396
|
-
padding: 1rem;
|
|
12397
|
-
}
|
|
12398
|
-
@media (max-width: 768px) {
|
|
12399
|
-
max-height: 280px;
|
|
12400
|
-
.activity-content {
|
|
12401
|
-
max-height: 220px;
|
|
12402
|
-
}
|
|
12403
|
-
}
|
|
12404
|
-
.section-header {
|
|
12405
|
-
display: flex;
|
|
12406
|
-
justify-content: space-between;
|
|
12407
|
-
align-items: center;
|
|
12408
|
-
padding-bottom: 0.75rem;
|
|
12409
|
-
margin-bottom: 1rem;
|
|
12410
|
-
border-bottom: 1px solid rgba(255,255,255,0.1);
|
|
12411
|
-
h3 {
|
|
12412
|
-
font-size: 0.9rem;
|
|
12413
|
-
font-weight: 600;
|
|
12414
|
-
color: var(--color-text);
|
|
12415
|
-
margin: 0;
|
|
12416
|
-
display: flex;
|
|
12417
|
-
align-items: center;
|
|
12418
|
-
gap: 0.5rem;
|
|
12419
|
-
}
|
|
12420
|
-
span {
|
|
12421
|
-
font-size: 0.75rem;
|
|
12422
|
-
color: var(--color-text-secondary);
|
|
12423
|
-
font-weight: 500;
|
|
12424
|
-
}
|
|
12425
|
-
}
|
|
12426
|
-
.activity-content {
|
|
12427
|
-
flex: 1;
|
|
12428
|
-
overflow-y: auto;
|
|
12429
|
-
scrollbar-width: none;
|
|
12430
|
-
-ms-overflow-style: none;
|
|
12431
|
-
}
|
|
12432
|
-
.activity-content::-webkit-scrollbar {
|
|
12433
|
-
display: none;
|
|
12434
|
-
}
|
|
12435
|
-
.activity-empty {
|
|
12436
|
-
display: flex;
|
|
12437
|
-
flex-direction: column;
|
|
12438
|
-
align-items: center;
|
|
12439
|
-
justify-content: center;
|
|
12440
|
-
height: 200px;
|
|
12441
|
-
color: var(--color-text-secondary);
|
|
12442
|
-
text-align: center;
|
|
12443
|
-
gap: 0.75rem;
|
|
12444
|
-
.spinner {
|
|
12445
|
-
width: 40px;
|
|
12446
|
-
height: 40px;
|
|
12447
|
-
border-radius: 50%;
|
|
12448
|
-
border: 2px solid rgba(212,175,55,0.3);
|
|
12449
|
-
border-top-color: #D4AF37;
|
|
12450
|
-
animation: spin 1s linear infinite;
|
|
12451
|
-
}
|
|
12452
|
-
p {
|
|
12453
|
-
font-size: 0.85rem;
|
|
12454
|
-
margin: 0;
|
|
12455
|
-
}
|
|
12456
|
-
}
|
|
12457
|
-
@keyframes spin {
|
|
12458
|
-
from { transform: rotate(0deg); }
|
|
12459
|
-
to { transform: rotate(360deg); }
|
|
12460
|
-
}
|
|
12461
|
-
`;
|
|
12462
|
-
var SkeletonFeedRow = styled9__default.default.div`
|
|
12463
|
-
padding: 0.625rem 0.75rem;
|
|
12464
|
-
border-bottom: 1px solid rgba(255,255,255,0.04);
|
|
12465
|
-
display: flex;
|
|
12466
|
-
justify-content: space-between;
|
|
12467
|
-
align-items: center;
|
|
12468
|
-
gap: 1rem;
|
|
12469
|
-
|
|
12470
|
-
&:last-child {
|
|
12471
|
-
border-bottom: none;
|
|
12472
|
-
}
|
|
12473
|
-
|
|
12474
|
-
.info-col {
|
|
12475
|
-
display: flex;
|
|
12476
|
-
flex-direction: column;
|
|
12477
|
-
gap: 0.3rem;
|
|
12478
|
-
min-width: 0;
|
|
12479
|
-
flex: 1;
|
|
12480
|
-
}
|
|
12481
|
-
|
|
12482
|
-
@media (max-width: 768px) {
|
|
12483
|
-
padding: 0.4rem 0.6rem;
|
|
12484
|
-
}
|
|
12485
|
-
`;
|
|
12486
|
-
var EndedBanner = styled9__default.default.div`
|
|
12487
|
-
font-size: 0.7rem;
|
|
12488
|
-
font-weight: 600;
|
|
12489
|
-
letter-spacing: 0.04em;
|
|
12490
|
-
text-transform: uppercase;
|
|
12491
|
-
color: rgba(255, 255, 255, 0.55);
|
|
12492
|
-
background: rgba(255, 255, 255, 0.04);
|
|
12493
|
-
border: 1px solid rgba(255, 255, 255, 0.08);
|
|
12494
|
-
border-radius: 6px;
|
|
12495
|
-
padding: 0.4rem 0.6rem;
|
|
12496
|
-
margin-bottom: 0.5rem;
|
|
12497
|
-
text-align: center;
|
|
12498
|
-
`;
|
|
12499
|
-
var FeedList = styled9__default.default.div`
|
|
12500
|
-
width: 100%;
|
|
12501
|
-
overflow-y: auto;
|
|
12502
|
-
scrollbar-width: none;
|
|
12503
|
-
-ms-overflow-style: none;
|
|
12504
|
-
&::-webkit-scrollbar {
|
|
12505
|
-
display: none;
|
|
12506
|
-
}
|
|
12507
|
-
`;
|
|
12508
|
-
var PurchaseItem = styled9__default.default.div`
|
|
12509
|
-
padding: 0.625rem 0.75rem;
|
|
12510
|
-
border-bottom: 1px solid rgba(255,255,255,0.05);
|
|
12511
|
-
display: flex;
|
|
12512
|
-
justify-content: space-between;
|
|
12513
|
-
align-items: center;
|
|
12514
|
-
position: relative;
|
|
12515
|
-
overflow: hidden;
|
|
12516
|
-
background-color: ${(p) => p.$isAlternate ? "rgba(255,255,255,0.03)" : "transparent"};
|
|
12517
|
-
|
|
12518
|
-
&::before {
|
|
12519
|
-
content: '';
|
|
12520
|
-
position: absolute;
|
|
12521
|
-
top: 0;
|
|
12522
|
-
right: 0;
|
|
12523
|
-
bottom: 0;
|
|
12524
|
-
width: ${(p) => p.$barWidth || "20%"};
|
|
12525
|
-
background: linear-gradient(90deg, transparent 0%, rgba(14,203,129,0.15) 100%);
|
|
12526
|
-
pointer-events: none;
|
|
12527
|
-
}
|
|
12528
|
-
|
|
12529
|
-
&:last-child {
|
|
12530
|
-
border-bottom: none;
|
|
12531
|
-
}
|
|
12532
|
-
|
|
12533
|
-
@media (max-width: 768px) {
|
|
12534
|
-
padding: 0.4rem 0.6rem;
|
|
12535
|
-
}
|
|
12536
|
-
`;
|
|
12537
|
-
var PurchaseInfo = styled9__default.default.div`
|
|
12538
|
-
display: flex;
|
|
12539
|
-
flex-direction: column;
|
|
12540
|
-
min-width: 0;
|
|
12541
|
-
`;
|
|
12542
|
-
var PurchaseName = styled9__default.default.div`
|
|
12543
|
-
font-weight: 500;
|
|
12544
|
-
font-size: 0.875rem;
|
|
12545
|
-
color: #fff;
|
|
12546
|
-
white-space: nowrap;
|
|
12547
|
-
overflow: hidden;
|
|
12548
|
-
text-overflow: ellipsis;
|
|
12549
|
-
`;
|
|
12550
|
-
var PurchaseTime = styled9__default.default.div`
|
|
12551
|
-
font-size: 0.7rem;
|
|
12552
|
-
color: var(--color-text-secondary);
|
|
12553
|
-
margin-top: 0.125rem;
|
|
12554
|
-
`;
|
|
12555
|
-
var PurchaseAmount = styled9__default.default.div`
|
|
12556
|
-
font-weight: 600;
|
|
12557
|
-
font-size: 0.875rem;
|
|
12558
|
-
color: #fff;
|
|
12559
|
-
white-space: nowrap;
|
|
12560
|
-
margin-left: 1rem;
|
|
12561
|
-
`;
|
|
12562
|
-
var LiveIndicatorDot = styled9__default.default.span`
|
|
12563
|
-
display: inline-block;
|
|
12564
|
-
width: 8px;
|
|
12565
|
-
height: 8px;
|
|
12566
|
-
background-color: ${(p) => p.$active ? "#0ecb81" : "#848e9c"};
|
|
12567
|
-
border-radius: 50%;
|
|
12568
|
-
position: relative;
|
|
12569
|
-
&:after {
|
|
12570
|
-
content: '';
|
|
12571
|
-
position: absolute;
|
|
12572
|
-
width: 100%;
|
|
12573
|
-
height: 100%;
|
|
12574
|
-
border-radius: 50%;
|
|
12575
|
-
background-color: ${(p) => p.$active ? "#0ecb81" : "transparent"};
|
|
12576
|
-
animation: ${(p) => p.$active ? "liveGlow 2s infinite" : "none"};
|
|
12577
|
-
}
|
|
12578
|
-
@keyframes liveGlow {
|
|
12579
|
-
0% { box-shadow: 0 0 0 0 rgba(14,203,129,0.4); }
|
|
12580
|
-
70% { box-shadow: 0 0 0 10px rgba(14,203,129,0); }
|
|
12581
|
-
100% { box-shadow: 0 0 0 0 rgba(14,203,129,0); }
|
|
12582
|
-
}
|
|
12583
|
-
`;
|
|
12584
12248
|
var slideIn = styled9.keyframes`
|
|
12585
12249
|
from { transform: translateX(110%); opacity: 0; }
|
|
12586
12250
|
to { transform: translateX(0); opacity: 1; }
|
|
@@ -13627,52 +13291,312 @@ var InsufficientFunds = styled9__default.default.div`
|
|
|
13627
13291
|
font-size: 0.85rem;
|
|
13628
13292
|
font-weight: 600;
|
|
13629
13293
|
`;
|
|
13630
|
-
|
|
13631
|
-
|
|
13632
|
-
|
|
13633
|
-
|
|
13634
|
-
|
|
13635
|
-
|
|
13636
|
-
|
|
13637
|
-
|
|
13638
|
-
|
|
13639
|
-
|
|
13640
|
-
|
|
13641
|
-
|
|
13642
|
-
|
|
13643
|
-
|
|
13644
|
-
|
|
13645
|
-
|
|
13646
|
-
|
|
13647
|
-
|
|
13648
|
-
|
|
13649
|
-
|
|
13650
|
-
|
|
13651
|
-
|
|
13652
|
-
|
|
13653
|
-
|
|
13654
|
-
|
|
13655
|
-
|
|
13656
|
-
|
|
13657
|
-
|
|
13658
|
-
|
|
13659
|
-
|
|
13660
|
-
|
|
13661
|
-
|
|
13662
|
-
|
|
13663
|
-
|
|
13664
|
-
}
|
|
13665
|
-
|
|
13666
|
-
|
|
13667
|
-
|
|
13668
|
-
|
|
13669
|
-
|
|
13670
|
-
|
|
13671
|
-
|
|
13672
|
-
|
|
13673
|
-
|
|
13674
|
-
|
|
13675
|
-
|
|
13294
|
+
function OrderConfirmationModal({
|
|
13295
|
+
open,
|
|
13296
|
+
onClose,
|
|
13297
|
+
hasInsufficientFunds,
|
|
13298
|
+
tokenQuantity,
|
|
13299
|
+
tokenPrice,
|
|
13300
|
+
propertyName,
|
|
13301
|
+
tokenSymbol,
|
|
13302
|
+
estExposure,
|
|
13303
|
+
orderTotal,
|
|
13304
|
+
availableBalance,
|
|
13305
|
+
onConfirm,
|
|
13306
|
+
isPlacing = false,
|
|
13307
|
+
placingLabel = "Placing order\u2026"
|
|
13308
|
+
}) {
|
|
13309
|
+
if (!open) return null;
|
|
13310
|
+
const handleOverlayClose = () => {
|
|
13311
|
+
if (isPlacing) return;
|
|
13312
|
+
onClose();
|
|
13313
|
+
};
|
|
13314
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Overlay3, { onClick: handleOverlayClose, children: /* @__PURE__ */ jsxRuntime.jsxs(Modal, { onClick: (e) => e.stopPropagation(), children: [
|
|
13315
|
+
/* @__PURE__ */ jsxRuntime.jsx(ModalHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs("h3", { children: [
|
|
13316
|
+
"Confirm Order",
|
|
13317
|
+
/* @__PURE__ */ jsxRuntime.jsx(Badge2, { children: "Subscribe" })
|
|
13318
|
+
] }) }),
|
|
13319
|
+
/* @__PURE__ */ jsxRuntime.jsx(ModalBody, { children: [
|
|
13320
|
+
{ label: "Order Type", value: "Primary Offering" },
|
|
13321
|
+
{ label: "Property", value: propertyName },
|
|
13322
|
+
{ label: "Units", value: `${tokenQuantity.toLocaleString()} ${tokenSymbol}`, highlight: true },
|
|
13323
|
+
{
|
|
13324
|
+
label: "Unit Price",
|
|
13325
|
+
value: `$${tokenPrice.toLocaleString(void 0, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}`
|
|
13326
|
+
},
|
|
13327
|
+
{ label: "Property Exposure", value: `${estExposure}%` },
|
|
13328
|
+
{ label: "Total Investment", value: `$${orderTotal.toLocaleString()}`, highlight: true }
|
|
13329
|
+
].map((row, index, arr) => /* @__PURE__ */ jsxRuntime.jsxs(ModalRow, { "data-divider": index < arr.length - 1, children: [
|
|
13330
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: row.label }),
|
|
13331
|
+
/* @__PURE__ */ jsxRuntime.jsx("strong", { "data-highlight": row.highlight, children: row.value })
|
|
13332
|
+
] }, row.label)) }),
|
|
13333
|
+
hasInsufficientFunds ? /* @__PURE__ */ jsxRuntime.jsxs(Warning, { children: [
|
|
13334
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { children: "\u26A0 Insufficient Balance" }),
|
|
13335
|
+
/* @__PURE__ */ jsxRuntime.jsxs("small", { children: [
|
|
13336
|
+
"You need ",
|
|
13337
|
+
/* @__PURE__ */ jsxRuntime.jsxs("strong", { children: [
|
|
13338
|
+
"$",
|
|
13339
|
+
orderTotal.toLocaleString()
|
|
13340
|
+
] }),
|
|
13341
|
+
" but only have",
|
|
13342
|
+
" ",
|
|
13343
|
+
/* @__PURE__ */ jsxRuntime.jsxs("strong", { children: [
|
|
13344
|
+
"$",
|
|
13345
|
+
availableBalance.toLocaleString()
|
|
13346
|
+
] }),
|
|
13347
|
+
" available."
|
|
13348
|
+
] })
|
|
13349
|
+
] }) : /* @__PURE__ */ jsxRuntime.jsxs(Summary, { children: [
|
|
13350
|
+
"Your order for ",
|
|
13351
|
+
/* @__PURE__ */ jsxRuntime.jsxs("strong", { children: [
|
|
13352
|
+
tokenQuantity.toLocaleString(),
|
|
13353
|
+
" ",
|
|
13354
|
+
tokenSymbol,
|
|
13355
|
+
" units"
|
|
13356
|
+
] }),
|
|
13357
|
+
" in the",
|
|
13358
|
+
" ",
|
|
13359
|
+
/* @__PURE__ */ jsxRuntime.jsx("strong", { children: propertyName }),
|
|
13360
|
+
" Primary Offering will be placed for ",
|
|
13361
|
+
/* @__PURE__ */ jsxRuntime.jsxs("strong", { children: [
|
|
13362
|
+
"$",
|
|
13363
|
+
tokenPrice.toFixed(2),
|
|
13364
|
+
"/unit"
|
|
13365
|
+
] }),
|
|
13366
|
+
"."
|
|
13367
|
+
] }),
|
|
13368
|
+
/* @__PURE__ */ jsxRuntime.jsxs(ButtonRow2, { children: [
|
|
13369
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
13370
|
+
"button",
|
|
13371
|
+
{
|
|
13372
|
+
type: "button",
|
|
13373
|
+
onClick: onClose,
|
|
13374
|
+
className: "secondary",
|
|
13375
|
+
disabled: isPlacing,
|
|
13376
|
+
children: "Cancel"
|
|
13377
|
+
}
|
|
13378
|
+
),
|
|
13379
|
+
!hasInsufficientFunds && /* @__PURE__ */ jsxRuntime.jsx(
|
|
13380
|
+
"button",
|
|
13381
|
+
{
|
|
13382
|
+
type: "button",
|
|
13383
|
+
onClick: onConfirm,
|
|
13384
|
+
className: "primary",
|
|
13385
|
+
disabled: isPlacing,
|
|
13386
|
+
children: isPlacing ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
13387
|
+
/* @__PURE__ */ jsxRuntime.jsx(Spinner, { "aria-hidden": true }),
|
|
13388
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: placingLabel })
|
|
13389
|
+
] }) : "Place Order"
|
|
13390
|
+
}
|
|
13391
|
+
)
|
|
13392
|
+
] })
|
|
13393
|
+
] }) });
|
|
13394
|
+
}
|
|
13395
|
+
var Overlay3 = styled9__default.default.div`
|
|
13396
|
+
position: fixed;
|
|
13397
|
+
top: 0;
|
|
13398
|
+
left: 0;
|
|
13399
|
+
right: 0;
|
|
13400
|
+
bottom: 0;
|
|
13401
|
+
background-color: rgba(0,0,0,0.7);
|
|
13402
|
+
display: flex;
|
|
13403
|
+
align-items: center;
|
|
13404
|
+
justify-content: center;
|
|
13405
|
+
z-index: 10000;
|
|
13406
|
+
backdrop-filter: blur(4px);
|
|
13407
|
+
`;
|
|
13408
|
+
var Modal = styled9__default.default.div`
|
|
13409
|
+
background: linear-gradient(135deg, rgba(26,29,35,0.95) 0%, rgba(26,29,35,0.98) 100%);
|
|
13410
|
+
border: 1px solid rgba(255,255,255,0.1);
|
|
13411
|
+
border-radius: 16px;
|
|
13412
|
+
padding: 2rem;
|
|
13413
|
+
max-width: 480px;
|
|
13414
|
+
width: 90%;
|
|
13415
|
+
box-shadow: 0 20px 60px rgba(0,0,0,0.5);
|
|
13416
|
+
`;
|
|
13417
|
+
var ModalHeader = styled9__default.default.div`
|
|
13418
|
+
display: flex;
|
|
13419
|
+
align-items: center;
|
|
13420
|
+
margin-bottom: 1.5rem;
|
|
13421
|
+
padding-bottom: 1rem;
|
|
13422
|
+
border-bottom: 1px solid rgba(255,255,255,0.1);
|
|
13423
|
+
h3 {
|
|
13424
|
+
margin: 0;
|
|
13425
|
+
font-size: 1.25rem;
|
|
13426
|
+
font-weight: 600;
|
|
13427
|
+
color: #fff;
|
|
13428
|
+
display: flex;
|
|
13429
|
+
align-items: center;
|
|
13430
|
+
gap: 0.5rem;
|
|
13431
|
+
}
|
|
13432
|
+
`;
|
|
13433
|
+
var Badge2 = styled9__default.default.span`
|
|
13434
|
+
padding: 0.25rem 0.75rem;
|
|
13435
|
+
border-radius: 6px;
|
|
13436
|
+
font-size: 0.75rem;
|
|
13437
|
+
font-weight: 600;
|
|
13438
|
+
text-transform: uppercase;
|
|
13439
|
+
letter-spacing: 0.5px;
|
|
13440
|
+
background: linear-gradient(135deg, rgba(212,175,55,0.2) 0%, rgba(212,175,55,0.1) 100%);
|
|
13441
|
+
color: #D4AF37;
|
|
13442
|
+
border: 1px solid rgba(212,175,55,0.3);
|
|
13443
|
+
`;
|
|
13444
|
+
var ModalBody = styled9__default.default.div`
|
|
13445
|
+
margin-bottom: 1.5rem;
|
|
13446
|
+
display: flex;
|
|
13447
|
+
flex-direction: column;
|
|
13448
|
+
`;
|
|
13449
|
+
var ModalRow = styled9__default.default.div`
|
|
13450
|
+
display: flex;
|
|
13451
|
+
justify-content: space-between;
|
|
13452
|
+
align-items: center;
|
|
13453
|
+
padding: 0.75rem 0;
|
|
13454
|
+
border-bottom: 1px solid rgba(255,255,255,0.05);
|
|
13455
|
+
&[data-divider='false'] {
|
|
13456
|
+
border-bottom: none;
|
|
13457
|
+
}
|
|
13458
|
+
span {
|
|
13459
|
+
color: rgba(255,255,255,0.6);
|
|
13460
|
+
font-size: 0.9rem;
|
|
13461
|
+
}
|
|
13462
|
+
strong {
|
|
13463
|
+
color: #fff;
|
|
13464
|
+
font-weight: 500;
|
|
13465
|
+
font-size: 0.95rem;
|
|
13466
|
+
}
|
|
13467
|
+
strong[data-highlight='true'] {
|
|
13468
|
+
color: #D4AF37;
|
|
13469
|
+
font-weight: 600;
|
|
13470
|
+
}
|
|
13471
|
+
`;
|
|
13472
|
+
var Warning = styled9__default.default.div`
|
|
13473
|
+
background: rgba(246,70,93,0.1);
|
|
13474
|
+
border: 1px solid rgba(246,70,93,0.3);
|
|
13475
|
+
border-radius: 8px;
|
|
13476
|
+
padding: 1rem;
|
|
13477
|
+
margin-bottom: 1.5rem;
|
|
13478
|
+
p {
|
|
13479
|
+
margin: 0;
|
|
13480
|
+
color: #f6465d;
|
|
13481
|
+
font-size: 0.9rem;
|
|
13482
|
+
font-weight: 600;
|
|
13483
|
+
}
|
|
13484
|
+
small {
|
|
13485
|
+
display: block;
|
|
13486
|
+
margin-top: 0.5rem;
|
|
13487
|
+
color: rgba(255,255,255,0.7);
|
|
13488
|
+
font-size: 0.85rem;
|
|
13489
|
+
line-height: 1.5;
|
|
13490
|
+
}
|
|
13491
|
+
`;
|
|
13492
|
+
var Summary = styled9__default.default.div`
|
|
13493
|
+
background: rgba(255,255,255,0.03);
|
|
13494
|
+
border: 1px solid rgba(255,255,255,0.08);
|
|
13495
|
+
border-radius: 8px;
|
|
13496
|
+
padding: 1rem;
|
|
13497
|
+
margin-bottom: 1.5rem;
|
|
13498
|
+
color: rgba(255,255,255,0.8);
|
|
13499
|
+
font-size: 0.9rem;
|
|
13500
|
+
line-height: 1.5;
|
|
13501
|
+
`;
|
|
13502
|
+
var spin = styled9.keyframes`
|
|
13503
|
+
to { transform: rotate(360deg); }
|
|
13504
|
+
`;
|
|
13505
|
+
var Spinner = styled9__default.default.span`
|
|
13506
|
+
display: inline-block;
|
|
13507
|
+
width: 14px;
|
|
13508
|
+
height: 14px;
|
|
13509
|
+
border-radius: 50%;
|
|
13510
|
+
border: 2px solid rgba(255, 255, 255, 0.35);
|
|
13511
|
+
border-top-color: #fff;
|
|
13512
|
+
animation: ${spin} 0.7s linear infinite;
|
|
13513
|
+
margin-right: 0.5rem;
|
|
13514
|
+
vertical-align: -2px;
|
|
13515
|
+
`;
|
|
13516
|
+
var ButtonRow2 = styled9__default.default.div`
|
|
13517
|
+
display: flex;
|
|
13518
|
+
gap: 1rem;
|
|
13519
|
+
justify-content: flex-end;
|
|
13520
|
+
button {
|
|
13521
|
+
padding: 0.75rem 1.5rem;
|
|
13522
|
+
border-radius: 8px;
|
|
13523
|
+
font-weight: 600;
|
|
13524
|
+
font-size: 0.95rem;
|
|
13525
|
+
cursor: pointer;
|
|
13526
|
+
display: inline-flex;
|
|
13527
|
+
align-items: center;
|
|
13528
|
+
justify-content: center;
|
|
13529
|
+
}
|
|
13530
|
+
button:disabled {
|
|
13531
|
+
cursor: not-allowed;
|
|
13532
|
+
opacity: 0.75;
|
|
13533
|
+
}
|
|
13534
|
+
.secondary {
|
|
13535
|
+
background: rgba(255,255,255,0.1);
|
|
13536
|
+
color: rgba(255,255,255,0.8);
|
|
13537
|
+
border: 1px solid rgba(255,255,255,0.2);
|
|
13538
|
+
}
|
|
13539
|
+
.primary {
|
|
13540
|
+
background: linear-gradient(135deg, #0ecb81 0%, #0ba968 100%);
|
|
13541
|
+
color: #fff;
|
|
13542
|
+
border: none;
|
|
13543
|
+
box-shadow: 0 4px 12px rgba(14,203,129,0.3);
|
|
13544
|
+
}
|
|
13545
|
+
`;
|
|
13546
|
+
|
|
13547
|
+
// src/components/property-buy/constants.ts
|
|
13548
|
+
var STATUS_COLOR2 = {
|
|
13549
|
+
PENDING: "#D4AF37",
|
|
13550
|
+
LIVE: "#0ecb81",
|
|
13551
|
+
CLOSED: "#848e9c",
|
|
13552
|
+
CANCELLED: "#f6465d"
|
|
13553
|
+
};
|
|
13554
|
+
var ACTIVITY_PAGE_SIZE_DEFAULT = 10;
|
|
13555
|
+
var formatCurrency4 = (value, opts) => {
|
|
13556
|
+
const min = opts?.minimumFractionDigits ?? 2;
|
|
13557
|
+
const max = opts?.maximumFractionDigits ?? 2;
|
|
13558
|
+
return `$${value.toLocaleString("en-US", { minimumFractionDigits: min, maximumFractionDigits: max })}`;
|
|
13559
|
+
};
|
|
13560
|
+
var formatNumber2 = (value, maximumFractionDigits = 2) => value.toLocaleString("en-US", { minimumFractionDigits: 0, maximumFractionDigits });
|
|
13561
|
+
var formatTimestamp = (unix) => {
|
|
13562
|
+
if (!unix) return "\u2014";
|
|
13563
|
+
let sec;
|
|
13564
|
+
if (unix > 1e18) sec = Math.floor(unix / 1e9);
|
|
13565
|
+
else if (unix > 1e14) sec = Math.floor(unix / 1e6);
|
|
13566
|
+
else if (unix > 1e12) sec = Math.floor(unix / 1e3);
|
|
13567
|
+
else sec = unix;
|
|
13568
|
+
return new Date(sec * 1e3).toLocaleString("en-AU", {
|
|
13569
|
+
day: "2-digit",
|
|
13570
|
+
month: "short",
|
|
13571
|
+
hour: "2-digit",
|
|
13572
|
+
minute: "2-digit",
|
|
13573
|
+
hour12: false
|
|
13574
|
+
});
|
|
13575
|
+
};
|
|
13576
|
+
var formatAddress = (address) => `${address.slice(0, 6)}...${address.slice(-4)}`;
|
|
13577
|
+
var prettyLabel = (value) => value.split("_").map((part) => part.charAt(0) + part.slice(1).toLowerCase()).join(" ");
|
|
13578
|
+
var sideLabel = (side) => side?.toUpperCase() === "SELL" ? "Sell" : "Buy";
|
|
13579
|
+
var getOrderStatusMeta = (statusRaw) => {
|
|
13580
|
+
const status = statusRaw.toUpperCase();
|
|
13581
|
+
if (status === "FILLED" || status === "CONFIRMED" || status === "ALLOCATED") {
|
|
13582
|
+
return { color: "#0ecb81", bg: "rgba(14,203,129,0.1)" };
|
|
13583
|
+
}
|
|
13584
|
+
if (status === "CANCELLED" || status === "CANCELED" || status === "REJECTED") {
|
|
13585
|
+
return { color: "#f6465d", bg: "rgba(246,70,93,0.12)" };
|
|
13586
|
+
}
|
|
13587
|
+
return { color: "#f0b90b", bg: "rgba(240,185,11,0.15)" };
|
|
13588
|
+
};
|
|
13589
|
+
function EditableField({ value, onCommit, format }) {
|
|
13590
|
+
const [editing, setEditing] = React5.useState(false);
|
|
13591
|
+
const [draft, setDraft] = React5.useState("");
|
|
13592
|
+
const inputRef = React5.useRef(null);
|
|
13593
|
+
React5.useEffect(() => {
|
|
13594
|
+
if (editing) inputRef.current?.focus();
|
|
13595
|
+
}, [editing]);
|
|
13596
|
+
const commit = () => {
|
|
13597
|
+
const parsed = parseFloat(draft);
|
|
13598
|
+
if (!isNaN(parsed) && parsed > 0 && parsed !== value) {
|
|
13599
|
+
onCommit(parsed);
|
|
13676
13600
|
}
|
|
13677
13601
|
setEditing(false);
|
|
13678
13602
|
};
|
|
@@ -13887,16 +13811,16 @@ function PortfolioActivityPanel({
|
|
|
13887
13811
|
/* @__PURE__ */ jsxRuntime.jsx("span", { style: { color: "rgba(255,255,255,0.4)", fontSize: "0.7rem" }, children: pos.tokenName.toUpperCase() })
|
|
13888
13812
|
] }) }),
|
|
13889
13813
|
/* @__PURE__ */ jsxRuntime.jsx(PositionsCell, { children: /* @__PURE__ */ jsxRuntime.jsxs("span", { style: { color: "#fff", fontSize: "0.8rem" }, children: [
|
|
13890
|
-
|
|
13814
|
+
formatCurrency4(currentValue, { minimumFractionDigits: 0, maximumFractionDigits: 0 }),
|
|
13891
13815
|
" ",
|
|
13892
13816
|
/* @__PURE__ */ jsxRuntime.jsx("span", { style: { color: "rgba(255,255,255,0.4)", fontSize: "0.7rem" }, children: "USD" })
|
|
13893
13817
|
] }) }),
|
|
13894
|
-
/* @__PURE__ */ jsxRuntime.jsx(PositionsCell, { children: /* @__PURE__ */ jsxRuntime.jsx("span", { style: { color: "rgba(255,255,255,0.7)", fontSize: "0.8rem" }, children:
|
|
13895
|
-
/* @__PURE__ */ jsxRuntime.jsx(PositionsCell, { children: /* @__PURE__ */ jsxRuntime.jsx("span", { style: { color: "#fff", fontSize: "0.8rem" }, children:
|
|
13818
|
+
/* @__PURE__ */ jsxRuntime.jsx(PositionsCell, { children: /* @__PURE__ */ jsxRuntime.jsx("span", { style: { color: "rgba(255,255,255,0.7)", fontSize: "0.8rem" }, children: formatCurrency4(pos.averageEntryPrice) }) }),
|
|
13819
|
+
/* @__PURE__ */ jsxRuntime.jsx(PositionsCell, { children: /* @__PURE__ */ jsxRuntime.jsx("span", { style: { color: "#fff", fontSize: "0.8rem" }, children: formatCurrency4(pos.marketPrice) }) }),
|
|
13896
13820
|
/* @__PURE__ */ jsxRuntime.jsxs(PositionsCell, { children: [
|
|
13897
13821
|
/* @__PURE__ */ jsxRuntime.jsxs(PnLAmount, { $positive: isPositive, children: [
|
|
13898
13822
|
isPositive ? "+" : "-",
|
|
13899
|
-
|
|
13823
|
+
formatCurrency4(Math.abs(pnl))
|
|
13900
13824
|
] }),
|
|
13901
13825
|
/* @__PURE__ */ jsxRuntime.jsxs(PnLPercentage, { $positive: isPositive, children: [
|
|
13902
13826
|
isPositive ? "+" : "",
|
|
@@ -13955,8 +13879,8 @@ function PortfolioActivityPanel({
|
|
|
13955
13879
|
return /* @__PURE__ */ jsxRuntime.jsxs(GridRow, { $columns: "1.2fr 0.8fr 1fr 1fr 0.8fr 1fr", children: [
|
|
13956
13880
|
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { $primary: true, children: order.tokenName }) }),
|
|
13957
13881
|
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { children: formatNumber2(order.quantity) }) }),
|
|
13958
|
-
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { $muted: true, children:
|
|
13959
|
-
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { children:
|
|
13882
|
+
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { $muted: true, children: formatCurrency4(order.price) }) }),
|
|
13883
|
+
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { children: formatCurrency4(order.price * order.quantity) }) }),
|
|
13960
13884
|
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(ActivityTag, { $color: meta.color, $bg: meta.bg, children: prettyLabel(order.status) }) }),
|
|
13961
13885
|
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { $muted: true, children: formatTimestamp(order.createdAt) }) })
|
|
13962
13886
|
] }, `${order.tokenName}-${order.txHash}-${order.createdAt}`);
|
|
@@ -13987,7 +13911,7 @@ function PortfolioActivityPanel({
|
|
|
13987
13911
|
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(SideBadge, { $side: sideLabel(order.side), children: sideLabel(order.side) }) }),
|
|
13988
13912
|
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { $muted: true, children: prettyLabel(order.type) }) }),
|
|
13989
13913
|
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: onAmendOrder ? /* @__PURE__ */ jsxRuntime.jsx(EditableField, { value: order.quantity, format: formatNumber2, onCommit: (v) => onAmendOrder(order.id, { quantity: v }) }) : /* @__PURE__ */ jsxRuntime.jsx(CellText, { children: formatNumber2(order.quantity) }) }),
|
|
13990
|
-
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: !isMarket && order.price && onAmendOrder ? /* @__PURE__ */ jsxRuntime.jsx(EditableField, { value: order.price, format: (v) =>
|
|
13914
|
+
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: !isMarket && order.price && onAmendOrder ? /* @__PURE__ */ jsxRuntime.jsx(EditableField, { value: order.price, format: (v) => formatCurrency4(v), onCommit: (v) => onAmendOrder(order.id, { price: v }) }) : /* @__PURE__ */ jsxRuntime.jsx(CellText, { children: isMarket || !order.price ? "Market" : formatCurrency4(order.price) }) }),
|
|
13991
13915
|
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsxs(CellText, { $muted: true, children: [
|
|
13992
13916
|
filledPercent,
|
|
13993
13917
|
"%"
|
|
@@ -14031,7 +13955,7 @@ function PortfolioActivityPanel({
|
|
|
14031
13955
|
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(SideBadge, { $side: sideLabel(order.side), children: sideLabel(order.side) }) }),
|
|
14032
13956
|
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { $muted: true, children: prettyLabel(order.type) }) }),
|
|
14033
13957
|
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { children: formatNumber2(order.quantity) }) }),
|
|
14034
|
-
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { children: isMarket || !order.price ? "Market" :
|
|
13958
|
+
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { children: isMarket || !order.price ? "Market" : formatCurrency4(order.price) }) }),
|
|
14035
13959
|
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsxs(CellText, { $muted: true, children: [
|
|
14036
13960
|
filledPercent,
|
|
14037
13961
|
"%"
|
|
@@ -14058,9 +13982,9 @@ function PortfolioActivityPanel({
|
|
|
14058
13982
|
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { $primary: true, children: trade.tokenName }) }),
|
|
14059
13983
|
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(SideBadge, { $side: sideLabel(trade.side), children: sideLabel(trade.side) }) }),
|
|
14060
13984
|
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { children: formatNumber2(trade.quantity) }) }),
|
|
14061
|
-
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { children:
|
|
14062
|
-
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { children:
|
|
14063
|
-
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { $muted: true, children:
|
|
13985
|
+
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { children: formatCurrency4(trade.price) }) }),
|
|
13986
|
+
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { children: formatCurrency4(trade.price * trade.quantity) }) }),
|
|
13987
|
+
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { $muted: true, children: formatCurrency4(trade.fee) }) }),
|
|
14064
13988
|
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { $muted: true, children: formatTimestamp(trade.executedAt) }) })
|
|
14065
13989
|
] }, trade.tradeId))
|
|
14066
13990
|
] })
|
|
@@ -14082,7 +14006,7 @@ function PortfolioActivityPanel({
|
|
|
14082
14006
|
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(SideBadge, { $side: isDeposit ? "Buy" : "Sell", children: isDeposit ? "Deposit" : "Withdraw" }) }),
|
|
14083
14007
|
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsxs(CellText, { $color: isDeposit ? "#0ecb81" : "#f6465d", children: [
|
|
14084
14008
|
isDeposit ? "+" : "-",
|
|
14085
|
-
|
|
14009
|
+
formatCurrency4(t.amount)
|
|
14086
14010
|
] }) }),
|
|
14087
14011
|
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { $muted: true, children: formatAddress(t.address) }) }),
|
|
14088
14012
|
/* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(ActivityTag, { $color: statusMeta.color, $bg: statusMeta.bg, children: prettyLabel(t.status) }) }),
|
|
@@ -14642,451 +14566,104 @@ var CloseAllHeaderBtn = styled9__default.default.button`
|
|
|
14642
14566
|
border-color: rgba(230, 200, 126, 0.5);
|
|
14643
14567
|
}
|
|
14644
14568
|
`;
|
|
14645
|
-
var CloseAllOverlay = styled9__default.default.div`
|
|
14646
|
-
position: fixed;
|
|
14647
|
-
inset: 0;
|
|
14648
|
-
background: rgba(0, 0, 0, 0.6);
|
|
14649
|
-
display: flex;
|
|
14650
|
-
align-items: center;
|
|
14651
|
-
justify-content: center;
|
|
14652
|
-
z-index: 1000;
|
|
14653
|
-
`;
|
|
14654
|
-
var CloseAllModal = styled9__default.default.div`
|
|
14655
|
-
background: #1a1a1a;
|
|
14656
|
-
border: 1px solid rgba(255, 255, 255, 0.12);
|
|
14657
|
-
border-radius: 12px;
|
|
14658
|
-
padding: 1.5rem;
|
|
14659
|
-
max-width: 380px;
|
|
14660
|
-
width: 90%;
|
|
14661
|
-
position: relative;
|
|
14662
|
-
`;
|
|
14663
|
-
var CloseAllModalX = styled9__default.default.button`
|
|
14664
|
-
position: absolute;
|
|
14665
|
-
top: 0.75rem;
|
|
14666
|
-
right: 0.75rem;
|
|
14667
|
-
background: none;
|
|
14668
|
-
border: none;
|
|
14669
|
-
color: rgba(255, 255, 255, 0.4);
|
|
14670
|
-
font-size: 1.25rem;
|
|
14671
|
-
cursor: pointer;
|
|
14672
|
-
padding: 0.25rem;
|
|
14673
|
-
line-height: 1;
|
|
14674
|
-
transition: color 0.15s;
|
|
14675
|
-
|
|
14676
|
-
&:hover { color: #fff; }
|
|
14677
|
-
`;
|
|
14678
|
-
var CloseAllTitle = styled9__default.default.div`
|
|
14679
|
-
font-size: 1rem;
|
|
14680
|
-
font-weight: 600;
|
|
14681
|
-
color: #fff;
|
|
14682
|
-
margin-bottom: 0.5rem;
|
|
14683
|
-
`;
|
|
14684
|
-
var CloseAllDesc = styled9__default.default.div`
|
|
14685
|
-
font-size: 0.8rem;
|
|
14686
|
-
color: rgba(255, 255, 255, 0.5);
|
|
14687
|
-
line-height: 1.45;
|
|
14688
|
-
margin-bottom: 1rem;
|
|
14689
|
-
`;
|
|
14690
|
-
var CloseAllOption = styled9__default.default.div`
|
|
14691
|
-
display: flex;
|
|
14692
|
-
align-items: center;
|
|
14693
|
-
gap: 0.6rem;
|
|
14694
|
-
padding: 0.6rem 0.75rem;
|
|
14695
|
-
border-radius: 8px;
|
|
14696
|
-
cursor: pointer;
|
|
14697
|
-
font-size: 0.85rem;
|
|
14698
|
-
color: rgba(255, 255, 255, 0.85);
|
|
14699
|
-
transition: background 0.15s;
|
|
14700
|
-
margin-bottom: 0.35rem;
|
|
14701
|
-
|
|
14702
|
-
&:hover { background: rgba(255, 255, 255, 0.04); }
|
|
14703
|
-
`;
|
|
14704
|
-
var CloseAllRadio = styled9__default.default.div`
|
|
14705
|
-
width: 16px;
|
|
14706
|
-
height: 16px;
|
|
14707
|
-
border-radius: 50%;
|
|
14708
|
-
border: 2px solid ${(p) => p.$selected ? "#f6465d" : "rgba(255, 255, 255, 0.2)"};
|
|
14709
|
-
position: relative;
|
|
14710
|
-
flex-shrink: 0;
|
|
14711
|
-
transition: border-color 0.15s;
|
|
14712
|
-
|
|
14713
|
-
&::after {
|
|
14714
|
-
content: '';
|
|
14715
|
-
position: absolute;
|
|
14716
|
-
top: 50%;
|
|
14717
|
-
left: 50%;
|
|
14718
|
-
transform: translate(-50%, -50%);
|
|
14719
|
-
width: 8px;
|
|
14720
|
-
height: 8px;
|
|
14721
|
-
border-radius: 50%;
|
|
14722
|
-
background: ${(p) => p.$selected ? "#f6465d" : "transparent"};
|
|
14723
|
-
transition: background 0.15s;
|
|
14724
|
-
}
|
|
14725
|
-
`;
|
|
14726
|
-
var CloseAllConfirmBtn = styled9__default.default.button`
|
|
14727
|
-
width: 100%;
|
|
14728
|
-
margin-top: 0.75rem;
|
|
14729
|
-
background: rgba(246, 70, 93, 0.15);
|
|
14730
|
-
border: 1px solid rgba(246, 70, 93, 0.4);
|
|
14731
|
-
border-radius: 8px;
|
|
14732
|
-
padding: 0.7rem 1rem;
|
|
14733
|
-
font-size: 0.85rem;
|
|
14734
|
-
font-weight: 600;
|
|
14735
|
-
color: #f6465d;
|
|
14736
|
-
cursor: pointer;
|
|
14737
|
-
transition: all 0.15s ease;
|
|
14738
|
-
|
|
14739
|
-
&:hover {
|
|
14740
|
-
background: rgba(246, 70, 93, 0.25);
|
|
14741
|
-
}
|
|
14742
|
-
`;
|
|
14743
|
-
function NewsOrdersSection({ newsItems, newsConnectionStatus, activityData }) {
|
|
14744
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(Row2, { children: [
|
|
14745
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14746
|
-
PropertyNewsUpdates,
|
|
14747
|
-
{
|
|
14748
|
-
items: newsItems,
|
|
14749
|
-
heading: "Property News & Updates",
|
|
14750
|
-
connectionStatus: newsConnectionStatus
|
|
14751
|
-
}
|
|
14752
|
-
),
|
|
14753
|
-
/* @__PURE__ */ jsxRuntime.jsx(ActivityWrapper, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
14754
|
-
PortfolioActivityPanel,
|
|
14755
|
-
{
|
|
14756
|
-
positions: activityData?.positions,
|
|
14757
|
-
showPositionsTab: true,
|
|
14758
|
-
onPositionClick: activityData?.onPositionClick,
|
|
14759
|
-
offeringOrders: activityData?.offeringOrders,
|
|
14760
|
-
openOrders: activityData?.openOrders,
|
|
14761
|
-
orderHistory: activityData?.orderHistory,
|
|
14762
|
-
tradeHistory: activityData?.tradeHistory,
|
|
14763
|
-
transfers: activityData?.transfers,
|
|
14764
|
-
onCancelOrder: activityData?.onCancelOrder,
|
|
14765
|
-
cancellingOrderId: activityData?.cancellingOrderId,
|
|
14766
|
-
defaultTab: activityData?.defaultTab ?? "positions",
|
|
14767
|
-
pageSize: activityData?.pageSize ?? 6
|
|
14768
|
-
}
|
|
14769
|
-
) })
|
|
14770
|
-
] });
|
|
14771
|
-
}
|
|
14772
|
-
var Row2 = styled9__default.default.div`
|
|
14773
|
-
display: grid;
|
|
14774
|
-
grid-template-columns: 1fr 2fr;
|
|
14775
|
-
gap: 1.5rem;
|
|
14776
|
-
margin-top: 1.5rem;
|
|
14777
|
-
max-width: 1800px;
|
|
14778
|
-
margin-left: auto;
|
|
14779
|
-
margin-right: auto;
|
|
14780
|
-
overflow: hidden;
|
|
14781
|
-
@media (max-width: 768px) {
|
|
14782
|
-
grid-template-columns: 1fr;
|
|
14783
|
-
gap: 1rem;
|
|
14784
|
-
}
|
|
14785
|
-
& > * {
|
|
14786
|
-
min-width: 0;
|
|
14787
|
-
overflow: hidden;
|
|
14788
|
-
}
|
|
14789
|
-
`;
|
|
14790
|
-
var ActivityWrapper = styled9__default.default.div`
|
|
14791
|
-
background-color: var(--color-card-darker, #111);
|
|
14792
|
-
border-radius: 8px;
|
|
14793
|
-
padding: 1.5rem;
|
|
14794
|
-
display: flex;
|
|
14795
|
-
flex-direction: column;
|
|
14796
|
-
box-shadow: 0 4px 8px rgba(0,0,0,0.2);
|
|
14797
|
-
border: 1px solid var(--color-border);
|
|
14798
|
-
min-height: 280px;
|
|
14799
|
-
overflow: hidden;
|
|
14800
|
-
@media (max-width: 768px) {
|
|
14801
|
-
padding: 1rem;
|
|
14802
|
-
min-height: auto;
|
|
14803
|
-
}
|
|
14804
|
-
`;
|
|
14805
|
-
function OrderConfirmationModal({
|
|
14806
|
-
open,
|
|
14807
|
-
onClose,
|
|
14808
|
-
hasInsufficientFunds,
|
|
14809
|
-
tokenQuantity,
|
|
14810
|
-
tokenPrice,
|
|
14811
|
-
propertyName,
|
|
14812
|
-
tokenSymbol,
|
|
14813
|
-
estExposure,
|
|
14814
|
-
orderTotal,
|
|
14815
|
-
availableBalance,
|
|
14816
|
-
onConfirm,
|
|
14817
|
-
isPlacing = false,
|
|
14818
|
-
placingLabel = "Placing order\u2026"
|
|
14819
|
-
}) {
|
|
14820
|
-
if (!open) return null;
|
|
14821
|
-
const handleOverlayClose = () => {
|
|
14822
|
-
if (isPlacing) return;
|
|
14823
|
-
onClose();
|
|
14824
|
-
};
|
|
14825
|
-
return /* @__PURE__ */ jsxRuntime.jsx(Overlay3, { onClick: handleOverlayClose, children: /* @__PURE__ */ jsxRuntime.jsxs(Modal, { onClick: (e) => e.stopPropagation(), children: [
|
|
14826
|
-
/* @__PURE__ */ jsxRuntime.jsx(ModalHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs("h3", { children: [
|
|
14827
|
-
"Confirm Order",
|
|
14828
|
-
/* @__PURE__ */ jsxRuntime.jsx(Badge2, { children: "Subscribe" })
|
|
14829
|
-
] }) }),
|
|
14830
|
-
/* @__PURE__ */ jsxRuntime.jsx(ModalBody, { children: [
|
|
14831
|
-
{ label: "Order Type", value: "Primary Offering" },
|
|
14832
|
-
{ label: "Property", value: propertyName },
|
|
14833
|
-
{ label: "Units", value: `${tokenQuantity.toLocaleString()} ${tokenSymbol}`, highlight: true },
|
|
14834
|
-
{
|
|
14835
|
-
label: "Unit Price",
|
|
14836
|
-
value: `$${tokenPrice.toLocaleString(void 0, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}`
|
|
14837
|
-
},
|
|
14838
|
-
{ label: "Property Exposure", value: `${estExposure}%` },
|
|
14839
|
-
{ label: "Total Investment", value: `$${orderTotal.toLocaleString()}`, highlight: true }
|
|
14840
|
-
].map((row, index, arr) => /* @__PURE__ */ jsxRuntime.jsxs(ModalRow, { "data-divider": index < arr.length - 1, children: [
|
|
14841
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: row.label }),
|
|
14842
|
-
/* @__PURE__ */ jsxRuntime.jsx("strong", { "data-highlight": row.highlight, children: row.value })
|
|
14843
|
-
] }, row.label)) }),
|
|
14844
|
-
hasInsufficientFunds ? /* @__PURE__ */ jsxRuntime.jsxs(Warning, { children: [
|
|
14845
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { children: "\u26A0 Insufficient Balance" }),
|
|
14846
|
-
/* @__PURE__ */ jsxRuntime.jsxs("small", { children: [
|
|
14847
|
-
"You need ",
|
|
14848
|
-
/* @__PURE__ */ jsxRuntime.jsxs("strong", { children: [
|
|
14849
|
-
"$",
|
|
14850
|
-
orderTotal.toLocaleString()
|
|
14851
|
-
] }),
|
|
14852
|
-
" but only have",
|
|
14853
|
-
" ",
|
|
14854
|
-
/* @__PURE__ */ jsxRuntime.jsxs("strong", { children: [
|
|
14855
|
-
"$",
|
|
14856
|
-
availableBalance.toLocaleString()
|
|
14857
|
-
] }),
|
|
14858
|
-
" available."
|
|
14859
|
-
] })
|
|
14860
|
-
] }) : /* @__PURE__ */ jsxRuntime.jsxs(Summary, { children: [
|
|
14861
|
-
"Your order for ",
|
|
14862
|
-
/* @__PURE__ */ jsxRuntime.jsxs("strong", { children: [
|
|
14863
|
-
tokenQuantity.toLocaleString(),
|
|
14864
|
-
" ",
|
|
14865
|
-
tokenSymbol,
|
|
14866
|
-
" units"
|
|
14867
|
-
] }),
|
|
14868
|
-
" in the",
|
|
14869
|
-
" ",
|
|
14870
|
-
/* @__PURE__ */ jsxRuntime.jsx("strong", { children: propertyName }),
|
|
14871
|
-
" Primary Offering will be placed for ",
|
|
14872
|
-
/* @__PURE__ */ jsxRuntime.jsxs("strong", { children: [
|
|
14873
|
-
"$",
|
|
14874
|
-
tokenPrice.toFixed(2),
|
|
14875
|
-
"/unit"
|
|
14876
|
-
] }),
|
|
14877
|
-
"."
|
|
14878
|
-
] }),
|
|
14879
|
-
/* @__PURE__ */ jsxRuntime.jsxs(ButtonRow2, { children: [
|
|
14880
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14881
|
-
"button",
|
|
14882
|
-
{
|
|
14883
|
-
type: "button",
|
|
14884
|
-
onClick: onClose,
|
|
14885
|
-
className: "secondary",
|
|
14886
|
-
disabled: isPlacing,
|
|
14887
|
-
children: "Cancel"
|
|
14888
|
-
}
|
|
14889
|
-
),
|
|
14890
|
-
!hasInsufficientFunds && /* @__PURE__ */ jsxRuntime.jsx(
|
|
14891
|
-
"button",
|
|
14892
|
-
{
|
|
14893
|
-
type: "button",
|
|
14894
|
-
onClick: onConfirm,
|
|
14895
|
-
className: "primary",
|
|
14896
|
-
disabled: isPlacing,
|
|
14897
|
-
children: isPlacing ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
14898
|
-
/* @__PURE__ */ jsxRuntime.jsx(Spinner, { "aria-hidden": true }),
|
|
14899
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: placingLabel })
|
|
14900
|
-
] }) : "Place Order"
|
|
14901
|
-
}
|
|
14902
|
-
)
|
|
14903
|
-
] })
|
|
14904
|
-
] }) });
|
|
14905
|
-
}
|
|
14906
|
-
var Overlay3 = styled9__default.default.div`
|
|
14907
|
-
position: fixed;
|
|
14908
|
-
top: 0;
|
|
14909
|
-
left: 0;
|
|
14910
|
-
right: 0;
|
|
14911
|
-
bottom: 0;
|
|
14912
|
-
background-color: rgba(0,0,0,0.7);
|
|
14569
|
+
var CloseAllOverlay = styled9__default.default.div`
|
|
14570
|
+
position: fixed;
|
|
14571
|
+
inset: 0;
|
|
14572
|
+
background: rgba(0, 0, 0, 0.6);
|
|
14913
14573
|
display: flex;
|
|
14914
14574
|
align-items: center;
|
|
14915
14575
|
justify-content: center;
|
|
14916
|
-
z-index:
|
|
14917
|
-
backdrop-filter: blur(4px);
|
|
14576
|
+
z-index: 1000;
|
|
14918
14577
|
`;
|
|
14919
|
-
var
|
|
14920
|
-
background:
|
|
14921
|
-
border: 1px solid rgba(255,255,255,0.
|
|
14922
|
-
border-radius:
|
|
14923
|
-
padding:
|
|
14924
|
-
max-width:
|
|
14578
|
+
var CloseAllModal = styled9__default.default.div`
|
|
14579
|
+
background: #1a1a1a;
|
|
14580
|
+
border: 1px solid rgba(255, 255, 255, 0.12);
|
|
14581
|
+
border-radius: 12px;
|
|
14582
|
+
padding: 1.5rem;
|
|
14583
|
+
max-width: 380px;
|
|
14925
14584
|
width: 90%;
|
|
14926
|
-
|
|
14585
|
+
position: relative;
|
|
14927
14586
|
`;
|
|
14928
|
-
var
|
|
14929
|
-
|
|
14930
|
-
|
|
14931
|
-
|
|
14932
|
-
|
|
14933
|
-
border
|
|
14934
|
-
|
|
14935
|
-
|
|
14936
|
-
|
|
14937
|
-
|
|
14938
|
-
|
|
14939
|
-
|
|
14940
|
-
|
|
14941
|
-
|
|
14942
|
-
}
|
|
14587
|
+
var CloseAllModalX = styled9__default.default.button`
|
|
14588
|
+
position: absolute;
|
|
14589
|
+
top: 0.75rem;
|
|
14590
|
+
right: 0.75rem;
|
|
14591
|
+
background: none;
|
|
14592
|
+
border: none;
|
|
14593
|
+
color: rgba(255, 255, 255, 0.4);
|
|
14594
|
+
font-size: 1.25rem;
|
|
14595
|
+
cursor: pointer;
|
|
14596
|
+
padding: 0.25rem;
|
|
14597
|
+
line-height: 1;
|
|
14598
|
+
transition: color 0.15s;
|
|
14599
|
+
|
|
14600
|
+
&:hover { color: #fff; }
|
|
14943
14601
|
`;
|
|
14944
|
-
var
|
|
14945
|
-
|
|
14946
|
-
border-radius: 6px;
|
|
14947
|
-
font-size: 0.75rem;
|
|
14602
|
+
var CloseAllTitle = styled9__default.default.div`
|
|
14603
|
+
font-size: 1rem;
|
|
14948
14604
|
font-weight: 600;
|
|
14949
|
-
|
|
14950
|
-
|
|
14951
|
-
background: linear-gradient(135deg, rgba(212,175,55,0.2) 0%, rgba(212,175,55,0.1) 100%);
|
|
14952
|
-
color: #D4AF37;
|
|
14953
|
-
border: 1px solid rgba(212,175,55,0.3);
|
|
14605
|
+
color: #fff;
|
|
14606
|
+
margin-bottom: 0.5rem;
|
|
14954
14607
|
`;
|
|
14955
|
-
var
|
|
14956
|
-
|
|
14957
|
-
|
|
14958
|
-
|
|
14608
|
+
var CloseAllDesc = styled9__default.default.div`
|
|
14609
|
+
font-size: 0.8rem;
|
|
14610
|
+
color: rgba(255, 255, 255, 0.5);
|
|
14611
|
+
line-height: 1.45;
|
|
14612
|
+
margin-bottom: 1rem;
|
|
14959
14613
|
`;
|
|
14960
|
-
var
|
|
14614
|
+
var CloseAllOption = styled9__default.default.div`
|
|
14961
14615
|
display: flex;
|
|
14962
|
-
justify-content: space-between;
|
|
14963
14616
|
align-items: center;
|
|
14964
|
-
|
|
14965
|
-
|
|
14966
|
-
&[data-divider='false'] {
|
|
14967
|
-
border-bottom: none;
|
|
14968
|
-
}
|
|
14969
|
-
span {
|
|
14970
|
-
color: rgba(255,255,255,0.6);
|
|
14971
|
-
font-size: 0.9rem;
|
|
14972
|
-
}
|
|
14973
|
-
strong {
|
|
14974
|
-
color: #fff;
|
|
14975
|
-
font-weight: 500;
|
|
14976
|
-
font-size: 0.95rem;
|
|
14977
|
-
}
|
|
14978
|
-
strong[data-highlight='true'] {
|
|
14979
|
-
color: #D4AF37;
|
|
14980
|
-
font-weight: 600;
|
|
14981
|
-
}
|
|
14982
|
-
`;
|
|
14983
|
-
var Warning = styled9__default.default.div`
|
|
14984
|
-
background: rgba(246,70,93,0.1);
|
|
14985
|
-
border: 1px solid rgba(246,70,93,0.3);
|
|
14986
|
-
border-radius: 8px;
|
|
14987
|
-
padding: 1rem;
|
|
14988
|
-
margin-bottom: 1.5rem;
|
|
14989
|
-
p {
|
|
14990
|
-
margin: 0;
|
|
14991
|
-
color: #f6465d;
|
|
14992
|
-
font-size: 0.9rem;
|
|
14993
|
-
font-weight: 600;
|
|
14994
|
-
}
|
|
14995
|
-
small {
|
|
14996
|
-
display: block;
|
|
14997
|
-
margin-top: 0.5rem;
|
|
14998
|
-
color: rgba(255,255,255,0.7);
|
|
14999
|
-
font-size: 0.85rem;
|
|
15000
|
-
line-height: 1.5;
|
|
15001
|
-
}
|
|
15002
|
-
`;
|
|
15003
|
-
var Summary = styled9__default.default.div`
|
|
15004
|
-
background: rgba(255,255,255,0.03);
|
|
15005
|
-
border: 1px solid rgba(255,255,255,0.08);
|
|
14617
|
+
gap: 0.6rem;
|
|
14618
|
+
padding: 0.6rem 0.75rem;
|
|
15006
14619
|
border-radius: 8px;
|
|
15007
|
-
|
|
15008
|
-
|
|
15009
|
-
color: rgba(255,255,255,0.
|
|
15010
|
-
|
|
15011
|
-
|
|
15012
|
-
|
|
15013
|
-
|
|
15014
|
-
to { transform: rotate(360deg); }
|
|
14620
|
+
cursor: pointer;
|
|
14621
|
+
font-size: 0.85rem;
|
|
14622
|
+
color: rgba(255, 255, 255, 0.85);
|
|
14623
|
+
transition: background 0.15s;
|
|
14624
|
+
margin-bottom: 0.35rem;
|
|
14625
|
+
|
|
14626
|
+
&:hover { background: rgba(255, 255, 255, 0.04); }
|
|
15015
14627
|
`;
|
|
15016
|
-
var
|
|
15017
|
-
|
|
15018
|
-
|
|
15019
|
-
height: 14px;
|
|
14628
|
+
var CloseAllRadio = styled9__default.default.div`
|
|
14629
|
+
width: 16px;
|
|
14630
|
+
height: 16px;
|
|
15020
14631
|
border-radius: 50%;
|
|
15021
|
-
border: 2px solid rgba(255, 255, 255, 0.
|
|
15022
|
-
|
|
15023
|
-
|
|
15024
|
-
|
|
15025
|
-
|
|
15026
|
-
|
|
15027
|
-
|
|
15028
|
-
|
|
15029
|
-
|
|
15030
|
-
|
|
15031
|
-
|
|
15032
|
-
|
|
15033
|
-
|
|
15034
|
-
|
|
15035
|
-
|
|
15036
|
-
|
|
15037
|
-
display: inline-flex;
|
|
15038
|
-
align-items: center;
|
|
15039
|
-
justify-content: center;
|
|
15040
|
-
}
|
|
15041
|
-
button:disabled {
|
|
15042
|
-
cursor: not-allowed;
|
|
15043
|
-
opacity: 0.75;
|
|
15044
|
-
}
|
|
15045
|
-
.secondary {
|
|
15046
|
-
background: rgba(255,255,255,0.1);
|
|
15047
|
-
color: rgba(255,255,255,0.8);
|
|
15048
|
-
border: 1px solid rgba(255,255,255,0.2);
|
|
15049
|
-
}
|
|
15050
|
-
.primary {
|
|
15051
|
-
background: linear-gradient(135deg, #0ecb81 0%, #0ba968 100%);
|
|
15052
|
-
color: #fff;
|
|
15053
|
-
border: none;
|
|
15054
|
-
box-shadow: 0 4px 12px rgba(14,203,129,0.3);
|
|
14632
|
+
border: 2px solid ${(p) => p.$selected ? "#f6465d" : "rgba(255, 255, 255, 0.2)"};
|
|
14633
|
+
position: relative;
|
|
14634
|
+
flex-shrink: 0;
|
|
14635
|
+
transition: border-color 0.15s;
|
|
14636
|
+
|
|
14637
|
+
&::after {
|
|
14638
|
+
content: '';
|
|
14639
|
+
position: absolute;
|
|
14640
|
+
top: 50%;
|
|
14641
|
+
left: 50%;
|
|
14642
|
+
transform: translate(-50%, -50%);
|
|
14643
|
+
width: 8px;
|
|
14644
|
+
height: 8px;
|
|
14645
|
+
border-radius: 50%;
|
|
14646
|
+
background: ${(p) => p.$selected ? "#f6465d" : "transparent"};
|
|
14647
|
+
transition: background 0.15s;
|
|
15055
14648
|
}
|
|
15056
14649
|
`;
|
|
14650
|
+
var CloseAllConfirmBtn = styled9__default.default.button`
|
|
14651
|
+
width: 100%;
|
|
14652
|
+
margin-top: 0.75rem;
|
|
14653
|
+
background: rgba(246, 70, 93, 0.15);
|
|
14654
|
+
border: 1px solid rgba(246, 70, 93, 0.4);
|
|
14655
|
+
border-radius: 8px;
|
|
14656
|
+
padding: 0.7rem 1rem;
|
|
14657
|
+
font-size: 0.85rem;
|
|
14658
|
+
font-weight: 600;
|
|
14659
|
+
color: #f6465d;
|
|
14660
|
+
cursor: pointer;
|
|
14661
|
+
transition: all 0.15s ease;
|
|
15057
14662
|
|
|
15058
|
-
|
|
15059
|
-
|
|
15060
|
-
|
|
15061
|
-
|
|
15062
|
-
{ src: "/properties/Musgrave/LivingRoom_Musgrave_Loafmarkets.jpg", title: "Living Room", subtitle: "Spacious living" },
|
|
15063
|
-
{ src: "/properties/Musgrave/Kitchen_Musgrave_Loafmarkets.jpg", title: "Kitchen", subtitle: "Modern design" },
|
|
15064
|
-
{ src: "/properties/Musgrave/DiningRoom_Musgrave_Loafmarkets.jpg", title: "Dining Room", subtitle: "Elegant dining" },
|
|
15065
|
-
{ src: "/properties/Musgrave/BreakfastRoom_Musgrave_Loafmarkets.jpg", title: "Breakfast Room", subtitle: "Morning light" },
|
|
15066
|
-
{ src: "/properties/Musgrave/MainBedroom_Musgrave_Loafmarkets.jpg", title: "Main Bedroom", subtitle: "Master suite" },
|
|
15067
|
-
{ src: "/properties/Musgrave/GuestBedroom_Musgrave_Loafmarkets.jpg", title: "Guest Bedroom", subtitle: "Comfortable stay" },
|
|
15068
|
-
{ src: "/properties/Musgrave/Bathroom_Musgrave_Loafmarkets.jpg", title: "Bathroom", subtitle: "Luxury finishes" },
|
|
15069
|
-
{ src: "/properties/Musgrave/PoolArea_Musgrave_Loafmarkets.jpg", title: "Pool Area", subtitle: "Resort living" },
|
|
15070
|
-
{ src: "/properties/Musgrave/GardenView_Musgrave_Loafmarkets.jpg", title: "Garden View", subtitle: "Lush gardens" },
|
|
15071
|
-
{ src: "/properties/Musgrave/SideGarden_Musgrave_Loafmarkets.jpg", title: "Side Garden", subtitle: "Private retreat" },
|
|
15072
|
-
{ src: "/properties/Musgrave/AerialView_Musgrave_Loafmarkets.jpg", title: "Aerial View", subtitle: "Property overview" },
|
|
15073
|
-
{ src: "/properties/Musgrave/AerialLocation_Musgrave_Loafmarkets.jpg", title: "Aerial Location", subtitle: "Neighborhood" },
|
|
15074
|
-
{ src: "/properties/Musgrave/Floorplan_Musgrave_Loafmarkets.jpg", title: "Floorplan", subtitle: "Layout" }
|
|
15075
|
-
];
|
|
15076
|
-
var galleryCategories = [
|
|
15077
|
-
{ name: "Exterior", startIndex: 0 },
|
|
15078
|
-
{ name: "Living", startIndex: 2 },
|
|
15079
|
-
{ name: "Bedrooms", startIndex: 6 },
|
|
15080
|
-
{ name: "Outdoor", startIndex: 9 },
|
|
15081
|
-
{ name: "Aerial", startIndex: 12 },
|
|
15082
|
-
{ name: "Floorplan", startIndex: 14 }
|
|
15083
|
-
];
|
|
15084
|
-
var STATUS_COLOR2 = {
|
|
15085
|
-
PENDING: "#D4AF37",
|
|
15086
|
-
LIVE: "#0ecb81",
|
|
15087
|
-
CLOSED: "#848e9c",
|
|
15088
|
-
CANCELLED: "#f6465d"
|
|
15089
|
-
};
|
|
14663
|
+
&:hover {
|
|
14664
|
+
background: rgba(246, 70, 93, 0.25);
|
|
14665
|
+
}
|
|
14666
|
+
`;
|
|
15090
14667
|
function PropertyBuy({
|
|
15091
14668
|
propertyName = "Loaf Property",
|
|
15092
14669
|
propertyLocation: propertyLocationLabel = "Sydney, NSW",
|
|
@@ -15133,7 +14710,6 @@ function PropertyBuy({
|
|
|
15133
14710
|
const offeringValuation = saleData?.offeringValuation ?? tokenPrice * supplyToSell;
|
|
15134
14711
|
const ipoStatus = saleData?.status ?? "PENDING";
|
|
15135
14712
|
const ipoStarted = ipoStatus === "LIVE" || isPrivateClient && ipoStatus === "PENDING";
|
|
15136
|
-
const ipoEnded = ipoStatus === "CLOSED" || ipoStatus === "CANCELLED";
|
|
15137
14713
|
const statusLabel = ipoStatus;
|
|
15138
14714
|
const statusColor = STATUS_COLOR2[ipoStatus] ?? "#D4AF37";
|
|
15139
14715
|
const displayStatusLabel = isPrivateClient && ipoStatus !== "LIVE" ? "Private Client Access" : statusLabel;
|
|
@@ -15257,17 +14833,23 @@ function PropertyBuy({
|
|
|
15257
14833
|
isPrivateClient
|
|
15258
14834
|
}
|
|
15259
14835
|
),
|
|
15260
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
15261
|
-
|
|
14836
|
+
/* @__PURE__ */ jsxRuntime.jsx(ActivityWrapper, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
14837
|
+
PortfolioActivityPanel,
|
|
15262
14838
|
{
|
|
15263
|
-
|
|
15264
|
-
|
|
15265
|
-
|
|
15266
|
-
|
|
15267
|
-
|
|
15268
|
-
|
|
14839
|
+
positions: portfolioActivity?.positions,
|
|
14840
|
+
showPositionsTab: true,
|
|
14841
|
+
onPositionClick: portfolioActivity?.onPositionClick,
|
|
14842
|
+
offeringOrders: portfolioActivity?.offeringOrders,
|
|
14843
|
+
openOrders: portfolioActivity?.openOrders,
|
|
14844
|
+
orderHistory: portfolioActivity?.orderHistory,
|
|
14845
|
+
tradeHistory: portfolioActivity?.tradeHistory,
|
|
14846
|
+
transfers: portfolioActivity?.transfers,
|
|
14847
|
+
onCancelOrder: portfolioActivity?.onCancelOrder,
|
|
14848
|
+
cancellingOrderId: portfolioActivity?.cancellingOrderId,
|
|
14849
|
+
defaultTab: "subscriptions",
|
|
14850
|
+
pageSize: 6
|
|
15269
14851
|
}
|
|
15270
|
-
),
|
|
14852
|
+
) }),
|
|
15271
14853
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", flexDirection: "column" }, children: [
|
|
15272
14854
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
15273
14855
|
OrderPanel,
|
|
@@ -15307,22 +14889,33 @@ function PropertyBuy({
|
|
|
15307
14889
|
purchaseError && /* @__PURE__ */ jsxRuntime.jsx("div", { style: { marginTop: "0.75rem", padding: "0.75rem 1rem", borderRadius: "8px", background: "rgba(246,70,93,0.1)", border: "1px solid rgba(246,70,93,0.3)", color: "#f6465d", fontSize: "0.8rem", fontWeight: 500 }, children: purchaseError })
|
|
15308
14890
|
] })
|
|
15309
14891
|
] }),
|
|
15310
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
14892
|
+
/* @__PURE__ */ jsxRuntime.jsxs(NewsVideoRow, { children: [
|
|
15311
14893
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
15312
|
-
|
|
14894
|
+
PropertyNewsUpdates,
|
|
15313
14895
|
{
|
|
15314
|
-
|
|
15315
|
-
|
|
15316
|
-
|
|
15317
|
-
|
|
14896
|
+
items: newsItems,
|
|
14897
|
+
variant: "home",
|
|
14898
|
+
heading: "Property News & Headlines",
|
|
14899
|
+
connectionStatus: newsConnectionStatus,
|
|
14900
|
+
highlightFirst: false,
|
|
14901
|
+
style: {
|
|
14902
|
+
maxWidth: "none",
|
|
14903
|
+
background: "#111111",
|
|
14904
|
+
borderRadius: "8px",
|
|
14905
|
+
padding: "1.25rem 1.5rem",
|
|
14906
|
+
boxShadow: "0 4px 12px rgba(0,0,0,0.1)",
|
|
14907
|
+
border: "none",
|
|
14908
|
+
height: "100%",
|
|
14909
|
+
overflow: "hidden"
|
|
14910
|
+
}
|
|
15318
14911
|
}
|
|
15319
14912
|
),
|
|
15320
14913
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
15321
|
-
|
|
14914
|
+
PropertyTour,
|
|
15322
14915
|
{
|
|
15323
|
-
|
|
15324
|
-
|
|
15325
|
-
|
|
14916
|
+
title: propertyName,
|
|
14917
|
+
src: "/properties/Musgrave/musgrave.mp4",
|
|
14918
|
+
className: "h-full !max-w-none"
|
|
15326
14919
|
}
|
|
15327
14920
|
)
|
|
15328
14921
|
] }),
|
|
@@ -15415,6 +15008,41 @@ var HeroGrid = styled9__default.default.div`
|
|
|
15415
15008
|
gap: 0.5rem;
|
|
15416
15009
|
}
|
|
15417
15010
|
`;
|
|
15011
|
+
var ActivityWrapper = styled9__default.default.div`
|
|
15012
|
+
background-color: var(--color-card-darker, #111);
|
|
15013
|
+
border-radius: 8px;
|
|
15014
|
+
padding: 1.5rem;
|
|
15015
|
+
display: flex;
|
|
15016
|
+
flex-direction: column;
|
|
15017
|
+
box-shadow: 0 4px 8px rgba(0,0,0,0.2);
|
|
15018
|
+
border: 1px solid var(--color-border);
|
|
15019
|
+
min-height: 280px;
|
|
15020
|
+
overflow: hidden;
|
|
15021
|
+
@media (max-width: 768px) {
|
|
15022
|
+
padding: 1rem;
|
|
15023
|
+
min-height: auto;
|
|
15024
|
+
}
|
|
15025
|
+
`;
|
|
15026
|
+
var NewsVideoRow = styled9__default.default.div`
|
|
15027
|
+
display: grid;
|
|
15028
|
+
grid-template-columns: minmax(380px, 520px) minmax(0, 1fr);
|
|
15029
|
+
gap: 1.5rem;
|
|
15030
|
+
margin-top: 1.5rem;
|
|
15031
|
+
max-width: 1800px;
|
|
15032
|
+
margin-left: auto;
|
|
15033
|
+
margin-right: auto;
|
|
15034
|
+
height: 700px;
|
|
15035
|
+
overflow: hidden;
|
|
15036
|
+
@media (max-width: 1024px) {
|
|
15037
|
+
grid-template-columns: 1fr;
|
|
15038
|
+
height: auto;
|
|
15039
|
+
gap: 1rem;
|
|
15040
|
+
}
|
|
15041
|
+
& > * {
|
|
15042
|
+
min-width: 0;
|
|
15043
|
+
overflow: hidden;
|
|
15044
|
+
}
|
|
15045
|
+
`;
|
|
15418
15046
|
var PaymentOption = styled9__default.default.div`
|
|
15419
15047
|
display: flex;
|
|
15420
15048
|
align-items: center;
|
|
@@ -16404,7 +16032,7 @@ function PropertyValuation({
|
|
|
16404
16032
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "0.5rem" }, children: [
|
|
16405
16033
|
/* @__PURE__ */ jsxRuntime.jsxs(PricingModelDetail, { children: [
|
|
16406
16034
|
/* @__PURE__ */ jsxRuntime.jsx(PropertyDetailLabel, { children: "Last Price" }),
|
|
16407
|
-
/* @__PURE__ */ jsxRuntime.jsx(PricingDetailValue, { children:
|
|
16035
|
+
/* @__PURE__ */ jsxRuntime.jsx(PricingDetailValue, { children: formatCurrency5(lastPrice) })
|
|
16408
16036
|
] }),
|
|
16409
16037
|
/* @__PURE__ */ jsxRuntime.jsxs(PricingModelDetail, { children: [
|
|
16410
16038
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center", width: "100%" }, children: [
|
|
@@ -16415,11 +16043,11 @@ function PropertyValuation({
|
|
|
16415
16043
|
] })
|
|
16416
16044
|
] }),
|
|
16417
16045
|
/* @__PURE__ */ jsxRuntime.jsxs(PricingDetailValue, { style: { color: "var(--color-accent)", fontWeight: "bold" }, children: [
|
|
16418
|
-
|
|
16046
|
+
formatCurrency5(fairValue),
|
|
16419
16047
|
" ",
|
|
16420
16048
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { style: { fontSize: "0.85em", fontWeight: "normal", opacity: 0.8 }, children: [
|
|
16421
16049
|
"(",
|
|
16422
|
-
|
|
16050
|
+
formatCurrency5(fairValue * tokensOutstanding, { maximumFractionDigits: 0 }),
|
|
16423
16051
|
")"
|
|
16424
16052
|
] })
|
|
16425
16053
|
] })
|
|
@@ -16436,7 +16064,7 @@ function PropertyValuation({
|
|
|
16436
16064
|
/* @__PURE__ */ jsxRuntime.jsx(GaugeIndicator, { type: "fairValue", position: 50 }),
|
|
16437
16065
|
/* @__PURE__ */ jsxRuntime.jsxs(GaugePriceTag, { position: gaugePosition, children: [
|
|
16438
16066
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Last Price" }),
|
|
16439
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children:
|
|
16067
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: formatCurrency5(lastPrice) })
|
|
16440
16068
|
] }),
|
|
16441
16069
|
/* @__PURE__ */ jsxRuntime.jsx(GaugeIndicator, { type: "lastPrice", position: gaugePosition })
|
|
16442
16070
|
] }),
|
|
@@ -16444,7 +16072,7 @@ function PropertyValuation({
|
|
|
16444
16072
|
/* @__PURE__ */ jsxRuntime.jsx(ValuationItem, { children: /* @__PURE__ */ jsxRuntime.jsxs(ValuationValue, { style: { color: "#4CAF50" }, children: [
|
|
16445
16073
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
16446
16074
|
"< ",
|
|
16447
|
-
|
|
16075
|
+
formatCurrency5(undervaluedThreshold)
|
|
16448
16076
|
] }),
|
|
16449
16077
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "valuation-amount-span", style: { fontSize: "0.8rem", fontWeight: "normal" }, children: [
|
|
16450
16078
|
"(",
|
|
@@ -16453,7 +16081,7 @@ function PropertyValuation({
|
|
|
16453
16081
|
] })
|
|
16454
16082
|
] }) }),
|
|
16455
16083
|
/* @__PURE__ */ jsxRuntime.jsx(ValuationItem, { children: /* @__PURE__ */ jsxRuntime.jsxs(ValuationValue, { style: { color: "var(--color-accent)" }, children: [
|
|
16456
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children:
|
|
16084
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: formatCurrency5(fairValue) }),
|
|
16457
16085
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "valuation-amount-span", style: { fontSize: "0.8rem", fontWeight: "normal" }, children: [
|
|
16458
16086
|
"(",
|
|
16459
16087
|
formatMillions(fairValue * tokensOutstanding),
|
|
@@ -16463,7 +16091,7 @@ function PropertyValuation({
|
|
|
16463
16091
|
/* @__PURE__ */ jsxRuntime.jsx(ValuationItem, { children: /* @__PURE__ */ jsxRuntime.jsxs(ValuationValue, { style: { color: "#F44336" }, children: [
|
|
16464
16092
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
16465
16093
|
"> ",
|
|
16466
|
-
|
|
16094
|
+
formatCurrency5(overvaluedThreshold)
|
|
16467
16095
|
] }),
|
|
16468
16096
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "valuation-amount-span", style: { fontSize: "0.8rem", fontWeight: "normal" }, children: [
|
|
16469
16097
|
"(",
|
|
@@ -16556,7 +16184,7 @@ function PropertyValuation({
|
|
|
16556
16184
|
/* @__PURE__ */ jsxRuntime.jsx(GaugeIndicator, { type: "fairValue", position: 50 }),
|
|
16557
16185
|
/* @__PURE__ */ jsxRuntime.jsxs(GaugePriceTag, { position: gaugePosition, children: [
|
|
16558
16186
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Last Price" }),
|
|
16559
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children:
|
|
16187
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: formatCurrency5(lastPrice) })
|
|
16560
16188
|
] }),
|
|
16561
16189
|
/* @__PURE__ */ jsxRuntime.jsx(GaugeIndicator, { type: "lastPrice", position: gaugePosition })
|
|
16562
16190
|
] }),
|
|
@@ -16564,7 +16192,7 @@ function PropertyValuation({
|
|
|
16564
16192
|
/* @__PURE__ */ jsxRuntime.jsx(ValuationItem, { children: /* @__PURE__ */ jsxRuntime.jsxs(ValuationValue, { style: { color: "#0ecb81" }, children: [
|
|
16565
16193
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
16566
16194
|
"< ",
|
|
16567
|
-
|
|
16195
|
+
formatCurrency5(undervaluedThreshold)
|
|
16568
16196
|
] }),
|
|
16569
16197
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "valuation-amount-span", style: { fontSize: "0.8rem", fontWeight: "normal" }, children: [
|
|
16570
16198
|
"(",
|
|
@@ -16573,7 +16201,7 @@ function PropertyValuation({
|
|
|
16573
16201
|
] })
|
|
16574
16202
|
] }) }),
|
|
16575
16203
|
/* @__PURE__ */ jsxRuntime.jsx(ValuationItem, { children: /* @__PURE__ */ jsxRuntime.jsxs(ValuationValue, { style: { color: "#f0b90b" }, children: [
|
|
16576
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children:
|
|
16204
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: formatCurrency5(fairValue) }),
|
|
16577
16205
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "valuation-amount-span", style: { fontSize: "0.8rem", fontWeight: "normal" }, children: [
|
|
16578
16206
|
"(",
|
|
16579
16207
|
formatMillions(fairValue * tokensOutstanding),
|
|
@@ -16583,7 +16211,7 @@ function PropertyValuation({
|
|
|
16583
16211
|
/* @__PURE__ */ jsxRuntime.jsx(ValuationItem, { children: /* @__PURE__ */ jsxRuntime.jsxs(ValuationValue, { style: { color: "#f6465d" }, children: [
|
|
16584
16212
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
16585
16213
|
"> ",
|
|
16586
|
-
|
|
16214
|
+
formatCurrency5(overvaluedThreshold)
|
|
16587
16215
|
] }),
|
|
16588
16216
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "valuation-amount-span", style: { fontSize: "0.8rem", fontWeight: "normal" }, children: [
|
|
16589
16217
|
"(",
|
|
@@ -16626,7 +16254,7 @@ function PropertyValuation({
|
|
|
16626
16254
|
/* @__PURE__ */ jsxRuntime.jsxs(SalePriceBar, { children: [
|
|
16627
16255
|
/* @__PURE__ */ jsxRuntime.jsxs(SalePriceLeft, { children: [
|
|
16628
16256
|
/* @__PURE__ */ jsxRuntime.jsx(SalePriceLabel, { children: "Sale Price" }),
|
|
16629
|
-
/* @__PURE__ */ jsxRuntime.jsx(SalePriceAmount, { children:
|
|
16257
|
+
/* @__PURE__ */ jsxRuntime.jsx(SalePriceAmount, { children: formatCurrency5(sale.price) })
|
|
16630
16258
|
] }),
|
|
16631
16259
|
/* @__PURE__ */ jsxRuntime.jsx(SaleDate, { children: sale.saleDate ?? "\u2014" })
|
|
16632
16260
|
] }),
|
|
@@ -16653,7 +16281,7 @@ function PropertyValuation({
|
|
|
16653
16281
|
error ? /* @__PURE__ */ jsxRuntime.jsx(ErrorMessage, { children: error }) : null
|
|
16654
16282
|
] });
|
|
16655
16283
|
}
|
|
16656
|
-
function
|
|
16284
|
+
function formatCurrency5(value, options) {
|
|
16657
16285
|
if (value == null || Number.isNaN(value)) {
|
|
16658
16286
|
return "\u2014";
|
|
16659
16287
|
}
|
|
@@ -16727,7 +16355,7 @@ function buildAxisLabels(min, max) {
|
|
|
16727
16355
|
for (let i = 0; i < steps; i += 1) {
|
|
16728
16356
|
const ratio = i / (steps - 1);
|
|
16729
16357
|
const value = max - ratio * (max - min);
|
|
16730
|
-
labels.push(
|
|
16358
|
+
labels.push(formatCurrency5(value, { maximumFractionDigits: 0, minimumFractionDigits: 0 }));
|
|
16731
16359
|
}
|
|
16732
16360
|
return labels;
|
|
16733
16361
|
}
|