@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.mjs
CHANGED
|
@@ -157,7 +157,7 @@ var PortfolioSummary = React5.forwardRef(
|
|
|
157
157
|
onResetAccount,
|
|
158
158
|
positionsHeading = "Current Positions",
|
|
159
159
|
emptyPositionsText = "No positions yet. Start trading to build your portfolio!",
|
|
160
|
-
formatCurrency:
|
|
160
|
+
formatCurrency: formatCurrency6 = defaultFormatCurrency,
|
|
161
161
|
formatPercent: formatPercent2 = defaultFormatPercent,
|
|
162
162
|
formatSignedCurrency = defaultFormatSignedCurrency,
|
|
163
163
|
className,
|
|
@@ -195,11 +195,11 @@ var PortfolioSummary = React5.forwardRef(
|
|
|
195
195
|
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
196
196
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
197
197
|
/* @__PURE__ */ jsx("p", { className: "text-xs uppercase tracking-[0.5px] text-white/50", children: "Available Cash" }),
|
|
198
|
-
/* @__PURE__ */ jsx("p", { className: "mt-1 text-[1.25rem] font-semibold text-white", children:
|
|
198
|
+
/* @__PURE__ */ jsx("p", { className: "mt-1 text-[1.25rem] font-semibold text-white", children: formatCurrency6(availableCash) })
|
|
199
199
|
] }),
|
|
200
200
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
201
201
|
/* @__PURE__ */ jsx("p", { className: "text-xs uppercase tracking-[0.5px] text-white/50", children: "Portfolio Value" }),
|
|
202
|
-
/* @__PURE__ */ jsx("p", { className: "mt-1 text-[1.25rem] font-semibold text-white", children:
|
|
202
|
+
/* @__PURE__ */ jsx("p", { className: "mt-1 text-[1.25rem] font-semibold text-white", children: formatCurrency6(portfolioValue) })
|
|
203
203
|
] }),
|
|
204
204
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
205
205
|
/* @__PURE__ */ jsx("p", { className: "text-xs uppercase tracking-[0.5px] text-white/50", children: "Total Return" }),
|
|
@@ -7390,7 +7390,7 @@ var MiniLiveFeed = () => {
|
|
|
7390
7390
|
}, 2e3 + Math.random() * 2e3);
|
|
7391
7391
|
return () => clearInterval(interval);
|
|
7392
7392
|
}, []);
|
|
7393
|
-
const
|
|
7393
|
+
const formatCurrency6 = (amount) => `$${amount.toLocaleString()}`;
|
|
7394
7394
|
return /* @__PURE__ */ jsxs(
|
|
7395
7395
|
"div",
|
|
7396
7396
|
{
|
|
@@ -7480,7 +7480,7 @@ var MiniLiveFeed = () => {
|
|
|
7480
7480
|
] }),
|
|
7481
7481
|
/* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "0.5rem", position: "relative", zIndex: 1 }, children: [
|
|
7482
7482
|
/* @__PURE__ */ jsx("span", { style: { fontSize: "0.75rem", color: "var(--color-text-secondary, #848e9c)" }, children: "bought" }),
|
|
7483
|
-
/* @__PURE__ */ jsx("span", { style: { fontSize: "0.8rem", fontWeight: 600, color: "#fff" }, children:
|
|
7483
|
+
/* @__PURE__ */ jsx("span", { style: { fontSize: "0.8rem", fontWeight: 600, color: "#fff" }, children: formatCurrency6(purchase.amount) })
|
|
7484
7484
|
] })
|
|
7485
7485
|
]
|
|
7486
7486
|
},
|
|
@@ -8431,7 +8431,7 @@ function PropertyOverview({
|
|
|
8431
8431
|
description: descriptionProp,
|
|
8432
8432
|
tradeButtonLabel = "Trade",
|
|
8433
8433
|
images,
|
|
8434
|
-
galleryCategories
|
|
8434
|
+
galleryCategories = [],
|
|
8435
8435
|
videoUrl,
|
|
8436
8436
|
tokenName,
|
|
8437
8437
|
landSizeSqm: landProp,
|
|
@@ -8653,7 +8653,7 @@ function PropertyOverview({
|
|
|
8653
8653
|
GalleryMapSection,
|
|
8654
8654
|
{
|
|
8655
8655
|
images: galleryImages.map((img) => ({ src: img.imageUrl, title: img.title, subtitle: img.subtitle })),
|
|
8656
|
-
categories:
|
|
8656
|
+
categories: galleryCategories,
|
|
8657
8657
|
propertyLocation: location,
|
|
8658
8658
|
videoUrl,
|
|
8659
8659
|
tokenName,
|
|
@@ -8885,7 +8885,7 @@ function PropertyOverview({
|
|
|
8885
8885
|
GalleryMapSection,
|
|
8886
8886
|
{
|
|
8887
8887
|
images: galleryImages.map((img) => ({ src: img.imageUrl, title: img.title, subtitle: img.subtitle })),
|
|
8888
|
-
categories:
|
|
8888
|
+
categories: galleryCategories,
|
|
8889
8889
|
propertyLocation: location,
|
|
8890
8890
|
videoUrl,
|
|
8891
8891
|
tokenName,
|
|
@@ -12219,342 +12219,6 @@ var HomeSpinner = styled9.span`
|
|
|
12219
12219
|
to { transform: rotate(360deg); }
|
|
12220
12220
|
}
|
|
12221
12221
|
`;
|
|
12222
|
-
var MAX_DISPLAY_AMOUNT = 6e4;
|
|
12223
|
-
var formatCurrency4 = (amount) => {
|
|
12224
|
-
if (amount >= 1e6) return `$${(amount / 1e6).toFixed(2)}M`;
|
|
12225
|
-
return `$${Math.round(amount).toLocaleString()}`;
|
|
12226
|
-
};
|
|
12227
|
-
var formatTimeAgo2 = (timestamp) => {
|
|
12228
|
-
const seconds = Math.floor(Date.now() / 1e3) - timestamp;
|
|
12229
|
-
if (seconds < 60) return `${seconds}s ago`;
|
|
12230
|
-
const minutes = Math.floor(seconds / 60);
|
|
12231
|
-
if (minutes < 60) return `${minutes}m ago`;
|
|
12232
|
-
const hours = Math.floor(minutes / 60);
|
|
12233
|
-
if (hours < 24) return `${hours}h ago`;
|
|
12234
|
-
return `${Math.floor(hours / 24)}d ago`;
|
|
12235
|
-
};
|
|
12236
|
-
function VideoActivitySection({
|
|
12237
|
-
ipoStarted,
|
|
12238
|
-
ipoEnded = false,
|
|
12239
|
-
isLoading = false,
|
|
12240
|
-
recentOrders = [],
|
|
12241
|
-
ordersAllocated = 0,
|
|
12242
|
-
tokenPrice = 0
|
|
12243
|
-
}) {
|
|
12244
|
-
const sortedOrders = useMemo(
|
|
12245
|
-
() => [...recentOrders].sort((a, b) => b.timestamp - a.timestamp).slice(0, 7),
|
|
12246
|
-
[recentOrders]
|
|
12247
|
-
);
|
|
12248
|
-
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";
|
|
12249
|
-
const showSkeletonFeed = ipoStarted && isLoading && sortedOrders.length === 0;
|
|
12250
|
-
const showOrderFeed = !showSkeletonFeed && (ipoStarted || ipoEnded && sortedOrders.length > 0);
|
|
12251
|
-
return /* @__PURE__ */ jsxs(Section4, { children: [
|
|
12252
|
-
/* @__PURE__ */ jsxs(VideoPanel, { children: [
|
|
12253
|
-
/* @__PURE__ */ jsx("div", { className: "section-header", children: /* @__PURE__ */ jsx("h3", { children: "Musgrave" }) }),
|
|
12254
|
-
/* @__PURE__ */ jsx("div", { className: "video-container", children: /* @__PURE__ */ jsxs("video", { controls: true, loop: true, autoPlay: true, muted: true, playsInline: true, children: [
|
|
12255
|
-
/* @__PURE__ */ jsx("source", { src: "/properties/Musgrave/musgrave.mp4", type: "video/mp4" }),
|
|
12256
|
-
"Your browser does not support the video tag."
|
|
12257
|
-
] }) })
|
|
12258
|
-
] }),
|
|
12259
|
-
/* @__PURE__ */ jsxs(ActivityPanel, { children: [
|
|
12260
|
-
/* @__PURE__ */ jsxs("div", { className: "section-header", children: [
|
|
12261
|
-
/* @__PURE__ */ jsxs("h3", { children: [
|
|
12262
|
-
/* @__PURE__ */ jsx(LiveIndicatorDot, { $active: ipoStarted && !ipoEnded }),
|
|
12263
|
-
"Recent Order Activity"
|
|
12264
|
-
] }),
|
|
12265
|
-
/* @__PURE__ */ jsx("span", { children: headerStatusText })
|
|
12266
|
-
] }),
|
|
12267
|
-
/* @__PURE__ */ jsx("div", { className: "activity-content", children: showSkeletonFeed ? /* @__PURE__ */ jsx(FeedList, { children: Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ jsxs(SkeletonFeedRow, { children: [
|
|
12268
|
-
/* @__PURE__ */ jsxs("div", { className: "info-col", children: [
|
|
12269
|
-
/* @__PURE__ */ jsx(Skeleton, { width: 110, height: 14 }),
|
|
12270
|
-
/* @__PURE__ */ jsx(Skeleton, { width: 56, height: 10 })
|
|
12271
|
-
] }),
|
|
12272
|
-
/* @__PURE__ */ jsx(Skeleton, { width: 70, height: 14 })
|
|
12273
|
-
] }, `feed-skel-${i}`)) }) : showOrderFeed ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
12274
|
-
ipoEnded && /* @__PURE__ */ jsx(EndedBanner, { children: "Sale ended \u2014 final allocations" }),
|
|
12275
|
-
/* @__PURE__ */ jsx(FeedList, { children: sortedOrders.map((order, index) => {
|
|
12276
|
-
const amount = tokenPrice * order.quantity;
|
|
12277
|
-
const barPercent = Math.min(85, Math.max(15, amount / MAX_DISPLAY_AMOUNT * 100));
|
|
12278
|
-
const isAlternate = index % 2 === 1;
|
|
12279
|
-
return /* @__PURE__ */ jsxs(
|
|
12280
|
-
PurchaseItem,
|
|
12281
|
-
{
|
|
12282
|
-
$barWidth: `${barPercent}%`,
|
|
12283
|
-
$isAlternate: isAlternate,
|
|
12284
|
-
children: [
|
|
12285
|
-
/* @__PURE__ */ jsxs(PurchaseInfo, { children: [
|
|
12286
|
-
/* @__PURE__ */ jsx(PurchaseName, { children: order.buyerHandle || `${order.buyerAddress.slice(0, 6)}...${order.buyerAddress.slice(-4)}` }),
|
|
12287
|
-
/* @__PURE__ */ jsx(PurchaseTime, { children: formatTimeAgo2(order.timestamp) })
|
|
12288
|
-
] }),
|
|
12289
|
-
/* @__PURE__ */ jsx(PurchaseAmount, { children: formatCurrency4(amount) })
|
|
12290
|
-
]
|
|
12291
|
-
},
|
|
12292
|
-
order.txHash
|
|
12293
|
-
);
|
|
12294
|
-
}) })
|
|
12295
|
-
] }) : ipoEnded ? /* @__PURE__ */ jsx("div", { className: "activity-empty", children: /* @__PURE__ */ jsx("p", { children: "Sale ended \u2014 no orders were placed." }) }) : /* @__PURE__ */ jsxs("div", { className: "activity-empty", children: [
|
|
12296
|
-
/* @__PURE__ */ jsx("div", { className: "spinner" }),
|
|
12297
|
-
/* @__PURE__ */ jsx("p", { children: "Activity will appear once the Offering opens" })
|
|
12298
|
-
] }) })
|
|
12299
|
-
] })
|
|
12300
|
-
] });
|
|
12301
|
-
}
|
|
12302
|
-
var Section4 = styled9.div`
|
|
12303
|
-
display: flex;
|
|
12304
|
-
gap: 1.5rem;
|
|
12305
|
-
align-items: stretch;
|
|
12306
|
-
@media (max-width: 1024px) {
|
|
12307
|
-
flex-direction: column;
|
|
12308
|
-
gap: 1rem;
|
|
12309
|
-
}
|
|
12310
|
-
`;
|
|
12311
|
-
var VideoPanel = styled9.div`
|
|
12312
|
-
flex: 1;
|
|
12313
|
-
background-color: var(--color-card-darker, #111);
|
|
12314
|
-
border-radius: 8px;
|
|
12315
|
-
padding: 1.5rem;
|
|
12316
|
-
box-shadow: 0 4px 8px rgba(0,0,0,0.2);
|
|
12317
|
-
border: 1px solid var(--color-border);
|
|
12318
|
-
overflow: hidden;
|
|
12319
|
-
display: flex;
|
|
12320
|
-
flex-direction: column;
|
|
12321
|
-
@media (max-width: 768px) {
|
|
12322
|
-
display: none;
|
|
12323
|
-
}
|
|
12324
|
-
.section-header {
|
|
12325
|
-
display: flex;
|
|
12326
|
-
justify-content: space-between;
|
|
12327
|
-
align-items: center;
|
|
12328
|
-
padding-bottom: 0.75rem;
|
|
12329
|
-
margin-bottom: 1rem;
|
|
12330
|
-
border-bottom: 1px solid rgba(255,255,255,0.1);
|
|
12331
|
-
h3 {
|
|
12332
|
-
font-size: 0.9rem;
|
|
12333
|
-
font-weight: 600;
|
|
12334
|
-
color: var(--color-text);
|
|
12335
|
-
margin: 0;
|
|
12336
|
-
}
|
|
12337
|
-
}
|
|
12338
|
-
.video-container {
|
|
12339
|
-
flex: 1;
|
|
12340
|
-
position: relative;
|
|
12341
|
-
background: #000;
|
|
12342
|
-
border-radius: 8px;
|
|
12343
|
-
overflow: hidden;
|
|
12344
|
-
min-height: 300px;
|
|
12345
|
-
video {
|
|
12346
|
-
position: absolute;
|
|
12347
|
-
top: 0;
|
|
12348
|
-
left: 0;
|
|
12349
|
-
width: 100%;
|
|
12350
|
-
height: 100%;
|
|
12351
|
-
object-fit: cover;
|
|
12352
|
-
}
|
|
12353
|
-
}
|
|
12354
|
-
`;
|
|
12355
|
-
var ActivityPanel = styled9.div`
|
|
12356
|
-
flex: 0 0 auto;
|
|
12357
|
-
min-width: 450px;
|
|
12358
|
-
max-width: 520px;
|
|
12359
|
-
display: flex;
|
|
12360
|
-
flex-direction: column;
|
|
12361
|
-
background-color: var(--color-card-darker, #111);
|
|
12362
|
-
border-radius: 8px;
|
|
12363
|
-
padding: 1.5rem;
|
|
12364
|
-
box-shadow: 0 4px 8px rgba(0,0,0,0.2);
|
|
12365
|
-
border: 1px solid var(--color-border);
|
|
12366
|
-
@media (max-width: 1024px) {
|
|
12367
|
-
min-width: 0;
|
|
12368
|
-
max-width: none;
|
|
12369
|
-
width: 100%;
|
|
12370
|
-
padding: 1rem;
|
|
12371
|
-
}
|
|
12372
|
-
@media (max-width: 768px) {
|
|
12373
|
-
max-height: 280px;
|
|
12374
|
-
.activity-content {
|
|
12375
|
-
max-height: 220px;
|
|
12376
|
-
}
|
|
12377
|
-
}
|
|
12378
|
-
.section-header {
|
|
12379
|
-
display: flex;
|
|
12380
|
-
justify-content: space-between;
|
|
12381
|
-
align-items: center;
|
|
12382
|
-
padding-bottom: 0.75rem;
|
|
12383
|
-
margin-bottom: 1rem;
|
|
12384
|
-
border-bottom: 1px solid rgba(255,255,255,0.1);
|
|
12385
|
-
h3 {
|
|
12386
|
-
font-size: 0.9rem;
|
|
12387
|
-
font-weight: 600;
|
|
12388
|
-
color: var(--color-text);
|
|
12389
|
-
margin: 0;
|
|
12390
|
-
display: flex;
|
|
12391
|
-
align-items: center;
|
|
12392
|
-
gap: 0.5rem;
|
|
12393
|
-
}
|
|
12394
|
-
span {
|
|
12395
|
-
font-size: 0.75rem;
|
|
12396
|
-
color: var(--color-text-secondary);
|
|
12397
|
-
font-weight: 500;
|
|
12398
|
-
}
|
|
12399
|
-
}
|
|
12400
|
-
.activity-content {
|
|
12401
|
-
flex: 1;
|
|
12402
|
-
overflow-y: auto;
|
|
12403
|
-
scrollbar-width: none;
|
|
12404
|
-
-ms-overflow-style: none;
|
|
12405
|
-
}
|
|
12406
|
-
.activity-content::-webkit-scrollbar {
|
|
12407
|
-
display: none;
|
|
12408
|
-
}
|
|
12409
|
-
.activity-empty {
|
|
12410
|
-
display: flex;
|
|
12411
|
-
flex-direction: column;
|
|
12412
|
-
align-items: center;
|
|
12413
|
-
justify-content: center;
|
|
12414
|
-
height: 200px;
|
|
12415
|
-
color: var(--color-text-secondary);
|
|
12416
|
-
text-align: center;
|
|
12417
|
-
gap: 0.75rem;
|
|
12418
|
-
.spinner {
|
|
12419
|
-
width: 40px;
|
|
12420
|
-
height: 40px;
|
|
12421
|
-
border-radius: 50%;
|
|
12422
|
-
border: 2px solid rgba(212,175,55,0.3);
|
|
12423
|
-
border-top-color: #D4AF37;
|
|
12424
|
-
animation: spin 1s linear infinite;
|
|
12425
|
-
}
|
|
12426
|
-
p {
|
|
12427
|
-
font-size: 0.85rem;
|
|
12428
|
-
margin: 0;
|
|
12429
|
-
}
|
|
12430
|
-
}
|
|
12431
|
-
@keyframes spin {
|
|
12432
|
-
from { transform: rotate(0deg); }
|
|
12433
|
-
to { transform: rotate(360deg); }
|
|
12434
|
-
}
|
|
12435
|
-
`;
|
|
12436
|
-
var SkeletonFeedRow = styled9.div`
|
|
12437
|
-
padding: 0.625rem 0.75rem;
|
|
12438
|
-
border-bottom: 1px solid rgba(255,255,255,0.04);
|
|
12439
|
-
display: flex;
|
|
12440
|
-
justify-content: space-between;
|
|
12441
|
-
align-items: center;
|
|
12442
|
-
gap: 1rem;
|
|
12443
|
-
|
|
12444
|
-
&:last-child {
|
|
12445
|
-
border-bottom: none;
|
|
12446
|
-
}
|
|
12447
|
-
|
|
12448
|
-
.info-col {
|
|
12449
|
-
display: flex;
|
|
12450
|
-
flex-direction: column;
|
|
12451
|
-
gap: 0.3rem;
|
|
12452
|
-
min-width: 0;
|
|
12453
|
-
flex: 1;
|
|
12454
|
-
}
|
|
12455
|
-
|
|
12456
|
-
@media (max-width: 768px) {
|
|
12457
|
-
padding: 0.4rem 0.6rem;
|
|
12458
|
-
}
|
|
12459
|
-
`;
|
|
12460
|
-
var EndedBanner = styled9.div`
|
|
12461
|
-
font-size: 0.7rem;
|
|
12462
|
-
font-weight: 600;
|
|
12463
|
-
letter-spacing: 0.04em;
|
|
12464
|
-
text-transform: uppercase;
|
|
12465
|
-
color: rgba(255, 255, 255, 0.55);
|
|
12466
|
-
background: rgba(255, 255, 255, 0.04);
|
|
12467
|
-
border: 1px solid rgba(255, 255, 255, 0.08);
|
|
12468
|
-
border-radius: 6px;
|
|
12469
|
-
padding: 0.4rem 0.6rem;
|
|
12470
|
-
margin-bottom: 0.5rem;
|
|
12471
|
-
text-align: center;
|
|
12472
|
-
`;
|
|
12473
|
-
var FeedList = styled9.div`
|
|
12474
|
-
width: 100%;
|
|
12475
|
-
overflow-y: auto;
|
|
12476
|
-
scrollbar-width: none;
|
|
12477
|
-
-ms-overflow-style: none;
|
|
12478
|
-
&::-webkit-scrollbar {
|
|
12479
|
-
display: none;
|
|
12480
|
-
}
|
|
12481
|
-
`;
|
|
12482
|
-
var PurchaseItem = styled9.div`
|
|
12483
|
-
padding: 0.625rem 0.75rem;
|
|
12484
|
-
border-bottom: 1px solid rgba(255,255,255,0.05);
|
|
12485
|
-
display: flex;
|
|
12486
|
-
justify-content: space-between;
|
|
12487
|
-
align-items: center;
|
|
12488
|
-
position: relative;
|
|
12489
|
-
overflow: hidden;
|
|
12490
|
-
background-color: ${(p) => p.$isAlternate ? "rgba(255,255,255,0.03)" : "transparent"};
|
|
12491
|
-
|
|
12492
|
-
&::before {
|
|
12493
|
-
content: '';
|
|
12494
|
-
position: absolute;
|
|
12495
|
-
top: 0;
|
|
12496
|
-
right: 0;
|
|
12497
|
-
bottom: 0;
|
|
12498
|
-
width: ${(p) => p.$barWidth || "20%"};
|
|
12499
|
-
background: linear-gradient(90deg, transparent 0%, rgba(14,203,129,0.15) 100%);
|
|
12500
|
-
pointer-events: none;
|
|
12501
|
-
}
|
|
12502
|
-
|
|
12503
|
-
&:last-child {
|
|
12504
|
-
border-bottom: none;
|
|
12505
|
-
}
|
|
12506
|
-
|
|
12507
|
-
@media (max-width: 768px) {
|
|
12508
|
-
padding: 0.4rem 0.6rem;
|
|
12509
|
-
}
|
|
12510
|
-
`;
|
|
12511
|
-
var PurchaseInfo = styled9.div`
|
|
12512
|
-
display: flex;
|
|
12513
|
-
flex-direction: column;
|
|
12514
|
-
min-width: 0;
|
|
12515
|
-
`;
|
|
12516
|
-
var PurchaseName = styled9.div`
|
|
12517
|
-
font-weight: 500;
|
|
12518
|
-
font-size: 0.875rem;
|
|
12519
|
-
color: #fff;
|
|
12520
|
-
white-space: nowrap;
|
|
12521
|
-
overflow: hidden;
|
|
12522
|
-
text-overflow: ellipsis;
|
|
12523
|
-
`;
|
|
12524
|
-
var PurchaseTime = styled9.div`
|
|
12525
|
-
font-size: 0.7rem;
|
|
12526
|
-
color: var(--color-text-secondary);
|
|
12527
|
-
margin-top: 0.125rem;
|
|
12528
|
-
`;
|
|
12529
|
-
var PurchaseAmount = styled9.div`
|
|
12530
|
-
font-weight: 600;
|
|
12531
|
-
font-size: 0.875rem;
|
|
12532
|
-
color: #fff;
|
|
12533
|
-
white-space: nowrap;
|
|
12534
|
-
margin-left: 1rem;
|
|
12535
|
-
`;
|
|
12536
|
-
var LiveIndicatorDot = styled9.span`
|
|
12537
|
-
display: inline-block;
|
|
12538
|
-
width: 8px;
|
|
12539
|
-
height: 8px;
|
|
12540
|
-
background-color: ${(p) => p.$active ? "#0ecb81" : "#848e9c"};
|
|
12541
|
-
border-radius: 50%;
|
|
12542
|
-
position: relative;
|
|
12543
|
-
&:after {
|
|
12544
|
-
content: '';
|
|
12545
|
-
position: absolute;
|
|
12546
|
-
width: 100%;
|
|
12547
|
-
height: 100%;
|
|
12548
|
-
border-radius: 50%;
|
|
12549
|
-
background-color: ${(p) => p.$active ? "#0ecb81" : "transparent"};
|
|
12550
|
-
animation: ${(p) => p.$active ? "liveGlow 2s infinite" : "none"};
|
|
12551
|
-
}
|
|
12552
|
-
@keyframes liveGlow {
|
|
12553
|
-
0% { box-shadow: 0 0 0 0 rgba(14,203,129,0.4); }
|
|
12554
|
-
70% { box-shadow: 0 0 0 10px rgba(14,203,129,0); }
|
|
12555
|
-
100% { box-shadow: 0 0 0 0 rgba(14,203,129,0); }
|
|
12556
|
-
}
|
|
12557
|
-
`;
|
|
12558
12222
|
var slideIn = keyframes`
|
|
12559
12223
|
from { transform: translateX(110%); opacity: 0; }
|
|
12560
12224
|
to { transform: translateX(0); opacity: 1; }
|
|
@@ -13601,52 +13265,312 @@ var InsufficientFunds = styled9.div`
|
|
|
13601
13265
|
font-size: 0.85rem;
|
|
13602
13266
|
font-weight: 600;
|
|
13603
13267
|
`;
|
|
13604
|
-
|
|
13605
|
-
|
|
13606
|
-
|
|
13607
|
-
|
|
13608
|
-
|
|
13609
|
-
|
|
13610
|
-
|
|
13611
|
-
|
|
13612
|
-
|
|
13613
|
-
|
|
13614
|
-
|
|
13615
|
-
|
|
13616
|
-
|
|
13617
|
-
|
|
13618
|
-
|
|
13619
|
-
|
|
13620
|
-
|
|
13621
|
-
|
|
13622
|
-
|
|
13623
|
-
|
|
13624
|
-
|
|
13625
|
-
|
|
13626
|
-
|
|
13627
|
-
|
|
13628
|
-
|
|
13629
|
-
|
|
13630
|
-
|
|
13631
|
-
|
|
13632
|
-
|
|
13633
|
-
|
|
13634
|
-
|
|
13635
|
-
|
|
13636
|
-
|
|
13637
|
-
|
|
13638
|
-
}
|
|
13639
|
-
|
|
13640
|
-
|
|
13641
|
-
|
|
13642
|
-
|
|
13643
|
-
|
|
13644
|
-
|
|
13645
|
-
|
|
13646
|
-
|
|
13647
|
-
|
|
13648
|
-
|
|
13649
|
-
|
|
13268
|
+
function OrderConfirmationModal({
|
|
13269
|
+
open,
|
|
13270
|
+
onClose,
|
|
13271
|
+
hasInsufficientFunds,
|
|
13272
|
+
tokenQuantity,
|
|
13273
|
+
tokenPrice,
|
|
13274
|
+
propertyName,
|
|
13275
|
+
tokenSymbol,
|
|
13276
|
+
estExposure,
|
|
13277
|
+
orderTotal,
|
|
13278
|
+
availableBalance,
|
|
13279
|
+
onConfirm,
|
|
13280
|
+
isPlacing = false,
|
|
13281
|
+
placingLabel = "Placing order\u2026"
|
|
13282
|
+
}) {
|
|
13283
|
+
if (!open) return null;
|
|
13284
|
+
const handleOverlayClose = () => {
|
|
13285
|
+
if (isPlacing) return;
|
|
13286
|
+
onClose();
|
|
13287
|
+
};
|
|
13288
|
+
return /* @__PURE__ */ jsx(Overlay3, { onClick: handleOverlayClose, children: /* @__PURE__ */ jsxs(Modal, { onClick: (e) => e.stopPropagation(), children: [
|
|
13289
|
+
/* @__PURE__ */ jsx(ModalHeader, { children: /* @__PURE__ */ jsxs("h3", { children: [
|
|
13290
|
+
"Confirm Order",
|
|
13291
|
+
/* @__PURE__ */ jsx(Badge2, { children: "Subscribe" })
|
|
13292
|
+
] }) }),
|
|
13293
|
+
/* @__PURE__ */ jsx(ModalBody, { children: [
|
|
13294
|
+
{ label: "Order Type", value: "Primary Offering" },
|
|
13295
|
+
{ label: "Property", value: propertyName },
|
|
13296
|
+
{ label: "Units", value: `${tokenQuantity.toLocaleString()} ${tokenSymbol}`, highlight: true },
|
|
13297
|
+
{
|
|
13298
|
+
label: "Unit Price",
|
|
13299
|
+
value: `$${tokenPrice.toLocaleString(void 0, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}`
|
|
13300
|
+
},
|
|
13301
|
+
{ label: "Property Exposure", value: `${estExposure}%` },
|
|
13302
|
+
{ label: "Total Investment", value: `$${orderTotal.toLocaleString()}`, highlight: true }
|
|
13303
|
+
].map((row, index, arr) => /* @__PURE__ */ jsxs(ModalRow, { "data-divider": index < arr.length - 1, children: [
|
|
13304
|
+
/* @__PURE__ */ jsx("span", { children: row.label }),
|
|
13305
|
+
/* @__PURE__ */ jsx("strong", { "data-highlight": row.highlight, children: row.value })
|
|
13306
|
+
] }, row.label)) }),
|
|
13307
|
+
hasInsufficientFunds ? /* @__PURE__ */ jsxs(Warning, { children: [
|
|
13308
|
+
/* @__PURE__ */ jsx("p", { children: "\u26A0 Insufficient Balance" }),
|
|
13309
|
+
/* @__PURE__ */ jsxs("small", { children: [
|
|
13310
|
+
"You need ",
|
|
13311
|
+
/* @__PURE__ */ jsxs("strong", { children: [
|
|
13312
|
+
"$",
|
|
13313
|
+
orderTotal.toLocaleString()
|
|
13314
|
+
] }),
|
|
13315
|
+
" but only have",
|
|
13316
|
+
" ",
|
|
13317
|
+
/* @__PURE__ */ jsxs("strong", { children: [
|
|
13318
|
+
"$",
|
|
13319
|
+
availableBalance.toLocaleString()
|
|
13320
|
+
] }),
|
|
13321
|
+
" available."
|
|
13322
|
+
] })
|
|
13323
|
+
] }) : /* @__PURE__ */ jsxs(Summary, { children: [
|
|
13324
|
+
"Your order for ",
|
|
13325
|
+
/* @__PURE__ */ jsxs("strong", { children: [
|
|
13326
|
+
tokenQuantity.toLocaleString(),
|
|
13327
|
+
" ",
|
|
13328
|
+
tokenSymbol,
|
|
13329
|
+
" units"
|
|
13330
|
+
] }),
|
|
13331
|
+
" in the",
|
|
13332
|
+
" ",
|
|
13333
|
+
/* @__PURE__ */ jsx("strong", { children: propertyName }),
|
|
13334
|
+
" Primary Offering will be placed for ",
|
|
13335
|
+
/* @__PURE__ */ jsxs("strong", { children: [
|
|
13336
|
+
"$",
|
|
13337
|
+
tokenPrice.toFixed(2),
|
|
13338
|
+
"/unit"
|
|
13339
|
+
] }),
|
|
13340
|
+
"."
|
|
13341
|
+
] }),
|
|
13342
|
+
/* @__PURE__ */ jsxs(ButtonRow2, { children: [
|
|
13343
|
+
/* @__PURE__ */ jsx(
|
|
13344
|
+
"button",
|
|
13345
|
+
{
|
|
13346
|
+
type: "button",
|
|
13347
|
+
onClick: onClose,
|
|
13348
|
+
className: "secondary",
|
|
13349
|
+
disabled: isPlacing,
|
|
13350
|
+
children: "Cancel"
|
|
13351
|
+
}
|
|
13352
|
+
),
|
|
13353
|
+
!hasInsufficientFunds && /* @__PURE__ */ jsx(
|
|
13354
|
+
"button",
|
|
13355
|
+
{
|
|
13356
|
+
type: "button",
|
|
13357
|
+
onClick: onConfirm,
|
|
13358
|
+
className: "primary",
|
|
13359
|
+
disabled: isPlacing,
|
|
13360
|
+
children: isPlacing ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
13361
|
+
/* @__PURE__ */ jsx(Spinner, { "aria-hidden": true }),
|
|
13362
|
+
/* @__PURE__ */ jsx("span", { children: placingLabel })
|
|
13363
|
+
] }) : "Place Order"
|
|
13364
|
+
}
|
|
13365
|
+
)
|
|
13366
|
+
] })
|
|
13367
|
+
] }) });
|
|
13368
|
+
}
|
|
13369
|
+
var Overlay3 = styled9.div`
|
|
13370
|
+
position: fixed;
|
|
13371
|
+
top: 0;
|
|
13372
|
+
left: 0;
|
|
13373
|
+
right: 0;
|
|
13374
|
+
bottom: 0;
|
|
13375
|
+
background-color: rgba(0,0,0,0.7);
|
|
13376
|
+
display: flex;
|
|
13377
|
+
align-items: center;
|
|
13378
|
+
justify-content: center;
|
|
13379
|
+
z-index: 10000;
|
|
13380
|
+
backdrop-filter: blur(4px);
|
|
13381
|
+
`;
|
|
13382
|
+
var Modal = styled9.div`
|
|
13383
|
+
background: linear-gradient(135deg, rgba(26,29,35,0.95) 0%, rgba(26,29,35,0.98) 100%);
|
|
13384
|
+
border: 1px solid rgba(255,255,255,0.1);
|
|
13385
|
+
border-radius: 16px;
|
|
13386
|
+
padding: 2rem;
|
|
13387
|
+
max-width: 480px;
|
|
13388
|
+
width: 90%;
|
|
13389
|
+
box-shadow: 0 20px 60px rgba(0,0,0,0.5);
|
|
13390
|
+
`;
|
|
13391
|
+
var ModalHeader = styled9.div`
|
|
13392
|
+
display: flex;
|
|
13393
|
+
align-items: center;
|
|
13394
|
+
margin-bottom: 1.5rem;
|
|
13395
|
+
padding-bottom: 1rem;
|
|
13396
|
+
border-bottom: 1px solid rgba(255,255,255,0.1);
|
|
13397
|
+
h3 {
|
|
13398
|
+
margin: 0;
|
|
13399
|
+
font-size: 1.25rem;
|
|
13400
|
+
font-weight: 600;
|
|
13401
|
+
color: #fff;
|
|
13402
|
+
display: flex;
|
|
13403
|
+
align-items: center;
|
|
13404
|
+
gap: 0.5rem;
|
|
13405
|
+
}
|
|
13406
|
+
`;
|
|
13407
|
+
var Badge2 = styled9.span`
|
|
13408
|
+
padding: 0.25rem 0.75rem;
|
|
13409
|
+
border-radius: 6px;
|
|
13410
|
+
font-size: 0.75rem;
|
|
13411
|
+
font-weight: 600;
|
|
13412
|
+
text-transform: uppercase;
|
|
13413
|
+
letter-spacing: 0.5px;
|
|
13414
|
+
background: linear-gradient(135deg, rgba(212,175,55,0.2) 0%, rgba(212,175,55,0.1) 100%);
|
|
13415
|
+
color: #D4AF37;
|
|
13416
|
+
border: 1px solid rgba(212,175,55,0.3);
|
|
13417
|
+
`;
|
|
13418
|
+
var ModalBody = styled9.div`
|
|
13419
|
+
margin-bottom: 1.5rem;
|
|
13420
|
+
display: flex;
|
|
13421
|
+
flex-direction: column;
|
|
13422
|
+
`;
|
|
13423
|
+
var ModalRow = styled9.div`
|
|
13424
|
+
display: flex;
|
|
13425
|
+
justify-content: space-between;
|
|
13426
|
+
align-items: center;
|
|
13427
|
+
padding: 0.75rem 0;
|
|
13428
|
+
border-bottom: 1px solid rgba(255,255,255,0.05);
|
|
13429
|
+
&[data-divider='false'] {
|
|
13430
|
+
border-bottom: none;
|
|
13431
|
+
}
|
|
13432
|
+
span {
|
|
13433
|
+
color: rgba(255,255,255,0.6);
|
|
13434
|
+
font-size: 0.9rem;
|
|
13435
|
+
}
|
|
13436
|
+
strong {
|
|
13437
|
+
color: #fff;
|
|
13438
|
+
font-weight: 500;
|
|
13439
|
+
font-size: 0.95rem;
|
|
13440
|
+
}
|
|
13441
|
+
strong[data-highlight='true'] {
|
|
13442
|
+
color: #D4AF37;
|
|
13443
|
+
font-weight: 600;
|
|
13444
|
+
}
|
|
13445
|
+
`;
|
|
13446
|
+
var Warning = styled9.div`
|
|
13447
|
+
background: rgba(246,70,93,0.1);
|
|
13448
|
+
border: 1px solid rgba(246,70,93,0.3);
|
|
13449
|
+
border-radius: 8px;
|
|
13450
|
+
padding: 1rem;
|
|
13451
|
+
margin-bottom: 1.5rem;
|
|
13452
|
+
p {
|
|
13453
|
+
margin: 0;
|
|
13454
|
+
color: #f6465d;
|
|
13455
|
+
font-size: 0.9rem;
|
|
13456
|
+
font-weight: 600;
|
|
13457
|
+
}
|
|
13458
|
+
small {
|
|
13459
|
+
display: block;
|
|
13460
|
+
margin-top: 0.5rem;
|
|
13461
|
+
color: rgba(255,255,255,0.7);
|
|
13462
|
+
font-size: 0.85rem;
|
|
13463
|
+
line-height: 1.5;
|
|
13464
|
+
}
|
|
13465
|
+
`;
|
|
13466
|
+
var Summary = styled9.div`
|
|
13467
|
+
background: rgba(255,255,255,0.03);
|
|
13468
|
+
border: 1px solid rgba(255,255,255,0.08);
|
|
13469
|
+
border-radius: 8px;
|
|
13470
|
+
padding: 1rem;
|
|
13471
|
+
margin-bottom: 1.5rem;
|
|
13472
|
+
color: rgba(255,255,255,0.8);
|
|
13473
|
+
font-size: 0.9rem;
|
|
13474
|
+
line-height: 1.5;
|
|
13475
|
+
`;
|
|
13476
|
+
var spin = keyframes`
|
|
13477
|
+
to { transform: rotate(360deg); }
|
|
13478
|
+
`;
|
|
13479
|
+
var Spinner = styled9.span`
|
|
13480
|
+
display: inline-block;
|
|
13481
|
+
width: 14px;
|
|
13482
|
+
height: 14px;
|
|
13483
|
+
border-radius: 50%;
|
|
13484
|
+
border: 2px solid rgba(255, 255, 255, 0.35);
|
|
13485
|
+
border-top-color: #fff;
|
|
13486
|
+
animation: ${spin} 0.7s linear infinite;
|
|
13487
|
+
margin-right: 0.5rem;
|
|
13488
|
+
vertical-align: -2px;
|
|
13489
|
+
`;
|
|
13490
|
+
var ButtonRow2 = styled9.div`
|
|
13491
|
+
display: flex;
|
|
13492
|
+
gap: 1rem;
|
|
13493
|
+
justify-content: flex-end;
|
|
13494
|
+
button {
|
|
13495
|
+
padding: 0.75rem 1.5rem;
|
|
13496
|
+
border-radius: 8px;
|
|
13497
|
+
font-weight: 600;
|
|
13498
|
+
font-size: 0.95rem;
|
|
13499
|
+
cursor: pointer;
|
|
13500
|
+
display: inline-flex;
|
|
13501
|
+
align-items: center;
|
|
13502
|
+
justify-content: center;
|
|
13503
|
+
}
|
|
13504
|
+
button:disabled {
|
|
13505
|
+
cursor: not-allowed;
|
|
13506
|
+
opacity: 0.75;
|
|
13507
|
+
}
|
|
13508
|
+
.secondary {
|
|
13509
|
+
background: rgba(255,255,255,0.1);
|
|
13510
|
+
color: rgba(255,255,255,0.8);
|
|
13511
|
+
border: 1px solid rgba(255,255,255,0.2);
|
|
13512
|
+
}
|
|
13513
|
+
.primary {
|
|
13514
|
+
background: linear-gradient(135deg, #0ecb81 0%, #0ba968 100%);
|
|
13515
|
+
color: #fff;
|
|
13516
|
+
border: none;
|
|
13517
|
+
box-shadow: 0 4px 12px rgba(14,203,129,0.3);
|
|
13518
|
+
}
|
|
13519
|
+
`;
|
|
13520
|
+
|
|
13521
|
+
// src/components/property-buy/constants.ts
|
|
13522
|
+
var STATUS_COLOR2 = {
|
|
13523
|
+
PENDING: "#D4AF37",
|
|
13524
|
+
LIVE: "#0ecb81",
|
|
13525
|
+
CLOSED: "#848e9c",
|
|
13526
|
+
CANCELLED: "#f6465d"
|
|
13527
|
+
};
|
|
13528
|
+
var ACTIVITY_PAGE_SIZE_DEFAULT = 10;
|
|
13529
|
+
var formatCurrency4 = (value, opts) => {
|
|
13530
|
+
const min = opts?.minimumFractionDigits ?? 2;
|
|
13531
|
+
const max = opts?.maximumFractionDigits ?? 2;
|
|
13532
|
+
return `$${value.toLocaleString("en-US", { minimumFractionDigits: min, maximumFractionDigits: max })}`;
|
|
13533
|
+
};
|
|
13534
|
+
var formatNumber2 = (value, maximumFractionDigits = 2) => value.toLocaleString("en-US", { minimumFractionDigits: 0, maximumFractionDigits });
|
|
13535
|
+
var formatTimestamp = (unix) => {
|
|
13536
|
+
if (!unix) return "\u2014";
|
|
13537
|
+
let sec;
|
|
13538
|
+
if (unix > 1e18) sec = Math.floor(unix / 1e9);
|
|
13539
|
+
else if (unix > 1e14) sec = Math.floor(unix / 1e6);
|
|
13540
|
+
else if (unix > 1e12) sec = Math.floor(unix / 1e3);
|
|
13541
|
+
else sec = unix;
|
|
13542
|
+
return new Date(sec * 1e3).toLocaleString("en-AU", {
|
|
13543
|
+
day: "2-digit",
|
|
13544
|
+
month: "short",
|
|
13545
|
+
hour: "2-digit",
|
|
13546
|
+
minute: "2-digit",
|
|
13547
|
+
hour12: false
|
|
13548
|
+
});
|
|
13549
|
+
};
|
|
13550
|
+
var formatAddress = (address) => `${address.slice(0, 6)}...${address.slice(-4)}`;
|
|
13551
|
+
var prettyLabel = (value) => value.split("_").map((part) => part.charAt(0) + part.slice(1).toLowerCase()).join(" ");
|
|
13552
|
+
var sideLabel = (side) => side?.toUpperCase() === "SELL" ? "Sell" : "Buy";
|
|
13553
|
+
var getOrderStatusMeta = (statusRaw) => {
|
|
13554
|
+
const status = statusRaw.toUpperCase();
|
|
13555
|
+
if (status === "FILLED" || status === "CONFIRMED" || status === "ALLOCATED") {
|
|
13556
|
+
return { color: "#0ecb81", bg: "rgba(14,203,129,0.1)" };
|
|
13557
|
+
}
|
|
13558
|
+
if (status === "CANCELLED" || status === "CANCELED" || status === "REJECTED") {
|
|
13559
|
+
return { color: "#f6465d", bg: "rgba(246,70,93,0.12)" };
|
|
13560
|
+
}
|
|
13561
|
+
return { color: "#f0b90b", bg: "rgba(240,185,11,0.15)" };
|
|
13562
|
+
};
|
|
13563
|
+
function EditableField({ value, onCommit, format }) {
|
|
13564
|
+
const [editing, setEditing] = useState(false);
|
|
13565
|
+
const [draft, setDraft] = useState("");
|
|
13566
|
+
const inputRef = useRef(null);
|
|
13567
|
+
useEffect(() => {
|
|
13568
|
+
if (editing) inputRef.current?.focus();
|
|
13569
|
+
}, [editing]);
|
|
13570
|
+
const commit = () => {
|
|
13571
|
+
const parsed = parseFloat(draft);
|
|
13572
|
+
if (!isNaN(parsed) && parsed > 0 && parsed !== value) {
|
|
13573
|
+
onCommit(parsed);
|
|
13650
13574
|
}
|
|
13651
13575
|
setEditing(false);
|
|
13652
13576
|
};
|
|
@@ -13861,16 +13785,16 @@ function PortfolioActivityPanel({
|
|
|
13861
13785
|
/* @__PURE__ */ jsx("span", { style: { color: "rgba(255,255,255,0.4)", fontSize: "0.7rem" }, children: pos.tokenName.toUpperCase() })
|
|
13862
13786
|
] }) }),
|
|
13863
13787
|
/* @__PURE__ */ jsx(PositionsCell, { children: /* @__PURE__ */ jsxs("span", { style: { color: "#fff", fontSize: "0.8rem" }, children: [
|
|
13864
|
-
|
|
13788
|
+
formatCurrency4(currentValue, { minimumFractionDigits: 0, maximumFractionDigits: 0 }),
|
|
13865
13789
|
" ",
|
|
13866
13790
|
/* @__PURE__ */ jsx("span", { style: { color: "rgba(255,255,255,0.4)", fontSize: "0.7rem" }, children: "USD" })
|
|
13867
13791
|
] }) }),
|
|
13868
|
-
/* @__PURE__ */ jsx(PositionsCell, { children: /* @__PURE__ */ jsx("span", { style: { color: "rgba(255,255,255,0.7)", fontSize: "0.8rem" }, children:
|
|
13869
|
-
/* @__PURE__ */ jsx(PositionsCell, { children: /* @__PURE__ */ jsx("span", { style: { color: "#fff", fontSize: "0.8rem" }, children:
|
|
13792
|
+
/* @__PURE__ */ jsx(PositionsCell, { children: /* @__PURE__ */ jsx("span", { style: { color: "rgba(255,255,255,0.7)", fontSize: "0.8rem" }, children: formatCurrency4(pos.averageEntryPrice) }) }),
|
|
13793
|
+
/* @__PURE__ */ jsx(PositionsCell, { children: /* @__PURE__ */ jsx("span", { style: { color: "#fff", fontSize: "0.8rem" }, children: formatCurrency4(pos.marketPrice) }) }),
|
|
13870
13794
|
/* @__PURE__ */ jsxs(PositionsCell, { children: [
|
|
13871
13795
|
/* @__PURE__ */ jsxs(PnLAmount, { $positive: isPositive, children: [
|
|
13872
13796
|
isPositive ? "+" : "-",
|
|
13873
|
-
|
|
13797
|
+
formatCurrency4(Math.abs(pnl))
|
|
13874
13798
|
] }),
|
|
13875
13799
|
/* @__PURE__ */ jsxs(PnLPercentage, { $positive: isPositive, children: [
|
|
13876
13800
|
isPositive ? "+" : "",
|
|
@@ -13929,8 +13853,8 @@ function PortfolioActivityPanel({
|
|
|
13929
13853
|
return /* @__PURE__ */ jsxs(GridRow, { $columns: "1.2fr 0.8fr 1fr 1fr 0.8fr 1fr", children: [
|
|
13930
13854
|
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { $primary: true, children: order.tokenName }) }),
|
|
13931
13855
|
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { children: formatNumber2(order.quantity) }) }),
|
|
13932
|
-
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { $muted: true, children:
|
|
13933
|
-
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { children:
|
|
13856
|
+
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { $muted: true, children: formatCurrency4(order.price) }) }),
|
|
13857
|
+
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { children: formatCurrency4(order.price * order.quantity) }) }),
|
|
13934
13858
|
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(ActivityTag, { $color: meta.color, $bg: meta.bg, children: prettyLabel(order.status) }) }),
|
|
13935
13859
|
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { $muted: true, children: formatTimestamp(order.createdAt) }) })
|
|
13936
13860
|
] }, `${order.tokenName}-${order.txHash}-${order.createdAt}`);
|
|
@@ -13961,7 +13885,7 @@ function PortfolioActivityPanel({
|
|
|
13961
13885
|
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(SideBadge, { $side: sideLabel(order.side), children: sideLabel(order.side) }) }),
|
|
13962
13886
|
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { $muted: true, children: prettyLabel(order.type) }) }),
|
|
13963
13887
|
/* @__PURE__ */ jsx(GridCell, { children: onAmendOrder ? /* @__PURE__ */ jsx(EditableField, { value: order.quantity, format: formatNumber2, onCommit: (v) => onAmendOrder(order.id, { quantity: v }) }) : /* @__PURE__ */ jsx(CellText, { children: formatNumber2(order.quantity) }) }),
|
|
13964
|
-
/* @__PURE__ */ jsx(GridCell, { children: !isMarket && order.price && onAmendOrder ? /* @__PURE__ */ jsx(EditableField, { value: order.price, format: (v) =>
|
|
13888
|
+
/* @__PURE__ */ jsx(GridCell, { children: !isMarket && order.price && onAmendOrder ? /* @__PURE__ */ jsx(EditableField, { value: order.price, format: (v) => formatCurrency4(v), onCommit: (v) => onAmendOrder(order.id, { price: v }) }) : /* @__PURE__ */ jsx(CellText, { children: isMarket || !order.price ? "Market" : formatCurrency4(order.price) }) }),
|
|
13965
13889
|
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsxs(CellText, { $muted: true, children: [
|
|
13966
13890
|
filledPercent,
|
|
13967
13891
|
"%"
|
|
@@ -14005,7 +13929,7 @@ function PortfolioActivityPanel({
|
|
|
14005
13929
|
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(SideBadge, { $side: sideLabel(order.side), children: sideLabel(order.side) }) }),
|
|
14006
13930
|
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { $muted: true, children: prettyLabel(order.type) }) }),
|
|
14007
13931
|
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { children: formatNumber2(order.quantity) }) }),
|
|
14008
|
-
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { children: isMarket || !order.price ? "Market" :
|
|
13932
|
+
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { children: isMarket || !order.price ? "Market" : formatCurrency4(order.price) }) }),
|
|
14009
13933
|
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsxs(CellText, { $muted: true, children: [
|
|
14010
13934
|
filledPercent,
|
|
14011
13935
|
"%"
|
|
@@ -14032,9 +13956,9 @@ function PortfolioActivityPanel({
|
|
|
14032
13956
|
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { $primary: true, children: trade.tokenName }) }),
|
|
14033
13957
|
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(SideBadge, { $side: sideLabel(trade.side), children: sideLabel(trade.side) }) }),
|
|
14034
13958
|
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { children: formatNumber2(trade.quantity) }) }),
|
|
14035
|
-
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { children:
|
|
14036
|
-
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { children:
|
|
14037
|
-
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { $muted: true, children:
|
|
13959
|
+
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { children: formatCurrency4(trade.price) }) }),
|
|
13960
|
+
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { children: formatCurrency4(trade.price * trade.quantity) }) }),
|
|
13961
|
+
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { $muted: true, children: formatCurrency4(trade.fee) }) }),
|
|
14038
13962
|
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { $muted: true, children: formatTimestamp(trade.executedAt) }) })
|
|
14039
13963
|
] }, trade.tradeId))
|
|
14040
13964
|
] })
|
|
@@ -14056,7 +13980,7 @@ function PortfolioActivityPanel({
|
|
|
14056
13980
|
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(SideBadge, { $side: isDeposit ? "Buy" : "Sell", children: isDeposit ? "Deposit" : "Withdraw" }) }),
|
|
14057
13981
|
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsxs(CellText, { $color: isDeposit ? "#0ecb81" : "#f6465d", children: [
|
|
14058
13982
|
isDeposit ? "+" : "-",
|
|
14059
|
-
|
|
13983
|
+
formatCurrency4(t.amount)
|
|
14060
13984
|
] }) }),
|
|
14061
13985
|
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { $muted: true, children: formatAddress(t.address) }) }),
|
|
14062
13986
|
/* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(ActivityTag, { $color: statusMeta.color, $bg: statusMeta.bg, children: prettyLabel(t.status) }) }),
|
|
@@ -14616,451 +14540,104 @@ var CloseAllHeaderBtn = styled9.button`
|
|
|
14616
14540
|
border-color: rgba(230, 200, 126, 0.5);
|
|
14617
14541
|
}
|
|
14618
14542
|
`;
|
|
14619
|
-
var CloseAllOverlay = styled9.div`
|
|
14620
|
-
position: fixed;
|
|
14621
|
-
inset: 0;
|
|
14622
|
-
background: rgba(0, 0, 0, 0.6);
|
|
14623
|
-
display: flex;
|
|
14624
|
-
align-items: center;
|
|
14625
|
-
justify-content: center;
|
|
14626
|
-
z-index: 1000;
|
|
14627
|
-
`;
|
|
14628
|
-
var CloseAllModal = styled9.div`
|
|
14629
|
-
background: #1a1a1a;
|
|
14630
|
-
border: 1px solid rgba(255, 255, 255, 0.12);
|
|
14631
|
-
border-radius: 12px;
|
|
14632
|
-
padding: 1.5rem;
|
|
14633
|
-
max-width: 380px;
|
|
14634
|
-
width: 90%;
|
|
14635
|
-
position: relative;
|
|
14636
|
-
`;
|
|
14637
|
-
var CloseAllModalX = styled9.button`
|
|
14638
|
-
position: absolute;
|
|
14639
|
-
top: 0.75rem;
|
|
14640
|
-
right: 0.75rem;
|
|
14641
|
-
background: none;
|
|
14642
|
-
border: none;
|
|
14643
|
-
color: rgba(255, 255, 255, 0.4);
|
|
14644
|
-
font-size: 1.25rem;
|
|
14645
|
-
cursor: pointer;
|
|
14646
|
-
padding: 0.25rem;
|
|
14647
|
-
line-height: 1;
|
|
14648
|
-
transition: color 0.15s;
|
|
14649
|
-
|
|
14650
|
-
&:hover { color: #fff; }
|
|
14651
|
-
`;
|
|
14652
|
-
var CloseAllTitle = styled9.div`
|
|
14653
|
-
font-size: 1rem;
|
|
14654
|
-
font-weight: 600;
|
|
14655
|
-
color: #fff;
|
|
14656
|
-
margin-bottom: 0.5rem;
|
|
14657
|
-
`;
|
|
14658
|
-
var CloseAllDesc = styled9.div`
|
|
14659
|
-
font-size: 0.8rem;
|
|
14660
|
-
color: rgba(255, 255, 255, 0.5);
|
|
14661
|
-
line-height: 1.45;
|
|
14662
|
-
margin-bottom: 1rem;
|
|
14663
|
-
`;
|
|
14664
|
-
var CloseAllOption = styled9.div`
|
|
14665
|
-
display: flex;
|
|
14666
|
-
align-items: center;
|
|
14667
|
-
gap: 0.6rem;
|
|
14668
|
-
padding: 0.6rem 0.75rem;
|
|
14669
|
-
border-radius: 8px;
|
|
14670
|
-
cursor: pointer;
|
|
14671
|
-
font-size: 0.85rem;
|
|
14672
|
-
color: rgba(255, 255, 255, 0.85);
|
|
14673
|
-
transition: background 0.15s;
|
|
14674
|
-
margin-bottom: 0.35rem;
|
|
14675
|
-
|
|
14676
|
-
&:hover { background: rgba(255, 255, 255, 0.04); }
|
|
14677
|
-
`;
|
|
14678
|
-
var CloseAllRadio = styled9.div`
|
|
14679
|
-
width: 16px;
|
|
14680
|
-
height: 16px;
|
|
14681
|
-
border-radius: 50%;
|
|
14682
|
-
border: 2px solid ${(p) => p.$selected ? "#f6465d" : "rgba(255, 255, 255, 0.2)"};
|
|
14683
|
-
position: relative;
|
|
14684
|
-
flex-shrink: 0;
|
|
14685
|
-
transition: border-color 0.15s;
|
|
14686
|
-
|
|
14687
|
-
&::after {
|
|
14688
|
-
content: '';
|
|
14689
|
-
position: absolute;
|
|
14690
|
-
top: 50%;
|
|
14691
|
-
left: 50%;
|
|
14692
|
-
transform: translate(-50%, -50%);
|
|
14693
|
-
width: 8px;
|
|
14694
|
-
height: 8px;
|
|
14695
|
-
border-radius: 50%;
|
|
14696
|
-
background: ${(p) => p.$selected ? "#f6465d" : "transparent"};
|
|
14697
|
-
transition: background 0.15s;
|
|
14698
|
-
}
|
|
14699
|
-
`;
|
|
14700
|
-
var CloseAllConfirmBtn = styled9.button`
|
|
14701
|
-
width: 100%;
|
|
14702
|
-
margin-top: 0.75rem;
|
|
14703
|
-
background: rgba(246, 70, 93, 0.15);
|
|
14704
|
-
border: 1px solid rgba(246, 70, 93, 0.4);
|
|
14705
|
-
border-radius: 8px;
|
|
14706
|
-
padding: 0.7rem 1rem;
|
|
14707
|
-
font-size: 0.85rem;
|
|
14708
|
-
font-weight: 600;
|
|
14709
|
-
color: #f6465d;
|
|
14710
|
-
cursor: pointer;
|
|
14711
|
-
transition: all 0.15s ease;
|
|
14712
|
-
|
|
14713
|
-
&:hover {
|
|
14714
|
-
background: rgba(246, 70, 93, 0.25);
|
|
14715
|
-
}
|
|
14716
|
-
`;
|
|
14717
|
-
function NewsOrdersSection({ newsItems, newsConnectionStatus, activityData }) {
|
|
14718
|
-
return /* @__PURE__ */ jsxs(Row2, { children: [
|
|
14719
|
-
/* @__PURE__ */ jsx(
|
|
14720
|
-
PropertyNewsUpdates,
|
|
14721
|
-
{
|
|
14722
|
-
items: newsItems,
|
|
14723
|
-
heading: "Property News & Updates",
|
|
14724
|
-
connectionStatus: newsConnectionStatus
|
|
14725
|
-
}
|
|
14726
|
-
),
|
|
14727
|
-
/* @__PURE__ */ jsx(ActivityWrapper, { children: /* @__PURE__ */ jsx(
|
|
14728
|
-
PortfolioActivityPanel,
|
|
14729
|
-
{
|
|
14730
|
-
positions: activityData?.positions,
|
|
14731
|
-
showPositionsTab: true,
|
|
14732
|
-
onPositionClick: activityData?.onPositionClick,
|
|
14733
|
-
offeringOrders: activityData?.offeringOrders,
|
|
14734
|
-
openOrders: activityData?.openOrders,
|
|
14735
|
-
orderHistory: activityData?.orderHistory,
|
|
14736
|
-
tradeHistory: activityData?.tradeHistory,
|
|
14737
|
-
transfers: activityData?.transfers,
|
|
14738
|
-
onCancelOrder: activityData?.onCancelOrder,
|
|
14739
|
-
cancellingOrderId: activityData?.cancellingOrderId,
|
|
14740
|
-
defaultTab: activityData?.defaultTab ?? "positions",
|
|
14741
|
-
pageSize: activityData?.pageSize ?? 6
|
|
14742
|
-
}
|
|
14743
|
-
) })
|
|
14744
|
-
] });
|
|
14745
|
-
}
|
|
14746
|
-
var Row2 = styled9.div`
|
|
14747
|
-
display: grid;
|
|
14748
|
-
grid-template-columns: 1fr 2fr;
|
|
14749
|
-
gap: 1.5rem;
|
|
14750
|
-
margin-top: 1.5rem;
|
|
14751
|
-
max-width: 1800px;
|
|
14752
|
-
margin-left: auto;
|
|
14753
|
-
margin-right: auto;
|
|
14754
|
-
overflow: hidden;
|
|
14755
|
-
@media (max-width: 768px) {
|
|
14756
|
-
grid-template-columns: 1fr;
|
|
14757
|
-
gap: 1rem;
|
|
14758
|
-
}
|
|
14759
|
-
& > * {
|
|
14760
|
-
min-width: 0;
|
|
14761
|
-
overflow: hidden;
|
|
14762
|
-
}
|
|
14763
|
-
`;
|
|
14764
|
-
var ActivityWrapper = styled9.div`
|
|
14765
|
-
background-color: var(--color-card-darker, #111);
|
|
14766
|
-
border-radius: 8px;
|
|
14767
|
-
padding: 1.5rem;
|
|
14768
|
-
display: flex;
|
|
14769
|
-
flex-direction: column;
|
|
14770
|
-
box-shadow: 0 4px 8px rgba(0,0,0,0.2);
|
|
14771
|
-
border: 1px solid var(--color-border);
|
|
14772
|
-
min-height: 280px;
|
|
14773
|
-
overflow: hidden;
|
|
14774
|
-
@media (max-width: 768px) {
|
|
14775
|
-
padding: 1rem;
|
|
14776
|
-
min-height: auto;
|
|
14777
|
-
}
|
|
14778
|
-
`;
|
|
14779
|
-
function OrderConfirmationModal({
|
|
14780
|
-
open,
|
|
14781
|
-
onClose,
|
|
14782
|
-
hasInsufficientFunds,
|
|
14783
|
-
tokenQuantity,
|
|
14784
|
-
tokenPrice,
|
|
14785
|
-
propertyName,
|
|
14786
|
-
tokenSymbol,
|
|
14787
|
-
estExposure,
|
|
14788
|
-
orderTotal,
|
|
14789
|
-
availableBalance,
|
|
14790
|
-
onConfirm,
|
|
14791
|
-
isPlacing = false,
|
|
14792
|
-
placingLabel = "Placing order\u2026"
|
|
14793
|
-
}) {
|
|
14794
|
-
if (!open) return null;
|
|
14795
|
-
const handleOverlayClose = () => {
|
|
14796
|
-
if (isPlacing) return;
|
|
14797
|
-
onClose();
|
|
14798
|
-
};
|
|
14799
|
-
return /* @__PURE__ */ jsx(Overlay3, { onClick: handleOverlayClose, children: /* @__PURE__ */ jsxs(Modal, { onClick: (e) => e.stopPropagation(), children: [
|
|
14800
|
-
/* @__PURE__ */ jsx(ModalHeader, { children: /* @__PURE__ */ jsxs("h3", { children: [
|
|
14801
|
-
"Confirm Order",
|
|
14802
|
-
/* @__PURE__ */ jsx(Badge2, { children: "Subscribe" })
|
|
14803
|
-
] }) }),
|
|
14804
|
-
/* @__PURE__ */ jsx(ModalBody, { children: [
|
|
14805
|
-
{ label: "Order Type", value: "Primary Offering" },
|
|
14806
|
-
{ label: "Property", value: propertyName },
|
|
14807
|
-
{ label: "Units", value: `${tokenQuantity.toLocaleString()} ${tokenSymbol}`, highlight: true },
|
|
14808
|
-
{
|
|
14809
|
-
label: "Unit Price",
|
|
14810
|
-
value: `$${tokenPrice.toLocaleString(void 0, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}`
|
|
14811
|
-
},
|
|
14812
|
-
{ label: "Property Exposure", value: `${estExposure}%` },
|
|
14813
|
-
{ label: "Total Investment", value: `$${orderTotal.toLocaleString()}`, highlight: true }
|
|
14814
|
-
].map((row, index, arr) => /* @__PURE__ */ jsxs(ModalRow, { "data-divider": index < arr.length - 1, children: [
|
|
14815
|
-
/* @__PURE__ */ jsx("span", { children: row.label }),
|
|
14816
|
-
/* @__PURE__ */ jsx("strong", { "data-highlight": row.highlight, children: row.value })
|
|
14817
|
-
] }, row.label)) }),
|
|
14818
|
-
hasInsufficientFunds ? /* @__PURE__ */ jsxs(Warning, { children: [
|
|
14819
|
-
/* @__PURE__ */ jsx("p", { children: "\u26A0 Insufficient Balance" }),
|
|
14820
|
-
/* @__PURE__ */ jsxs("small", { children: [
|
|
14821
|
-
"You need ",
|
|
14822
|
-
/* @__PURE__ */ jsxs("strong", { children: [
|
|
14823
|
-
"$",
|
|
14824
|
-
orderTotal.toLocaleString()
|
|
14825
|
-
] }),
|
|
14826
|
-
" but only have",
|
|
14827
|
-
" ",
|
|
14828
|
-
/* @__PURE__ */ jsxs("strong", { children: [
|
|
14829
|
-
"$",
|
|
14830
|
-
availableBalance.toLocaleString()
|
|
14831
|
-
] }),
|
|
14832
|
-
" available."
|
|
14833
|
-
] })
|
|
14834
|
-
] }) : /* @__PURE__ */ jsxs(Summary, { children: [
|
|
14835
|
-
"Your order for ",
|
|
14836
|
-
/* @__PURE__ */ jsxs("strong", { children: [
|
|
14837
|
-
tokenQuantity.toLocaleString(),
|
|
14838
|
-
" ",
|
|
14839
|
-
tokenSymbol,
|
|
14840
|
-
" units"
|
|
14841
|
-
] }),
|
|
14842
|
-
" in the",
|
|
14843
|
-
" ",
|
|
14844
|
-
/* @__PURE__ */ jsx("strong", { children: propertyName }),
|
|
14845
|
-
" Primary Offering will be placed for ",
|
|
14846
|
-
/* @__PURE__ */ jsxs("strong", { children: [
|
|
14847
|
-
"$",
|
|
14848
|
-
tokenPrice.toFixed(2),
|
|
14849
|
-
"/unit"
|
|
14850
|
-
] }),
|
|
14851
|
-
"."
|
|
14852
|
-
] }),
|
|
14853
|
-
/* @__PURE__ */ jsxs(ButtonRow2, { children: [
|
|
14854
|
-
/* @__PURE__ */ jsx(
|
|
14855
|
-
"button",
|
|
14856
|
-
{
|
|
14857
|
-
type: "button",
|
|
14858
|
-
onClick: onClose,
|
|
14859
|
-
className: "secondary",
|
|
14860
|
-
disabled: isPlacing,
|
|
14861
|
-
children: "Cancel"
|
|
14862
|
-
}
|
|
14863
|
-
),
|
|
14864
|
-
!hasInsufficientFunds && /* @__PURE__ */ jsx(
|
|
14865
|
-
"button",
|
|
14866
|
-
{
|
|
14867
|
-
type: "button",
|
|
14868
|
-
onClick: onConfirm,
|
|
14869
|
-
className: "primary",
|
|
14870
|
-
disabled: isPlacing,
|
|
14871
|
-
children: isPlacing ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
14872
|
-
/* @__PURE__ */ jsx(Spinner, { "aria-hidden": true }),
|
|
14873
|
-
/* @__PURE__ */ jsx("span", { children: placingLabel })
|
|
14874
|
-
] }) : "Place Order"
|
|
14875
|
-
}
|
|
14876
|
-
)
|
|
14877
|
-
] })
|
|
14878
|
-
] }) });
|
|
14879
|
-
}
|
|
14880
|
-
var Overlay3 = styled9.div`
|
|
14881
|
-
position: fixed;
|
|
14882
|
-
top: 0;
|
|
14883
|
-
left: 0;
|
|
14884
|
-
right: 0;
|
|
14885
|
-
bottom: 0;
|
|
14886
|
-
background-color: rgba(0,0,0,0.7);
|
|
14543
|
+
var CloseAllOverlay = styled9.div`
|
|
14544
|
+
position: fixed;
|
|
14545
|
+
inset: 0;
|
|
14546
|
+
background: rgba(0, 0, 0, 0.6);
|
|
14887
14547
|
display: flex;
|
|
14888
14548
|
align-items: center;
|
|
14889
14549
|
justify-content: center;
|
|
14890
|
-
z-index:
|
|
14891
|
-
backdrop-filter: blur(4px);
|
|
14550
|
+
z-index: 1000;
|
|
14892
14551
|
`;
|
|
14893
|
-
var
|
|
14894
|
-
background:
|
|
14895
|
-
border: 1px solid rgba(255,255,255,0.
|
|
14896
|
-
border-radius:
|
|
14897
|
-
padding:
|
|
14898
|
-
max-width:
|
|
14552
|
+
var CloseAllModal = styled9.div`
|
|
14553
|
+
background: #1a1a1a;
|
|
14554
|
+
border: 1px solid rgba(255, 255, 255, 0.12);
|
|
14555
|
+
border-radius: 12px;
|
|
14556
|
+
padding: 1.5rem;
|
|
14557
|
+
max-width: 380px;
|
|
14899
14558
|
width: 90%;
|
|
14900
|
-
|
|
14559
|
+
position: relative;
|
|
14901
14560
|
`;
|
|
14902
|
-
var
|
|
14903
|
-
|
|
14904
|
-
|
|
14905
|
-
|
|
14906
|
-
|
|
14907
|
-
border
|
|
14908
|
-
|
|
14909
|
-
|
|
14910
|
-
|
|
14911
|
-
|
|
14912
|
-
|
|
14913
|
-
|
|
14914
|
-
|
|
14915
|
-
|
|
14916
|
-
}
|
|
14561
|
+
var CloseAllModalX = styled9.button`
|
|
14562
|
+
position: absolute;
|
|
14563
|
+
top: 0.75rem;
|
|
14564
|
+
right: 0.75rem;
|
|
14565
|
+
background: none;
|
|
14566
|
+
border: none;
|
|
14567
|
+
color: rgba(255, 255, 255, 0.4);
|
|
14568
|
+
font-size: 1.25rem;
|
|
14569
|
+
cursor: pointer;
|
|
14570
|
+
padding: 0.25rem;
|
|
14571
|
+
line-height: 1;
|
|
14572
|
+
transition: color 0.15s;
|
|
14573
|
+
|
|
14574
|
+
&:hover { color: #fff; }
|
|
14917
14575
|
`;
|
|
14918
|
-
var
|
|
14919
|
-
|
|
14920
|
-
border-radius: 6px;
|
|
14921
|
-
font-size: 0.75rem;
|
|
14576
|
+
var CloseAllTitle = styled9.div`
|
|
14577
|
+
font-size: 1rem;
|
|
14922
14578
|
font-weight: 600;
|
|
14923
|
-
|
|
14924
|
-
|
|
14925
|
-
background: linear-gradient(135deg, rgba(212,175,55,0.2) 0%, rgba(212,175,55,0.1) 100%);
|
|
14926
|
-
color: #D4AF37;
|
|
14927
|
-
border: 1px solid rgba(212,175,55,0.3);
|
|
14579
|
+
color: #fff;
|
|
14580
|
+
margin-bottom: 0.5rem;
|
|
14928
14581
|
`;
|
|
14929
|
-
var
|
|
14930
|
-
|
|
14931
|
-
|
|
14932
|
-
|
|
14582
|
+
var CloseAllDesc = styled9.div`
|
|
14583
|
+
font-size: 0.8rem;
|
|
14584
|
+
color: rgba(255, 255, 255, 0.5);
|
|
14585
|
+
line-height: 1.45;
|
|
14586
|
+
margin-bottom: 1rem;
|
|
14933
14587
|
`;
|
|
14934
|
-
var
|
|
14588
|
+
var CloseAllOption = styled9.div`
|
|
14935
14589
|
display: flex;
|
|
14936
|
-
justify-content: space-between;
|
|
14937
14590
|
align-items: center;
|
|
14938
|
-
|
|
14939
|
-
|
|
14940
|
-
&[data-divider='false'] {
|
|
14941
|
-
border-bottom: none;
|
|
14942
|
-
}
|
|
14943
|
-
span {
|
|
14944
|
-
color: rgba(255,255,255,0.6);
|
|
14945
|
-
font-size: 0.9rem;
|
|
14946
|
-
}
|
|
14947
|
-
strong {
|
|
14948
|
-
color: #fff;
|
|
14949
|
-
font-weight: 500;
|
|
14950
|
-
font-size: 0.95rem;
|
|
14951
|
-
}
|
|
14952
|
-
strong[data-highlight='true'] {
|
|
14953
|
-
color: #D4AF37;
|
|
14954
|
-
font-weight: 600;
|
|
14955
|
-
}
|
|
14956
|
-
`;
|
|
14957
|
-
var Warning = styled9.div`
|
|
14958
|
-
background: rgba(246,70,93,0.1);
|
|
14959
|
-
border: 1px solid rgba(246,70,93,0.3);
|
|
14960
|
-
border-radius: 8px;
|
|
14961
|
-
padding: 1rem;
|
|
14962
|
-
margin-bottom: 1.5rem;
|
|
14963
|
-
p {
|
|
14964
|
-
margin: 0;
|
|
14965
|
-
color: #f6465d;
|
|
14966
|
-
font-size: 0.9rem;
|
|
14967
|
-
font-weight: 600;
|
|
14968
|
-
}
|
|
14969
|
-
small {
|
|
14970
|
-
display: block;
|
|
14971
|
-
margin-top: 0.5rem;
|
|
14972
|
-
color: rgba(255,255,255,0.7);
|
|
14973
|
-
font-size: 0.85rem;
|
|
14974
|
-
line-height: 1.5;
|
|
14975
|
-
}
|
|
14976
|
-
`;
|
|
14977
|
-
var Summary = styled9.div`
|
|
14978
|
-
background: rgba(255,255,255,0.03);
|
|
14979
|
-
border: 1px solid rgba(255,255,255,0.08);
|
|
14591
|
+
gap: 0.6rem;
|
|
14592
|
+
padding: 0.6rem 0.75rem;
|
|
14980
14593
|
border-radius: 8px;
|
|
14981
|
-
|
|
14982
|
-
|
|
14983
|
-
color: rgba(255,255,255,0.
|
|
14984
|
-
|
|
14985
|
-
|
|
14986
|
-
|
|
14987
|
-
|
|
14988
|
-
to { transform: rotate(360deg); }
|
|
14594
|
+
cursor: pointer;
|
|
14595
|
+
font-size: 0.85rem;
|
|
14596
|
+
color: rgba(255, 255, 255, 0.85);
|
|
14597
|
+
transition: background 0.15s;
|
|
14598
|
+
margin-bottom: 0.35rem;
|
|
14599
|
+
|
|
14600
|
+
&:hover { background: rgba(255, 255, 255, 0.04); }
|
|
14989
14601
|
`;
|
|
14990
|
-
var
|
|
14991
|
-
|
|
14992
|
-
|
|
14993
|
-
height: 14px;
|
|
14602
|
+
var CloseAllRadio = styled9.div`
|
|
14603
|
+
width: 16px;
|
|
14604
|
+
height: 16px;
|
|
14994
14605
|
border-radius: 50%;
|
|
14995
|
-
border: 2px solid rgba(255, 255, 255, 0.
|
|
14996
|
-
|
|
14997
|
-
|
|
14998
|
-
|
|
14999
|
-
|
|
15000
|
-
|
|
15001
|
-
|
|
15002
|
-
|
|
15003
|
-
|
|
15004
|
-
|
|
15005
|
-
|
|
15006
|
-
|
|
15007
|
-
|
|
15008
|
-
|
|
15009
|
-
|
|
15010
|
-
|
|
15011
|
-
display: inline-flex;
|
|
15012
|
-
align-items: center;
|
|
15013
|
-
justify-content: center;
|
|
15014
|
-
}
|
|
15015
|
-
button:disabled {
|
|
15016
|
-
cursor: not-allowed;
|
|
15017
|
-
opacity: 0.75;
|
|
15018
|
-
}
|
|
15019
|
-
.secondary {
|
|
15020
|
-
background: rgba(255,255,255,0.1);
|
|
15021
|
-
color: rgba(255,255,255,0.8);
|
|
15022
|
-
border: 1px solid rgba(255,255,255,0.2);
|
|
15023
|
-
}
|
|
15024
|
-
.primary {
|
|
15025
|
-
background: linear-gradient(135deg, #0ecb81 0%, #0ba968 100%);
|
|
15026
|
-
color: #fff;
|
|
15027
|
-
border: none;
|
|
15028
|
-
box-shadow: 0 4px 12px rgba(14,203,129,0.3);
|
|
14606
|
+
border: 2px solid ${(p) => p.$selected ? "#f6465d" : "rgba(255, 255, 255, 0.2)"};
|
|
14607
|
+
position: relative;
|
|
14608
|
+
flex-shrink: 0;
|
|
14609
|
+
transition: border-color 0.15s;
|
|
14610
|
+
|
|
14611
|
+
&::after {
|
|
14612
|
+
content: '';
|
|
14613
|
+
position: absolute;
|
|
14614
|
+
top: 50%;
|
|
14615
|
+
left: 50%;
|
|
14616
|
+
transform: translate(-50%, -50%);
|
|
14617
|
+
width: 8px;
|
|
14618
|
+
height: 8px;
|
|
14619
|
+
border-radius: 50%;
|
|
14620
|
+
background: ${(p) => p.$selected ? "#f6465d" : "transparent"};
|
|
14621
|
+
transition: background 0.15s;
|
|
15029
14622
|
}
|
|
15030
14623
|
`;
|
|
14624
|
+
var CloseAllConfirmBtn = styled9.button`
|
|
14625
|
+
width: 100%;
|
|
14626
|
+
margin-top: 0.75rem;
|
|
14627
|
+
background: rgba(246, 70, 93, 0.15);
|
|
14628
|
+
border: 1px solid rgba(246, 70, 93, 0.4);
|
|
14629
|
+
border-radius: 8px;
|
|
14630
|
+
padding: 0.7rem 1rem;
|
|
14631
|
+
font-size: 0.85rem;
|
|
14632
|
+
font-weight: 600;
|
|
14633
|
+
color: #f6465d;
|
|
14634
|
+
cursor: pointer;
|
|
14635
|
+
transition: all 0.15s ease;
|
|
15031
14636
|
|
|
15032
|
-
|
|
15033
|
-
|
|
15034
|
-
|
|
15035
|
-
|
|
15036
|
-
{ src: "/properties/Musgrave/LivingRoom_Musgrave_Loafmarkets.jpg", title: "Living Room", subtitle: "Spacious living" },
|
|
15037
|
-
{ src: "/properties/Musgrave/Kitchen_Musgrave_Loafmarkets.jpg", title: "Kitchen", subtitle: "Modern design" },
|
|
15038
|
-
{ src: "/properties/Musgrave/DiningRoom_Musgrave_Loafmarkets.jpg", title: "Dining Room", subtitle: "Elegant dining" },
|
|
15039
|
-
{ src: "/properties/Musgrave/BreakfastRoom_Musgrave_Loafmarkets.jpg", title: "Breakfast Room", subtitle: "Morning light" },
|
|
15040
|
-
{ src: "/properties/Musgrave/MainBedroom_Musgrave_Loafmarkets.jpg", title: "Main Bedroom", subtitle: "Master suite" },
|
|
15041
|
-
{ src: "/properties/Musgrave/GuestBedroom_Musgrave_Loafmarkets.jpg", title: "Guest Bedroom", subtitle: "Comfortable stay" },
|
|
15042
|
-
{ src: "/properties/Musgrave/Bathroom_Musgrave_Loafmarkets.jpg", title: "Bathroom", subtitle: "Luxury finishes" },
|
|
15043
|
-
{ src: "/properties/Musgrave/PoolArea_Musgrave_Loafmarkets.jpg", title: "Pool Area", subtitle: "Resort living" },
|
|
15044
|
-
{ src: "/properties/Musgrave/GardenView_Musgrave_Loafmarkets.jpg", title: "Garden View", subtitle: "Lush gardens" },
|
|
15045
|
-
{ src: "/properties/Musgrave/SideGarden_Musgrave_Loafmarkets.jpg", title: "Side Garden", subtitle: "Private retreat" },
|
|
15046
|
-
{ src: "/properties/Musgrave/AerialView_Musgrave_Loafmarkets.jpg", title: "Aerial View", subtitle: "Property overview" },
|
|
15047
|
-
{ src: "/properties/Musgrave/AerialLocation_Musgrave_Loafmarkets.jpg", title: "Aerial Location", subtitle: "Neighborhood" },
|
|
15048
|
-
{ src: "/properties/Musgrave/Floorplan_Musgrave_Loafmarkets.jpg", title: "Floorplan", subtitle: "Layout" }
|
|
15049
|
-
];
|
|
15050
|
-
var galleryCategories = [
|
|
15051
|
-
{ name: "Exterior", startIndex: 0 },
|
|
15052
|
-
{ name: "Living", startIndex: 2 },
|
|
15053
|
-
{ name: "Bedrooms", startIndex: 6 },
|
|
15054
|
-
{ name: "Outdoor", startIndex: 9 },
|
|
15055
|
-
{ name: "Aerial", startIndex: 12 },
|
|
15056
|
-
{ name: "Floorplan", startIndex: 14 }
|
|
15057
|
-
];
|
|
15058
|
-
var STATUS_COLOR2 = {
|
|
15059
|
-
PENDING: "#D4AF37",
|
|
15060
|
-
LIVE: "#0ecb81",
|
|
15061
|
-
CLOSED: "#848e9c",
|
|
15062
|
-
CANCELLED: "#f6465d"
|
|
15063
|
-
};
|
|
14637
|
+
&:hover {
|
|
14638
|
+
background: rgba(246, 70, 93, 0.25);
|
|
14639
|
+
}
|
|
14640
|
+
`;
|
|
15064
14641
|
function PropertyBuy({
|
|
15065
14642
|
propertyName = "Loaf Property",
|
|
15066
14643
|
propertyLocation: propertyLocationLabel = "Sydney, NSW",
|
|
@@ -15107,7 +14684,6 @@ function PropertyBuy({
|
|
|
15107
14684
|
const offeringValuation = saleData?.offeringValuation ?? tokenPrice * supplyToSell;
|
|
15108
14685
|
const ipoStatus = saleData?.status ?? "PENDING";
|
|
15109
14686
|
const ipoStarted = ipoStatus === "LIVE" || isPrivateClient && ipoStatus === "PENDING";
|
|
15110
|
-
const ipoEnded = ipoStatus === "CLOSED" || ipoStatus === "CANCELLED";
|
|
15111
14687
|
const statusLabel = ipoStatus;
|
|
15112
14688
|
const statusColor = STATUS_COLOR2[ipoStatus] ?? "#D4AF37";
|
|
15113
14689
|
const displayStatusLabel = isPrivateClient && ipoStatus !== "LIVE" ? "Private Client Access" : statusLabel;
|
|
@@ -15231,17 +14807,23 @@ function PropertyBuy({
|
|
|
15231
14807
|
isPrivateClient
|
|
15232
14808
|
}
|
|
15233
14809
|
),
|
|
15234
|
-
/* @__PURE__ */ jsx(
|
|
15235
|
-
|
|
14810
|
+
/* @__PURE__ */ jsx(ActivityWrapper, { children: /* @__PURE__ */ jsx(
|
|
14811
|
+
PortfolioActivityPanel,
|
|
15236
14812
|
{
|
|
15237
|
-
|
|
15238
|
-
|
|
15239
|
-
|
|
15240
|
-
|
|
15241
|
-
|
|
15242
|
-
|
|
14813
|
+
positions: portfolioActivity?.positions,
|
|
14814
|
+
showPositionsTab: true,
|
|
14815
|
+
onPositionClick: portfolioActivity?.onPositionClick,
|
|
14816
|
+
offeringOrders: portfolioActivity?.offeringOrders,
|
|
14817
|
+
openOrders: portfolioActivity?.openOrders,
|
|
14818
|
+
orderHistory: portfolioActivity?.orderHistory,
|
|
14819
|
+
tradeHistory: portfolioActivity?.tradeHistory,
|
|
14820
|
+
transfers: portfolioActivity?.transfers,
|
|
14821
|
+
onCancelOrder: portfolioActivity?.onCancelOrder,
|
|
14822
|
+
cancellingOrderId: portfolioActivity?.cancellingOrderId,
|
|
14823
|
+
defaultTab: "subscriptions",
|
|
14824
|
+
pageSize: 6
|
|
15243
14825
|
}
|
|
15244
|
-
),
|
|
14826
|
+
) }),
|
|
15245
14827
|
/* @__PURE__ */ jsxs("div", { style: { display: "flex", flexDirection: "column" }, children: [
|
|
15246
14828
|
/* @__PURE__ */ jsx(
|
|
15247
14829
|
OrderPanel,
|
|
@@ -15281,22 +14863,33 @@ function PropertyBuy({
|
|
|
15281
14863
|
purchaseError && /* @__PURE__ */ 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 })
|
|
15282
14864
|
] })
|
|
15283
14865
|
] }),
|
|
15284
|
-
/* @__PURE__ */ jsxs(
|
|
14866
|
+
/* @__PURE__ */ jsxs(NewsVideoRow, { children: [
|
|
15285
14867
|
/* @__PURE__ */ jsx(
|
|
15286
|
-
|
|
14868
|
+
PropertyNewsUpdates,
|
|
15287
14869
|
{
|
|
15288
|
-
|
|
15289
|
-
|
|
15290
|
-
|
|
15291
|
-
|
|
14870
|
+
items: newsItems,
|
|
14871
|
+
variant: "home",
|
|
14872
|
+
heading: "Property News & Headlines",
|
|
14873
|
+
connectionStatus: newsConnectionStatus,
|
|
14874
|
+
highlightFirst: false,
|
|
14875
|
+
style: {
|
|
14876
|
+
maxWidth: "none",
|
|
14877
|
+
background: "#111111",
|
|
14878
|
+
borderRadius: "8px",
|
|
14879
|
+
padding: "1.25rem 1.5rem",
|
|
14880
|
+
boxShadow: "0 4px 12px rgba(0,0,0,0.1)",
|
|
14881
|
+
border: "none",
|
|
14882
|
+
height: "100%",
|
|
14883
|
+
overflow: "hidden"
|
|
14884
|
+
}
|
|
15292
14885
|
}
|
|
15293
14886
|
),
|
|
15294
14887
|
/* @__PURE__ */ jsx(
|
|
15295
|
-
|
|
14888
|
+
PropertyTour,
|
|
15296
14889
|
{
|
|
15297
|
-
|
|
15298
|
-
|
|
15299
|
-
|
|
14890
|
+
title: propertyName,
|
|
14891
|
+
src: "/properties/Musgrave/musgrave.mp4",
|
|
14892
|
+
className: "h-full !max-w-none"
|
|
15300
14893
|
}
|
|
15301
14894
|
)
|
|
15302
14895
|
] }),
|
|
@@ -15389,6 +14982,41 @@ var HeroGrid = styled9.div`
|
|
|
15389
14982
|
gap: 0.5rem;
|
|
15390
14983
|
}
|
|
15391
14984
|
`;
|
|
14985
|
+
var ActivityWrapper = styled9.div`
|
|
14986
|
+
background-color: var(--color-card-darker, #111);
|
|
14987
|
+
border-radius: 8px;
|
|
14988
|
+
padding: 1.5rem;
|
|
14989
|
+
display: flex;
|
|
14990
|
+
flex-direction: column;
|
|
14991
|
+
box-shadow: 0 4px 8px rgba(0,0,0,0.2);
|
|
14992
|
+
border: 1px solid var(--color-border);
|
|
14993
|
+
min-height: 280px;
|
|
14994
|
+
overflow: hidden;
|
|
14995
|
+
@media (max-width: 768px) {
|
|
14996
|
+
padding: 1rem;
|
|
14997
|
+
min-height: auto;
|
|
14998
|
+
}
|
|
14999
|
+
`;
|
|
15000
|
+
var NewsVideoRow = styled9.div`
|
|
15001
|
+
display: grid;
|
|
15002
|
+
grid-template-columns: minmax(380px, 520px) minmax(0, 1fr);
|
|
15003
|
+
gap: 1.5rem;
|
|
15004
|
+
margin-top: 1.5rem;
|
|
15005
|
+
max-width: 1800px;
|
|
15006
|
+
margin-left: auto;
|
|
15007
|
+
margin-right: auto;
|
|
15008
|
+
height: 700px;
|
|
15009
|
+
overflow: hidden;
|
|
15010
|
+
@media (max-width: 1024px) {
|
|
15011
|
+
grid-template-columns: 1fr;
|
|
15012
|
+
height: auto;
|
|
15013
|
+
gap: 1rem;
|
|
15014
|
+
}
|
|
15015
|
+
& > * {
|
|
15016
|
+
min-width: 0;
|
|
15017
|
+
overflow: hidden;
|
|
15018
|
+
}
|
|
15019
|
+
`;
|
|
15392
15020
|
var PaymentOption = styled9.div`
|
|
15393
15021
|
display: flex;
|
|
15394
15022
|
align-items: center;
|
|
@@ -16378,7 +16006,7 @@ function PropertyValuation({
|
|
|
16378
16006
|
/* @__PURE__ */ jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "0.5rem" }, children: [
|
|
16379
16007
|
/* @__PURE__ */ jsxs(PricingModelDetail, { children: [
|
|
16380
16008
|
/* @__PURE__ */ jsx(PropertyDetailLabel, { children: "Last Price" }),
|
|
16381
|
-
/* @__PURE__ */ jsx(PricingDetailValue, { children:
|
|
16009
|
+
/* @__PURE__ */ jsx(PricingDetailValue, { children: formatCurrency5(lastPrice) })
|
|
16382
16010
|
] }),
|
|
16383
16011
|
/* @__PURE__ */ jsxs(PricingModelDetail, { children: [
|
|
16384
16012
|
/* @__PURE__ */ jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center", width: "100%" }, children: [
|
|
@@ -16389,11 +16017,11 @@ function PropertyValuation({
|
|
|
16389
16017
|
] })
|
|
16390
16018
|
] }),
|
|
16391
16019
|
/* @__PURE__ */ jsxs(PricingDetailValue, { style: { color: "var(--color-accent)", fontWeight: "bold" }, children: [
|
|
16392
|
-
|
|
16020
|
+
formatCurrency5(fairValue),
|
|
16393
16021
|
" ",
|
|
16394
16022
|
/* @__PURE__ */ jsxs("span", { style: { fontSize: "0.85em", fontWeight: "normal", opacity: 0.8 }, children: [
|
|
16395
16023
|
"(",
|
|
16396
|
-
|
|
16024
|
+
formatCurrency5(fairValue * tokensOutstanding, { maximumFractionDigits: 0 }),
|
|
16397
16025
|
")"
|
|
16398
16026
|
] })
|
|
16399
16027
|
] })
|
|
@@ -16410,7 +16038,7 @@ function PropertyValuation({
|
|
|
16410
16038
|
/* @__PURE__ */ jsx(GaugeIndicator, { type: "fairValue", position: 50 }),
|
|
16411
16039
|
/* @__PURE__ */ jsxs(GaugePriceTag, { position: gaugePosition, children: [
|
|
16412
16040
|
/* @__PURE__ */ jsx("span", { children: "Last Price" }),
|
|
16413
|
-
/* @__PURE__ */ jsx("span", { children:
|
|
16041
|
+
/* @__PURE__ */ jsx("span", { children: formatCurrency5(lastPrice) })
|
|
16414
16042
|
] }),
|
|
16415
16043
|
/* @__PURE__ */ jsx(GaugeIndicator, { type: "lastPrice", position: gaugePosition })
|
|
16416
16044
|
] }),
|
|
@@ -16418,7 +16046,7 @@ function PropertyValuation({
|
|
|
16418
16046
|
/* @__PURE__ */ jsx(ValuationItem, { children: /* @__PURE__ */ jsxs(ValuationValue, { style: { color: "#4CAF50" }, children: [
|
|
16419
16047
|
/* @__PURE__ */ jsxs("span", { children: [
|
|
16420
16048
|
"< ",
|
|
16421
|
-
|
|
16049
|
+
formatCurrency5(undervaluedThreshold)
|
|
16422
16050
|
] }),
|
|
16423
16051
|
/* @__PURE__ */ jsxs("span", { className: "valuation-amount-span", style: { fontSize: "0.8rem", fontWeight: "normal" }, children: [
|
|
16424
16052
|
"(",
|
|
@@ -16427,7 +16055,7 @@ function PropertyValuation({
|
|
|
16427
16055
|
] })
|
|
16428
16056
|
] }) }),
|
|
16429
16057
|
/* @__PURE__ */ jsx(ValuationItem, { children: /* @__PURE__ */ jsxs(ValuationValue, { style: { color: "var(--color-accent)" }, children: [
|
|
16430
|
-
/* @__PURE__ */ jsx("span", { children:
|
|
16058
|
+
/* @__PURE__ */ jsx("span", { children: formatCurrency5(fairValue) }),
|
|
16431
16059
|
/* @__PURE__ */ jsxs("span", { className: "valuation-amount-span", style: { fontSize: "0.8rem", fontWeight: "normal" }, children: [
|
|
16432
16060
|
"(",
|
|
16433
16061
|
formatMillions(fairValue * tokensOutstanding),
|
|
@@ -16437,7 +16065,7 @@ function PropertyValuation({
|
|
|
16437
16065
|
/* @__PURE__ */ jsx(ValuationItem, { children: /* @__PURE__ */ jsxs(ValuationValue, { style: { color: "#F44336" }, children: [
|
|
16438
16066
|
/* @__PURE__ */ jsxs("span", { children: [
|
|
16439
16067
|
"> ",
|
|
16440
|
-
|
|
16068
|
+
formatCurrency5(overvaluedThreshold)
|
|
16441
16069
|
] }),
|
|
16442
16070
|
/* @__PURE__ */ jsxs("span", { className: "valuation-amount-span", style: { fontSize: "0.8rem", fontWeight: "normal" }, children: [
|
|
16443
16071
|
"(",
|
|
@@ -16530,7 +16158,7 @@ function PropertyValuation({
|
|
|
16530
16158
|
/* @__PURE__ */ jsx(GaugeIndicator, { type: "fairValue", position: 50 }),
|
|
16531
16159
|
/* @__PURE__ */ jsxs(GaugePriceTag, { position: gaugePosition, children: [
|
|
16532
16160
|
/* @__PURE__ */ jsx("span", { children: "Last Price" }),
|
|
16533
|
-
/* @__PURE__ */ jsx("span", { children:
|
|
16161
|
+
/* @__PURE__ */ jsx("span", { children: formatCurrency5(lastPrice) })
|
|
16534
16162
|
] }),
|
|
16535
16163
|
/* @__PURE__ */ jsx(GaugeIndicator, { type: "lastPrice", position: gaugePosition })
|
|
16536
16164
|
] }),
|
|
@@ -16538,7 +16166,7 @@ function PropertyValuation({
|
|
|
16538
16166
|
/* @__PURE__ */ jsx(ValuationItem, { children: /* @__PURE__ */ jsxs(ValuationValue, { style: { color: "#0ecb81" }, children: [
|
|
16539
16167
|
/* @__PURE__ */ jsxs("span", { children: [
|
|
16540
16168
|
"< ",
|
|
16541
|
-
|
|
16169
|
+
formatCurrency5(undervaluedThreshold)
|
|
16542
16170
|
] }),
|
|
16543
16171
|
/* @__PURE__ */ jsxs("span", { className: "valuation-amount-span", style: { fontSize: "0.8rem", fontWeight: "normal" }, children: [
|
|
16544
16172
|
"(",
|
|
@@ -16547,7 +16175,7 @@ function PropertyValuation({
|
|
|
16547
16175
|
] })
|
|
16548
16176
|
] }) }),
|
|
16549
16177
|
/* @__PURE__ */ jsx(ValuationItem, { children: /* @__PURE__ */ jsxs(ValuationValue, { style: { color: "#f0b90b" }, children: [
|
|
16550
|
-
/* @__PURE__ */ jsx("span", { children:
|
|
16178
|
+
/* @__PURE__ */ jsx("span", { children: formatCurrency5(fairValue) }),
|
|
16551
16179
|
/* @__PURE__ */ jsxs("span", { className: "valuation-amount-span", style: { fontSize: "0.8rem", fontWeight: "normal" }, children: [
|
|
16552
16180
|
"(",
|
|
16553
16181
|
formatMillions(fairValue * tokensOutstanding),
|
|
@@ -16557,7 +16185,7 @@ function PropertyValuation({
|
|
|
16557
16185
|
/* @__PURE__ */ jsx(ValuationItem, { children: /* @__PURE__ */ jsxs(ValuationValue, { style: { color: "#f6465d" }, children: [
|
|
16558
16186
|
/* @__PURE__ */ jsxs("span", { children: [
|
|
16559
16187
|
"> ",
|
|
16560
|
-
|
|
16188
|
+
formatCurrency5(overvaluedThreshold)
|
|
16561
16189
|
] }),
|
|
16562
16190
|
/* @__PURE__ */ jsxs("span", { className: "valuation-amount-span", style: { fontSize: "0.8rem", fontWeight: "normal" }, children: [
|
|
16563
16191
|
"(",
|
|
@@ -16600,7 +16228,7 @@ function PropertyValuation({
|
|
|
16600
16228
|
/* @__PURE__ */ jsxs(SalePriceBar, { children: [
|
|
16601
16229
|
/* @__PURE__ */ jsxs(SalePriceLeft, { children: [
|
|
16602
16230
|
/* @__PURE__ */ jsx(SalePriceLabel, { children: "Sale Price" }),
|
|
16603
|
-
/* @__PURE__ */ jsx(SalePriceAmount, { children:
|
|
16231
|
+
/* @__PURE__ */ jsx(SalePriceAmount, { children: formatCurrency5(sale.price) })
|
|
16604
16232
|
] }),
|
|
16605
16233
|
/* @__PURE__ */ jsx(SaleDate, { children: sale.saleDate ?? "\u2014" })
|
|
16606
16234
|
] }),
|
|
@@ -16627,7 +16255,7 @@ function PropertyValuation({
|
|
|
16627
16255
|
error ? /* @__PURE__ */ jsx(ErrorMessage, { children: error }) : null
|
|
16628
16256
|
] });
|
|
16629
16257
|
}
|
|
16630
|
-
function
|
|
16258
|
+
function formatCurrency5(value, options) {
|
|
16631
16259
|
if (value == null || Number.isNaN(value)) {
|
|
16632
16260
|
return "\u2014";
|
|
16633
16261
|
}
|
|
@@ -16701,7 +16329,7 @@ function buildAxisLabels(min, max) {
|
|
|
16701
16329
|
for (let i = 0; i < steps; i += 1) {
|
|
16702
16330
|
const ratio = i / (steps - 1);
|
|
16703
16331
|
const value = max - ratio * (max - min);
|
|
16704
|
-
labels.push(
|
|
16332
|
+
labels.push(formatCurrency5(value, { maximumFractionDigits: 0, minimumFractionDigits: 0 }));
|
|
16705
16333
|
}
|
|
16706
16334
|
return labels;
|
|
16707
16335
|
}
|