@loafmarkets/ui 0.1.408 → 0.1.409
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +9 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.js +299 -44
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +299 -44
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -5078,6 +5078,7 @@ var Header = ({
|
|
|
5078
5078
|
onSettingsClick,
|
|
5079
5079
|
onReferClick,
|
|
5080
5080
|
portfolioSummary,
|
|
5081
|
+
totalPoints,
|
|
5081
5082
|
fundsPending = false,
|
|
5082
5083
|
transparentOnTop = false,
|
|
5083
5084
|
headerCta = "deposit",
|
|
@@ -5541,6 +5542,11 @@ var Header = ({
|
|
|
5541
5542
|
}
|
|
5542
5543
|
),
|
|
5543
5544
|
isUserMenuOpen && /* @__PURE__ */ jsxs(DropdownMenu, { className: "user-menu-dropdown", children: [
|
|
5545
|
+
totalPoints != null && /* @__PURE__ */ jsxs(PointsHeader, { children: [
|
|
5546
|
+
/* @__PURE__ */ jsx("div", { className: "pts-label", children: "Total Points" }),
|
|
5547
|
+
/* @__PURE__ */ jsx("div", { className: "pts-value", children: totalPoints.toLocaleString() }),
|
|
5548
|
+
/* @__PURE__ */ jsx("div", { className: "pts-note", children: "Cumulative points earned. More soon." })
|
|
5549
|
+
] }),
|
|
5544
5550
|
/* @__PURE__ */ jsx(
|
|
5545
5551
|
"button",
|
|
5546
5552
|
{
|
|
@@ -5598,7 +5604,7 @@ var Header = ({
|
|
|
5598
5604
|
}
|
|
5599
5605
|
)
|
|
5600
5606
|
] }) : /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center" }, children: [
|
|
5601
|
-
/* @__PURE__ */ jsx(Button2, { className: "signup", onClick: handleSignIn, children: "
|
|
5607
|
+
/* @__PURE__ */ jsx(Button2, { className: "signup", onClick: handleSignIn, children: "Join Competition" }),
|
|
5602
5608
|
/* @__PURE__ */ jsx(
|
|
5603
5609
|
MobileOnlyButton,
|
|
5604
5610
|
{
|
|
@@ -6126,6 +6132,33 @@ var DropdownMenu = styled10.div`
|
|
|
6126
6132
|
display: block;
|
|
6127
6133
|
}
|
|
6128
6134
|
`;
|
|
6135
|
+
var PointsHeader = styled10.div`
|
|
6136
|
+
padding: 0.7rem 1.25rem 0.8rem;
|
|
6137
|
+
margin-bottom: 0.35rem;
|
|
6138
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
|
|
6139
|
+
.pts-note {
|
|
6140
|
+
margin-top: 0.4rem;
|
|
6141
|
+
font-size: 0.6rem;
|
|
6142
|
+
line-height: 1.4;
|
|
6143
|
+
color: rgba(255, 255, 255, 0.4);
|
|
6144
|
+
}
|
|
6145
|
+
.pts-label {
|
|
6146
|
+
font-family: 'SF Mono', 'Fira Code', ui-monospace, monospace;
|
|
6147
|
+
font-size: 0.56rem;
|
|
6148
|
+
font-weight: 700;
|
|
6149
|
+
letter-spacing: 0.16em;
|
|
6150
|
+
text-transform: uppercase;
|
|
6151
|
+
color: rgba(255, 255, 255, 0.45);
|
|
6152
|
+
}
|
|
6153
|
+
.pts-value {
|
|
6154
|
+
margin-top: 0.2rem;
|
|
6155
|
+
font-size: 1.15rem;
|
|
6156
|
+
font-weight: 800;
|
|
6157
|
+
color: #E6C87E;
|
|
6158
|
+
font-variant-numeric: tabular-nums;
|
|
6159
|
+
line-height: 1;
|
|
6160
|
+
}
|
|
6161
|
+
`;
|
|
6129
6162
|
var MenuItem = styled10.div`
|
|
6130
6163
|
padding: 0.75rem 1.25rem;
|
|
6131
6164
|
cursor: pointer;
|
|
@@ -9028,6 +9061,48 @@ var CodeLink = styled10.button`
|
|
|
9028
9061
|
text-underline-offset: 2px;
|
|
9029
9062
|
}
|
|
9030
9063
|
`;
|
|
9064
|
+
var HandleField = styled10.div`
|
|
9065
|
+
display: flex;
|
|
9066
|
+
align-items: center;
|
|
9067
|
+
gap: 0.1rem;
|
|
9068
|
+
width: 100%;
|
|
9069
|
+
margin-bottom: 0.4rem;
|
|
9070
|
+
padding: 0 0.9rem;
|
|
9071
|
+
background: rgba(255, 255, 255, 0.04);
|
|
9072
|
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
9073
|
+
border-radius: 10px;
|
|
9074
|
+
transition: border-color 0.15s ease;
|
|
9075
|
+
|
|
9076
|
+
&:focus-within {
|
|
9077
|
+
border-color: rgba(230, 200, 126, 0.6);
|
|
9078
|
+
}
|
|
9079
|
+
`;
|
|
9080
|
+
var HandleAt = styled10.span`
|
|
9081
|
+
color: rgba(255, 255, 255, 0.4);
|
|
9082
|
+
font-size: 1rem;
|
|
9083
|
+
font-weight: 600;
|
|
9084
|
+
`;
|
|
9085
|
+
var HandleInput = styled10.input`
|
|
9086
|
+
flex: 1;
|
|
9087
|
+
min-width: 0;
|
|
9088
|
+
padding: 0.85rem 0.4rem;
|
|
9089
|
+
border: none;
|
|
9090
|
+
background: transparent;
|
|
9091
|
+
color: #fff;
|
|
9092
|
+
font-size: 1rem;
|
|
9093
|
+
font-family: inherit;
|
|
9094
|
+
outline: none;
|
|
9095
|
+
|
|
9096
|
+
&::placeholder {
|
|
9097
|
+
color: rgba(255, 255, 255, 0.35);
|
|
9098
|
+
}
|
|
9099
|
+
`;
|
|
9100
|
+
var FieldError = styled10.div`
|
|
9101
|
+
width: 100%;
|
|
9102
|
+
margin-bottom: 0.6rem;
|
|
9103
|
+
font-size: 0.78rem;
|
|
9104
|
+
color: #ff6b6b;
|
|
9105
|
+
`;
|
|
9031
9106
|
function OnboardingGuide({
|
|
9032
9107
|
open,
|
|
9033
9108
|
fundsReady,
|
|
@@ -9035,8 +9110,21 @@ function OnboardingGuide({
|
|
|
9035
9110
|
onBrowseProperties,
|
|
9036
9111
|
onEnterCode,
|
|
9037
9112
|
onClose,
|
|
9113
|
+
onClaimHandle,
|
|
9038
9114
|
logoSrc = "/Loaf-logo-Banner.png"
|
|
9039
9115
|
}) {
|
|
9116
|
+
const [step, setStep] = useState(onClaimHandle ? "handle" : "funds");
|
|
9117
|
+
const [handle, setHandle] = useState("");
|
|
9118
|
+
const [claiming, setClaiming] = useState(false);
|
|
9119
|
+
const [handleError, setHandleError] = useState("");
|
|
9120
|
+
useEffect(() => {
|
|
9121
|
+
if (open) {
|
|
9122
|
+
setStep(onClaimHandle ? "handle" : "funds");
|
|
9123
|
+
setHandle("");
|
|
9124
|
+
setClaiming(false);
|
|
9125
|
+
setHandleError("");
|
|
9126
|
+
}
|
|
9127
|
+
}, [open, onClaimHandle]);
|
|
9040
9128
|
useEffect(() => {
|
|
9041
9129
|
if (!open) return;
|
|
9042
9130
|
const onKey = (e) => {
|
|
@@ -9046,6 +9134,58 @@ function OnboardingGuide({
|
|
|
9046
9134
|
return () => window.removeEventListener("keydown", onKey);
|
|
9047
9135
|
}, [open, onClose]);
|
|
9048
9136
|
if (!open) return null;
|
|
9137
|
+
const handleClaimContinue = async () => {
|
|
9138
|
+
const trimmed = handle.trim().replace(/^@+/, "");
|
|
9139
|
+
if (trimmed && onClaimHandle) {
|
|
9140
|
+
setClaiming(true);
|
|
9141
|
+
setHandleError("");
|
|
9142
|
+
try {
|
|
9143
|
+
await onClaimHandle(trimmed);
|
|
9144
|
+
} catch (err) {
|
|
9145
|
+
setHandleError(err instanceof Error ? err.message : "Couldn't claim that handle. Try another or skip.");
|
|
9146
|
+
setClaiming(false);
|
|
9147
|
+
return;
|
|
9148
|
+
}
|
|
9149
|
+
setClaiming(false);
|
|
9150
|
+
}
|
|
9151
|
+
setStep("funds");
|
|
9152
|
+
};
|
|
9153
|
+
if (step === "handle") {
|
|
9154
|
+
return /* @__PURE__ */ jsx(Overlay3, { onClick: onClose, role: "dialog", "aria-modal": "true", "aria-label": "Claim your handle", children: /* @__PURE__ */ jsxs(Card2, { onClick: (e) => e.stopPropagation(), children: [
|
|
9155
|
+
/* @__PURE__ */ jsx(CloseButton2, { onClick: onClose, "aria-label": "Skip", children: /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M6 6l12 12M18 6L6 18" }) }) }),
|
|
9156
|
+
/* @__PURE__ */ jsxs(LogoRow, { children: [
|
|
9157
|
+
/* @__PURE__ */ jsx(LogoImage2, { src: logoSrc, alt: "Loaf" }),
|
|
9158
|
+
/* @__PURE__ */ jsx(LogoBeta2, { children: "Private Beta" })
|
|
9159
|
+
] }),
|
|
9160
|
+
/* @__PURE__ */ jsx(Title2, { children: "Claim your handle" }),
|
|
9161
|
+
/* @__PURE__ */ jsx(Subtitle2, { children: "Pick a username for your Loaf profile. It's optional \u2014 you can set or change it later." }),
|
|
9162
|
+
/* @__PURE__ */ jsxs(HandleField, { children: [
|
|
9163
|
+
/* @__PURE__ */ jsx(HandleAt, { children: "@" }),
|
|
9164
|
+
/* @__PURE__ */ jsx(
|
|
9165
|
+
HandleInput,
|
|
9166
|
+
{
|
|
9167
|
+
type: "text",
|
|
9168
|
+
autoComplete: "off",
|
|
9169
|
+
autoCapitalize: "none",
|
|
9170
|
+
spellCheck: false,
|
|
9171
|
+
placeholder: "username (optional)",
|
|
9172
|
+
value: handle,
|
|
9173
|
+
onChange: (e) => {
|
|
9174
|
+
setHandle(e.target.value.replace(/[^a-zA-Z0-9_]/g, ""));
|
|
9175
|
+
setHandleError("");
|
|
9176
|
+
},
|
|
9177
|
+
onKeyDown: (e) => {
|
|
9178
|
+
if (e.key === "Enter" && !claiming) void handleClaimContinue();
|
|
9179
|
+
},
|
|
9180
|
+
autoFocus: true
|
|
9181
|
+
}
|
|
9182
|
+
)
|
|
9183
|
+
] }),
|
|
9184
|
+
handleError && /* @__PURE__ */ jsx(FieldError, { children: handleError }),
|
|
9185
|
+
/* @__PURE__ */ jsx(PrimaryButton, { onClick: () => void handleClaimContinue(), disabled: claiming, children: claiming ? "Saving\u2026" : "Continue" }),
|
|
9186
|
+
/* @__PURE__ */ jsx(SkipButton, { onClick: () => setStep("funds"), disabled: claiming, children: "Skip for now" })
|
|
9187
|
+
] }) });
|
|
9188
|
+
}
|
|
9049
9189
|
return /* @__PURE__ */ jsx(Overlay3, { onClick: onClose, role: "dialog", "aria-modal": "true", "aria-label": "Welcome to Loaf", children: /* @__PURE__ */ jsxs(Card2, { onClick: (e) => e.stopPropagation(), children: [
|
|
9050
9190
|
/* @__PURE__ */ jsx(CloseButton2, { onClick: onClose, "aria-label": "Skip", children: /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M6 6l12 12M18 6L6 18" }) }) }),
|
|
9051
9191
|
/* @__PURE__ */ jsxs(LogoRow, { children: [
|
|
@@ -12109,6 +12249,11 @@ var DocIcon = () => /* @__PURE__ */ jsxs("svg", { width: "20", height: "20", vie
|
|
|
12109
12249
|
/* @__PURE__ */ jsx("line", { x1: "16", y1: "17", x2: "8", y2: "17" }),
|
|
12110
12250
|
/* @__PURE__ */ jsx("polyline", { points: "10 9 9 9 8 9" })
|
|
12111
12251
|
] });
|
|
12252
|
+
var DownloadIcon = () => /* @__PURE__ */ jsxs("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
12253
|
+
/* @__PURE__ */ jsx("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }),
|
|
12254
|
+
/* @__PURE__ */ jsx("polyline", { points: "7 10 12 15 17 10" }),
|
|
12255
|
+
/* @__PURE__ */ jsx("line", { x1: "12", y1: "15", x2: "12", y2: "3" })
|
|
12256
|
+
] });
|
|
12112
12257
|
var LIVE_TITLE_PATTERNS = [/term\s*sheet/i, /memo/i];
|
|
12113
12258
|
var COMING_SOON_TITLES = [
|
|
12114
12259
|
"Valuation Report",
|
|
@@ -12123,11 +12268,30 @@ var COMING_SOON_TITLES = [
|
|
|
12123
12268
|
];
|
|
12124
12269
|
function PropertyDocuments({ documentsData, highlightDocument, onClearHighlight }) {
|
|
12125
12270
|
const highlightRef = useRef(null);
|
|
12126
|
-
|
|
12271
|
+
const [previewUrl, setPreviewUrl] = useState(null);
|
|
12272
|
+
const [previewTitle, setPreviewTitle] = useState(null);
|
|
12273
|
+
const backendDocuments = Array.isArray(documentsData?.documents) ? documentsData.documents : [];
|
|
12274
|
+
const liveDocs = backendDocuments.filter(
|
|
12275
|
+
(d) => Boolean(d.documentUrl) && LIVE_TITLE_PATTERNS.some((rx) => rx.test(d.title))
|
|
12276
|
+
);
|
|
12277
|
+
const comingSoonDocs = COMING_SOON_TITLES.filter(
|
|
12278
|
+
(title) => !liveDocs.some((d) => d.title.toLowerCase().includes(title.toLowerCase()) || title.toLowerCase().includes(d.title.toLowerCase()))
|
|
12279
|
+
).map((title) => ({ title, documentUrl: "" }));
|
|
12280
|
+
const documents = [...liveDocs, ...comingSoonDocs];
|
|
12281
|
+
const activeUrl = previewUrl ?? (liveDocs[0]?.documentUrl || null);
|
|
12282
|
+
const activeTitle = previewUrl ? previewTitle : liveDocs[0]?.title || null;
|
|
12283
|
+
const selectPreview = (doc) => {
|
|
12284
|
+
setPreviewUrl(doc.documentUrl);
|
|
12285
|
+
setPreviewTitle(doc.title);
|
|
12286
|
+
};
|
|
12127
12287
|
useEffect(() => {
|
|
12128
12288
|
if (highlightDocument && highlightRef.current) {
|
|
12129
12289
|
highlightRef.current.scrollIntoView({ behavior: "smooth", block: "nearest" });
|
|
12130
12290
|
}
|
|
12291
|
+
if (highlightDocument) {
|
|
12292
|
+
const hit = liveDocs.find((d) => d.title.toLowerCase().includes(highlightDocument.toLowerCase()));
|
|
12293
|
+
if (hit) selectPreview(hit);
|
|
12294
|
+
}
|
|
12131
12295
|
}, [highlightDocument]);
|
|
12132
12296
|
useEffect(() => {
|
|
12133
12297
|
if (!highlightDocument || !onClearHighlight) return;
|
|
@@ -12139,36 +12303,58 @@ function PropertyDocuments({ documentsData, highlightDocument, onClearHighlight
|
|
|
12139
12303
|
document.addEventListener("click", handler, true);
|
|
12140
12304
|
return () => document.removeEventListener("click", handler, true);
|
|
12141
12305
|
}, [highlightDocument, onClearHighlight]);
|
|
12142
|
-
const backendDocuments = Array.isArray(documentsData?.documents) ? documentsData.documents : [];
|
|
12143
|
-
const liveDocs = backendDocuments.filter(
|
|
12144
|
-
(d) => Boolean(d.documentUrl) && LIVE_TITLE_PATTERNS.some((rx) => rx.test(d.title))
|
|
12145
|
-
);
|
|
12146
|
-
const comingSoonDocs = COMING_SOON_TITLES.filter(
|
|
12147
|
-
(title) => !liveDocs.some((d) => d.title.toLowerCase().includes(title.toLowerCase()) || title.toLowerCase().includes(d.title.toLowerCase()))
|
|
12148
|
-
).map((title) => ({ title, documentUrl: "" }));
|
|
12149
|
-
const documents = [...liveDocs, ...comingSoonDocs];
|
|
12150
12306
|
return /* @__PURE__ */ jsxs(Section2, { children: [
|
|
12151
12307
|
/* @__PURE__ */ jsx(SectionHeading, { children: "Investment Documents" }),
|
|
12152
|
-
/* @__PURE__ */
|
|
12153
|
-
|
|
12154
|
-
|
|
12155
|
-
|
|
12156
|
-
|
|
12308
|
+
/* @__PURE__ */ jsxs(SplitLayout, { children: [
|
|
12309
|
+
/* @__PURE__ */ jsx(DocList, { children: documents.map(({ documentUrl, title }) => {
|
|
12310
|
+
const isAvailable = Boolean(documentUrl);
|
|
12311
|
+
const isHighlighted = highlightDocument != null && title.toLowerCase().includes(highlightDocument.toLowerCase());
|
|
12312
|
+
const isActive = isAvailable && documentUrl === activeUrl;
|
|
12313
|
+
return /* @__PURE__ */ jsx(
|
|
12314
|
+
DocItem,
|
|
12315
|
+
{
|
|
12316
|
+
ref: isHighlighted ? highlightRef : void 0,
|
|
12317
|
+
$highlighted: isHighlighted,
|
|
12318
|
+
children: /* @__PURE__ */ jsxs(
|
|
12319
|
+
DocRow,
|
|
12320
|
+
{
|
|
12321
|
+
$available: isAvailable,
|
|
12322
|
+
$active: isActive,
|
|
12323
|
+
onMouseEnter: isAvailable ? () => selectPreview({ documentUrl, title }) : void 0,
|
|
12324
|
+
onClick: isAvailable ? () => selectPreview({ documentUrl, title }) : void 0,
|
|
12325
|
+
children: [
|
|
12326
|
+
/* @__PURE__ */ jsxs(DocName, { $available: isAvailable, children: [
|
|
12327
|
+
/* @__PURE__ */ jsx(DocIconWrapper, { children: /* @__PURE__ */ jsx(DocIcon, {}) }),
|
|
12328
|
+
title
|
|
12329
|
+
] }),
|
|
12330
|
+
isAvailable ? /* @__PURE__ */ jsx(
|
|
12331
|
+
DownloadBtn,
|
|
12332
|
+
{
|
|
12333
|
+
href: documentUrl,
|
|
12334
|
+
target: "_blank",
|
|
12335
|
+
rel: "noopener noreferrer",
|
|
12336
|
+
"aria-label": `Open ${title}`,
|
|
12337
|
+
title: "Open document",
|
|
12338
|
+
onClick: (e) => e.stopPropagation(),
|
|
12339
|
+
children: /* @__PURE__ */ jsx(DownloadIcon, {})
|
|
12340
|
+
}
|
|
12341
|
+
) : /* @__PURE__ */ jsx(ComingSoonBadge, { children: "Coming Soon" })
|
|
12342
|
+
]
|
|
12343
|
+
}
|
|
12344
|
+
)
|
|
12345
|
+
},
|
|
12346
|
+
`${title}-${documentUrl || "pending"}`
|
|
12347
|
+
);
|
|
12348
|
+
}) }),
|
|
12349
|
+
/* @__PURE__ */ jsx(PreviewPane, { children: activeUrl ? /* @__PURE__ */ jsx(
|
|
12350
|
+
PreviewFrame,
|
|
12157
12351
|
{
|
|
12158
|
-
|
|
12159
|
-
|
|
12160
|
-
children: isAvailable ? /* @__PURE__ */ jsxs(DocLink, { href: documentUrl, target: "_blank", rel: "noopener noreferrer", children: [
|
|
12161
|
-
/* @__PURE__ */ jsx(DocIconWrapper, { children: /* @__PURE__ */ jsx(DocIcon, {}) }),
|
|
12162
|
-
title
|
|
12163
|
-
] }) : /* @__PURE__ */ jsxs(DocItemDisabled, { children: [
|
|
12164
|
-
/* @__PURE__ */ jsx(DocIconWrapper, { children: /* @__PURE__ */ jsx(DocIcon, {}) }),
|
|
12165
|
-
title,
|
|
12166
|
-
/* @__PURE__ */ jsx(ComingSoonBadge, { children: "Coming Soon" })
|
|
12167
|
-
] })
|
|
12352
|
+
src: `${activeUrl}#toolbar=0&navpanes=0&view=FitH`,
|
|
12353
|
+
title: activeTitle ?? "Document preview"
|
|
12168
12354
|
},
|
|
12169
|
-
|
|
12170
|
-
)
|
|
12171
|
-
|
|
12355
|
+
activeUrl
|
|
12356
|
+
) : /* @__PURE__ */ jsx(PreviewEmpty, { children: "Hover a document to preview it here" }) })
|
|
12357
|
+
] })
|
|
12172
12358
|
] });
|
|
12173
12359
|
}
|
|
12174
12360
|
var Section2 = styled10.section`
|
|
@@ -12188,45 +12374,103 @@ var SectionHeading = styled10.h2`
|
|
|
12188
12374
|
align-items: center;
|
|
12189
12375
|
gap: 0.5rem;
|
|
12190
12376
|
`;
|
|
12377
|
+
var SplitLayout = styled10.div`
|
|
12378
|
+
display: flex;
|
|
12379
|
+
gap: 1.25rem;
|
|
12380
|
+
align-items: stretch;
|
|
12381
|
+
|
|
12382
|
+
@media (max-width: 768px) {
|
|
12383
|
+
flex-direction: column;
|
|
12384
|
+
}
|
|
12385
|
+
`;
|
|
12191
12386
|
var DocList = styled10.ul`
|
|
12192
12387
|
list-style: none;
|
|
12193
12388
|
padding: 0;
|
|
12194
12389
|
margin: 0;
|
|
12390
|
+
flex: 1 1 50%;
|
|
12391
|
+
min-width: 0;
|
|
12195
12392
|
`;
|
|
12196
12393
|
var DocItem = styled10.li`
|
|
12197
|
-
padding: 0.
|
|
12394
|
+
padding: 0.35rem 0;
|
|
12198
12395
|
border-bottom: 1px solid var(--color-border, rgba(255, 255, 255, 0.1));
|
|
12199
12396
|
border-radius: ${(p) => p.$highlighted ? "6px" : "0"};
|
|
12200
12397
|
background: ${(p) => p.$highlighted ? "rgba(212, 175, 55, 0.08)" : "transparent"};
|
|
12201
|
-
${(p) => p.$highlighted ? "padding: 0.75rem;" : ""}
|
|
12202
12398
|
transition: background 0.3s;
|
|
12203
12399
|
|
|
12204
12400
|
&:last-child {
|
|
12205
12401
|
border-bottom: none;
|
|
12206
12402
|
}
|
|
12207
12403
|
`;
|
|
12208
|
-
var
|
|
12404
|
+
var DocRow = styled10.div`
|
|
12209
12405
|
display: flex;
|
|
12210
12406
|
align-items: center;
|
|
12211
|
-
|
|
12212
|
-
|
|
12213
|
-
|
|
12407
|
+
gap: 0.5rem;
|
|
12408
|
+
padding: 0.4rem 0.5rem;
|
|
12409
|
+
border-radius: 6px;
|
|
12410
|
+
cursor: ${(p) => p.$available ? "pointer" : "not-allowed"};
|
|
12411
|
+
background: ${(p) => p.$active ? "rgba(230, 200, 126, 0.10)" : "transparent"};
|
|
12412
|
+
transition: background 0.2s, color 0.2s;
|
|
12214
12413
|
|
|
12215
|
-
&:hover {
|
|
12216
|
-
color: var(--color-accent);
|
|
12217
|
-
}
|
|
12414
|
+
${(p) => p.$available && !p.$active ? "&:hover { background: rgba(230, 200, 126, 0.06); }" : ""}
|
|
12218
12415
|
`;
|
|
12219
|
-
var
|
|
12416
|
+
var DocName = styled10.span`
|
|
12220
12417
|
display: flex;
|
|
12221
12418
|
align-items: center;
|
|
12222
|
-
|
|
12223
|
-
|
|
12224
|
-
|
|
12419
|
+
flex: 1;
|
|
12420
|
+
min-width: 0;
|
|
12421
|
+
color: ${(p) => p.$available ? "var(--color-text)" : "var(--color-text-secondary)"};
|
|
12422
|
+
opacity: ${(p) => p.$available ? 1 : 0.6};
|
|
12225
12423
|
`;
|
|
12226
12424
|
var DocIconWrapper = styled10.span`
|
|
12227
12425
|
margin-right: 0.75rem;
|
|
12228
12426
|
flex-shrink: 0;
|
|
12229
12427
|
color: var(--color-text-secondary);
|
|
12428
|
+
display: inline-flex;
|
|
12429
|
+
`;
|
|
12430
|
+
var DownloadBtn = styled10.a`
|
|
12431
|
+
flex-shrink: 0;
|
|
12432
|
+
display: inline-flex;
|
|
12433
|
+
align-items: center;
|
|
12434
|
+
justify-content: center;
|
|
12435
|
+
width: 30px;
|
|
12436
|
+
height: 30px;
|
|
12437
|
+
border-radius: 6px;
|
|
12438
|
+
color: var(--color-text-secondary);
|
|
12439
|
+
transition: color 0.2s, background 0.2s;
|
|
12440
|
+
|
|
12441
|
+
&:hover {
|
|
12442
|
+
color: var(--color-accent);
|
|
12443
|
+
background: rgba(230, 200, 126, 0.1);
|
|
12444
|
+
}
|
|
12445
|
+
`;
|
|
12446
|
+
var PreviewPane = styled10.div`
|
|
12447
|
+
flex: 1 1 50%;
|
|
12448
|
+
min-width: 0;
|
|
12449
|
+
min-height: 360px;
|
|
12450
|
+
display: flex;
|
|
12451
|
+
border: 1px solid var(--color-border, rgba(255, 255, 255, 0.1));
|
|
12452
|
+
border-radius: 10px;
|
|
12453
|
+
overflow: hidden;
|
|
12454
|
+
background: rgba(0, 0, 0, 0.25);
|
|
12455
|
+
|
|
12456
|
+
/* No hover on touch devices — fall back to the list + download icon. */
|
|
12457
|
+
@media (max-width: 768px) {
|
|
12458
|
+
display: none;
|
|
12459
|
+
}
|
|
12460
|
+
`;
|
|
12461
|
+
var PreviewFrame = styled10.iframe`
|
|
12462
|
+
width: 100%;
|
|
12463
|
+
height: 100%;
|
|
12464
|
+
min-height: 360px;
|
|
12465
|
+
border: 0;
|
|
12466
|
+
background: #fff;
|
|
12467
|
+
`;
|
|
12468
|
+
var PreviewEmpty = styled10.div`
|
|
12469
|
+
margin: auto;
|
|
12470
|
+
padding: 1rem;
|
|
12471
|
+
text-align: center;
|
|
12472
|
+
color: var(--color-text-secondary);
|
|
12473
|
+
font-size: 0.85rem;
|
|
12230
12474
|
`;
|
|
12231
12475
|
var ComingSoonBadge = styled10.span`
|
|
12232
12476
|
margin-left: auto;
|
|
@@ -12238,6 +12482,7 @@ var ComingSoonBadge = styled10.span`
|
|
|
12238
12482
|
font-weight: 500;
|
|
12239
12483
|
text-transform: uppercase;
|
|
12240
12484
|
letter-spacing: 0.05em;
|
|
12485
|
+
flex-shrink: 0;
|
|
12241
12486
|
`;
|
|
12242
12487
|
var formatIsoDate = (value) => {
|
|
12243
12488
|
const parsed = new Date(value);
|
|
@@ -19875,7 +20120,7 @@ var OpenMailButton = styled10.a`
|
|
|
19875
20120
|
`;
|
|
19876
20121
|
var ContactPopup = ({ onClose }) => {
|
|
19877
20122
|
const [copied, setCopied] = useState(false);
|
|
19878
|
-
const email = "
|
|
20123
|
+
const email = "admin@loafmarkets.com";
|
|
19879
20124
|
const handleCopy = async () => {
|
|
19880
20125
|
try {
|
|
19881
20126
|
await navigator.clipboard.writeText(email);
|
|
@@ -20102,7 +20347,17 @@ var SiteFooter = () => {
|
|
|
20102
20347
|
/* @__PURE__ */ jsx(FooterLinkItem, { children: /* @__PURE__ */ jsx(FooterLink, { href: "/trade", children: "Trade" }) }),
|
|
20103
20348
|
/* @__PURE__ */ jsx(FooterLinkItem, { children: /* @__PURE__ */ jsx(FooterLink, { href: "/offerings", children: "Initial Offerings" }) }),
|
|
20104
20349
|
/* @__PURE__ */ jsx(FooterLinkItem, { children: /* @__PURE__ */ jsx(FooterLink, { href: "/map", children: "Property Map" }) }),
|
|
20105
|
-
/* @__PURE__ */ jsx(FooterLinkItem, { children: /* @__PURE__ */ jsx(
|
|
20350
|
+
/* @__PURE__ */ jsx(FooterLinkItem, { children: /* @__PURE__ */ jsx(
|
|
20351
|
+
FooterLink,
|
|
20352
|
+
{
|
|
20353
|
+
href: "/loaf-liquidity",
|
|
20354
|
+
onClick: (e) => {
|
|
20355
|
+
e.preventDefault();
|
|
20356
|
+
if (typeof window !== "undefined") window.dispatchEvent(new CustomEvent("loaf:open-liquidity-popup"));
|
|
20357
|
+
},
|
|
20358
|
+
children: "Loaf Liquidity"
|
|
20359
|
+
}
|
|
20360
|
+
) })
|
|
20106
20361
|
] })
|
|
20107
20362
|
] }),
|
|
20108
20363
|
/* @__PURE__ */ jsxs(FooterColumn, { children: [
|
|
@@ -20138,7 +20393,7 @@ var SiteFooter = () => {
|
|
|
20138
20393
|
/* @__PURE__ */ jsx(LegalLink, { href: "/cookies", children: "Cookie Policy" })
|
|
20139
20394
|
] })
|
|
20140
20395
|
] }),
|
|
20141
|
-
/* @__PURE__ */ jsx(Disclaimer2, { children: /* @__PURE__ */ jsx(DisclaimerText, { children: "Warning: Digital asset prices can be volatile. The value of your investment can go down or up and you may not get back the amount invested. Past gains are not indicative of future returns. You are solely responsible for your investment decisions and Loaf is not liable for any losses you may incur. The information here should not be regarded as financial or investment advice. For more information, see our Terms of Use
|
|
20396
|
+
/* @__PURE__ */ jsx(Disclaimer2, { children: /* @__PURE__ */ jsx(DisclaimerText, { children: "Warning: Digital asset prices can be volatile. The value of your investment can go down or up and you may not get back the amount invested. Past gains are not indicative of future returns. You are solely responsible for your investment decisions and Loaf is not liable for any losses you may incur. The information here should not be regarded as financial or investment advice. For more information, see our Terms of Use." }) })
|
|
20142
20397
|
] }) }),
|
|
20143
20398
|
showContactPopup && /* @__PURE__ */ jsx(ContactPopup, { onClose: () => setShowContactPopup(false) })
|
|
20144
20399
|
] });
|