@bigz-app/booking-widget 0.1.24 → 0.1.25

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.cjs CHANGED
@@ -6689,15 +6689,8 @@ ZodNullable.create;
6689
6689
 
6690
6690
  function n(){return n=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t]);}return e},n.apply(this,arguments)}const r=["children","options"],o=["allowFullScreen","allowTransparency","autoComplete","autoFocus","autoPlay","cellPadding","cellSpacing","charSet","classId","colSpan","contentEditable","contextMenu","crossOrigin","encType","formAction","formEncType","formMethod","formNoValidate","formTarget","frameBorder","hrefLang","inputMode","keyParams","keyType","marginHeight","marginWidth","maxLength","mediaGroup","minLength","noValidate","radioGroup","readOnly","rowSpan","spellCheck","srcDoc","srcLang","srcSet","tabIndex","useMap"].reduce((e,n)=>(e[n.toLowerCase()]=n,e),{class:"className",for:"htmlFor"}),a={amp:"&",apos:"'",gt:">",lt:"<",nbsp:" ",quot:"“"},c=["style","script","pre"],i=["src","href","data","formAction","srcDoc","action"],u=/([-A-Z0-9_:]+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|(?:\{((?:\\.|{[^}]*?}|[^}])*)\})))?/gi,l=/mailto:/i,s=/\n{2,}$/,f=/^(\s*>[\s\S]*?)(?=\n\n|$)/,_=/^ *> ?/gm,d=/^(?:\[!([^\]]*)\]\n)?([\s\S]*)/,p=/^ {2,}\n/,y=/^(?:( *[-*_])){3,} *(?:\n *)+\n/,h=/^(?: {1,3})?(`{3,}|~{3,}) *(\S+)? *([^\n]*?)?\n([\s\S]*?)(?:\1\n?|$)/,g=/^(?: {4}[^\n]+\n*)+(?:\n *)+\n?/,m=/^(`+)((?:\\`|(?!\1)`|[^`])+)\1/,k=/^(?:\n *)*\n/,x=/\r\n?/g,v=/^\[\^([^\]]+)](:(.*)((\n+ {4,}.*)|(\n(?!\[\^).+))*)/,q=/^\[\^([^\]]+)]/,b=/\f/g,S=/^---[ \t]*\n(.|\n)*\n---[ \t]*\n/,$=/^\s*?\[(x|\s)\]/,z=/^ *(#{1,6}) *([^\n]+?)(?: +#*)?(?:\n *)*(?:\n|$)/,E=/^ *(#{1,6}) +([^\n]+?)(?: +#*)?(?:\n *)*(?:\n|$)/,A=/^([^\n]+)\n *(=|-){3,} *\n/,R=/^ *(?!<[a-z][^ >/]* ?\/>)<([a-z][^ >/]*) ?((?:[^>]*[^/])?)>\n?(\s*(?:<\1[^>]*?>[\s\S]*?<\/\1>|(?!<\1\b)[\s\S])*?)<\/\1>(?!<\/\1>)\n*/i,B=/&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-fA-F]{1,6});/gi,L=/^<!--[\s\S]*?(?:-->)/,O=/^(data|aria|x)-[a-z_][a-z\d_.-]*$/,j=/^ *<([a-z][a-z0-9:]*)(?:\s+((?:<.*?>|[^>])*))?\/?>(?!<\/\1>)(\s*\n)?/i,C=/^\{.*\}$/,I=/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,T=/^<([^ >]+@[^ >]+)>/,M=/^<([^ >]+:\/[^ >]+)>/,w=/-([a-z])?/gi,D=/^(\|.*)\n(?: *(\|? *[-:]+ *\|[-| :]*)\n((?:.*\|.*\n)*))?\n?/,F=/^[^\n]+(?: \n|\n{2,})/,P=/^\[([^\]]*)\]:\s+<?([^\s>]+)>?\s*("([^"]*)")?/,Z=/^!\[([^\]]*)\] ?\[([^\]]*)\]/,N=/^\[([^\]]*)\] ?\[([^\]]*)\]/,G=/(\n|^[-*]\s|^#|^ {2,}|^-{2,}|^>\s)/,U=/\t/g,V=/(^ *\||\| *$)/g,H=/^ *:-+: *$/,Q=/^ *:-+ *$/,W=/^ *-+: *$/,J="((?:\\[.*?\\][([].*?[)\\]]|<.*?>(?:.*?<.*?>)?|`.*?`|\\\\\\1|[\\s\\S])+?)",K=RegExp(`^([*_])\\1${J}\\1\\1(?!\\1)`),X=RegExp(`^([*_])${J}\\1(?!\\1)`),Y=RegExp(`^(==)${J}\\1`),ee=RegExp(`^(~~)${J}\\1`),ne=/^(:[a-zA-Z0-9-_]+:)/,re=/^\\([^0-9A-Za-z\s])/,te=/\\([^0-9A-Za-z\s])/g,oe=/^[\s\S](?:(?! \n|[0-9]\.|http)[^=*_~\-\n:<`\\\[!])*/,ae=/^\n+/,ce=/^([ \t]*)/,ie=/(?:^|\n)( *)$/,ue="(?:\\d+\\.)",le="(?:[*+-])";function se(e){return "( *)("+(1===e?ue:le)+") +"}const fe=se(1),_e=se(2);function de(e){return RegExp("^"+(1===e?fe:_e))}const pe=de(1),ye=de(2);function he(e){return RegExp("^"+(1===e?fe:_e)+"[^\\n]*(?:\\n(?!\\1"+(1===e?ue:le)+" )[^\\n]*)*(\\n|$)","gm")}const ge=he(1),me=he(2);function ke(e){const n=1===e?ue:le;return RegExp("^( *)("+n+") [\\s\\S]+?(?:\\n{2,}(?! )(?!\\1"+n+" (?!"+n+" ))\\n*|\\s*\\n*$)")}const xe=ke(1),ve=ke(2);function qe(e,n){const r=1===n,t=r?xe:ve,o=r?ge:me,a=r?pe:ye;return {t:e=>a.test(e),o:je(function(e,n){const r=ie.exec(n.prevCapture);return r&&(n.list||!n.inline&&!n.simple)?t.exec(e=r[1]+e):null}),i:1,u(e,n,t){const c=r?+e[2]:void 0,i=e[0].replace(s,"\n").match(o);let u=false;return {items:i.map(function(e,r){const o=a.exec(e)[0].length,c=RegExp("^ {1,"+o+"}","gm"),l=e.replace(c,"").replace(a,""),s=r===i.length-1,f=-1!==l.indexOf("\n\n")||s&&u;u=f;const _=t.inline,d=t.list;let p;t.list=true,f?(t.inline=false,p=$e(l)+"\n\n"):(t.inline=true,p=$e(l));const y=n(p,t);return t.inline=_,t.list=d,y}),ordered:r,start:c}},l:(n,r,t)=>e(n.ordered?"ol":"ul",{key:t.key,start:"20"===n.type?n.start:void 0},n.items.map(function(n,o){return e("li",{key:o},r(n,t))}))}}const be=RegExp("^\\[((?:\\[[^\\[\\]]*(?:\\[[^\\[\\]]*\\][^\\[\\]]*)*\\]|[^\\[\\]])*)\\]\\(\\s*<?((?:\\([^)]*\\)|[^\\s\\\\]|\\\\.)*?)>?(?:\\s+['\"]([\\s\\S]*?)['\"])?\\s*\\)"),Se=/^!\[(.*?)\]\( *((?:\([^)]*\)|[^() ])*) *"?([^)"]*)?"?\)/;function $e(e){let n=e.length;for(;n>0&&e[n-1]<=" ";)n--;return e.slice(0,n)}function ze(e,n){return e.startsWith(n)}function Ee(e,n,r){if(Array.isArray(r)){for(let n=0;n<r.length;n++)if(ze(e,r[n]))return true;return false}return r(e,n)}function Ae(e){return e.replace(/[ÀÁÂÃÄÅàáâãä忯]/g,"a").replace(/[çÇ]/g,"c").replace(/[ðÐ]/g,"d").replace(/[ÈÉÊËéèêë]/g,"e").replace(/[ÏïÎîÍíÌì]/g,"i").replace(/[Ññ]/g,"n").replace(/[øØœŒÕõÔôÓóÒò]/g,"o").replace(/[ÜüÛûÚúÙù]/g,"u").replace(/[ŸÿÝý]/g,"y").replace(/[^a-z0-9- ]/gi,"").replace(/ /gi,"-").toLowerCase()}function Re(e){return W.test(e)?"right":H.test(e)?"center":Q.test(e)?"left":null}function Be(e,n,r,t){const o=r.inTable;r.inTable=true;let a=[[]],c="";function i(){if(!c)return;const e=a[a.length-1];e.push.apply(e,n(c,r)),c="";}return e.trim().split(/(`[^`]*`|\\\||\|)/).filter(Boolean).forEach((e,n,r)=>{"|"===e.trim()&&(i(),t)?0!==n&&n!==r.length-1&&a.push([]):c+=e;}),i(),r.inTable=o,a}function Le(e,n,r){r.inline=true;const t=e[2]?e[2].replace(V,"").split("|").map(Re):[],o=e[3]?function(e,n,r){return e.trim().split("\n").map(function(e){return Be(e,n,r,true)})}(e[3],n,r):[],a=Be(e[1],n,r,!!o.length);return r.inline=false,o.length?{align:t,cells:o,header:a,type:"25"}:{children:a,type:"21"}}function Oe(e,n){return null==e.align[n]?{}:{textAlign:e.align[n]}}function je(e){return e.inline=1,e}function Ce(e){return je(function(n,r){return r.inline?e.exec(n):null})}function Ie(e){return je(function(n,r){return r.inline||r.simple?e.exec(n):null})}function Te(e){return function(n,r){return r.inline||r.simple?null:e.exec(n)}}function Me(e){return je(function(n){return e.exec(n)})}const we=/(javascript|vbscript|data(?!:image)):/i;function De(e){try{const n=decodeURIComponent(e).replace(/[^A-Za-z0-9/:]/g,"");if(we.test(n))return null}catch(e){return null}return e}function Fe(e){return e?e.replace(te,"$1"):e}function Pe(e,n,r){const t=r.inline||false,o=r.simple||false;r.inline=true,r.simple=true;const a=e(n,r);return r.inline=t,r.simple=o,a}function Ze(e,n,r){const t=r.inline||false,o=r.simple||false;r.inline=false,r.simple=true;const a=e(n,r);return r.inline=t,r.simple=o,a}function Ne(e,n,r){const t=r.inline||false;r.inline=false;const o=e(n,r);return r.inline=t,o}const Ge=(e,n,r)=>({children:Pe(n,e[2],r)});function Ue(){return {}}function Ve(){return null}function He(...e){return e.filter(Boolean).join(" ")}function Qe(e,n,r){let t=e;const o=n.split(".");for(;o.length&&(t=t[o[0]],void 0!==t);)o.shift();return t||r}function We(r="",t={}){t.overrides=t.overrides||{},t.namedCodesToUnicode=t.namedCodesToUnicode?n({},a,t.namedCodesToUnicode):a;const s=t.slugify||Ae,V=t.sanitizer||De,H=t.createElement||React__default__namespace.createElement,Q=[f,h,g,t.enforceAtxHeadings?E:z,A,D,xe,ve],W=[...Q,F,R,L,j];function J(e,r,...o){const a=Qe(t.overrides,e+".props",{});return H(function(e,n){const r=Qe(n,e);return r?"function"==typeof r||"object"==typeof r&&"render"in r?r:Qe(n,e+".component",e):e}(e,t.overrides),n({},r,a,{className:He(null==r?void 0:r.className,a.className)||void 0}),...o)}function te(e){e=e.replace(S,"");let n=false;t.forceInline?n=true:t.forceBlock||(n=false===G.test(e));const r=_e(fe(n?e:$e(e).replace(ae,"")+"\n\n",{inline:n}));for(;"string"==typeof r[r.length-1]&&!r[r.length-1].trim();)r.pop();if(null===t.wrapper)return r;const o=t.wrapper||(n?"span":"div");let a;if(r.length>1||t.forceWrapper)a=r;else {if(1===r.length)return a=r[0],"string"==typeof a?J("span",{key:"outer"},a):a;a=null;}return H(o,{key:"outer"},a)}function ie(e,n){if(!n||!n.trim())return null;const r=n.match(u);return r?r.reduce(function(n,r){const t=r.indexOf("=");if(-1!==t){const a=function(e){return -1!==e.indexOf("-")&&null===e.match(O)&&(e=e.replace(w,function(e,n){return n.toUpperCase()})),e}(r.slice(0,t)).trim(),c=function(e){const n=e[0];return ('"'===n||"'"===n)&&e.length>=2&&e[e.length-1]===n?e.slice(1,-1):e}(r.slice(t+1).trim()),u=o[a]||a;if("ref"===u)return n;const l=n[u]=function(e,n,r,t){return "style"===n?function(e){const n=[];let r="",t=false,o=false,a="";if(!e)return n;for(let c=0;c<e.length;c++){const i=e[c];if('"'!==i&&"'"!==i||t||(o?i===a&&(o=false,a=""):(o=true,a=i)),"("===i&&r.endsWith("url")?t=true:")"===i&&t&&(t=false),";"!==i||o||t)r+=i;else {const e=r.trim();if(e){const r=e.indexOf(":");if(r>0){const t=e.slice(0,r).trim(),o=e.slice(r+1).trim();n.push([t,o]);}}r="";}}const c=r.trim();if(c){const e=c.indexOf(":");if(e>0){const r=c.slice(0,e).trim(),t=c.slice(e+1).trim();n.push([r,t]);}}return n}(r).reduce(function(n,[r,o]){return n[r.replace(/(-[a-z])/g,e=>e[1].toUpperCase())]=t(o,e,r),n},{}):-1!==i.indexOf(n)?t(Fe(r),e,n):(r.match(C)&&(r=Fe(r.slice(1,r.length-1))),"true"===r||"false"!==r&&r)}(e,a,c,V);"string"==typeof l&&(R.test(l)||j.test(l))&&(n[u]=te(l.trim()));}else "style"!==r&&(n[o[r]||r]=true);return n},{}):null}const ue=[],le={},se={0:{t:[">"],o:Te(f),i:1,u(e,n,r){const[,t,o]=e[0].replace(_,"").match(d);return {alert:t,children:n(o,r)}},l(e,n,r){const t={key:r.key};return e.alert&&(t.className="markdown-alert-"+s(e.alert.toLowerCase(),Ae),e.children.unshift({attrs:{},children:[{type:"27",text:e.alert}],noInnerParse:true,type:"11",tag:"header"})),J("blockquote",t,n(e.children,r))}},1:{o:Me(p),i:1,u:Ue,l:(e,n,r)=>J("br",{key:r.key})},2:{t:e=>{const n=e[0];return "-"===n||"*"===n||"_"===n},o:Te(y),i:1,u:Ue,l:(e,n,r)=>J("hr",{key:r.key})},3:{t:[" "],o:Te(g),i:0,u:e=>({lang:void 0,text:Fe($e(e[0].replace(/^ {4}/gm,"")))}),l:(e,r,t)=>J("pre",{key:t.key},J("code",n({},e.attrs,{className:e.lang?"lang-"+e.lang:""}),e.text))},4:{t:["```","~~~"],o:Te(h),i:0,u:e=>({attrs:ie("code",e[3]||""),lang:e[2]||void 0,text:e[4],type:"3"})},5:{t:["`"],o:Ie(m),i:3,u:e=>({text:Fe(e[2])}),l:(e,n,r)=>J("code",{key:r.key},e.text)},6:{t:["[^"],o:Te(v),i:0,u:e=>(ue.push({footnote:e[2],identifier:e[1]}),{}),l:Ve},7:{t:["[^"],o:Ce(q),i:1,u:e=>({target:"#"+s(e[1],Ae),text:e[1]}),l:(e,n,r)=>J("a",{key:r.key,href:V(e.target,"a","href")},J("sup",{key:r.key},e.text))},8:{t:["[ ]","[x]"],o:Ce($),i:1,u:e=>({completed:"x"===e[1].toLowerCase()}),l:(e,n,r)=>J("input",{checked:e.completed,key:r.key,readOnly:true,type:"checkbox"})},9:{t:["#"],o:Te(t.enforceAtxHeadings?E:z),i:1,u:(e,n,r)=>({children:Pe(n,e[2],r),id:s(e[2],Ae),level:e[1].length}),l:(e,n,r)=>J("h"+e.level,{id:e.id,key:r.key},n(e.children,r))},10:{o:Te(A),i:0,u:(e,n,r)=>({children:Pe(n,e[1],r),level:"="===e[2]?1:2,type:"9"})},11:{t:["<"],o:Me(R),i:1,u(e,n,r){const[,t]=e[3].match(ce),o=RegExp("^"+t,"gm"),a=e[3].replace(o,""),i=(u=a,W.some(e=>e.test(u))?Ne:Pe);var u;const l=e[1].toLowerCase(),s=-1!==c.indexOf(l),f=(s?l:e[1]).trim(),_={attrs:ie(f,e[2]),noInnerParse:s,tag:f};if(r.inAnchor=r.inAnchor||"a"===l,s)_.text=e[3];else {const e=r.inHTML;r.inHTML=true,_.children=i(n,a,r),r.inHTML=e;}return r.inAnchor=false,_},l:(e,r,t)=>J(e.tag,n({key:t.key},e.attrs),e.text||(e.children?r(e.children,t):""))},13:{t:["<"],o:Me(j),i:1,u(e){const n=e[1].trim();return {attrs:ie(n,e[2]||""),tag:n}},l:(e,r,t)=>J(e.tag,n({},e.attrs,{key:t.key}))},12:{t:["\x3c!--"],o:Me(L),i:1,u:()=>({}),l:Ve},14:{t:["!["],o:Ie(Se),i:1,u:e=>({alt:Fe(e[1]),target:Fe(e[2]),title:Fe(e[3])}),l:(e,n,r)=>J("img",{key:r.key,alt:e.alt||void 0,title:e.title||void 0,src:V(e.target,"img","src")})},15:{t:["["],o:Ce(be),i:3,u:(e,n,r)=>({children:Ze(n,e[1],r),target:Fe(e[2]),title:Fe(e[3])}),l:(e,n,r)=>J("a",{key:r.key,href:V(e.target,"a","href"),title:e.title},n(e.children,r))},16:{t:["<"],o:Ce(M),i:0,u:e=>({children:[{text:e[1],type:"27"}],target:e[1],type:"15"})},17:{t:(e,n)=>!n.inAnchor&&!t.disableAutoLink&&(ze(e,"http://")||ze(e,"https://")),o:Ce(I),i:0,u:e=>({children:[{text:e[1],type:"27"}],target:e[1],title:void 0,type:"15"})},18:{t:["<"],o:Ce(T),i:0,u(e){let n=e[1],r=e[1];return l.test(r)||(r="mailto:"+r),{children:[{text:n.replace("mailto:",""),type:"27"}],target:r,type:"15"}}},20:qe(J,1),33:qe(J,2),19:{o:Te(k),i:3,u:Ue,l:()=>"\n"},21:{o:je(function(e,n){if(n.inline||n.simple||n.inHTML&&-1===e.indexOf("\n\n")&&-1===n.prevCapture.indexOf("\n\n"))return null;let r="";e.split("\n").every(e=>(e+="\n",!Q.some(n=>n.test(e))&&(r+=e,!!e.trim())));const t=$e(r);return ""===t?null:[r,,t]}),i:3,u:Ge,l:(e,n,r)=>J("p",{key:r.key},n(e.children,r))},22:{t:["["],o:Ce(P),i:0,u:e=>(le[e[1]]={target:e[2],title:e[4]},{}),l:Ve},23:{t:["!["],o:Ie(Z),i:0,u:e=>({alt:e[1]?Fe(e[1]):void 0,ref:e[2]}),l:(e,n,r)=>le[e.ref]?J("img",{key:r.key,alt:e.alt,src:V(le[e.ref].target,"img","src"),title:le[e.ref].title}):null},24:{t:e=>"["===e[0]&&-1===e.indexOf("]("),o:Ce(N),i:0,u:(e,n,r)=>({children:n(e[1],r),fallbackChildren:e[0],ref:e[2]}),l:(e,n,r)=>le[e.ref]?J("a",{key:r.key,href:V(le[e.ref].target,"a","href"),title:le[e.ref].title},n(e.children,r)):J("span",{key:r.key},e.fallbackChildren)},25:{t:["|"],o:Te(D),i:1,u:Le,l(e,n,r){const t=e;return J("table",{key:r.key},J("thead",null,J("tr",null,t.header.map(function(e,o){return J("th",{key:o,style:Oe(t,o)},n(e,r))}))),J("tbody",null,t.cells.map(function(e,o){return J("tr",{key:o},e.map(function(e,o){return J("td",{key:o,style:Oe(t,o)},n(e,r))}))})))}},27:{o:je(function(e,n){let r;return ze(e,":")&&(r=ne.exec(e)),r||oe.exec(e)}),i:4,u(e){const n=e[0];return {text:-1===n.indexOf("&")?n:n.replace(B,(e,n)=>t.namedCodesToUnicode[n]||e)}},l:e=>e.text},28:{t:["**","__"],o:Ie(K),i:2,u:(e,n,r)=>({children:n(e[2],r)}),l:(e,n,r)=>J("strong",{key:r.key},n(e.children,r))},29:{t:e=>{const n=e[0];return ("*"===n||"_"===n)&&e[1]!==n},o:Ie(X),i:3,u:(e,n,r)=>({children:n(e[2],r)}),l:(e,n,r)=>J("em",{key:r.key},n(e.children,r))},30:{t:["\\"],o:Ie(re),i:1,u:e=>({text:e[1],type:"27"})},31:{t:["=="],o:Ie(Y),i:3,u:Ge,l:(e,n,r)=>J("mark",{key:r.key},n(e.children,r))},32:{t:["~~"],o:Ie(ee),i:3,u:Ge,l:(e,n,r)=>J("del",{key:r.key},n(e.children,r))}};true===t.disableParsingRawHTML&&(delete se[11],delete se[13]);const fe=function(e){var n=Object.keys(e);function r(t,o){var a=[];if(o.prevCapture=o.prevCapture||"",t.trim())for(;t;)for(var c=0;c<n.length;){var i=n[c],u=e[i];if(!u.t||Ee(t,o,u.t)){var l=u.o(t,o);if(l&&l[0]){t=t.substring(l[0].length);var s=u.u(l,r,o);o.prevCapture+=l[0],s.type||(s.type=i),a.push(s);break}c++;}else c++;}return o.prevCapture="",a}return n.sort(function(n,r){return e[n].i-e[r].i||(n<r?-1:1)}),function(e,n){return r(function(e){return e.replace(x,"\n").replace(b,"").replace(U," ")}(e),n)}}(se),_e=(de=function(e,n){return function(r,t,o){const a=e[r.type].l;return n?n(()=>a(r,t,o),r,t,o):a(r,t,o)}}(se,t.renderRule),function e(n,r={}){if(Array.isArray(n)){const t=r.key,o=[];let a=false;for(let t=0;t<n.length;t++){r.key=t;const c=e(n[t],r),i="string"==typeof c;i&&a?o[o.length-1]+=c:null!==c&&o.push(c),a=i;}return r.key=t,o}return de(n,e,r)});var de;const pe=te(r);return ue.length?J("div",null,pe,J("footer",{key:"footer"},ue.map(function(e){return J("div",{id:s(e.identifier,Ae),key:e.identifier},e.identifier,_e(fe(e.footnote,{inline:true})))}))):pe}var Markdown = n=>{let{children:t="",options:o}=n,a=function(e,n){if(null==e)return {};var r,t,o={},a=Object.keys(e);for(t=0;t<a.length;t++)n.indexOf(r=a[t])>=0||(o[r]=e[r]);return o}(n,r);return React__default__namespace.cloneElement(We(t,o),a)};
6691
6691
 
6692
- // Helper function to preprocess markdown for underline support
6693
- const preprocessMarkdown$1 = (markdown) => {
6694
- // Convert double underscores to HTML underline tags for React Markdown
6695
- return markdown.replace(/__([^_]+)__/g, "<u>$1</u>");
6696
- };
6697
- const IconCheck$1 = ({ size = 16, color = "#10b981" }) => (jsxRuntime.jsx("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: jsxRuntime.jsx("polyline", { points: "20 6 9 17 4 12" }) }));
6698
- const IconWave$1 = ({ size = 20, color = "#0ea5e9" }) => (jsxRuntime.jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [jsxRuntime.jsx("path", { d: "M2 18c2-2 6-2 8 0s6 2 8 0 6-2 8 0" }), jsxRuntime.jsx("path", { d: "M2 12c2-2 6-2 8 0s6 2 8 0 6-2 8 0" }), jsxRuntime.jsx("path", { d: "M2 6c2-2 6-2 8 0s6 2 8 0 6-2 8 0" })] }));
6699
6692
  // Portal component that renders dialog at document body level
6700
- function DialogPortal({ children, isOpen }) {
6693
+ function DialogPortal({ children, isOpen, zIndex = 999999, }) {
6701
6694
  const [portalRoot, setPortalRoot] = React__default.useState(null);
6702
6695
  React__default.useEffect(() => {
6703
6696
  if (!isOpen) {
@@ -6729,9 +6722,12 @@ function DialogPortal({ children, isOpen }) {
6729
6722
  "--bw-border-radius-small",
6730
6723
  "--bw-spacing",
6731
6724
  "--bw-spacing-large",
6725
+ "--bw-spacing-small",
6732
6726
  "--bw-font-family",
6733
6727
  "--bw-font-size",
6734
6728
  "--bw-font-size-large",
6729
+ "--bw-font-size-small",
6730
+ "--bw-font-size-xl",
6735
6731
  "--bw-shadow-lg",
6736
6732
  "--bw-shadow-md",
6737
6733
  "--bw-highlight-muted",
@@ -6759,7 +6755,7 @@ function DialogPortal({ children, isOpen }) {
6759
6755
  left: 0;
6760
6756
  width: 100%;
6761
6757
  height: 100%;
6762
- z-index: 999999;
6758
+ z-index: ${zIndex};
6763
6759
  pointer-events: none;
6764
6760
  ${cssProperties}
6765
6761
  `;
@@ -6780,7 +6776,7 @@ function DialogPortal({ children, isOpen }) {
6780
6776
  }
6781
6777
  document.body.style.overflow = "";
6782
6778
  };
6783
- }, [isOpen]);
6779
+ }, [isOpen, zIndex]);
6784
6780
  if (!isOpen || !portalRoot)
6785
6781
  return null;
6786
6782
  return ReactDOM.createPortal(jsxRuntime.jsx("div", { style: {
@@ -6789,7 +6785,8 @@ function DialogPortal({ children, isOpen }) {
6789
6785
  height: "100%",
6790
6786
  }, children: children }), portalRoot);
6791
6787
  }
6792
- function EventTypeDetailsDialog({ isOpen, onClose, eventType, onEventTypeSelect, }) {
6788
+ // Shared dialog wrapper component
6789
+ function DialogWrapper({ isOpen, onClose, children, maxWidth = "700px", className, zIndex = 999999, }) {
6793
6790
  // Get fallback styles from the widget container for cases where CSS variables aren't available
6794
6791
  const [fallbackStyles, setFallbackStyles] = React__default.useState({});
6795
6792
  React__default.useEffect(() => {
@@ -6826,15 +6823,10 @@ function EventTypeDetailsDialog({ isOpen, onClose, eventType, onEventTypeSelect,
6826
6823
  return () => {
6827
6824
  document.removeEventListener("keydown", handleEscape);
6828
6825
  };
6829
- }, [isOpen]);
6830
- if (!isOpen || !eventType)
6826
+ }, [isOpen, onClose]);
6827
+ if (!isOpen)
6831
6828
  return null;
6832
- const isAvailable = eventType.hasAvailableInstances;
6833
- const handleBookingClick = () => {
6834
- onEventTypeSelect(eventType);
6835
- onClose();
6836
- };
6837
- return (jsxRuntime.jsx(DialogPortal, { isOpen: isOpen, children: jsxRuntime.jsx("div", { style: fallbackStyles, children: jsxRuntime.jsx("div", { style: {
6829
+ return (jsxRuntime.jsx(DialogPortal, { isOpen: isOpen, zIndex: zIndex, children: jsxRuntime.jsx("div", { style: fallbackStyles, className: className, children: jsxRuntime.jsx("div", { style: {
6838
6830
  position: "fixed",
6839
6831
  top: 0,
6840
6832
  left: 0,
@@ -6847,11 +6839,11 @@ function EventTypeDetailsDialog({ isOpen, onClose, eventType, onEventTypeSelect,
6847
6839
  alignItems: "center",
6848
6840
  justifyContent: "center",
6849
6841
  padding: "var(--bw-spacing)",
6850
- zIndex: 999999,
6842
+ zIndex: zIndex,
6851
6843
  }, onClick: onClose, children: jsxRuntime.jsxs("div", { style: {
6852
6844
  backgroundColor: "var(--bw-surface-color)",
6853
6845
  borderRadius: "var(--bw-border-radius)",
6854
- maxWidth: "700px",
6846
+ maxWidth,
6855
6847
  width: "100%",
6856
6848
  maxHeight: "90vh",
6857
6849
  overflow: "auto",
@@ -6879,181 +6871,199 @@ function EventTypeDetailsDialog({ isOpen, onClose, eventType, onEventTypeSelect,
6879
6871
  e.currentTarget.style.backgroundColor = "var(--bw-border-color)";
6880
6872
  }, onMouseLeave: (e) => {
6881
6873
  e.currentTarget.style.backgroundColor = "var(--bw-surface-color)";
6882
- }, children: "\u00D7" }), jsxRuntime.jsxs("div", { style: { padding: "var(--bw-spacing-large)" }, children: [jsxRuntime.jsxs("div", { style: {
6883
- marginBottom: "24px",
6884
- padding: "16px",
6885
- backgroundColor: "var(--bw-background-color)",
6886
- borderRadius: "var(--bw-border-radius)",
6887
- border: `1px solid var(--bw-border-color)`,
6888
- }, children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { style: {
6889
- fontSize: "14px",
6890
- fontWeight: "600",
6891
- color: "var(--bw-highlight-color)",
6892
- marginBottom: "8px",
6893
- fontFamily: "var(--bw-font-family)",
6894
- }, children: eventType.category.name }), jsxRuntime.jsx("h2", { style: {
6895
- fontSize: "28px",
6896
- fontWeight: "700",
6897
- color: "var(--bw-text-color)",
6898
- marginBottom: "16px",
6899
- lineHeight: "1.3",
6900
- fontFamily: "var(--bw-font-family)",
6901
- margin: "0 0 16px 0",
6902
- }, children: eventType.name })] }), eventType.highlights && eventType.highlights.length > 0 && (jsxRuntime.jsx("div", { style: { display: "flex", alignItems: "center", gap: "8px" }, children: jsxRuntime.jsx("div", { style: { marginBottom: "24px" }, children: jsxRuntime.jsx("ul", { style: {
6903
- listStyle: "none",
6904
- padding: "0",
6905
- margin: "0",
6906
- display: "flex",
6907
- flexDirection: "column",
6908
- gap: "3px",
6909
- }, children: eventType.highlights
6910
- .filter((highlight) => highlight.trim())
6911
- .map((highlight, index) => (jsxRuntime.jsxs("li", { style: {
6912
- display: "flex",
6913
- alignItems: "flex-start",
6914
- gap: "10px",
6915
- fontFamily: "var(--bw-font-family)",
6916
- fontSize: "16px",
6917
- lineHeight: "1.6",
6918
- color: "var(--bw-text-color)",
6919
- }, children: [jsxRuntime.jsx("div", { style: { marginTop: "4px", flexShrink: 0 }, children: jsxRuntime.jsx(IconCheck$1, { size: 16, color: "var(--bw-success-color)" }) }), jsxRuntime.jsx("span", { children: highlight.trim() })] }, index))) }) }) }))] }), eventType.description && (jsxRuntime.jsxs("div", { style: {
6920
- marginBottom: "24px",
6921
- color: "var(--bw-text-muted)",
6922
- fontSize: "16px",
6923
- lineHeight: "1.6",
6874
+ }, children: "\u00D7" }), children] }) }) }) }));
6875
+ }
6876
+
6877
+ // Helper function to preprocess markdown for underline support
6878
+ const preprocessMarkdown$1 = (markdown) => {
6879
+ // Convert double underscores to HTML underline tags for React Markdown
6880
+ return markdown.replace(/__([^_]+)__/g, "<u>$1</u>");
6881
+ };
6882
+ const IconCheck$1 = ({ size = 16, color = "#10b981" }) => (jsxRuntime.jsx("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: jsxRuntime.jsx("polyline", { points: "20 6 9 17 4 12" }) }));
6883
+ const IconWave$1 = ({ size = 20, color = "#0ea5e9" }) => (jsxRuntime.jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [jsxRuntime.jsx("path", { d: "M2 18c2-2 6-2 8 0s6 2 8 0 6-2 8 0" }), jsxRuntime.jsx("path", { d: "M2 12c2-2 6-2 8 0s6 2 8 0 6-2 8 0" }), jsxRuntime.jsx("path", { d: "M2 6c2-2 6-2 8 0s6 2 8 0 6-2 8 0" })] }));
6884
+ function EventTypeDetailsDialog({ isOpen, onClose, eventType, onEventTypeSelect, }) {
6885
+ if (!isOpen || !eventType)
6886
+ return null;
6887
+ const isAvailable = eventType.hasAvailableInstances;
6888
+ const handleBookingClick = () => {
6889
+ onEventTypeSelect(eventType);
6890
+ onClose();
6891
+ };
6892
+ return (jsxRuntime.jsx(DialogWrapper, { isOpen: isOpen, onClose: onClose, maxWidth: "700px", children: jsxRuntime.jsxs("div", { style: { padding: "var(--bw-spacing-large)" }, children: [jsxRuntime.jsxs("div", { style: {
6893
+ marginBottom: "24px",
6894
+ padding: "16px",
6895
+ backgroundColor: "var(--bw-background-color)",
6896
+ borderRadius: "var(--bw-border-radius)",
6897
+ border: `1px solid var(--bw-border-color)`,
6898
+ }, children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { style: {
6899
+ fontSize: "14px",
6900
+ fontWeight: "600",
6901
+ color: "var(--bw-highlight-color)",
6902
+ marginBottom: "8px",
6924
6903
  fontFamily: "var(--bw-font-family)",
6925
- padding: "0px 20px",
6926
- }, children: [jsxRuntime.jsx("style", { dangerouslySetInnerHTML: {
6927
- __html: `
6928
- .bw-markdown-content p {
6929
- margin: 0 0 12px 0 !important;
6930
- color: var(--bw-text-muted) !important;
6931
- font-family: var(--bw-font-family) !important;
6932
- line-height: 1.6 !important;
6933
- }
6934
- .bw-markdown-content p:last-child {
6935
- margin-bottom: 0 !important;
6936
- }
6937
- .bw-markdown-content h2 {
6938
- font-size: 20px !important;
6939
- font-weight: 700 !important;
6940
- color: var(--bw-text-color) !important;
6941
- margin: 20px 0 8px 0 !important;
6942
- line-height: 1.3 !important;
6943
- display: block !important;
6944
- }
6945
- .bw-markdown-content h3 {
6946
- font-size: 18px !important;
6947
- font-weight: 600 !important;
6948
- color: var(--bw-text-color) !important;
6949
- margin: 16px 0 8px 0 !important;
6950
- line-height: 1.3 !important;
6951
- display: block !important;
6952
- }
6953
- .bw-markdown-content strong {
6954
- font-weight: 700 !important;
6955
- color: var(--bw-text-color) !important;
6956
- }
6957
- .bw-markdown-content em {
6958
- font-style: italic !important;
6959
- }
6960
- .bw-markdown-content u {
6961
- text-decoration: underline !important;
6962
- }
6963
- .bw-markdown-content ul {
6964
- margin: 12px 0 !important;
6965
- padding-left: 24px !important;
6966
- list-style-type: disc !important;
6967
- display: block !important;
6968
- }
6969
- .bw-markdown-content ol {
6970
- margin: 12px 0 !important;
6971
- padding-left: 24px !important;
6972
- list-style-type: decimal !important;
6973
- display: block !important;
6974
- }
6975
- .bw-markdown-content li {
6976
- margin-bottom: 4px !important;
6977
- display: list-item !important;
6978
- color: var(--bw-text-muted) !important;
6979
- font-family: var(--bw-font-family) !important;
6980
- line-height: 1.6 !important;
6981
- }
6982
- .bw-markdown-content blockquote {
6983
- margin: 12px 0 !important;
6984
- padding-left: 16px !important;
6985
- border-left: 3px solid var(--bw-border-color) !important;
6986
- font-style: italic !important;
6987
- color: var(--bw-text-muted) !important;
6988
- display: block !important;
6989
- }
6990
- .bw-markdown-content a {
6991
- color: var(--bw-highlight-color) !important;
6992
- text-decoration: underline !important;
6993
- }
6994
- .bw-markdown-content a:hover {
6995
- text-decoration: none !important;
6996
- }
6997
- `,
6998
- } }), jsxRuntime.jsx("div", { className: "bw-markdown-content", children: Markdown({ children: preprocessMarkdown$1(eventType.description) }) })] })), jsxRuntime.jsxs("div", { style: {
6904
+ }, children: eventType.category.name }), jsxRuntime.jsx("h2", { style: {
6905
+ fontSize: "28px",
6906
+ fontWeight: "700",
6907
+ color: "var(--bw-text-color)",
6908
+ marginBottom: "16px",
6909
+ lineHeight: "1.3",
6910
+ fontFamily: "var(--bw-font-family)",
6911
+ margin: "0 0 16px 0",
6912
+ }, children: eventType.name })] }), eventType.highlights && eventType.highlights.length > 0 && (jsxRuntime.jsx("div", { style: { display: "flex", alignItems: "center", gap: "8px" }, children: jsxRuntime.jsx("div", { style: { marginBottom: "24px" }, children: jsxRuntime.jsx("ul", { style: {
6913
+ listStyle: "none",
6914
+ padding: "0",
6915
+ margin: "0",
6999
6916
  display: "flex",
7000
- justifyContent: "space-between",
7001
- alignItems: "center",
7002
- marginTop: "32px",
7003
- padding: "20px",
7004
- backgroundColor: "var(--bw-background-color)",
7005
- borderRadius: "var(--bw-border-radius)",
7006
- border: `1px solid var(--bw-border-color)`,
7007
- }, children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { className: "bw-event-type-price", style: {
7008
- fontWeight: "700",
7009
- color: "var(--bw-text-color)",
7010
- fontFamily: "var(--bw-font-family)",
7011
- textAlign: "left",
7012
- }, children: eventType.groupedDurations && jsxRuntime.jsx("span", { children: eventType.groupedDurations }) }), jsxRuntime.jsx("div", { className: "bw-event-type-price", style: {
7013
- fontSize: "clamp(1.72rem, 4vw, 32px)",
7014
- fontWeight: "700",
7015
- color: "var(--bw-text-color)",
7016
- fontFamily: "var(--bw-font-family)",
7017
- textAlign: "right",
7018
- }, children: jsxRuntime.jsxs("span", { children: ["ab ", formatCurrency(eventType.minPrice)] }) })] }), isAvailable && (jsxRuntime.jsxs("button", { onClick: handleBookingClick, style: {
7019
- backgroundColor: "var(--bw-highlight-color)",
7020
- color: "white",
7021
- padding: "14px 28px",
7022
- border: "none",
7023
- borderRadius: "var(--bw-border-radius)",
7024
- fontSize: "16px",
7025
- fontWeight: "600",
7026
- fontFamily: "var(--bw-font-family)",
7027
- display: "flex",
7028
- alignItems: "center",
7029
- gap: "8px",
7030
- cursor: "pointer",
7031
- transition: "all 0.2s ease",
7032
- }, onMouseEnter: (e) => {
7033
- e.currentTarget.style.opacity = "0.9";
7034
- e.currentTarget.style.transform = "translateY(-1px)";
7035
- }, onMouseLeave: (e) => {
7036
- e.currentTarget.style.opacity = "1";
7037
- e.currentTarget.style.transform = "translateY(0)";
7038
- }, children: [jsxRuntime.jsx(IconWave$1, { size: 20, color: "white" }), "Jetzt buchen"] }))] })] }), !isAvailable && (jsxRuntime.jsx("div", { style: {
7039
- position: "absolute",
7040
- inset: 0,
7041
- backgroundColor: "rgba(0, 0, 0, 0.3)",
7042
- backdropFilter: "blur(2px)",
6917
+ flexDirection: "column",
6918
+ gap: "3px",
6919
+ }, children: eventType.highlights
6920
+ .filter((highlight) => highlight.trim())
6921
+ .map((highlight, index) => (jsxRuntime.jsxs("li", { style: {
6922
+ display: "flex",
6923
+ alignItems: "flex-start",
6924
+ gap: "10px",
6925
+ fontFamily: "var(--bw-font-family)",
6926
+ fontSize: "16px",
6927
+ lineHeight: "1.6",
6928
+ color: "var(--bw-text-color)",
6929
+ }, children: [jsxRuntime.jsx("div", { style: { marginTop: "4px", flexShrink: 0 }, children: jsxRuntime.jsx(IconCheck$1, { size: 16, color: "var(--bw-success-color)" }) }), jsxRuntime.jsx("span", { children: highlight.trim() })] }, index))) }) }) }))] }), eventType.description && (jsxRuntime.jsxs("div", { style: {
6930
+ marginBottom: "24px",
6931
+ color: "var(--bw-text-muted)",
6932
+ fontSize: "16px",
6933
+ lineHeight: "1.6",
6934
+ fontFamily: "var(--bw-font-family)",
6935
+ padding: "0px 20px",
6936
+ }, children: [jsxRuntime.jsx("style", { dangerouslySetInnerHTML: {
6937
+ __html: `
6938
+ .bw-markdown-content p {
6939
+ margin: 0 0 12px 0 !important;
6940
+ color: var(--bw-text-muted) !important;
6941
+ font-family: var(--bw-font-family) !important;
6942
+ line-height: 1.6 !important;
6943
+ }
6944
+ .bw-markdown-content p:last-child {
6945
+ margin-bottom: 0 !important;
6946
+ }
6947
+ .bw-markdown-content h2 {
6948
+ font-size: 20px !important;
6949
+ font-weight: 700 !important;
6950
+ color: var(--bw-text-color) !important;
6951
+ margin: 20px 0 8px 0 !important;
6952
+ line-height: 1.3 !important;
6953
+ display: block !important;
6954
+ }
6955
+ .bw-markdown-content h3 {
6956
+ font-size: 18px !important;
6957
+ font-weight: 600 !important;
6958
+ color: var(--bw-text-color) !important;
6959
+ margin: 16px 0 8px 0 !important;
6960
+ line-height: 1.3 !important;
6961
+ display: block !important;
6962
+ }
6963
+ .bw-markdown-content strong {
6964
+ font-weight: 700 !important;
6965
+ color: var(--bw-text-color) !important;
6966
+ }
6967
+ .bw-markdown-content em {
6968
+ font-style: italic !important;
6969
+ }
6970
+ .bw-markdown-content u {
6971
+ text-decoration: underline !important;
6972
+ }
6973
+ .bw-markdown-content ul {
6974
+ margin: 12px 0 !important;
6975
+ padding-left: 24px !important;
6976
+ list-style-type: disc !important;
6977
+ display: block !important;
6978
+ }
6979
+ .bw-markdown-content ol {
6980
+ margin: 12px 0 !important;
6981
+ padding-left: 24px !important;
6982
+ list-style-type: decimal !important;
6983
+ display: block !important;
6984
+ }
6985
+ .bw-markdown-content li {
6986
+ margin-bottom: 4px !important;
6987
+ display: list-item !important;
6988
+ color: var(--bw-text-muted) !important;
6989
+ font-family: var(--bw-font-family) !important;
6990
+ line-height: 1.6 !important;
6991
+ }
6992
+ .bw-markdown-content blockquote {
6993
+ margin: 12px 0 !important;
6994
+ padding-left: 16px !important;
6995
+ border-left: 3px solid var(--bw-border-color) !important;
6996
+ font-style: italic !important;
6997
+ color: var(--bw-text-muted) !important;
6998
+ display: block !important;
6999
+ }
7000
+ .bw-markdown-content a {
7001
+ color: var(--bw-highlight-color) !important;
7002
+ text-decoration: underline !important;
7003
+ }
7004
+ .bw-markdown-content a:hover {
7005
+ text-decoration: none !important;
7006
+ }
7007
+ `,
7008
+ } }), jsxRuntime.jsx("div", { className: "bw-markdown-content", children: Markdown({ children: preprocessMarkdown$1(eventType.description) }) })] })), jsxRuntime.jsxs("div", { style: {
7009
+ display: "flex",
7010
+ justifyContent: "space-between",
7011
+ alignItems: "center",
7012
+ marginTop: "32px",
7013
+ padding: "20px",
7014
+ backgroundColor: "var(--bw-background-color)",
7015
+ borderRadius: "var(--bw-border-radius)",
7016
+ border: `1px solid var(--bw-border-color)`,
7017
+ }, children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { className: "bw-event-type-price", style: {
7018
+ fontWeight: "700",
7019
+ color: "var(--bw-text-color)",
7020
+ fontFamily: "var(--bw-font-family)",
7021
+ textAlign: "left",
7022
+ }, children: eventType.groupedDurations && jsxRuntime.jsx("span", { children: eventType.groupedDurations }) }), jsxRuntime.jsx("div", { className: "bw-event-type-price", style: {
7023
+ fontSize: "clamp(1.72rem, 4vw, 32px)",
7024
+ fontWeight: "700",
7025
+ color: "var(--bw-text-color)",
7026
+ fontFamily: "var(--bw-font-family)",
7027
+ textAlign: "right",
7028
+ }, children: jsxRuntime.jsxs("span", { children: ["ab ", formatCurrency(eventType.minPrice)] }) })] }), isAvailable && (jsxRuntime.jsxs("button", { onClick: handleBookingClick, style: {
7029
+ backgroundColor: "var(--bw-highlight-color)",
7030
+ color: "white",
7031
+ padding: "14px 28px",
7032
+ border: "none",
7033
+ borderRadius: "var(--bw-border-radius)",
7034
+ fontSize: "16px",
7035
+ fontWeight: "600",
7036
+ fontFamily: "var(--bw-font-family)",
7043
7037
  display: "flex",
7044
7038
  alignItems: "center",
7045
- justifyContent: "center",
7046
- borderRadius: "var(--bw-border-radius)",
7047
- }, children: jsxRuntime.jsx("div", { style: {
7048
- backgroundColor: "rgba(255, 255, 255, 0.9)",
7049
- padding: "16px 32px",
7050
- borderRadius: "var(--bw-border-radius)",
7051
- color: "var(--bw-text-color)",
7052
- fontWeight: "600",
7053
- fontSize: "18px",
7054
- fontFamily: "var(--bw-font-family)",
7055
- boxShadow: "var(--bw-shadow-md)",
7056
- }, children: "Ausgebucht" }) }))] }) }) }) }));
7039
+ gap: "8px",
7040
+ cursor: "pointer",
7041
+ transition: "all 0.2s ease",
7042
+ }, onMouseEnter: (e) => {
7043
+ e.currentTarget.style.opacity = "0.9";
7044
+ e.currentTarget.style.transform = "translateY(-1px)";
7045
+ }, onMouseLeave: (e) => {
7046
+ e.currentTarget.style.opacity = "1";
7047
+ e.currentTarget.style.transform = "translateY(0)";
7048
+ }, children: [jsxRuntime.jsx(IconWave$1, { size: 20, color: "white" }), "Jetzt buchen"] }))] }), !isAvailable && (jsxRuntime.jsx("div", { style: {
7049
+ position: "absolute",
7050
+ inset: 0,
7051
+ backgroundColor: "rgba(0, 0, 0, 0.3)",
7052
+ backdropFilter: "blur(2px)",
7053
+ display: "flex",
7054
+ alignItems: "center",
7055
+ justifyContent: "center",
7056
+ borderRadius: "var(--bw-border-radius)",
7057
+ }, children: jsxRuntime.jsx("div", { style: {
7058
+ backgroundColor: "rgba(255, 255, 255, 0.9)",
7059
+ padding: "16px 32px",
7060
+ borderRadius: "var(--bw-border-radius)",
7061
+ color: "var(--bw-text-color)",
7062
+ fontWeight: "600",
7063
+ fontSize: "18px",
7064
+ fontFamily: "var(--bw-font-family)",
7065
+ boxShadow: "var(--bw-shadow-md)",
7066
+ }, children: "Ausgebucht" }) }))] }) }));
7057
7067
  }
7058
7068
 
7059
7069
  // Carousel navigation icons
@@ -7105,7 +7115,7 @@ const ImageCarousel = ({ images, eventName }) => {
7105
7115
  if (images.length === 0) {
7106
7116
  return jsxRuntime.jsx(EventImagePlaceholder, {});
7107
7117
  }
7108
- return (jsxRuntime.jsxs("div", { style: { position: "relative", width: "100%", height: "100%", overflow: "hidden" }, children: [jsxRuntime.jsx("div", { style: {
7118
+ return (jsxRuntime.jsxs("div", { style: { position: "relative", width: "100%", height: "100%", overflow: "hidden", borderRadius: "inherit" }, children: [jsxRuntime.jsx("div", { style: {
7109
7119
  display: "flex",
7110
7120
  width: `${images.length * 100}%`,
7111
7121
  height: "100%",
@@ -7117,6 +7127,7 @@ const ImageCarousel = ({ images, eventName }) => {
7117
7127
  flexShrink: 0,
7118
7128
  overflow: "hidden",
7119
7129
  position: "relative",
7130
+ borderRadius: "inherit"
7120
7131
  }, children: jsxRuntime.jsx("img", { src: image, alt: `${eventName} - Bild ${index + 1}`, style: {
7121
7132
  width: "100%",
7122
7133
  height: "100%",
@@ -7125,6 +7136,7 @@ const ImageCarousel = ({ images, eventName }) => {
7125
7136
  position: "absolute",
7126
7137
  top: 0,
7127
7138
  left: 0,
7139
+ borderRadius: "inherit"
7128
7140
  } }) }, index))) }), images.length > 1 && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("button", { onClick: prevImage, disabled: isTransitioning, style: {
7129
7141
  position: "absolute",
7130
7142
  left: "12px",
@@ -7601,6 +7613,7 @@ function EventTypeSelection({ eventTypes, onEventTypeSelect, isLoading = false,
7601
7613
  backgroundColor: "var(--bw-surface-color)",
7602
7614
  border: `1px solid var(--bw-border-color)`,
7603
7615
  borderRadius: "var(--bw-border-radius)",
7616
+ overflow: "hidden",
7604
7617
  transition: "all 0.3s ease",
7605
7618
  cursor: isAvailable ? "pointer" : "not-allowed",
7606
7619
  opacity: isAvailable ? 1 : 0.6,
@@ -9569,6 +9582,7 @@ function Sidebar({ isOpen, onClose, title, children, width = "400px" }) {
9569
9582
  position: "absolute",
9570
9583
  inset: 0,
9571
9584
  backgroundColor: "rgba(0, 0, 0, 0.5)",
9585
+ backdropFilter: "blur(10px)",
9572
9586
  opacity: isAnimating ? 1 : 0,
9573
9587
  transition: "opacity 0.25s ease-out",
9574
9588
  }, onClick: onClose }), jsxRuntime.jsxs("div", { style: {
@@ -9915,11 +9929,11 @@ function BookingForm({ config, eventDetails, stripePromise, onSuccess, onError,
9915
9929
  display: "flex",
9916
9930
  alignItems: "center",
9917
9931
  gap: "4px",
9918
- }, children: [jsxRuntime.jsx(IconMoney, { size: 20, color: "var(--bw-highlight-color)" }), " Preis:"] }), jsxRuntime.jsxs("span", { style: {
9932
+ }, children: [jsxRuntime.jsx(IconCalendar, { size: 20, color: "var(--bw-highlight-color)" }), " Uhrzeit:"] }), jsxRuntime.jsx("span", { style: {
9919
9933
  color: "var(--bw-text-color)",
9920
9934
  fontWeight: "500",
9921
9935
  fontFamily: "var(--bw-font-family)",
9922
- }, children: [formatCurrency(eventDetails.price), " pro Person"] })] }), jsxRuntime.jsxs("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between" }, children: [jsxRuntime.jsxs("span", { style: {
9936
+ }, children: formatTime(eventDetails.startTime, "Europe/Berlin", "de") })] }), jsxRuntime.jsxs("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between" }, children: [jsxRuntime.jsxs("span", { style: {
9923
9937
  color: "var(--bw-text-muted)",
9924
9938
  fontFamily: "var(--bw-font-family)",
9925
9939
  display: "flex",
@@ -9929,7 +9943,17 @@ function BookingForm({ config, eventDetails, stripePromise, onSuccess, onError,
9929
9943
  color: "var(--bw-text-color)",
9930
9944
  fontWeight: "500",
9931
9945
  fontFamily: "var(--bw-font-family)",
9932
- }, children: [eventDetails.durationDays, " Tag", eventDetails.durationDays > 1 ? "e" : ""] })] })] })] }), jsxRuntime.jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "var(--bw-spacing-large)" }, children: [jsxRuntime.jsxs("form", { style: { display: "flex", flexDirection: "column", gap: "var(--bw-spacing-large)" }, children: [jsxRuntime.jsxs("div", { style: {
9946
+ }, children: [eventDetails.durationDays, " Tag", eventDetails.durationDays > 1 ? "e" : ""] })] }), jsxRuntime.jsxs("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between" }, children: [jsxRuntime.jsxs("span", { style: {
9947
+ color: "var(--bw-text-muted)",
9948
+ fontFamily: "var(--bw-font-family)",
9949
+ display: "flex",
9950
+ alignItems: "center",
9951
+ gap: "4px",
9952
+ }, children: [jsxRuntime.jsx(IconMoney, { size: 20, color: "var(--bw-highlight-color)" }), " Preis:"] }), jsxRuntime.jsxs("span", { style: {
9953
+ color: "var(--bw-text-color)",
9954
+ fontWeight: "500",
9955
+ fontFamily: "var(--bw-font-family)",
9956
+ }, children: [formatCurrency(eventDetails.price), " pro Person"] })] })] })] }), jsxRuntime.jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "var(--bw-spacing-large)" }, children: [jsxRuntime.jsxs("form", { style: { display: "flex", flexDirection: "column", gap: "var(--bw-spacing-large)" }, children: [jsxRuntime.jsxs("div", { style: {
9933
9957
  backgroundColor: "var(--bw-surface-color)",
9934
9958
  border: `1px solid var(--bw-border-color)`,
9935
9959
  backdropFilter: "blur(4px)",
@@ -10086,9 +10110,10 @@ function BookingForm({ config, eventDetails, stripePromise, onSuccess, onError,
10086
10110
  height: "20px",
10087
10111
  border: "1px solid var(--bw-border-color)",
10088
10112
  accentColor: "var(--bw-highlight-color)",
10089
- backgroundColor: form.getValues("acceptTerms") === true
10090
- ? "var(--bw-highlight-color)"
10091
- : "var(--bw-surface-color)",
10113
+ cursor: "pointer",
10114
+ appearance: "checkbox",
10115
+ WebkitAppearance: "checkbox",
10116
+ MozAppearance: "checkbox",
10092
10117
  } }), jsxRuntime.jsxs("label", { htmlFor: "acceptTerms", style: {
10093
10118
  fontSize: "var(--bw-font-size)",
10094
10119
  color: "var(--bw-text-muted)",
@@ -10098,7 +10123,7 @@ function BookingForm({ config, eventDetails, stripePromise, onSuccess, onError,
10098
10123
  }, children: ["Ich akzeptiere die", " ", jsxRuntime.jsx("a", { href: eventDetails.agbUrl || "/terms", style: {
10099
10124
  color: "var(--bw-highlight-color)",
10100
10125
  textDecoration: "none",
10101
- }, target: "_blank", rel: "noopener noreferrer", children: "Allgemeinen Gesch\u00E4ftsbedingungen" }), "*"] })] }), form.formState.errors.acceptTerms && (jsxRuntime.jsx("p", { style: {
10126
+ }, target: "_blank", rel: "noopener noreferrer", children: "AGBs" }), "*"] })] }), form.formState.errors.acceptTerms && (jsxRuntime.jsx("p", { style: {
10102
10127
  color: "var(--bw-error-color)",
10103
10128
  fontSize: "var(--bw-font-size)",
10104
10129
  marginTop: "8px",
@@ -10251,6 +10276,164 @@ function BookingForm({ config, eventDetails, stripePromise, onSuccess, onError,
10251
10276
  ` })] }) }));
10252
10277
  }
