@loafmarkets/ui 0.1.340 → 0.1.341

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 CHANGED
@@ -3163,7 +3163,7 @@ function PropertyMediaRow({
3163
3163
  videoTitle,
3164
3164
  className
3165
3165
  }) {
3166
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-4 lg:flex-row lg:items-stretch lg:gap-6 lg:h-[700px]", className), children: [
3166
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-4 lg:flex-row lg:items-stretch lg:gap-6 lg:h-[480px] xl:h-[700px]", className), children: [
3167
3167
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "lg:hidden h-[320px]", children: /* @__PURE__ */ jsxRuntime.jsx(PropertyTour, { title: videoTitle, src: videoSrc, className: "h-full w-full !max-w-none" }) }),
3168
3168
  /* @__PURE__ */ jsxRuntime.jsx(
3169
3169
  "div",
@@ -11441,13 +11441,9 @@ var IPOAssetSelector = styled9__default.default.div`
11441
11441
  &:hover { box-shadow: 0 12px 32px rgba(0,0,0,0.4); border-color: rgba(255,255,255,0.15); }
11442
11442
 
11443
11443
  @media (max-width: 768px) {
11444
- flex-wrap: wrap;
11445
- padding: 0.75rem 1rem;
11446
- gap: 0.5rem;
11447
- }
11448
-
11449
- @media (max-width: 480px) {
11444
+ flex-wrap: nowrap;
11450
11445
  padding: 0.6rem 0.75rem;
11446
+ gap: 0.4rem;
11451
11447
  }
11452
11448
  `;
11453
11449
  var AssetThumbnail = styled9__default.default.img`
@@ -11526,9 +11522,9 @@ var SelectorMetrics = styled9__default.default.div`
11526
11522
  var TrailingWrapper = styled9__default.default.div`
11527
11523
  display: flex;
11528
11524
  align-items: center;
11525
+ flex-shrink: 0;
11529
11526
 
11530
11527
  @media (max-width: 768px) {
11531
- width: 100%;
11532
11528
  overflow-x: auto;
11533
11529
  -webkit-overflow-scrolling: touch;
11534
11530
  scrollbar-width: none;
@@ -11543,7 +11539,7 @@ var TrailingInner = styled9__default.default.div`
11543
11539
  display: inline-flex;
11544
11540
  align-items: center;
11545
11541
  min-width: max-content;
11546
- gap: 0.75rem;
11542
+ gap: 0.5rem;
11547
11543
  }
11548
11544
  `;
11549
11545
  var MetricLabel = styled9__default.default.span`
@@ -13379,6 +13375,7 @@ function OrderConfirmationModal({
13379
13375
  onConfirm();
13380
13376
  },
13381
13377
  disabled: isPlacing,
13378
+ "data-placing": isPlacing,
13382
13379
  children: isPlacing ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
13383
13380
  /* @__PURE__ */ jsxRuntime.jsx(Spinner, { "aria-hidden": true }),
13384
13381
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: placingLabel })
@@ -13410,6 +13407,7 @@ var Modal = styled9__default.default.div`
13410
13407
  max-width: 480px;
13411
13408
  width: 90%;
13412
13409
  box-shadow: 0 20px 60px rgba(0,0,0,0.5);
13410
+ overflow: hidden;
13413
13411
  `;
13414
13412
  var ModalHeader = styled9__default.default.div`
13415
13413
  display: flex;
@@ -13544,6 +13542,7 @@ var BaseButton = styled9__default.default.button`
13544
13542
  justify-content: center;
13545
13543
  white-space: nowrap;
13546
13544
  flex-shrink: 0;
