@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 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 we(i, e, t) {
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, _ = 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, _e] = k(
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), _e([]), Q(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), _e(g.eligibleVariants ?? []);
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), _e([]), Q(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
- we(_, t, {
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
- }, [_, t]), ne = le(() => {
170
- if (_)
169
+ }, [w, t]), ne = le(() => {
170
+ if (w)
171
171
  try {
172
172
  const d = ke();
173
- we(_, t, {
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
- }, [_, t]);
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
- we(_, t, {
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
- }, [_, t, ne]), Re = T(() => {
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
- we(_, t, M), xe === 0 && pe >= 1 && we(_, t, {
260
+ _e(w, t, M), xe === 0 && pe >= 1 && _e(w, t, {
261
261
  ...M,
262
262
  mixpanelEvent: "bundle_started"
263
- }), xe < $ && pe >= $ && we(_, t, {
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, _, 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) => {
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
- we(_, t, {
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: _, recycle: A, numberOfPieces: R, debug: C, tweenFunction: te, tweenDuration: U } = this.getOptions();
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: _ } = this, A = Math.min(r - this.lastFrameTime, 50);
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 && (_.fillStyle = "white", _.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);
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(([_, A]) => Qe(_, A)),
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 = "_backdrop_227w4_1", Qt = "_celebrationOverlay_227w4_14", Yt = "_celebrationChip_227w4_23", Ht = "_backdropOpen_227w4_74", Kt = "_backdropClosed_227w4_78", Xt = "_panel_227w4_82", Zt = "_panelOpen_227w4_102", Jt = "_panelClosed_227w4_106", en = "_header_227w4_145", tn = "_headerCenter_227w4_154", nn = "_title_227w4_162", rn = "_searchIconButton_227w4_171", on = "_headerTitleWrap_227w4_193", an = "_headerSearchWrap_227w4_197", sn = "_headerSearchOpen_227w4_209", cn = "_searchBar_227w4_221", ln = "_searchInput_227w4_233", un = "_searchClearButton_227w4_254", dn = "_closeButton_227w4_276", hn = "_body_227w4_309", fn = "_muted_227w4_314", mn = "_error_227w4_319", pn = "_variants_227w4_324", bn = "_variantList_227w4_328", wn = "_variantRow_227w4_336", _n = "_variantLeft_227w4_344", yn = "_addToBundleButton_227w4_351", gn = "_variantThumb_227w4_379", vn = "_variantThumbImg_227w4_389", xn = "_variantThumbFallback_227w4_396", Cn = "_variantInfo_227w4_406", In = "_variantName_227w4_410", Sn = "_variantMeta_227w4_419", Bn = "_variantPriceRow_227w4_427", Tn = "_variantCompareAt_227w4_434", Nn = "_variantPrice_227w4_427", kn = "_qtyControls_227w4_445", On = "_qtyButton_227w4_451", Mn = "_qtyValue_227w4_476", Pn = "_footer_227w4_483", An = "_poweredBy_227w4_490", Rn = "_boxSummaryWindow_227w4_502", Fn = "_boxSummaryRow_227w4_519", Dn = "_boxSlot_227w4_527", En = "_boxItem_227w4_535", Ln = "_boxItemClickable_227w4_547", qn = "_boxThresholdLabel_227w4_556", $n = "_boxItemPlaceholder_227w4_567", Un = "_boxItemFilled_227w4_573", zn = "_boxItemThreshold_227w4_579", Wn = "_boxItemDiscountText_227w4_587", jn = "_boxItemPlus_227w4_595", Vn = "_boxItemImage_227w4_602", Gn = "_boxItemFallback_227w4_609", Qn = "_ctaButtonGroup_227w4_620", Yn = "_ctaButtonGroupAnimating_227w4_627", Hn = "_cta_227w4_620", Kn = "_ctaDualLeft_227w4_655", Xn = "_ctaDualLeftAnimating_227w4_673", Zn = "_ctaDualRight_227w4_686", Jn = "_ctaDualRightAnimating_227w4_702", er = "_ctaTotals_227w4_713", tr = "_ctaDiscountBadge_227w4_721", nr = "_ctaTotalsWrap_227w4_735", rr = "_ctaTotalsWrapVisible_227w4_748", or = "_ctaTotalsStrike_227w4_755", ir = "_ctaTotalsPrice_227w4_762", u = {
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: wn,
900
- variantLeft: _n,
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), _e = 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 = [
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(), w = (v = h == null ? void 0 : h.value) == null ? void 0 : v.trim();
982
- return !(!b || !w || b.toLowerCase() === "title");
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 w = [];
1009
- w.push(b.displayName), (v = b.product) != null && v.title && w.push(b.product.title);
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
- w.push(B.name), w.push(B.value);
1012
- const I = w.join(" ").toLowerCase();
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 w = b ?? 0;
1035
- if (w <= 0) continue;
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 * w);
1037
+ Number.isFinite(v) && (c += v * _);
1038
1038
  }
1039
1039
  return Math.round(c * 100) / 100;
1040
- }, [p, _]), wt = T(() => {
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]), _t = T(() => {
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(), w = h.getBoundingClientRect(), I = 8;
1073
- if (w.top >= b.top + I && w.bottom <= b.bottom - I) return;
1074
- const B = Math.max(0, c.scrollHeight - c.clientHeight), H = w.top - b.top + w.height / 2, ee = c.scrollTop + H - c.clientHeight / 2, oe = Math.min(B, Math.max(0, ee));
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), w = b && h ? b.minBundleSize - 1 : b ? null : C - 1;
1114
- if (w == null || w < 0) return;
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="${w}"]`);
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 = _e.current, h = c == null ? void 0 : c.getBoundingClientRect(), b = (B = ze.current) == null ? void 0 : B.getBoundingClientRect(), w = 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: w - 2,
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: _e, className: u.celebrationChip, children: K }, Z) }) : null,
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 = _[a.id] ?? 0, h = J(a), b = g(a.selectedOptions), w = 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;
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 ?? w,
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 ${w} to bundle`,
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 ${w}`,
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 ${w}`,
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 = _t.get(c), w = !!h, I = !!b, v = I && !w, B = b ? `${b.discountPercent}% off` : null, H = w ? h.displayName : `Slot ${c + 1}`;
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
- w ? u.boxItemFilled : u.boxItemPlaceholder,
1308
+ _ ? u.boxItemFilled : u.boxItemPlaceholder,
1309
1309
  I ? u.boxItemThreshold : null,
1310
- w ? u.boxItemClickable : null
1310
+ _ ? u.boxItemClickable : null
1311
1311
  ].filter(Boolean).join(" "),
1312
- role: w ? "button" : void 0,
1313
- tabIndex: w ? 0 : void 0,
1314
- onClick: w ? () => rt(h.id) : void 0,
1315
- onKeyDown: w ? (We) => {
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: w ? (ee = h.image) != null && ee.url ? /* @__PURE__ */ f(
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(wt.toFixed(2)) })
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 _ = new DOMParser().parseFromString(p, "text/html"), A = _.getElementById(s) || _.querySelector(s), R = document.getElementById(s) || document.querySelector(s);
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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@best-bundles/bundle-ui",
3
- "version": "0.0.26",
3
+ "version": "0.0.27",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "files": [