@loafmarkets/ui 0.1.47 → 0.1.49

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
@@ -5393,7 +5393,7 @@ var Header = ({
5393
5393
  }
5394
5394
  )
5395
5395
  ] }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", alignItems: "center" }, children: [
5396
- /* @__PURE__ */ jsxRuntime.jsx(Button2, { className: "signup", onClick: handleSignIn, children: "Sign in / Connect" }),
5396
+ /* @__PURE__ */ jsxRuntime.jsx(Button2, { className: "signup", onClick: handleSignIn, children: "Connect" }),
5397
5397
  !isMobileMenuOpen && /* @__PURE__ */ jsxRuntime.jsx(
5398
5398
  MobileOnlyButton,
5399
5399
  {
@@ -5715,7 +5715,9 @@ var UserButton = styled24__default.default.button.attrs({ type: "button" })`
5715
5715
  var DropdownMenu = styled24__default.default.div`
5716
5716
  position: absolute;
5717
5717
  top: 100%;
5718
- left: 0;
5718
+ /* Anchor to the button's right edge so a short label (narrow button) near
5719
+ the viewport's right edge doesn't push the 180px-wide panel off-screen. */
5720
+ right: 0;
5719
5721
  margin-top: 0.25rem;
5720
5722
  background-color: #0d1117;
5721
5723
  border-radius: 8px;
@@ -11769,10 +11771,16 @@ function OrderConfirmationModal({
11769
11771
  estExposure,
11770
11772
  orderTotal,
11771
11773
  availableBalance,
11772
- onConfirm
11774
+ onConfirm,
11775
+ isPlacing = false,
11776
+ placingLabel = "Placing order\u2026"
11773
11777
  }) {
11774
11778
  if (!open) return null;
11775
- return /* @__PURE__ */ jsxRuntime.jsx(Overlay3, { onClick: onClose, children: /* @__PURE__ */ jsxRuntime.jsxs(Modal, { onClick: (e) => e.stopPropagation(), children: [
11779
+ const handleOverlayClose = () => {
11780
+ if (isPlacing) return;
11781
+ onClose();
11782
+ };
11783
+ return /* @__PURE__ */ jsxRuntime.jsx(Overlay3, { onClick: handleOverlayClose, children: /* @__PURE__ */ jsxRuntime.jsxs(Modal, { onClick: (e) => e.stopPropagation(), children: [
11776
11784
  /* @__PURE__ */ jsxRuntime.jsx(ModalHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs("h3", { children: [
11777
11785
  "Confirm Order",
11778
11786
  /* @__PURE__ */ jsxRuntime.jsx(Badge2, { children: "Subscribe" })
@@ -11827,8 +11835,29 @@ function OrderConfirmationModal({
11827
11835
  "."
11828
11836
  ] }),
11829
11837
  /* @__PURE__ */ jsxRuntime.jsxs(ButtonRow2, { children: [
11830
- /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", onClick: onClose, className: "secondary", children: "Cancel" }),
11831
- !hasInsufficientFunds && /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", onClick: onConfirm, className: "primary", children: "Place Order" })
11838
+ /* @__PURE__ */ jsxRuntime.jsx(
11839
+ "button",
11840
+ {
11841
+ type: "button",
11842
+ onClick: onClose,
11843
+ className: "secondary",
11844
+ disabled: isPlacing,
11845
+ children: "Cancel"
11846
+ }
11847
+ ),
11848
+ !hasInsufficientFunds && /* @__PURE__ */ jsxRuntime.jsx(
11849
+ "button",
11850
+ {
11851
+ type: "button",
11852
+ onClick: onConfirm,
11853
+ className: "primary",
11854
+ disabled: isPlacing,
11855
+ children: isPlacing ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
11856
+ /* @__PURE__ */ jsxRuntime.jsx(Spinner, { "aria-hidden": true }),
11857
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: placingLabel })
11858
+ ] }) : "Place Order"
11859
+ }
11860
+ )
11832
11861
  ] })
11833
11862
  ] }) });
11834
11863
  }
@@ -11939,6 +11968,20 @@ var Summary = styled24__default.default.div`
11939
11968
  font-size: 0.9rem;
11940
11969
  line-height: 1.5;
11941
11970
  `;
11971
+ var spin = styled24.keyframes`
11972
+ to { transform: rotate(360deg); }
11973
+ `;
11974
+ var Spinner = styled24__default.default.span`
11975
+ display: inline-block;
11976
+ width: 14px;
11977
+ height: 14px;
11978
+ border-radius: 50%;
11979
+ border: 2px solid rgba(255, 255, 255, 0.35);
11980
+ border-top-color: #fff;
11981
+ animation: ${spin} 0.7s linear infinite;
11982
+ margin-right: 0.5rem;
11983
+ vertical-align: -2px;
11984
+ `;
11942
11985
  var ButtonRow2 = styled24__default.default.div`
11943
11986
  display: flex;
11944
11987
  gap: 1rem;
@@ -11949,6 +11992,13 @@ var ButtonRow2 = styled24__default.default.div`
11949
11992
  font-weight: 600;
11950
11993
  font-size: 0.95rem;
11951
11994
  cursor: pointer;
11995
+ display: inline-flex;
11996
+ align-items: center;
11997
+ justify-content: center;
11998
+ }
11999
+ button:disabled {
12000
+ cursor: not-allowed;
12001
+ opacity: 0.75;
11952
12002
  }
11953
12003
  .secondary {
11954
12004
  background: rgba(255,255,255,0.1);
@@ -12292,7 +12342,9 @@ function PropertyBuy({
12292
12342
  estExposure,
12293
12343
  orderTotal,
12294
12344
  availableBalance,
12295
- onConfirm: confirmOrder
12345
+ onConfirm: confirmOrder,
12346
+ isPlacing: isPurchaseInFlight,
12347
+ placingLabel: purchaseStatus === "checking-allowance" ? "Checking allowance\u2026" : purchaseStatus === "approving" ? "Approving USDL\u2026" : purchaseStatus === "purchasing" ? "Confirming purchase\u2026" : purchaseStatus === "pending-allocation" ? "Awaiting allocation\u2026" : "Placing order\u2026"
12296
12348
  }
12297
12349
  )
12298
12350
  ] });