{"version":3,"file":"shared-lib.DhorSBoA.mjs","names":[],"sources":["https:/framerusercontent.com/modules/rXM7f0zFNGn6QpOm6IZ8/n0BHCQwlVUSlL7myrAfi/siteMetadata.js"],"sourcesContent":["// Generated by Framer (9eb3b99)\nexport default function metadata(params,activeLocale){return{customHTMLBodyEnd:\"<script>\\n  (function (w) {\\n    if (typeof w.Fernand !== \\\"function\\\") {\\n      var f = function () { f.q[arguments[0] == 'set' ? 'unshift' : 'push'](arguments); };\\n      f.q = [];\\n      w.Fernand = f;\\n    }\\n  })(window);\\n\\n  Fernand('init', {\\n    appId: 'ecomfly',\\n    language: 'auto',\\n    defaultTab: 'home',\\n    accentColor: '#DE7B30',\\n    iconColor: '#FFFFFF',\\n    links: [\\n      { icon: 'guides', title: 'Centrum pomocy', url: 'https://help.ecomfly.ai' },\\n      { icon: 'bell', title: 'Najnowsze aktualizacje produktu', url: 'https://help.ecomfly.ai/changelog' }\\n    ]\\n  });\\n</script>\\n<script async=\\\"\\\" src=\\\"https://messenger.getfernand.com/client.js\\\"></script>\\n\\n\\n\\n\\n<!-- Custom Ghost Cursor for Framer -->\\n<style>\\n  html, body { cursor: none; }\\n  .ghost-cursor {\\n    position: fixed;\\n    left: 0; top: 0;\\n    transform: translate(-50%, -50%);\\n    z-index: 99999;\\n    pointer-events: none;\\n    font-size: 24px;\\n    line-height: 1;\\n    will-change: transform;\\n    transition: transform 120ms ease-out;\\n  }\\n  .ghost-cursor .emoji {\\n    display: inline-block;\\n    transform: translateZ(0);\\n  }\\n  /* Interaktywne: lekki „boost” wielkości na hover */\\n  .ghost-cursor.is-hover {\\n    transition: transform 80ms ease-out;\\n    transform: translate(var(--x, -50%), var(--y, -50%)) scale(1.25);\\n  }\\n  /* Preferencje ograniczenia animacji */\\n  @media (prefers-reduced-motion: reduce) {\\n    .ghost-cursor { transition: none; }\\n  }\\n  /* Przy polach tekstowych nie ukrywamy natywnego kursora – override */\\n  input, textarea, select, [contenteditable=\\\"true\\\"] {\\n    cursor: text !important;\\n  }\\n</style>\\n\\n<div id=\\\"ghost-cursor\\\" class=\\\"ghost-cursor\\\" aria-hidden=\\\"true\\\">\\n  <span class=\\\"emoji\\\" role=\\\"img\\\" aria-label=\\\"ghost\\\">👻</span>\\n</div>\\n\\n<script>\\n  (function () {\\n    const cursorEl = document.getElementById('ghost-cursor');\\n    if (!cursorEl) return;\\n\\n    let x = window.innerWidth / 2;\\n    let y = window.innerHeight / 2;\\n    let rafId = null;\\n    let prefersReduced = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\\n\\n    // Gł\\xf3wna aktualizacja pozycji\\n    function setPos(nx, ny) {\\n      x = nx; y = ny;\\n      if (prefersReduced) {\\n        cursorEl.style.transform = `translate(${x}px, ${y}px)`;\\n        return;\\n      }\\n      if (rafId) cancelAnimationFrame(rafId);\\n      rafId = requestAnimationFrame(() => {\\n        cursorEl.style.transform = `translate(${x}px, ${y}px)`;\\n        rafId = null;\\n      });\\n    }\\n\\n    // Ukrywanie ducha nad polami tekstowymi / edytowalnymi\\n    function isTextInput(el) {\\n      if (!el) return false;\\n      const tag = el.tagName?.toLowerCase();\\n      if (tag === 'input') {\\n        const type = (el.getAttribute('type') || '').toLowerCase();\\n        return ['text','email','search','password','tel','url','number','date','datetime-local'].includes(type);\\n      }\\n      if (tag === 'textarea' || tag === 'select') return true;\\n      if (el.isContentEditable) return true;\\n      return false;\\n    }\\n\\n    // Interaktywne elementy (hover efekt)\\n    const interactiveSelectors = [\\n      'a', 'button', '[role=\\\"button\\\"]', '[data-framer-component-type=\\\"Link\\\"]'\\n    ];\\n\\n    function isInteractive(el) {\\n      return !!el?.closest(interactiveSelectors.join(','));\\n    }\\n\\n    // Zdarzenia\\n    window.addEventListener('mousemove', (e) => {\\n      setPos(e.clientX, e.clientY);\\n    });\\n\\n    // Hover: powiększ gdy nad linkiem/przyciskiem\\n    document.addEventListener('mouseover', (e) => {\\n      if (isInteractive(e.target)) {\\n        cursorEl.classList.add('is-hover');\\n      }\\n      // nad polem tekstowym: pokaż natywny kursor i ukryj ducha\\n      if (isTextInput(e.target)) {\\n        cursorEl.style.display = 'none';\\n        document.documentElement.style.cursor = 'text';\\n        document.body.style.cursor = 'text';\\n      }\\n    });\\n\\n    document.addEventListener('mouseout', (e) => {\\n      if (isInteractive(e.target)) {\\n        cursorEl.classList.remove('is-hover');\\n      }\\n      if (isTextInput(e.target)) {\\n        cursorEl.style.display = '';\\n        document.documentElement.style.cursor = 'none';\\n        document.body.style.cursor = 'none';\\n      }\\n    });\\n\\n    // Ukryj ducha, gdy kursor opuszcza okno\\n    document.addEventListener('mouseleave', () => {\\n      cursorEl.style.opacity = '0';\\n    });\\n    document.addEventListener('mouseenter', () => {\\n      cursorEl.style.opacity = '1';\\n    });\\n\\n    // Responsywnie dostosuj po zmianie rozmiaru\\n    window.addEventListener('resize', () => {\\n      // nic krytycznego — pozycja aktualizuje się na next mousemove\\n    });\\n  })();\\n</script>\\n\",customHTMLHeadEnd:\"<script type=\\\"text/javascript\\\">\\n    (function(c,l,a,r,i,t,y){\\n        c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};\\n        t=l.createElement(r);t.async=1;t.src=\\\"https://www.clarity.ms/tag/\\\"+i;\\n        y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);\\n    })(window, document, \\\"clarity\\\", \\\"script\\\", \\\"tm0qixw84k\\\");\\n</script>\\n\\n\\n<!-- Meta Pixel Code -->\\n<script>\\n!function(f,b,e,v,n,t,s)\\n{if(f.fbq)return;n=f.fbq=function(){n.callMethod?\\nn.callMethod.apply(n,arguments):n.queue.push(arguments)};\\nif(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';\\nn.queue=[];t=b.createElement(e);t.async=!0;\\nt.src=v;s=b.getElementsByTagName(e)[0];\\ns.parentNode.insertBefore(t,s)}(window, document,'script',\\n'https://connect.facebook.net/en_US/fbevents.js');\\nfbq('init', '1103725671599166');\\nfbq('track', 'PageView');\\n</script>\\n<noscript></noscript>\",description:\"Nowoczesna platforma e-commerce. Rozpocznij sprzedaż online, tworząc sklep w zaledwie kilka sekund i dołącz do sprzedawc\\xf3w EcomFly.\",favicon:\"https://framerusercontent.com/assets/QwBzJFgegR5LeIc5OR8wgKzT9M.png\",robots:\"max-image-preview:large\",title:\"EcomFly – Sklep online. Zał\\xf3ż i sprzedawaj lekko.\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"2DACA,SAAwB,EAAS,EAAO,EAAa,CAAC,MAAM,CAAC,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA+lJ,kBAAkB;;;;;;;;;;;;;;;;;;;;;;uBAAg4B,YAAY,sIAAyI,QAAQ,sEAAsE,OAAO,0BAA0B,MAAM,oDAAuD"}