@best-bundles/bundle-ui 0.0.26 → 0.0.27
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 +68 -68
- package/dist/liquid/bundle-ui.iife.css +1 -1
- package/dist/liquid/bundle-ui.iife.js +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode('._button_18rtl_1{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--bb-font-family, inherit);border:1px solid var(--bb-button-border, rgba(0, 0, 0, .12));background:var(--bb-button-bg, #111827);color:var(--bb-button-text, #ffffff);font:inherit;line-height:1;padding:10px 14px;border-radius:var(--bb-button-radius, 10px);cursor:pointer;transition:transform .12s ease,background .12s ease,border-color .12s ease,opacity .12s ease}._button_18rtl_1:hover{background:var(--bb-button-bg-hover, #0b1220)}._button_18rtl_1:active{transform:translateY(1px)}._button_18rtl_1:disabled{opacity:.6;cursor:not-allowed}._button_18rtl_1:focus-visible{outline:2px solid var(--bb-focus-ring, #2563eb);outline-offset:2px}._backdrop_227w4_1{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--bb-backdrop-z-index, 9999);display:flex;justify-content:flex-end;background:var(--bb-backdrop-bg, rgba(0, 0, 0, .5));-webkit-backdrop-filter:blur(var(--bb-backdrop-blur, 2px));backdrop-filter:blur(var(--bb-backdrop-blur, 2px));padding:var(--bb-backdrop-padding, 12px);opacity:0;transition:opacity var(--bb-drawer-transition-duration, .22s) ease}._celebrationOverlay_227w4_14{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none;z-index:50}._celebrationChip_227w4_23{font-family:var(--bb-font-family-body, "Cabin", system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif);letter-spacing:.03em;font-size:18px;line-height:1;padding:12px 16px;border-radius:999px;color:var(--bb-celebration-text, #0b1b44);background:linear-gradient(180deg,var(--bb-celebration-bg-top, #ffffff),var(--bb-celebration-bg-bottom, #bae6fd));border:2px solid var(--bb-celebration-border, rgba(37, 99, 235, .28));box-shadow:0 18px 55px #0006,0 10px 28px #2563eb33,inset 0 1px #ffffffbf;transform-origin:50% 60%;will-change:transform,opacity,filter;animation:_bbCelebrationPop_227w4_1 2.8s cubic-bezier(.16,1,.3,1) forwards;filter:saturate(1.05)}@keyframes _bbCelebrationPop_227w4_1{0%{opacity:0;transform:translateY(10px) scale(.6);filter:blur(1px) saturate(1.1)}12%{opacity:1;transform:translateY(0) scale(1.12);filter:blur(0px) saturate(1.1)}22%{opacity:1;transform:translateY(0) scale(1)}80%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-10px) scale(.98)}}._backdropOpen_227w4_74{opacity:1}._backdropClosed_227w4_78{opacity:0}._panel_227w4_82{width:440px;max-width:100%;height:100%;background:var(--bb-surface-bg, #ffffff);color:var(--bb-text-color, #111827);font-family:var(--bb-font-family-body, "Cabin", system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif);border-radius:var(--bb-panel-radius, 16px);box-shadow:0 20px 60px #00000059;display:grid;grid-template-rows:auto 1fr auto;overflow:hidden;outline:none;position:relative;top:unset;right:unset;bottom:unset;left:unset}._panelOpen_227w4_102{animation:_bbSlideInFromRight_227w4_1 var(--bb-drawer-transition-duration, .22s) ease forwards}._panelClosed_227w4_106{animation:_bbSlideOutToRight_227w4_1 var(--bb-drawer-transition-duration, .22s) ease forwards}@keyframes _bbSlideInFromRight_227w4_1{0%{transform:translate(110%)}to{transform:translate(0)}}@keyframes _bbSlideOutToRight_227w4_1{0%{transform:translate(0)}to{transform:translate(110%)}}@media(prefers-reduced-motion:reduce){._backdrop_227w4_1{transition:none}._celebrationChip_227w4_23,._panelOpen_227w4_102,._panelClosed_227w4_106{animation:none}}._header_227w4_145{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;column-gap:12px;padding:var(--bb-header-padding, 16px 16px 12px 16px);border-bottom:1px solid var(--bb-border-color, rgba(17, 24, 39, .08))}._headerCenter_227w4_154{position:relative;min-width:0;display:flex;justify-content:center;align-items:center}._title_227w4_162{font-size:24px;margin:0;line-height:1.2;font-family:var(--bb-font-family-title, "Bebas Neue", "Cabin", system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif);letter-spacing:.02em;color:var(--bb-title-color, var(--bb-text-color, #111827))}._searchIconButton_227w4_171{width:36px;height:36px;border-radius:10px;border:1px solid var(--bb-border-strong-color, rgba(17, 24, 39, .12));background:var(--bb-surface-bg, #ffffff);color:var(--bb-text-color, #111827);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}._searchIconButton_227w4_171:hover{background:var(--bb-control-bg-hover, rgba(17, 24, 39, .04))}._searchIconButton_227w4_171:focus-visible{outline:2px solid var(--bb-focus-ring, #2563eb);outline-offset:2px}._headerTitleWrap_227w4_193{transition:opacity .18s ease,transform .22s ease}._headerSearchWrap_227w4_197{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:center;pointer-events:none;opacity:0;transform:translateY(-2px);transition:opacity .18s ease,transform .22s ease}._headerSearchOpen_227w4_209 ._headerTitleWrap_227w4_193{opacity:0;transform:translateY(2px);pointer-events:none}._headerSearchOpen_227w4_209 ._headerSearchWrap_227w4_197{opacity:1;transform:translateY(0);pointer-events:auto}._searchBar_227w4_221{width:min(320px,100%);height:36px;display:flex;align-items:center;gap:8px;background:var(--bb-surface-bg, #ffffff);border:1px solid var(--bb-border-strong-color, rgba(17, 24, 39, .12));border-radius:10px;padding:0 8px}._searchInput_227w4_233{width:100%;border:none;outline:none;background:transparent;font:inherit;font-size:14px;min-width:0;height:100%;line-height:36px;padding:0}._searchInput_227w4_233::-webkit-search-cancel-button,._searchInput_227w4_233::-webkit-search-decoration,._searchInput_227w4_233::-webkit-search-results-button,._searchInput_227w4_233::-webkit-search-results-decoration{-webkit-appearance:none;-moz-appearance:none;appearance:none}._searchClearButton_227w4_254{border:none;background:transparent;color:var(--bb-text-color, #111827);font:inherit;font-size:13px;font-weight:700;cursor:pointer;padding:6px;border-radius:10px;line-height:1}._searchClearButton_227w4_254:hover{background:var(--bb-control-bg-hover, rgba(17, 24, 39, .04))}._searchClearButton_227w4_254:focus-visible{outline:2px solid var(--bb-focus-ring, #2563eb);outline-offset:2px}._closeButton_227w4_276{border:1px solid var(--bb-border-strong-color, rgba(17, 24, 39, .12));background:var(--bb-surface-bg, #ffffff);color:var(--bb-text-color, #111827);width:36px;height:36px;border-radius:10px;cursor:pointer;flex:0 0 auto}._closeButton_227w4_276:hover{background:var(--bb-control-bg-hover, rgba(17, 24, 39, .04))}._closeButton_227w4_276:disabled{opacity:.6;cursor:not-allowed}._closeButton_227w4_276:focus-visible{outline:2px solid var(--bb-focus-ring, #2563eb);outline-offset:2px}@media(prefers-reduced-motion:reduce){._headerTitleWrap_227w4_193,._headerSearchWrap_227w4_197{transition:none}}._body_227w4_309{padding:var(--bb-body-padding, 8px 16px);overflow:auto}._muted_227w4_314{color:var(--bb-muted-strong-color, rgba(17, 24, 39, .65));margin:0 0 12px}._error_227w4_319{color:var(--bb-error-color, #b91c1c);margin:0 0 12px}._variants_227w4_324{margin-top:4px}._variantList_227w4_328{list-style:none;padding:0;margin:0;display:grid;gap:10px}._variantRow_227w4_336{display:grid;grid-template-columns:1fr auto;gap:0px;align-items:stretch;padding:5px}._variantLeft_227w4_344{min-width:0;display:flex;gap:12px;align-items:center}._addToBundleButton_227w4_351{height:100%;align-self:stretch;border-radius:12px;border:none;background:var(--bb-cta-bg, #91aae5);color:var(--bb-cta-text, #ffffff);font:inherit;font-weight:800;padding:0 16px;cursor:pointer;white-space:nowrap}._addToBundleButton_227w4_351:hover{background:var(--bb-cta-bg-hover, #1d4ed8)}._addToBundleButton_227w4_351:disabled{opacity:.6;cursor:not-allowed}._addToBundleButton_227w4_351:focus-visible{outline:2px solid var(--bb-focus-ring, #2563eb);outline-offset:2px}._variantThumb_227w4_379{width:60px;height:60px;border-radius:12px;overflow:hidden;border:1px solid var(--bb-border-color, rgba(17, 24, 39, .08));background:var(--bb-surface-subtle-bg, rgba(17, 24, 39, .02));flex:0 0 auto}._variantThumbImg_227w4_389{width:100%;height:100%;object-fit:cover;display:block}._variantThumbFallback_227w4_396{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--bb-text-color, #111827)}._variantInfo_227w4_406{min-width:0}._variantName_227w4_410{font-size:14px;font-weight:600;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._variantMeta_227w4_419{font-size:12px;color:var(--bb-muted-color, rgba(17, 24, 39, .6));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._variantPriceRow_227w4_427{display:flex;align-items:baseline;gap:8px;margin-top:4px}._variantCompareAt_227w4_434{font-size:12px;color:var(--bb-muted-color, rgba(17, 24, 39, .6));text-decoration:line-through}._variantPrice_227w4_427{font-size:13px;font-weight:800}._qtyControls_227w4_445{display:inline-flex;align-items:center;gap:6px}._qtyButton_227w4_451{width:34px;height:34px;border-radius:10px;border:1px solid var(--bb-border-strong-color, rgba(17, 24, 39, .12));background:var(--bb-surface-bg, #ffffff);cursor:pointer;line-height:1;font-size:16px}._qtyButton_227w4_451:hover{background:var(--bb-control-bg-hover, rgba(17, 24, 39, .04))}._qtyButton_227w4_451:disabled{opacity:.6;cursor:not-allowed}._qtyButton_227w4_451:focus-visible{outline:2px solid var(--bb-focus-ring, #2563eb);outline-offset:2px}._qtyValue_227w4_476{min-width:18px;text-align:center;font-variant-numeric:tabular-nums;font-weight:700}._footer_227w4_483{padding:var(--bb-footer-padding, 12px 16px 16px 16px);border-top:1px solid var(--bb-border-color, rgba(17, 24, 39, .08));background:var(--bb-surface-bg, #ffffff);position:relative}._poweredBy_227w4_490{font-size:10px;color:var(rgba(17, 24, 39, .6));text-align:center;margin-top:10px}._poweredBy_227w4_490 a{color:inherit;text-decoration:none}._boxSummaryWindow_227w4_502{margin-bottom:6px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding-bottom:6px;scrollbar-width:none;-ms-overflow-style:none}._boxSummaryWindow_227w4_502::-webkit-scrollbar{display:none}._boxSummaryRow_227w4_519{--bb-box-gap: 10px;display:flex;align-items:flex-start;gap:var(--bb-box-gap);width:100%}._boxSlot_227w4_527{flex:0 0 calc((100% - (4 * var(--bb-box-gap))) / 5);display:flex;flex-direction:column;align-items:stretch;gap:6px}._boxItem_227w4_535{width:100%;aspect-ratio:1 / 1;border-radius:12px;position:relative;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;box-sizing:border-box}._boxItemClickable_227w4_547{cursor:pointer}._boxItemClickable_227w4_547:focus-visible{outline:2px solid var(--bb-focus-ring, #2563eb);outline-offset:2px}._boxThresholdLabel_227w4_556{font-size:11px;line-height:1.15;font-weight:700;color:var(--bb-muted-strong-color, rgba(17, 24, 39, .65));text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._boxItemPlaceholder_227w4_567{border:1px dashed var(--bb-border-strong-color, rgba(17, 24, 39, .18));background:var(--bb-surface-subtle-bg, rgba(17, 24, 39, .02));color:var(--bb-muted-color, rgba(17, 24, 39, .6))}._boxItemFilled_227w4_573{border:1px solid var(--bb-border-color, rgba(17, 24, 39, .08));background:var(--bb-surface-bg, #ffffff);overflow:hidden}._boxItemThreshold_227w4_579{border-style:solid;border-width:2px;border-color:var(--bb-tier-border, rgba(37, 99, 235, .55));background:var(--bb-tier-bg, rgba(37, 99, 235, .08));color:var(--bb-tier-text, rgba(29, 78, 216, .95))}._boxItemDiscountText_227w4_587{font-size:12px;font-weight:800;text-align:center;line-height:1.1;padding:6px}._boxItemPlus_227w4_595{font-size:22px;font-weight:700;opacity:.5;line-height:1}._boxItemImage_227w4_602{width:100%;height:100%;object-fit:cover;display:block}._boxItemFallback_227w4_609{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bb-surface-subtle-bg, rgba(17, 24, 39, .04));color:var(--bb-text-color, #111827);font-weight:800}._ctaButtonGroup_227w4_620{display:flex;gap:8px;width:100%;transition:gap .3s cubic-bezier(.4,0,.2,1)}._ctaButtonGroupAnimating_227w4_627{gap:0}._cta_227w4_620{width:100%;border:1px solid var(--bb-cta-border, rgba(0, 0, 0, .12));background:var(--bb-cta-bg, #2563eb);color:var(--bb-cta-text, #ffffff);font:inherit;font-weight:700;padding:12px 14px;border-radius:12px;cursor:pointer}._ctaSecondary_227w4_643{width:100%;border:2px solid var(--bb-cta-bg, #2563eb);background:transparent;color:var(--bb-cta-bg, #2563eb);font:inherit;font-weight:700;padding:10px 14px;border-radius:12px;cursor:pointer}._ctaDualLeft_227w4_655{width:100%;border:2px solid var(--bb-cta-bg, #2563eb);background:transparent;color:var(--bb-cta-bg, #2563eb);font:inherit;font-weight:700;padding:10px 14px;border-radius:12px;cursor:pointer;transition:border-radius .3s cubic-bezier(.4,0,.2,1),background .3s cubic-bezier(.4,0,.2,1),color .3s cubic-bezier(.4,0,.2,1),border-right-width .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1)}._ctaDualLeftAnimating_227w4_673{border-top-right-radius:0;border-bottom-right-radius:0;border-right-width:0;background:var(--bb-cta-bg, #2563eb);opacity:.6;color:var(--bb-cta-text, #ffffff)}._ctaDualLeftAnimating_227w4_673>span{opacity:0}._ctaDualRight_227w4_686{width:100%;border:1px solid var(--bb-cta-border, rgba(0, 0, 0, .12));background:var(--bb-cta-bg, #2563eb);color:var(--bb-cta-text, #ffffff);font:inherit;font-weight:700;padding:12px 14px;border-radius:12px;cursor:pointer;transition:border-radius .3s cubic-bezier(.4,0,.2,1),border-left-width .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1)}._ctaDualRightAnimating_227w4_702{border-top-left-radius:0;border-bottom-left-radius:0;border-left-width:0;opacity:.6}._ctaDualRightAnimating_227w4_702>span{opacity:0}._ctaTotals_227w4_713{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-variant-numeric:tabular-nums}._ctaDiscountBadge_227w4_721{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800;background:linear-gradient(180deg,#2563eb24,#2563eb0f);border:1px solid rgba(37,99,235,.3);color:#1d4ed8f2;white-space:nowrap}._ctaTotalsWrap_227w4_735{overflow:hidden;max-height:0;opacity:0;transform:translateY(4px);margin-bottom:0;transition:max-height .22s ease,opacity .16s ease,transform .22s ease,margin-bottom .22s ease}._ctaTotalsWrapVisible_227w4_748{max-height:40px;opacity:1;transform:translateY(0);margin-bottom:8px}._ctaTotalsStrike_227w4_755{opacity:.85;text-decoration:line-through;font-weight:700;color:var(--bb-muted-strong-color, rgba(17, 24, 39, .65))}._ctaTotalsPrice_227w4_762{font-weight:900;color:var(--bb-text-color, #111827)}@media(prefers-reduced-motion:reduce){._ctaTotalsWrap_227w4_735{transition:none}}._cta_227w4_620:hover{background:var(--bb-cta-bg-hover, #1d4ed8)}._cta_227w4_620:disabled{opacity:.6;cursor:not-allowed}._cta_227w4_620:focus-visible{outline:2px solid var(--bb-cta-focus-ring, var(--bb-text-color, #111827));outline-offset:2px}._ctaSecondary_227w4_643:hover{background:var(--bb-cta-bg, #2563eb);color:var(--bb-cta-text, #ffffff)}._ctaSecondary_227w4_643:disabled{opacity:.6;cursor:not-allowed}._ctaSecondary_227w4_643:focus-visible{outline:2px solid var(--bb-cta-focus-ring, var(--bb-text-color, #111827));outline-offset:2px}._ctaDualLeft_227w4_655:hover{background:var(--bb-cta-bg, #2563eb);color:var(--bb-cta-text, #ffffff)}._ctaDualLeft_227w4_655:disabled{opacity:.6;cursor:not-allowed}._ctaDualLeft_227w4_655:focus-visible{outline:2px solid var(--bb-cta-focus-ring, var(--bb-text-color, #111827));outline-offset:2px}._ctaDualRight_227w4_686:hover{background:var(--bb-cta-bg-hover, #1d4ed8)}._ctaDualRight_227w4_686:disabled{opacity:.6;cursor:not-allowed}._ctaDualRight_227w4_686:focus-visible{outline:2px solid var(--bb-cta-focus-ring, var(--bb-text-color, #111827));outline-offset:2px}._helperText_227w4_831{margin-top:8px;font-size:12px;color:var(--bb-muted-strong-color, rgba(17, 24, 39, .65));text-align:center}@media(max-width:767px){._backdrop_227w4_1{padding:0;justify-content:stretch}._panel_227w4_82{width:100%;height:100%;border-radius:0}}')),document.head.appendChild(e)}}catch(r){console.error("vite-plugin-css-injected-by-js",r)}})();
|
|
1
|
+
(function(){"use strict";try{if(typeof document<"u"){var r=document.createElement("style");r.appendChild(document.createTextNode('._button_18rtl_1{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--bb-font-family, inherit);border:1px solid var(--bb-button-border, rgba(0, 0, 0, .12));background:var(--bb-button-bg, #111827);color:var(--bb-button-text, #ffffff);font:inherit;line-height:1;padding:10px 14px;border-radius:var(--bb-button-radius, 10px);cursor:pointer;transition:transform .12s ease,background .12s ease,border-color .12s ease,opacity .12s ease}._button_18rtl_1:hover{background:var(--bb-button-bg-hover, #0b1220)}._button_18rtl_1:active{transform:translateY(1px)}._button_18rtl_1:disabled{opacity:.6;cursor:not-allowed}._button_18rtl_1:focus-visible{outline:2px solid var(--bb-focus-ring, #2563eb);outline-offset:2px}._backdrop_1l3rc_1{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--bb-backdrop-z-index, 2147483647);display:flex;justify-content:flex-end;background:var(--bb-backdrop-bg, rgba(0, 0, 0, .5));-webkit-backdrop-filter:blur(var(--bb-backdrop-blur, 2px));backdrop-filter:blur(var(--bb-backdrop-blur, 2px));padding:var(--bb-backdrop-padding, 12px);opacity:0;transition:opacity var(--bb-drawer-transition-duration, .22s) ease}._celebrationOverlay_1l3rc_14{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none;z-index:50}._celebrationChip_1l3rc_23{font-family:var(--bb-font-family-body, "Cabin", system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif);letter-spacing:.03em;font-size:18px;line-height:1;padding:12px 16px;border-radius:999px;color:var(--bb-celebration-text, #0b1b44);background:linear-gradient(180deg,var(--bb-celebration-bg-top, #ffffff),var(--bb-celebration-bg-bottom, #bae6fd));border:2px solid var(--bb-celebration-border, rgba(37, 99, 235, .28));box-shadow:0 18px 55px #0006,0 10px 28px #2563eb33,inset 0 1px #ffffffbf;transform-origin:50% 60%;will-change:transform,opacity,filter;animation:_bbCelebrationPop_1l3rc_1 2.8s cubic-bezier(.16,1,.3,1) forwards;filter:saturate(1.05)}@keyframes _bbCelebrationPop_1l3rc_1{0%{opacity:0;transform:translateY(10px) scale(.6);filter:blur(1px) saturate(1.1)}12%{opacity:1;transform:translateY(0) scale(1.12);filter:blur(0px) saturate(1.1)}22%{opacity:1;transform:translateY(0) scale(1)}80%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-10px) scale(.98)}}._backdropOpen_1l3rc_74{opacity:1}._backdropClosed_1l3rc_78{opacity:0}._panel_1l3rc_82{width:440px;max-width:100%;height:100%;background:var(--bb-surface-bg, #ffffff);color:var(--bb-text-color, #111827);font-family:var(--bb-font-family-body, "Cabin", system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif);border-radius:var(--bb-panel-radius, 16px);box-shadow:0 20px 60px #00000059;display:grid;grid-template-rows:auto 1fr auto;overflow:hidden;outline:none;position:relative;top:unset;right:unset;bottom:unset;left:unset}._panelOpen_1l3rc_102{animation:_bbSlideInFromRight_1l3rc_1 var(--bb-drawer-transition-duration, .22s) ease forwards}._panelClosed_1l3rc_106{animation:_bbSlideOutToRight_1l3rc_1 var(--bb-drawer-transition-duration, .22s) ease forwards}@keyframes _bbSlideInFromRight_1l3rc_1{0%{transform:translate(110%)}to{transform:translate(0)}}@keyframes _bbSlideOutToRight_1l3rc_1{0%{transform:translate(0)}to{transform:translate(110%)}}@media(prefers-reduced-motion:reduce){._backdrop_1l3rc_1{transition:none}._celebrationChip_1l3rc_23,._panelOpen_1l3rc_102,._panelClosed_1l3rc_106{animation:none}}._header_1l3rc_145{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;column-gap:12px;padding:var(--bb-header-padding, 16px 16px 12px 16px);border-bottom:1px solid var(--bb-border-color, rgba(17, 24, 39, .08))}._headerCenter_1l3rc_154{position:relative;min-width:0;display:flex;justify-content:center;align-items:center}._title_1l3rc_162{font-size:24px;margin:0;line-height:1.2;font-family:var(--bb-font-family-title, "Bebas Neue", "Cabin", system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif);letter-spacing:.02em;color:var(--bb-title-color, var(--bb-text-color, #111827))}._searchIconButton_1l3rc_171{width:36px;height:36px;border-radius:10px;border:1px solid var(--bb-border-strong-color, rgba(17, 24, 39, .12));background:var(--bb-surface-bg, #ffffff);color:var(--bb-text-color, #111827);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}._searchIconButton_1l3rc_171:hover{background:var(--bb-control-bg-hover, rgba(17, 24, 39, .04))}._searchIconButton_1l3rc_171:focus-visible{outline:2px solid var(--bb-focus-ring, #2563eb);outline-offset:2px}._headerTitleWrap_1l3rc_193{transition:opacity .18s ease,transform .22s ease}._headerSearchWrap_1l3rc_197{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:center;pointer-events:none;opacity:0;transform:translateY(-2px);transition:opacity .18s ease,transform .22s ease}._headerSearchOpen_1l3rc_209 ._headerTitleWrap_1l3rc_193{opacity:0;transform:translateY(2px);pointer-events:none}._headerSearchOpen_1l3rc_209 ._headerSearchWrap_1l3rc_197{opacity:1;transform:translateY(0);pointer-events:auto}._searchBar_1l3rc_221{width:min(320px,100%);height:36px;display:flex;align-items:center;gap:8px;background:var(--bb-surface-bg, #ffffff);border:1px solid var(--bb-border-strong-color, rgba(17, 24, 39, .12));border-radius:10px;padding:0 8px}._searchInput_1l3rc_233{width:100%;border:none;outline:none;background:transparent;font:inherit;font-size:14px;min-width:0;height:100%;line-height:36px;padding:0}._searchInput_1l3rc_233::-webkit-search-cancel-button,._searchInput_1l3rc_233::-webkit-search-decoration,._searchInput_1l3rc_233::-webkit-search-results-button,._searchInput_1l3rc_233::-webkit-search-results-decoration{-webkit-appearance:none;-moz-appearance:none;appearance:none}._searchClearButton_1l3rc_254{border:none;background:transparent;color:var(--bb-text-color, #111827);font:inherit;font-size:13px;font-weight:700;cursor:pointer;padding:6px;border-radius:10px;line-height:1}._searchClearButton_1l3rc_254:hover{background:var(--bb-control-bg-hover, rgba(17, 24, 39, .04))}._searchClearButton_1l3rc_254:focus-visible{outline:2px solid var(--bb-focus-ring, #2563eb);outline-offset:2px}._closeButton_1l3rc_276{border:1px solid var(--bb-border-strong-color, rgba(17, 24, 39, .12));background:var(--bb-surface-bg, #ffffff);color:var(--bb-text-color, #111827);width:36px;height:36px;border-radius:10px;cursor:pointer;flex:0 0 auto}._closeButton_1l3rc_276:hover{background:var(--bb-control-bg-hover, rgba(17, 24, 39, .04))}._closeButton_1l3rc_276:disabled{opacity:.6;cursor:not-allowed}._closeButton_1l3rc_276:focus-visible{outline:2px solid var(--bb-focus-ring, #2563eb);outline-offset:2px}@media(prefers-reduced-motion:reduce){._headerTitleWrap_1l3rc_193,._headerSearchWrap_1l3rc_197{transition:none}}._body_1l3rc_309{padding:var(--bb-body-padding, 8px 16px);overflow:auto}._muted_1l3rc_314{color:var(--bb-muted-strong-color, rgba(17, 24, 39, .65));margin:0 0 12px}._error_1l3rc_319{color:var(--bb-error-color, #b91c1c);margin:0 0 12px}._variants_1l3rc_324{margin-top:4px}._variantList_1l3rc_328{list-style:none;padding:0;margin:0;display:grid;gap:10px}._variantRow_1l3rc_336{display:grid;grid-template-columns:1fr auto;gap:0px;align-items:stretch;padding:5px}._variantLeft_1l3rc_344{min-width:0;display:flex;gap:12px;align-items:center}._addToBundleButton_1l3rc_351{height:100%;align-self:stretch;border-radius:12px;border:none;background:var(--bb-cta-bg, #91aae5);color:var(--bb-cta-text, #ffffff);font:inherit;font-weight:800;padding:0 16px;cursor:pointer;white-space:nowrap}._addToBundleButton_1l3rc_351:hover{background:var(--bb-cta-bg-hover, #1d4ed8)}._addToBundleButton_1l3rc_351:disabled{opacity:.6;cursor:not-allowed}._addToBundleButton_1l3rc_351:focus-visible{outline:2px solid var(--bb-focus-ring, #2563eb);outline-offset:2px}._variantThumb_1l3rc_379{width:60px;height:60px;border-radius:12px;overflow:hidden;border:1px solid var(--bb-border-color, rgba(17, 24, 39, .08));background:var(--bb-surface-subtle-bg, rgba(17, 24, 39, .02));flex:0 0 auto}._variantThumbImg_1l3rc_389{width:100%;height:100%;object-fit:cover;display:block}._variantThumbFallback_1l3rc_396{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--bb-text-color, #111827)}._variantInfo_1l3rc_406{min-width:0}._variantName_1l3rc_410{font-size:14px;font-weight:600;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._variantMeta_1l3rc_419{font-size:12px;color:var(--bb-muted-color, rgba(17, 24, 39, .6));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._variantPriceRow_1l3rc_427{display:flex;align-items:baseline;gap:8px;margin-top:4px}._variantCompareAt_1l3rc_434{font-size:12px;color:var(--bb-muted-color, rgba(17, 24, 39, .6));text-decoration:line-through}._variantPrice_1l3rc_427{font-size:13px;font-weight:800}._qtyControls_1l3rc_445{display:inline-flex;align-items:center;gap:6px}._qtyButton_1l3rc_451{width:34px;height:34px;border-radius:10px;border:1px solid var(--bb-border-strong-color, rgba(17, 24, 39, .12));background:var(--bb-surface-bg, #ffffff);cursor:pointer;line-height:1;font-size:16px}._qtyButton_1l3rc_451:hover{background:var(--bb-control-bg-hover, rgba(17, 24, 39, .04))}._qtyButton_1l3rc_451:disabled{opacity:.6;cursor:not-allowed}._qtyButton_1l3rc_451:focus-visible{outline:2px solid var(--bb-focus-ring, #2563eb);outline-offset:2px}._qtyValue_1l3rc_476{min-width:18px;text-align:center;font-variant-numeric:tabular-nums;font-weight:700}._footer_1l3rc_483{padding:var(--bb-footer-padding, 12px 16px 16px 16px);border-top:1px solid var(--bb-border-color, rgba(17, 24, 39, .08));background:var(--bb-surface-bg, #ffffff);position:relative}._poweredBy_1l3rc_490{font-size:10px;color:var(rgba(17, 24, 39, .6));text-align:center;margin-top:10px}._poweredBy_1l3rc_490 a{color:inherit;text-decoration:none}._boxSummaryWindow_1l3rc_502{margin-bottom:6px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding-bottom:6px;scrollbar-width:none;-ms-overflow-style:none}._boxSummaryWindow_1l3rc_502::-webkit-scrollbar{display:none}._boxSummaryRow_1l3rc_519{--bb-box-gap: 10px;display:flex;align-items:flex-start;gap:var(--bb-box-gap);width:100%}._boxSlot_1l3rc_527{flex:0 0 calc((100% - (4 * var(--bb-box-gap))) / 5);display:flex;flex-direction:column;align-items:stretch;gap:6px}._boxItem_1l3rc_535{width:100%;aspect-ratio:1 / 1;border-radius:12px;position:relative;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;box-sizing:border-box}._boxItemClickable_1l3rc_547{cursor:pointer}._boxItemClickable_1l3rc_547:focus-visible{outline:2px solid var(--bb-focus-ring, #2563eb);outline-offset:2px}._boxThresholdLabel_1l3rc_556{font-size:11px;line-height:1.15;font-weight:700;color:var(--bb-muted-strong-color, rgba(17, 24, 39, .65));text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._boxItemPlaceholder_1l3rc_567{border:1px dashed var(--bb-border-strong-color, rgba(17, 24, 39, .18));background:var(--bb-surface-subtle-bg, rgba(17, 24, 39, .02));color:var(--bb-muted-color, rgba(17, 24, 39, .6))}._boxItemFilled_1l3rc_573{border:1px solid var(--bb-border-color, rgba(17, 24, 39, .08));background:var(--bb-surface-bg, #ffffff);overflow:hidden}._boxItemThreshold_1l3rc_579{border-style:solid;border-width:2px;border-color:var(--bb-tier-border, rgba(37, 99, 235, .55));background:var(--bb-tier-bg, rgba(37, 99, 235, .08));color:var(--bb-tier-text, rgba(29, 78, 216, .95))}._boxItemDiscountText_1l3rc_587{font-size:12px;font-weight:800;text-align:center;line-height:1.1;padding:6px}._boxItemPlus_1l3rc_595{font-size:22px;font-weight:700;opacity:.5;line-height:1}._boxItemImage_1l3rc_602{width:100%;height:100%;object-fit:cover;display:block}._boxItemFallback_1l3rc_609{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bb-surface-subtle-bg, rgba(17, 24, 39, .04));color:var(--bb-text-color, #111827);font-weight:800}._ctaButtonGroup_1l3rc_620{display:flex;gap:8px;width:100%;transition:gap .3s cubic-bezier(.4,0,.2,1)}._ctaButtonGroupAnimating_1l3rc_627{gap:0}._cta_1l3rc_620{width:100%;border:1px solid var(--bb-cta-border, rgba(0, 0, 0, .12));background:var(--bb-cta-bg, #2563eb);color:var(--bb-cta-text, #ffffff);font:inherit;font-weight:700;padding:12px 14px;border-radius:12px;cursor:pointer}._ctaSecondary_1l3rc_643{width:100%;border:2px solid var(--bb-cta-bg, #2563eb);background:transparent;color:var(--bb-cta-bg, #2563eb);font:inherit;font-weight:700;padding:10px 14px;border-radius:12px;cursor:pointer}._ctaDualLeft_1l3rc_655{width:100%;border:2px solid var(--bb-cta-bg, #2563eb);background:transparent;color:var(--bb-cta-bg, #2563eb);font:inherit;font-weight:700;padding:10px 14px;border-radius:12px;cursor:pointer;transition:border-radius .3s cubic-bezier(.4,0,.2,1),background .3s cubic-bezier(.4,0,.2,1),color .3s cubic-bezier(.4,0,.2,1),border-right-width .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1)}._ctaDualLeftAnimating_1l3rc_673{border-top-right-radius:0;border-bottom-right-radius:0;border-right-width:0;background:var(--bb-cta-bg, #2563eb);opacity:.6;color:var(--bb-cta-text, #ffffff)}._ctaDualLeftAnimating_1l3rc_673>span{opacity:0}._ctaDualRight_1l3rc_686{width:100%;border:1px solid var(--bb-cta-border, rgba(0, 0, 0, .12));background:var(--bb-cta-bg, #2563eb);color:var(--bb-cta-text, #ffffff);font:inherit;font-weight:700;padding:12px 14px;border-radius:12px;cursor:pointer;transition:border-radius .3s cubic-bezier(.4,0,.2,1),border-left-width .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1)}._ctaDualRightAnimating_1l3rc_702{border-top-left-radius:0;border-bottom-left-radius:0;border-left-width:0;opacity:.6}._ctaDualRightAnimating_1l3rc_702>span{opacity:0}._ctaTotals_1l3rc_713{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-variant-numeric:tabular-nums}._ctaDiscountBadge_1l3rc_721{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800;background:linear-gradient(180deg,#2563eb24,#2563eb0f);border:1px solid rgba(37,99,235,.3);color:#1d4ed8f2;white-space:nowrap}._ctaTotalsWrap_1l3rc_735{overflow:hidden;max-height:0;opacity:0;transform:translateY(4px);margin-bottom:0;transition:max-height .22s ease,opacity .16s ease,transform .22s ease,margin-bottom .22s ease}._ctaTotalsWrapVisible_1l3rc_748{max-height:40px;opacity:1;transform:translateY(0);margin-bottom:8px}._ctaTotalsStrike_1l3rc_755{opacity:.85;text-decoration:line-through;font-weight:700;color:var(--bb-muted-strong-color, rgba(17, 24, 39, .65))}._ctaTotalsPrice_1l3rc_762{font-weight:900;color:var(--bb-text-color, #111827)}@media(prefers-reduced-motion:reduce){._ctaTotalsWrap_1l3rc_735{transition:none}}._cta_1l3rc_620:hover{background:var(--bb-cta-bg-hover, #1d4ed8)}._cta_1l3rc_620:disabled{opacity:.6;cursor:not-allowed}._cta_1l3rc_620:focus-visible{outline:2px solid var(--bb-cta-focus-ring, var(--bb-text-color, #111827));outline-offset:2px}._ctaSecondary_1l3rc_643:hover{background:var(--bb-cta-bg, #2563eb);color:var(--bb-cta-text, #ffffff)}._ctaSecondary_1l3rc_643:disabled{opacity:.6;cursor:not-allowed}._ctaSecondary_1l3rc_643:focus-visible{outline:2px solid var(--bb-cta-focus-ring, var(--bb-text-color, #111827));outline-offset:2px}._ctaDualLeft_1l3rc_655:hover{background:var(--bb-cta-bg, #2563eb);color:var(--bb-cta-text, #ffffff)}._ctaDualLeft_1l3rc_655:disabled{opacity:.6;cursor:not-allowed}._ctaDualLeft_1l3rc_655:focus-visible{outline:2px solid var(--bb-cta-focus-ring, var(--bb-text-color, #111827));outline-offset:2px}._ctaDualRight_1l3rc_686:hover{background:var(--bb-cta-bg-hover, #1d4ed8)}._ctaDualRight_1l3rc_686:disabled{opacity:.6;cursor:not-allowed}._ctaDualRight_1l3rc_686:focus-visible{outline:2px solid var(--bb-cta-focus-ring, var(--bb-text-color, #111827));outline-offset:2px}._helperText_1l3rc_831{margin-top:8px;font-size:12px;color:var(--bb-muted-strong-color, rgba(17, 24, 39, .65));text-align:center}@media(max-width:767px){._backdrop_1l3rc_1{padding:0;justify-content:stretch}._panel_1l3rc_82{width:100%;height:100%;border-radius:0}}')),document.head.appendChild(r)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
|
|
2
2
|
import { jsx as f, jsxs as P, Fragment as gt } from "react/jsx-runtime";
|
|
3
3
|
import Le, { useState as k, useRef as V, useEffect as E, useCallback as le, useMemo as T, createContext as vt, useContext as xt, forwardRef as mt, createElement as Qe } from "react";
|
|
4
4
|
const De = {
|
|
@@ -40,7 +40,7 @@ function ke() {
|
|
|
40
40
|
return `bb_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 10)}`;
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
-
async function
|
|
43
|
+
async function _e(i, e, t) {
|
|
44
44
|
if (!(typeof window > "u"))
|
|
45
45
|
try {
|
|
46
46
|
const o = new URL(i, window.location.origin);
|
|
@@ -117,7 +117,7 @@ function ur(i) {
|
|
|
117
117
|
configFetcher: l,
|
|
118
118
|
analyticsEndpoint: s,
|
|
119
119
|
children: p
|
|
120
|
-
} = i,
|
|
120
|
+
} = i, w = s ?? `${e}/api/public/bundle-analytics`, [A, R] = k(!1), [C, te] = k(!n), [U, X] = k(!1), [z, N] = k(null), [F, Q] = k((n == null ? void 0 : n.currencyCode) ?? null), [y, de] = k((n == null ? void 0 : n.config) ?? null), [ie, we] = k(
|
|
121
121
|
(n == null ? void 0 : n.eligibleVariants) ?? []
|
|
122
122
|
), [he, Me] = k(
|
|
123
123
|
() => ({ selections: {}, order: [] })
|
|
@@ -131,13 +131,13 @@ function ur(i) {
|
|
|
131
131
|
const x = l ?? Ct;
|
|
132
132
|
return te(!0), N(null), x({ apiBaseUrl: e, shop: t, signal: d.signal }).then((g) => {
|
|
133
133
|
if (!g.ok) {
|
|
134
|
-
N(g.error || "Failed to load bundle config."), de(null),
|
|
134
|
+
N(g.error || "Failed to load bundle config."), de(null), we([]), Q(null);
|
|
135
135
|
return;
|
|
136
136
|
}
|
|
137
|
-
Q(g.currencyCode ?? null), de(g.config),
|
|
137
|
+
Q(g.currencyCode ?? null), de(g.config), we(g.eligibleVariants ?? []);
|
|
138
138
|
}).catch((g) => {
|
|
139
139
|
const J = g instanceof Error ? g.message : "Failed to load bundle config.";
|
|
140
|
-
N(J), de(null),
|
|
140
|
+
N(J), de(null), we([]), Q(null);
|
|
141
141
|
}).finally(() => te(!1)), () => d.abort();
|
|
142
142
|
}, [e, t, n, l]), E(() => {
|
|
143
143
|
const d = lt(y == null ? void 0 : y.styleSettings);
|
|
@@ -151,10 +151,10 @@ function ur(i) {
|
|
|
151
151
|
return window.addEventListener("bundle-preview-styles-updated", d), () => window.removeEventListener("bundle-preview-styles-updated", d);
|
|
152
152
|
}, []);
|
|
153
153
|
const ye = le(() => {
|
|
154
|
-
if (R(!0),
|
|
154
|
+
if (R(!0), w)
|
|
155
155
|
try {
|
|
156
156
|
const d = ke();
|
|
157
|
-
|
|
157
|
+
_e(w, t, {
|
|
158
158
|
eventType: "DRAWER_OPENED",
|
|
159
159
|
shop: t,
|
|
160
160
|
anonymousUserId: d,
|
|
@@ -166,11 +166,11 @@ function ur(i) {
|
|
|
166
166
|
} catch (d) {
|
|
167
167
|
console.warn("[Bundle Analytics] Error in open() callback:", d);
|
|
168
168
|
}
|
|
169
|
-
}, [
|
|
170
|
-
if (
|
|
169
|
+
}, [w, t]), ne = le(() => {
|
|
170
|
+
if (w)
|
|
171
171
|
try {
|
|
172
172
|
const d = ke();
|
|
173
|
-
|
|
173
|
+
_e(w, t, {
|
|
174
174
|
eventType: "DRAWER_CLOSED",
|
|
175
175
|
shop: t,
|
|
176
176
|
anonymousUserId: d,
|
|
@@ -183,7 +183,7 @@ function ur(i) {
|
|
|
183
183
|
console.warn("[Bundle Analytics] Error in close() callback:", d);
|
|
184
184
|
}
|
|
185
185
|
R(!1), typeof window < "u" && window.location.hash === st && window.history.replaceState(null, "", window.location.pathname + window.location.search);
|
|
186
|
-
}, [
|
|
186
|
+
}, [w, t]);
|
|
187
187
|
E(() => {
|
|
188
188
|
if (typeof window > "u") return;
|
|
189
189
|
const d = () => {
|
|
@@ -195,10 +195,10 @@ function ur(i) {
|
|
|
195
195
|
R((d) => {
|
|
196
196
|
if (d)
|
|
197
197
|
ne();
|
|
198
|
-
else if (
|
|
198
|
+
else if (w)
|
|
199
199
|
try {
|
|
200
200
|
const x = ke();
|
|
201
|
-
|
|
201
|
+
_e(w, t, {
|
|
202
202
|
eventType: "DRAWER_OPENED",
|
|
203
203
|
shop: t,
|
|
204
204
|
anonymousUserId: x,
|
|
@@ -212,7 +212,7 @@ function ur(i) {
|
|
|
212
212
|
}
|
|
213
213
|
return !d;
|
|
214
214
|
});
|
|
215
|
-
}, [
|
|
215
|
+
}, [w, t, ne]), Re = T(() => {
|
|
216
216
|
const d = Number((y == null ? void 0 : y.maxBundleSize) ?? NaN), x = Number.isFinite(d) ? Math.floor(d) : 100;
|
|
217
217
|
return Math.max(2, Math.min(100, x));
|
|
218
218
|
}, [y == null ? void 0 : y.maxBundleSize]), fe = T(() => new Set(ie.map((d) => d.id)), [ie]), $ = T(() => {
|
|
@@ -247,7 +247,7 @@ function ur(i) {
|
|
|
247
247
|
}
|
|
248
248
|
if (D === g.selections && se === g.order) return g;
|
|
249
249
|
const xe = ve, pe = Object.values(D).reduce((q, M) => q + (M || 0), 0);
|
|
250
|
-
if (
|
|
250
|
+
if (w)
|
|
251
251
|
try {
|
|
252
252
|
const q = ke(), M = {
|
|
253
253
|
eventType: "VARIANT_SELECTION_CHANGED",
|
|
@@ -257,10 +257,10 @@ function ur(i) {
|
|
|
257
257
|
after: { ...D },
|
|
258
258
|
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
259
259
|
};
|
|
260
|
-
|
|
260
|
+
_e(w, t, M), xe === 0 && pe >= 1 && _e(w, t, {
|
|
261
261
|
...M,
|
|
262
262
|
mixpanelEvent: "bundle_started"
|
|
263
|
-
}), xe < $ && pe >= $ &&
|
|
263
|
+
}), xe < $ && pe >= $ && _e(w, t, {
|
|
264
264
|
...M,
|
|
265
265
|
mixpanelEvent: "bundle_completed"
|
|
266
266
|
});
|
|
@@ -268,7 +268,7 @@ function ur(i) {
|
|
|
268
268
|
}
|
|
269
269
|
return { selections: D, order: se };
|
|
270
270
|
});
|
|
271
|
-
}, [Re, $, fe,
|
|
271
|
+
}, [Re, $, fe, w, t]), me = le(() => Me({ selections: {}, order: [] }), []), Z = he.selections, Fe = he.order, K = T(() => Object.values(Z).reduce((d, x) => d + (x || 0), 0), [Z]), ge = T(() => !(C || U || z || !(y != null && y.isActive) || K < $), [K, y == null ? void 0 : y.isActive, z, C, $, U]), ae = le(async (d) => {
|
|
272
272
|
var M, S;
|
|
273
273
|
if (!ge || !y) return;
|
|
274
274
|
const x = St(), W = (y.title ?? "").trim().slice(0, 255), g = Object.entries(Z).map(([m, Y]) => ({ merchandiseId: m, quantity: ut(Y) })).filter((m) => m.quantity > 0).filter((m) => fe.has(m.merchandiseId)).map((m) => ({
|
|
@@ -301,10 +301,10 @@ function ur(i) {
|
|
|
301
301
|
})() : null, D = L ? Math.round(j * (1 - L / 100) * 100) / 100 : j, se = j - D, xe = g.map((m) => m.merchandiseId), pe = (O == null ? void 0 : O.handle) ?? "", q = ((M = O == null ? void 0 : O.label) == null ? void 0 : M.trim()) || "";
|
|
302
302
|
X(!0);
|
|
303
303
|
try {
|
|
304
|
-
if (d != null && d.checkout ? await o.linesAddForCheckout(g) : await o.linesAdd(g),
|
|
304
|
+
if (d != null && d.checkout ? await o.linesAddForCheckout(g) : await o.linesAdd(g), w)
|
|
305
305
|
try {
|
|
306
306
|
const m = ke(), Y = !!(d != null && d.checkout);
|
|
307
|
-
|
|
307
|
+
_e(w, t, {
|
|
308
308
|
eventType: "BUNDLE_ADDED_TO_BASKET",
|
|
309
309
|
shop: t,
|
|
310
310
|
anonymousUserId: m,
|
|
@@ -339,7 +339,7 @@ function ur(i) {
|
|
|
339
339
|
fe,
|
|
340
340
|
ie,
|
|
341
341
|
K,
|
|
342
|
-
|
|
342
|
+
w,
|
|
343
343
|
t
|
|
344
344
|
]), Se = le(async () => {
|
|
345
345
|
await ae(
|
|
@@ -620,8 +620,8 @@ class Rt {
|
|
|
620
620
|
const r = G(this.x, this.w + this.x), n = G(this.y, this.h + this.y);
|
|
621
621
|
return new At(this.context, this.getOptions, r, n);
|
|
622
622
|
}, this.animate = (r) => {
|
|
623
|
-
const { canvas: n, context: l, particlesGenerated: s, lastNumberOfPieces: p } = this, { run:
|
|
624
|
-
if (!
|
|
623
|
+
const { canvas: n, context: l, particlesGenerated: s, lastNumberOfPieces: p } = this, { run: w, recycle: A, numberOfPieces: R, debug: C, tweenFunction: te, tweenDuration: U } = this.getOptions();
|
|
624
|
+
if (!w)
|
|
625
625
|
return !1;
|
|
626
626
|
const X = this.particles.length, z = A ? X : s;
|
|
627
627
|
if (z < R) {
|
|
@@ -696,12 +696,12 @@ class Ft {
|
|
|
696
696
|
...r
|
|
697
697
|
}, Object.assign(this, r.confettiSource);
|
|
698
698
|
}, this.update = (r = 0) => {
|
|
699
|
-
const { options: { run: n, onConfettiComplete: l, frameRate: s }, canvas: p, context:
|
|
699
|
+
const { options: { run: n, onConfettiComplete: l, frameRate: s }, canvas: p, context: w } = this, A = Math.min(r - this.lastFrameTime, 50);
|
|
700
700
|
if (s && A < 1e3 / s) {
|
|
701
701
|
this.rafId = requestAnimationFrame(this.update);
|
|
702
702
|
return;
|
|
703
703
|
}
|
|
704
|
-
this.lastFrameTime = r - (s ? A % s : 0), n && (
|
|
704
|
+
this.lastFrameTime = r - (s ? A % s : 0), n && (w.fillStyle = "white", w.clearRect(0, 0, p.width, p.height)), this.generator.animate(A) ? this.rafId = requestAnimationFrame(this.update) : (l && typeof l == "function" && this.generator.particlesGenerated > 0 && l.call(this, this), this._options.run = !1);
|
|
705
705
|
}, this.reset = () => {
|
|
706
706
|
this.generator && this.generator.particlesGenerated > 0 && (this.generator.particlesGenerated = 0, this.generator.particles = [], this.generator.lastNumberOfPieces = 0);
|
|
707
707
|
}, this.stop = () => {
|
|
@@ -836,7 +836,7 @@ const zt = mt(
|
|
|
836
836
|
...s
|
|
837
837
|
},
|
|
838
838
|
[
|
|
839
|
-
...l.map(([
|
|
839
|
+
...l.map(([w, A]) => Qe(w, A)),
|
|
840
840
|
...Array.isArray(n) ? n : [n]
|
|
841
841
|
]
|
|
842
842
|
)
|
|
@@ -871,7 +871,7 @@ const Wt = (i, e) => {
|
|
|
871
871
|
const jt = [
|
|
872
872
|
["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
|
|
873
873
|
["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
|
|
874
|
-
], Vt = Wt("search", jt), Gt = "
|
|
874
|
+
], Vt = Wt("search", jt), Gt = "_backdrop_1l3rc_1", Qt = "_celebrationOverlay_1l3rc_14", Yt = "_celebrationChip_1l3rc_23", Ht = "_backdropOpen_1l3rc_74", Kt = "_backdropClosed_1l3rc_78", Xt = "_panel_1l3rc_82", Zt = "_panelOpen_1l3rc_102", Jt = "_panelClosed_1l3rc_106", en = "_header_1l3rc_145", tn = "_headerCenter_1l3rc_154", nn = "_title_1l3rc_162", rn = "_searchIconButton_1l3rc_171", on = "_headerTitleWrap_1l3rc_193", an = "_headerSearchWrap_1l3rc_197", sn = "_headerSearchOpen_1l3rc_209", cn = "_searchBar_1l3rc_221", ln = "_searchInput_1l3rc_233", un = "_searchClearButton_1l3rc_254", dn = "_closeButton_1l3rc_276", hn = "_body_1l3rc_309", fn = "_muted_1l3rc_314", mn = "_error_1l3rc_319", pn = "_variants_1l3rc_324", bn = "_variantList_1l3rc_328", _n = "_variantRow_1l3rc_336", wn = "_variantLeft_1l3rc_344", yn = "_addToBundleButton_1l3rc_351", gn = "_variantThumb_1l3rc_379", vn = "_variantThumbImg_1l3rc_389", xn = "_variantThumbFallback_1l3rc_396", Cn = "_variantInfo_1l3rc_406", In = "_variantName_1l3rc_410", Sn = "_variantMeta_1l3rc_419", Bn = "_variantPriceRow_1l3rc_427", Tn = "_variantCompareAt_1l3rc_434", Nn = "_variantPrice_1l3rc_427", kn = "_qtyControls_1l3rc_445", On = "_qtyButton_1l3rc_451", Mn = "_qtyValue_1l3rc_476", Pn = "_footer_1l3rc_483", An = "_poweredBy_1l3rc_490", Rn = "_boxSummaryWindow_1l3rc_502", Fn = "_boxSummaryRow_1l3rc_519", Dn = "_boxSlot_1l3rc_527", En = "_boxItem_1l3rc_535", Ln = "_boxItemClickable_1l3rc_547", qn = "_boxThresholdLabel_1l3rc_556", $n = "_boxItemPlaceholder_1l3rc_567", Un = "_boxItemFilled_1l3rc_573", zn = "_boxItemThreshold_1l3rc_579", Wn = "_boxItemDiscountText_1l3rc_587", jn = "_boxItemPlus_1l3rc_595", Vn = "_boxItemImage_1l3rc_602", Gn = "_boxItemFallback_1l3rc_609", Qn = "_ctaButtonGroup_1l3rc_620", Yn = "_ctaButtonGroupAnimating_1l3rc_627", Hn = "_cta_1l3rc_620", Kn = "_ctaDualLeft_1l3rc_655", Xn = "_ctaDualLeftAnimating_1l3rc_673", Zn = "_ctaDualRight_1l3rc_686", Jn = "_ctaDualRightAnimating_1l3rc_702", er = "_ctaTotals_1l3rc_713", tr = "_ctaDiscountBadge_1l3rc_721", nr = "_ctaTotalsWrap_1l3rc_735", rr = "_ctaTotalsWrapVisible_1l3rc_748", or = "_ctaTotalsStrike_1l3rc_755", ir = "_ctaTotalsPrice_1l3rc_762", u = {
|
|
875
875
|
backdrop: Gt,
|
|
876
876
|
celebrationOverlay: Qt,
|
|
877
877
|
celebrationChip: Yt,
|
|
@@ -896,8 +896,8 @@ const jt = [
|
|
|
896
896
|
error: mn,
|
|
897
897
|
variants: pn,
|
|
898
898
|
variantList: bn,
|
|
899
|
-
variantRow:
|
|
900
|
-
variantLeft:
|
|
899
|
+
variantRow: _n,
|
|
900
|
+
variantLeft: wn,
|
|
901
901
|
addToBundleButton: yn,
|
|
902
902
|
variantThumb: gn,
|
|
903
903
|
variantThumbImg: vn,
|
|
@@ -951,7 +951,7 @@ function fr(i) {
|
|
|
951
951
|
currencyCode: l,
|
|
952
952
|
config: s,
|
|
953
953
|
eligibleVariants: p,
|
|
954
|
-
selections:
|
|
954
|
+
selections: w,
|
|
955
955
|
selectionOrder: A,
|
|
956
956
|
setQuantity: R,
|
|
957
957
|
bundleSize: C,
|
|
@@ -959,7 +959,7 @@ function fr(i) {
|
|
|
959
959
|
canSubmit: U,
|
|
960
960
|
submit: X,
|
|
961
961
|
submitAndCheckout: z
|
|
962
|
-
} = Ye(), [N, F] = k(!1), [Q, y] = k(""), de = V(null), ie = V(null),
|
|
962
|
+
} = Ye(), [N, F] = k(!1), [Q, y] = k(""), de = V(null), ie = V(null), we = V(null), [he, Me] = k(() => typeof window > "u" ? { width: 0, height: 0 } : { width: window.innerWidth, height: window.innerHeight }), [Pe, ye] = k(0), [ne, Ae] = k(null), [Re, fe] = k(!1), $ = V(null), Ie = V(C), me = 7e3, [Z, Fe] = k(0), [K, ge] = k(null), [ae, Se] = k(!1), re = V(null), qe = 2800, d = [
|
|
963
963
|
"#2563eb",
|
|
964
964
|
"#3b82f6",
|
|
965
965
|
"#60a5fa",
|
|
@@ -978,8 +978,8 @@ function fr(i) {
|
|
|
978
978
|
}, g = (a) => {
|
|
979
979
|
const c = (a ?? []).filter((h) => {
|
|
980
980
|
var I, v;
|
|
981
|
-
const b = (I = h == null ? void 0 : h.name) == null ? void 0 : I.trim(),
|
|
982
|
-
return !(!b || !
|
|
981
|
+
const b = (I = h == null ? void 0 : h.name) == null ? void 0 : I.trim(), _ = (v = h == null ? void 0 : h.value) == null ? void 0 : v.trim();
|
|
982
|
+
return !(!b || !_ || b.toLowerCase() === "title");
|
|
983
983
|
});
|
|
984
984
|
return c.length ? c.map((h) => `${h.name}: ${h.value}`).join(" · ") : null;
|
|
985
985
|
}, J = (a) => {
|
|
@@ -1005,11 +1005,11 @@ function fr(i) {
|
|
|
1005
1005
|
if (!a) return q;
|
|
1006
1006
|
const c = a.split(/\s+/).filter(Boolean), h = (b) => {
|
|
1007
1007
|
var v;
|
|
1008
|
-
const
|
|
1009
|
-
|
|
1008
|
+
const _ = [];
|
|
1009
|
+
_.push(b.displayName), (v = b.product) != null && v.title && _.push(b.product.title);
|
|
1010
1010
|
for (const B of b.selectedOptions ?? [])
|
|
1011
|
-
|
|
1012
|
-
const I =
|
|
1011
|
+
_.push(B.name), _.push(B.value);
|
|
1012
|
+
const I = _.join(" ").toLowerCase();
|
|
1013
1013
|
return c.every((B) => I.includes(B));
|
|
1014
1014
|
};
|
|
1015
1015
|
return q.filter(h);
|
|
@@ -1030,21 +1030,21 @@ function fr(i) {
|
|
|
1030
1030
|
}, [S]), Ce = ce ?? Be, Te = T(() => {
|
|
1031
1031
|
const a = new Map(p.map((h) => [h.id, h]));
|
|
1032
1032
|
let c = 0;
|
|
1033
|
-
for (const [h, b] of Object.entries(
|
|
1034
|
-
const
|
|
1035
|
-
if (
|
|
1033
|
+
for (const [h, b] of Object.entries(w)) {
|
|
1034
|
+
const _ = b ?? 0;
|
|
1035
|
+
if (_ <= 0) continue;
|
|
1036
1036
|
const I = a.get(h), v = Number(I == null ? void 0 : I.price);
|
|
1037
|
-
Number.isFinite(v) && (c += v *
|
|
1037
|
+
Number.isFinite(v) && (c += v * _);
|
|
1038
1038
|
}
|
|
1039
1039
|
return Math.round(c * 100) / 100;
|
|
1040
|
-
}, [p,
|
|
1040
|
+
}, [p, w]), _t = T(() => {
|
|
1041
1041
|
if (!ce) return Te;
|
|
1042
1042
|
const a = Te * (1 - ce / 100);
|
|
1043
1043
|
return Math.round(a * 100) / 100;
|
|
1044
1044
|
}, [ce, Te]), Xe = T(() => S.length ? Math.max(...S.map((a) => a.minBundleSize)) : 0, [S]), $e = T(() => {
|
|
1045
1045
|
const a = new Map(p.map((c) => [c.id, c]));
|
|
1046
1046
|
return A.map((c) => a.get(c)).filter((c) => !!c);
|
|
1047
|
-
}, [p, A]),
|
|
1047
|
+
}, [p, A]), wt = T(() => {
|
|
1048
1048
|
var c;
|
|
1049
1049
|
const a = /* @__PURE__ */ new Map();
|
|
1050
1050
|
for (const h of S) {
|
|
@@ -1069,9 +1069,9 @@ function fr(i) {
|
|
|
1069
1069
|
if (!c) return;
|
|
1070
1070
|
const h = c.querySelector(`[data-variant-row="${a}"]`);
|
|
1071
1071
|
if (!h) return;
|
|
1072
|
-
const b = c.getBoundingClientRect(),
|
|
1073
|
-
if (
|
|
1074
|
-
const B = Math.max(0, c.scrollHeight - c.clientHeight), H =
|
|
1072
|
+
const b = c.getBoundingClientRect(), _ = h.getBoundingClientRect(), I = 8;
|
|
1073
|
+
if (_.top >= b.top + I && _.bottom <= b.bottom - I) return;
|
|
1074
|
+
const B = Math.max(0, c.scrollHeight - c.clientHeight), H = _.top - b.top + _.height / 2, ee = c.scrollTop + H - c.clientHeight / 2, oe = Math.min(B, Math.max(0, ee));
|
|
1075
1075
|
c.scrollTo({ top: oe, behavior: "smooth" });
|
|
1076
1076
|
};
|
|
1077
1077
|
return E(() => {
|
|
@@ -1110,10 +1110,10 @@ function fr(i) {
|
|
|
1110
1110
|
if (nt.current = C, C <= a) return;
|
|
1111
1111
|
const c = tt.current;
|
|
1112
1112
|
if (!c) return;
|
|
1113
|
-
const h = S.some((v) => v.minBundleSize === C), b = S.find((v) => v.minBundleSize > C),
|
|
1114
|
-
if (
|
|
1113
|
+
const h = S.some((v) => v.minBundleSize === C), b = S.find((v) => v.minBundleSize > C), _ = b && h ? b.minBundleSize - 1 : b ? null : C - 1;
|
|
1114
|
+
if (_ == null || _ < 0) return;
|
|
1115
1115
|
const I = requestAnimationFrame(() => {
|
|
1116
|
-
const v = c.querySelector(`[data-box-slot="${
|
|
1116
|
+
const v = c.querySelector(`[data-box-slot="${_}"]`);
|
|
1117
1117
|
if (!v) return;
|
|
1118
1118
|
const B = c.getBoundingClientRect(), ee = v.getBoundingClientRect().right - B.right;
|
|
1119
1119
|
if (ee <= 1) return;
|
|
@@ -1133,8 +1133,8 @@ function fr(i) {
|
|
|
1133
1133
|
if (!e || !ae || !K) return;
|
|
1134
1134
|
const a = requestAnimationFrame(() => {
|
|
1135
1135
|
var B;
|
|
1136
|
-
const c =
|
|
1137
|
-
x:
|
|
1136
|
+
const c = we.current, h = c == null ? void 0 : c.getBoundingClientRect(), b = (B = ze.current) == null ? void 0 : B.getBoundingClientRect(), _ = h ? h.left + h.width / 2 : b ? b.left + b.width / 2 : window.innerWidth / 2, I = h ? h.top + h.height / 2 : b ? b.top + b.height / 2 : window.innerHeight / 2, v = {
|
|
1137
|
+
x: _ - 2,
|
|
1138
1138
|
y: I - 2,
|
|
1139
1139
|
w: 4,
|
|
1140
1140
|
h: 4
|
|
@@ -1176,7 +1176,7 @@ function fr(i) {
|
|
|
1176
1176
|
Pe
|
|
1177
1177
|
) : null,
|
|
1178
1178
|
/* @__PURE__ */ P("aside", { ref: ze, className: [u.panel, e ? u.panelOpen : u.panelClosed].filter(Boolean).join(" "), tabIndex: -1, children: [
|
|
1179
|
-
ae && K ? /* @__PURE__ */ f("div", { className: u.celebrationOverlay, "aria-hidden": "true", children: /* @__PURE__ */ f("div", { ref:
|
|
1179
|
+
ae && K ? /* @__PURE__ */ f("div", { className: u.celebrationOverlay, "aria-hidden": "true", children: /* @__PURE__ */ f("div", { ref: we, className: u.celebrationChip, children: K }, Z) }) : null,
|
|
1180
1180
|
/* @__PURE__ */ P("header", { className: [u.header, N ? u.headerSearchOpen : null].filter(Boolean).join(" "), children: [
|
|
1181
1181
|
/* @__PURE__ */ f(
|
|
1182
1182
|
"button",
|
|
@@ -1234,7 +1234,7 @@ function fr(i) {
|
|
|
1234
1234
|
!o && s && !s.isActive ? /* @__PURE__ */ f("p", { className: u.error, children: "Bundles are not active." }) : null,
|
|
1235
1235
|
/* @__PURE__ */ f("div", { className: u.variants, children: /* @__PURE__ */ f("ul", { className: u.variantList, children: M.map((a) => {
|
|
1236
1236
|
var ee, oe, be, Ne;
|
|
1237
|
-
const c =
|
|
1237
|
+
const c = w[a.id] ?? 0, h = J(a), b = g(a.selectedOptions), _ = j(a), I = Ce, v = Number(a.price), B = I != null && Number.isFinite(I) && I > 0 && Number.isFinite(v), H = B ? Math.round(v * (1 - I / 100) * 100) / 100 : null;
|
|
1238
1238
|
return /* @__PURE__ */ P("li", { className: u.variantRow, "data-variant-row": a.id, children: [
|
|
1239
1239
|
/* @__PURE__ */ P("div", { className: u.variantLeft, children: [
|
|
1240
1240
|
/* @__PURE__ */ f("div", { className: u.variantThumb, "aria-hidden": "true", children: (ee = a.image) != null && ee.url ? /* @__PURE__ */ f(
|
|
@@ -1242,7 +1242,7 @@ function fr(i) {
|
|
|
1242
1242
|
{
|
|
1243
1243
|
className: u.variantThumbImg,
|
|
1244
1244
|
src: a.image.url,
|
|
1245
|
-
alt: a.image.altText ??
|
|
1245
|
+
alt: a.image.altText ?? _,
|
|
1246
1246
|
loading: "lazy"
|
|
1247
1247
|
}
|
|
1248
1248
|
) : /* @__PURE__ */ f("div", { className: u.variantThumbFallback, children: ((Ne = (be = (oe = a.product) == null ? void 0 : oe.title) == null ? void 0 : be.slice(0, 1)) == null ? void 0 : Ne.toUpperCase()) ?? "•" }) }),
|
|
@@ -1264,7 +1264,7 @@ function fr(i) {
|
|
|
1264
1264
|
onClick: () => R(a.id, 1),
|
|
1265
1265
|
disabled: r || pe,
|
|
1266
1266
|
className: u.addToBundleButton,
|
|
1267
|
-
"aria-label": `Add ${
|
|
1267
|
+
"aria-label": `Add ${_} to bundle`,
|
|
1268
1268
|
children: "Add"
|
|
1269
1269
|
}
|
|
1270
1270
|
) : /* @__PURE__ */ P("div", { className: u.qtyControls, children: [
|
|
@@ -1275,7 +1275,7 @@ function fr(i) {
|
|
|
1275
1275
|
onClick: () => R(a.id, c - 1),
|
|
1276
1276
|
disabled: r || c <= 0,
|
|
1277
1277
|
className: u.qtyButton,
|
|
1278
|
-
"aria-label": `Decrease ${
|
|
1278
|
+
"aria-label": `Decrease ${_}`,
|
|
1279
1279
|
children: "−"
|
|
1280
1280
|
}
|
|
1281
1281
|
),
|
|
@@ -1287,7 +1287,7 @@ function fr(i) {
|
|
|
1287
1287
|
onClick: () => R(a.id, c + 1),
|
|
1288
1288
|
disabled: r || pe,
|
|
1289
1289
|
className: u.qtyButton,
|
|
1290
|
-
"aria-label": `Increase ${
|
|
1290
|
+
"aria-label": `Increase ${_}`,
|
|
1291
1291
|
children: "+"
|
|
1292
1292
|
}
|
|
1293
1293
|
)
|
|
@@ -1298,26 +1298,26 @@ function fr(i) {
|
|
|
1298
1298
|
/* @__PURE__ */ P("footer", { className: u.footer, ref: ie, children: [
|
|
1299
1299
|
/* @__PURE__ */ f("div", { className: u.boxSummaryWindow, ref: tt, children: /* @__PURE__ */ f("div", { className: u.boxSummaryRow, "aria-label": "Bundle box summary", children: Array.from({ length: yt }).map((a, c) => {
|
|
1300
1300
|
var ee, oe, be, Ne;
|
|
1301
|
-
const h = $e[c], b =
|
|
1301
|
+
const h = $e[c], b = wt.get(c), _ = !!h, I = !!b, v = I && !_, B = b ? `${b.discountPercent}% off` : null, H = _ ? h.displayName : `Slot ${c + 1}`;
|
|
1302
1302
|
return /* @__PURE__ */ P("div", { "data-box-slot": c, className: u.boxSlot, children: [
|
|
1303
1303
|
/* @__PURE__ */ f(
|
|
1304
1304
|
"div",
|
|
1305
1305
|
{
|
|
1306
1306
|
className: [
|
|
1307
1307
|
u.boxItem,
|
|
1308
|
-
|
|
1308
|
+
_ ? u.boxItemFilled : u.boxItemPlaceholder,
|
|
1309
1309
|
I ? u.boxItemThreshold : null,
|
|
1310
|
-
|
|
1310
|
+
_ ? u.boxItemClickable : null
|
|
1311
1311
|
].filter(Boolean).join(" "),
|
|
1312
|
-
role:
|
|
1313
|
-
tabIndex:
|
|
1314
|
-
onClick:
|
|
1315
|
-
onKeyDown:
|
|
1312
|
+
role: _ ? "button" : void 0,
|
|
1313
|
+
tabIndex: _ ? 0 : void 0,
|
|
1314
|
+
onClick: _ ? () => rt(h.id) : void 0,
|
|
1315
|
+
onKeyDown: _ ? (We) => {
|
|
1316
1316
|
(We.key === "Enter" || We.key === " ") && (We.preventDefault(), rt(h.id));
|
|
1317
1317
|
} : void 0,
|
|
1318
1318
|
"aria-label": v && B ? `${H}. Unlocks ${B}.` : H,
|
|
1319
1319
|
title: v && B ? `${H} • Unlocks ${B}` : H,
|
|
1320
|
-
children:
|
|
1320
|
+
children: _ ? (ee = h.image) != null && ee.url ? /* @__PURE__ */ f(
|
|
1321
1321
|
"img",
|
|
1322
1322
|
{
|
|
1323
1323
|
className: u.boxItemImage,
|
|
@@ -1344,7 +1344,7 @@ function fr(i) {
|
|
|
1344
1344
|
/* @__PURE__ */ f("span", { children: ce ? /* @__PURE__ */ P(gt, { children: [
|
|
1345
1345
|
/* @__PURE__ */ f("span", { className: u.ctaTotalsStrike, children: D(Te.toFixed(2)) }),
|
|
1346
1346
|
" ",
|
|
1347
|
-
/* @__PURE__ */ f("span", { className: u.ctaTotalsPrice, children: D(
|
|
1347
|
+
/* @__PURE__ */ f("span", { className: u.ctaTotalsPrice, children: D(_t.toFixed(2)) })
|
|
1348
1348
|
] }) : /* @__PURE__ */ f("span", { className: u.ctaTotalsPrice, children: D(Te.toFixed(2)) }) })
|
|
1349
1349
|
] })
|
|
1350
1350
|
}
|
|
@@ -1406,7 +1406,7 @@ async function sr() {
|
|
|
1406
1406
|
for (const s of r) {
|
|
1407
1407
|
const p = o[s];
|
|
1408
1408
|
if (!p) continue;
|
|
1409
|
-
const
|
|
1409
|
+
const w = new DOMParser().parseFromString(p, "text/html"), A = w.getElementById(s) || w.querySelector(s), R = document.getElementById(s) || document.querySelector(s);
|
|
1410
1410
|
R && A && R.replaceWith(A);
|
|
1411
1411
|
}
|
|
1412
1412
|
const n = document.querySelector("cart-drawer");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
._backdrop_227w4_1{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--bb-backdrop-z-index, 9999);display:flex;justify-content:flex-end;background:var(--bb-backdrop-bg, rgba(0, 0, 0, .5));-webkit-backdrop-filter:blur(var(--bb-backdrop-blur, 2px));backdrop-filter:blur(var(--bb-backdrop-blur, 2px));padding:var(--bb-backdrop-padding, 12px);opacity:0;transition:opacity var(--bb-drawer-transition-duration, .22s) ease}._celebrationOverlay_227w4_14{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none;z-index:50}._celebrationChip_227w4_23{font-family:var(--bb-font-family-body, "Cabin", system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif);letter-spacing:.03em;font-size:18px;line-height:1;padding:12px 16px;border-radius:999px;color:var(--bb-celebration-text, #0b1b44);background:linear-gradient(180deg,var(--bb-celebration-bg-top, #ffffff),var(--bb-celebration-bg-bottom, #bae6fd));border:2px solid var(--bb-celebration-border, rgba(37, 99, 235, .28));box-shadow:0 18px 55px #0006,0 10px 28px #2563eb33,inset 0 1px #ffffffbf;transform-origin:50% 60%;will-change:transform,opacity,filter;animation:_bbCelebrationPop_227w4_1 2.8s cubic-bezier(.16,1,.3,1) forwards;filter:saturate(1.05)}@keyframes _bbCelebrationPop_227w4_1{0%{opacity:0;transform:translateY(10px) scale(.6);filter:blur(1px) saturate(1.1)}12%{opacity:1;transform:translateY(0) scale(1.12);filter:blur(0px) saturate(1.1)}22%{opacity:1;transform:translateY(0) scale(1)}80%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-10px) scale(.98)}}._backdropOpen_227w4_74{opacity:1}._backdropClosed_227w4_78{opacity:0}._panel_227w4_82{width:440px;max-width:100%;height:100%;background:var(--bb-surface-bg, #ffffff);color:var(--bb-text-color, #111827);font-family:var(--bb-font-family-body, "Cabin", system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif);border-radius:var(--bb-panel-radius, 16px);box-shadow:0 20px 60px #00000059;display:grid;grid-template-rows:auto 1fr auto;overflow:hidden;outline:none;position:relative;top:unset;right:unset;bottom:unset;left:unset}._panelOpen_227w4_102{animation:_bbSlideInFromRight_227w4_1 var(--bb-drawer-transition-duration, .22s) ease forwards}._panelClosed_227w4_106{animation:_bbSlideOutToRight_227w4_1 var(--bb-drawer-transition-duration, .22s) ease forwards}@keyframes _bbSlideInFromRight_227w4_1{0%{transform:translate(110%)}to{transform:translate(0)}}@keyframes _bbSlideOutToRight_227w4_1{0%{transform:translate(0)}to{transform:translate(110%)}}@media(prefers-reduced-motion:reduce){._backdrop_227w4_1{transition:none}._celebrationChip_227w4_23,._panelOpen_227w4_102,._panelClosed_227w4_106{animation:none}}._header_227w4_145{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;column-gap:12px;padding:var(--bb-header-padding, 16px 16px 12px 16px);border-bottom:1px solid var(--bb-border-color, rgba(17, 24, 39, .08))}._headerCenter_227w4_154{position:relative;min-width:0;display:flex;justify-content:center;align-items:center}._title_227w4_162{font-size:24px;margin:0;line-height:1.2;font-family:var(--bb-font-family-title, "Bebas Neue", "Cabin", system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif);letter-spacing:.02em;color:var(--bb-title-color, var(--bb-text-color, #111827))}._searchIconButton_227w4_171{width:36px;height:36px;border-radius:10px;border:1px solid var(--bb-border-strong-color, rgba(17, 24, 39, .12));background:var(--bb-surface-bg, #ffffff);color:var(--bb-text-color, #111827);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}._searchIconButton_227w4_171:hover{background:var(--bb-control-bg-hover, rgba(17, 24, 39, .04))}._searchIconButton_227w4_171:focus-visible{outline:2px solid var(--bb-focus-ring, #2563eb);outline-offset:2px}._headerTitleWrap_227w4_193{transition:opacity .18s ease,transform .22s ease}._headerSearchWrap_227w4_197{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:center;pointer-events:none;opacity:0;transform:translateY(-2px);transition:opacity .18s ease,transform .22s ease}._headerSearchOpen_227w4_209 ._headerTitleWrap_227w4_193{opacity:0;transform:translateY(2px);pointer-events:none}._headerSearchOpen_227w4_209 ._headerSearchWrap_227w4_197{opacity:1;transform:translateY(0);pointer-events:auto}._searchBar_227w4_221{width:min(320px,100%);height:36px;display:flex;align-items:center;gap:8px;background:var(--bb-surface-bg, #ffffff);border:1px solid var(--bb-border-strong-color, rgba(17, 24, 39, .12));border-radius:10px;padding:0 8px}._searchInput_227w4_233{width:100%;border:none;outline:none;background:transparent;font:inherit;font-size:14px;min-width:0;height:100%;line-height:36px;padding:0}._searchInput_227w4_233::-webkit-search-cancel-button,._searchInput_227w4_233::-webkit-search-decoration,._searchInput_227w4_233::-webkit-search-results-button,._searchInput_227w4_233::-webkit-search-results-decoration{-webkit-appearance:none;-moz-appearance:none;appearance:none}._searchClearButton_227w4_254{border:none;background:transparent;color:var(--bb-text-color, #111827);font:inherit;font-size:13px;font-weight:700;cursor:pointer;padding:6px;border-radius:10px;line-height:1}._searchClearButton_227w4_254:hover{background:var(--bb-control-bg-hover, rgba(17, 24, 39, .04))}._searchClearButton_227w4_254:focus-visible{outline:2px solid var(--bb-focus-ring, #2563eb);outline-offset:2px}._closeButton_227w4_276{border:1px solid var(--bb-border-strong-color, rgba(17, 24, 39, .12));background:var(--bb-surface-bg, #ffffff);color:var(--bb-text-color, #111827);width:36px;height:36px;border-radius:10px;cursor:pointer;flex:0 0 auto}._closeButton_227w4_276:hover{background:var(--bb-control-bg-hover, rgba(17, 24, 39, .04))}._closeButton_227w4_276:disabled{opacity:.6;cursor:not-allowed}._closeButton_227w4_276:focus-visible{outline:2px solid var(--bb-focus-ring, #2563eb);outline-offset:2px}@media(prefers-reduced-motion:reduce){._headerTitleWrap_227w4_193,._headerSearchWrap_227w4_197{transition:none}}._body_227w4_309{padding:var(--bb-body-padding, 8px 16px);overflow:auto}._muted_227w4_314{color:var(--bb-muted-strong-color, rgba(17, 24, 39, .65));margin:0 0 12px}._error_227w4_319{color:var(--bb-error-color, #b91c1c);margin:0 0 12px}._variants_227w4_324{margin-top:4px}._variantList_227w4_328{list-style:none;padding:0;margin:0;display:grid;gap:10px}._variantRow_227w4_336{display:grid;grid-template-columns:1fr auto;gap:0px;align-items:stretch;padding:5px}._variantLeft_227w4_344{min-width:0;display:flex;gap:12px;align-items:center}._addToBundleButton_227w4_351{height:100%;align-self:stretch;border-radius:12px;border:none;background:var(--bb-cta-bg, #91aae5);color:var(--bb-cta-text, #ffffff);font:inherit;font-weight:800;padding:0 16px;cursor:pointer;white-space:nowrap}._addToBundleButton_227w4_351:hover{background:var(--bb-cta-bg-hover, #1d4ed8)}._addToBundleButton_227w4_351:disabled{opacity:.6;cursor:not-allowed}._addToBundleButton_227w4_351:focus-visible{outline:2px solid var(--bb-focus-ring, #2563eb);outline-offset:2px}._variantThumb_227w4_379{width:60px;height:60px;border-radius:12px;overflow:hidden;border:1px solid var(--bb-border-color, rgba(17, 24, 39, .08));background:var(--bb-surface-subtle-bg, rgba(17, 24, 39, .02));flex:0 0 auto}._variantThumbImg_227w4_389{width:100%;height:100%;object-fit:cover;display:block}._variantThumbFallback_227w4_396{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--bb-text-color, #111827)}._variantInfo_227w4_406{min-width:0}._variantName_227w4_410{font-size:14px;font-weight:600;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._variantMeta_227w4_419{font-size:12px;color:var(--bb-muted-color, rgba(17, 24, 39, .6));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._variantPriceRow_227w4_427{display:flex;align-items:baseline;gap:8px;margin-top:4px}._variantCompareAt_227w4_434{font-size:12px;color:var(--bb-muted-color, rgba(17, 24, 39, .6));text-decoration:line-through}._variantPrice_227w4_427{font-size:13px;font-weight:800}._qtyControls_227w4_445{display:inline-flex;align-items:center;gap:6px}._qtyButton_227w4_451{width:34px;height:34px;border-radius:10px;border:1px solid var(--bb-border-strong-color, rgba(17, 24, 39, .12));background:var(--bb-surface-bg, #ffffff);cursor:pointer;line-height:1;font-size:16px}._qtyButton_227w4_451:hover{background:var(--bb-control-bg-hover, rgba(17, 24, 39, .04))}._qtyButton_227w4_451:disabled{opacity:.6;cursor:not-allowed}._qtyButton_227w4_451:focus-visible{outline:2px solid var(--bb-focus-ring, #2563eb);outline-offset:2px}._qtyValue_227w4_476{min-width:18px;text-align:center;font-variant-numeric:tabular-nums;font-weight:700}._footer_227w4_483{padding:var(--bb-footer-padding, 12px 16px 16px 16px);border-top:1px solid var(--bb-border-color, rgba(17, 24, 39, .08));background:var(--bb-surface-bg, #ffffff);position:relative}._poweredBy_227w4_490{font-size:10px;color:var(rgba(17, 24, 39, .6));text-align:center;margin-top:10px}._poweredBy_227w4_490 a{color:inherit;text-decoration:none}._boxSummaryWindow_227w4_502{margin-bottom:6px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding-bottom:6px;scrollbar-width:none;-ms-overflow-style:none}._boxSummaryWindow_227w4_502::-webkit-scrollbar{display:none}._boxSummaryRow_227w4_519{--bb-box-gap: 10px;display:flex;align-items:flex-start;gap:var(--bb-box-gap);width:100%}._boxSlot_227w4_527{flex:0 0 calc((100% - (4 * var(--bb-box-gap))) / 5);display:flex;flex-direction:column;align-items:stretch;gap:6px}._boxItem_227w4_535{width:100%;aspect-ratio:1 / 1;border-radius:12px;position:relative;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;box-sizing:border-box}._boxItemClickable_227w4_547{cursor:pointer}._boxItemClickable_227w4_547:focus-visible{outline:2px solid var(--bb-focus-ring, #2563eb);outline-offset:2px}._boxThresholdLabel_227w4_556{font-size:11px;line-height:1.15;font-weight:700;color:var(--bb-muted-strong-color, rgba(17, 24, 39, .65));text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._boxItemPlaceholder_227w4_567{border:1px dashed var(--bb-border-strong-color, rgba(17, 24, 39, .18));background:var(--bb-surface-subtle-bg, rgba(17, 24, 39, .02));color:var(--bb-muted-color, rgba(17, 24, 39, .6))}._boxItemFilled_227w4_573{border:1px solid var(--bb-border-color, rgba(17, 24, 39, .08));background:var(--bb-surface-bg, #ffffff);overflow:hidden}._boxItemThreshold_227w4_579{border-style:solid;border-width:2px;border-color:var(--bb-tier-border, rgba(37, 99, 235, .55));background:var(--bb-tier-bg, rgba(37, 99, 235, .08));color:var(--bb-tier-text, rgba(29, 78, 216, .95))}._boxItemDiscountText_227w4_587{font-size:12px;font-weight:800;text-align:center;line-height:1.1;padding:6px}._boxItemPlus_227w4_595{font-size:22px;font-weight:700;opacity:.5;line-height:1}._boxItemImage_227w4_602{width:100%;height:100%;object-fit:cover;display:block}._boxItemFallback_227w4_609{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bb-surface-subtle-bg, rgba(17, 24, 39, .04));color:var(--bb-text-color, #111827);font-weight:800}._ctaButtonGroup_227w4_620{display:flex;gap:8px;width:100%;transition:gap .3s cubic-bezier(.4,0,.2,1)}._ctaButtonGroupAnimating_227w4_627{gap:0}._cta_227w4_620{width:100%;border:1px solid var(--bb-cta-border, rgba(0, 0, 0, .12));background:var(--bb-cta-bg, #2563eb);color:var(--bb-cta-text, #ffffff);font:inherit;font-weight:700;padding:12px 14px;border-radius:12px;cursor:pointer}._ctaSecondary_227w4_643{width:100%;border:2px solid var(--bb-cta-bg, #2563eb);background:transparent;color:var(--bb-cta-bg, #2563eb);font:inherit;font-weight:700;padding:10px 14px;border-radius:12px;cursor:pointer}._ctaDualLeft_227w4_655{width:100%;border:2px solid var(--bb-cta-bg, #2563eb);background:transparent;color:var(--bb-cta-bg, #2563eb);font:inherit;font-weight:700;padding:10px 14px;border-radius:12px;cursor:pointer;transition:border-radius .3s cubic-bezier(.4,0,.2,1),background .3s cubic-bezier(.4,0,.2,1),color .3s cubic-bezier(.4,0,.2,1),border-right-width .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1)}._ctaDualLeftAnimating_227w4_673{border-top-right-radius:0;border-bottom-right-radius:0;border-right-width:0;background:var(--bb-cta-bg, #2563eb);opacity:.6;color:var(--bb-cta-text, #ffffff)}._ctaDualLeftAnimating_227w4_673>span{opacity:0}._ctaDualRight_227w4_686{width:100%;border:1px solid var(--bb-cta-border, rgba(0, 0, 0, .12));background:var(--bb-cta-bg, #2563eb);color:var(--bb-cta-text, #ffffff);font:inherit;font-weight:700;padding:12px 14px;border-radius:12px;cursor:pointer;transition:border-radius .3s cubic-bezier(.4,0,.2,1),border-left-width .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1)}._ctaDualRightAnimating_227w4_702{border-top-left-radius:0;border-bottom-left-radius:0;border-left-width:0;opacity:.6}._ctaDualRightAnimating_227w4_702>span{opacity:0}._ctaTotals_227w4_713{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-variant-numeric:tabular-nums}._ctaDiscountBadge_227w4_721{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800;background:linear-gradient(180deg,#2563eb24,#2563eb0f);border:1px solid rgba(37,99,235,.3);color:#1d4ed8f2;white-space:nowrap}._ctaTotalsWrap_227w4_735{overflow:hidden;max-height:0;opacity:0;transform:translateY(4px);margin-bottom:0;transition:max-height .22s ease,opacity .16s ease,transform .22s ease,margin-bottom .22s ease}._ctaTotalsWrapVisible_227w4_748{max-height:40px;opacity:1;transform:translateY(0);margin-bottom:8px}._ctaTotalsStrike_227w4_755{opacity:.85;text-decoration:line-through;font-weight:700;color:var(--bb-muted-strong-color, rgba(17, 24, 39, .65))}._ctaTotalsPrice_227w4_762{font-weight:900;color:var(--bb-text-color, #111827)}@media(prefers-reduced-motion:reduce){._ctaTotalsWrap_227w4_735{transition:none}}._cta_227w4_620:hover{background:var(--bb-cta-bg-hover, #1d4ed8)}._cta_227w4_620:disabled{opacity:.6;cursor:not-allowed}._cta_227w4_620:focus-visible{outline:2px solid var(--bb-cta-focus-ring, var(--bb-text-color, #111827));outline-offset:2px}._ctaSecondary_227w4_643:hover{background:var(--bb-cta-bg, #2563eb);color:var(--bb-cta-text, #ffffff)}._ctaSecondary_227w4_643:disabled{opacity:.6;cursor:not-allowed}._ctaSecondary_227w4_643:focus-visible{outline:2px solid var(--bb-cta-focus-ring, var(--bb-text-color, #111827));outline-offset:2px}._ctaDualLeft_227w4_655:hover{background:var(--bb-cta-bg, #2563eb);color:var(--bb-cta-text, #ffffff)}._ctaDualLeft_227w4_655:disabled{opacity:.6;cursor:not-allowed}._ctaDualLeft_227w4_655:focus-visible{outline:2px solid var(--bb-cta-focus-ring, var(--bb-text-color, #111827));outline-offset:2px}._ctaDualRight_227w4_686:hover{background:var(--bb-cta-bg-hover, #1d4ed8)}._ctaDualRight_227w4_686:disabled{opacity:.6;cursor:not-allowed}._ctaDualRight_227w4_686:focus-visible{outline:2px solid var(--bb-cta-focus-ring, var(--bb-text-color, #111827));outline-offset:2px}._helperText_227w4_831{margin-top:8px;font-size:12px;color:var(--bb-muted-strong-color, rgba(17, 24, 39, .65));text-align:center}@media(max-width:767px){._backdrop_227w4_1{padding:0;justify-content:stretch}._panel_227w4_82{width:100%;height:100%;border-radius:0}}
|
|
1
|
+
._backdrop_1l3rc_1{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--bb-backdrop-z-index, 2147483647);display:flex;justify-content:flex-end;background:var(--bb-backdrop-bg, rgba(0, 0, 0, .5));-webkit-backdrop-filter:blur(var(--bb-backdrop-blur, 2px));backdrop-filter:blur(var(--bb-backdrop-blur, 2px));padding:var(--bb-backdrop-padding, 12px);opacity:0;transition:opacity var(--bb-drawer-transition-duration, .22s) ease}._celebrationOverlay_1l3rc_14{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none;z-index:50}._celebrationChip_1l3rc_23{font-family:var(--bb-font-family-body, "Cabin", system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif);letter-spacing:.03em;font-size:18px;line-height:1;padding:12px 16px;border-radius:999px;color:var(--bb-celebration-text, #0b1b44);background:linear-gradient(180deg,var(--bb-celebration-bg-top, #ffffff),var(--bb-celebration-bg-bottom, #bae6fd));border:2px solid var(--bb-celebration-border, rgba(37, 99, 235, .28));box-shadow:0 18px 55px #0006,0 10px 28px #2563eb33,inset 0 1px #ffffffbf;transform-origin:50% 60%;will-change:transform,opacity,filter;animation:_bbCelebrationPop_1l3rc_1 2.8s cubic-bezier(.16,1,.3,1) forwards;filter:saturate(1.05)}@keyframes _bbCelebrationPop_1l3rc_1{0%{opacity:0;transform:translateY(10px) scale(.6);filter:blur(1px) saturate(1.1)}12%{opacity:1;transform:translateY(0) scale(1.12);filter:blur(0px) saturate(1.1)}22%{opacity:1;transform:translateY(0) scale(1)}80%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-10px) scale(.98)}}._backdropOpen_1l3rc_74{opacity:1}._backdropClosed_1l3rc_78{opacity:0}._panel_1l3rc_82{width:440px;max-width:100%;height:100%;background:var(--bb-surface-bg, #ffffff);color:var(--bb-text-color, #111827);font-family:var(--bb-font-family-body, "Cabin", system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif);border-radius:var(--bb-panel-radius, 16px);box-shadow:0 20px 60px #00000059;display:grid;grid-template-rows:auto 1fr auto;overflow:hidden;outline:none;position:relative;top:unset;right:unset;bottom:unset;left:unset}._panelOpen_1l3rc_102{animation:_bbSlideInFromRight_1l3rc_1 var(--bb-drawer-transition-duration, .22s) ease forwards}._panelClosed_1l3rc_106{animation:_bbSlideOutToRight_1l3rc_1 var(--bb-drawer-transition-duration, .22s) ease forwards}@keyframes _bbSlideInFromRight_1l3rc_1{0%{transform:translate(110%)}to{transform:translate(0)}}@keyframes _bbSlideOutToRight_1l3rc_1{0%{transform:translate(0)}to{transform:translate(110%)}}@media(prefers-reduced-motion:reduce){._backdrop_1l3rc_1{transition:none}._celebrationChip_1l3rc_23,._panelOpen_1l3rc_102,._panelClosed_1l3rc_106{animation:none}}._header_1l3rc_145{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;column-gap:12px;padding:var(--bb-header-padding, 16px 16px 12px 16px);border-bottom:1px solid var(--bb-border-color, rgba(17, 24, 39, .08))}._headerCenter_1l3rc_154{position:relative;min-width:0;display:flex;justify-content:center;align-items:center}._title_1l3rc_162{font-size:24px;margin:0;line-height:1.2;font-family:var(--bb-font-family-title, "Bebas Neue", "Cabin", system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif);letter-spacing:.02em;color:var(--bb-title-color, var(--bb-text-color, #111827))}._searchIconButton_1l3rc_171{width:36px;height:36px;border-radius:10px;border:1px solid var(--bb-border-strong-color, rgba(17, 24, 39, .12));background:var(--bb-surface-bg, #ffffff);color:var(--bb-text-color, #111827);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}._searchIconButton_1l3rc_171:hover{background:var(--bb-control-bg-hover, rgba(17, 24, 39, .04))}._searchIconButton_1l3rc_171:focus-visible{outline:2px solid var(--bb-focus-ring, #2563eb);outline-offset:2px}._headerTitleWrap_1l3rc_193{transition:opacity .18s ease,transform .22s ease}._headerSearchWrap_1l3rc_197{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:center;pointer-events:none;opacity:0;transform:translateY(-2px);transition:opacity .18s ease,transform .22s ease}._headerSearchOpen_1l3rc_209 ._headerTitleWrap_1l3rc_193{opacity:0;transform:translateY(2px);pointer-events:none}._headerSearchOpen_1l3rc_209 ._headerSearchWrap_1l3rc_197{opacity:1;transform:translateY(0);pointer-events:auto}._searchBar_1l3rc_221{width:min(320px,100%);height:36px;display:flex;align-items:center;gap:8px;background:var(--bb-surface-bg, #ffffff);border:1px solid var(--bb-border-strong-color, rgba(17, 24, 39, .12));border-radius:10px;padding:0 8px}._searchInput_1l3rc_233{width:100%;border:none;outline:none;background:transparent;font:inherit;font-size:14px;min-width:0;height:100%;line-height:36px;padding:0}._searchInput_1l3rc_233::-webkit-search-cancel-button,._searchInput_1l3rc_233::-webkit-search-decoration,._searchInput_1l3rc_233::-webkit-search-results-button,._searchInput_1l3rc_233::-webkit-search-results-decoration{-webkit-appearance:none;-moz-appearance:none;appearance:none}._searchClearButton_1l3rc_254{border:none;background:transparent;color:var(--bb-text-color, #111827);font:inherit;font-size:13px;font-weight:700;cursor:pointer;padding:6px;border-radius:10px;line-height:1}._searchClearButton_1l3rc_254:hover{background:var(--bb-control-bg-hover, rgba(17, 24, 39, .04))}._searchClearButton_1l3rc_254:focus-visible{outline:2px solid var(--bb-focus-ring, #2563eb);outline-offset:2px}._closeButton_1l3rc_276{border:1px solid var(--bb-border-strong-color, rgba(17, 24, 39, .12));background:var(--bb-surface-bg, #ffffff);color:var(--bb-text-color, #111827);width:36px;height:36px;border-radius:10px;cursor:pointer;flex:0 0 auto}._closeButton_1l3rc_276:hover{background:var(--bb-control-bg-hover, rgba(17, 24, 39, .04))}._closeButton_1l3rc_276:disabled{opacity:.6;cursor:not-allowed}._closeButton_1l3rc_276:focus-visible{outline:2px solid var(--bb-focus-ring, #2563eb);outline-offset:2px}@media(prefers-reduced-motion:reduce){._headerTitleWrap_1l3rc_193,._headerSearchWrap_1l3rc_197{transition:none}}._body_1l3rc_309{padding:var(--bb-body-padding, 8px 16px);overflow:auto}._muted_1l3rc_314{color:var(--bb-muted-strong-color, rgba(17, 24, 39, .65));margin:0 0 12px}._error_1l3rc_319{color:var(--bb-error-color, #b91c1c);margin:0 0 12px}._variants_1l3rc_324{margin-top:4px}._variantList_1l3rc_328{list-style:none;padding:0;margin:0;display:grid;gap:10px}._variantRow_1l3rc_336{display:grid;grid-template-columns:1fr auto;gap:0px;align-items:stretch;padding:5px}._variantLeft_1l3rc_344{min-width:0;display:flex;gap:12px;align-items:center}._addToBundleButton_1l3rc_351{height:100%;align-self:stretch;border-radius:12px;border:none;background:var(--bb-cta-bg, #91aae5);color:var(--bb-cta-text, #ffffff);font:inherit;font-weight:800;padding:0 16px;cursor:pointer;white-space:nowrap}._addToBundleButton_1l3rc_351:hover{background:var(--bb-cta-bg-hover, #1d4ed8)}._addToBundleButton_1l3rc_351:disabled{opacity:.6;cursor:not-allowed}._addToBundleButton_1l3rc_351:focus-visible{outline:2px solid var(--bb-focus-ring, #2563eb);outline-offset:2px}._variantThumb_1l3rc_379{width:60px;height:60px;border-radius:12px;overflow:hidden;border:1px solid var(--bb-border-color, rgba(17, 24, 39, .08));background:var(--bb-surface-subtle-bg, rgba(17, 24, 39, .02));flex:0 0 auto}._variantThumbImg_1l3rc_389{width:100%;height:100%;object-fit:cover;display:block}._variantThumbFallback_1l3rc_396{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--bb-text-color, #111827)}._variantInfo_1l3rc_406{min-width:0}._variantName_1l3rc_410{font-size:14px;font-weight:600;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._variantMeta_1l3rc_419{font-size:12px;color:var(--bb-muted-color, rgba(17, 24, 39, .6));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._variantPriceRow_1l3rc_427{display:flex;align-items:baseline;gap:8px;margin-top:4px}._variantCompareAt_1l3rc_434{font-size:12px;color:var(--bb-muted-color, rgba(17, 24, 39, .6));text-decoration:line-through}._variantPrice_1l3rc_427{font-size:13px;font-weight:800}._qtyControls_1l3rc_445{display:inline-flex;align-items:center;gap:6px}._qtyButton_1l3rc_451{width:34px;height:34px;border-radius:10px;border:1px solid var(--bb-border-strong-color, rgba(17, 24, 39, .12));background:var(--bb-surface-bg, #ffffff);cursor:pointer;line-height:1;font-size:16px}._qtyButton_1l3rc_451:hover{background:var(--bb-control-bg-hover, rgba(17, 24, 39, .04))}._qtyButton_1l3rc_451:disabled{opacity:.6;cursor:not-allowed}._qtyButton_1l3rc_451:focus-visible{outline:2px solid var(--bb-focus-ring, #2563eb);outline-offset:2px}._qtyValue_1l3rc_476{min-width:18px;text-align:center;font-variant-numeric:tabular-nums;font-weight:700}._footer_1l3rc_483{padding:var(--bb-footer-padding, 12px 16px 16px 16px);border-top:1px solid var(--bb-border-color, rgba(17, 24, 39, .08));background:var(--bb-surface-bg, #ffffff);position:relative}._poweredBy_1l3rc_490{font-size:10px;color:var(rgba(17, 24, 39, .6));text-align:center;margin-top:10px}._poweredBy_1l3rc_490 a{color:inherit;text-decoration:none}._boxSummaryWindow_1l3rc_502{margin-bottom:6px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding-bottom:6px;scrollbar-width:none;-ms-overflow-style:none}._boxSummaryWindow_1l3rc_502::-webkit-scrollbar{display:none}._boxSummaryRow_1l3rc_519{--bb-box-gap: 10px;display:flex;align-items:flex-start;gap:var(--bb-box-gap);width:100%}._boxSlot_1l3rc_527{flex:0 0 calc((100% - (4 * var(--bb-box-gap))) / 5);display:flex;flex-direction:column;align-items:stretch;gap:6px}._boxItem_1l3rc_535{width:100%;aspect-ratio:1 / 1;border-radius:12px;position:relative;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;box-sizing:border-box}._boxItemClickable_1l3rc_547{cursor:pointer}._boxItemClickable_1l3rc_547:focus-visible{outline:2px solid var(--bb-focus-ring, #2563eb);outline-offset:2px}._boxThresholdLabel_1l3rc_556{font-size:11px;line-height:1.15;font-weight:700;color:var(--bb-muted-strong-color, rgba(17, 24, 39, .65));text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._boxItemPlaceholder_1l3rc_567{border:1px dashed var(--bb-border-strong-color, rgba(17, 24, 39, .18));background:var(--bb-surface-subtle-bg, rgba(17, 24, 39, .02));color:var(--bb-muted-color, rgba(17, 24, 39, .6))}._boxItemFilled_1l3rc_573{border:1px solid var(--bb-border-color, rgba(17, 24, 39, .08));background:var(--bb-surface-bg, #ffffff);overflow:hidden}._boxItemThreshold_1l3rc_579{border-style:solid;border-width:2px;border-color:var(--bb-tier-border, rgba(37, 99, 235, .55));background:var(--bb-tier-bg, rgba(37, 99, 235, .08));color:var(--bb-tier-text, rgba(29, 78, 216, .95))}._boxItemDiscountText_1l3rc_587{font-size:12px;font-weight:800;text-align:center;line-height:1.1;padding:6px}._boxItemPlus_1l3rc_595{font-size:22px;font-weight:700;opacity:.5;line-height:1}._boxItemImage_1l3rc_602{width:100%;height:100%;object-fit:cover;display:block}._boxItemFallback_1l3rc_609{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bb-surface-subtle-bg, rgba(17, 24, 39, .04));color:var(--bb-text-color, #111827);font-weight:800}._ctaButtonGroup_1l3rc_620{display:flex;gap:8px;width:100%;transition:gap .3s cubic-bezier(.4,0,.2,1)}._ctaButtonGroupAnimating_1l3rc_627{gap:0}._cta_1l3rc_620{width:100%;border:1px solid var(--bb-cta-border, rgba(0, 0, 0, .12));background:var(--bb-cta-bg, #2563eb);color:var(--bb-cta-text, #ffffff);font:inherit;font-weight:700;padding:12px 14px;border-radius:12px;cursor:pointer}._ctaSecondary_1l3rc_643{width:100%;border:2px solid var(--bb-cta-bg, #2563eb);background:transparent;color:var(--bb-cta-bg, #2563eb);font:inherit;font-weight:700;padding:10px 14px;border-radius:12px;cursor:pointer}._ctaDualLeft_1l3rc_655{width:100%;border:2px solid var(--bb-cta-bg, #2563eb);background:transparent;color:var(--bb-cta-bg, #2563eb);font:inherit;font-weight:700;padding:10px 14px;border-radius:12px;cursor:pointer;transition:border-radius .3s cubic-bezier(.4,0,.2,1),background .3s cubic-bezier(.4,0,.2,1),color .3s cubic-bezier(.4,0,.2,1),border-right-width .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1)}._ctaDualLeftAnimating_1l3rc_673{border-top-right-radius:0;border-bottom-right-radius:0;border-right-width:0;background:var(--bb-cta-bg, #2563eb);opacity:.6;color:var(--bb-cta-text, #ffffff)}._ctaDualLeftAnimating_1l3rc_673>span{opacity:0}._ctaDualRight_1l3rc_686{width:100%;border:1px solid var(--bb-cta-border, rgba(0, 0, 0, .12));background:var(--bb-cta-bg, #2563eb);color:var(--bb-cta-text, #ffffff);font:inherit;font-weight:700;padding:12px 14px;border-radius:12px;cursor:pointer;transition:border-radius .3s cubic-bezier(.4,0,.2,1),border-left-width .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1)}._ctaDualRightAnimating_1l3rc_702{border-top-left-radius:0;border-bottom-left-radius:0;border-left-width:0;opacity:.6}._ctaDualRightAnimating_1l3rc_702>span{opacity:0}._ctaTotals_1l3rc_713{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-variant-numeric:tabular-nums}._ctaDiscountBadge_1l3rc_721{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800;background:linear-gradient(180deg,#2563eb24,#2563eb0f);border:1px solid rgba(37,99,235,.3);color:#1d4ed8f2;white-space:nowrap}._ctaTotalsWrap_1l3rc_735{overflow:hidden;max-height:0;opacity:0;transform:translateY(4px);margin-bottom:0;transition:max-height .22s ease,opacity .16s ease,transform .22s ease,margin-bottom .22s ease}._ctaTotalsWrapVisible_1l3rc_748{max-height:40px;opacity:1;transform:translateY(0);margin-bottom:8px}._ctaTotalsStrike_1l3rc_755{opacity:.85;text-decoration:line-through;font-weight:700;color:var(--bb-muted-strong-color, rgba(17, 24, 39, .65))}._ctaTotalsPrice_1l3rc_762{font-weight:900;color:var(--bb-text-color, #111827)}@media(prefers-reduced-motion:reduce){._ctaTotalsWrap_1l3rc_735{transition:none}}._cta_1l3rc_620:hover{background:var(--bb-cta-bg-hover, #1d4ed8)}._cta_1l3rc_620:disabled{opacity:.6;cursor:not-allowed}._cta_1l3rc_620:focus-visible{outline:2px solid var(--bb-cta-focus-ring, var(--bb-text-color, #111827));outline-offset:2px}._ctaSecondary_1l3rc_643:hover{background:var(--bb-cta-bg, #2563eb);color:var(--bb-cta-text, #ffffff)}._ctaSecondary_1l3rc_643:disabled{opacity:.6;cursor:not-allowed}._ctaSecondary_1l3rc_643:focus-visible{outline:2px solid var(--bb-cta-focus-ring, var(--bb-text-color, #111827));outline-offset:2px}._ctaDualLeft_1l3rc_655:hover{background:var(--bb-cta-bg, #2563eb);color:var(--bb-cta-text, #ffffff)}._ctaDualLeft_1l3rc_655:disabled{opacity:.6;cursor:not-allowed}._ctaDualLeft_1l3rc_655:focus-visible{outline:2px solid var(--bb-cta-focus-ring, var(--bb-text-color, #111827));outline-offset:2px}._ctaDualRight_1l3rc_686:hover{background:var(--bb-cta-bg-hover, #1d4ed8)}._ctaDualRight_1l3rc_686:disabled{opacity:.6;cursor:not-allowed}._ctaDualRight_1l3rc_686:focus-visible{outline:2px solid var(--bb-cta-focus-ring, var(--bb-text-color, #111827));outline-offset:2px}._helperText_1l3rc_831{margin-top:8px;font-size:12px;color:var(--bb-muted-strong-color, rgba(17, 24, 39, .65));text-align:center}@media(max-width:767px){._backdrop_1l3rc_1{padding:0;justify-content:stretch}._panel_1l3rc_82{width:100%;height:100%;border-radius:0}}
|
|
@@ -62,5 +62,5 @@ Error generating stack: `+o.message+`
|
|
|
62
62
|
*
|
|
63
63
|
* This source code is licensed under the ISC license.
|
|
64
64
|
* See the LICENSE file in the root directory of this source tree.
|
|
65
|
-
*/const Gc=Yc("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]),O={backdrop:"_backdrop_227w4_1",celebrationOverlay:"_celebrationOverlay_227w4_14",celebrationChip:"_celebrationChip_227w4_23",backdropOpen:"_backdropOpen_227w4_74",backdropClosed:"_backdropClosed_227w4_78",panel:"_panel_227w4_82",panelOpen:"_panelOpen_227w4_102",panelClosed:"_panelClosed_227w4_106",header:"_header_227w4_145",headerCenter:"_headerCenter_227w4_154",title:"_title_227w4_162",searchIconButton:"_searchIconButton_227w4_171",headerTitleWrap:"_headerTitleWrap_227w4_193",headerSearchWrap:"_headerSearchWrap_227w4_197",headerSearchOpen:"_headerSearchOpen_227w4_209",searchBar:"_searchBar_227w4_221",searchInput:"_searchInput_227w4_233",searchClearButton:"_searchClearButton_227w4_254",closeButton:"_closeButton_227w4_276",body:"_body_227w4_309",muted:"_muted_227w4_314",error:"_error_227w4_319",variants:"_variants_227w4_324",variantList:"_variantList_227w4_328",variantRow:"_variantRow_227w4_336",variantLeft:"_variantLeft_227w4_344",addToBundleButton:"_addToBundleButton_227w4_351",variantThumb:"_variantThumb_227w4_379",variantThumbImg:"_variantThumbImg_227w4_389",variantThumbFallback:"_variantThumbFallback_227w4_396",variantInfo:"_variantInfo_227w4_406",variantName:"_variantName_227w4_410",variantMeta:"_variantMeta_227w4_419",variantPriceRow:"_variantPriceRow_227w4_427",variantCompareAt:"_variantCompareAt_227w4_434",variantPrice:"_variantPrice_227w4_427",qtyControls:"_qtyControls_227w4_445",qtyButton:"_qtyButton_227w4_451",qtyValue:"_qtyValue_227w4_476",footer:"_footer_227w4_483",poweredBy:"_poweredBy_227w4_490",boxSummaryWindow:"_boxSummaryWindow_227w4_502",boxSummaryRow:"_boxSummaryRow_227w4_519",boxSlot:"_boxSlot_227w4_527",boxItem:"_boxItem_227w4_535",boxItemClickable:"_boxItemClickable_227w4_547",boxThresholdLabel:"_boxThresholdLabel_227w4_556",boxItemPlaceholder:"_boxItemPlaceholder_227w4_567",boxItemFilled:"_boxItemFilled_227w4_573",boxItemThreshold:"_boxItemThreshold_227w4_579",boxItemDiscountText:"_boxItemDiscountText_227w4_587",boxItemPlus:"_boxItemPlus_227w4_595",boxItemImage:"_boxItemImage_227w4_602",boxItemFallback:"_boxItemFallback_227w4_609",ctaButtonGroup:"_ctaButtonGroup_227w4_620",ctaButtonGroupAnimating:"_ctaButtonGroupAnimating_227w4_627",cta:"_cta_227w4_620",ctaDualLeft:"_ctaDualLeft_227w4_655",ctaDualLeftAnimating:"_ctaDualLeftAnimating_227w4_673",ctaDualRight:"_ctaDualRight_227w4_686",ctaDualRightAnimating:"_ctaDualRightAnimating_227w4_702",ctaTotals:"_ctaTotals_227w4_713",ctaDiscountBadge:"_ctaDiscountBadge_227w4_721",ctaTotalsWrap:"_ctaTotalsWrap_227w4_735",ctaTotalsWrapVisible:"_ctaTotalsWrapVisible_227w4_748",ctaTotalsStrike:"_ctaTotalsStrike_227w4_755",ctaTotalsPrice:"_ctaTotalsPrice_227w4_762"};function Xc(d){var rn,Rr;const{isOpen:s,close:u,loading:w,submitting:y,error:h,currencyCode:P,config:S,eligibleVariants:D,selections:X,selectionOrder:ce,setQuantity:te,bundleSize:q,minRequired:Me,canSubmit:we,submit:se,submitAndCheckout:ne}=Io(),[pe,ye]=R.useState(!1),[Ne,K]=R.useState(""),Ve=R.useRef(null),Pe=R.useRef(null),Le=R.useRef(null),[Fe,_t]=R.useState(()=>typeof window>"u"?{width:0,height:0}:{width:window.innerWidth,height:window.innerHeight}),[dt,pt]=R.useState(0),[Ae,He]=R.useState(null),[et,qe]=R.useState(!1),he=R.useRef(null),ve=R.useRef(q),M=7e3,[U,L]=R.useState(0),[p,_]=R.useState(null),[Y,b]=R.useState(!1),ee=R.useRef(null),ue=2800,T=["#2563eb","#3b82f6","#60a5fa","#93c5fd","#bae6fd","#e0f2fe"],$=R.useMemo(()=>{var N;const k=(N=S==null?void 0:S.styleSettings)==null?void 0:N.confettiColors;return Array.isArray(k)&&k.length>=6?k.slice(0,6).map((V,le)=>typeof V=="string"&&V.trim()?V:T[le]):[...T]},[(rn=S==null?void 0:S.styleSettings)==null?void 0:rn.confettiColors]),ie=k=>{const N=Number.parseFloat(k);return Number.isFinite(N)?String(Math.round(N)):k},J=k=>{const N=(k??[]).filter(V=>{var ge,ae;const le=(ge=V==null?void 0:V.name)==null?void 0:ge.trim(),re=(ae=V==null?void 0:V.value)==null?void 0:ae.trim();return!(!le||!re||le.toLowerCase()==="title")});return N.length?N.map(V=>`${V.name}: ${V.value}`).join(" · "):null},it=k=>{var N;return((N=k.product)==null?void 0:N.title)??k.displayName??k.title},tt=k=>{const N=it(k),V=J(k.selectedOptions);return[N,V].filter(Boolean).join(" — ")},[Bt,ze]=R.useState(s),Ke=R.useRef(null),We=k=>{const N=Number(k);if(!Number.isFinite(N))return k;if(P)try{return new Intl.NumberFormat(void 0,{style:"currency",currency:P}).format(N)}catch{}return`$${N.toFixed(2)}`},Nt=((Rr=S==null?void 0:S.title)==null?void 0:Rr.trim())||"Build your bundle",en=R.useMemo(()=>{const k=Number((S==null?void 0:S.maxBundleSize)??NaN),N=Number.isFinite(k)?Math.floor(k):100;return Math.max(2,Math.min(100,N))},[S==null?void 0:S.maxBundleSize]),Dt=q>=en,Be=R.useMemo(()=>[...D].sort((k,N)=>k.displayName.localeCompare(N.displayName)),[D]),_e=R.useMemo(()=>{const k=Ne.trim().toLowerCase();if(!k)return Be;const N=k.split(/\s+/).filter(Boolean),V=le=>{var ae;const re=[];re.push(le.displayName),(ae=le.product)!=null&&ae.title&&re.push(le.product.title);for(const xe of le.selectedOptions??[])re.push(xe.name),re.push(xe.value);const ge=re.join(" ").toLowerCase();return N.every(xe=>ge.includes(xe))};return Be.filter(V)},[Ne,Be]),ke=R.useMemo(()=>[...(S==null?void 0:S.rules)??[]].sort((k,N)=>k.minBundleSize-N.minBundleSize),[S==null?void 0:S.rules]),G=R.useMemo(()=>Math.max(0,Me-q),[q,Me]),ut=R.useMemo(()=>{let k=null;for(const N of ke)q>=N.minBundleSize&&(k=N);return k},[q,ke]),jt=R.useMemo(()=>{if(!ut)return null;const k=Number.parseFloat(ut.discountPercent);return!Number.isFinite(k)||k<=0?null:k},[ut]),vn=R.useMemo(()=>{const k=ke[0];if(!k)return null;const N=Number.parseFloat(k.discountPercent);return!Number.isFinite(N)||N<=0?null:N},[ke]),Ht=jt??vn,qt=R.useMemo(()=>{const k=new Map(D.map(V=>[V.id,V]));let N=0;for(const[V,le]of Object.entries(X)){const re=le??0;if(re<=0)continue;const ge=k.get(V),ae=Number(ge==null?void 0:ge.price);Number.isFinite(ae)&&(N+=ae*re)}return Math.round(N*100)/100},[D,X]),hl=R.useMemo(()=>{if(!jt)return qt;const k=qt*(1-jt/100);return Math.round(k*100)/100},[jt,qt]),yn=R.useMemo(()=>ke.length?Math.max(...ke.map(k=>k.minBundleSize)):0,[ke]),tn=R.useMemo(()=>{const k=new Map(D.map(N=>[N.id,N]));return ce.map(N=>k.get(N)).filter(N=>!!N)},[D,ce]),Bo=R.useMemo(()=>{var N;const k=new Map;for(const V of ke){const le=Math.max(0,V.minBundleSize-1);k.set(le,{discountPercent:V.discountPercent,minBundleSize:V.minBundleSize,label:((N=V.label)==null?void 0:N.trim())||`Buy ${V.minBundleSize}+`})}return k},[ke]),ml=R.useMemo(()=>Math.max(yn||Me,tn.length),[tn.length,yn,Me]),[er,vl]=R.useState(!0),tr=R.useRef(G);R.useEffect(()=>{if(((S==null?void 0:S.ctaButtonMode)||"add_to_cart")==="add_to_cart_checkout"){const N=tr.current>0;vl(!(N&&G===0))}tr.current=G},[G,S==null?void 0:S.ctaButtonMode]);const An=R.useRef(null),nr=R.useRef(null),rr=R.useRef(null),lr=R.useRef(q),nn=k=>{const N=nr.current;if(!N)return;const V=N.querySelector(`[data-variant-row="${k}"]`);if(!V)return;const le=N.getBoundingClientRect(),re=V.getBoundingClientRect(),ge=8;if(re.top>=le.top+ge&&re.bottom<=le.bottom-ge)return;const xe=Math.max(0,N.scrollHeight-N.clientHeight),Ye=re.top-le.top+re.height/2,Pt=N.scrollTop+Ye-N.clientHeight/2,st=Math.min(xe,Math.max(0,Pt));N.scrollTo({top:st,behavior:"smooth"})};return R.useEffect(()=>{if(!s)return;const k=N=>{N.key==="Escape"&&u()};return window.addEventListener("keydown",k),()=>window.removeEventListener("keydown",k)},[u,s]),R.useEffect(()=>{if(typeof window>"u")return;const k=()=>_t({width:window.innerWidth,height:window.innerHeight});return k(),window.addEventListener("resize",k),()=>window.removeEventListener("resize",k)},[]),R.useEffect(()=>{if(Ke.current!=null&&(window.clearTimeout(Ke.current),Ke.current=null),s){ze(!0);return}Ke.current=window.setTimeout(()=>{ze(!1),Ke.current=null},220)},[s]),R.useEffect(()=>()=>{Ke.current!=null&&window.clearTimeout(Ke.current)},[]),R.useEffect(()=>()=>{he.current!=null&&window.clearTimeout(he.current)},[]),R.useEffect(()=>()=>{ee.current!=null&&window.clearTimeout(ee.current)},[]),R.useEffect(()=>{if(!s||!pe)return;const k=requestAnimationFrame(()=>{var N;return(N=Ve.current)==null?void 0:N.focus()});return()=>cancelAnimationFrame(k)},[s,pe]),R.useEffect(()=>{const k=lr.current;if(lr.current=q,q<=k)return;const N=rr.current;if(!N)return;const V=ke.some(ae=>ae.minBundleSize===q),le=ke.find(ae=>ae.minBundleSize>q),re=le&&V?le.minBundleSize-1:le?null:q-1;if(re==null||re<0)return;const ge=requestAnimationFrame(()=>{const ae=N.querySelector(`[data-box-slot="${re}"]`);if(!ae)return;const xe=N.getBoundingClientRect(),Pt=ae.getBoundingClientRect().right-xe.right;if(Pt<=1)return;const st=Math.max(0,N.scrollWidth-N.clientWidth),Tt=Math.min(st,Math.max(0,N.scrollLeft+Pt));N.scrollTo({left:Tt,behavior:"smooth"})});return()=>cancelAnimationFrame(ge)},[q,ke]),R.useEffect(()=>{if(!s)return;const k=ve.current;if(ve.current=q,q<=k)return;const N=ke.find(V=>V.minBundleSize===q);N&&(_(`You received a ${ie(N.discountPercent)}% discount!`),L(V=>V+1),b(!0),ee.current!=null&&window.clearTimeout(ee.current),ee.current=window.setTimeout(()=>{b(!1),ee.current=null},ue))},[q,s,ke]),R.useEffect(()=>{if(!s||!Y||!p)return;const k=requestAnimationFrame(()=>{var xe;const N=Le.current,V=N==null?void 0:N.getBoundingClientRect(),le=(xe=An.current)==null?void 0:xe.getBoundingClientRect(),re=V?V.left+V.width/2:le?le.left+le.width/2:window.innerWidth/2,ge=V?V.top+V.height/2:le?le.top+le.height/2:window.innerHeight/2,ae={x:re-2,y:ge-2,w:4,h:4};He(ae),pt(Ye=>Ye+1),qe(!0),he.current!=null&&window.clearTimeout(he.current),he.current=window.setTimeout(()=>{qe(!1),he.current=null},M)});return()=>cancelAnimationFrame(k)},[U,p,M,Y,s]),R.useEffect(()=>{var k;s&&((k=An.current)==null||k.focus())},[s]),Bt?z.jsxs("div",{role:"dialog","aria-modal":"true","aria-label":"Bundle builder",className:[O.backdrop,s?O.backdropOpen:O.backdropClosed,d.className].filter(Boolean).join(" "),onMouseDown:k=>{k.target===k.currentTarget&&u()},children:[et&&Ae&&Fe.width>0&&Fe.height>0?z.jsx(Wc,{width:Fe.width,height:Fe.height,confettiSource:Ae,colors:$,recycle:!1,numberOfPieces:70,tweenDuration:100,gravity:.45,initialVelocityY:{min:-10,max:-30},initialVelocityX:{min:-6,max:6},style:{position:"fixed",inset:0,pointerEvents:"none",zIndex:2147483646}},dt):null,z.jsxs("aside",{ref:An,className:[O.panel,s?O.panelOpen:O.panelClosed].filter(Boolean).join(" "),tabIndex:-1,children:[Y&&p?z.jsx("div",{className:O.celebrationOverlay,"aria-hidden":"true",children:z.jsx("div",{ref:Le,className:O.celebrationChip,children:p},U)}):null,z.jsxs("header",{className:[O.header,pe?O.headerSearchOpen:null].filter(Boolean).join(" "),children:[z.jsx("button",{type:"button",className:O.searchIconButton,"aria-label":pe?"Search (expanded)":"Search","aria-expanded":pe,onClick:()=>{ye(!0)},children:z.jsx(Gc,{size:18,"aria-hidden":"true"})}),z.jsxs("div",{className:O.headerCenter,children:[z.jsx("div",{className:O.headerTitleWrap,"aria-hidden":pe,children:z.jsx("h2",{className:O.title,children:Nt})}),z.jsx("div",{className:O.headerSearchWrap,"aria-hidden":!pe,children:z.jsxs("div",{className:O.searchBar,children:[z.jsx("input",{ref:Ve,className:O.searchInput,type:"search",value:Ne,placeholder:"Search",onChange:k=>K(k.target.value),onBlur:()=>{Ne.trim()===""&&ye(!1)}}),Ne.trim()?z.jsx("button",{type:"button",className:O.searchClearButton,onMouseDown:k=>{k.preventDefault()},onClick:()=>{var k;K(""),(k=Ve.current)==null||k.focus()},"aria-label":"Clear search",children:"Clear"}):null]})})]}),z.jsx("button",{type:"button",onClick:u,disabled:y,className:O.closeButton,"aria-label":"Close",children:"×"})]}),z.jsxs("div",{className:O.body,ref:nr,children:[w?z.jsx("p",{className:O.muted,children:"Loading…"}):null,h?z.jsx("p",{className:O.error,children:h}):null,!w&&S&&!S.isActive?z.jsx("p",{className:O.error,children:"Bundles are not active."}):null,z.jsx("div",{className:O.variants,children:z.jsx("ul",{className:O.variantList,children:_e.map(k=>{var Pt,st,Tt,Kt;const N=X[k.id]??0,V=it(k),le=J(k.selectedOptions),re=tt(k),ge=Ht,ae=Number(k.price),xe=ge!=null&&Number.isFinite(ge)&&ge>0&&Number.isFinite(ae),Ye=xe?Math.round(ae*(1-ge/100)*100)/100:null;return z.jsxs("li",{className:O.variantRow,"data-variant-row":k.id,children:[z.jsxs("div",{className:O.variantLeft,children:[z.jsx("div",{className:O.variantThumb,"aria-hidden":"true",children:(Pt=k.image)!=null&&Pt.url?z.jsx("img",{className:O.variantThumbImg,src:k.image.url,alt:k.image.altText??re,loading:"lazy"}):z.jsx("div",{className:O.variantThumbFallback,children:((Kt=(Tt=(st=k.product)==null?void 0:st.title)==null?void 0:Tt.slice(0,1))==null?void 0:Kt.toUpperCase())??"•"})}),z.jsxs("div",{className:O.variantInfo,children:[z.jsx("div",{className:O.variantName,children:V}),le?z.jsx("div",{className:O.variantMeta,children:le}):null,z.jsxs("div",{className:O.variantPriceRow,children:[xe?z.jsx("span",{className:O.variantCompareAt,children:We(Number.isFinite(ae)?ae.toFixed(2):k.price)}):null,z.jsx("span",{className:O.variantPrice,children:We(Ye!=null?Ye.toFixed(2):Number.isFinite(ae)?ae.toFixed(2):k.price)})]})]})]}),N<=0?z.jsx("button",{type:"button",onClick:()=>te(k.id,1),disabled:y||Dt,className:O.addToBundleButton,"aria-label":`Add ${re} to bundle`,children:"Add"}):z.jsxs("div",{className:O.qtyControls,children:[z.jsx("button",{type:"button",onClick:()=>te(k.id,N-1),disabled:y||N<=0,className:O.qtyButton,"aria-label":`Decrease ${re}`,children:"−"}),z.jsx("span",{className:O.qtyValue,"aria-label":`Quantity ${N}`,children:N}),z.jsx("button",{type:"button",onClick:()=>te(k.id,N+1),disabled:y||Dt,className:O.qtyButton,"aria-label":`Increase ${re}`,children:"+"})]})]},k.id)})})})]}),z.jsxs("footer",{className:O.footer,ref:Pe,children:[z.jsx("div",{className:O.boxSummaryWindow,ref:rr,children:z.jsx("div",{className:O.boxSummaryRow,"aria-label":"Bundle box summary",children:Array.from({length:ml}).map((k,N)=>{var Pt,st,Tt,Kt;const V=tn[N],le=Bo.get(N),re=!!V,ge=!!le,ae=ge&&!re,xe=le?`${le.discountPercent}% off`:null,Ye=re?V.displayName:`Slot ${N+1}`;return z.jsxs("div",{"data-box-slot":N,className:O.boxSlot,children:[z.jsx("div",{className:[O.boxItem,re?O.boxItemFilled:O.boxItemPlaceholder,ge?O.boxItemThreshold:null,re?O.boxItemClickable:null].filter(Boolean).join(" "),role:re?"button":void 0,tabIndex:re?0:void 0,onClick:re?()=>nn(V.id):void 0,onKeyDown:re?Un=>{(Un.key==="Enter"||Un.key===" ")&&(Un.preventDefault(),nn(V.id))}:void 0,"aria-label":ae&&xe?`${Ye}. Unlocks ${xe}.`:Ye,title:ae&&xe?`${Ye} • Unlocks ${xe}`:Ye,children:re?(Pt=V.image)!=null&&Pt.url?z.jsx("img",{className:O.boxItemImage,src:V.image.url,alt:V.image.altText??V.displayName,loading:"lazy"}):z.jsx("div",{className:O.boxItemFallback,"aria-hidden":"true",children:((Kt=(Tt=(st=V.product)==null?void 0:st.title)==null?void 0:Tt.slice(0,1))==null?void 0:Kt.toUpperCase())??"•"}):ae&&xe?z.jsx("div",{className:O.boxItemDiscountText,children:xe}):z.jsx("div",{className:O.boxItemPlus,"aria-hidden":"true",children:"+"})}),ge?z.jsx("div",{className:O.boxThresholdLabel,children:le.label}):null]},N)})})}),z.jsx("div",{className:[O.ctaTotalsWrap,G<=0?O.ctaTotalsWrapVisible:null].filter(Boolean).join(" "),"aria-hidden":G>0,children:z.jsxs("div",{className:O.ctaTotals,"aria-label":"Totals",children:[Ht?z.jsxs("span",{className:O.ctaDiscountBadge,children:[Ht,"% Discount"]}):z.jsx("span",{}),z.jsx("span",{children:jt?z.jsxs(z.Fragment,{children:[z.jsx("span",{className:O.ctaTotalsStrike,children:We(qt.toFixed(2))})," ",z.jsx("span",{className:O.ctaTotalsPrice,children:We(hl.toFixed(2))})]}):z.jsx("span",{className:O.ctaTotalsPrice,children:We(qt.toFixed(2))})})]})}),(()=>{const k=(S==null?void 0:S.ctaButtonMode)||"add_to_cart";return k==="add_to_cart_checkout"?G>0?z.jsx("button",{type:"button",onClick:se,disabled:!we,className:O.cta,children:y?"Adding…":`Add ${G} more product${G===1?"":"s"}`}):z.jsxs("div",{className:`${O.ctaButtonGroup} ${er?O.ctaButtonGroupAnimating:""}`,children:[z.jsx("button",{type:"button",onClick:se,disabled:!we,className:`${O.ctaDualLeft} ${er?O.ctaDualLeftAnimating:""}`,children:z.jsx("span",{children:y?"Adding…":"Add to Basket"})}),z.jsx("button",{type:"button",onClick:ne,disabled:!we,className:`${O.ctaDualRight} ${er?O.ctaDualRightAnimating:""}`,children:z.jsx("span",{children:y?"Processing…":"Checkout"})})]}):k==="checkout"?z.jsx("button",{type:"button",onClick:ne,disabled:!we,className:O.cta,children:y?"Processing…":G>0?`Add ${G} more product${G===1?"":"s"}`:"Checkout"}):z.jsx("button",{type:"button",onClick:se,disabled:!we,className:O.cta,children:y?"Adding…":G>0?`Add ${G} more product${G===1?"":"s"}`:"Add to Basket"})})(),z.jsxs("div",{className:O.poweredBy,children:["powered by ",z.jsx("a",{href:"https://apps.shopify.com/best-bundles",target:"_blank",rel:"noopener noreferrer",children:" BestBundles"})]})]})]})]}):null}function Lo(d){if(d!=null&&d.length)return d.reduce((s,u)=>(u!=null&&u.key&&(s[u.key]=u.value??""),s),{})}function Lu(d){const s=/\/(\d+)$/.exec(d);return s?s[1]:d}function Zc(){var d;return((d=window==null?void 0:window.routes)==null?void 0:d.cart_url)||"/cart"}async function Jc(){try{const d=Zc(),s=encodeURIComponent("cart-drawer,cart-icon-bubble,cart-live-region-text"),u=await fetch(`${d}?sections=${s}`,{method:"GET"});if(!u.ok)return;const w=await u.json().catch(()=>null);if(!w)return;const y=["cart-drawer","cart-icon-bubble","cart-live-region-text"];for(const S of y){const D=w[S];if(!D)continue;const X=new DOMParser().parseFromString(D,"text/html"),ce=X.getElementById(S)||X.querySelector(S),te=document.getElementById(S)||document.querySelector(S);te&&ce&&te.replaceWith(ce)}const h=document.querySelector("cart-drawer");if(h&&typeof h.open=="function"){h.open();return}document.body.classList.add("overflow-hidden");const P=document.querySelector("cart-drawer")||document.querySelector("cart-notification");P&&(P.classList.contains("is-empty")&&P.classList.remove("is-empty"),P.classList.add("active"))}catch{}}async function pl(d,s){const u=await fetch(d,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(s)});if(!u.ok){const w=await u.text().catch(()=>"");throw new Error(w||`Cart request failed: ${u.status}`)}return u.json().catch(()=>null)}function bc(){return{async linesAdd(d){const s=d.map(u=>({id:Lu(u.merchandiseId),quantity:u.quantity,properties:Lo(u.attributes)}));await pl("/cart/add.js",{items:s})},async linesAddForCheckout(d){const s=d.map(u=>({id:Lu(u.merchandiseId),quantity:u.quantity,properties:Lo(u.attributes)}));await pl("/cart/add.js",{items:s})},async linesUpdate(d){for(const s of d)await pl("/cart/change.js",{id:s.id,quantity:s.quantity,properties:Lo(s.attributes)})},async linesRemove(d){for(const s of d)await pl("/cart/change.js",{id:s,quantity:0})},openCartUI(){window.setTimeout(()=>{Jc()},0)},navigateToCheckout(){window.location.href="/checkout"}}}let St=null,bt=null,mn=null;function ef(d){const s=zc(),u=Io();return R.useEffect(()=>{d.onControls(s)},[s,d.onControls]),R.useEffect(()=>{d.onBundleBuilder(u)},[u,d.onBundleBuilder]),null}function tf(d){return typeof d=="string"?document.getElementById(d):d}function Fn(d){if(bt){d(bt);return}window.setTimeout(()=>{bt&&d(bt)},0)}function Bu(d){const s=tf(d.container);if(!s)throw new Error("BestBundlesUI.mount: container not found");St==null||St.unmount(),St=Pc.createRoot(s);const u=d.cartAdapter??bc(),w=d.configEndpoint?({apiBaseUrl:y,shop:h,signal:P})=>{const S=new URL(d.configEndpoint,y);return S.searchParams.set("shop",h),fetch(S,{method:"GET",signal:P,headers:{"Content-Type":"application/json"}}).then(D=>D.json()).catch(()=>({ok:!1,error:"Invalid response."}))}:void 0;return St.render(z.jsxs(Mc,{apiBaseUrl:d.apiBaseUrl,shop:d.shop,configHandle:d.configHandle,cartAdapter:u,configFetcher:w,analyticsEndpoint:d.analyticsEndpoint,children:[z.jsx(ef,{onControls:y=>bt=y,onBundleBuilder:y=>mn=y}),z.jsx(Xc,{})]})),d.openOnMount&&Fn(y=>y.open()),{open:()=>Fn(y=>y.open()),close:()=>Fn(y=>y.close()),toggle:()=>Fn(y=>y.toggle()),unmount:()=>{St==null||St.unmount(),St=null,bt=null}}}function Du(){Fn(d=>d.open())}function ju(){Fn(d=>d.close())}function Fu(){Fn(d=>d.toggle())}function Au(){St==null||St.unmount(),St=null,bt=null,mn=null}function Uu(d){if(!d)return;function s(){if(mn&&typeof mn.setQuantity=="function"){const u=mn.selections[d]??0;mn.setQuantity(d,u+1),bt&&bt.open()}}mn?s():window.setTimeout(()=>{mn&&s()},0)}return typeof window<"u"&&(window.BestBundlesUI={mount:Bu,open:Du,close:ju,toggle:Fu,unmount:Au,addVariant:Uu}),pn.addVariant=Uu,pn.close=ju,pn.mount=Bu,pn.open=Du,pn.toggle=Fu,pn.unmount=Au,Object.defineProperty(pn,Symbol.toStringTag,{value:"Module"}),pn})({});
|
|
65
|
+
*/const Gc=Yc("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]),O={backdrop:"_backdrop_1l3rc_1",celebrationOverlay:"_celebrationOverlay_1l3rc_14",celebrationChip:"_celebrationChip_1l3rc_23",backdropOpen:"_backdropOpen_1l3rc_74",backdropClosed:"_backdropClosed_1l3rc_78",panel:"_panel_1l3rc_82",panelOpen:"_panelOpen_1l3rc_102",panelClosed:"_panelClosed_1l3rc_106",header:"_header_1l3rc_145",headerCenter:"_headerCenter_1l3rc_154",title:"_title_1l3rc_162",searchIconButton:"_searchIconButton_1l3rc_171",headerTitleWrap:"_headerTitleWrap_1l3rc_193",headerSearchWrap:"_headerSearchWrap_1l3rc_197",headerSearchOpen:"_headerSearchOpen_1l3rc_209",searchBar:"_searchBar_1l3rc_221",searchInput:"_searchInput_1l3rc_233",searchClearButton:"_searchClearButton_1l3rc_254",closeButton:"_closeButton_1l3rc_276",body:"_body_1l3rc_309",muted:"_muted_1l3rc_314",error:"_error_1l3rc_319",variants:"_variants_1l3rc_324",variantList:"_variantList_1l3rc_328",variantRow:"_variantRow_1l3rc_336",variantLeft:"_variantLeft_1l3rc_344",addToBundleButton:"_addToBundleButton_1l3rc_351",variantThumb:"_variantThumb_1l3rc_379",variantThumbImg:"_variantThumbImg_1l3rc_389",variantThumbFallback:"_variantThumbFallback_1l3rc_396",variantInfo:"_variantInfo_1l3rc_406",variantName:"_variantName_1l3rc_410",variantMeta:"_variantMeta_1l3rc_419",variantPriceRow:"_variantPriceRow_1l3rc_427",variantCompareAt:"_variantCompareAt_1l3rc_434",variantPrice:"_variantPrice_1l3rc_427",qtyControls:"_qtyControls_1l3rc_445",qtyButton:"_qtyButton_1l3rc_451",qtyValue:"_qtyValue_1l3rc_476",footer:"_footer_1l3rc_483",poweredBy:"_poweredBy_1l3rc_490",boxSummaryWindow:"_boxSummaryWindow_1l3rc_502",boxSummaryRow:"_boxSummaryRow_1l3rc_519",boxSlot:"_boxSlot_1l3rc_527",boxItem:"_boxItem_1l3rc_535",boxItemClickable:"_boxItemClickable_1l3rc_547",boxThresholdLabel:"_boxThresholdLabel_1l3rc_556",boxItemPlaceholder:"_boxItemPlaceholder_1l3rc_567",boxItemFilled:"_boxItemFilled_1l3rc_573",boxItemThreshold:"_boxItemThreshold_1l3rc_579",boxItemDiscountText:"_boxItemDiscountText_1l3rc_587",boxItemPlus:"_boxItemPlus_1l3rc_595",boxItemImage:"_boxItemImage_1l3rc_602",boxItemFallback:"_boxItemFallback_1l3rc_609",ctaButtonGroup:"_ctaButtonGroup_1l3rc_620",ctaButtonGroupAnimating:"_ctaButtonGroupAnimating_1l3rc_627",cta:"_cta_1l3rc_620",ctaDualLeft:"_ctaDualLeft_1l3rc_655",ctaDualLeftAnimating:"_ctaDualLeftAnimating_1l3rc_673",ctaDualRight:"_ctaDualRight_1l3rc_686",ctaDualRightAnimating:"_ctaDualRightAnimating_1l3rc_702",ctaTotals:"_ctaTotals_1l3rc_713",ctaDiscountBadge:"_ctaDiscountBadge_1l3rc_721",ctaTotalsWrap:"_ctaTotalsWrap_1l3rc_735",ctaTotalsWrapVisible:"_ctaTotalsWrapVisible_1l3rc_748",ctaTotalsStrike:"_ctaTotalsStrike_1l3rc_755",ctaTotalsPrice:"_ctaTotalsPrice_1l3rc_762"};function Xc(d){var rn,Rr;const{isOpen:s,close:u,loading:w,submitting:y,error:h,currencyCode:P,config:S,eligibleVariants:D,selections:X,selectionOrder:ce,setQuantity:te,bundleSize:q,minRequired:Me,canSubmit:we,submit:se,submitAndCheckout:ne}=Io(),[pe,ye]=R.useState(!1),[Ne,K]=R.useState(""),Ve=R.useRef(null),Pe=R.useRef(null),Le=R.useRef(null),[Fe,_t]=R.useState(()=>typeof window>"u"?{width:0,height:0}:{width:window.innerWidth,height:window.innerHeight}),[dt,pt]=R.useState(0),[Ae,He]=R.useState(null),[et,qe]=R.useState(!1),he=R.useRef(null),ve=R.useRef(q),M=7e3,[U,L]=R.useState(0),[p,_]=R.useState(null),[Y,b]=R.useState(!1),ee=R.useRef(null),ue=2800,T=["#2563eb","#3b82f6","#60a5fa","#93c5fd","#bae6fd","#e0f2fe"],$=R.useMemo(()=>{var N;const k=(N=S==null?void 0:S.styleSettings)==null?void 0:N.confettiColors;return Array.isArray(k)&&k.length>=6?k.slice(0,6).map((V,le)=>typeof V=="string"&&V.trim()?V:T[le]):[...T]},[(rn=S==null?void 0:S.styleSettings)==null?void 0:rn.confettiColors]),ie=k=>{const N=Number.parseFloat(k);return Number.isFinite(N)?String(Math.round(N)):k},J=k=>{const N=(k??[]).filter(V=>{var ge,ae;const le=(ge=V==null?void 0:V.name)==null?void 0:ge.trim(),re=(ae=V==null?void 0:V.value)==null?void 0:ae.trim();return!(!le||!re||le.toLowerCase()==="title")});return N.length?N.map(V=>`${V.name}: ${V.value}`).join(" · "):null},it=k=>{var N;return((N=k.product)==null?void 0:N.title)??k.displayName??k.title},tt=k=>{const N=it(k),V=J(k.selectedOptions);return[N,V].filter(Boolean).join(" — ")},[Bt,ze]=R.useState(s),Ke=R.useRef(null),We=k=>{const N=Number(k);if(!Number.isFinite(N))return k;if(P)try{return new Intl.NumberFormat(void 0,{style:"currency",currency:P}).format(N)}catch{}return`$${N.toFixed(2)}`},Nt=((Rr=S==null?void 0:S.title)==null?void 0:Rr.trim())||"Build your bundle",en=R.useMemo(()=>{const k=Number((S==null?void 0:S.maxBundleSize)??NaN),N=Number.isFinite(k)?Math.floor(k):100;return Math.max(2,Math.min(100,N))},[S==null?void 0:S.maxBundleSize]),Dt=q>=en,Be=R.useMemo(()=>[...D].sort((k,N)=>k.displayName.localeCompare(N.displayName)),[D]),_e=R.useMemo(()=>{const k=Ne.trim().toLowerCase();if(!k)return Be;const N=k.split(/\s+/).filter(Boolean),V=le=>{var ae;const re=[];re.push(le.displayName),(ae=le.product)!=null&&ae.title&&re.push(le.product.title);for(const xe of le.selectedOptions??[])re.push(xe.name),re.push(xe.value);const ge=re.join(" ").toLowerCase();return N.every(xe=>ge.includes(xe))};return Be.filter(V)},[Ne,Be]),ke=R.useMemo(()=>[...(S==null?void 0:S.rules)??[]].sort((k,N)=>k.minBundleSize-N.minBundleSize),[S==null?void 0:S.rules]),G=R.useMemo(()=>Math.max(0,Me-q),[q,Me]),ut=R.useMemo(()=>{let k=null;for(const N of ke)q>=N.minBundleSize&&(k=N);return k},[q,ke]),jt=R.useMemo(()=>{if(!ut)return null;const k=Number.parseFloat(ut.discountPercent);return!Number.isFinite(k)||k<=0?null:k},[ut]),vn=R.useMemo(()=>{const k=ke[0];if(!k)return null;const N=Number.parseFloat(k.discountPercent);return!Number.isFinite(N)||N<=0?null:N},[ke]),Ht=jt??vn,qt=R.useMemo(()=>{const k=new Map(D.map(V=>[V.id,V]));let N=0;for(const[V,le]of Object.entries(X)){const re=le??0;if(re<=0)continue;const ge=k.get(V),ae=Number(ge==null?void 0:ge.price);Number.isFinite(ae)&&(N+=ae*re)}return Math.round(N*100)/100},[D,X]),hl=R.useMemo(()=>{if(!jt)return qt;const k=qt*(1-jt/100);return Math.round(k*100)/100},[jt,qt]),yn=R.useMemo(()=>ke.length?Math.max(...ke.map(k=>k.minBundleSize)):0,[ke]),tn=R.useMemo(()=>{const k=new Map(D.map(N=>[N.id,N]));return ce.map(N=>k.get(N)).filter(N=>!!N)},[D,ce]),Bo=R.useMemo(()=>{var N;const k=new Map;for(const V of ke){const le=Math.max(0,V.minBundleSize-1);k.set(le,{discountPercent:V.discountPercent,minBundleSize:V.minBundleSize,label:((N=V.label)==null?void 0:N.trim())||`Buy ${V.minBundleSize}+`})}return k},[ke]),ml=R.useMemo(()=>Math.max(yn||Me,tn.length),[tn.length,yn,Me]),[er,vl]=R.useState(!0),tr=R.useRef(G);R.useEffect(()=>{if(((S==null?void 0:S.ctaButtonMode)||"add_to_cart")==="add_to_cart_checkout"){const N=tr.current>0;vl(!(N&&G===0))}tr.current=G},[G,S==null?void 0:S.ctaButtonMode]);const An=R.useRef(null),nr=R.useRef(null),rr=R.useRef(null),lr=R.useRef(q),nn=k=>{const N=nr.current;if(!N)return;const V=N.querySelector(`[data-variant-row="${k}"]`);if(!V)return;const le=N.getBoundingClientRect(),re=V.getBoundingClientRect(),ge=8;if(re.top>=le.top+ge&&re.bottom<=le.bottom-ge)return;const xe=Math.max(0,N.scrollHeight-N.clientHeight),Ye=re.top-le.top+re.height/2,Pt=N.scrollTop+Ye-N.clientHeight/2,st=Math.min(xe,Math.max(0,Pt));N.scrollTo({top:st,behavior:"smooth"})};return R.useEffect(()=>{if(!s)return;const k=N=>{N.key==="Escape"&&u()};return window.addEventListener("keydown",k),()=>window.removeEventListener("keydown",k)},[u,s]),R.useEffect(()=>{if(typeof window>"u")return;const k=()=>_t({width:window.innerWidth,height:window.innerHeight});return k(),window.addEventListener("resize",k),()=>window.removeEventListener("resize",k)},[]),R.useEffect(()=>{if(Ke.current!=null&&(window.clearTimeout(Ke.current),Ke.current=null),s){ze(!0);return}Ke.current=window.setTimeout(()=>{ze(!1),Ke.current=null},220)},[s]),R.useEffect(()=>()=>{Ke.current!=null&&window.clearTimeout(Ke.current)},[]),R.useEffect(()=>()=>{he.current!=null&&window.clearTimeout(he.current)},[]),R.useEffect(()=>()=>{ee.current!=null&&window.clearTimeout(ee.current)},[]),R.useEffect(()=>{if(!s||!pe)return;const k=requestAnimationFrame(()=>{var N;return(N=Ve.current)==null?void 0:N.focus()});return()=>cancelAnimationFrame(k)},[s,pe]),R.useEffect(()=>{const k=lr.current;if(lr.current=q,q<=k)return;const N=rr.current;if(!N)return;const V=ke.some(ae=>ae.minBundleSize===q),le=ke.find(ae=>ae.minBundleSize>q),re=le&&V?le.minBundleSize-1:le?null:q-1;if(re==null||re<0)return;const ge=requestAnimationFrame(()=>{const ae=N.querySelector(`[data-box-slot="${re}"]`);if(!ae)return;const xe=N.getBoundingClientRect(),Pt=ae.getBoundingClientRect().right-xe.right;if(Pt<=1)return;const st=Math.max(0,N.scrollWidth-N.clientWidth),Tt=Math.min(st,Math.max(0,N.scrollLeft+Pt));N.scrollTo({left:Tt,behavior:"smooth"})});return()=>cancelAnimationFrame(ge)},[q,ke]),R.useEffect(()=>{if(!s)return;const k=ve.current;if(ve.current=q,q<=k)return;const N=ke.find(V=>V.minBundleSize===q);N&&(_(`You received a ${ie(N.discountPercent)}% discount!`),L(V=>V+1),b(!0),ee.current!=null&&window.clearTimeout(ee.current),ee.current=window.setTimeout(()=>{b(!1),ee.current=null},ue))},[q,s,ke]),R.useEffect(()=>{if(!s||!Y||!p)return;const k=requestAnimationFrame(()=>{var xe;const N=Le.current,V=N==null?void 0:N.getBoundingClientRect(),le=(xe=An.current)==null?void 0:xe.getBoundingClientRect(),re=V?V.left+V.width/2:le?le.left+le.width/2:window.innerWidth/2,ge=V?V.top+V.height/2:le?le.top+le.height/2:window.innerHeight/2,ae={x:re-2,y:ge-2,w:4,h:4};He(ae),pt(Ye=>Ye+1),qe(!0),he.current!=null&&window.clearTimeout(he.current),he.current=window.setTimeout(()=>{qe(!1),he.current=null},M)});return()=>cancelAnimationFrame(k)},[U,p,M,Y,s]),R.useEffect(()=>{var k;s&&((k=An.current)==null||k.focus())},[s]),Bt?z.jsxs("div",{role:"dialog","aria-modal":"true","aria-label":"Bundle builder",className:[O.backdrop,s?O.backdropOpen:O.backdropClosed,d.className].filter(Boolean).join(" "),onMouseDown:k=>{k.target===k.currentTarget&&u()},children:[et&&Ae&&Fe.width>0&&Fe.height>0?z.jsx(Wc,{width:Fe.width,height:Fe.height,confettiSource:Ae,colors:$,recycle:!1,numberOfPieces:70,tweenDuration:100,gravity:.45,initialVelocityY:{min:-10,max:-30},initialVelocityX:{min:-6,max:6},style:{position:"fixed",inset:0,pointerEvents:"none",zIndex:2147483646}},dt):null,z.jsxs("aside",{ref:An,className:[O.panel,s?O.panelOpen:O.panelClosed].filter(Boolean).join(" "),tabIndex:-1,children:[Y&&p?z.jsx("div",{className:O.celebrationOverlay,"aria-hidden":"true",children:z.jsx("div",{ref:Le,className:O.celebrationChip,children:p},U)}):null,z.jsxs("header",{className:[O.header,pe?O.headerSearchOpen:null].filter(Boolean).join(" "),children:[z.jsx("button",{type:"button",className:O.searchIconButton,"aria-label":pe?"Search (expanded)":"Search","aria-expanded":pe,onClick:()=>{ye(!0)},children:z.jsx(Gc,{size:18,"aria-hidden":"true"})}),z.jsxs("div",{className:O.headerCenter,children:[z.jsx("div",{className:O.headerTitleWrap,"aria-hidden":pe,children:z.jsx("h2",{className:O.title,children:Nt})}),z.jsx("div",{className:O.headerSearchWrap,"aria-hidden":!pe,children:z.jsxs("div",{className:O.searchBar,children:[z.jsx("input",{ref:Ve,className:O.searchInput,type:"search",value:Ne,placeholder:"Search",onChange:k=>K(k.target.value),onBlur:()=>{Ne.trim()===""&&ye(!1)}}),Ne.trim()?z.jsx("button",{type:"button",className:O.searchClearButton,onMouseDown:k=>{k.preventDefault()},onClick:()=>{var k;K(""),(k=Ve.current)==null||k.focus()},"aria-label":"Clear search",children:"Clear"}):null]})})]}),z.jsx("button",{type:"button",onClick:u,disabled:y,className:O.closeButton,"aria-label":"Close",children:"×"})]}),z.jsxs("div",{className:O.body,ref:nr,children:[w?z.jsx("p",{className:O.muted,children:"Loading…"}):null,h?z.jsx("p",{className:O.error,children:h}):null,!w&&S&&!S.isActive?z.jsx("p",{className:O.error,children:"Bundles are not active."}):null,z.jsx("div",{className:O.variants,children:z.jsx("ul",{className:O.variantList,children:_e.map(k=>{var Pt,st,Tt,Kt;const N=X[k.id]??0,V=it(k),le=J(k.selectedOptions),re=tt(k),ge=Ht,ae=Number(k.price),xe=ge!=null&&Number.isFinite(ge)&&ge>0&&Number.isFinite(ae),Ye=xe?Math.round(ae*(1-ge/100)*100)/100:null;return z.jsxs("li",{className:O.variantRow,"data-variant-row":k.id,children:[z.jsxs("div",{className:O.variantLeft,children:[z.jsx("div",{className:O.variantThumb,"aria-hidden":"true",children:(Pt=k.image)!=null&&Pt.url?z.jsx("img",{className:O.variantThumbImg,src:k.image.url,alt:k.image.altText??re,loading:"lazy"}):z.jsx("div",{className:O.variantThumbFallback,children:((Kt=(Tt=(st=k.product)==null?void 0:st.title)==null?void 0:Tt.slice(0,1))==null?void 0:Kt.toUpperCase())??"•"})}),z.jsxs("div",{className:O.variantInfo,children:[z.jsx("div",{className:O.variantName,children:V}),le?z.jsx("div",{className:O.variantMeta,children:le}):null,z.jsxs("div",{className:O.variantPriceRow,children:[xe?z.jsx("span",{className:O.variantCompareAt,children:We(Number.isFinite(ae)?ae.toFixed(2):k.price)}):null,z.jsx("span",{className:O.variantPrice,children:We(Ye!=null?Ye.toFixed(2):Number.isFinite(ae)?ae.toFixed(2):k.price)})]})]})]}),N<=0?z.jsx("button",{type:"button",onClick:()=>te(k.id,1),disabled:y||Dt,className:O.addToBundleButton,"aria-label":`Add ${re} to bundle`,children:"Add"}):z.jsxs("div",{className:O.qtyControls,children:[z.jsx("button",{type:"button",onClick:()=>te(k.id,N-1),disabled:y||N<=0,className:O.qtyButton,"aria-label":`Decrease ${re}`,children:"−"}),z.jsx("span",{className:O.qtyValue,"aria-label":`Quantity ${N}`,children:N}),z.jsx("button",{type:"button",onClick:()=>te(k.id,N+1),disabled:y||Dt,className:O.qtyButton,"aria-label":`Increase ${re}`,children:"+"})]})]},k.id)})})})]}),z.jsxs("footer",{className:O.footer,ref:Pe,children:[z.jsx("div",{className:O.boxSummaryWindow,ref:rr,children:z.jsx("div",{className:O.boxSummaryRow,"aria-label":"Bundle box summary",children:Array.from({length:ml}).map((k,N)=>{var Pt,st,Tt,Kt;const V=tn[N],le=Bo.get(N),re=!!V,ge=!!le,ae=ge&&!re,xe=le?`${le.discountPercent}% off`:null,Ye=re?V.displayName:`Slot ${N+1}`;return z.jsxs("div",{"data-box-slot":N,className:O.boxSlot,children:[z.jsx("div",{className:[O.boxItem,re?O.boxItemFilled:O.boxItemPlaceholder,ge?O.boxItemThreshold:null,re?O.boxItemClickable:null].filter(Boolean).join(" "),role:re?"button":void 0,tabIndex:re?0:void 0,onClick:re?()=>nn(V.id):void 0,onKeyDown:re?Un=>{(Un.key==="Enter"||Un.key===" ")&&(Un.preventDefault(),nn(V.id))}:void 0,"aria-label":ae&&xe?`${Ye}. Unlocks ${xe}.`:Ye,title:ae&&xe?`${Ye} • Unlocks ${xe}`:Ye,children:re?(Pt=V.image)!=null&&Pt.url?z.jsx("img",{className:O.boxItemImage,src:V.image.url,alt:V.image.altText??V.displayName,loading:"lazy"}):z.jsx("div",{className:O.boxItemFallback,"aria-hidden":"true",children:((Kt=(Tt=(st=V.product)==null?void 0:st.title)==null?void 0:Tt.slice(0,1))==null?void 0:Kt.toUpperCase())??"•"}):ae&&xe?z.jsx("div",{className:O.boxItemDiscountText,children:xe}):z.jsx("div",{className:O.boxItemPlus,"aria-hidden":"true",children:"+"})}),ge?z.jsx("div",{className:O.boxThresholdLabel,children:le.label}):null]},N)})})}),z.jsx("div",{className:[O.ctaTotalsWrap,G<=0?O.ctaTotalsWrapVisible:null].filter(Boolean).join(" "),"aria-hidden":G>0,children:z.jsxs("div",{className:O.ctaTotals,"aria-label":"Totals",children:[Ht?z.jsxs("span",{className:O.ctaDiscountBadge,children:[Ht,"% Discount"]}):z.jsx("span",{}),z.jsx("span",{children:jt?z.jsxs(z.Fragment,{children:[z.jsx("span",{className:O.ctaTotalsStrike,children:We(qt.toFixed(2))})," ",z.jsx("span",{className:O.ctaTotalsPrice,children:We(hl.toFixed(2))})]}):z.jsx("span",{className:O.ctaTotalsPrice,children:We(qt.toFixed(2))})})]})}),(()=>{const k=(S==null?void 0:S.ctaButtonMode)||"add_to_cart";return k==="add_to_cart_checkout"?G>0?z.jsx("button",{type:"button",onClick:se,disabled:!we,className:O.cta,children:y?"Adding…":`Add ${G} more product${G===1?"":"s"}`}):z.jsxs("div",{className:`${O.ctaButtonGroup} ${er?O.ctaButtonGroupAnimating:""}`,children:[z.jsx("button",{type:"button",onClick:se,disabled:!we,className:`${O.ctaDualLeft} ${er?O.ctaDualLeftAnimating:""}`,children:z.jsx("span",{children:y?"Adding…":"Add to Basket"})}),z.jsx("button",{type:"button",onClick:ne,disabled:!we,className:`${O.ctaDualRight} ${er?O.ctaDualRightAnimating:""}`,children:z.jsx("span",{children:y?"Processing…":"Checkout"})})]}):k==="checkout"?z.jsx("button",{type:"button",onClick:ne,disabled:!we,className:O.cta,children:y?"Processing…":G>0?`Add ${G} more product${G===1?"":"s"}`:"Checkout"}):z.jsx("button",{type:"button",onClick:se,disabled:!we,className:O.cta,children:y?"Adding…":G>0?`Add ${G} more product${G===1?"":"s"}`:"Add to Basket"})})(),z.jsxs("div",{className:O.poweredBy,children:["powered by ",z.jsx("a",{href:"https://apps.shopify.com/best-bundles",target:"_blank",rel:"noopener noreferrer",children:" BestBundles"})]})]})]})]}):null}function Lo(d){if(d!=null&&d.length)return d.reduce((s,u)=>(u!=null&&u.key&&(s[u.key]=u.value??""),s),{})}function Lu(d){const s=/\/(\d+)$/.exec(d);return s?s[1]:d}function Zc(){var d;return((d=window==null?void 0:window.routes)==null?void 0:d.cart_url)||"/cart"}async function Jc(){try{const d=Zc(),s=encodeURIComponent("cart-drawer,cart-icon-bubble,cart-live-region-text"),u=await fetch(`${d}?sections=${s}`,{method:"GET"});if(!u.ok)return;const w=await u.json().catch(()=>null);if(!w)return;const y=["cart-drawer","cart-icon-bubble","cart-live-region-text"];for(const S of y){const D=w[S];if(!D)continue;const X=new DOMParser().parseFromString(D,"text/html"),ce=X.getElementById(S)||X.querySelector(S),te=document.getElementById(S)||document.querySelector(S);te&&ce&&te.replaceWith(ce)}const h=document.querySelector("cart-drawer");if(h&&typeof h.open=="function"){h.open();return}document.body.classList.add("overflow-hidden");const P=document.querySelector("cart-drawer")||document.querySelector("cart-notification");P&&(P.classList.contains("is-empty")&&P.classList.remove("is-empty"),P.classList.add("active"))}catch{}}async function pl(d,s){const u=await fetch(d,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(s)});if(!u.ok){const w=await u.text().catch(()=>"");throw new Error(w||`Cart request failed: ${u.status}`)}return u.json().catch(()=>null)}function bc(){return{async linesAdd(d){const s=d.map(u=>({id:Lu(u.merchandiseId),quantity:u.quantity,properties:Lo(u.attributes)}));await pl("/cart/add.js",{items:s})},async linesAddForCheckout(d){const s=d.map(u=>({id:Lu(u.merchandiseId),quantity:u.quantity,properties:Lo(u.attributes)}));await pl("/cart/add.js",{items:s})},async linesUpdate(d){for(const s of d)await pl("/cart/change.js",{id:s.id,quantity:s.quantity,properties:Lo(s.attributes)})},async linesRemove(d){for(const s of d)await pl("/cart/change.js",{id:s,quantity:0})},openCartUI(){window.setTimeout(()=>{Jc()},0)},navigateToCheckout(){window.location.href="/checkout"}}}let St=null,bt=null,mn=null;function ef(d){const s=zc(),u=Io();return R.useEffect(()=>{d.onControls(s)},[s,d.onControls]),R.useEffect(()=>{d.onBundleBuilder(u)},[u,d.onBundleBuilder]),null}function tf(d){return typeof d=="string"?document.getElementById(d):d}function Fn(d){if(bt){d(bt);return}window.setTimeout(()=>{bt&&d(bt)},0)}function Bu(d){const s=tf(d.container);if(!s)throw new Error("BestBundlesUI.mount: container not found");St==null||St.unmount(),St=Pc.createRoot(s);const u=d.cartAdapter??bc(),w=d.configEndpoint?({apiBaseUrl:y,shop:h,signal:P})=>{const S=new URL(d.configEndpoint,y);return S.searchParams.set("shop",h),fetch(S,{method:"GET",signal:P,headers:{"Content-Type":"application/json"}}).then(D=>D.json()).catch(()=>({ok:!1,error:"Invalid response."}))}:void 0;return St.render(z.jsxs(Mc,{apiBaseUrl:d.apiBaseUrl,shop:d.shop,configHandle:d.configHandle,cartAdapter:u,configFetcher:w,analyticsEndpoint:d.analyticsEndpoint,children:[z.jsx(ef,{onControls:y=>bt=y,onBundleBuilder:y=>mn=y}),z.jsx(Xc,{})]})),d.openOnMount&&Fn(y=>y.open()),{open:()=>Fn(y=>y.open()),close:()=>Fn(y=>y.close()),toggle:()=>Fn(y=>y.toggle()),unmount:()=>{St==null||St.unmount(),St=null,bt=null}}}function Du(){Fn(d=>d.open())}function ju(){Fn(d=>d.close())}function Fu(){Fn(d=>d.toggle())}function Au(){St==null||St.unmount(),St=null,bt=null,mn=null}function Uu(d){if(!d)return;function s(){if(mn&&typeof mn.setQuantity=="function"){const u=mn.selections[d]??0;mn.setQuantity(d,u+1),bt&&bt.open()}}mn?s():window.setTimeout(()=>{mn&&s()},0)}return typeof window<"u"&&(window.BestBundlesUI={mount:Bu,open:Du,close:ju,toggle:Fu,unmount:Au,addVariant:Uu}),pn.addVariant=Uu,pn.close=ju,pn.mount=Bu,pn.open=Du,pn.toggle=Fu,pn.unmount=Au,Object.defineProperty(pn,Symbol.toStringTag,{value:"Module"}),pn})({});
|
|
66
66
|
//# sourceMappingURL=bundle-ui.iife.js.map
|