@sanvika/auth 2.9.3 → 2.9.4
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 +16 -12
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -368,7 +368,7 @@ function styleInject(css, { insertAt } = {}) {
|
|
|
368
368
|
}
|
|
369
369
|
|
|
370
370
|
// SanvikaAccountButton.css
|
|
371
|
-
styleInject("@keyframes snvk-shimmer {\n 0% {\n background-position: 200% 0;\n }\n 100% {\n background-position: -200% 0;\n }\n}\n.snvk-skeleton {\n width: clamp(72px, 20vw, 96px);\n height: clamp(34px, 8vw, 40px);\n border-radius: 8px;\n background:\n linear-gradient(\n 90deg,\n var(--skeleton-base-color, #d0d0d0) 25%,\n var(--skeleton-highlight-color, #f0f0f0) 50%,\n var(--skeleton-base-color, #d0d0d0) 75%);\n background-size: 200% 100%;\n animation: snvk-shimmer 1.4s infinite;\n display: inline-block;\n}\n.snvk-wrapper {\n position: relative;\n display: inline-block;\n}\n.snvk-guestBtn {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: clamp(6px, 2vw, 8px) clamp(10px, 3vw, 16px);\n min-height: 44px;\n min-width: 44px;\n background: var(--sanvika-brand-color, #4f46e5);\n color: #ffffff;\n border: none;\n border-radius: 8px;\n font-size: clamp(13px, 3vw, 14px);\n font-weight: 600;\n cursor: pointer;\n transition: background-color 0.3s ease, color 0.3s ease;\n white-space: nowrap;\n}\n.snvk-guestBtn:hover {\n background: var(--sanvika-brand-hover, #4338ca);\n}\n.snvk-iconWrap {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n.snvk-profileBtn {\n display: inline-flex;\n align-items: center;\n gap: 7px;\n padding: 5px 10px 5px 5px;\n min-height: 44px;\n background: var(--muted-bg, #f5f5f5);\n border: 1px solid var(--border-color-light, #e5e7eb);\n border-radius: 99px;\n font-size: clamp(13px, 3vw, 14px);\n font-weight: 600;\n cursor: pointer;\n color: var(--text-color, #1a1a1a);\n transition:\n background-color 0.3s ease,\n border-color 0.3s ease,\n color 0.3s ease;\n white-space: nowrap;\n outline: none;\n}\n.snvk-profileBtn:hover {\n background: var(--hover-color, #ebebeb);\n border-color: var(--border-color-dark, #d1d5db);\n}\n.snvk-profileBtn:focus-visible {\n outline: 2px solid var(--sanvika-brand-color, #4f46e5);\n outline-offset: 2px;\n}\n.snvk-avatar {\n width: 28px;\n height: 28px;\n border-radius: 50%;\n object-fit: cover;\n border: 2px solid var(--sanvika-brand-color, #4f46e5);\n flex-shrink: 0;\n}\n.snvk-textWrap {\n display: inline;\n}\n.snvk-hideTextOnMobile {\n display: none;\n}\n@media (min-width: 500px) {\n .snvk-hideTextOnMobile {\n display: inline;\n }\n}\n.snvk-dropdown {\n position: absolute;\n top: calc(100% + 8px);\n right: 0;\n min-width: clamp(200px, 60vw, 240px);\n background: var(--card-bg, #f3f3f3);\n border: 1px solid var(--border-color-light, #cccccc);\n border-radius: 12px;\n box-shadow: 0 8px 24px var(--shadow-color, rgba(0, 0, 0, 0.2));\n z-index: 9999;\n overflow: hidden;\n transition: background-color 0.3s ease, border-color 0.3s ease;\n}\n.snvk-dropdownHeader {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 14px 16px;\n background: var(--section-bg, #ebebeb);\n transition: background-color 0.3s ease;\n}\n.snvk-dropdownAvatar {\n width: 38px;\n height: 38px;\n border-radius: 50%;\n object-fit: cover;\n border: 2px solid var(--sanvika-brand-color, #4f46e5);\n flex-shrink: 0;\n}\n.snvk-dropdownName {\n font-size: clamp(13px, 3vw, 14px);\n font-weight: 800;\n color: var(--text-color, #000000);\n line-height: 1.3;\n transition: color 0.3s ease;\n}\n.snvk-dropdownMobile {\n font-size: clamp(11px, 2.5vw, 12px);\n color: var(--secondary-text-color, #333333);\n margin-top: 2px;\n transition: color 0.3s ease;\n font-weight: 700;\n}\n.snvk-divider {\n height: 1px;\n background: var(--muted-border, #d8d8d8);\n transition: background-color 0.3s ease;\n}\n.snvk-dropdownItem {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 11px 16px;\n min-height: 44px;\n background: none;\n border: none;\n font-size: clamp(13px, 3vw, 14px);\n color: var(--text-color, #000000);\n font-weight: 600;\n cursor: pointer;\n text-decoration: none;\n text-align: left;\n transition: background-color 0.3s ease, color 0.3s ease;\n}\n.snvk-dropdownItem:hover {\n background: var(--hover-color, #e8e8e8);\n}\n");
|
|
371
|
+
styleInject("@keyframes snvk-shimmer {\n 0% {\n background-position: 200% 0;\n }\n 100% {\n background-position: -200% 0;\n }\n}\n.snvk-skeleton {\n width: clamp(72px, 20vw, 96px);\n height: clamp(34px, 8vw, 40px);\n border-radius: 8px;\n background:\n linear-gradient(\n 90deg,\n var(--skeleton-base-color, #d0d0d0) 25%,\n var(--skeleton-highlight-color, #f0f0f0) 50%,\n var(--skeleton-base-color, #d0d0d0) 75%);\n background-size: 200% 100%;\n animation: snvk-shimmer 1.4s infinite;\n display: inline-block;\n}\n.snvk-wrapper {\n position: relative;\n display: inline-block;\n}\n.snvk-guestBtn {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: clamp(6px, 2vw, 8px) clamp(10px, 3vw, 16px);\n min-height: 44px;\n min-width: 44px;\n background: var(--sanvika-brand-color, #4f46e5);\n color: #ffffff;\n border: none;\n border-radius: 8px;\n font-size: clamp(13px, 3vw, 14px);\n font-weight: 600;\n cursor: pointer;\n transition: background-color 0.3s ease, color 0.3s ease;\n white-space: nowrap;\n}\n.snvk-guestBtn:hover {\n background: var(--sanvika-brand-hover, #4338ca);\n}\n.snvk-iconWrap {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n.snvk-profileBtn {\n display: inline-flex;\n align-items: center;\n gap: 7px;\n padding: 5px 10px 5px 5px;\n min-height: 44px;\n background: var(--muted-bg, #f5f5f5);\n border: 1px solid var(--border-color-light, #e5e7eb);\n border-radius: 99px;\n font-size: clamp(13px, 3vw, 14px);\n font-weight: 600;\n cursor: pointer;\n color: var(--text-color, #1a1a1a);\n transition:\n background-color 0.3s ease,\n border-color 0.3s ease,\n color 0.3s ease;\n white-space: nowrap;\n outline: none;\n}\n.snvk-profileBtn:hover {\n background: var(--hover-color, #ebebeb);\n border-color: var(--border-color-dark, #d1d5db);\n}\n.snvk-profileBtn:focus-visible {\n outline: 2px solid var(--sanvika-brand-color, #4f46e5);\n outline-offset: 2px;\n}\n.snvk-avatar {\n width: 28px;\n height: 28px;\n border-radius: 50%;\n object-fit: cover;\n border: 2px solid var(--sanvika-brand-color, #4f46e5);\n flex-shrink: 0;\n}\n.snvk-textWrap {\n display: inline;\n}\n.snvk-hideTextOnMobile {\n display: none;\n}\n@media (min-width: 500px) {\n .snvk-hideTextOnMobile {\n display: inline;\n }\n}\n.snvk-dropdown {\n position: absolute;\n top: calc(100% + 8px);\n right: 0;\n min-width: clamp(200px, 60vw, 240px);\n background: var(--card-bg, #f3f3f3);\n border: 1px solid var(--border-color-light, #cccccc);\n border-radius: 12px;\n box-shadow: 0 8px 24px var(--shadow-color, rgba(0, 0, 0, 0.2));\n z-index: 9999;\n overflow: hidden;\n transition: background-color 0.3s ease, border-color 0.3s ease;\n}\n.snvk-dropdownHeader {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 14px 16px;\n background: var(--section-bg, #ebebeb);\n transition: background-color 0.3s ease;\n}\n.snvk-dropdownAvatar {\n width: 38px;\n height: 38px;\n border-radius: 50%;\n object-fit: cover;\n border: 2px solid var(--sanvika-brand-color, #4f46e5);\n flex-shrink: 0;\n}\n.snvk-dropdownName {\n font-size: clamp(13px, 3vw, 14px);\n font-weight: 800;\n color: var(--text-color, #000000);\n line-height: 1.3;\n transition: color 0.3s ease;\n}\n.snvk-dropdownMobile {\n font-size: clamp(11px, 2.5vw, 12px);\n color: var(--secondary-text-color, #333333);\n margin-top: 2px;\n transition: color 0.3s ease;\n font-weight: 700;\n}\n.snvk-divider {\n height: 1px;\n background: var(--muted-border, #d8d8d8);\n transition: background-color 0.3s ease;\n}\n.snvk-dropdownItem {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 11px 16px;\n min-height: 44px;\n background: none;\n border: none;\n font-size: clamp(13px, 3vw, 14px);\n color: var(--text-color, #000000);\n font-weight: 600;\n cursor: pointer;\n text-decoration: none;\n text-align: left;\n transition: background-color 0.3s ease, color 0.3s ease;\n}\n.snvk-dropdownItem:hover {\n background: var(--hover-color, #e8e8e8);\n}\n.snvk-layout-navbarChip.snvk-guestBtn,\n.snvk-layout-navbarChip-profile {\n display: inline-flex !important;\n align-items: center !important;\n justify-content: center !important;\n height: clamp(32px, 8vw, 38px) !important;\n min-height: clamp(32px, 8vw, 38px) !important;\n max-height: clamp(32px, 8vw, 38px) !important;\n padding: clamp(3px, 0.8vw, 5px) clamp(4px, 1.2vw, 8px) !important;\n border-radius: 4px !important;\n border: 1px solid var(--border-color) !important;\n background-color: var(--btn-primary-bg) !important;\n color: var(--btn-primary-text) !important;\n font-size: clamp(9px, 2.4vw, 13px) !important;\n font-weight: 600 !important;\n line-height: 1.1 !important;\n box-sizing: border-box !important;\n white-space: nowrap !important;\n cursor: pointer;\n}\n.snvk-layout-navbarChip.snvk-guestBtn {\n min-width: clamp(52px, 16vw, 90px) !important;\n max-width: clamp(64px, 22vw, 200px) !important;\n gap: 0 !important;\n}\n.snvk-layout-navbarChip.snvk-guestBtn .snvk-iconWrap {\n display: none !important;\n}\n.snvk-layout-navbarChip-profile {\n min-width: clamp(52px, 16vw, 90px) !important;\n max-width: clamp(72px, 24vw, 120px) !important;\n gap: clamp(3px, 0.8vw, 5px) !important;\n}\n.snvk-layout-navbarChip-profile .snvk-avatar {\n width: clamp(18px, 5vw, 22px) !important;\n height: clamp(18px, 5vw, 22px) !important;\n border: 2px solid var(--success-color, #00b894) !important;\n}\n.snvk-layout-navbarChip-profile .snvk-textWrap {\n display: inline !important;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: clamp(32px, 12vw, 64px);\n}\n.snvk-layout-navbarChip.snvk-wrapper {\n display: inline-flex;\n align-items: center;\n}\n");
|
|
372
372
|
|
|
373
373
|
// SanvikaAccountButton.jsx
|
|
374
374
|
import { jsx as jsx2, jsxs } from "react/jsx-runtime";
|
|
@@ -453,9 +453,13 @@ function SanvikaAccountButtonContent({
|
|
|
453
453
|
onLoginClick,
|
|
454
454
|
onProfileClick,
|
|
455
455
|
onboardingPath,
|
|
456
|
-
className
|
|
456
|
+
className,
|
|
457
|
+
layout = "default"
|
|
457
458
|
}) {
|
|
458
459
|
var _a, _b;
|
|
460
|
+
const isNavbarChip = layout === "navbarChip";
|
|
461
|
+
const guestBtnClass = `snvk-guestBtn${isNavbarChip ? " snvk-layout-navbarChip" : ""}${className ? ` ${className}` : ""}`;
|
|
462
|
+
const wrapperClass = `snvk-wrapper${isNavbarChip ? " snvk-layout-navbarChip" : ""}${className ? ` ${className}` : ""}`;
|
|
459
463
|
const auth = useSanvikaAuth();
|
|
460
464
|
const [dropdownOpen, setDropdownOpen] = useState2(false);
|
|
461
465
|
const [imgError, setImgError] = useState2(false);
|
|
@@ -475,7 +479,7 @@ function SanvikaAccountButtonContent({
|
|
|
475
479
|
return /* @__PURE__ */ jsxs(
|
|
476
480
|
"button",
|
|
477
481
|
{
|
|
478
|
-
className:
|
|
482
|
+
className: guestBtnClass,
|
|
479
483
|
onClick: (e) => {
|
|
480
484
|
if (onLoginClick) {
|
|
481
485
|
onLoginClick();
|
|
@@ -485,11 +489,11 @@ function SanvikaAccountButtonContent({
|
|
|
485
489
|
},
|
|
486
490
|
"aria-label": "Login or Sign Up",
|
|
487
491
|
children: [
|
|
488
|
-
/* @__PURE__ */ jsx2("span", { className: "snvk-iconWrap", children: /* @__PURE__ */ jsx2(UserIcon, { size: 18 }) }),
|
|
492
|
+
!isNavbarChip ? /* @__PURE__ */ jsx2("span", { className: "snvk-iconWrap", children: /* @__PURE__ */ jsx2(UserIcon, { size: 18 }) }) : null,
|
|
489
493
|
/* @__PURE__ */ jsx2(
|
|
490
494
|
"span",
|
|
491
495
|
{
|
|
492
|
-
className: hideTextOnMobile ? "snvk-hideTextOnMobile" : "snvk-textWrap",
|
|
496
|
+
className: hideTextOnMobile && !isNavbarChip ? "snvk-hideTextOnMobile" : "snvk-textWrap",
|
|
493
497
|
children: text
|
|
494
498
|
}
|
|
495
499
|
)
|
|
@@ -509,7 +513,7 @@ function SanvikaAccountButtonContent({
|
|
|
509
513
|
return /* @__PURE__ */ jsxs(
|
|
510
514
|
"button",
|
|
511
515
|
{
|
|
512
|
-
className:
|
|
516
|
+
className: guestBtnClass,
|
|
513
517
|
onClick: (e) => {
|
|
514
518
|
if (onLoginClick) {
|
|
515
519
|
onLoginClick();
|
|
@@ -519,11 +523,11 @@ function SanvikaAccountButtonContent({
|
|
|
519
523
|
},
|
|
520
524
|
"aria-label": "Login or Sign Up",
|
|
521
525
|
children: [
|
|
522
|
-
/* @__PURE__ */ jsx2("span", { className: "snvk-iconWrap", children: /* @__PURE__ */ jsx2(UserIcon, { size: 18 }) }),
|
|
526
|
+
!isNavbarChip ? /* @__PURE__ */ jsx2("span", { className: "snvk-iconWrap", children: /* @__PURE__ */ jsx2(UserIcon, { size: 18 }) }) : null,
|
|
523
527
|
/* @__PURE__ */ jsx2(
|
|
524
528
|
"span",
|
|
525
529
|
{
|
|
526
|
-
className: hideTextOnMobile ? "snvk-hideTextOnMobile" : "snvk-textWrap",
|
|
530
|
+
className: hideTextOnMobile && !isNavbarChip ? "snvk-hideTextOnMobile" : "snvk-textWrap",
|
|
527
531
|
children: text
|
|
528
532
|
}
|
|
529
533
|
)
|
|
@@ -541,11 +545,11 @@ function SanvikaAccountButtonContent({
|
|
|
541
545
|
await logout(false);
|
|
542
546
|
setDropdownOpen(false);
|
|
543
547
|
};
|
|
544
|
-
return /* @__PURE__ */ jsxs("div", { ref: wrapperRef, className:
|
|
548
|
+
return /* @__PURE__ */ jsxs("div", { ref: wrapperRef, className: wrapperClass, children: [
|
|
545
549
|
/* @__PURE__ */ jsxs(
|
|
546
550
|
"button",
|
|
547
551
|
{
|
|
548
|
-
className:
|
|
552
|
+
className: `snvk-profileBtn${isNavbarChip ? " snvk-layout-navbarChip-profile" : ""}`,
|
|
549
553
|
onClick: () => setDropdownOpen((o) => !o),
|
|
550
554
|
onDoubleClick: handleProfileClick,
|
|
551
555
|
"aria-label": "Account menu",
|
|
@@ -563,11 +567,11 @@ function SanvikaAccountButtonContent({
|
|
|
563
567
|
/* @__PURE__ */ jsx2(
|
|
564
568
|
"span",
|
|
565
569
|
{
|
|
566
|
-
className: hideTextOnMobile ? "snvk-hideTextOnMobile" : "snvk-textWrap",
|
|
570
|
+
className: hideTextOnMobile && !isNavbarChip ? "snvk-hideTextOnMobile" : "snvk-textWrap",
|
|
567
571
|
children: displayName
|
|
568
572
|
}
|
|
569
573
|
),
|
|
570
|
-
/* @__PURE__ */ jsx2(ChevronIcon, { open: dropdownOpen })
|
|
574
|
+
!isNavbarChip ? /* @__PURE__ */ jsx2(ChevronIcon, { open: dropdownOpen }) : null
|
|
571
575
|
]
|
|
572
576
|
}
|
|
573
577
|
),
|