13545
+ overflow: hidden;
13547
13546
  &:disabled {
13548
13547
  cursor: not-allowed;
13549
13548
  opacity: 0.75;
@@ -13559,6 +13558,10 @@ var PrimaryButton = styled9__default.default(BaseButton)`
13559
13558
  color: #fff;
13560
13559
  border: none;
13561
13560
  box-shadow: 0 4px 12px rgba(14,203,129,0.3);
13561
+ &[data-placing='true'] {
13562
+ font-size: 0.8rem;
13563
+ padding: 0.75rem 0.9rem;
13564
+ }
13562
13565
  `;
13563
13566
 
13564
13567
  // src/components/property-buy/constants.ts
@@ -14033,23 +14036,29 @@ function PortfolioActivityPanel({
14033
14036
  activeTab === "subscriptions" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
14034
14037
  offeringOrders.length === 0 && /* @__PURE__ */ jsxRuntime.jsx(EmptyState, { children: "IPO allocations will appear here once you subscribe." }),
14035
14038
  offeringOrders.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
14036
- /* @__PURE__ */ jsxRuntime.jsxs(GridHeader, { $columns: "1.2fr 0.8fr 1fr 1fr 0.8fr 1fr", children: [
14039
+ /* @__PURE__ */ jsxRuntime.jsxs(GridHeader, { $columns: "1.2fr 0.8fr 1fr 1fr 0.8fr 1fr 36px", children: [
14037
14040
  /* @__PURE__ */ jsxRuntime.jsx(GridHeaderCell, { children: "Asset" }),
14038
14041
  /* @__PURE__ */ jsxRuntime.jsx(GridHeaderCell, { children: "Qty" }),
14039
14042
  /* @__PURE__ */ jsxRuntime.jsx(GridHeaderCell, { children: "Price" }),
14040
14043
  /* @__PURE__ */ jsxRuntime.jsx(GridHeaderCell, { children: "Total" }),
14041
14044
  /* @__PURE__ */ jsxRuntime.jsx(GridHeaderCell, { children: "Status" }),
14042
- /* @__PURE__ */ jsxRuntime.jsx(GridHeaderCell, { children: "Date" })
14045
+ /* @__PURE__ */ jsxRuntime.jsx(GridHeaderCell, { children: "Date" }),
14046
+ /* @__PURE__ */ jsxRuntime.jsx(GridHeaderCell, {})
14043
14047
  ] }),
14044
14048
  pagedOfferingOrders.map((order) => {
14045
14049
  const meta = getOrderStatusMeta(order.status);
14046
- return /* @__PURE__ */ jsxRuntime.jsxs(GridRow, { $columns: "1.2fr 0.8fr 1fr 1fr 0.8fr 1fr", children: [
14050
+ return /* @__PURE__ */ jsxRuntime.jsxs(GridRow, { $columns: "1.2fr 0.8fr 1fr 1fr 0.8fr 1fr 36px", children: [
14047
14051
  /* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { $primary: true, children: order.tokenName }) }),
14048
14052
  /* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { children: formatNumber2(order.quantity) }) }),
14049
14053
  /* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { $muted: true, children: formatCurrency4(order.price) }) }),
14050
14054
  /* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { children: formatCurrency4(order.price * order.quantity) }) }),
14051
14055
  /* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(ActivityTag, { $color: meta.color, $bg: meta.bg, children: prettyLabel(order.status) }) }),
14052
- /* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { $muted: true, children: formatTimestamp(order.createdAt) }) })
14056
+ /* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { $muted: true, children: formatTimestamp(order.createdAt) }) }),
14057
+ /* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: order.txHash && /* @__PURE__ */ jsxRuntime.jsx(TxLink, { href: `${_blockExplorerBaseUrl}/${order.txHash}`, target: "_blank", rel: "noopener noreferrer", title: "View on BaseScan", children: /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
14058
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" }),
14059
+ /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "15 3 21 3 21 9" }),
14060
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "10", y1: "14", x2: "21", y2: "3" })
14061
+ ] }) }) })
14053
14062
  ] }, `${order.tokenName}-${order.txHash}-${order.createdAt}`);
14054
14063
  })
14055
14064
  ] })
