@loafmarkets/ui 0.1.170 → 0.1.171

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
@@ -8512,7 +8512,7 @@ function PropertyOverview({
8512
8512
  }
8513
8513
  return f;
8514
8514
  })();
8515
- const propertyInfo = propertyInfoProp ?? (() => {
8515
+ propertyInfoProp ?? (() => {
8516
8516
  const info = [...DEFAULT_PROPERTY_INFO];
8517
8517
  if (propertyTypeLabel && !overviewData) info[0] = { label: "Property Type", value: propertyTypeLabel };
8518
8518
  if (overviewData) {
@@ -8668,39 +8668,134 @@ function PropertyOverview({
8668
8668
  }
8669
8669
  ) }),
8670
8670
  /* @__PURE__ */ jsxs(Section, { children: [
8671
- /* @__PURE__ */ jsx(SectionHeader, { children: "Asset Details" }),
8671
+ /* @__PURE__ */ jsx(SectionHeader, { children: "Investment Profile" }),
8672
+ /* @__PURE__ */ jsxs(InvestmentNarrativesRow, { children: [
8673
+ /* @__PURE__ */ jsxs(NarrativeCard, { children: [
8674
+ /* @__PURE__ */ jsx(NarrativeIcon, { children: /* @__PURE__ */ jsx("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", children: /* @__PURE__ */ jsx("path", { d: "M22 12h-4l-3 9L9 3l-3 9H2" }) }) }),
8675
+ /* @__PURE__ */ jsx(NarrativeTitle, { children: "Generational Compounding" }),
8676
+ /* @__PURE__ */ jsx(NarrativeDesc, { children: "Acquired in 1976 for \xA340,000 \u2014 compounded through every market cycle to a current valuation exceeding A$20M." })
8677
+ ] }),
8678
+ /* @__PURE__ */ jsxs(NarrativeCard, { children: [
8679
+ /* @__PURE__ */ jsx(NarrativeIcon, { children: /* @__PURE__ */ jsx("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", children: /* @__PURE__ */ jsx("path", { d: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" }) }) }),
8680
+ /* @__PURE__ */ jsx(NarrativeTitle, { children: "Permanent Scarcity" }),
8681
+ /* @__PURE__ */ jsx(NarrativeDesc, { children: "Heritage harbour-front estates in Mosman cannot be replicated. Sustained global demand into this safe-haven supports long-term price growth." })
8682
+ ] }),
8683
+ /* @__PURE__ */ jsxs(NarrativeCard, { children: [
8684
+ /* @__PURE__ */ jsx(NarrativeIcon, { children: /* @__PURE__ */ jsxs("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", children: [
8685
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "10" }),
8686
+ /* @__PURE__ */ jsx("path", { d: "M12 6v6l4 2" })
8687
+ ] }) }),
8688
+ /* @__PURE__ */ jsx(NarrativeTitle, { children: "Liquidity Premium" }),
8689
+ /* @__PURE__ */ jsx(NarrativeDesc, { children: "Listed assets historically trade at a 20\u201330% premium to unlisted counterparts. First individual property admitted to a continuously traded market." })
8690
+ ] })
8691
+ ] }),
8672
8692
  /* @__PURE__ */ jsxs(StatsGrid, { children: [
8673
8693
  /* @__PURE__ */ jsxs(StatsColumn, { children: [
8674
- /* @__PURE__ */ jsx(StatsColumnHeader, { children: "Key Metrics" }),
8675
- landSize != null && /* @__PURE__ */ jsxs(StatRow, { children: [
8676
- /* @__PURE__ */ jsx(StatLabel, { children: "Land Size" }),
8694
+ /* @__PURE__ */ jsx(StatsColumnHeader, { children: "Capital History" }),
8695
+ /* @__PURE__ */ jsxs(TimelineWrap, { children: [
8696
+ /* @__PURE__ */ jsxs(TimelineEntry, { children: [
8697
+ /* @__PURE__ */ jsx(TimelineYear, { children: "1880s" }),
8698
+ /* @__PURE__ */ jsx(TimelineDot, {}),
8699
+ /* @__PURE__ */ jsx(TimelineDetail, { children: /* @__PURE__ */ jsx(TimelineLabel, { children: "Built \u2014 Pre-Federation" }) })
8700
+ ] }),
8701
+ /* @__PURE__ */ jsxs(TimelineEntry, { children: [
8702
+ /* @__PURE__ */ jsx(TimelineYear, { children: "1976" }),
8703
+ /* @__PURE__ */ jsx(TimelineDot, {}),
8704
+ /* @__PURE__ */ jsxs(TimelineDetail, { children: [
8705
+ /* @__PURE__ */ jsx(TimelineLabel, { children: "Sold" }),
8706
+ /* @__PURE__ */ jsx(TimelinePrice, { children: "\xA340,000" })
8707
+ ] })
8708
+ ] }),
8709
+ /* @__PURE__ */ jsxs(TimelineEntry, { children: [
8710
+ /* @__PURE__ */ jsx(TimelineYear, { children: "1993" }),
8711
+ /* @__PURE__ */ jsx(TimelineDot, {}),
8712
+ /* @__PURE__ */ jsxs(TimelineDetail, { children: [
8713
+ /* @__PURE__ */ jsx(TimelineLabel, { children: "Sold" }),
8714
+ /* @__PURE__ */ jsx(TimelinePrice, { children: "$1.33M" })
8715
+ ] })
8716
+ ] }),
8717
+ /* @__PURE__ */ jsxs(TimelineEntry, { children: [
8718
+ /* @__PURE__ */ jsx(TimelineYear, { children: "2006" }),
8719
+ /* @__PURE__ */ jsx(TimelineDot, {}),
8720
+ /* @__PURE__ */ jsxs(TimelineDetail, { children: [
8721
+ /* @__PURE__ */ jsx(TimelineLabel, { children: "Sold" }),
8722
+ /* @__PURE__ */ jsx(TimelinePrice, { children: "$7.86M" })
8723
+ ] })
8724
+ ] }),
8725
+ /* @__PURE__ */ jsxs(TimelineEntry, { children: [
8726
+ /* @__PURE__ */ jsx(TimelineYear, { children: "2021" }),
8727
+ /* @__PURE__ */ jsx(TimelineDot, {}),
8728
+ /* @__PURE__ */ jsxs(TimelineDetail, { children: [
8729
+ /* @__PURE__ */ jsx(TimelineLabel, { children: "Sold \u2014 COVID correction" }),
8730
+ /* @__PURE__ */ jsx(TimelinePrice, { children: "$9.09M" })
8731
+ ] })
8732
+ ] }),
8733
+ /* @__PURE__ */ jsxs(TimelineEntry, { $last: true, children: [
8734
+ /* @__PURE__ */ jsx(TimelineYear, { children: "2026" }),
8735
+ /* @__PURE__ */ jsx(TimelineDot, { $active: true }),
8736
+ /* @__PURE__ */ jsxs(TimelineDetail, { children: [
8737
+ /* @__PURE__ */ jsx(TimelineLabel, { children: "Loaf Offering" }),
8738
+ /* @__PURE__ */ jsx(TimelinePrice, { $gold: true, children: "$18.65M" })
8739
+ ] })
8740
+ ] })
8741
+ ] }),
8742
+ /* @__PURE__ */ jsx(ComparableSalesTitle, { children: "Comparable Sales" }),
8743
+ /* @__PURE__ */ jsxs(StatRow, { children: [
8744
+ /* @__PURE__ */ jsx(StatLabel, { children: "200A Raglan St, Mosman" }),
8677
8745
  /* @__PURE__ */ jsxs(StatValue, { children: [
8678
- landSize.toLocaleString(),
8746
+ "$16.07M ",
8747
+ /* @__PURE__ */ jsx("span", { style: { fontSize: "0.7rem", color: "rgba(255,255,255,0.3)", fontWeight: 400 }, children: "Mar 2022" })
8748
+ ] })
8749
+ ] }),
8750
+ /* @__PURE__ */ jsxs(StatRow, { children: [
8751
+ /* @__PURE__ */ jsx(StatLabel, { children: "7 Bradleys Head Rd, Mosman" }),
8752
+ /* @__PURE__ */ jsxs(StatValue, { children: [
8753
+ "$27.96M ",
8754
+ /* @__PURE__ */ jsx("span", { style: { fontSize: "0.7rem", color: "rgba(255,255,255,0.3)", fontWeight: 400 }, children: "Aug 2024" })
8755
+ ] })
8756
+ ] })
8757
+ ] }),
8758
+ /* @__PURE__ */ jsxs(StatsColumn, { children: [
8759
+ /* @__PURE__ */ jsx(StatsColumnHeader, { children: "Asset Specification" }),
8760
+ /* @__PURE__ */ jsxs(StatRow, { children: [
8761
+ /* @__PURE__ */ jsx(StatLabel, { children: "Land (Freehold)" }),
8762
+ /* @__PURE__ */ jsxs(StatValue, { children: [
8763
+ landSize?.toLocaleString() ?? "1,848",
8679
8764
  " sqm"
8680
8765
  ] })
8681
8766
  ] }),
8682
- buildingSize != null && /* @__PURE__ */ jsxs(StatRow, { children: [
8683
- /* @__PURE__ */ jsx(StatLabel, { children: "Floor Area" }),
8767
+ /* @__PURE__ */ jsxs(StatRow, { children: [
8768
+ /* @__PURE__ */ jsx(StatLabel, { children: "Interior" }),
8684
8769
  /* @__PURE__ */ jsxs(StatValue, { children: [
8685
- buildingSize.toLocaleString(),
8770
+ buildingSize?.toLocaleString() ?? "~800",
8686
8771
  " sqm"
8687
8772
  ] })
8688
8773
  ] }),
8774
+ /* @__PURE__ */ jsxs(StatRow, { children: [
8775
+ /* @__PURE__ */ jsx(StatLabel, { children: "Built" }),
8776
+ /* @__PURE__ */ jsx(StatValue, { children: "1880 \u2014 Heritage Listed" })
8777
+ ] }),
8778
+ /* @__PURE__ */ jsxs(StatRow, { children: [
8779
+ /* @__PURE__ */ jsx(StatLabel, { children: "Zoning" }),
8780
+ /* @__PURE__ */ jsx(StatValue, { children: "R3 \u2014 Development Potential" })
8781
+ ] }),
8782
+ /* @__PURE__ */ jsxs(StatRow, { children: [
8783
+ /* @__PURE__ */ jsx(StatLabel, { children: "Heritage Premium" }),
8784
+ /* @__PURE__ */ jsx(StatValue, { style: { color: "#4ade80" }, children: "+12% vs non-heritage" })
8785
+ ] }),
8786
+ /* @__PURE__ */ jsxs(StatRow, { children: [
8787
+ /* @__PURE__ */ jsx(StatLabel, { children: "Suburb Median" }),
8788
+ /* @__PURE__ */ jsx(StatValue, { children: "$4.2M (Mosman)" })
8789
+ ] }),
8790
+ /* @__PURE__ */ jsxs(StatRow, { children: [
8791
+ /* @__PURE__ */ jsx(StatLabel, { children: "5yr Suburb Growth" }),
8792
+ /* @__PURE__ */ jsx(StatValue, { style: { color: "#4ade80" }, children: "+90%" })
8793
+ ] }),
8689
8794
  /* @__PURE__ */ jsx(AssetFeatureRow, { children: features.map((item, i) => /* @__PURE__ */ jsxs(AssetFeatureItem, { children: [
8690
8795
  item.icon && /* @__PURE__ */ jsx(AssetFeatureIcon, { children: item.icon }),
8691
8796
  item.value && /* @__PURE__ */ jsx(AssetFeatureValue, { children: item.value }),
8692
8797
  /* @__PURE__ */ jsx(AssetFeatureLabel, { children: item.label })
8693
8798
  ] }, i)) })
8694
- ] }),
8695
- /* @__PURE__ */ jsxs(StatsColumn, { children: [
8696
- /* @__PURE__ */ jsx(StatsColumnHeader, { children: "Property Info" }),
8697
- propertyInfo.map((item, i) => /* @__PURE__ */ jsxs(StatRow, { children: [
8698
- /* @__PURE__ */ jsx(StatLabel, { children: item.label }),
8699
- /* @__PURE__ */ jsxs(StatValue, { style: { color: item.status === "active" ? "#4ade80" : item.status === "progress" ? "#D4AF37" : void 0 }, children: [
8700
- item.status && /* @__PURE__ */ jsx("span", { style: { display: "inline-block", width: 6, height: 6, borderRadius: "50%", background: item.status === "active" ? "#4ade80" : "#D4AF37", marginRight: 6 } }),
8701
- item.value
8702
- ] })
8703
- ] }, i))
8704
8799
  ] })
8705
8800
  ] })
8706
8801
  ] }),
@@ -9128,6 +9223,102 @@ var StatValue = styled9.span`
9128
9223
  color: ${(p) => p.$gold ? "#D4AF37" : "#fff"};
9129
9224
  font-variant-numeric: tabular-nums;
9130
9225
  `;
9226
+ var InvestmentNarrativesRow = styled9.div`
9227
+ display: grid;
9228
+ grid-template-columns: repeat(3, 1fr);
9229
+ gap: 0.75rem;
9230
+ margin-bottom: 1.25rem;
9231
+ @media (max-width: 768px) { grid-template-columns: 1fr; }
9232
+ `;
9233
+ var NarrativeCard = styled9.div`
9234
+ background: rgba(255,255,255,0.025);
9235
+ border: 1px solid rgba(255,255,255,0.06);
9236
+ border-radius: 10px;
9237
+ padding: 1.25rem;
9238
+ display: flex;
9239
+ flex-direction: column;
9240
+ gap: 0.5rem;
9241
+ transition: border-color 0.2s ease;
9242
+ &:hover { border-color: rgba(212,175,55,0.25); }
9243
+ `;
9244
+ var NarrativeIcon = styled9.div`
9245
+ width: 36px;
9246
+ height: 36px;
9247
+ border-radius: 8px;
9248
+ background: rgba(212,175,55,0.08);
9249
+ border: 1px solid rgba(212,175,55,0.15);
9250
+ display: flex;
9251
+ align-items: center;
9252
+ justify-content: center;
9253
+ color: #D4AF37;
9254
+ flex-shrink: 0;
9255
+ `;
9256
+ var NarrativeTitle = styled9.div`
9257
+ font-size: 0.88rem;
9258
+ font-weight: 600;
9259
+ color: #fff;
9260
+ `;
9261
+ var NarrativeDesc = styled9.div`
9262
+ font-size: 0.78rem;
9263
+ color: rgba(255,255,255,0.45);
9264
+ line-height: 1.55;
9265
+ `;
9266
+ var TimelineWrap = styled9.div`
9267
+ display: flex;
9268
+ flex-direction: column;
9269
+ position: relative;
9270
+ padding-left: 0;
9271
+ `;
9272
+ var TimelineEntry = styled9.div`
9273
+ display: grid;
9274
+ grid-template-columns: 48px 12px 1fr;
9275
+ align-items: center;
9276
+ gap: 0.75rem;
9277
+ padding: 0.55rem 0;
9278
+ border-bottom: ${(p) => p.$last ? "none" : "1px solid rgba(255,255,255,0.03)"};
9279
+ `;
9280
+ var TimelineYear = styled9.span`
9281
+ font-size: 0.72rem;
9282
+ font-weight: 500;
9283
+ color: rgba(255,255,255,0.4);
9284
+ text-align: right;
9285
+ font-variant-numeric: tabular-nums;
9286
+ `;
9287
+ var TimelineDot = styled9.div`
9288
+ width: 8px;
9289
+ height: 8px;
9290
+ border-radius: 50%;
9291
+ background: ${(p) => p.$active ? "#D4AF37" : "rgba(255,255,255,0.15)"};
9292
+ border: ${(p) => p.$active ? "2px solid rgba(212,175,55,0.4)" : "none"};
9293
+ justify-self: center;
9294
+ `;
9295
+ var TimelineDetail = styled9.div`
9296
+ display: flex;
9297
+ align-items: center;
9298
+ justify-content: space-between;
9299
+ gap: 0.5rem;
9300
+ `;
9301
+ var TimelineLabel = styled9.span`
9302
+ font-size: 0.8rem;
9303
+ color: rgba(255,255,255,0.6);
9304
+ `;
9305
+ var TimelinePrice = styled9.span`
9306
+ font-size: 0.85rem;
9307
+ font-weight: 600;
9308
+ color: ${(p) => p.$gold ? "#D4AF37" : "#fff"};
9309
+ font-variant-numeric: tabular-nums;
9310
+ `;
9311
+ var ComparableSalesTitle = styled9.div`
9312
+ font-size: 0.65rem;
9313
+ color: rgba(255,255,255,0.35);
9314
+ text-transform: uppercase;
9315
+ letter-spacing: 0.08em;
9316
+ font-weight: 500;
9317
+ margin-top: 1rem;
9318
+ padding-top: 0.75rem;
9319
+ padding-bottom: 0.5rem;
9320
+ border-top: 1px solid rgba(255,255,255,0.04);
9321
+ `;
9131
9322
  var AssetFeatureRow = styled9.div`
9132
9323
  display: flex;
9133
9324
  flex-wrap: wrap;