bitsnap-react 1.14.1 → 1.15.0

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.
Files changed (83) hide show
  1. package/dist/CartProvider-64QEJ7A7.js +2 -0
  2. package/dist/CartProvider-64QEJ7A7.js.map +1 -0
  3. package/dist/{CartProvider-OSGG573S.mjs → CartProvider-XKK7A3C2.mjs} +2 -2
  4. package/dist/analytics.js +1 -1
  5. package/dist/analytics.js.map +1 -1
  6. package/dist/analytics.mjs +1 -1
  7. package/dist/catalog.js +1 -1
  8. package/dist/catalog.js.map +1 -1
  9. package/dist/catalog.mjs +1 -1
  10. package/dist/{chunk-L7LZG6MR.mjs → chunk-2TLWMYXW.mjs} +2 -2
  11. package/dist/{chunk-5DBLZ3VL.js → chunk-7DG4UPWE.js} +2 -2
  12. package/dist/chunk-7DG4UPWE.js.map +1 -0
  13. package/dist/{chunk-ONTCJSSD.mjs → chunk-7TLJKYZD.mjs} +2 -2
  14. package/dist/{chunk-7WJSK6SJ.mjs → chunk-AZQOW73L.mjs} +2 -2
  15. package/dist/{chunk-EJRI366W.js → chunk-DY2S42Q6.js} +2 -2
  16. package/dist/chunk-DY2S42Q6.js.map +1 -0
  17. package/dist/{chunk-QQDZIVWY.js → chunk-FGB5FJCI.js} +2 -2
  18. package/dist/chunk-FGB5FJCI.js.map +1 -0
  19. package/dist/{chunk-4MU2YAQT.js → chunk-GLAJPUMA.js} +2 -2
  20. package/dist/chunk-GLAJPUMA.js.map +1 -0
  21. package/dist/{chunk-GTOZ5BZX.js → chunk-H4WAQQVO.js} +2 -2
  22. package/dist/chunk-H4WAQQVO.js.map +1 -0
  23. package/dist/chunk-JSDGZ4NY.js.map +1 -1
  24. package/dist/chunk-KOYBZORL.js.map +1 -1
  25. package/dist/{chunk-PVJ2I46C.js → chunk-MG6VV5J2.js} +2 -2
  26. package/dist/chunk-MG6VV5J2.js.map +1 -0
  27. package/dist/{chunk-JZBU5SZJ.mjs → chunk-PEVB3VL4.mjs} +2 -2
  28. package/dist/{chunk-JZBU5SZJ.mjs.map → chunk-PEVB3VL4.mjs.map} +1 -1
  29. package/dist/{chunk-4TZAGNEU.mjs → chunk-Q3DSK66F.mjs} +2 -2
  30. package/dist/{chunk-FIWADPQX.mjs → chunk-RWEP6IUC.mjs} +2 -2
  31. package/dist/{chunk-TBYY3RL2.mjs → chunk-S4Z4O46O.mjs} +2 -2
  32. package/dist/{chunk-2OOQPXCQ.js → chunk-VY6CZVVA.js} +3 -3
  33. package/dist/chunk-VY6CZVVA.js.map +1 -0
  34. package/dist/chunk-W3RGQYPD.js.map +1 -1
  35. package/dist/{chunk-KKOIDDOW.js → chunk-XZYCQ655.js} +2 -2
  36. package/dist/chunk-XZYCQ655.js.map +1 -0
  37. package/dist/{chunk-WJGC6EHC.mjs → chunk-ZIWQ57GY.mjs} +2 -2
  38. package/dist/consent.js +14 -7
  39. package/dist/consent.js.map +1 -1
  40. package/dist/consent.mjs +14 -7
  41. package/dist/consent.mjs.map +1 -1
  42. package/dist/course.js +1 -1
  43. package/dist/course.js.map +1 -1
  44. package/dist/course.mjs +1 -1
  45. package/dist/embed/analytics.js +1 -1
  46. package/dist/embed/consent.js +14 -7
  47. package/dist/errors.js.map +1 -1
  48. package/dist/index.css +1 -1
  49. package/dist/index.css.map +1 -1
  50. package/dist/index.js +1 -1
  51. package/dist/index.js.map +1 -1
  52. package/dist/index.mjs +1 -1
  53. package/dist/internal.js.map +1 -1
  54. package/dist/methods-NUMVR53L.js +2 -0
  55. package/dist/methods-NUMVR53L.js.map +1 -0
  56. package/dist/methods-YKZZ6OVT.mjs +2 -0
  57. package/dist/models.js.map +1 -1
  58. package/dist/returns.js +1 -1
  59. package/dist/returns.js.map +1 -1
  60. package/dist/returns.mjs +1 -1
  61. package/package.json +15 -15
  62. package/dist/CartProvider-2RNAKU3U.js +0 -2
  63. package/dist/CartProvider-2RNAKU3U.js.map +0 -1
  64. package/dist/chunk-2OOQPXCQ.js.map +0 -1
  65. package/dist/chunk-4MU2YAQT.js.map +0 -1
  66. package/dist/chunk-5DBLZ3VL.js.map +0 -1
  67. package/dist/chunk-EJRI366W.js.map +0 -1
  68. package/dist/chunk-GTOZ5BZX.js.map +0 -1
  69. package/dist/chunk-KKOIDDOW.js.map +0 -1
  70. package/dist/chunk-PVJ2I46C.js.map +0 -1
  71. package/dist/chunk-QQDZIVWY.js.map +0 -1
  72. package/dist/methods-4WVTFI3Q.mjs +0 -2
  73. package/dist/methods-W5JTLIIX.js +0 -2
  74. package/dist/methods-W5JTLIIX.js.map +0 -1
  75. /package/dist/{CartProvider-OSGG573S.mjs.map → CartProvider-XKK7A3C2.mjs.map} +0 -0
  76. /package/dist/{chunk-L7LZG6MR.mjs.map → chunk-2TLWMYXW.mjs.map} +0 -0
  77. /package/dist/{chunk-ONTCJSSD.mjs.map → chunk-7TLJKYZD.mjs.map} +0 -0
  78. /package/dist/{chunk-7WJSK6SJ.mjs.map → chunk-AZQOW73L.mjs.map} +0 -0
  79. /package/dist/{chunk-4TZAGNEU.mjs.map → chunk-Q3DSK66F.mjs.map} +0 -0
  80. /package/dist/{chunk-FIWADPQX.mjs.map → chunk-RWEP6IUC.mjs.map} +0 -0
  81. /package/dist/{chunk-TBYY3RL2.mjs.map → chunk-S4Z4O46O.mjs.map} +0 -0
  82. /package/dist/{chunk-WJGC6EHC.mjs.map → chunk-ZIWQ57GY.mjs.map} +0 -0
  83. /package/dist/{methods-4WVTFI3Q.mjs.map → methods-YKZZ6OVT.mjs.map} +0 -0
