@retinalabsllc/zairusjs 15.0.2 → 15.0.5

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
@@ -1561,7 +1561,7 @@ var UniversalHomeView = ({
1561
1561
  const [isAvatarLoaded, setIsAvatarLoaded] = (0, import_react25.useState)(false);
1562
1562
  const [showNotifDialog, setShowNotifDialog] = (0, import_react25.useState)(false);
1563
1563
  const [selectedNotif, setSelectedNotif] = (0, import_react25.useState)(null);
1564
- const fallbackAvatarUrl = `/api/avatar/?name=${encodeURIComponent(fullName || " ")}&background=ffffff&color=000000&size=200&font-size=0.33`;
1564
+ const fallbackAvatarUrl = `/api/avatar/?name=${encodeURIComponent(fullName || " ")}&background=ceff8a&color=000000&size=200&font-size=0.33`;
1565
1565
  const finalAvatarSrc = avatarSrc || fallbackAvatarUrl;
1566
1566
  const hasUnreadNotifs = notifications.some((n) => !n.isRead);
1567
1567
  (0, import_react25.useEffect)(() => {
@@ -1728,7 +1728,7 @@ var ConfirmationDialog = ({
1728
1728
  {
1729
1729
  onClick: onConfirm,
1730
1730
  disabled: isProcessing,
1731
- className: `flex-1 py-4 text-[13px] transition-colors disabled:opacity-50 flex justify-center items-center outline-none ${isDestructive ? "text-black hover:bg-red-50" : "text-black hover:bg-neutral-50"}`
1731
+ className: `flex-1 py-4 text-[13px] transition-colors disabled:opacity-50 flex justify-center items-center outline-none ${isDestructive ? "text-black hover:bg-neutral-50" : "text-black hover:bg-neutral-50"}`
1732
1732
  },
1733
1733
  isProcessing ? /* @__PURE__ */ import_react27.default.createElement(import_react28.HugeiconsIcon, { icon: import_core_free_icons9.Loading03Icon, className: "animate-spin", size: 18 }) : confirmText
1734
1734
  ))));
@@ -2214,7 +2214,7 @@ var MenuRow = ({
2214
2214
  "div",
2215
2215
  {
2216
2216
  onClick: disabled ? void 0 : onClick,
2217
- className: `flex items-center p-3 transition-colors ${!isLast ? "border-b border-neutral-100" : ""} ${disabled ? "opacity-40 cursor-not-allowed" : "cursor-pointer hover:bg-neutral-50"}`
2217
+ className: `flex items-center p-3 transition-colors ${!isLast ? "" : ""} ${disabled ? "opacity-40 cursor-not-allowed" : "cursor-pointer hover:bg-neutral-50"}`
2218
2218
  },
2219
2219
  /* @__PURE__ */ import_react31.default.createElement("div", { className: "w-9 h-9 rounded-full border border-neutral-200 flex items-center justify-center shrink-0 mr-4" }, /* @__PURE__ */ import_react31.default.createElement(import_react32.HugeiconsIcon, { icon, size: 16, className: iconColor })),
2220
2220
  /* @__PURE__ */ import_react31.default.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ import_react31.default.createElement("p", { className: `text-[13px] truncate ${titleColor}` }, title), /* @__PURE__ */ import_react31.default.createElement("p", { className: "text-[11px] text-neutral-500 truncate" }, subtitle)),
@@ -3957,7 +3957,7 @@ var formatWeb3Name = (name) => {
3957
3957
  var PageSpinner4 = () => /* @__PURE__ */ import_react67.default.createElement("div", { className: "flex justify-center items-center py-12 w-full" }, /* @__PURE__ */ import_react67.default.createElement(import_react68.HugeiconsIcon, { icon: import_core_free_icons22.Loading03Icon, size: 32, className: "animate-spin mb-4 text-black" }));
3958
3958
  var AvatarLogo = ({ src, alt, name, sizeClass = "w-12 h-12" }) => {
3959
3959
  const [isLoaded, setIsLoaded] = (0, import_react67.useState)(false);
3960
- const fallbackUrl = `/api/avatar/?name=${encodeURIComponent(name || " ")}&background=ffffff&color=000000&size=200&font-size=0.33`;
3960
+ const fallbackUrl = `/api/avatar/?name=${encodeURIComponent(name || " ")}&background=ceff8a&color=000000&size=200&font-size=0.33`;
3961
3961
  const finalSrc = src || fallbackUrl;
3962
3962
  return /* @__PURE__ */ import_react67.default.createElement("div", { className: `relative shrink-0 rounded-full bg-neutral-100 flex items-center justify-center overflow-hidden border-[3px] border-white ${sizeClass}` }, !isLoaded && /* @__PURE__ */ import_react67.default.createElement(import_react68.HugeiconsIcon, { icon: import_core_free_icons22.Loading03Icon, size: 16, className: "animate-spin text-neutral-400 absolute" }), /* @__PURE__ */ import_react67.default.createElement("img", { src: finalSrc, alt, onLoad: () => setIsLoaded(true), className: `w-full h-full object-cover transition-opacity duration-300 ${isLoaded ? "opacity-100" : "opacity-0"}` }));
3963
3963
  };
@@ -4089,7 +4089,7 @@ var UniversalReferralPage = ({
4089
4089
  };
4090
4090
  const AvatarLogo2 = ({ src, alt, name, sizeClass = "w-10 h-10" }) => {
4091
4091
  const [isLoaded, setIsLoaded] = (0, import_react69.useState)(false);
4092
- const fallbackUrl = `/api/avatar/?name=${encodeURIComponent(name || " ")}&background=ffffff&color=000000&size=200&font-size=0.33`;
4092
+ const fallbackUrl = `/api/avatar/?name=${encodeURIComponent(name || " ")}&background=ceff8a&color=000000&size=200&font-size=0.33`;
4093
4093
  const finalSrc = src || fallbackUrl;
4094
4094
  return /* @__PURE__ */ import_react69.default.createElement("div", { className: `relative shrink-0 rounded-full bg-neutral-100 flex items-center justify-center overflow-hidden border-2 border-white ${sizeClass}` }, !isLoaded && /* @__PURE__ */ import_react69.default.createElement(import_react70.HugeiconsIcon, { icon: import_core_free_icons23.Loading03Icon, size: 16, className: "animate-spin text-neutral-400 absolute" }), /* @__PURE__ */ import_react69.default.createElement("img", { src: finalSrc, alt, onLoad: () => setIsLoaded(true), className: `w-full h-full object-cover transition-opacity duration-300 ${isLoaded ? "opacity-100" : "opacity-0"}` }));
4095
4095
  };
@@ -4464,19 +4464,10 @@ var PinDialerBottomSheet = ({
4464
4464
  (0, import_react75.useEffect)(() => {
4465
4465
  setPin("");
4466
4466
  }, [isOpen]);
4467
- const handlePinPress = (value) => {
4468
- if (isVerifying) return;
4469
- if (value === "del") {
4470
- setPin((prev) => prev.slice(0, -1));
4471
- return;
4472
- }
4473
- if (pin.length < 4) {
4474
- const newPin = pin + value;
4475
- setPin(newPin);
4476
- if (newPin.length === 4) {
4477
- onComplete(newPin);
4478
- }
4479
- }
4467
+ const handleSubmit = (e) => {
4468
+ e.preventDefault();
4469
+ if (isVerifying || pin.length !== 4) return;
4470
+ onComplete(pin);
4480
4471
  };
4481
4472
  if (!isOpen) return null;
4482
4473
  return /* @__PURE__ */ import_react75.default.createElement("div", { className: "fixed inset-0 z-150 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ import_react75.default.createElement(
@@ -4487,44 +4478,37 @@ var PinDialerBottomSheet = ({
4487
4478
  if (!isVerifying) onClose();
4488
4479
  }
4489
4480
  }
4490
- ), /* @__PURE__ */ import_react75.default.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ import_react75.default.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, /* @__PURE__ */ import_react75.default.createElement("h3", { className: "text-[16px] text-black tracking-tight" }, title), /* @__PURE__ */ import_react75.default.createElement(
4481
+ ), /* @__PURE__ */ import_react75.default.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ import_react75.default.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, /* @__PURE__ */ import_react75.default.createElement("h3", { className: "text-[16px] text-black tracking-tight" }, title), /* @__PURE__ */ import_react75.default.createElement(
4491
4482
  "button",
4492
4483
  {
4493
4484
  onClick: () => {
4494
4485
  if (!isVerifying) onClose();
4495
4486
  },
4496
- className: "text-neutral-400 hover:text-black transition-colors outline-none"
4487
+ disabled: isVerifying,
4488
+ className: "text-neutral-400 hover:text-black transition-colors outline-none disabled:opacity-50"
4497
4489
  },
4498
4490
  /* @__PURE__ */ import_react75.default.createElement(import_react76.HugeiconsIcon, { icon: import_core_free_icons26.CancelCircleIcon, size: 20 })
4499
- )), /* @__PURE__ */ import_react75.default.createElement("div", { className: "flex flex-col px-6 pb-8 pt-2 relative" }, /* @__PURE__ */ import_react75.default.createElement("div", { className: "flex justify-center gap-4 mb-8" }, [0, 1, 2, 3].map((i) => /* @__PURE__ */ import_react75.default.createElement(
4500
- "div",
4491
+ )), /* @__PURE__ */ import_react75.default.createElement("div", { className: "flex flex-col px-6 pb-6 pt-2 relative" }, /* @__PURE__ */ import_react75.default.createElement("form", { onSubmit: handleSubmit, className: "flex flex-col gap-6" }, /* @__PURE__ */ import_react75.default.createElement(
4492
+ TextInput,
4501
4493
  {
4502
- key: i,
4503
- className: `w-2 h-2 rounded-full transition-colors duration-200 ${pin.length > i ? "bg-black" : "bg-neutral-200"}`
4494
+ type: "password",
4495
+ label: "Enter 4-Digit PIN",
4496
+ maxLength: 4,
4497
+ disabled: isVerifying,
4498
+ value: pin,
4499
+ onChange: (val) => setPin(val.replace(/\D/g, "").substring(0, 4)),
4500
+ placeholder: "\u2022\u2022\u2022\u2022"
4504
4501
  }
4505
- ))), isVerifying && /* @__PURE__ */ import_react75.default.createElement("div", { className: "absolute inset-0 bg-white/80 backdrop-blur-sm z-10 flex items-center justify-center rounded-b-2xl" }, /* @__PURE__ */ import_react75.default.createElement(import_react76.HugeiconsIcon, { icon: import_core_free_icons26.Loading03Icon, size: 28, className: "animate-spin text-black" })), /* @__PURE__ */ import_react75.default.createElement("div", { className: "grid grid-cols-3 gap-y-4 gap-x-6 max-w-60 mx-auto" }, [1, 2, 3, 4, 5, 6, 7, 8, 9].map((num) => /* @__PURE__ */ import_react75.default.createElement(
4506
- "button",
4507
- {
4508
- key: num,
4509
- onClick: () => handlePinPress(num),
4510
- className: "w-14 h-14 rounded-full flex bg-neutral-50 items-center justify-center text-sm text-black hover:bg-neutral-50 transition-colors mx-auto outline-none active:scale-95"
4511
- },
4512
- num
4513
- )), /* @__PURE__ */ import_react75.default.createElement("div", null), " ", /* @__PURE__ */ import_react75.default.createElement(
4514
- "button",
4515
- {
4516
- onClick: () => handlePinPress(0),
4517
- className: "w-14 h-14 rounded-full flex bg-neutral-50 items-center justify-center text-sm text-black hover:bg-neutral-50 transition-colors mx-auto outline-none active:scale-95"
4518
- },
4519
- "0"
4520
- ), /* @__PURE__ */ import_react75.default.createElement(
4521
- "button",
4502
+ ), /* @__PURE__ */ import_react75.default.createElement("div", { className: "pt-2" }, /* @__PURE__ */ import_react75.default.createElement(
4503
+ ThreeDActionButton,
4522
4504
  {
4523
- onClick: () => handlePinPress("del"),
4524
- className: "w-14 h-14 rounded-full flex items-center justify-center text-neutral-400 hover:text-black hover:bg-neutral-50 transition-colors mx-auto outline-none active:scale-95"
4505
+ type: "submit",
4506
+ disabled: isVerifying || pin.length !== 4,
4507
+ isLoading: isVerifying,
4508
+ className: "w-full"
4525
4509
  },
4526
- /* @__PURE__ */ import_react75.default.createElement(import_react76.HugeiconsIcon, { icon: import_core_free_icons26.LessThanIcon, size: 20 })
4527
- )))));
4510
+ "Confirm Action"
4511
+ ))))));
4528
4512
  };
4529
4513
  // Annotate the CommonJS export names for ESM import in node:
4530
4514
  0 && (module.exports = {
package/dist/index.mjs CHANGED
@@ -1516,7 +1516,7 @@ var UniversalHomeView = ({
1516
1516
  const [isAvatarLoaded, setIsAvatarLoaded] = useState9(false);
1517
1517
  const [showNotifDialog, setShowNotifDialog] = useState9(false);
1518
1518
  const [selectedNotif, setSelectedNotif] = useState9(null);
1519
- const fallbackAvatarUrl = `/api/avatar/?name=${encodeURIComponent(fullName || " ")}&background=ffffff&color=000000&size=200&font-size=0.33`;
1519
+ const fallbackAvatarUrl = `/api/avatar/?name=${encodeURIComponent(fullName || " ")}&background=ceff8a&color=000000&size=200&font-size=0.33`;
1520
1520
  const finalAvatarSrc = avatarSrc || fallbackAvatarUrl;
1521
1521
  const hasUnreadNotifs = notifications.some((n) => !n.isRead);
1522
1522
  useEffect7(() => {
@@ -1693,7 +1693,7 @@ var ConfirmationDialog = ({
1693
1693
  {
1694
1694
  onClick: onConfirm,
1695
1695
  disabled: isProcessing,
1696
- className: `flex-1 py-4 text-[13px] transition-colors disabled:opacity-50 flex justify-center items-center outline-none ${isDestructive ? "text-black hover:bg-red-50" : "text-black hover:bg-neutral-50"}`
1696
+ className: `flex-1 py-4 text-[13px] transition-colors disabled:opacity-50 flex justify-center items-center outline-none ${isDestructive ? "text-black hover:bg-neutral-50" : "text-black hover:bg-neutral-50"}`
1697
1697
  },
1698
1698
  isProcessing ? /* @__PURE__ */ React17.createElement(HugeiconsIcon11, { icon: Loading03Icon6, className: "animate-spin", size: 18 }) : confirmText
1699
1699
  ))));
@@ -2187,7 +2187,7 @@ var MenuRow = ({
2187
2187
  "div",
2188
2188
  {
2189
2189
  onClick: disabled ? void 0 : onClick,
2190
- className: `flex items-center p-3 transition-colors ${!isLast ? "border-b border-neutral-100" : ""} ${disabled ? "opacity-40 cursor-not-allowed" : "cursor-pointer hover:bg-neutral-50"}`
2190
+ className: `flex items-center p-3 transition-colors ${!isLast ? "" : ""} ${disabled ? "opacity-40 cursor-not-allowed" : "cursor-pointer hover:bg-neutral-50"}`
2191
2191
  },
2192
2192
  /* @__PURE__ */ React19.createElement("div", { className: "w-9 h-9 rounded-full border border-neutral-200 flex items-center justify-center shrink-0 mr-4" }, /* @__PURE__ */ React19.createElement(HugeiconsIcon13, { icon, size: 16, className: iconColor })),
2193
2193
  /* @__PURE__ */ React19.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React19.createElement("p", { className: `text-[13px] truncate ${titleColor}` }, title), /* @__PURE__ */ React19.createElement("p", { className: "text-[11px] text-neutral-500 truncate" }, subtitle)),
@@ -3964,7 +3964,7 @@ var formatWeb3Name = (name) => {
3964
3964
  var PageSpinner4 = () => /* @__PURE__ */ React41.createElement("div", { className: "flex justify-center items-center py-12 w-full" }, /* @__PURE__ */ React41.createElement(HugeiconsIcon27, { icon: Loading03Icon16, size: 32, className: "animate-spin mb-4 text-black" }));
3965
3965
  var AvatarLogo = ({ src, alt, name, sizeClass = "w-12 h-12" }) => {
3966
3966
  const [isLoaded, setIsLoaded] = useState26(false);
3967
- const fallbackUrl = `/api/avatar/?name=${encodeURIComponent(name || " ")}&background=ffffff&color=000000&size=200&font-size=0.33`;
3967
+ const fallbackUrl = `/api/avatar/?name=${encodeURIComponent(name || " ")}&background=ceff8a&color=000000&size=200&font-size=0.33`;
3968
3968
  const finalSrc = src || fallbackUrl;
3969
3969
  return /* @__PURE__ */ React41.createElement("div", { className: `relative shrink-0 rounded-full bg-neutral-100 flex items-center justify-center overflow-hidden border-[3px] border-white ${sizeClass}` }, !isLoaded && /* @__PURE__ */ React41.createElement(HugeiconsIcon27, { icon: Loading03Icon16, size: 16, className: "animate-spin text-neutral-400 absolute" }), /* @__PURE__ */ React41.createElement("img", { src: finalSrc, alt, onLoad: () => setIsLoaded(true), className: `w-full h-full object-cover transition-opacity duration-300 ${isLoaded ? "opacity-100" : "opacity-0"}` }));
3970
3970
  };
@@ -4101,7 +4101,7 @@ var UniversalReferralPage = ({
4101
4101
  };
4102
4102
  const AvatarLogo2 = ({ src, alt, name, sizeClass = "w-10 h-10" }) => {
4103
4103
  const [isLoaded, setIsLoaded] = useState27(false);
4104
- const fallbackUrl = `/api/avatar/?name=${encodeURIComponent(name || " ")}&background=ffffff&color=000000&size=200&font-size=0.33`;
4104
+ const fallbackUrl = `/api/avatar/?name=${encodeURIComponent(name || " ")}&background=ceff8a&color=000000&size=200&font-size=0.33`;
4105
4105
  const finalSrc = src || fallbackUrl;
4106
4106
  return /* @__PURE__ */ React42.createElement("div", { className: `relative shrink-0 rounded-full bg-neutral-100 flex items-center justify-center overflow-hidden border-2 border-white ${sizeClass}` }, !isLoaded && /* @__PURE__ */ React42.createElement(HugeiconsIcon28, { icon: Loading03Icon17, size: 16, className: "animate-spin text-neutral-400 absolute" }), /* @__PURE__ */ React42.createElement("img", { src: finalSrc, alt, onLoad: () => setIsLoaded(true), className: `w-full h-full object-cover transition-opacity duration-300 ${isLoaded ? "opacity-100" : "opacity-0"}` }));
4107
4107
  };
@@ -4468,7 +4468,7 @@ var CardCreationDialog = ({ isOpen, onClose, onSuccess }) => {
4468
4468
  // src/components/PinDialerBottomSheet.tsx
4469
4469
  import React45, { useState as useState30, useEffect as useEffect17 } from "react";
4470
4470
  import { HugeiconsIcon as HugeiconsIcon31 } from "@hugeicons/react";
4471
- import { Loading03Icon as Loading03Icon19, CancelCircleIcon as CancelCircleIcon8, LessThanIcon } from "@hugeicons/core-free-icons";
4471
+ import { CancelCircleIcon as CancelCircleIcon8 } from "@hugeicons/core-free-icons";
4472
4472
  var PinDialerBottomSheet = ({
4473
4473
  isOpen,
4474
4474
  title = "Action Required",
@@ -4480,19 +4480,10 @@ var PinDialerBottomSheet = ({
4480
4480
  useEffect17(() => {
4481
4481
  setPin("");
4482
4482
  }, [isOpen]);
4483
- const handlePinPress = (value) => {
4484
- if (isVerifying) return;
4485
- if (value === "del") {
4486
- setPin((prev) => prev.slice(0, -1));
4487
- return;
4488
- }
4489
- if (pin.length < 4) {
4490
- const newPin = pin + value;
4491
- setPin(newPin);
4492
- if (newPin.length === 4) {
4493
- onComplete(newPin);
4494
- }
4495
- }
4483
+ const handleSubmit = (e) => {
4484
+ e.preventDefault();
4485
+ if (isVerifying || pin.length !== 4) return;
4486
+ onComplete(pin);
4496
4487
  };
4497
4488
  if (!isOpen) return null;
4498
4489
  return /* @__PURE__ */ React45.createElement("div", { className: "fixed inset-0 z-150 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React45.createElement(
@@ -4503,44 +4494,37 @@ var PinDialerBottomSheet = ({
4503
4494
  if (!isVerifying) onClose();
4504
4495
  }
4505
4496
  }
4506
- ), /* @__PURE__ */ React45.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ React45.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, /* @__PURE__ */ React45.createElement("h3", { className: "text-[16px] text-black tracking-tight" }, title), /* @__PURE__ */ React45.createElement(
4497
+ ), /* @__PURE__ */ React45.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ React45.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, /* @__PURE__ */ React45.createElement("h3", { className: "text-[16px] text-black tracking-tight" }, title), /* @__PURE__ */ React45.createElement(
4507
4498
  "button",
4508
4499
  {
4509
4500
  onClick: () => {
4510
4501
  if (!isVerifying) onClose();
4511
4502
  },
4512
- className: "text-neutral-400 hover:text-black transition-colors outline-none"
4503
+ disabled: isVerifying,
4504
+ className: "text-neutral-400 hover:text-black transition-colors outline-none disabled:opacity-50"
4513
4505
  },
4514
4506
  /* @__PURE__ */ React45.createElement(HugeiconsIcon31, { icon: CancelCircleIcon8, size: 20 })
4515
- )), /* @__PURE__ */ React45.createElement("div", { className: "flex flex-col px-6 pb-8 pt-2 relative" }, /* @__PURE__ */ React45.createElement("div", { className: "flex justify-center gap-4 mb-8" }, [0, 1, 2, 3].map((i) => /* @__PURE__ */ React45.createElement(
4516
- "div",
4507
+ )), /* @__PURE__ */ React45.createElement("div", { className: "flex flex-col px-6 pb-6 pt-2 relative" }, /* @__PURE__ */ React45.createElement("form", { onSubmit: handleSubmit, className: "flex flex-col gap-6" }, /* @__PURE__ */ React45.createElement(
4508
+ TextInput,
4517
4509
  {
4518
- key: i,
4519
- className: `w-2 h-2 rounded-full transition-colors duration-200 ${pin.length > i ? "bg-black" : "bg-neutral-200"}`
4510
+ type: "password",
4511
+ label: "Enter 4-Digit PIN",
4512
+ maxLength: 4,
4513
+ disabled: isVerifying,
4514
+ value: pin,
4515
+ onChange: (val) => setPin(val.replace(/\D/g, "").substring(0, 4)),
4516
+ placeholder: "\u2022\u2022\u2022\u2022"
4520
4517
  }
4521
- ))), isVerifying && /* @__PURE__ */ React45.createElement("div", { className: "absolute inset-0 bg-white/80 backdrop-blur-sm z-10 flex items-center justify-center rounded-b-2xl" }, /* @__PURE__ */ React45.createElement(HugeiconsIcon31, { icon: Loading03Icon19, size: 28, className: "animate-spin text-black" })), /* @__PURE__ */ React45.createElement("div", { className: "grid grid-cols-3 gap-y-4 gap-x-6 max-w-60 mx-auto" }, [1, 2, 3, 4, 5, 6, 7, 8, 9].map((num) => /* @__PURE__ */ React45.createElement(
4522
- "button",
4523
- {
4524
- key: num,
4525
- onClick: () => handlePinPress(num),
4526
- className: "w-14 h-14 rounded-full flex bg-neutral-50 items-center justify-center text-sm text-black hover:bg-neutral-50 transition-colors mx-auto outline-none active:scale-95"
4527
- },
4528
- num
4529
- )), /* @__PURE__ */ React45.createElement("div", null), " ", /* @__PURE__ */ React45.createElement(
4530
- "button",
4531
- {
4532
- onClick: () => handlePinPress(0),
4533
- className: "w-14 h-14 rounded-full flex bg-neutral-50 items-center justify-center text-sm text-black hover:bg-neutral-50 transition-colors mx-auto outline-none active:scale-95"
4534
- },
4535
- "0"
4536
- ), /* @__PURE__ */ React45.createElement(
4537
- "button",
4518
+ ), /* @__PURE__ */ React45.createElement("div", { className: "pt-2" }, /* @__PURE__ */ React45.createElement(
4519
+ ThreeDActionButton,
4538
4520
  {
4539
- onClick: () => handlePinPress("del"),
4540
- className: "w-14 h-14 rounded-full flex items-center justify-center text-neutral-400 hover:text-black hover:bg-neutral-50 transition-colors mx-auto outline-none active:scale-95"
4521
+ type: "submit",
4522
+ disabled: isVerifying || pin.length !== 4,
4523
+ isLoading: isVerifying,
4524
+ className: "w-full"
4541
4525
  },
4542
- /* @__PURE__ */ React45.createElement(HugeiconsIcon31, { icon: LessThanIcon, size: 20 })
4543
- )))));
4526
+ "Confirm Action"
4527
+ ))))));
4544
4528
  };
4545
4529
  export {
4546
4530
  AppBento2,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@retinalabsllc/zairusjs",
3
- "version": "15.0.2",
3
+ "version": "15.0.5",
4
4
  "description": "A perceptive, Ai data driven Next.js UI component library.",
5
5
  "author": "Retina Labs Company",
6
6
  "license": "MIT",