10253
10278
 
10279
+ const BookingSuccessModal = ({ isOpen, onClose, bookingData, eventDetails, formData, config, }) => {
10280
+ if (!isOpen || !bookingData)
10281
+ return null;
10282
+ const booking = bookingData.booking;
10283
+ return (jsxRuntime.jsx(DialogWrapper, { isOpen: isOpen, onClose: onClose, maxWidth: "700px", children: jsxRuntime.jsxs("div", { style: { padding: "var(--bw-spacing-large)" }, children: [jsxRuntime.jsxs("div", { style: {
10284
+ textAlign: "center",
10285
+ marginBottom: "var(--bw-spacing-large)",
10286
+ }, children: [jsxRuntime.jsx("div", { style: {
10287
+ width: "64px",
10288
+ height: "64px",
10289
+ backgroundColor: "var(--bw-success-color, #10B981)",
10290
+ borderRadius: "50%",
10291
+ margin: "0 auto var(--bw-spacing)",
10292
+ display: "flex",
10293
+ alignItems: "center",
10294
+ justifyContent: "center",
10295
+ fontSize: "32px",
10296
+ color: "white",
10297
+ }, children: "\u2713" }), jsxRuntime.jsx("h2", { style: {
10298
+ fontSize: "var(--bw-font-size-xl)",
10299
+ fontWeight: "700",
10300
+ color: "var(--bw-text-color)",
10301
+ margin: "0 0 var(--bw-spacing-small) 0",
10302
+ fontFamily: "var(--bw-font-family)",
10303
+ }, children: "Buchung erfolgreich!" }), jsxRuntime.jsx("p", { style: {
10304
+ color: "var(--bw-text-muted)",
10305
+ fontFamily: "var(--bw-font-family)",
10306
+ margin: 0,
10307
+ }, children: "Deine Buchung wurde erfolgreich abgeschlossen." })] }), jsxRuntime.jsxs("div", { style: {
10308
+ backgroundColor: "var(--bw-surface-color)",
10309
+ border: `1px solid var(--bw-border-color)`,
10310
+ borderRadius: "var(--bw-border-radius)",
10311
+ padding: "var(--bw-spacing)",
10312
+ marginBottom: "var(--bw-spacing-large)",
10313
+ }, children: [jsxRuntime.jsx("h3", { style: {
10314
+ fontSize: "var(--bw-font-size-large)",
10315
+ fontWeight: "600",
10316
+ color: "var(--bw-text-color)",
10317
+ margin: "0 0 var(--bw-spacing) 0",
10318
+ fontFamily: "var(--bw-font-family)",
10319
+ }, children: "Buchungsdetails" }), jsxRuntime.jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "var(--bw-spacing)" }, children: [booking.bookingHash && (jsxRuntime.jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [jsxRuntime.jsx("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "Buchungs-ID:" }), jsxRuntime.jsx("span", { style: {
10320
+ color: "var(--bw-text-color)",
10321
+ fontWeight: "500",
10322
+ fontFamily: "monospace",
10323
+ fontSize: "var(--bw-font-size-small)",
10324
+ backgroundColor: "var(--bw-background-color)",
10325
+ padding: "4px 8px",
10326
+ borderRadius: "var(--bw-border-radius-small)",
10327
+ }, children: booking.bookingHash })] })), jsxRuntime.jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [jsxRuntime.jsx("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "Event:" }), jsxRuntime.jsx("span", { style: {
10328
+ color: "var(--bw-text-color)",
10329
+ fontWeight: "500",
10330
+ fontFamily: "var(--bw-font-family)",
10331
+ textAlign: "right",
10332
+ maxWidth: "60%",
10333
+ }, children: eventDetails.name })] }), jsxRuntime.jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [jsxRuntime.jsx("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "Datum:" }), jsxRuntime.jsx("span", { style: {
10334
+ color: "var(--bw-text-color)",
10335
+ fontWeight: "500",
10336
+ fontFamily: "var(--bw-font-family)",
10337
+ textAlign: "right",
10338
+ maxWidth: "60%",
10339
+ }, children: formatEventDate(eventDetails.startTime) })] }), jsxRuntime.jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [jsxRuntime.jsx("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "Uhrzeit:" }), jsxRuntime.jsx("span", { style: {
10340
+ color: "var(--bw-text-color)",
10341
+ fontWeight: "500",
10342
+ fontFamily: "var(--bw-font-family)",
10343
+ textAlign: "right",
10344
+ maxWidth: "60%",
10345
+ }, children: formatTime(eventDetails.startTime, "Europe/Berlin", "de") })] }), jsxRuntime.jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [jsxRuntime.jsx("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "Teilnehmer:" }), jsxRuntime.jsx("span", { style: {
10346
+ color: "var(--bw-text-color)",
10347
+ fontWeight: "500",
10348
+ fontFamily: "var(--bw-font-family)",
10349
+ }, children: booking.participantCount })] }), jsxRuntime.jsxs("div", { style: {
10350
+ display: "flex",
10351
+ justifyContent: "space-between",
10352
+ alignItems: "center",
10353
+ borderTop: `1px solid var(--bw-border-color)`,
10354
+ paddingTop: "var(--bw-spacing)",
10355
+ marginTop: "var(--bw-spacing)",
10356
+ }, children: [jsxRuntime.jsx("span", { style: {
10357
+ color: "var(--bw-text-color)",
10358
+ fontWeight: "600",
10359
+ fontFamily: "var(--bw-font-family)",
10360
+ }, children: "Gesamtbetrag:" }), jsxRuntime.jsx("span", { style: {
10361
+ color: "var(--bw-text-color)",
10362
+ fontWeight: "600",
10363
+ fontSize: "var(--bw-font-size-large)",
10364
+ fontFamily: "var(--bw-font-family)",
10365
+ }, children: formatCurrency(booking.total) })] })] })] }), formData.participants && formData.participants.length > 0 && (jsxRuntime.jsxs("div", { style: {
10366
+ border: `1px solid var(--bw-border-color)`,
10367
+ borderRadius: "var(--bw-border-radius)",
10368
+ padding: "var(--bw-spacing)",
10369
+ marginBottom: "var(--bw-spacing-large)",
10370
+ }, children: [jsxRuntime.jsx("h3", { style: {
10371
+ fontSize: "var(--bw-font-size-large)",
10372
+ fontWeight: "600",
10373
+ color: "var(--bw-text-color)",
10374
+ margin: "0 0 var(--bw-spacing) 0",
10375
+ fontFamily: "var(--bw-font-family)",
10376
+ }, children: "Teilnehmer" }), jsxRuntime.jsx("div", { style: { display: "flex", flexDirection: "column", gap: "var(--bw-spacing-small)" }, children: formData.participants
10377
+ .filter((p) => p.name.trim())
10378
+ .map((participant, index) => (jsxRuntime.jsxs("div", { style: {
10379
+ display: "flex",
10380
+ justifyContent: "space-between",
10381
+ alignItems: "center",
10382
+ padding: "var(--bw-spacing-small)",
10383
+ borderRadius: "var(--bw-border-radius-small)",
10384
+ }, children: [jsxRuntime.jsx("span", { style: {
10385
+ color: "var(--bw-text-color)",
10386
+ fontFamily: "var(--bw-font-family)",
10387
+ }, children: participant.name }), participant.age && (jsxRuntime.jsxs("span", { style: {
10388
+ color: "var(--bw-text-muted)",
10389
+ fontSize: "var(--bw-font-size-small)",
10390
+ fontFamily: "var(--bw-font-family)",
10391
+ }, children: [participant.age, " Jahre"] }))] }, index))) })] })), jsxRuntime.jsxs("div", { style: {
10392
+ backgroundColor: "var(--bw-surface-color)",
10393
+ border: `1px solid var(--bw-border-color)`,
10394
+ borderRadius: "var(--bw-border-radius)",
10395
+ padding: "var(--bw-spacing)",
10396
+ marginBottom: "var(--bw-spacing-large)",
10397
+ }, children: [jsxRuntime.jsx("h3", { style: {
10398
+ fontSize: "var(--bw-font-size-large)",
10399
+ fontWeight: "600",
10400
+ color: "var(--bw-text-color)",
10401
+ margin: "0 0 var(--bw-spacing) 0",
10402
+ fontFamily: "var(--bw-font-family)",
10403
+ }, children: "Kontaktdaten" }), jsxRuntime.jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "var(--bw-spacing-small)" }, children: [jsxRuntime.jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [jsxRuntime.jsx("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "Name:" }), jsxRuntime.jsx("span", { style: { color: "var(--bw-text-color)", fontFamily: "var(--bw-font-family)" }, children: formData.customerName })] }), jsxRuntime.jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [jsxRuntime.jsx("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "E-Mail:" }), jsxRuntime.jsx("span", { style: { color: "var(--bw-text-color)", fontFamily: "var(--bw-font-family)" }, children: formData.customerEmail })] }), formData.customerPhone && (jsxRuntime.jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [jsxRuntime.jsx("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "Telefon:" }), jsxRuntime.jsx("span", { style: { color: "var(--bw-text-color)", fontFamily: "var(--bw-font-family)" }, children: formData.customerPhone })] }))] })] }), jsxRuntime.jsxs("div", { style: {
10404
+ backgroundColor: "var(--bw-surface-muted-bg, rgba(59, 130, 246, 0.05))",
10405
+ border: `1px solid var(--bw-border-color)`,
10406
+ borderRadius: "var(--bw-border-radius)",
10407
+ padding: "var(--bw-spacing)",
10408
+ marginBottom: "var(--bw-spacing-large)",
10409
+ textAlign: "center",
10410
+ }, children: [jsxRuntime.jsx("div", { style: {
10411
+ color: "var(--bw-highlight-color)",
10412
+ fontSize: "24px",
10413
+ marginBottom: "var(--bw-spacing-small)",
10414
+ }, children: "\uD83D\uDCE7" }), jsxRuntime.jsxs("p", { style: {
10415
+ color: "var(--bw-text-muted)",
10416
+ margin: 0,
10417
+ fontFamily: "var(--bw-font-family)",
10418
+ fontSize: "var(--bw-font-size-small)",
10419
+ }, children: ["Eine Best\u00E4tigungs-E-Mail wird in K\u00FCrze an ", formData.customerEmail, " gesendet."] })] }), jsxRuntime.jsx("div", { style: { textAlign: "center" }, children: jsxRuntime.jsx("button", { onClick: onClose, style: {
10420
+ backgroundColor: "var(--bw-highlight-color)",
10421
+ color: "white",
10422
+ padding: "12px 32px",
10423
+ border: "none",
10424
+ borderRadius: "var(--bw-border-radius)",
10425
+ fontSize: "var(--bw-font-size)",
10426
+ fontWeight: "600",
10427
+ cursor: "pointer",
10428
+ fontFamily: "var(--bw-font-family)",
10429
+ transition: "all 0.2s ease",
10430
+ }, onMouseEnter: (e) => {
10431
+ e.currentTarget.style.opacity = "0.9";
10432
+ }, onMouseLeave: (e) => {
10433
+ e.currentTarget.style.opacity = "1";
10434
+ }, children: "Schlie\u00DFen" }) })] }) }));
10435
+ };
10436
+
10254
10437
  const months = [
10255
10438
  "Januar",
10256
10439
  "Februar",
@@ -11328,198 +11511,6 @@ function NextEventsPreview({ events, onEventSelect, onShowAll, showAllButtonText
11328
11511
  }
11329
11512
 
11330
11513
  // Predefined themes & Style Provider have been moved to ../styles/StyleProvider.tsx
11331
- // Success Modal Component
11332
- const BookingSuccessModal = ({ isOpen, onClose, bookingData, eventDetails, formData, config, }) => {
11333
- if (!isOpen || !bookingData)
11334
- return null;
11335
- const booking = bookingData.booking;
11336
- return (jsxRuntime.jsx("div", { style: {
11337
- position: "fixed",
11338
- top: 0,
11339
- left: 0,
11340
- right: 0,
11341
- bottom: 0,
11342
- backgroundColor: "rgba(0, 0, 0, 0.5)",
11343
- zIndex: 10000,
11344
- display: "flex",
11345
- alignItems: "center",
11346
- justifyContent: "center",
11347
- padding: "var(--bw-spacing)",
11348
- }, children: jsxRuntime.jsxs("div", { style: {
11349
- backgroundColor: "var(--bw-background-color)",
11350
- borderRadius: "var(--bw-border-radius)",
11351
- padding: "var(--bw-spacing-large)",
11352
- maxWidth: "500px",
11353
- width: "100%",
11354
- maxHeight: "90vh",
11355
- overflow: "auto",
11356
- position: "relative",
11357
- border: `1px solid var(--bw-border-color)`,
11358
- boxShadow: "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)",
11359
- }, children: [jsxRuntime.jsx("button", { onClick: onClose, style: {
11360
- position: "absolute",
11361
- top: "var(--bw-spacing)",
11362
- right: "var(--bw-spacing)",
11363
- background: "none",
11364
- border: "none",
11365
- fontSize: "24px",
11366
- cursor: "pointer",
11367
- color: "var(--bw-text-muted)",
11368
- width: "32px",
11369
- height: "32px",
11370
- display: "flex",
11371
- alignItems: "center",
11372
- justifyContent: "center",
11373
- borderRadius: "var(--bw-border-radius-small)",
11374
- }, children: "\u00D7" }), jsxRuntime.jsxs("div", { style: {
11375
- textAlign: "center",
11376
- marginBottom: "var(--bw-spacing-large)",
11377
- }, children: [jsxRuntime.jsx("div", { style: {
11378
- width: "64px",
11379
- height: "64px",
11380
- backgroundColor: "var(--bw-success-color, #10B981)",
11381
- borderRadius: "50%",
11382
- margin: "0 auto var(--bw-spacing)",
11383
- display: "flex",
11384
- alignItems: "center",
11385
- justifyContent: "center",
11386
- fontSize: "32px",
11387
- color: "white",
11388
- }, children: "\u2713" }), jsxRuntime.jsx("h2", { style: {
11389
- fontSize: "var(--bw-font-size-xl)",
11390
- fontWeight: "700",
11391
- color: "var(--bw-text-color)",
11392
- margin: "0 0 var(--bw-spacing-small) 0",
11393
- fontFamily: "var(--bw-font-family)",
11394
- }, children: "Buchung erfolgreich!" }), jsxRuntime.jsx("p", { style: {
11395
- color: "var(--bw-text-muted)",
11396
- fontFamily: "var(--bw-font-family)",
11397
- margin: 0,
11398
- }, children: "Deine Buchung wurde erfolgreich abgeschlossen." })] }), jsxRuntime.jsxs("div", { style: {
11399
- backgroundColor: "var(--bw-surface-color)",
11400
- border: `1px solid var(--bw-border-color)`,
11401
- borderRadius: "var(--bw-border-radius)",
11402
- padding: "var(--bw-spacing)",
11403
- marginBottom: "var(--bw-spacing-large)",
11404
- }, children: [jsxRuntime.jsx("h3", { style: {
11405
- fontSize: "var(--bw-font-size-large)",
11406
- fontWeight: "600",
11407
- color: "var(--bw-text-color)",
11408
- margin: "0 0 var(--bw-spacing) 0",
11409
- fontFamily: "var(--bw-font-family)",
11410
- }, children: "Buchungsdetails" }), jsxRuntime.jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "var(--bw-spacing)" }, children: [booking.bookingHash && (jsxRuntime.jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [jsxRuntime.jsx("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "Buchungs-ID:" }), jsxRuntime.jsx("span", { style: {
11411
- color: "var(--bw-text-color)",
11412
- fontWeight: "500",
11413
- fontFamily: "monospace",
11414
- fontSize: "var(--bw-font-size-small)",
11415
- backgroundColor: "var(--bw-background-color)",
11416
- padding: "4px 8px",
11417
- borderRadius: "var(--bw-border-radius-small)",
11418
- }, children: booking.bookingHash })] })), jsxRuntime.jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [jsxRuntime.jsx("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "Event:" }), jsxRuntime.jsx("span", { style: {
11419
- color: "var(--bw-text-color)",
11420
- fontWeight: "500",
11421
- fontFamily: "var(--bw-font-family)",
11422
- textAlign: "right",
11423
- maxWidth: "60%",
11424
- }, children: eventDetails.name })] }), jsxRuntime.jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [jsxRuntime.jsx("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "Datum:" }), jsxRuntime.jsx("span", { style: {
11425
- color: "var(--bw-text-color)",
11426
- fontWeight: "500",
11427
- fontFamily: "var(--bw-font-family)",
11428
- textAlign: "right",
11429
- maxWidth: "60%",
11430
- }, children: formatDate(eventDetails.startTime) })] }), jsxRuntime.jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [jsxRuntime.jsx("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "Teilnehmer:" }), jsxRuntime.jsx("span", { style: {
11431
- color: "var(--bw-text-color)",
11432
- fontWeight: "500",
11433
- fontFamily: "var(--bw-font-family)",
11434
- }, children: booking.participantCount })] }), jsxRuntime.jsxs("div", { style: {
11435
- display: "flex",
11436
- justifyContent: "space-between",
11437
- alignItems: "center",
11438
- borderTop: `1px solid var(--bw-border-color)`,
11439
- paddingTop: "var(--bw-spacing)",
11440
- marginTop: "var(--bw-spacing)",
11441
- }, children: [jsxRuntime.jsx("span", { style: {
11442
- color: "var(--bw-text-color)",
11443
- fontWeight: "600",
11444
- fontFamily: "var(--bw-font-family)",
11445
- }, children: "Gesamtbetrag:" }), jsxRuntime.jsx("span", { style: {
11446
- color: "var(--bw-text-color)",
11447
- fontWeight: "600",
11448
- fontSize: "var(--bw-font-size-large)",
11449
- fontFamily: "var(--bw-font-family)",
11450
- }, children: formatCurrency(booking.total) })] })] })] }), formData.participants && formData.participants.length > 0 && (jsxRuntime.jsxs("div", { style: {
11451
- backgroundColor: "var(--bw-surface-color)",
11452
- border: `1px solid var(--bw-border-color)`,
11453
- borderRadius: "var(--bw-border-radius)",
11454
- padding: "var(--bw-spacing)",
11455
- marginBottom: "var(--bw-spacing-large)",
11456
- }, children: [jsxRuntime.jsx("h3", { style: {
11457
- fontSize: "var(--bw-font-size-large)",
11458
- fontWeight: "600",
11459
- color: "var(--bw-text-color)",
11460
- margin: "0 0 var(--bw-spacing) 0",
11461
- fontFamily: "var(--bw-font-family)",
11462
- }, children: "Teilnehmer" }), jsxRuntime.jsx("div", { style: { display: "flex", flexDirection: "column", gap: "var(--bw-spacing-small)" }, children: formData.participants
11463
- .filter((p) => p.name.trim())
11464
- .map((participant, index) => (jsxRuntime.jsxs("div", { style: {
11465
- display: "flex",
11466
- justifyContent: "space-between",
11467
- alignItems: "center",
11468
- padding: "var(--bw-spacing-small)",
11469
- backgroundColor: "var(--bw-background-color)",
11470
- borderRadius: "var(--bw-border-radius-small)",
11471
- }, children: [jsxRuntime.jsx("span", { style: {
11472
- color: "var(--bw-text-color)",
11473
- fontFamily: "var(--bw-font-family)",
11474
- }, children: participant.name }), participant.age && (jsxRuntime.jsxs("span", { style: {
11475
- color: "var(--bw-text-muted)",
11476
- fontSize: "var(--bw-font-size-small)",
11477
- fontFamily: "var(--bw-font-family)",
11478
- }, children: [participant.age, " Jahre"] }))] }, index))) })] })), jsxRuntime.jsxs("div", { style: {
11479
- backgroundColor: "var(--bw-surface-color)",
11480
- border: `1px solid var(--bw-border-color)`,
11481
- borderRadius: "var(--bw-border-radius)",
11482
- padding: "var(--bw-spacing)",
11483
- marginBottom: "var(--bw-spacing-large)",
11484
- }, children: [jsxRuntime.jsx("h3", { style: {
11485
- fontSize: "var(--bw-font-size-large)",
11486
- fontWeight: "600",
11487
- color: "var(--bw-text-color)",
11488
- margin: "0 0 var(--bw-spacing) 0",
11489
- fontFamily: "var(--bw-font-family)",
11490
- }, children: "Kontaktdaten" }), jsxRuntime.jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "var(--bw-spacing-small)" }, children: [jsxRuntime.jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [jsxRuntime.jsx("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "Name:" }), jsxRuntime.jsx("span", { style: { color: "var(--bw-text-color)", fontFamily: "var(--bw-font-family)" }, children: formData.customerName })] }), jsxRuntime.jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [jsxRuntime.jsx("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "E-Mail:" }), jsxRuntime.jsx("span", { style: { color: "var(--bw-text-color)", fontFamily: "var(--bw-font-family)" }, children: formData.customerEmail })] }), formData.customerPhone && (jsxRuntime.jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [jsxRuntime.jsx("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "Telefon:" }), jsxRuntime.jsx("span", { style: { color: "var(--bw-text-color)", fontFamily: "var(--bw-font-family)" }, children: formData.customerPhone })] }))] })] }), jsxRuntime.jsxs("div", { style: {
11491
- backgroundColor: "var(--bw-surface-muted-bg, rgba(59, 130, 246, 0.05))",
11492
- border: `1px solid var(--bw-border-color)`,
11493
- borderRadius: "var(--bw-border-radius)",
11494
- padding: "var(--bw-spacing)",
11495
- marginBottom: "var(--bw-spacing-large)",
11496
- textAlign: "center",
11497
- }, children: [jsxRuntime.jsx("div", { style: {
11498
- color: "var(--bw-highlight-color)",
11499
- fontSize: "24px",
11500
- marginBottom: "var(--bw-spacing-small)",
11501
- }, children: "\uD83D\uDCE7" }), jsxRuntime.jsxs("p", { style: {
11502
- color: "var(--bw-text-muted)",
11503
- margin: 0,
11504
- fontFamily: "var(--bw-font-family)",
11505
- fontSize: "var(--bw-font-size-small)",
11506
- }, children: ["Eine Best\u00E4tigungs-E-Mail wird in K\u00FCrze an ", formData.customerEmail, " gesendet."] })] }), jsxRuntime.jsx("div", { style: { textAlign: "center" }, children: jsxRuntime.jsx("button", { onClick: onClose, style: {
11507
- backgroundColor: "var(--bw-highlight-color)",
11508
- color: "white",
11509
- padding: "12px 32px",
11510
- border: "none",
11511
- borderRadius: "var(--bw-border-radius)",
11512
- fontSize: "var(--bw-font-size)",
11513
- fontWeight: "600",
11514
- cursor: "pointer",
11515
- fontFamily: "var(--bw-font-family)",
11516
- transition: "all 0.2s ease",
11517
- }, onMouseEnter: (e) => {
11518
- e.currentTarget.style.opacity = "0.9";
11519
- }, onMouseLeave: (e) => {
11520
- e.currentTarget.style.opacity = "1";
11521
- }, children: "Schlie\u00DFen" }) })] }) }));
11522
- };
11523
11514
  // Main widget component