@@ -14137,14 +14146,15 @@ function PortfolioActivityPanel({
14137
14146
  activeTab === "trades" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
14138
14147
  tradeHistory.length === 0 && /* @__PURE__ */ jsxRuntime.jsx(EmptyState, { children: "Completed trades will appear here." }),
14139
14148
  tradeHistory.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
14140
- /* @__PURE__ */ jsxRuntime.jsxs(GridHeader, { $columns: "1.2fr 0.6fr 0.8fr 1fr 1fr 1fr 1fr", children: [
14149
+ /* @__PURE__ */ jsxRuntime.jsxs(GridHeader, { $columns: "1.2fr 0.6fr 0.8fr 1fr 1fr 1fr 1fr 36px", children: [
14141
14150
  /* @__PURE__ */ jsxRuntime.jsx(GridHeaderCell, { children: "Asset" }),
14142
14151
  /* @__PURE__ */ jsxRuntime.jsx(GridHeaderCell, { children: "Side" }),
14143
14152
  /* @__PURE__ */ jsxRuntime.jsx(GridHeaderCell, { children: "Qty" }),
14144
14153
  /* @__PURE__ */ jsxRuntime.jsx(GridHeaderCell, { children: "Price" }),
14145
14154
  /* @__PURE__ */ jsxRuntime.jsx(GridHeaderCell, { children: "Total" }),
14146
14155
  /* @__PURE__ */ jsxRuntime.jsx(GridHeaderCell, { children: "Settlement" }),
14147
- /* @__PURE__ */ jsxRuntime.jsx(GridHeaderCell, { children: "Date" })
14156
+ /* @__PURE__ */ jsxRuntime.jsx(GridHeaderCell, { children: "Date" }),
14157
+ /* @__PURE__ */ jsxRuntime.jsx(GridHeaderCell, {})
14148
14158
  ] }),
14149
14159
  pagedTradeHistory.map((trade) => {
14150
14160
  const s = trade.status?.toUpperCase();
@@ -14153,14 +14163,19 @@ function PortfolioActivityPanel({
14153
14163
  const isSettling = !isSettled && !isFailed && !!trade.status;
14154
14164
  const settlementLabel = isSettled ? "Settled" : isFailed ? "Settlement Failed" : isSettling ? prettyLabel(trade.status) : "\u2014";
14155
14165
  const settlementMeta = isSettled ? { color: "#0ecb81", bg: "rgba(14,203,129,0.1)" } : isFailed ? { color: "#f6465d", bg: "rgba(246,70,93,0.12)" } : isSettling ? { color: "#f0b90b", bg: "rgba(240,185,11,0.15)" } : null;
14156
- return /* @__PURE__ */ jsxRuntime.jsxs(GridRow, { $columns: "1.2fr 0.6fr 0.8fr 1fr 1fr 1fr 1fr", children: [
14166
+ return /* @__PURE__ */ jsxRuntime.jsxs(GridRow, { $columns: "1.2fr 0.6fr 0.8fr 1fr 1fr 1fr 1fr 36px", children: [
14157
14167
  /* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { $primary: true, children: trade.tokenName }) }),
14158
14168
  /* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(SideBadge, { $side: sideLabel(trade.side), children: sideLabel(trade.side) }) }),
14159
14169
  /* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { children: formatNumber2(trade.quantity) }) }),
14160
14170
  /* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { children: formatCurrency4(trade.price) }) }),
14161
14171
  /* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { children: formatCurrency4(trade.price * trade.quantity) }) }),
14162
14172
  /* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: settlementMeta ? /* @__PURE__ */ jsxRuntime.jsx(ActivityTag, { $color: settlementMeta.color, $bg: settlementMeta.bg, children: settlementLabel }) : /* @__PURE__ */ jsxRuntime.jsx(CellText, { $muted: true, children: "\u2014" }) }),
14163
- /* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { $muted: true, children: formatTimestamp(trade.executedAt) }) })
14173
+ /* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: /* @__PURE__ */ jsxRuntime.jsx(CellText, { $muted: true, children: formatTimestamp(trade.executedAt) }) }),
14174
+ /* @__PURE__ */ jsxRuntime.jsx(GridCell, { children: trade.txHash && /* @__PURE__ */ jsxRuntime.jsx(TxLink, { href: `${_blockExplorerBaseUrl}/${trade.txHash}`, target: "_blank", rel: "noopener noreferrer", title: "View on BaseScan", children: /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
14175
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" }),
14176
+ /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "15 3 21 3 21 9" }),
14177
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "10", y1: "14", x2: "21", y2: "3" })
14178
+ ] }) }) })
14164
14179
  ] }, trade.tradeId);
14165
14180
  })
14166
14181
  ] })