@loafmarkets/ui 0.1.154 → 0.1.155

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.mjs CHANGED
@@ -8384,29 +8384,6 @@ var GymIcon = /* @__PURE__ */ jsxs("svg", { width: "16", height: "16", viewBox:
8384
8384
  /* @__PURE__ */ jsx("path", { d: "M10 6h4" }),
8385
8385
  /* @__PURE__ */ jsx("path", { d: "M10 18h4" })
8386
8386
  ] });
8387
- var ShieldIcon = /* @__PURE__ */ jsx("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "#D4AF37", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx("path", { d: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" }) });
8388
- var LockIcon = /* @__PURE__ */ jsxs("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "#D4AF37", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", children: [
8389
- /* @__PURE__ */ jsx("rect", { x: "3", y: "11", width: "18", height: "11", rx: "2", ry: "2" }),
8390
- /* @__PURE__ */ jsx("path", { d: "M7 11V7a5 5 0 0 1 10 0v4" })
8391
- ] });
8392
- var FileCheckIcon = /* @__PURE__ */ jsxs("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "#D4AF37", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", children: [
8393
- /* @__PURE__ */ jsx("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }),
8394
- /* @__PURE__ */ jsx("polyline", { points: "14 2 14 8 20 8" }),
8395
- /* @__PURE__ */ jsx("path", { d: "M9 15l2 2 4-4" })
8396
- ] });
8397
- var BuildingIcon = /* @__PURE__ */ jsxs("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "#D4AF37", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", children: [
8398
- /* @__PURE__ */ jsx("rect", { x: "4", y: "2", width: "16", height: "20", rx: "2", ry: "2" }),
8399
- /* @__PURE__ */ jsx("path", { d: "M9 22v-4h6v4" }),
8400
- /* @__PURE__ */ jsx("path", { d: "M8 6h.01" }),
8401
- /* @__PURE__ */ jsx("path", { d: "M16 6h.01" }),
8402
- /* @__PURE__ */ jsx("path", { d: "M12 6h.01" }),
8403
- /* @__PURE__ */ jsx("path", { d: "M12 10h.01" }),
8404
- /* @__PURE__ */ jsx("path", { d: "M12 14h.01" }),
8405
- /* @__PURE__ */ jsx("path", { d: "M16 10h.01" }),
8406
- /* @__PURE__ */ jsx("path", { d: "M16 14h.01" }),
8407
- /* @__PURE__ */ jsx("path", { d: "M8 10h.01" }),
8408
- /* @__PURE__ */ jsx("path", { d: "M8 14h.01" })
8409
- ] });
8410
8387
  var DEFAULT_FEATURES = [
8411
8388
  { icon: BedIcon, value: "\u2014", label: "Beds" },
8412
8389
  { icon: BathIcon, value: "\u2014", label: "Baths" },
@@ -8424,12 +8401,6 @@ var DEFAULT_PROPERTY_INFO = [
8424
8401
  { label: "Status", value: "N/A" }
8425
8402
  ];
8426
8403
  var DEFAULT_DESCRIPTION = "Property description not available.";
8427
- var ScaleIcon = /* @__PURE__ */ jsxs("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "#D4AF37", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", children: [
8428
- /* @__PURE__ */ jsx("path", { d: "M12 3v18" }),
8429
- /* @__PURE__ */ jsx("path", { d: "M3 7l9-4 9 4" }),
8430
- /* @__PURE__ */ jsx("path", { d: "M3 7l3 5h-6l3-5z" }),
8431
- /* @__PURE__ */ jsx("path", { d: "M18 7l3 5h-6l3-5z" })
8432
- ] });
8433
8404
  function truncateAddress(addr) {
8434
8405
  if (addr.length <= 12) return addr;
8435
8406
  return `${addr.slice(0, 6)}...${addr.slice(-4)}`;
@@ -8730,97 +8701,57 @@ function PropertyOverview({
8730
8701
  ] }),