11524
11515
  function UniversalBookingWidget({ config: baseConfig }) {
11525
11516
  // Apply URL parameter inference
@@ -11549,7 +11540,6 @@ function UniversalBookingWidget({ config: baseConfig }) {
11549
11540
  // Booking flow state
11550
11541
  const [eventDetails, setEventDetails] = React__default.useState(null);
11551
11542
  const [stripePromise, setStripePromise] = React__default.useState(null);
11552
- const [clientSecret, setClientSecret] = React__default.useState(null);
11553
11543
  // SEPARATED LOADING STATES
11554
11544
  const [isLoading, setIsLoading] = React__default.useState(true); // Only for initial widget load
11555
11545
  const [isLoadingEventInstances, setIsLoadingEventInstances] = React__default.useState(false); // For loading event instances in sidebar
@@ -12010,16 +12000,6 @@ function UniversalBookingWidget({ config: baseConfig }) {
12010
12000
  fontFamily: "var(--bw-font-family)",
12011
12001
  }, children: "Falls das Problem weiterhin besteht, kontaktiere bitte den Support." })] }) }) }));
12012
12002
  }
12013
- // Success state
12014
- if (isSuccess) {
12015
- return (jsxRuntime.jsx(StyleProvider, { config: config, children: jsxRuntime.jsx(BookingSuccessModal, { isOpen: isSuccess, onClose: () => {
12016
- setIsSuccess(false);
12017
- setCurrentStep("eventTypes");
12018
- // Reset lazy loading flags
12019
- setShouldRenderInstanceSelection(false);
12020
- setShouldRenderBookingForm(false);
12021
- }, bookingData: successData, eventDetails: eventDetails, formData: successData.formData, config: config }) }));
12022
- }
12023
12003
  // Main view based on view mode
