{
  "version": 3,
  "sources": ["/cdn/shop/t/21/assets/ashmi-game-popup.js?x=10749"],
  "sourcesContent": ["/* Ashmi game popup: Memory Match and Baby Word Scramble, split 50/50. See snippets/ashmi-game-popup.liquid */\n(function () {\n  var CFG = window.AshmiGamePopup;\n  if (!CFG) return;\n\n  var KEY = { variant: 'agp_variant', dismissed: 'agp_dismissed_at', subscribed: 'agp_subscribed', session: 'agp_shown', teaser: 'agp_teaser_hidden_at' };\n  var params = new URLSearchParams(location.search);\n  var store = {\n    get: function (k) { try { return localStorage.getItem(k); } catch (e) { return null; } },\n    set: function (k, v) { try { localStorage.setItem(k, v); } catch (e) {} },\n    del: function (k) { try { localStorage.removeItem(k); } catch (e) {} },\n    sget: function (k) { try { return sessionStorage.getItem(k); } catch (e) { return null; } },\n    sset: function (k, v) { try { sessionStorage.setItem(k, v); } catch (e) {} }\n  };\n\n  if (params.get('ashmi_game_reset') === '1') {\n    [KEY.variant, KEY.dismissed, KEY.subscribed, KEY.teaser].forEach(store.del);\n    try { sessionStorage.removeItem(KEY.session); } catch (e) {}\n  }\n  var forced = params.get('ashmi_game');\n  if (forced !== 'match' && forced !== 'scramble') forced = null;\n\n  var variant = forced || store.get(KEY.variant);\n  if (variant !== 'match' && variant !== 'scramble') {\n    variant = Math.random() < 0.5 ? 'match' : 'scramble';\n    store.set(KEY.variant, variant);\n  }\n  if (variant === 'match' && (!CFG.cards || CFG.cards.length < 3)) variant = 'scramble';\n  var GAME = variant === 'match' ? 'Memory Match' : 'Word Scramble';\n\n  var within = function (k) { var t = +store.get(k); return t && Date.now() - t < CFG.dismissDays * 864e5; };\n  if (!forced && store.get(KEY.subscribed)) return;\n  // Auto-open once per session unless closed in the last 14 days. After a close, the teaser tab stays\n  // available (bottom left) until it is hidden itself or they subscribe.\n  var autoOpen = forced || (!within(KEY.dismissed) && !store.sget(KEY.session));\n  var teaserOk = !within(KEY.teaser);\n\n  var root = document.getElementById('agp-root');\n  var box = document.getElementById('agp-box');\n  if (!root || !box) return;\n  var teaser = document.getElementById('agp-teaser');\n  var lastFocus = null;\n  var PRIZE = CFG.prizeEnabled !== false; // false = everyone gets the standard 10% (no winner prize promised)\n  var state = { score: null, bonus: false, shoppingFor: null, started: false };\n\n  // ---------- analytics ----------\n  function track(action, extra) {\n    var data = Object.assign({ game: GAME, variant: variant }, extra || {});\n    try { if (window.gtag) window.gtag('event', 'ashmi_popup_' + action, data); } catch (e) {}\n    try { if (window.Shopify && Shopify.analytics && Shopify.analytics.publish) Shopify.analytics.publish('ashmi_popup_' + action, data); } catch (e) {}\n    try { if (window.dataLayer) window.dataLayer.push(Object.assign({ event: 'ashmi_popup_' + action }, data)); } catch (e) {}\n  }\n\n  // ---------- helpers ----------\n  function el(tag, cls, text) {\n    var e = document.createElement(tag);\n    if (cls) e.className = cls;\n    if (text != null) e.textContent = text;\n    return e;\n  }\n  function html(tag, cls, markup) { var e = el(tag, cls); e.innerHTML = markup; return e; }\n  function button(cls, text, onClick) {\n    var b = el('button', cls, text);\n    b.type = 'button';\n    if (onClick) b.addEventListener('click', onClick);\n    return b;\n  }\n  function head(eyebrow, titleHtml, sub) {\n    var f = document.createDocumentFragment();\n    f.appendChild(el('p', 'agp-eyebrow', eyebrow));\n    var h = html('h2', 'agp-h', titleHtml);\n    h.id = 'agp-title';\n    f.appendChild(h);\n    if (sub) f.appendChild(el('p', 'agp-sub', sub));\n    return f;\n  }\n  function render(nodes, focusSel) {\n    box.innerHTML = '';\n    var x = button('agp-x', '\u00D7', function () { close('x'); });\n    x.setAttribute('aria-label', 'Close');\n    box.appendChild(x);\n    nodes.forEach(function (n) { if (n) box.appendChild(n); });\n    var f = focusSel ? box.querySelector(focusSel) : null;\n    (f || x).focus({ preventScroll: true });\n  }\n  function noThanks() {\n    var w = el('div', 'agp-foot');\n    w.appendChild(button('agp-link', 'No thanks', function () { close('no_thanks'); }));\n    return w;\n  }\n  function bonusNote() {\n    if (!state.bonus) return null;\n    return html('div', 'agp-bonus', '<span aria-hidden=\"true\">\u2713</span><span><b>You won the bigger prize:</b> 20% off a first order of $75 or more.</span>');\n  }\n  function markStarted() {\n    if (state.started) return;\n    state.started = true;\n    track('start');\n  }\n\n  // ---------- open / close ----------\n  function open(source) {\n    lastFocus = document.activeElement;\n    store.sset(KEY.session, '1');\n    hideTeaser(false);\n    document.body.classList.add('agp-on');\n    root.classList.add('is-open');\n    track('view', { source: source || 'auto' });\n    intro();\n  }\n  function close(reason) {\n    root.classList.remove('is-open');\n    document.body.classList.remove('agp-on');\n    box.classList.remove('is-intro');\n    if (reason !== 'done') store.set(KEY.dismissed, String(Date.now()));\n    track('close', { reason: reason, stage: box.getAttribute('data-stage') || '' });\n    if (reason !== 'done') showTeaser('after_close');\n    if (lastFocus && lastFocus.focus) lastFocus.focus({ preventScroll: true });\n  }\n\n  // ---------- intro: the offer first, one action ----------\n  function intro() {\n    box.setAttribute('data-stage', 'intro');\n    box.classList.add('is-intro');\n    var wrap = el('div', 'agp-intro');\n    if (CFG.heroImg) {\n      var hero = el('div', 'agp-hero');\n      var img = el('img');\n      img.src = CFG.heroImg; img.alt = CFG.heroAlt || ''; img.loading = 'eager';\n      hero.appendChild(img);\n      wrap.appendChild(hero);\n    }\n    var pane = el('div', 'agp-pane');\n    pane.appendChild(el('p', 'agp-kicker', GAME === 'Memory Match' ? 'A 30-second game' : 'A three-word game'));\n    pane.appendChild(html('p', 'agp-big', PRIZE ? '<small>up to</small><b>20%</b><i>off</i>' : '<b>10%</b><i>off</i>'));\n    var h = html('h2', 'agp-lede', GAME === 'Memory Match' ? 'Flip the cards. Win it on your first order.' : 'Unscramble three words. Win it on your first order.');\n    h.id = 'agp-title';\n    pane.appendChild(h);\n    pane.appendChild(el('p', 'agp-terms', PRIZE\n      ? (GAME === 'Memory Match'\n        ? 'Everyone who finishes gets 10%. Match all three pairs in 8 flips or fewer and it becomes 20% off a first order of $75+.'\n        : 'Everyone who finishes gets 10%. Solve all three words on the first try and it becomes 20% off a first order of $75+.')\n      : 'Finish the game and the code is yours.'));\n    var play = el('button', 'agp-play');\n    play.type = 'button';\n    play.innerHTML = 'Play now <span aria-hidden=\"true\">&rarr;</span>';\n    play.addEventListener('click', function () {\n      track('intro_play');\n      box.classList.remove('is-intro');\n      if (variant === 'match') startMatch(); else startScramble();\n    });\n    pane.appendChild(play);\n    pane.appendChild(el('p', 'agp-proof', 'As Sold at Nordstrom \u00B7 Black-owned, women-founded'));\n    pane.appendChild(noThanks());\n    wrap.appendChild(pane);\n    render([wrap], '.agp-play');\n  }\n\n  // ---------- teaser tab ----------\n  function showTeaser(when) {\n    if (!teaser || !teaserOk || store.get(KEY.subscribed) || root.classList.contains('is-open')) return;\n    teaser.classList.add('is-on');\n    track('teaser_view', { when: when || 'after_close' });\n  }\n  function hideTeaser(remember) {\n    if (!teaser) return;\n    teaser.classList.remove('is-on');\n    if (remember) { store.set(KEY.teaser, String(Date.now())); teaserOk = false; }\n  }\n  if (teaser) {\n    var tOpen = document.getElementById('agp-teaser-open');\n    var tX = document.getElementById('agp-teaser-x');\n    if (tOpen) tOpen.addEventListener('click', function () { track('teaser_open'); open('teaser'); });\n    if (tX) tX.addEventListener('click', function () { track('teaser_hide'); hideTeaser(true); });\n    if (!PRIZE && tOpen) tOpen.innerHTML = 'Play for <b>10% off</b>';\n  }\n  document.addEventListener('keydown', function (e) {\n    if (!root.classList.contains('is-open')) return;\n    if (e.key === 'Escape') { close('escape'); return; }\n    if (e.key === 'Tab') {\n      var f = box.querySelectorAll('button:not([disabled]), input, a[href]');\n      if (!f.length) return;\n      var first = f[0], last = f[f.length - 1];\n      if (e.shiftKey && document.activeElement === first) { e.preventDefault(); last.focus(); }\n      else if (!e.shiftKey && document.activeElement === last) { e.preventDefault(); first.focus(); }\n    }\n  });\n\n  // ---------- Memory Match ----------\n  function startMatch() {\n    box.setAttribute('data-stage', 'game');\n    var deck = CFG.cards.slice(0, 3);\n    deck = deck.concat(deck);\n    for (var i = deck.length - 1; i > 0; i--) { var j = Math.floor(Math.random() * (i + 1)); var t = deck[i]; deck[i] = deck[j]; deck[j] = t; }\n    var flips = 0, matched = 0, openCards = [], lock = false;\n    var status = html('div', 'agp-status', '<span>Flips <b data-f>0</b></span><span>Pairs <b data-m>0</b> of 3</span>');\n    var board = el('div', 'agp-board is-idle');\n    deck.forEach(function (item, idx) {\n      var c = el('button', 'agp-card');\n      c.type = 'button';\n      c.setAttribute('aria-label', 'Card ' + (idx + 1) + ', face down');\n      c.innerHTML = '<span class=\"agp-in\"><span class=\"agp-face\"><span>A&amp;Co.</span></span><span class=\"agp-back\"><img alt=\"\" loading=\"eager\" src=\"' + item.img + '\"></span></span>';\n      c.addEventListener('click', function () {\n        if (lock || c.classList.contains('is-up') || c.classList.contains('is-done')) return;\n        markStarted();\n        board.classList.remove('is-idle');\n        c.classList.add('is-up');\n        c.setAttribute('aria-label', item.name);\n        openCards.push({ c: c, k: item.key });\n        flips++;\n        status.querySelector('[data-f]').textContent = flips;\n        if (openCards.length < 2) return;\n        lock = true;\n        var a = openCards[0], b = openCards[1], hit = a.k === b.k;\n        setTimeout(function () {\n          if (hit) {\n            a.c.classList.add('is-done'); b.c.classList.add('is-done');\n            matched++;\n            status.querySelector('[data-m]').textContent = matched;\n            if (matched === 3) {\n              state.score = flips;\n              state.bonus = PRIZE && flips <= 8;\n              track('complete', { score: flips, bonus: state.bonus });\n              setTimeout(askWho, 650);\n            }\n          } else {\n            [a, b].forEach(function (o) { o.c.classList.remove('is-up'); o.c.setAttribute('aria-label', 'Card, face down'); });\n          }\n          openCards = [];\n          lock = false;\n        }, hit ? 250 : 800);\n      });\n      board.appendChild(c);\n    });\n    render([\n      head('Memory Match', 'Find the three pairs.', PRIZE ? 'Eight flips or fewer wins 20% off.' : null),\n      status, el('p', 'agp-tapnote', 'Tap a card to flip it'), board, noThanks()\n    ]);\n  }\n\n  // ---------- Word Scramble ----------\n  var WORDS = [\n    { w: 'ROMPER', clue: 'One piece, snaps at the bottom.' },\n    { w: 'SWEATER', clue: 'Knit, for cooler mornings.' },\n    { w: 'OVERALLS', clue: 'Straps and buttons, made for crawling.' }\n  ].map(function (x, i) { var p = (CFG.words || [])[i] || {}; x.img = p.img; x.name = p.name; return x; });\n  function shuffleWord(word) {\n    var a = word.split(''), out, tries = 0;\n    do {\n      out = a.slice();\n      for (var i = out.length - 1; i > 0; i--) { var j = Math.floor(Math.random() * (i + 1)); var t = out[i]; out[i] = out[j]; out[j] = t; }\n      tries++;\n    } while (out.join('') === word && tries < 20);\n    return out;\n  }\n  function startScramble() {\n    box.setAttribute('data-stage', 'game');\n    var n = 0, skipped = 0, mistakes = 0;\n    function play() {\n      var item = WORDS[n], letters = shuffleWord(item.w), filled = [];\n      var dots = el('div', 'agp-dots');\n      WORDS.forEach(function (_, i) { var d = el('i', i <= n ? 'is-on' : ''); dots.appendChild(d); });\n      dots.setAttribute('aria-label', 'Word ' + (n + 1) + ' of ' + WORDS.length);\n      var hint = el('div', 'agp-hint');\n      if (item.img) { var im = el('img'); im.src = item.img; im.alt = ''; hint.appendChild(im); }\n      var hp = el('p', null, item.clue);\n      var reveal = el('b');\n      hp.appendChild(reveal);\n      hint.appendChild(hp);\n      var slots = el('div', 'agp-slots');\n      var tiles = el('div', 'agp-tiles');\n      var slotEls = item.w.split('').map(function (_, i) {\n        var s = button('agp-slot', '', function () { if (i < filled.length) { filled = filled.slice(0, i); draw(); } });\n        s.setAttribute('aria-label', 'Letter ' + (i + 1));\n        slots.appendChild(s);\n        return s;\n      });\n      var tileEls = letters.map(function (L, i) {\n        var t = button('agp-tile', L, function () {\n          markStarted();\n          if (filled.length >= item.w.length || filled.indexOf(i) !== -1) return;\n          filled.push(i);\n          draw();\n          if (filled.length === item.w.length) check();\n        });\n        t.style.animationDelay = (i * 55) + 'ms';\n        t.setAttribute('aria-label', 'Letter ' + L);\n        tiles.appendChild(t);\n        return t;\n      });\n      function draw() {\n        slotEls.forEach(function (s, i) { s.textContent = filled[i] != null ? letters[filled[i]] : ''; s.className = 'agp-slot'; });\n        tileEls.forEach(function (t, i) { t.disabled = filled.indexOf(i) !== -1; });\n      }\n      function reshuffle() {\n        var order = shuffleWord(item.w);\n        letters = order;\n        filled = [];\n        tileEls.forEach(function (t, i) {\n          t.classList.remove('is-spin'); void t.offsetWidth; t.classList.add('is-spin');\n          setTimeout(function () { t.textContent = letters[i]; t.setAttribute('aria-label', 'Letter ' + letters[i]); }, 250);\n        });\n        draw();\n      }\n      function check() {\n        var guess = filled.map(function (f) { return letters[f]; }).join('');\n        if (guess === item.w) {\n          slotEls.forEach(function (s) { s.classList.add('is-ok'); });\n          hint.classList.add('is-solved');\n          if (item.name) reveal.textContent = item.name;\n          setTimeout(next, 1100);\n        } else {\n          mistakes++;\n          slotEls.forEach(function (s) { s.classList.add('is-bad'); });\n          setTimeout(function () { filled = []; draw(); }, 650);\n        }\n      }\n      function next() {\n        n++;\n        if (n < WORDS.length) { play(); return; }\n        state.score = WORDS.length - skipped;\n        state.bonus = PRIZE && skipped === 0 && mistakes === 0;\n        track('complete', { score: state.score, bonus: state.bonus, mistakes: mistakes, skipped: skipped });\n        askWho();\n      }\n      var tools = el('div', 'agp-tools');\n      tools.appendChild(button('agp-link', 'Shuffle', function () { markStarted(); reshuffle(); }));\n      tools.appendChild(button('agp-link', 'Skip this word', function () { markStarted(); skipped++; next(); }));\n      var header = n === 0\n        ? head('Word 1 of ' + WORDS.length, 'Tap the letters in order.', 'The photo is your hint.')\n        : head('Word ' + (n + 1) + ' of ' + WORDS.length, n === 1 ? 'Nice. Keep going.' : 'Last one.', null);\n      var nodes = [header, dots, hint, slots, tiles, tools];\n      if (n === 0) nodes.push(noThanks());\n      render(nodes, n === 0 ? null : '.agp-tile');\n      draw();\n    }\n    play();\n  }\n\n  // ---------- after the game ----------\n  function askWho() {\n    box.setAttribute('data-stage', 'who');\n    var opts = el('div', 'agp-opts');\n    [['Shopping for my baby', 'self'], ['Finding a gift', 'gift']].forEach(function (o) {\n      opts.appendChild(button('agp-opt', o[0], function () { state.shoppingFor = o[1]; track('answer', { shopping_for: o[1] }); askEmail(); }));\n    });\n    render([\n      state.bonus\n        ? head('You won', '<em>20% off</em> is yours.', 'Good on a first order of $75 or more. Last thing before we send it: who are you shopping for?')\n        : head('You did it', 'Your <em>10% off</em> is unlocked.', 'Last thing before we send it: who are you shopping for?'),\n      opts\n    ], '.agp-opt');\n  }\n\n  function askEmail() {\n    box.setAttribute('data-stage', 'email');\n    var form = el('form');\n    form.noValidate = true;\n    var label = el('label', null, 'Email');\n    label.setAttribute('for', 'agp-email');\n    label.style.cssText = 'position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)';\n    var input = el('input', 'agp-input');\n    input.type = 'email';\n    input.id = 'agp-email';\n    input.autocomplete = 'email';\n    input.placeholder = 'Your email';\n    var err = el('p', 'agp-err');\n    err.setAttribute('role', 'alert');\n    var cta = el('button', 'agp-cta', state.bonus ? 'Claim my 20% off' : 'Claim my 10% off');\n    cta.type = 'submit';\n    form.appendChild(label); form.appendChild(input); form.appendChild(err); form.appendChild(cta);\n    form.addEventListener('submit', function (e) {\n      e.preventDefault();\n      var email = input.value.trim();\n      if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$/.test(email)) { err.textContent = 'Enter a valid email address.'; input.focus(); return; }\n      err.textContent = '';\n      cta.disabled = true;\n      cta.textContent = 'Sending\u2026';\n      subscribe(email).then(function () {\n        store.set(KEY.subscribed, '1');\n        track('subscribe', { shopping_for: state.shoppingFor, bonus: state.bonus });\n        done();\n      }).catch(function () {\n        cta.disabled = false;\n        cta.textContent = state.bonus ? 'Claim my 20% off' : 'Claim my 10% off';\n        err.textContent = 'That didn\u2019t go through. Please try again.';\n        track('error');\n      });\n    });\n    var legal = html('p', 'agp-legal', 'By signing up you agree to receive marketing emails from Ashmi &amp; Co. Unsubscribe anytime. <a href=\"' + CFG.privacyUrl + '\">Privacy Policy</a>');\n    render([head('Almost yours', 'Where should we send it?', null), bonusNote(), form, legal], '#agp-email');\n  }\n\n  function done() {\n    box.setAttribute('data-stage', 'done');\n    var nodes = [head('You\u2019re in', 'Check your inbox.', state.bonus\n      ? 'Your 20% code is on its way. It works on a first order of $75 or more, for 7 days.'\n      : 'Your 10% code is on its way. It works for 7 days.')];\n    nodes.push(button('agp-cta', state.shoppingFor === 'gift' ? 'Browse the Gift Guide' : 'Keep shopping', function () {\n      close('done');\n      if (state.shoppingFor === 'gift') location.href = CFG.giftUrl;\n    }));\n    render(nodes, '.agp-cta');\n  }\n\n  // ---------- Klaviyo ----------\n  function kl(path, body) {\n    return fetch('https://a.klaviyo.com/client/' + path + '?company_id=' + encodeURIComponent(CFG.companyId), {\n      method: 'POST',\n      headers: { 'Content-Type': 'application/vnd.api+json', 'Accept': 'application/vnd.api+json', revision: '2025-07-15' },\n      body: JSON.stringify(body)\n    }).then(function (r) { if (!r.ok) throw new Error('klaviyo ' + r.status); return r; });\n  }\n  function subscribe(email) {\n    var props = {\n      shopping_for: state.shoppingFor,\n      popup_game: GAME,\n      popup_game_score: state.score,\n      popup_game_bonus: state.bonus,\n      popup_game_signup_at: new Date().toISOString()\n    };\n    // Save the game result first so the Welcome flow's Winner split sees it, then subscribe (which triggers the flow)\n    var sub = kl('profiles/', { data: { type: 'profile', attributes: { email: email, properties: props } } })\n      .catch(function () {})\n      .then(function () {\n        return kl('subscriptions/', {\n          data: {\n            type: 'subscription',\n            attributes: {\n              custom_source: 'Ashmi Game Popup - ' + GAME,\n              profile: { data: { type: 'profile', attributes: { email: email, subscriptions: { email: { marketing: { consent: 'SUBSCRIBED' } } } } } }\n            },\n            relationships: { list: { data: { type: 'list', id: CFG.listId } } }\n          }\n        });\n      });\n    try {\n      var q = (window._learnq = window._learnq || []);\n      q.push(['identify', { $email: email }]);\n      q.push(['track', 'Played Popup Game', props]);\n    } catch (e) {}\n    return sub;\n  }\n\n  // Tab first (a visible way in from second 3), full card at CFG.delayMs (15s: rubric \"no popup for 15+ seconds\").\n  if (autoOpen) {\n    if (!forced) setTimeout(function () { showTeaser('before_open'); }, CFG.teaserDelayMs || 3000);\n    setTimeout(function () { if (!root.classList.contains('is-open')) open('auto'); }, forced ? 1000 : CFG.delayMs);\n  } else if (within(KEY.dismissed)) showTeaser('return_visit');\n})();\n"],
  "mappings": "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",
  "names": []
}
