@loafmarkets/ui 0.1.339 → 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.mjs CHANGED
@@ -3137,7 +3137,7 @@ function PropertyMediaRow({
3137
3137
  videoTitle,
3138
3138
  className
3139
3139
  }) {
3140
- return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-4 lg:flex-row lg:items-stretch lg:gap-6 lg:h-[700px]", className), children: [
3140
+ return /* @__PURE__ */ 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: [
3141
3141
  /* @__PURE__ */ jsx("div", { className: "lg:hidden h-[320px]", children: /* @__PURE__ */ jsx(PropertyTour, { title: videoTitle, src: videoSrc, className: "h-full w-full !max-w-none" }) }),
3142
3142
  /* @__PURE__ */ jsx(
3143
3143
  "div",
@@ -11361,7 +11361,7 @@ function AssetSelectorBar({
11361
11361
  ] })
11362
11362
  ] })
11363
11363
  ] }, m.label)) }),
11364
- trailing != null && /* @__PURE__ */ jsx(TrailingWrapper, { children: trailing }),
11364
+ trailing != null && /* @__PURE__ */ jsx(TrailingWrapper, { children: /* @__PURE__ */ jsx(TrailingInner, { children: trailing }) }),
11365
11365
  isDropdownOpen && hasItems && /* @__PURE__ */ jsx(IPODropdown, { children: selectorItems.map((item) => {
11366
11366
  const isCurrent = item.tokenName === currentTokenName;
11367
11367
  const status = item.status?.toUpperCase();
@@ -11415,13 +11415,9 @@ var IPOAssetSelector = styled9.div`
11415
11415
  &:hover { box-shadow: 0 12px 32px rgba(0,0,0,0.4); border-color: rgba(255,255,255,0.15); }
11416
11416
 
11417
11417
  @media (max-width: 768px) {
11418
- flex-wrap: wrap;
11419
- padding: 0.75rem 1rem;
11420
- gap: 0.5rem;
11421
- }
11422
-
11423
- @media (max-width: 480px) {
11418
+ flex-wrap: nowrap;
11424
11419
  padding: 0.6rem 0.75rem;
11420
+ gap: 0.4rem;
11425
11421
  }
11426
11422
  `;
11427
11423
  var AssetThumbnail = styled9.img`
@@ -11500,15 +11496,26 @@ var SelectorMetrics = styled9.div`
11500
11496
  var TrailingWrapper = styled9.div`
11501
11497
  display: flex;
11502
11498
  align-items: center;
11499
+ flex-shrink: 0;
11503
11500
 
11504
11501
  @media (max-width: 768px) {
11505
- width: 100%;
11506
11502
  overflow-x: auto;
11507
11503
  -webkit-overflow-scrolling: touch;
11508
11504
  scrollbar-width: none;
11509
11505
  &::-webkit-scrollbar { display: none; }
11510
11506
  }
11511
11507
  `;
11508
+ var TrailingInner = styled9.div`
11509
+ display: flex;
11510
+ align-items: center;
11511
+
11512
+ @media (max-width: 768px) {
11513
+ display: inline-flex;
11514
+ align-items: center;
11515
+ min-width: max-content;
11516
+ gap: 0.5rem;
11517
+ }
11518
+ `;
11512
11519
  var MetricLabel = styled9.span`
11513
11520
  font-size: 0.75rem;
11514
11521
  color: var(--color-text-secondary);
@@ -13342,6 +13349,7 @@ function OrderConfirmationModal({
13342
13349
  onConfirm();
13343
13350
  },
13344
13351
  disabled: isPlacing,
13352
+ "data-placing": isPlacing,
13345
13353
  children: isPlacing ? /* @__PURE__ */ jsxs(Fragment, { children: [
13346
13354
  /* @__PURE__ */ jsx(Spinner, { "aria-hidden": true }),
13347
13355
  /* @__PURE__ */ jsx("span", { children: placingLabel })
@@ -13373,6 +13381,7 @@ var Modal = styled9.div`
13373
13381
  max-width: 480px;
13374
13382
  width: 90%;
13375
13383
  box-shadow: 0 20px 60px rgba(0,0,0,0.5);
13384
+ overflow: hidden;
13376
13385
  `;
13377
13386
  var ModalHeader = styled9.div`
13378
13387
  display: flex;
@@ -13507,6 +13516,7 @@ var BaseButton = styled9.button`
13507
13516
  justify-content: center;
13508
13517
  white-space: nowrap;
13509
13518
  flex-shrink: 0;
13519
+ overflow: hidden;
13510
13520
  &:disabled {
13511
13521
  cursor: not-allowed;
13512
13522
  opacity: 0.75;
@@ -13522,6 +13532,10 @@ var PrimaryButton = styled9(BaseButton)`
13522
13532
  color: #fff;
13523
13533
  border: none;
13524
13534
  box-shadow: 0 4px 12px rgba(14,203,129,0.3);
13535
+ &[data-placing='true'] {
13536
+ font-size: 0.8rem;
13537
+ padding: 0.75rem 0.9rem;
13538
+ }
13525
13539
  `;
13526
13540
 
13527
13541
  // src/components/property-buy/constants.ts
@@ -13996,23 +14010,29 @@ function PortfolioActivityPanel({
13996
14010
  activeTab === "subscriptions" && /* @__PURE__ */ jsxs(Fragment, { children: [
13997
14011
  offeringOrders.length === 0 && /* @__PURE__ */ jsx(EmptyState, { children: "IPO allocations will appear here once you subscribe." }),
13998
14012
  offeringOrders.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
13999
- /* @__PURE__ */ jsxs(GridHeader, { $columns: "1.2fr 0.8fr 1fr 1fr 0.8fr 1fr", children: [
14013
+ /* @__PURE__ */ jsxs(GridHeader, { $columns: "1.2fr 0.8fr 1fr 1fr 0.8fr 1fr 36px", children: [
14000
14014
  /* @__PURE__ */ jsx(GridHeaderCell, { children: "Asset" }),
14001
14015
  /* @__PURE__ */ jsx(GridHeaderCell, { children: "Qty" }),
14002
14016
  /* @__PURE__ */ jsx(GridHeaderCell, { children: "Price" }),
14003
14017
  /* @__PURE__ */ jsx(GridHeaderCell, { children: "Total" }),
14004
14018
  /* @__PURE__ */ jsx(GridHeaderCell, { children: "Status" }),
14005
- /* @__PURE__ */ jsx(GridHeaderCell, { children: "Date" })
14019
+ /* @__PURE__ */ jsx(GridHeaderCell, { children: "Date" }),
14020
+ /* @__PURE__ */ jsx(GridHeaderCell, {})
14006
14021
  ] }),
14007
14022
  pagedOfferingOrders.map((order) => {
14008
14023
  const meta = getOrderStatusMeta(order.status);
14009
- return /* @__PURE__ */ jsxs(GridRow, { $columns: "1.2fr 0.8fr 1fr 1fr 0.8fr 1fr", children: [
14024
+ return /* @__PURE__ */ jsxs(GridRow, { $columns: "1.2fr 0.8fr 1fr 1fr 0.8fr 1fr 36px", children: [
14010
14025
  /* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { $primary: true, children: order.tokenName }) }),
14011
14026
  /* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { children: formatNumber2(order.quantity) }) }),
14012
14027
  /* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { $muted: true, children: formatCurrency4(order.price) }) }),
14013
14028
  /* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { children: formatCurrency4(order.price * order.quantity) }) }),
14014
14029
  /* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(ActivityTag, { $color: meta.color, $bg: meta.bg, children: prettyLabel(order.status) }) }),
14015
- /* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { $muted: true, children: formatTimestamp(order.createdAt) }) })
14030
+ /* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { $muted: true, children: formatTimestamp(order.createdAt) }) }),
14031
+ /* @__PURE__ */ jsx(GridCell, { children: order.txHash && /* @__PURE__ */ jsx(TxLink, { href: `${_blockExplorerBaseUrl}/${order.txHash}`, target: "_blank", rel: "noopener noreferrer", title: "View on BaseScan", children: /* @__PURE__ */ jsxs("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
14032
+ /* @__PURE__ */ jsx("path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" }),
14033
+ /* @__PURE__ */ jsx("polyline", { points: "15 3 21 3 21 9" }),
14034
+ /* @__PURE__ */ jsx("line", { x1: "10", y1: "14", x2: "21", y2: "3" })
14035
+ ] }) }) })
14016
14036
  ] }, `${order.tokenName}-${order.txHash}-${order.createdAt}`);
14017
14037
  })
14018
14038
  ] })
@@ -14100,14 +14120,15 @@ function PortfolioActivityPanel({
14100
14120
  activeTab === "trades" && /* @__PURE__ */ jsxs(Fragment, { children: [
14101
14121
  tradeHistory.length === 0 && /* @__PURE__ */ jsx(EmptyState, { children: "Completed trades will appear here." }),
14102
14122
  tradeHistory.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
14103
- /* @__PURE__ */ jsxs(GridHeader, { $columns: "1.2fr 0.6fr 0.8fr 1fr 1fr 1fr 1fr", children: [
14123
+ /* @__PURE__ */ jsxs(GridHeader, { $columns: "1.2fr 0.6fr 0.8fr 1fr 1fr 1fr 1fr 36px", children: [
14104
14124
  /* @__PURE__ */ jsx(GridHeaderCell, { children: "Asset" }),
14105
14125
  /* @__PURE__ */ jsx(GridHeaderCell, { children: "Side" }),
14106
14126
  /* @__PURE__ */ jsx(GridHeaderCell, { children: "Qty" }),
14107
14127
  /* @__PURE__ */ jsx(GridHeaderCell, { children: "Price" }),
14108
14128
  /* @__PURE__ */ jsx(GridHeaderCell, { children: "Total" }),
14109
14129
  /* @__PURE__ */ jsx(GridHeaderCell, { children: "Settlement" }),
14110
- /* @__PURE__ */ jsx(GridHeaderCell, { children: "Date" })
14130
+ /* @__PURE__ */ jsx(GridHeaderCell, { children: "Date" }),
14131
+ /* @__PURE__ */ jsx(GridHeaderCell, {})
14111
14132
  ] }),
14112
14133
  pagedTradeHistory.map((trade) => {
14113
14134
  const s = trade.status?.toUpperCase();
@@ -14116,14 +14137,19 @@ function PortfolioActivityPanel({
14116
14137
  const isSettling = !isSettled && !isFailed && !!trade.status;
14117
14138
  const settlementLabel = isSettled ? "Settled" : isFailed ? "Settlement Failed" : isSettling ? prettyLabel(trade.status) : "\u2014";
14118
14139
  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;
14119
- return /* @__PURE__ */ jsxs(GridRow, { $columns: "1.2fr 0.6fr 0.8fr 1fr 1fr 1fr 1fr", children: [
14140
+ return /* @__PURE__ */ jsxs(GridRow, { $columns: "1.2fr 0.6fr 0.8fr 1fr 1fr 1fr 1fr 36px", children: [
14120
14141
  /* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { $primary: true, children: trade.tokenName }) }),
14121
14142
  /* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(SideBadge, { $side: sideLabel(trade.side), children: sideLabel(trade.side) }) }),
14122
14143
  /* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { children: formatNumber2(trade.quantity) }) }),
14123
14144
  /* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { children: formatCurrency4(trade.price) }) }),
14124
14145
  /* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { children: formatCurrency4(trade.price * trade.quantity) }) }),
14125
14146
  /* @__PURE__ */ jsx(GridCell, { children: settlementMeta ? /* @__PURE__ */ jsx(ActivityTag, { $color: settlementMeta.color, $bg: settlementMeta.bg, children: settlementLabel }) : /* @__PURE__ */ jsx(CellText, { $muted: true, children: "\u2014" }) }),
14126
- /* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { $muted: true, children: formatTimestamp(trade.executedAt) }) })
14147
+ /* @__PURE__ */ jsx(GridCell, { children: /* @__PURE__ */ jsx(CellText, { $muted: true, children: formatTimestamp(trade.executedAt) }) }),
14148
+ /* @__PURE__ */ jsx(GridCell, { children: trade.txHash && /* @__PURE__ */ jsx(TxLink, { href: `${_blockExplorerBaseUrl}/${trade.txHash}`, target: "_blank", rel: "noopener noreferrer", title: "View on BaseScan", children: /* @__PURE__ */ jsxs("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
14149
+ /* @__PURE__ */ jsx("path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" }),
14150
+ /* @__PURE__ */ jsx("polyline", { points: "15 3 21 3 21 9" }),
14151
+ /* @__PURE__ */ jsx("line", { x1: "10", y1: "14", x2: "21", y2: "3" })
14152
+ ] }) }) })
14127
14153
  ] }, trade.tradeId);
14128
14154
  })
14129
14155
  ] })