8731
8702
  /* @__PURE__ */ jsxs(Section, { children: [
8732
8703
  /* @__PURE__ */ jsx(SectionHeader, { children: "Tokenholder Security" }),
8733
- /* @__PURE__ */ jsx(SecurityIntro, { children: "Every token issued by Loaf Markets is underpinned by institutional-grade legal and structural protections, independently verified and documented." }),
8734
- /* @__PURE__ */ jsxs(SecurityTopRow, { children: [
8735
- /* @__PURE__ */ jsxs(SecurityBadge, { children: [
8736
- /* @__PURE__ */ jsx(SecurityBadgeIcon, { children: ScaleIcon }),
8737
- /* @__PURE__ */ jsxs(SecurityBadgeContent, { children: [
8738
- /* @__PURE__ */ jsx(SecurityBadgeLabel, { children: "Legal Structuring by" }),
8739
- /* @__PURE__ */ jsx(SecurityBadgeLogo, { children: /* @__PURE__ */ jsx("img", { src: "/Baker_McKenzie.png", alt: "Baker McKenzie", style: { height: "28px", filter: "brightness(0) invert(1)", opacity: 0.85 } }) })
8740
- ] })
8704
+ /* @__PURE__ */ jsxs(SecurityTable, { children: [
8705
+ /* @__PURE__ */ jsxs(SecurityRow, { children: [
8706
+ /* @__PURE__ */ jsxs(SecurityRowLeft, { children: [
8707
+ /* @__PURE__ */ jsx(SecurityRowLabel, { children: "Legal Structuring" }),
8708
+ /* @__PURE__ */ jsx(SecurityRowLogo, { children: /* @__PURE__ */ jsx("img", { src: "/Baker_McKenzie.png", alt: "Baker McKenzie", style: { height: "22px", filter: "brightness(0) invert(1)", opacity: 0.8 } }) })
8709
+ ] }),
8710
+ /* @__PURE__ */ jsx(SecurityRowRight, { children: /* @__PURE__ */ jsxs(SecurityRowLinks, { children: [
8711
+ /* @__PURE__ */ jsx(SecurityDocLink, { href: "#documents", children: "Legal Opinion" }),
8712
+ /* @__PURE__ */ jsx(SecurityDocLink, { href: "#documents", children: "Structuring Memo" })
8713
+ ] }) })
8741
8714
  ] }),
8742
- /* @__PURE__ */ jsxs(SecurityBadge, { children: [
8743
- /* @__PURE__ */ jsx(SecurityBadgeIcon, { children: FileCheckIcon }),
8744
- /* @__PURE__ */ jsxs(SecurityBadgeContent, { children: [
8745
- /* @__PURE__ */ jsx(SecurityBadgeLabel, { children: "Independent Valuation by" }),
8746
- /* @__PURE__ */ jsx(SecurityBadgeValuer, { children: "CBRE & Savills" })
8747
- ] })
8748
- ] })
8749
- ] }),
8750
- /* @__PURE__ */ jsxs(ProtectionsGrid, { children: [
8751
- /* @__PURE__ */ jsxs(ProtectionCard, { children: [
8752
- /* @__PURE__ */ jsxs(ProtectionCardHeader, { children: [
8753
- /* @__PURE__ */ jsx(ProtectionIconWrap, { children: ShieldIcon }),
8754
- /* @__PURE__ */ jsxs("div", { children: [
8755
- /* @__PURE__ */ jsx(ProtectionTitle, { children: "Security Interest in Asset" }),
8756
- /* @__PURE__ */ jsxs(ProtectionStatus, { children: [
8757
- /* @__PURE__ */ jsx(ProtectionStatusDot, {}),
8758
- "Secured & Registered"
8759
- ] })
8715
+ /* @__PURE__ */ jsxs(SecurityRow, { children: [
8716
+ /* @__PURE__ */ jsxs(SecurityRowLeft, { children: [
8717
+ /* @__PURE__ */ jsx(SecurityRowLabel, { children: "Security Interest in Asset" }),
8718
+ /* @__PURE__ */ jsxs(SecurityRowValue, { children: [
8719
+ /* @__PURE__ */ jsx(SecurityStatusDot, {}),
8720
+ "Secured \u2014 NSW Land Registry"
8760
8721
  ] })
8761
8722
  ] }),
8762
- /* @__PURE__ */ jsx(ProtectionDesc, { children: "A registered mortgage over the property is held on behalf of token holders, secured against the NSW Land Registry. This ensures token holders have a direct, enforceable claim over the underlying real estate." }),
8763
- /* @__PURE__ */ jsxs(ProtectionDocs, { children: [
8764
- /* @__PURE__ */ jsx(ProtectionDocTag, { children: "Mortgage Agreement" }),
8765
- /* @__PURE__ */ jsx(ProtectionDocTag, { children: "Land Registry Filing" })
8766
- ] })
8723
+ /* @__PURE__ */ jsx(SecurityRowRight, { children: /* @__PURE__ */ jsxs(SecurityRowLinks, { children: [
8724
+ /* @__PURE__ */ jsx(SecurityDocLink, { href: "#documents", children: "Mortgage Agreement" }),
8725
+ /* @__PURE__ */ jsx(SecurityDocLink, { href: "#documents", children: "Registry Filing" })
8726
+ ] }) })
8767
8727
  ] }),
8768
- /* @__PURE__ */ jsxs(ProtectionCard, { children: [
8769
- /* @__PURE__ */ jsxs(ProtectionCardHeader, { children: [
8770
- /* @__PURE__ */ jsx(ProtectionIconWrap, { children: LockIcon }),
8771
- /* @__PURE__ */ jsxs("div", { children: [
8772
- /* @__PURE__ */ jsx(ProtectionTitle, { children: "Bankruptcy Remote SPV" }),
8773
- /* @__PURE__ */ jsxs(ProtectionStatus, { children: [
8774
- /* @__PURE__ */ jsx(ProtectionStatusDot, {}),
8775
- "Active"
8776
- ] })
8728
+ /* @__PURE__ */ jsxs(SecurityRow, { children: [
8729
+ /* @__PURE__ */ jsxs(SecurityRowLeft, { children: [
8730
+ /* @__PURE__ */ jsx(SecurityRowLabel, { children: "Bankruptcy Remote" }),
8731
+ /* @__PURE__ */ jsxs(SecurityRowValue, { children: [
8732
+ /* @__PURE__ */ jsx(SecurityStatusDot, {}),
8733
+ "Active \u2014 Dedicated SPV"
8777
8734
  ] })
8778
8735
  ] }),
8779
- /* @__PURE__ */ jsx(ProtectionDesc, { children: "The property is held within a dedicated Special Purpose Vehicle, legally isolated from Loaf Markets' operating entity. In the event of platform insolvency, token holder assets remain protected and ring-fenced." }),
8780
- /* @__PURE__ */ jsxs(ProtectionDocs, { children: [
8781
- /* @__PURE__ */ jsx(ProtectionDocTag, { children: "SPV Constitution" }),
8782
- /* @__PURE__ */ jsx(ProtectionDocTag, { children: "Legal Opinion" })
8783
- ] })
8736
+ /* @__PURE__ */ jsx(SecurityRowRight, { children: /* @__PURE__ */ jsx(SecurityRowLinks, { children: /* @__PURE__ */ jsx(SecurityDocLink, { href: "#documents", children: "SPV Constitution" }) }) })
8784
8737
  ] }),
8785
- /* @__PURE__ */ jsxs(ProtectionCard, { children: [
8786
- /* @__PURE__ */ jsxs(ProtectionCardHeader, { children: [
8787
- /* @__PURE__ */ jsx(ProtectionIconWrap, { children: FileCheckIcon }),
8788
- /* @__PURE__ */ jsxs("div", { children: [
8789
- /* @__PURE__ */ jsx(ProtectionTitle, { children: "Data Protection & Compliance" }),
8790
- /* @__PURE__ */ jsxs(ProtectionStatus, { children: [
8791
- /* @__PURE__ */ jsx(ProtectionStatusDot, {}),
8792
- "Compliant"
8793
- ] })
8794
- ] })
8738
+ /* @__PURE__ */ jsxs(SecurityRow, { children: [
8739
+ /* @__PURE__ */ jsxs(SecurityRowLeft, { children: [
8740
+ /* @__PURE__ */ jsx(SecurityRowLabel, { children: "Independent Valuation" }),
8741
+ /* @__PURE__ */ jsx(SecurityRowValue, { children: "CBRE & Savills" })
8795
8742
  ] }),
8796
- /* @__PURE__ */ jsx(ProtectionDesc, { children: "All investor data is handled under executed Data Processing Agreements compliant with Australian Privacy Act and GDPR standards. KYC/AML procedures follow AUSTRAC reporting obligations." }),
8797
- /* @__PURE__ */ jsxs(ProtectionDocs, { children: [
8798
- /* @__PURE__ */ jsx(ProtectionDocTag, { children: "DPA Agreement" }),
8799
- /* @__PURE__ */ jsx(ProtectionDocTag, { children: "Privacy Policy" })
8800
- ] })
8743
+ /* @__PURE__ */ jsx(SecurityRowRight, { children: /* @__PURE__ */ jsx(SecurityRowLinks, { children: /* @__PURE__ */ jsx(SecurityDocLink, { href: "#documents", children: "Valuation Report" }) }) })
8801
8744
  ] }),
8802
- /* @__PURE__ */ jsxs(ProtectionCard, { children: [
8803
- /* @__PURE__ */ jsxs(ProtectionCardHeader, { children: [
8804
- /* @__PURE__ */ jsx(ProtectionIconWrap, { children: BuildingIcon }),
8805
- /* @__PURE__ */ jsxs("div", { children: [
8806
- /* @__PURE__ */ jsx(ProtectionTitle, { children: "Independent Valuation" }),
8807
- /* @__PURE__ */ jsxs(ProtectionStatus, { children: [
8808
- /* @__PURE__ */ jsx(ProtectionStatusDot, {}),
8809
- "Current"
8810
- ] })
8745
+ /* @__PURE__ */ jsxs(SecurityRow, { $noBorder: true, children: [
8746
+ /* @__PURE__ */ jsxs(SecurityRowLeft, { children: [
8747
+ /* @__PURE__ */ jsx(SecurityRowLabel, { children: "Data Protection" }),
8748
+ /* @__PURE__ */ jsxs(SecurityRowValue, { children: [
8749
+ /* @__PURE__ */ jsx(SecurityStatusDot, {}),
8750
+ "Compliant \u2014 Australian Privacy Act"
8811
8751
  ] })
8812
8752
  ] }),
8813
- /* @__PURE__ */ jsx(ProtectionDesc, { children: "Property valuations are conducted by independent, internationally recognised firms (CBRE, Savills) at regular intervals. Reports are available for review in the Documents tab." }),
8814
- /* @__PURE__ */ jsxs(ProtectionDocs, { children: [
8815
- /* @__PURE__ */ jsx(ProtectionDocTag, { children: "Valuation Report" }),
8816
- /* @__PURE__ */ jsx(ProtectionDocTag, { children: "Methodology" })
8817
- ] })
8753
+ /* @__PURE__ */ jsx(SecurityRowRight, { children: /* @__PURE__ */ jsx(SecurityRowLinks, { children: /* @__PURE__ */ jsx(SecurityDocLink, { href: "#documents", children: "DPA Agreement" }) }) })
8818
8754
  ] })
8819
- ] }),
8820
- /* @__PURE__ */ jsxs(SecurityFooter, { children: [
8821
- "Full documentation including legal opinions, mortgage instruments, SPV constitutions, and valuation reports is available in the ",
8822
- /* @__PURE__ */ jsx("strong", { children: "Documents" }),
8823
- " tab."
8824
8755
  ] })
8825
8756
  ] })
8826
8757
  ] });
@@ -9195,145 +9126,69 @@ var TradingHoursNote = styled9.div`
9195
9126
  color: rgba(255,255,255,0.35);
9196
9127
  border-top: 1px solid rgba(255,255,255,0.04);
9197
9128
  `;
9198
- var SecurityIntro = styled9.p`
9199
- font-size: 0.85rem;
9200
- color: rgba(255,255,255,0.5);
9201
- line-height: 1.6;
9202
- margin: 0 0 1.5rem;
9203
- max-width: 720px;
9204
- `;
9205
- var SecurityTopRow = styled9.div`
9129
+ var SecurityTable = styled9.div`
9206
9130
  display: flex;
9207
- gap: 1rem;
9208
- margin-bottom: 1.25rem;
9209
- @media (max-width: 768px) { flex-direction: column; }
9131
+ flex-direction: column;
9210
9132
  `;
9211
- var SecurityBadge = styled9.div`
9212
- flex: 1;
9133
+ var SecurityRow = styled9.div`
9213
9134
  display: flex;
9214
9135
  align-items: center;
9136
+ justify-content: space-between;
9137
+ padding: 1rem 0;
9138
+ border-bottom: ${({ $noBorder }) => $noBorder ? "none" : "1px solid rgba(255,255,255,0.06)"};
9215
9139
  gap: 1rem;
9216
- background: rgba(212,175,55,0.04);
9217
- border: 1px solid rgba(212,175,55,0.15);
9218
- border-radius: 10px;
9219
- padding: 1rem 1.25rem;
9140
+ @media (max-width: 640px) { flex-direction: column; align-items: flex-start; }
9220
9141
  `;
9221
- var SecurityBadgeIcon = styled9.div`
9222
- width: 40px;
9223
- height: 40px;
9224
- border-radius: 8px;
9225
- background: rgba(212,175,55,0.1);
9226
- display: flex;
9227
- align-items: center;
9228
- justify-content: center;
9229
- flex-shrink: 0;
9230
- `;
9231
- var SecurityBadgeContent = styled9.div`
9142
+ var SecurityRowLeft = styled9.div`
9232
9143
  display: flex;
9233
9144
  flex-direction: column;
9234
9145
  gap: 4px;
9235
9146
  `;
9236
- var SecurityBadgeLabel = styled9.span`
9237
- font-size: 0.72rem;
9238
- color: rgba(255,255,255,0.45);
9239
- text-transform: uppercase;
9240
- letter-spacing: 0.04em;
9241
- font-weight: 500;
9242
- `;
9243
- var SecurityBadgeLogo = styled9.div`
9244
- display: flex;
9245
- align-items: center;
9246
- height: 28px;
9247
- `;
9248
- var SecurityBadgeValuer = styled9.div`
9249
- font-size: 1rem;
9147
+ var SecurityRowLabel = styled9.div`
9148
+ font-size: 0.88rem;
9250
9149
  font-weight: 600;
9251
9150
  color: #fff;
9252
- letter-spacing: 0.02em;
9253
- `;
9254
- var ProtectionsGrid = styled9.div`
9255
- display: grid;
9256
- grid-template-columns: 1fr 1fr;
9257
- gap: 1rem;
9258
- @media (max-width: 768px) { grid-template-columns: 1fr; }
9259
- `;
9260
- var ProtectionCard = styled9.div`
9261
- background: rgba(255,255,255,0.025);
9262
- border: 1px solid rgba(255,255,255,0.06);
9263
- border-radius: 10px;
9264
- padding: 1.25rem;
9265
- display: flex;
9266
- flex-direction: column;
9267
- gap: 0.75rem;
9268
- `;
9269
- var ProtectionCardHeader = styled9.div`
9270
- display: flex;
9271
- align-items: flex-start;
9272
- gap: 0.75rem;
9273
9151
  `;
9274
- var ProtectionIconWrap = styled9.div`
9275
- width: 36px;
9276
- height: 36px;
9277
- border-radius: 8px;
9278
- background: rgba(212,175,55,0.1);
9152
+ var SecurityRowValue = styled9.div`
9279
9153
  display: flex;
9280
9154
  align-items: center;
9281
- justify-content: center;
9282
- flex-shrink: 0;
9283
- `;
9284
- var ProtectionTitle = styled9.div`
9285
- font-size: 0.92rem;
9286
- font-weight: 600;
9287
- color: #fff;
9288
- margin-bottom: 2px;
9155
+ gap: 6px;
9156
+ font-size: 0.78rem;
9157
+ color: rgba(255,255,255,0.5);
9289
9158
  `;
9290
- var ProtectionStatus = styled9.div`
9159
+ var SecurityRowLogo = styled9.div`
9291
9160
  display: flex;
9292
9161
  align-items: center;
9293
- gap: 5px;
9294
- font-size: 0.72rem;
9295
- color: #4ade80;
9296
- font-weight: 500;
9162
+ margin-top: 2px;
9297
9163
  `;
9298
- var ProtectionStatusDot = styled9.span`
9164
+ var SecurityStatusDot = styled9.span`
9299
9165
  width: 6px;
9300
9166
  height: 6px;
9301
9167
  border-radius: 50%;
9302
9168
  background: #4ade80;
9303
9169
  display: inline-block;
9170
+ flex-shrink: 0;
9304
9171
  `;
9305
- var ProtectionDesc = styled9.div`
9306
- font-size: 0.8rem;
9307
- color: rgba(255,255,255,0.5);
9308
- line-height: 1.6;
9309
- `;
9310
- var ProtectionDocs = styled9.div`
9172
+ var SecurityRowRight = styled9.div`
9311
9173
  display: flex;
9312
- flex-wrap: wrap;
9313
- gap: 6px;
9314
- margin-top: auto;
9174
+ align-items: center;
9175
+ flex-shrink: 0;
9315
9176
  `;
9316
- var ProtectionDocTag = styled9.span`
9317
- font-size: 0.68rem;
9318
- color: rgba(212,175,55,0.8);
9319
- background: rgba(212,175,55,0.08);
9320
- border: 1px solid rgba(212,175,55,0.12);
9321
- border-radius: 4px;
9322
- padding: 3px 8px;
9323
- font-weight: 500;
9177
+ var SecurityRowLinks = styled9.div`
9178
+ display: flex;
9179
+ gap: 1.25rem;
9324
9180
  `;
9325
- var SecurityFooter = styled9.div`
9326
- margin-top: 1.25rem;
9327
- padding: 0.85rem 1rem;
9328
- background: rgba(255,255,255,0.02);
9329
- border: 1px solid rgba(255,255,255,0.05);
9330
- border-radius: 8px;
9181
+ var SecurityDocLink = styled9.a`
9331
9182
  font-size: 0.78rem;
9332
- color: rgba(255,255,255,0.4);
9333
- line-height: 1.5;
9334
- strong {
9335
- color: rgba(212,175,55,0.8);
9336
- font-weight: 600;
9183
+ color: rgba(255,255,255,0.45);
9184
+ text-decoration: underline;
9185
+ text-underline-offset: 3px;
9186
+ text-decoration-color: rgba(255,255,255,0.2);
9187
+ cursor: pointer;
9188
+ transition: color 0.15s, text-decoration-color 0.15s;
9189
+ &:hover {
9190
+ color: rgba(212,175,55,0.9);
9191
+ text-decoration-color: rgba(212,175,55,0.5);
9337
9192
  }
9338
9193
  `;
9339
9194
  var HoldRatioWrap = styled9.div`