12024
12004
  if (viewMode === "next-events" && showingPreview) {
12025
12005
  // Next events preview mode
@@ -12035,17 +12015,31 @@ function UniversalBookingWidget({ config: baseConfig }) {
12035
12015
  setCurrentStep("eventTypes");
12036
12016
  setShowingPreview(true);
12037
12017
  setEventDetails(null);
12038
- }, systemConfig: systemConfig }))] }));
12018
+ }, systemConfig: systemConfig })), jsxRuntime.jsx(BookingSuccessModal, { isOpen: isSuccess, onClose: () => {
12019
+ setIsSuccess(false);
12020
+ setCurrentStep("eventTypes");
12021
+ setShowingPreview(true);
12022
+ // Reset lazy loading flags
12023
+ setShouldRenderInstanceSelection(false);
12024
+ setShouldRenderBookingForm(false);
12025
+ }, bookingData: successData, eventDetails: eventDetails, formData: successData?.formData, config: config })] }));
12039
12026
  }
12040
12027
  if (viewMode === "next-events" && !showingPreview && currentStep === "eventInstances") {
12041
12028
  // Show all events for the single event type
12042
- return (jsxRuntime.jsx(StyleProvider, { config: config, children: shouldRenderInstanceSelection && (jsxRuntime.jsx(EventInstanceSelection, { eventInstances: eventInstances, selectedEventType: selectedEventType, onEventInstanceSelect: handleEventInstanceSelect, onBackToEventTypes: () => {
12043
- setShowingPreview(true);
12044
- setCurrentStep("eventTypes");
12045
- }, isOpen: currentStep === "eventInstances", onClose: () => {
12046
- setShowingPreview(true);
12047
- setCurrentStep("eventTypes");
12048
- }, isLoadingEventInstances: isLoadingEventInstances, isLoadingEventDetails: isLoadingEventDetails })) }));
12029
+ return (jsxRuntime.jsxs(StyleProvider, { config: config, children: [shouldRenderInstanceSelection && (jsxRuntime.jsx(EventInstanceSelection, { eventInstances: eventInstances, selectedEventType: selectedEventType, onEventInstanceSelect: handleEventInstanceSelect, onBackToEventTypes: () => {
12030
+ setShowingPreview(true);
12031
+ setCurrentStep("eventTypes");
12032
+ }, isOpen: currentStep === "eventInstances", onClose: () => {
12033
+ setShowingPreview(true);
12034
+ setCurrentStep("eventTypes");
12035
+ }, isLoadingEventInstances: isLoadingEventInstances, isLoadingEventDetails: isLoadingEventDetails })), jsxRuntime.jsx(BookingSuccessModal, { isOpen: isSuccess, onClose: () => {
12036
+ setIsSuccess(false);
12037
+ setCurrentStep("eventTypes");
12038
+ setShowingPreview(true);
12039
+ // Reset lazy loading flags
12040
+ setShouldRenderInstanceSelection(false);
12041
+ setShouldRenderBookingForm(false);
12042
+ }, bookingData: successData, eventDetails: eventDetails, formData: successData?.formData, config: config })] }));
12049
12043
  }