package/dist/consent.mjs CHANGED
@@ -1,13 +1,15 @@
1
- import{b as ne,c as oe,j as ie,k as re,l as se,m as ae,n as ce,p as V,q as le}from"./chunk-MDCP5JNP.mjs";import"./chunk-U6FLIRIV.mjs";import{useCallback as N,useRef as Ee,useSyncExternalStore as Fe}from"react";var T=["analytics","marketing","preferences"];var je='script[type="text/plain"][data-bitsnap-consent]:not([data-bitsnap-queued])',Pe="iframe[data-bitsnap-consent][data-src]",de=(e,n)=>T.includes(n??"")&&e[n];function Oe(e){return new Promise(n=>{e.addEventListener("load",()=>n(),{once:!0}),e.addEventListener("error",()=>n(),{once:!0})})}function pe(e,n){let t=e.createElement("script");for(let{name:a,value:c}of Array.from(n.attributes))a==="type"||a==="data-bitsnap-queued"||(a==="data-type"?c==="module"&&t.setAttribute("type","module"):a==="data-src"?t.setAttribute("src",c):t.setAttribute(a,c));n.nonce&&(t.nonce=n.nonce);let s=t.hasAttribute("src");s?n.hasAttribute("async")||(t.async=!1):t.text=n.text;let d=s?Oe(t):void 0;return n.parentNode?.replaceChild(t,n),d}function fe(e,n){let t=0;try{let s=null,d=[];e.querySelectorAll(je).forEach(a=>{if(!de(n,a.getAttribute("data-bitsnap-consent")))return;t++;let c=!a.hasAttribute("data-src")&&!a.hasAttribute("src");if(s||c&&d.length>0){a.setAttribute("data-bitsnap-queued",""),s=(s??Promise.all(d).then(()=>{})).then(()=>{try{return pe(e,a)}catch{}}),d=[];return}let m=pe(e,a);m&&d.push(m)}),e.querySelectorAll(Pe).forEach(a=>{if(!de(n,a.getAttribute("data-bitsnap-consent")))return;let c=a.getAttribute("data-src");c&&a.getAttribute("src")!==c&&(a.setAttribute("src",c),a.removeAttribute("data-src"),t++)})}catch{}return t}var ue="https://bitsnap.pl",ge="https://collect.bitsnap.pl";function Q(){return{version:1,theme:"auto",position:"bottom",categories:{analytics:!0,marketing:!0,preferences:!1},services:[],poweredBy:!0}}var _e=["auto","light","dark"],ze=["bottom","bottom-left","bottom-right"],Me=/^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i;function Ue(e){return typeof e=="string"&&Me.test(e.trim())?e.trim():void 0}function Be(e){if(typeof e!="string")return;let n=e.trim();return/^(?:https?:\/\/|\/(?!\/)|#|\?)/i.test(n)?n:void 0}function De(e){if(!Array.isArray(e))return[];let n=[];for(let t of e)t&&typeof t.name=="string"&&T.includes(t.category)&&n.push({name:t.name,category:t.category,cookies:Array.isArray(t.cookies)?t.cookies.filter(s=>typeof s=="string"):void 0});return n}function R(...e){let n=Q();for(let t of e){if(!t||typeof t!="object")continue;typeof t.version=="number"&&t.version>=0&&(n.version=Math.floor(t.version)),_e.includes(t.theme)&&(n.theme=t.theme),ze.includes(t.position)&&(n.position=t.position);let s=Ue(t.accentColor);s&&(n.accentColor=s);let d=Be(t.privacyPolicyUrl);if(d&&(n.privacyPolicyUrl=d),t.categories&&typeof t.categories=="object")for(let a of T)typeof t.categories[a]=="boolean"&&(n.categories[a]=t.categories[a]);t.services!==void 0&&(n.services=De(t.services)),t.texts&&typeof t.texts=="object"&&(n.texts=t.texts)}return n}async function ye(e,n,t=3e3){if(typeof fetch!="function")return null;let s=typeof AbortController=="function"?new AbortController:void 0,d=setTimeout(()=>s?.abort(),t);try{let a=await fetch(`${e.replace(/\/+$/,"")}/api/consent/config?key=${encodeURIComponent(n)}`,{signal:s?.signal,credentials:"omit"});if(!a.ok)return null;let c=await a.json();if(!c||typeof c!="object")return null;let m=c.config&&typeof c.config=="object"?c.config:null,g=c.enabled!==!1;return m||!g?{enabled:g,config:m}:null}catch{return null}finally{clearTimeout(d)}}var He={ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",analytics_storage:"denied",functionality_storage:"denied",personalization_storage:"denied",security_storage:"granted",wait_for_update:500},z=e=>e?"granted":"denied";function ee(e){return{analytics_storage:z(e.analytics),ad_storage:z(e.marketing),ad_user_data:z(e.marketing),ad_personalization:z(e.marketing),functionality_storage:z(e.preferences),personalization_storage:z(e.preferences)}}function Re(e,n){return n==="off"?!1:n==="on"||typeof e.gtag=="function"||Array.isArray(e.dataLayer)}function Ne(e){if(typeof e.gtag=="function")return e.gtag;let n=e.dataLayer=e.dataLayer||[],t=function(){n.push(arguments)};return e.gtag=t,t}function me(e,n){if(!Re(e,n))return null;let t=Ne(e);return{setDefault:()=>t("consent","default",{...He}),update:s=>t("consent","update",ee(s))}}var te={pl:{title:"Szanujemy Twoj\u0105 prywatno\u015B\u0107",description:"U\u017Cywamy plik\xF3w cookie, aby strona dzia\u0142a\u0142a poprawnie. Za Twoj\u0105 zgod\u0105 wykorzystujemy je te\u017C do statystyk, personalizacji i reklam. Mo\u017Cesz zaakceptowa\u0107 wszystkie, odrzuci\u0107 wszystkie albo wybra\u0107, na co si\u0119 zgadzasz.",acceptAll:"Akceptuj wszystkie",rejectAll:"Odrzu\u0107 wszystkie",settings:"Ustawienia",save:"Zapisz wyb\xF3r",close:"Zamknij",necessaryTitle:"Niezb\u0119dne",necessaryDescription:"Potrzebne do dzia\u0142ania strony: koszyk, zapami\u0119tanie Twojego wyboru, bezpiecze\u0144stwo. Nie mo\u017Cna ich wy\u0142\u0105czy\u0107.",analyticsTitle:"Statystyki",analyticsDescription:"Pomagaj\u0105 nam zrozumie\u0107, jak odwiedzaj\u0105cy korzystaj\u0105 ze strony, \u017Ceby\u015Bmy mogli j\u0105 ulepsza\u0107.",marketingTitle:"Marketing",marketingDescription:"Pozwalaj\u0105 mierzy\u0107 skuteczno\u015B\u0107 reklam i pokazywa\u0107 Ci oferty dopasowane do zainteresowa\u0144.",preferencesTitle:"Preferencje",preferencesDescription:"Zapami\u0119tuj\u0105 Twoje ustawienia, na przyk\u0142ad j\u0119zyk czy wygl\u0105d strony.",poweredBy:"Powered by"},en:{title:"We value your privacy",description:"We use cookies to make this site work. With your consent we also use them for statistics, personalization and ads. You can accept all, reject all, or choose what you agree to.",acceptAll:"Accept all",rejectAll:"Reject all",settings:"Settings",save:"Save choices",close:"Close",necessaryTitle:"Necessary",necessaryDescription:"Needed for the site to work: the cart, remembering your choice, security. They cannot be turned off.",analyticsTitle:"Analytics",analyticsDescription:"Help us understand how visitors use the site, so we can improve it.",marketingTitle:"Marketing",marketingDescription:"Measure how well ads work and show you offers that match your interests.",preferencesTitle:"Preferences",preferencesDescription:"Remember your settings, such as language or how the site looks.",poweredBy:"Powered by"}},be={pl:{privacy:"Polityka prywatno\u015Bci",services:"Us\u0142ugi",always:"Zawsze aktywne"},en:{privacy:"Privacy policy",services:"Services",always:"Always on"}};function X(e,n){return e==="pl"||e==="en"?e:/^pl\b/i.test(n??"")?"pl":"en"}function q(e,n){let t={...te[e]},s=n?.[e];if(s)for(let d of Object.keys(t)){let a=s[d];typeof a=="string"&&a.trim()!==""&&(t[d]=a)}return t}function Ie(e){let n=e.replace("#","");n.length===3&&(n=n.replace(/./g,"$&$&"));let t=parseInt(n,16);return[t>>16&255,t>>8&255,t&255]}function he(e){let[n,t,s]=Ie(e).map(d=>{let a=d/255;return a<=.03928?a/12.92:Math.pow((a+.055)/1.055,2.4)});return .2126*n+.7152*t+.0722*s}function Y(e,n){let[t,s]=[he(e),he(n)].sort((d,a)=>a-d);return(t+.05)/(s+.05)}function Ce(e){return Y(e,"#ffffff")>=Y(e,"#111111")?"#ffffff":"#111111"}var Z={light:{bg:"#ffffff",fg:"#14171c",muted:"#495260",border:"#c9ced6",off:"#6b7280",thumb:"#ffffff",accent:"#1d4ed8",onAccent:"#ffffff",link:"#1d4ed8"},dark:{bg:"#171a20",fg:"#f1f3f6",muted:"#b7beca",border:"#3a404b",off:"#8b93a1",thumb:"#171a20",accent:"#8ab4ff",onAccent:"#0b1220",link:"#9dc0ff"}},xe=e=>`--bg:${e.bg};--fg:${e.fg};--muted:${e.muted};--border:${e.border};--off:${e.off};--thumb:${e.thumb};--accent:${e.accent};--on-accent:${e.onAccent};--link:${e.link};--focus:${e.accent}`,ve=`
1
+ import{b as ae,c as ce,j as le,k as de,l as pe,m as fe,n as ue,p as ne,q as ge}from"./chunk-MDCP5JNP.mjs";import"./chunk-U6FLIRIV.mjs";import{useCallback as F,useRef as Pe,useSyncExternalStore as Ze}from"react";var L=["analytics","marketing","preferences"];var _e='script[type="text/plain"][data-bitsnap-consent]:not([data-bitsnap-queued])',ze="iframe[data-bitsnap-consent][data-src]",me=(e,n)=>L.includes(n??"")&&e[n];function He(e){return new Promise(n=>{e.addEventListener("load",()=>n(),{once:!0}),e.addEventListener("error",()=>n(),{once:!0})})}function ye(e,n){let t=e.createElement("script");for(let{name:s,value:c}of Array.from(n.attributes))s==="type"||s==="data-bitsnap-queued"||(s==="data-type"?c==="module"&&t.setAttribute("type","module"):s==="data-src"?t.setAttribute("src",c):t.setAttribute(s,c));n.nonce&&(t.nonce=n.nonce);let r=t.hasAttribute("src");r?n.hasAttribute("async")||(t.async=!1):t.text=n.text;let f=r?He(t):void 0;return n.parentNode?.replaceChild(t,n),f}function be(e,n){let t=0;try{let r=null,f=[];e.querySelectorAll(_e).forEach(s=>{if(!me(n,s.getAttribute("data-bitsnap-consent")))return;t++;let c=!s.hasAttribute("data-src")&&!s.hasAttribute("src");if(r||c&&f.length>0){s.setAttribute("data-bitsnap-queued",""),r=(r??Promise.all(f).then(()=>{})).then(()=>{try{return ye(e,s)}catch{}}),f=[];return}let y=ye(e,s);y&&f.push(y)}),e.querySelectorAll(ze).forEach(s=>{if(!me(n,s.getAttribute("data-bitsnap-consent")))return;let c=s.getAttribute("data-src");c&&s.getAttribute("src")!==c&&(s.setAttribute("src",c),s.removeAttribute("data-src"),t++)})}catch{}return t}var he="https://bitsnap.pl",Ce="https://collect.bitsnap.pl";function oe(){return{version:1,theme:"auto",position:"bottom",categories:{analytics:!0,marketing:!0,preferences:!1},services:[],poweredBy:!0}}var Ue=["auto","light","dark"],Be=["bottom","bottom-left","bottom-right"],De=/^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i;function Re(e){return typeof e=="string"&&De.test(e.trim())?e.trim():void 0}function Ne(e){if(typeof e!="string")return;let n=e.trim();return/^(?:https?:\/\/|\/(?!\/)|#|\?)/i.test(n)?n:void 0}function Ie(e){if(!Array.isArray(e))return[];let n=[];for(let t of e)t&&typeof t.name=="string"&&L.includes(t.category)&&n.push({name:t.name,category:t.category,cookies:Array.isArray(t.cookies)?t.cookies.filter(r=>typeof r=="string"):void 0});return n}function G(...e){let n=oe();for(let t of e){if(!t||typeof t!="object")continue;typeof t.version=="number"&&t.version>=0&&(n.version=Math.floor(t.version)),Ue.includes(t.theme)&&(n.theme=t.theme),Be.includes(t.position)&&(n.position=t.position);let r=Re(t.accentColor);r&&(n.accentColor=r);let f=Ne(t.privacyPolicyUrl);if(f&&(n.privacyPolicyUrl=f),t.categories&&typeof t.categories=="object")for(let s of L)typeof t.categories[s]=="boolean"&&(n.categories[s]=t.categories[s]);t.services!==void 0&&(n.services=Ie(t.services)),t.texts&&typeof t.texts=="object"&&(n.texts=t.texts)}return n}async function xe(e,n,t=3e3){if(typeof fetch!="function")return null;let r=typeof AbortController=="function"?new AbortController:void 0,f=setTimeout(()=>r?.abort(),t);try{let s=await fetch(`${e.replace(/\/+$/,"")}/api/consent/config?key=${encodeURIComponent(n)}`,{signal:r?.signal,credentials:"omit"});if(!s.ok)return null;let c=await s.json();if(!c||typeof c!="object")return null;let y=c.config&&typeof c.config=="object"?c.config:null,m=c.enabled!==!1;return y||!m?{enabled:m,config:y}:null}catch{return null}finally{clearTimeout(f)}}var $e={ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",analytics_storage:"denied",functionality_storage:"denied",personalization_storage:"denied",security_storage:"granted",wait_for_update:500},I=e=>e?"granted":"denied";function ie(e){return{analytics_storage:I(e.analytics),ad_storage:I(e.marketing),ad_user_data:I(e.marketing),ad_personalization:I(e.marketing),functionality_storage:I(e.preferences),personalization_storage:I(e.preferences)}}function Ke(e,n){return n==="off"?!1:n==="on"||typeof e.gtag=="function"||Array.isArray(e.dataLayer)}function We(e){if(typeof e.gtag=="function")return e.gtag;let n=e.dataLayer=e.dataLayer||[],t=function(){n.push(arguments)};return e.gtag=t,t}function ve(e,n){if(!Ke(e,n))return null;let t=We(e);return{setDefault:()=>t("consent","default",{...$e}),update:r=>t("consent","update",ie(r))}}var re={pl:{title:"Szanujemy Twoj\u0105 prywatno\u015B\u0107",description:"U\u017Cywamy plik\xF3w cookie, aby strona dzia\u0142a\u0142a poprawnie. Za Twoj\u0105 zgod\u0105 wykorzystujemy je te\u017C do statystyk, personalizacji i reklam. Mo\u017Cesz zaakceptowa\u0107 wszystkie, odrzuci\u0107 wszystkie albo wybra\u0107, na co si\u0119 zgadzasz.",acceptAll:"Akceptuj wszystkie",rejectAll:"Odrzu\u0107 wszystkie",settings:"Ustawienia",save:"Zapisz wyb\xF3r",close:"Zamknij",necessaryTitle:"Niezb\u0119dne",necessaryDescription:"Potrzebne do dzia\u0142ania strony: koszyk, zapami\u0119tanie Twojego wyboru, bezpiecze\u0144stwo. Nie mo\u017Cna ich wy\u0142\u0105czy\u0107.",analyticsTitle:"Statystyki",analyticsDescription:"Pomagaj\u0105 nam zrozumie\u0107, jak odwiedzaj\u0105cy korzystaj\u0105 ze strony, \u017Ceby\u015Bmy mogli j\u0105 ulepsza\u0107.",marketingTitle:"Marketing",marketingDescription:"Pozwalaj\u0105 mierzy\u0107 skuteczno\u015B\u0107 reklam i pokazywa\u0107 Ci oferty dopasowane do zainteresowa\u0144.",preferencesTitle:"Preferencje",preferencesDescription:"Zapami\u0119tuj\u0105 Twoje ustawienia, na przyk\u0142ad j\u0119zyk czy wygl\u0105d strony.",poweredBy:"Powered by"},en:{title:"We value your privacy",description:"We use cookies to make this site work. With your consent we also use them for statistics, personalization and ads. You can accept all, reject all, or choose what you agree to.",acceptAll:"Accept all",rejectAll:"Reject all",settings:"Settings",save:"Save choices",close:"Close",necessaryTitle:"Necessary",necessaryDescription:"Needed for the site to work: the cart, remembering your choice, security. They cannot be turned off.",analyticsTitle:"Analytics",analyticsDescription:"Help us understand how visitors use the site, so we can improve it.",marketingTitle:"Marketing",marketingDescription:"Measure how well ads work and show you offers that match your interests.",preferencesTitle:"Preferences",preferencesDescription:"Remember your settings, such as language or how the site looks.",poweredBy:"Powered by"}},we={pl:{privacy:"Polityka prywatno\u015Bci",services:"Us\u0142ugi",always:"Zawsze aktywne"},en:{privacy:"Privacy policy",services:"Services",always:"Always on"}};function V(e,n){return e==="pl"||e==="en"?e:/^pl\b/i.test(n??"")?"pl":"en"}function Z(e,n){let t={...re[e]},r=n?.[e];if(r)for(let f of Object.keys(t)){let s=r[f];typeof s=="string"&&s.trim()!==""&&(t[f]=s)}return t}function Ge(e){let n=e.replace("#","");n.length===3&&(n=n.replace(/./g,"$&$&"));let t=parseInt(n,16);return[t>>16&255,t>>8&255,t&255]}function ke(e){let[n,t,r]=Ge(e).map(f=>{let s=f/255;return s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4)});return .2126*n+.7152*t+.0722*r}function J(e,n){let[t,r]=[ke(e),ke(n)].sort((f,s)=>s-f);return(t+.05)/(r+.05)}function Te(e){return J(e,"#ffffff")>=J(e,"#111111")?"#ffffff":"#111111"}var Q={light:{bg:"#ffffff",fg:"#14171c",muted:"#495260",border:"#c9ced6",off:"#6b7280",thumb:"#ffffff",accent:"#1d4ed8",onAccent:"#ffffff",link:"#1d4ed8"},dark:{bg:"#171a20",fg:"#f1f3f6",muted:"#b7beca",border:"#3a404b",off:"#8b93a1",thumb:"#171a20",accent:"#8ab4ff",onAccent:"#0b1220",link:"#9dc0ff"}},Ee=e=>`--bg:${e.bg};--fg:${e.fg};--muted:${e.muted};--border:${e.border};--off:${e.off};--thumb:${e.thumb};--accent:${e.accent};--on-accent:${e.onAccent};--link:${e.link};--focus:${e.accent}`,Ae=`
2
2
  :host{all:initial}
3
3
  *{box-sizing:border-box}
4
4
  [hidden]{display:none!important}
5
- .root{${xe(Z.light)};position:fixed;inset:0;pointer-events:none;z-index:2147483000;font:14px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color:var(--fg);-webkit-text-size-adjust:100%}
6
- .root[data-theme=dark]{${xe(Z.dark)};color-scheme:dark}
5
+ .root{${Ee(Q.light)};position:fixed;inset:0;pointer-events:none;z-index:2147483000;font:14px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color:var(--fg);-webkit-text-size-adjust:100%}
6
+ .root[data-theme=dark]{${Ee(Q.dark)};color-scheme:dark}
7
7
  button,input{font:inherit;color:inherit}
8
8
  .banner,.overlay{pointer-events:auto}
9
9
  @supports (color:color-mix(in srgb,red 50%,blue)){::selection{background:color-mix(in srgb,var(--accent) 24%,transparent)}}
10
- .banner{position:absolute;background:var(--bg);color:var(--fg);max-height:92vh;overflow:auto;outline:none;animation:in .22s ease-out}
10
+ .banner{position:absolute;background:var(--bg);color:var(--fg);max-height:92vh;overflow:auto;outline:none}
11
+ .banner.enter{animation:in .22s ease-out}
12
+ .banner.closing{animation:out .2s ease-in forwards;pointer-events:none}
11
13
  .bottom{left:0;right:0;bottom:0;border-top:1px solid var(--border);box-shadow:0 -8px 28px rgba(15,23,42,.08);padding:20px 24px calc(20px + env(safe-area-inset-bottom,0px))}
12
14
  .root[data-theme=dark] .bottom{box-shadow:0 -8px 28px rgba(0,0,0,.4)}
13
15
  .bottom .inner{display:grid;grid-template-columns:minmax(min(100%,42ch),1fr) auto;grid-template-areas:"text actions" "foot actions";gap:4px 40px;align-items:center;max-width:1120px;margin:0 auto}
@@ -39,8 +41,11 @@ button:focus-visible,a:focus-visible,.dialog:focus-visible{outline:2px solid var
39
41
  .foot a:hover{text-decoration:underline}
40
42
  .foot b{color:var(--fg);font-weight:700;letter-spacing:-.01em}
41
43
  .foot svg{display:block}
42
- .overlay{position:absolute;inset:0;background:rgba(10,12,16,.58);display:flex;align-items:center;justify-content:center;padding:16px;animation:fade .2s ease-out}
43
- .dialog{background:var(--bg);color:var(--fg);width:100%;max-width:560px;max-height:min(92vh,760px);display:flex;flex-direction:column;border-radius:16px;box-shadow:0 16px 48px rgba(0,0,0,.35);outline:none;animation:in .22s ease-out}
44
+ .overlay{position:absolute;inset:0;background:rgba(10,12,16,.58);display:flex;align-items:center;justify-content:center;padding:16px}
45
+ .overlay.enter{animation:fade .2s ease-out}
46
+ .overlay.closing{animation:fadeout .2s ease-in forwards;pointer-events:none}
47
+ .dialog{background:var(--bg);color:var(--fg);width:100%;max-width:560px;max-height:min(92vh,760px);display:flex;flex-direction:column;border-radius:16px;box-shadow:0 16px 48px rgba(0,0,0,.35);outline:none}
48
+ .dialog.enter{animation:in .22s ease-out}
44
49
  .d-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 8px 8px 24px}
45
50
  .d-head .title{margin:0;font-size:18px}
46
51
  .x{width:44px;height:44px;border:0;border-radius:10px;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex:none}
@@ -66,6 +71,8 @@ input:focus-visible+.track{outline:2px solid var(--focus);outline-offset:2px}
66
71
  .d-foot .actions{justify-content:stretch}
67
72
  @keyframes in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
68
73
  @keyframes fade{from{opacity:0}to{opacity:1}}
74
+ @keyframes out{from{opacity:1;transform:none}to{opacity:0;transform:translateY(12px)}}
75
+ @keyframes fadeout{from{opacity:1}to{opacity:0}}
69
76
  @media(max-width:960px){
70
77
  .bottom .inner{grid-template-columns:minmax(0,1fr);grid-template-areas:"text" "actions" "foot";gap:14px}
71
78
  .bottom .actions{justify-content:flex-start}
@@ -86,5 +93,5 @@ input:focus-visible+.track{outline:2px solid var(--focus);outline-offset:2px}
86
93
  .btn,.link-btn{padding:0 12px;min-height:40px}
87
94
  }
88
95
  @media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
89
- `.replace(/\n/g,"");var $e='<svg width="14" height="14" viewBox="0 0 16 16" aria-hidden="true"><rect width="16" height="16" rx="4" fill="currentColor" style="color:var(--fg)"/><circle cx="8" cy="8" r="3" fill="var(--bg)"/></svg>',Ke='<svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path d="M3 3l10 10M13 3L3 13" stroke="currentColor" stroke-width="2" stroke-linecap="round" fill="none"/></svg>',We="button:not([disabled]),input:not([disabled]),a[href]";function we(e){let{doc:n,config:t,texts:s,locale:d}=e,a=be[d],c=null,m=null,g,u,f,h,x,b="none",v=null,k=null,S=new Map;function l(r,o={},...i){let p=n.createElement(r);for(let y of Object.keys(o))y==="class"?p.className=o[y]:p.setAttribute(y,o[y]);for(let y of i)p.append(y);return p}function C(r,o,i){let p=l("button",{type:"button",class:r},o);return p.addEventListener("click",i),p}function M(){let r=l("a",{href:`https://bitsnap.pl/?utm_source=consent_banner&utm_medium=referral&utm_content=${encodeURIComponent(n.location?.hostname??"")}`,target:"_blank",rel:"noopener"});return r.append(s.poweredBy+" "),r.insertAdjacentHTML("beforeend",$e),r.append(l("b",{},"bitsnap")),l("div",{class:"foot"},r)}function w(){let r=l("p",{class:"desc",id:"d"},s.description);return t.privacyPolicyUrl&&r.append(" ",l("a",{href:t.privacyPolicyUrl,target:"_blank",rel:"noopener"},a.privacy)),r}function P(){x=C("link-btn",s.settings,()=>G()),u=l("div",{class:`banner ${t.position==="bottom"?"bottom":`card ${t.position}`}`,role:"region","aria-live":"polite","aria-labelledby":"t","aria-describedby":"d",tabindex:"-1"},l("div",{class:"inner"},l("div",{class:"text"},l("div",{class:"title",id:"t"},s.title),w()),l("div",{class:"actions"},C("btn",s.acceptAll,e.onAcceptAll),C("btn",s.rejectAll,e.onRejectAll),x),M()))}function U(r){let o=t.services.filter(y=>y.category===r),i=l("input",{type:"checkbox",role:"switch","aria-labelledby":`l-${r}`,"aria-describedby":`p-${r}`});r==="necessary"?(i.checked=!0,i.disabled=!0):S.set(r,i);let p=l("div",{class:"cat"},l("div",{class:"row"},l("span",{class:"cat-title",id:`l-${r}`},s[`${r}Title`]),l("span",{style:"display:flex;align-items:center"},...r==="necessary"?[l("span",{class:"always"},a.always)]:[],l("label",{class:"switch"},i,l("span",{class:"track"})))),l("p",{id:`p-${r}`},s[`${r}Description`]));return o.length>0&&p.append(l("p",{class:"svc"},l("b",{},`${a.services}: `),o.map(y=>y.name).join(", "))),p}function I(){let r=l("button",{type:"button",class:"x","aria-label":s.close});r.insertAdjacentHTML("beforeend",Ke),r.addEventListener("click",()=>_());let o=l("div",{class:"d-body"},U("necessary"));for(let i of T)t.categories[i]&&o.append(U(i));h=l("div",{class:"dialog",role:"dialog","aria-modal":"true","aria-labelledby":"st",tabindex:"-1"},l("div",{class:"d-head"},l("div",{class:"title",id:"st"},s.settings),r),o,l("div",{class:"d-foot"},l("div",{class:"actions"},C("btn",s.save,()=>e.onSave($())),C("btn",s.acceptAll,e.onAcceptAll),C("btn",s.rejectAll,e.onRejectAll)),M())),f=l("div",{class:"overlay"},h),f.addEventListener("mousedown",i=>{i.target===f&&_()})}function $(){let r={analytics:!1,marketing:!1,preferences:!1};return S.forEach((o,i)=>r[i]=o.checked),r}function B(){let r=t.theme==="dark"||t.theme==="auto"&&!!k?.matches;g.setAttribute("data-theme",r?"dark":"light"),K(r)}function K(r){let o=t.accentColor;if(o){if(r&&Y(o,Z.dark.bg)<3){for(let i of["--accent","--focus","--on-accent"])g.style.removeProperty(i);return}g.style.setProperty("--accent",o),g.style.setProperty("--focus",o),g.style.setProperty("--on-accent",Ce(o))}}function E(){c||(c=l("div",{id:"bitsnap-consent","data-bitsnap-consent-host":""}),m=c.attachShadow({mode:"open"}),m.append(l("style",{},ve)),g=l("div",{class:"root",lang:d}),P(),I(),u.hidden=!0,f.hidden=!0,g.append(u,f),m.append(g),typeof n.defaultView?.matchMedia=="function"&&(k=n.defaultView.matchMedia("(prefers-color-scheme: dark)"),k.addEventListener?.("change",B)),B(),n.body.append(c))}function W(){return Array.from(h.querySelectorAll(We))}function L(r){if(b!=="settings")return;if(r.key==="Escape"){r.preventDefault(),_();return}if(r.key!=="Tab")return;let o=W();if(o.length===0)return;let i=m?.activeElement,p=o[0],y=o[o.length-1],A=!i||!h.contains(i);r.shiftKey&&(A||i===p||i===h)?(r.preventDefault(),y.focus()):!r.shiftKey&&(A||i===y)&&(r.preventDefault(),p.focus())}function j(r=!1){try{E(),b="banner",n.removeEventListener("keydown",L,!0),f.hidden=!0,u.hidden=!1,r&&u.focus({preventScroll:!0})}catch{}}function G(){try{if(E(),b!=="settings"){let o=n.activeElement;v=o&&o!==c&&o!==n.body?o:null}let r=e.getChoices();S.forEach((o,i)=>o.checked=!!r?.[i]),b="settings",u.hidden=!0,f.hidden=!1,n.addEventListener("keydown",L,!0),h.focus({preventScroll:!0})}catch{}}function _(){b==="settings"&&(n.removeEventListener("keydown",L,!0),f.hidden=!0,e.hasChoice()?(b="none",v?.focus?.({preventScroll:!0})):(b="banner",u.hidden=!1,x.focus({preventScroll:!0})))}function F(){if(!c)return;n.removeEventListener("keydown",L,!0);let r=b==="settings";b="none",u.hidden=!0,f.hidden=!0,r&&v?.focus?.({preventScroll:!0})}function D(){n.removeEventListener("keydown",L,!0),k?.removeEventListener?.("change",B),c?.remove(),c=null,m=null,b="none"}return{showBanner:j,showSettings:G,hide:F,destroy:D}}var O=()=>({analytics:!1,marketing:!1,preferences:!1}),ke=e=>e&&{id:e.id,ts:e.ts,bv:e.bv,c:{...e.c}},Te=new WeakMap;function J(e={}){let n=typeof window<"u"?window:void 0,t=n?.document,s=new Set,d=e.apiHost||ue,a=e.collectHost||ge,c=e.projectKey?oe(e.projectKey):null,m=ie(c??void 0,e.scope),g=!!e.preview,u=R(M()),f=null,h=null,x=null,b=!1,v=!1,k,S=[],l=n&&!g?w(()=>me(n,e.gcm),null):null;w(()=>l?.setDefault(),void 0);let C=t&&!g?se(t,m):null;function M(o){let i={...e.config};return e.theme&&(i.theme=e.theme),e.position&&(i.position=e.position),e.privacyPolicyUrl&&(i.privacyPolicyUrl=e.privacyPolicyUrl),{...o,...i}}function w(o,i){try{return o()}catch{return i}}function P(o){let i=O();for(let p of T)i[p]=!!o?.[p]&&u.categories[p];return i}function U(o){s.forEach(i=>w(()=>i({...o,c:{...o.c}}),void 0)),w(()=>{n?.dispatchEvent(new n.CustomEvent("bitsnap:consent",{detail:{...o,c:{...o.c}}}))},void 0)}function I(o){g||!c||typeof fetch!="function"||w(()=>{fetch(`${a.replace(/\/+$/,"")}/consent`,{method:"POST",keepalive:!0,credentials:"omit",body:JSON.stringify({k:c,host:n?.location?.hostname??"",...o})}).catch(()=>{})},void 0)}function $(o,i){I({consent_id:i.id,action:o,c:i.c,bv:i.bv,ts:i.ts})}function B(){if(!n||!c)return;let o=Te.get(n)??new Set;o.has(c)||(Te.set(n,o.add(c)),I({action:ne,bv:u.version,ts:Math.floor(Date.now()/1e3)}))}function K(o){return T.filter(i=>o[i]&&u.categories[i])}function E(o,i){if(!t||v)return;if(g){x?.hide();return}let p=f??h,y=p?K(p.c).filter(Le=>!o[Le]):[],A=y.length>0?"withdraw":i,H={id:p?.id??re(),ts:Math.floor(Date.now()/1e3),bv:u.version,c:o};ae(t,m,H),f=H,h=null,W(H.c),y.length>0&&V(t,u.services,y),x?.hide(),U({...H,action:A}),$(A,H),y.length>0&&e.reloadOnWithdraw&&L()}function W(o){w(()=>l?.update(o),void 0),t&&fe(t,o)}function L(){setTimeout(()=>w(()=>n?.location.reload(),void 0),50)}function j(){if(!t||!b||v)return null;if(!x){let o=X(e.locale,n?.navigator?.language);x=we({doc:t,config:u,locale:o,texts:G(q(o,u.texts)),getChoices:()=>f?.c??null,hasChoice:()=>f!==null,onAcceptAll:()=>E(P({analytics:!0,marketing:!0,preferences:!0}),"accept_all"),onRejectAll:()=>E(O(),"reject_all"),onSave:i=>E(P(i),"custom")})}return x}function G(o){let i=e.title?.trim(),p=e.description?.trim();return{...o,...i&&{title:i},...p&&{description:p}}}function _(o){o.target?.closest?.("[data-bitsnap-consent-open]")&&(o.preventDefault(),r.open())}let F=(async()=>{if(!t||!n)return null;let o=c&&!g?await ye(d,c):null;if(v)return null;let i=o?.config?void 0:e.categories;if(u=R(o?.config,i?{categories:{...O(),...i}}:void 0,M()),t.readyState==="loading"&&await new Promise(A=>t.addEventListener("DOMContentLoaded",()=>A(),{once:!0})),v)return null;b=!0,t.addEventListener("click",_),k=()=>t.removeEventListener("click",_);let p=!c||o?.config!=null,y=o?.enabled===!1;return g?j()?.showBanner():C&&(y||!p||C.bv===u.version)?(f=C,W(P(f.c))):(C&&(h=C),y||j()?.showBanner()),S.splice(0).forEach(A=>w(A,void 0)),!v&&!g&&!y&&f===null&&B(),w(()=>n.dispatchEvent(new n.CustomEvent("bitsnap:consent:ready")),void 0),ke(f)})().catch(()=>null);function D(o){b?o():S.push(o)}let r={scope:e.scope==="project"&&c?"project":"global",projectKey:c,get:()=>ke(f),denied:o=>(f??h)?.c[o]===!1,on(o,i){return o!=="change"||typeof i!="function"?()=>{}:(s.add(i),()=>void s.delete(i))},open(){b?j()?.showSettings():F.then(()=>j()?.showSettings())},close(){x?.hide()},accept:o=>D(()=>E(P(o),"custom")),acceptAll:()=>D(()=>E(P({analytics:!0,marketing:!0,preferences:!0}),"accept_all")),rejectAll:()=>D(()=>E(O(),"reject_all")),reset(){if(!t||v)return;if(g){j()?.showBanner();return}let o=f??h,i=o?K(o.c):[];ce(t,m),f=null,h=o,w(()=>l?.update(O()),void 0),i.length>0&&V(t,u.services,i),U({id:o?.id??"",ts:Math.floor(Date.now()/1e3),bv:u.version,c:O(),action:"reset"}),o&&i.length>0&&$("withdraw",{id:o.id,ts:Math.floor(Date.now()/1e3),bv:u.version,c:O()}),j()?.showBanner(!0),i.length>0&&e.reloadOnWithdraw&&L()},ready:F,destroy(){v=!0,k?.(),x?.destroy(),x=null,s.clear()}};return Ge(r)}function Ge(e){let n={...e};for(let t of Object.keys(e)){let s=e[t];typeof s=="function"&&(n[t]=(...d)=>{try{return s(...d)}catch{return t==="get"?null:t==="on"?()=>{}:void 0}})}return n}function Xe(e){let{projectKey:n,theme:t,locale:s,position:d,privacyPolicyUrl:a,scope:c,apiHost:m,collectHost:g,reloadOnWithdraw:u,gcm:f,preview:h,title:x,description:b}=e,v=JSON.stringify(e.config??null),k=Ee(e.config);k.current=e.config;let S=JSON.stringify(e.categories??null),l=Ee(e.categories);return l.current=e.categories,le(()=>{if(window.BitsnapConsent)return;let C=J({projectKey:n,theme:t,locale:s,position:d,privacyPolicyUrl:a,scope:c,apiHost:m,collectHost:g,reloadOnWithdraw:u,gcm:f,preview:h,title:x,description:b,categories:l.current,config:k.current});return window.BitsnapConsent=C,()=>{C.destroy(),window.BitsnapConsent===C&&delete window.BitsnapConsent}},[n,t,s,d,a,c,m,g,u,f,h,x,b,S,v]),null}var Ae="null",Se=null;function qe(){let e=typeof window>"u"?null:window.BitsnapConsent?.get()??null,n=JSON.stringify(e);return n!==Ae&&(Ae=n,Se=e),Se}function Ye(e){return window.addEventListener("bitsnap:consent",e),window.addEventListener("bitsnap:consent:ready",e),()=>{window.removeEventListener("bitsnap:consent",e),window.removeEventListener("bitsnap:consent:ready",e)}}function Ze(){let e=Fe(Ye,qe,()=>null),n=N(()=>window.BitsnapConsent?.open(),[]),t=N(c=>window.BitsnapConsent?.accept(c),[]),s=N(()=>window.BitsnapConsent?.acceptAll(),[]),d=N(()=>window.BitsnapConsent?.rejectAll(),[]),a=N(()=>window.BitsnapConsent?.reset(),[]);return{consent:e,decided:e!==null,open:n,accept:t,acceptAll:s,rejectAll:d,reset:a}}export{Xe as BitsnapConsent,te as DEFAULT_TEXTS,J as createConsent,Q as defaultConfig,R as mergeConfig,q as mergeTexts,X as resolveLocale,ee as toConsentModeUpdate,Ze as useConsent};
96
+ `.replace(/\n/g,"");var Fe='<svg width="14" height="14" viewBox="0 0 16 16" aria-hidden="true"><rect width="16" height="16" rx="4" fill="currentColor" style="color:var(--fg)"/><circle cx="8" cy="8" r="3" fill="var(--bg)"/></svg>',Xe='<svg width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path d="M3 3l10 10M13 3L3 13" stroke="currentColor" stroke-width="2" stroke-linecap="round" fill="none"/></svg>',Ye="button:not([disabled]),input:not([disabled]),a[href]",qe=200;function Se(e){let{doc:n,config:t,texts:r,locale:f}=e,s=we[f],c=null,y=null,m,g,u,C,v,b="none",k=null,A=null,P=new Map,E=[];function a(o,d={},...p){let h=n.createElement(o);for(let w of Object.keys(d))w==="class"?h.className=d[w]:h.setAttribute(w,d[w]);for(let w of p)h.append(w);return h}function j(o,d,p){let h=a("button",{type:"button",class:o},d);return h.addEventListener("click",p),h}function T(){let o=a("a",{href:`https://bitsnap.pl/?utm_source=consent_banner&utm_medium=referral&utm_content=${encodeURIComponent(n.location?.hostname??"")}`,target:"_blank",rel:"noopener"});return o.append(r.poweredBy+" "),o.insertAdjacentHTML("beforeend",Fe),o.append(a("b",{},"bitsnap")),a("div",{class:"foot"},o)}function U(){let o=a("p",{class:"desc",id:"d"},r.description);return t.privacyPolicyUrl&&o.append(" ",a("a",{href:t.privacyPolicyUrl,target:"_blank",rel:"noopener"},s.privacy)),o}function X(){v=j("link-btn",r.settings,()=>l()),g=a("div",{class:`banner ${t.position==="bottom"?"bottom":`card ${t.position}`}`,role:"region","aria-live":"polite","aria-labelledby":"t","aria-describedby":"d",tabindex:"-1"},a("div",{class:"inner"},a("div",{class:"text"},a("div",{class:"title",id:"t"},r.title),U()),a("div",{class:"actions"},j("btn",r.acceptAll,e.onAcceptAll),j("btn",r.rejectAll,e.onRejectAll),v),T()))}function $(o){let d=t.services.filter(w=>w.category===o),p=a("input",{type:"checkbox",role:"switch","aria-labelledby":`l-${o}`,"aria-describedby":`p-${o}`});o==="necessary"?(p.checked=!0,p.disabled=!0):P.set(o,p);let h=a("div",{class:"cat"},a("div",{class:"row"},a("span",{class:"cat-title",id:`l-${o}`},r[`${o}Title`]),a("span",{style:"display:flex;align-items:center"},...o==="necessary"?[a("span",{class:"always"},s.always)]:[],a("label",{class:"switch"},p,a("span",{class:"track"})))),a("p",{id:`p-${o}`},r[`${o}Description`]));return d.length>0&&h.append(a("p",{class:"svc"},a("b",{},`${s.services}: `),d.map(w=>w.name).join(", "))),h}function Y(){let o=a("button",{type:"button",class:"x","aria-label":r.close});o.insertAdjacentHTML("beforeend",Xe),o.addEventListener("click",()=>x());let d=a("div",{class:"d-body"},$("necessary"));for(let p of L)t.categories[p]&&d.append($(p));C=a("div",{class:"dialog",role:"dialog","aria-modal":"true","aria-labelledby":"st",tabindex:"-1"},a("div",{class:"d-head"},a("div",{class:"title",id:"st"},r.settings),o),d,a("div",{class:"d-foot"},a("div",{class:"actions"},j("btn",r.save,()=>e.onSave(te())),j("btn",r.acceptAll,e.onAcceptAll),j("btn",r.rejectAll,e.onRejectAll)),T())),u=a("div",{class:"overlay"},C),u.addEventListener("mousedown",p=>{p.target===u&&x()})}function te(){let o={analytics:!1,marketing:!1,preferences:!1};return P.forEach((d,p)=>o[p]=d.checked),o}function R(){let o=t.theme==="dark"||t.theme==="auto"&&!!A?.matches;m.setAttribute("data-theme",o?"dark":"light"),M(o)}function M(o){let d=t.accentColor;if(d){if(o&&J(d,Q.dark.bg)<3){for(let p of["--accent","--focus","--on-accent"])m.style.removeProperty(p);return}m.style.setProperty("--accent",d),m.style.setProperty("--focus",d),m.style.setProperty("--on-accent",Te(d))}}function K(){c||(c=a("div",{id:"bitsnap-consent","data-bitsnap-consent-host":""}),y=c.attachShadow({mode:"open"}),y.append(a("style",{},Ae)),m=a("div",{class:"root",lang:f}),X(),Y(),g.hidden=!0,u.hidden=!0,m.append(g,u),y.append(m),typeof n.defaultView?.matchMedia=="function"&&(A=n.defaultView.matchMedia("(prefers-color-scheme: dark)"),A.addEventListener?.("change",R)),R(),n.body.append(c))}function q(){return Array.from(C.querySelectorAll(Ye))}function O(){try{return n.defaultView?.matchMedia?.("(prefers-reduced-motion: reduce)").matches===!0}catch{return!1}}function B(o){let d=E.findIndex(h=>h.node===o);if(d===-1)return;let[p]=E.splice(d,1);p.node.removeEventListener("animationend",p.listener),p.timer!==void 0&&n.defaultView?.clearTimeout(p.timer),p.node.classList.remove("closing")}function W(o){B(o),o.hidden=!0}function N(o){if(B(o),o.hidden)return;if(O()){o.hidden=!0;return}o.classList.add("closing");let d=w=>{w.target===o&&h()},p=n.defaultView?.setTimeout(h,qe+120);function h(){B(o),o.hidden=!0}o.addEventListener("animationend",d),E.push({node:o,listener:d,timer:p})}function _(o){B(o),o.hidden=!1,o.classList.remove("enter"),o.offsetWidth,o.classList.add("enter")}function z(o){if(b!=="settings")return;if(o.key==="Escape"){o.preventDefault(),x();return}if(o.key!=="Tab")return;let d=q();if(d.length===0)return;let p=y?.activeElement,h=d[0],w=d[d.length-1],se=!p||!C.contains(p);o.shiftKey&&(se||p===h||p===C)?(o.preventDefault(),w.focus()):!o.shiftKey&&(se||p===w)&&(o.preventDefault(),h.focus())}function i(o=!1){try{K(),b="banner",n.removeEventListener("keydown",z,!0),W(u),_(g),o&&g.focus({preventScroll:!0})}catch{}}function l(){try{if(K(),b!=="settings"){let d=n.activeElement;k=d&&d!==c&&d!==n.body?d:null}let o=e.getChoices();P.forEach((d,p)=>d.checked=!!o?.[p]),b="settings",W(g),_(u),_(C),n.addEventListener("keydown",z,!0),C.focus({preventScroll:!0})}catch{}}function x(){b==="settings"&&(n.removeEventListener("keydown",z,!0),N(u),e.hasChoice()?(b="none",k?.focus?.({preventScroll:!0})):(b="banner",_(g),v.focus({preventScroll:!0})))}function S(){if(!c)return;n.removeEventListener("keydown",z,!0);let o=b==="settings";b="none",N(g),N(u),o&&k?.focus?.({preventScroll:!0})}function H(){for(n.removeEventListener("keydown",z,!0),A?.removeEventListener?.("change",R);E.length>0;)B(E[0].node);c?.remove(),c=null,y=null,b="none"}return{showBanner:i,showSettings:l,hide:S,destroy:H}}var D=()=>({analytics:!1,marketing:!1,preferences:!1}),Le=e=>e&&{id:e.id,ts:e.ts,bv:e.bv,c:{...e.c}},je=new WeakMap;function ee(e={}){let n=typeof window<"u"?window:void 0,t=n?.document,r=new Set,f=e.apiHost||he,s=e.collectHost||Ce,c=e.projectKey?ce(e.projectKey):null,y=le(c??void 0,e.scope),m=!!e.preview,g=G(j()),u=null,C=null,v=null,b=!1,k=!1,A,P=[],E=n&&!m?T(()=>ve(n,e.gcm),null):null;T(()=>E?.setDefault(),void 0);let a=t&&!m?pe(t,y):null;function j(i){let l={...e.config};return e.theme&&(l.theme=e.theme),e.position&&(l.position=e.position),e.privacyPolicyUrl&&(l.privacyPolicyUrl=e.privacyPolicyUrl),{...i,...l}}function T(i,l){try{return i()}catch{return l}}function U(i){let l=D();for(let x of L)l[x]=!!i?.[x]&&g.categories[x];return l}function X(i){r.forEach(l=>T(()=>l({...i,c:{...i.c}}),void 0)),T(()=>{n?.dispatchEvent(new n.CustomEvent("bitsnap:consent",{detail:{...i,c:{...i.c}}}))},void 0)}function $(i){m||!c||typeof fetch!="function"||T(()=>{fetch(`${s.replace(/\/+$/,"")}/consent`,{method:"POST",keepalive:!0,credentials:"omit",body:JSON.stringify({k:c,host:n?.location?.hostname??"",...i})}).catch(()=>{})},void 0)}function Y(i,l){$({consent_id:l.id,action:i,c:l.c,bv:l.bv,ts:l.ts})}function te(){if(!n||!c)return;let i=je.get(n)??new Set;i.has(c)||(je.set(n,i.add(c)),$({action:ae,bv:g.version,ts:Math.floor(Date.now()/1e3)}))}function R(i){return L.filter(l=>i[l]&&g.categories[l])}function M(i,l){if(!t||k)return;if(m){v?.hide();return}let x=u??C,S=x?R(x.c).filter(d=>!i[d]):[],H=S.length>0?"withdraw":l,o={id:x?.id??de(),ts:Math.floor(Date.now()/1e3),bv:g.version,c:i};fe(t,y,o),u=o,C=null,K(o.c),S.length>0&&ne(t,g.services,S),v?.hide(),X({...o,action:H}),Y(H,o),S.length>0&&e.reloadOnWithdraw&&q()}function K(i){T(()=>E?.update(i),void 0),t&&be(t,i)}function q(){setTimeout(()=>T(()=>n?.location.reload(),void 0),50)}function O(){if(!t||!b||k)return null;if(!v){let i=V(e.locale,n?.navigator?.language);v=Se({doc:t,config:g,locale:i,texts:B(Z(i,g.texts)),getChoices:()=>u?.c??null,hasChoice:()=>u!==null,onAcceptAll:()=>M(U({analytics:!0,marketing:!0,preferences:!0}),"accept_all"),onRejectAll:()=>M(D(),"reject_all"),onSave:l=>M(U(l),"custom")})}return v}function B(i){let l=e.title?.trim(),x=e.description?.trim();return{...i,...l&&{title:l},...x&&{description:x}}}function W(i){i.target?.closest?.("[data-bitsnap-consent-open]")&&(i.preventDefault(),z.open())}let N=(async()=>{if(!t||!n)return null;let i=c&&!m?await xe(f,c):null;if(k)return null;let l=i?.config?void 0:e.categories;if(g=G(i?.config,l?{categories:{...D(),...l}}:void 0,j()),t.readyState==="loading"&&await new Promise(H=>t.addEventListener("DOMContentLoaded",()=>H(),{once:!0})),k)return null;b=!0,t.addEventListener("click",W),A=()=>t.removeEventListener("click",W);let x=!c||i?.config!=null,S=i?.enabled===!1;return m?O()?.showBanner():a&&(S||!x||a.bv===g.version)?(u=a,K(U(u.c))):(a&&(C=a),S||O()?.showBanner()),P.splice(0).forEach(H=>T(H,void 0)),!k&&!m&&!S&&u===null&&te(),T(()=>n.dispatchEvent(new n.CustomEvent("bitsnap:consent:ready")),void 0),Le(u)})().catch(()=>null);function _(i){b?i():P.push(i)}let z={scope:e.scope==="project"&&c?"project":"global",projectKey:c,get:()=>Le(u),denied:i=>(u??C)?.c[i]===!1,on(i,l){return i!=="change"||typeof l!="function"?()=>{}:(r.add(l),()=>void r.delete(l))},open(){b?O()?.showSettings():N.then(()=>O()?.showSettings())},close(){v?.hide()},accept:i=>_(()=>M(U(i),"custom")),acceptAll:()=>_(()=>M(U({analytics:!0,marketing:!0,preferences:!0}),"accept_all")),rejectAll:()=>_(()=>M(D(),"reject_all")),reset(){if(!t||k)return;if(m){O()?.showBanner();return}let i=u??C,l=i?R(i.c):[];ue(t,y),u=null,C=i,T(()=>E?.update(D()),void 0),l.length>0&&ne(t,g.services,l),X({id:i?.id??"",ts:Math.floor(Date.now()/1e3),bv:g.version,c:D(),action:"reset"}),i&&l.length>0&&Y("withdraw",{id:i.id,ts:Math.floor(Date.now()/1e3),bv:g.version,c:D()}),O()?.showBanner(!0),l.length>0&&e.reloadOnWithdraw&&q()},ready:N,destroy(){k=!0,A?.(),v?.destroy(),v=null,r.clear()}};return Ve(z)}function Ve(e){let n={...e};for(let t of Object.keys(e)){let r=e[t];typeof r=="function"&&(n[t]=(...f)=>{try{return r(...f)}catch{return t==="get"?null:t==="on"?()=>{}:void 0}})}return n}function Je(e){let{projectKey:n,theme:t,locale:r,position:f,privacyPolicyUrl:s,scope:c,apiHost:y,collectHost:m,reloadOnWithdraw:g,gcm:u,preview:C,title:v,description:b}=e,k=JSON.stringify(e.config??null),A=Pe(e.config);A.current=e.config;let P=JSON.stringify(e.categories??null),E=Pe(e.categories);return E.current=e.categories,ge(()=>{if(window.BitsnapConsent)return;let a=ee({projectKey:n,theme:t,locale:r,position:f,privacyPolicyUrl:s,scope:c,apiHost:y,collectHost:m,reloadOnWithdraw:g,gcm:u,preview:C,title:v,description:b,categories:E.current,config:A.current});return window.BitsnapConsent=a,()=>{a.destroy(),window.BitsnapConsent===a&&delete window.BitsnapConsent}},[n,t,r,f,s,c,y,m,g,u,C,v,b,P,k]),null}var Me="null",Oe=null;function Qe(){let e=typeof window>"u"?null:window.BitsnapConsent?.get()??null,n=JSON.stringify(e);return n!==Me&&(Me=n,Oe=e),Oe}function et(e){return window.addEventListener("bitsnap:consent",e),window.addEventListener("bitsnap:consent:ready",e),()=>{window.removeEventListener("bitsnap:consent",e),window.removeEventListener("bitsnap:consent:ready",e)}}function tt(){let e=Ze(et,Qe,()=>null),n=F(()=>window.BitsnapConsent?.open(),[]),t=F(c=>window.BitsnapConsent?.accept(c),[]),r=F(()=>window.BitsnapConsent?.acceptAll(),[]),f=F(()=>window.BitsnapConsent?.rejectAll(),[]),s=F(()=>window.BitsnapConsent?.reset(),[]);return{consent:e,decided:e!==null,open:n,accept:t,acceptAll:r,rejectAll:f,reset:s}}export{Je as BitsnapConsent,re as DEFAULT_TEXTS,ee as createConsent,oe as defaultConfig,G as mergeConfig,Z as mergeTexts,V as resolveLocale,ie as toConsentModeUpdate,tt as useConsent};
90
97
  //# sourceMappingURL=consent.mjs.map