12050
12044
  if (viewMode === "button" && (isSingleEventTypeMode || isDirectInstanceMode)) {
12051
12045
  // Button mode - show button that opens sidebar/booking directly
@@ -12075,7 +12069,14 @@ function UniversalBookingWidget({ config: baseConfig }) {
12075
12069
  setShouldRenderInstanceSelection(true);
12076
12070
  }
12077
12071
  }, children: config.buttonText ||
12078
- (isDirectInstanceMode ? "Jetzt buchen" : "Jetzt Termin auswählen") }), shouldRenderInstanceSelection && (jsxRuntime.jsx(EventInstanceSelection, { eventInstances: eventInstances, selectedEventType: selectedEventType, onEventInstanceSelect: handleEventInstanceSelect, onBackToEventTypes: () => setSidebarOpen(false), isOpen: sidebarOpen, onClose: () => setSidebarOpen(false), isLoadingEventInstances: isLoadingEventInstances, isLoadingEventDetails: isLoadingEventDetails })), shouldRenderBookingForm && eventDetails && (jsxRuntime.jsx(BookingForm, { config: config, eventDetails: eventDetails, stripePromise: stripePromise, onSuccess: handleBookingSuccess, onError: handleBookingError, onBackToEventInstances: () => setCurrentStep(isDirectInstanceMode ? "eventTypes" : "eventInstances"), onBackToEventTypes: () => setSidebarOpen(false), selectedEventType: selectedEventType, selectedEventInstance: selectedEventInstance, isOpen: currentStep === "booking" && !!eventDetails, onClose: () => setCurrentStep(isDirectInstanceMode ? "eventTypes" : "eventInstances"), systemConfig: systemConfig }))] }) }));
12072
+ (isDirectInstanceMode ? "Jetzt buchen" : "Jetzt Termin auswählen") }), shouldRenderInstanceSelection && (jsxRuntime.jsx(EventInstanceSelection, { eventInstances: eventInstances, selectedEventType: selectedEventType, onEventInstanceSelect: handleEventInstanceSelect, onBackToEventTypes: () => setSidebarOpen(false), isOpen: sidebarOpen, onClose: () => setSidebarOpen(false), isLoadingEventInstances: isLoadingEventInstances, isLoadingEventDetails: isLoadingEventDetails })), shouldRenderBookingForm && eventDetails && (jsxRuntime.jsx(BookingForm, { config: config, eventDetails: eventDetails, stripePromise: stripePromise, onSuccess: handleBookingSuccess, onError: handleBookingError, onBackToEventInstances: () => setCurrentStep(isDirectInstanceMode ? "eventTypes" : "eventInstances"), onBackToEventTypes: () => setSidebarOpen(false), selectedEventType: selectedEventType, selectedEventInstance: selectedEventInstance, isOpen: currentStep === "booking" && !!eventDetails, onClose: () => setCurrentStep(isDirectInstanceMode ? "eventTypes" : "eventInstances"), systemConfig: systemConfig })), jsxRuntime.jsx(BookingSuccessModal, { isOpen: isSuccess, onClose: () => {
12073
+ setIsSuccess(false);
12074
+ setCurrentStep("eventTypes");
12075
+ setSidebarOpen(false);
12076
+ // Reset lazy loading flags
12077
+ setShouldRenderInstanceSelection(false);
12078
+ setShouldRenderBookingForm(false);
12079
+ }, bookingData: successData, eventDetails: eventDetails, formData: successData?.formData, config: config })] }) }));
12079
12080
  }
12080
12081
  // Cards mode (default) - show event type selection
12081
12082
  const cardsView = (jsxRuntime.jsx(EventTypeSelection, { eventTypes: eventTypes, onEventTypeSelect: handleEventTypeSelect, isLoading: isLoading, skeletonCount: getSkeletonCount() }));
@@ -12108,7 +12109,13 @@ function UniversalBookingWidget({ config: baseConfig }) {
12108
12109
  };
12109
12110
  };
12110
12111
  const backHandlers = getBackHandlers();
12111
- return (jsxRuntime.jsxs(StyleProvider, { config: config, children: [cardsView, shouldRenderInstanceSelection && (jsxRuntime.jsx(EventInstanceSelection, { eventInstances: eventInstances, selectedEventType: selectedEventType, onEventInstanceSelect: handleEventInstanceSelect, onBackToEventTypes: handleBackToEventTypes, isOpen: currentStep === "eventInstances", onClose: handleBackToEventTypes, isLoadingEventInstances: isLoadingEventInstances, isLoadingEventDetails: isLoadingEventDetails })), shouldRenderBookingForm && eventDetails && (jsxRuntime.jsx(BookingForm, { config: config, eventDetails: eventDetails, stripePromise: stripePromise, onSuccess: handleBookingSuccess, onError: handleBookingError, onBackToEventInstances: backHandlers.onBackToEventInstances, onBackToEventTypes: backHandlers.onBackToEventTypes, selectedEventType: selectedEventType, selectedEventInstance: selectedEventInstance, isOpen: currentStep === "booking" && !!eventDetails, onClose: backHandlers.onClose, systemConfig: systemConfig }))] }));
12112
+ return (jsxRuntime.jsxs(StyleProvider, { config: config, children: [cardsView, shouldRenderInstanceSelection && (jsxRuntime.jsx(EventInstanceSelection, { eventInstances: eventInstances, selectedEventType: selectedEventType, onEventInstanceSelect: handleEventInstanceSelect, onBackToEventTypes: handleBackToEventTypes, isOpen: currentStep === "eventInstances", onClose: handleBackToEventTypes, isLoadingEventInstances: isLoadingEventInstances, isLoadingEventDetails: isLoadingEventDetails })), shouldRenderBookingForm && eventDetails && (jsxRuntime.jsx(BookingForm, { config: config, eventDetails: eventDetails, stripePromise: stripePromise, onSuccess: handleBookingSuccess, onError: handleBookingError, onBackToEventInstances: backHandlers.onBackToEventInstances, onBackToEventTypes: backHandlers.onBackToEventTypes, selectedEventType: selectedEventType, selectedEventInstance: selectedEventInstance, isOpen: currentStep === "booking" && !!eventDetails, onClose: backHandlers.onClose, systemConfig: systemConfig })), jsxRuntime.jsx(BookingSuccessModal, { isOpen: isSuccess, onClose: () => {
12113
+ setIsSuccess(false);
12114
+ setCurrentStep("eventTypes");
12115
+ // Reset lazy loading flags
12116
+ setShouldRenderInstanceSelection(false);
12117
+ setShouldRenderBookingForm(false);
12118
+ }, bookingData: successData, eventDetails: eventDetails, formData: successData?.formData, config: config })] }));
12112
12119
  }
12113
12120
 
12114
12121
  // Export init function for vanilla JS usage