@bigz-app/booking-widget 0.1.23 → 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",
6903
+ fontFamily: "var(--bw-font-family)",
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",
6924
6910
  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: {
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,
@@ -7637,153 +7650,154 @@ function EventTypeSelection({ eventTypes, onEventTypeSelect, isLoading = false,
7637
7650
  display: "flex",
7638
7651
  flexDirection: "column",
7639
7652
  justifyContent: "space-between",
7640
- }, children: [jsxRuntime.jsx("h2", { className: "bw-event-type-title", style: {
7641
- fontSize: "clamp(1.1rem, 2.5vw, 24px)",
7642
- fontWeight: "700",
7643
- color: "var(--bw-text-color)",
7644
- lineHeight: "1.3",
7645
- fontFamily: "var(--bw-font-family)",
7646
- margin: "0 0 12px 0",
7647
- }, children: eventType.name }), jsxRuntime.jsxs("div", { style: {
7648
- display: "flex",
7649
- alignItems: "center",
7650
- gap: "6px",
7651
- }, children: [jsxRuntime.jsx(IconCalendar, { size: 17, color: "var(--bw-text-color)" }), jsxRuntime.jsx("span", { style: {
7652
- fontFamily: "var(--bw-font-family)",
7653
- fontSize: "14px",
7654
- color: "var(--bw-text-muted)",
7655
- }, children: eventType.nextAvailableDate
7656
- ? `Freie Plätze ab ${formatDate(eventType.nextAvailableDate)}`
7657
- : "Keine Termine frei" })] }), jsxRuntime.jsx("div", { style: { cursor: "pointer" }, onClick: (e) => {
7658
- e.stopPropagation();
7659
- handleShowDetails(eventType);
7660
- }, children: eventType.highlights && eventType.highlights.length > 0 ? (
7661
- // Show highlights as list
7662
- jsxRuntime.jsx("div", { className: "bw-event-type-highlights", style: {
7663
- margin: "10px 0px 10px 0px",
7664
- minHeight: "128px",
7665
- fontSize: "clamp(0.95rem, 2vw, 16px)",
7666
- }, children: jsxRuntime.jsx("ul", { style: {
7667
- listStyle: "none",
7668
- display: "-webkit-box",
7669
- WebkitLineClamp: 5,
7670
- WebkitBoxOrient: "vertical",
7671
- maxHeight: "128px",
7672
- padding: "0",
7673
- margin: "0",
7674
- flexDirection: "column",
7675
- gap: "3px",
7676
- position: "relative",
7677
- }, children: eventType.highlights
7678
- .filter((highlight) => highlight.trim())
7679
- .map((highlight, index) => (jsxRuntime.jsxs("li", { style: {
7680
- display: "flex",
7681
- alignItems: "flex-start",
7682
- gap: "8px",
7683
- fontFamily: "var(--bw-font-family)",
7684
- lineHeight: "1.55",
7685
- color: "var(--bw-text-muted)",
7686
- position: "relative",
7687
- maxWidth: "100%",
7688
- }, children: [jsxRuntime.jsx("div", { style: { marginTop: "4px", flexShrink: 0 }, children: jsxRuntime.jsx(IconCheck, { size: 16, color: "var(--bw-success-color)" }) }), jsxRuntime.jsx("span", { style: {
7689
- textOverflow: "ellipsis",
7690
- overflow: "hidden",
7691
- whiteSpace: "nowrap",
7692
- flex: "1",
7693
- }, children: highlight.trim() })] }, index))) }) })) : eventType.description ? (jsxRuntime.jsx("div", { className: "bw-event-type-desc", style: {
7694
- color: "var(--bw-text-muted)",
7695
- fontSize: "clamp(0.95rem, 2vw, 16px)",
7696
- lineHeight: "1.6",
7697
- fontFamily: "var(--bw-font-family)",
7698
- margin: "10px 0 10px 0",
7699
- minHeight: "128px",
7700
- maxHeight: "128px",
7701
- overflow: "hidden",
7702
- textAlign: "left",
7703
- }, children: jsxRuntime.jsx("div", { className: "bw-event-type-markdown", style: {
7704
- display: "-webkit-box",
7705
- WebkitLineClamp: 5,
7706
- WebkitBoxOrient: "vertical",
7707
- overflow: "hidden",
7708
- }, children: Markdown({
7709
- children: preprocessMarkdown(eventType.description),
7710
- }) }) })) : (jsxRuntime.jsx("div", { className: "bw-event-type-desc", style: {
7711
- color: "var(--bw-text-muted)",
7712
- fontSize: "clamp(0.95rem, 2vw, 16px)",
7713
- lineHeight: "1.6",
7714
- fontFamily: "var(--bw-font-family)",
7715
- margin: "10px 0 10px 0",
7716
- minHeight: "128px",
7717
- maxHeight: "128px",
7718
- overflow: "hidden",
7719
- textAlign: "left",
7720
- }, children: "\u00A0" })) }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { className: "bw-event-type-price", style: {
7721
- fontWeight: "700",
7722
- color: "var(--bw-text-color)",
7723
- fontFamily: "var(--bw-font-family)",
7724
- textAlign: "right",
7725
- }, children: eventType.groupedDurations.length > 1 ? (jsxRuntime.jsx("span", { children: eventType.groupedDurations })) : (jsxRuntime.jsx("span", { children: eventType.cheapestDurationPerDay % 60 === 0
7726
- ? `${eventType.cheapestDurationPerDay / 60} Stunde${eventType.cheapestDurationPerDay / 60 > 1 ? "n" : ""}`
7727
- : `${eventType.cheapestDurationPerDay} Minuten` })) }), jsxRuntime.jsx("div", { className: "bw-event-type-price", style: {
7728
- fontSize: "clamp(1.72rem, 4vw, 32px)",
7653
+ height: "400px",
7654
+ }, children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("h2", { className: "bw-event-type-title", style: {
7655
+ fontSize: "clamp(1.1rem, 2.5vw, 24px)",
7729
7656
  fontWeight: "700",
7730
7657
  color: "var(--bw-text-color)",
7658
+ lineHeight: "1.3",
7731
7659
  fontFamily: "var(--bw-font-family)",
7732
- textAlign: "right",
7733
- }, children: jsxRuntime.jsxs("span", { children: ["ab ", formatCurrency(eventType.minPrice)] }) })] }), jsxRuntime.jsxs("div", { style: {
7734
- display: "flex",
7735
- justifyContent: "flex-end",
7736
- alignItems: "center",
7737
- marginTop: "10px",
7738
- gap: "12px",
7739
- }, children: [(eventType.description ||
7740
- (eventType.highlights && eventType.highlights.length > 0)) && (jsxRuntime.jsx("button", { onClick: (e) => {
7741
- e.stopPropagation();
7742
- handleShowDetails(eventType);
7743
- }, style: {
7744
- color: "var(--bw-highlight-color)",
7745
- background: "var(--bw-surface-color)",
7746
- padding: "12px 12px",
7747
- borderRadius: "var(--bw-border-radius)",
7748
- fontSize: "clamp(0.8rem, 2vw, 16px)",
7749
- fontWeight: "600",
7750
- fontFamily: "var(--bw-font-family)",
7660
+ margin: "0 0 12px 0",
7661
+ }, children: eventType.name }), jsxRuntime.jsxs("div", { style: {
7751
7662
  display: "flex",
7752
7663
  alignItems: "center",
7753
- gap: "8px",
7754
- border: "2px solid var(--bw-highlight-color)",
7755
- cursor: "pointer",
7756
- opacity: "0.6",
7757
- transition: "all 0.2s ease",
7758
- }, onMouseEnter: (e) => {
7759
- e.currentTarget.style.opacity = "1";
7760
- e.currentTarget.style.transform = "translateY(-1px)";
7761
- }, onMouseLeave: (e) => {
7762
- e.currentTarget.style.opacity = "0.6";
7763
- e.currentTarget.style.transform = "translateY(0)";
7764
- }, children: "Mehr Details" })), isAvailable && (jsxRuntime.jsxs("div", { style: {
7765
- backgroundColor: "var(--bw-highlight-color)",
7766
- color: "var(--bw-surface-color)",
7767
- padding: "12px 24px",
7768
- borderRadius: "var(--bw-border-radius)",
7769
- fontSize: "clamp(1rem, 2vw, 16px)",
7770
- fontWeight: "600",
7771
- fontFamily: "var(--bw-font-family)",
7664
+ gap: "6px",
7665
+ }, children: [jsxRuntime.jsx(IconCalendar, { size: 17, color: "var(--bw-text-color)" }), jsxRuntime.jsx("span", { style: {
7666
+ fontFamily: "var(--bw-font-family)",
7667
+ fontSize: "14px",
7668
+ color: "var(--bw-text-muted)",
7669
+ }, children: eventType.nextAvailableDate
7670
+ ? `Freie Plätze ab ${formatDate(eventType.nextAvailableDate)}`
7671
+ : "Keine Termine frei" })] }), jsxRuntime.jsx("div", { style: { cursor: "pointer" }, onClick: (e) => {
7672
+ e.stopPropagation();
7673
+ handleShowDetails(eventType);
7674
+ }, children: eventType.highlights && eventType.highlights.length > 0 ? (
7675
+ // Show highlights as list
7676
+ jsxRuntime.jsx("div", { className: "bw-event-type-highlights", style: {
7677
+ margin: "10px 0px 10px 0px",
7678
+ minHeight: "128px",
7679
+ fontSize: "clamp(0.95rem, 2vw, 16px)",
7680
+ }, children: jsxRuntime.jsx("ul", { style: {
7681
+ listStyle: "none",
7682
+ display: "-webkit-box",
7683
+ WebkitLineClamp: 5,
7684
+ WebkitBoxOrient: "vertical",
7685
+ maxHeight: "128px",
7686
+ padding: "0",
7687
+ margin: "0",
7688
+ flexDirection: "column",
7689
+ gap: "3px",
7690
+ position: "relative",
7691
+ }, children: eventType.highlights
7692
+ .filter((highlight) => highlight.trim())
7693
+ .map((highlight, index) => (jsxRuntime.jsxs("li", { style: {
7694
+ display: "flex",
7695
+ alignItems: "flex-start",
7696
+ gap: "8px",
7697
+ fontFamily: "var(--bw-font-family)",
7698
+ lineHeight: "1.55",
7699
+ color: "var(--bw-text-muted)",
7700
+ position: "relative",
7701
+ maxWidth: "100%",
7702
+ }, children: [jsxRuntime.jsx("div", { style: { marginTop: "4px", flexShrink: 0 }, children: jsxRuntime.jsx(IconCheck, { size: 16, color: "var(--bw-success-color)" }) }), jsxRuntime.jsx("span", { style: {
7703
+ textOverflow: "ellipsis",
7704
+ overflow: "hidden",
7705
+ whiteSpace: "nowrap",
7706
+ flex: "1",
7707
+ }, children: highlight.trim() })] }, index))) }) })) : eventType.description ? (jsxRuntime.jsx("div", { className: "bw-event-type-desc", style: {
7708
+ color: "var(--bw-text-muted)",
7709
+ fontSize: "clamp(0.95rem, 2vw, 16px)",
7710
+ lineHeight: "1.6",
7711
+ fontFamily: "var(--bw-font-family)",
7712
+ margin: "10px 0 10px 0",
7713
+ minHeight: "128px",
7714
+ maxHeight: "128px",
7715
+ overflow: "hidden",
7716
+ textAlign: "left",
7717
+ }, children: jsxRuntime.jsx("div", { className: "bw-event-type-markdown", style: {
7718
+ display: "-webkit-box",
7719
+ WebkitLineClamp: 5,
7720
+ WebkitBoxOrient: "vertical",
7721
+ overflow: "hidden",
7722
+ }, children: Markdown({
7723
+ children: preprocessMarkdown(eventType.description),
7724
+ }) }) })) : (jsxRuntime.jsx("div", { className: "bw-event-type-desc", style: {
7725
+ color: "var(--bw-text-muted)",
7726
+ fontSize: "clamp(0.95rem, 2vw, 16px)",
7727
+ lineHeight: "1.6",
7728
+ fontFamily: "var(--bw-font-family)",
7729
+ margin: "10px 0 10px 0",
7730
+ minHeight: "128px",
7731
+ maxHeight: "128px",
7732
+ overflow: "hidden",
7733
+ textAlign: "left",
7734
+ }, children: "\u00A0" })) })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { className: "bw-event-type-price", style: {
7735
+ fontWeight: "700",
7736
+ color: "var(--bw-text-color)",
7737
+ fontFamily: "var(--bw-font-family)",
7738
+ textAlign: "right",
7739
+ }, children: eventType.groupedDurations.length > 1 ? (jsxRuntime.jsx("span", { children: eventType.groupedDurations })) : (jsxRuntime.jsx("span", { children: eventType.cheapestDurationPerDay % 60 === 0
7740
+ ? `${eventType.cheapestDurationPerDay / 60} Stunde${eventType.cheapestDurationPerDay / 60 > 1 ? "n" : ""}`
7741
+ : `${eventType.cheapestDurationPerDay} Minuten` })) }), jsxRuntime.jsx("div", { className: "bw-event-type-price", style: {
7742
+ fontSize: "clamp(1.72rem, 4vw, 32px)",
7743
+ fontWeight: "700",
7744
+ color: "var(--bw-text-color)",
7745
+ fontFamily: "var(--bw-font-family)",
7746
+ textAlign: "right",
7747
+ }, children: jsxRuntime.jsxs("span", { children: ["ab ", formatCurrency(eventType.minPrice)] }) })] }), jsxRuntime.jsxs("div", { style: {
7772
7748
  display: "flex",
7749
+ justifyContent: "flex-end",
7773
7750
  alignItems: "center",
7774
- justifyContent: "center",
7775
- textAlign: "center",
7776
- gap: "8px",
7777
- border: "none",
7778
- cursor: "pointer",
7779
- transition: "all 0.2s ease",
7780
- }, onMouseEnter: (e) => {
7781
- e.currentTarget.style.opacity = "0.8";
7782
- e.currentTarget.style.transform = "translateY(-1px)";
7783
- }, onMouseLeave: (e) => {
7784
- e.currentTarget.style.opacity = "1";
7785
- e.currentTarget.style.transform = "translateY(0)";
7786
- }, children: [jsxRuntime.jsx(IconWave, { size: 15, color: "var(--bw-surface-color)" }), " Jetzt buchen"] }))] })] }), !isAvailable && (jsxRuntime.jsx("div", { style: {
7751
+ marginTop: "10px",
7752
+ gap: "12px",
7753
+ }, children: [(eventType.description ||
7754
+ (eventType.highlights && eventType.highlights.length > 0)) && (jsxRuntime.jsx("button", { onClick: (e) => {
7755
+ e.stopPropagation();
7756
+ handleShowDetails(eventType);
7757
+ }, style: {
7758
+ color: "var(--bw-highlight-color)",
7759
+ background: "var(--bw-surface-color)",
7760
+ padding: "12px 12px",
7761
+ borderRadius: "var(--bw-border-radius)",
7762
+ fontSize: "clamp(0.8rem, 2vw, 16px)",
7763
+ fontWeight: "600",
7764
+ fontFamily: "var(--bw-font-family)",
7765
+ display: "flex",
7766
+ alignItems: "center",
7767
+ gap: "8px",
7768
+ border: "2px solid var(--bw-highlight-color)",
7769
+ cursor: "pointer",
7770
+ opacity: "0.6",
7771
+ transition: "all 0.2s ease",
7772
+ }, onMouseEnter: (e) => {
7773
+ e.currentTarget.style.opacity = "1";
7774
+ e.currentTarget.style.transform = "translateY(-1px)";
7775
+ }, onMouseLeave: (e) => {
7776
+ e.currentTarget.style.opacity = "0.6";
7777
+ e.currentTarget.style.transform = "translateY(0)";
7778
+ }, children: "Mehr Details" })), isAvailable && (jsxRuntime.jsxs("div", { style: {
7779
+ backgroundColor: "var(--bw-highlight-color)",
7780
+ color: "var(--bw-surface-color)",
7781
+ padding: "12px 24px",
7782
+ borderRadius: "var(--bw-border-radius)",
7783
+ fontSize: "clamp(1rem, 2vw, 16px)",
7784
+ fontWeight: "600",
7785
+ fontFamily: "var(--bw-font-family)",
7786
+ display: "flex",
7787
+ alignItems: "center",
7788
+ justifyContent: "center",
7789
+ textAlign: "center",
7790
+ gap: "8px",
7791
+ border: "none",
7792
+ cursor: "pointer",
7793
+ transition: "all 0.2s ease",
7794
+ }, onMouseEnter: (e) => {
7795
+ e.currentTarget.style.opacity = "0.8";
7796
+ e.currentTarget.style.transform = "translateY(-1px)";
7797
+ }, onMouseLeave: (e) => {
7798
+ e.currentTarget.style.opacity = "1";
7799
+ e.currentTarget.style.transform = "translateY(0)";
7800
+ }, children: [jsxRuntime.jsx(IconWave, { size: 15, color: "var(--bw-surface-color)" }), " Jetzt buchen"] }))] })] })] }), !isAvailable && (jsxRuntime.jsx("div", { style: {
7787
7801
  position: "absolute",
7788
7802
  inset: 0,
7789
7803
  backgroundColor: "rgba(0, 0, 0, 0.3)",
@@ -9568,6 +9582,7 @@ function Sidebar({ isOpen, onClose, title, children, width = "400px" }) {
9568
9582
  position: "absolute",
9569
9583
  inset: 0,
9570
9584
  backgroundColor: "rgba(0, 0, 0, 0.5)",
9585
+ backdropFilter: "blur(10px)",
9571
9586
  opacity: isAnimating ? 1 : 0,
9572
9587
  transition: "opacity 0.25s ease-out",
9573
9588
  }, onClick: onClose }), jsxRuntime.jsxs("div", { style: {
@@ -9914,11 +9929,11 @@ function BookingForm({ config, eventDetails, stripePromise, onSuccess, onError,
9914
9929
  display: "flex",
9915
9930
  alignItems: "center",
9916
9931
  gap: "4px",
9917
- }, 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: {
9918
9933
  color: "var(--bw-text-color)",
9919
9934
  fontWeight: "500",
9920
9935
  fontFamily: "var(--bw-font-family)",
9921
- }, 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: {
9922
9937
  color: "var(--bw-text-muted)",
9923
9938
  fontFamily: "var(--bw-font-family)",
9924
9939
  display: "flex",
@@ -9928,7 +9943,17 @@ function BookingForm({ config, eventDetails, stripePromise, onSuccess, onError,
9928
9943
  color: "var(--bw-text-color)",
9929
9944
  fontWeight: "500",
9930
9945
  fontFamily: "var(--bw-font-family)",
9931
- }, 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: {
9932
9957
  backgroundColor: "var(--bw-surface-color)",
9933
9958
  border: `1px solid var(--bw-border-color)`,
9934
9959
  backdropFilter: "blur(4px)",
@@ -10085,9 +10110,10 @@ function BookingForm({ config, eventDetails, stripePromise, onSuccess, onError,
10085
10110
  height: "20px",
10086
10111
  border: "1px solid var(--bw-border-color)",
10087
10112
  accentColor: "var(--bw-highlight-color)",
10088
- backgroundColor: form.getValues("acceptTerms") === true
10089
- ? "var(--bw-highlight-color)"
10090
- : "var(--bw-surface-color)",
10113
+ cursor: "pointer",
10114
+ appearance: "checkbox",
10115
+ WebkitAppearance: "checkbox",
10116
+ MozAppearance: "checkbox",
10091
10117
  } }), jsxRuntime.jsxs("label", { htmlFor: "acceptTerms", style: {
10092
10118
  fontSize: "var(--bw-font-size)",
10093
10119
  color: "var(--bw-text-muted)",
@@ -10097,7 +10123,7 @@ function BookingForm({ config, eventDetails, stripePromise, onSuccess, onError,
10097
10123
  }, children: ["Ich akzeptiere die", " ", jsxRuntime.jsx("a", { href: eventDetails.agbUrl || "/terms", style: {
10098
10124
  color: "var(--bw-highlight-color)",
10099
10125
  textDecoration: "none",
10100
- }, 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: {
10101
10127
  color: "var(--bw-error-color)",
10102
10128
  fontSize: "var(--bw-font-size)",
10103
10129
  marginTop: "8px",
@@ -10250,65 +10276,230 @@ function BookingForm({ config, eventDetails, stripePromise, onSuccess, onError,
10250
10276
  ` })] }) }));
10251
10277
  }
10252
10278
 
10253
- const months = [
10254
- "Januar",
10255
- "Februar",
10256
- "März",
10257
- "April",
10258
- "Mai",
10259
- "Juni",
10260
- "Juli",
10261
- "August",
10262
- "September",
10263
- "Oktober",
10264
- "November",
10265
- "Dezember",
10266
- ];
10267
- // Helper function to get allocation badge info based on availability
10268
- const getAllocationBadgeInfo = (availableSpots, maxParticipants) => {
10269
- const availabilityRatio = availableSpots / maxParticipants;
10270
- // Only show badge for low availability (less than 60%)
10271
- if (availabilityRatio >= 0.6)
10272
- return null;
10273
- // Very low availability (30% or less) - "fast ausgebucht"
10274
- if (availabilityRatio <= 0.3) {
10275
- return {
10276
- text: "fast ausgebucht",
10277
- backgroundColor: "#7f1d1d", // Dark red
10278
- textColor: "#fca5a5", // Bright red
10279
- };
10280
- }
10281
- // Low availability (30-60%) - "wenige Plätze"
10282
- return {
10283
- text: "beliebter Termin",
10284
- backgroundColor: "#b45309", // Dark orange/yellow
10285
- textColor: "#fbbf24", // Bright yellow
10286
- };
10287
- };
10288
- // Helper function to get price badge info for special prices
10289
- const getPriceBadgeInfo = (price, yearPrices) => {
10290
- if (yearPrices.length <= 1)
10291
- return null;
10292
- const sortedPrices = [...new Set(yearPrices)].sort((a, b) => a - b); // Remove duplicates and sort
10293
- // Need at least 2 different prices to show badges
10294
- if (sortedPrices.length < 2)
10279
+ const BookingSuccessModal = ({ isOpen, onClose, bookingData, eventDetails, formData, config, }) => {
10280
+ if (!isOpen || !bookingData)
10295
10281
  return null;
10296
- const lowestPrice = sortedPrices[0];
10297
- const secondLowestPrice = sortedPrices[1];
10298
- // Show "am günstigsten" for the lowest price
10299
- if (price === lowestPrice) {
10300
- return {
10301
- text: "bester Preis !!!",
10302
- backgroundColor: "#14532d", // Dark green
10303
- textColor: "#4ade80", // Bright green
10304
- };
10305
- }
10306
- // Show "günstig" for second lowest price, but only if it's not the same as most other prices
10307
- if (price === secondLowestPrice && sortedPrices.length > 2) {
10308
- return {
10309
- text: "günstiger Preis",
10310
- backgroundColor: "#0e7490", // Turquoise
10311
- textColor: "#67e8f9", // Light Turquoise
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
+
10437
+ const months = [
10438
+ "Januar",
10439
+ "Februar",
10440
+ "März",
10441
+ "April",
10442
+ "Mai",
10443
+ "Juni",
10444
+ "Juli",
10445
+ "August",
10446
+ "September",
10447
+ "Oktober",
10448
+ "November",
10449
+ "Dezember",
10450
+ ];
10451
+ // Helper function to get allocation badge info based on availability
10452
+ const getAllocationBadgeInfo = (availableSpots, maxParticipants) => {
10453
+ const availabilityRatio = availableSpots / maxParticipants;
10454
+ // Only show badge for low availability (less than 60%)
10455
+ if (availabilityRatio >= 0.6)
10456
+ return null;
10457
+ if (availabilityRatio === 0) {
10458
+ return {
10459
+ text: "ausgebucht",
10460
+ backgroundColor: "#7f1d1d", // Dark red
10461
+ textColor: "#fca5a5", // Bright red
10462
+ };
10463
+ }
10464
+ // Very low availability (30% or less) - "fast ausgebucht"
10465
+ if (availabilityRatio <= 0.3) {
10466
+ return {
10467
+ text: "fast ausgebucht",
10468
+ backgroundColor: "#7f1d1d", // Dark red
10469
+ textColor: "#fca5a5", // Bright red
10470
+ };
10471
+ }
10472
+ // Low availability (30-60%) - "wenige Plätze"
10473
+ return {
10474
+ text: "beliebter Termin",
10475
+ backgroundColor: "#b45309", // Dark orange/yellow
10476
+ textColor: "#fbbf24", // Bright yellow
10477
+ };
10478
+ };
10479
+ // Helper function to get price badge info for special prices
10480
+ const getPriceBadgeInfo = (price, yearPrices) => {
10481
+ if (yearPrices.length <= 1)
10482
+ return null;
10483
+ const sortedPrices = [...new Set(yearPrices)].sort((a, b) => a - b); // Remove duplicates and sort
10484
+ // Need at least 2 different prices to show badges
10485
+ if (sortedPrices.length < 2)
10486
+ return null;
10487
+ const lowestPrice = sortedPrices[0];
10488
+ const secondLowestPrice = sortedPrices[1];
10489
+ // Show "am günstigsten" for the lowest price
10490
+ if (price === lowestPrice) {
10491
+ return {
10492
+ text: "bester Preis !!!",
10493
+ backgroundColor: "#14532d", // Dark green
10494
+ textColor: "#4ade80", // Bright green
10495
+ };
10496
+ }
10497
+ // Show "günstig" for second lowest price, but only if it's not the same as most other prices
10498
+ if (price === secondLowestPrice && sortedPrices.length > 2) {
10499
+ return {
10500
+ text: "günstiger Preis",
10501
+ backgroundColor: "#0e7490", // Turquoise
10502
+ textColor: "#67e8f9", // Light Turquoise
10312
10503
  };
10313
10504
  }
10314
10505
  return null;
@@ -10826,7 +11017,7 @@ function EventInstanceSelection({ eventInstances, selectedEventType, onEventInst
10826
11017
  padding: "16px 20px",
10827
11018
  transition: "all 0.2s ease",
10828
11019
  opacity: isFullyBooked || isPastEvent ? 0.3 : 1,
10829
- filter: isFullyBooked || isPastEvent ? "grayscale(100%)" : "none",
11020
+ filter: isFullyBooked || isPastEvent ? "grayscale(40%)" : "none",
10830
11021
  fontFamily: "var(--bw-font-family)",
10831
11022
  }, onClick: () => {
10832
11023
  if (!isFullyBooked && !isPastEvent && event.bookingOpen) {
@@ -11320,198 +11511,6 @@ function NextEventsPreview({ events, onEventSelect, onShowAll, showAllButtonText
11320
11511
  }
11321
11512
 
11322
11513
  // Predefined themes & Style Provider have been moved to ../styles/StyleProvider.tsx
11323
- // Success Modal Component
11324
- const BookingSuccessModal = ({ isOpen, onClose, bookingData, eventDetails, formData, config, }) => {
11325
- if (!isOpen || !bookingData)
11326
- return null;
11327
- const booking = bookingData.booking;
11328
- return (jsxRuntime.jsx("div", { style: {
11329
- position: "fixed",
11330
- top: 0,
11331
- left: 0,
11332
- right: 0,
11333
- bottom: 0,
11334
- backgroundColor: "rgba(0, 0, 0, 0.5)",
11335
- zIndex: 10000,
11336
- display: "flex",
11337
- alignItems: "center",
11338
- justifyContent: "center",
11339
- padding: "var(--bw-spacing)",
11340
- }, children: jsxRuntime.jsxs("div", { style: {
11341
- backgroundColor: "var(--bw-background-color)",
11342
- borderRadius: "var(--bw-border-radius)",
11343
- padding: "var(--bw-spacing-large)",
11344
- maxWidth: "500px",
11345
- width: "100%",
11346
- maxHeight: "90vh",
11347
- overflow: "auto",
11348
- position: "relative",
11349
- border: `1px solid var(--bw-border-color)`,
11350
- boxShadow: "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)",
11351
- }, children: [jsxRuntime.jsx("button", { onClick: onClose, style: {
11352
- position: "absolute",
11353
- top: "var(--bw-spacing)",
11354
- right: "var(--bw-spacing)",
11355
- background: "none",
11356
- border: "none",
11357
- fontSize: "24px",
11358
- cursor: "pointer",
11359
- color: "var(--bw-text-muted)",
11360
- width: "32px",
11361
- height: "32px",
11362
- display: "flex",
11363
- alignItems: "center",
11364
- justifyContent: "center",
11365
- borderRadius: "var(--bw-border-radius-small)",
11366
- }, children: "\u00D7" }), jsxRuntime.jsxs("div", { style: {
11367
- textAlign: "center",
11368
- marginBottom: "var(--bw-spacing-large)",
11369
- }, children: [jsxRuntime.jsx("div", { style: {
11370
- width: "64px",
11371
- height: "64px",
11372
- backgroundColor: "var(--bw-success-color, #10B981)",
11373
- borderRadius: "50%",
11374
- margin: "0 auto var(--bw-spacing)",
11375
- display: "flex",
11376
- alignItems: "center",
11377
- justifyContent: "center",
11378
- fontSize: "32px",
11379
- color: "white",
11380
- }, children: "\u2713" }), jsxRuntime.jsx("h2", { style: {
11381
- fontSize: "var(--bw-font-size-xl)",
11382
- fontWeight: "700",
11383
- color: "var(--bw-text-color)",
11384
- margin: "0 0 var(--bw-spacing-small) 0",
11385
- fontFamily: "var(--bw-font-family)",
11386
- }, children: "Buchung erfolgreich!" }), jsxRuntime.jsx("p", { style: {
11387
- color: "var(--bw-text-muted)",
11388
- fontFamily: "var(--bw-font-family)",
11389
- margin: 0,
11390
- }, children: "Deine Buchung wurde erfolgreich abgeschlossen." })] }), jsxRuntime.jsxs("div", { style: {
11391
- backgroundColor: "var(--bw-surface-color)",
11392
- border: `1px solid var(--bw-border-color)`,
11393
- borderRadius: "var(--bw-border-radius)",
11394
- padding: "var(--bw-spacing)",
11395
- marginBottom: "var(--bw-spacing-large)",
11396
- }, children: [jsxRuntime.jsx("h3", { style: {
11397
- fontSize: "var(--bw-font-size-large)",
11398
- fontWeight: "600",
11399
- color: "var(--bw-text-color)",
11400
- margin: "0 0 var(--bw-spacing) 0",
11401
- fontFamily: "var(--bw-font-family)",
11402
- }, 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: {
11403
- color: "var(--bw-text-color)",
11404
- fontWeight: "500",
11405
- fontFamily: "monospace",
11406
- fontSize: "var(--bw-font-size-small)",
11407
- backgroundColor: "var(--bw-background-color)",
11408
- padding: "4px 8px",
11409
- borderRadius: "var(--bw-border-radius-small)",
11410
- }, 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: {
11411
- color: "var(--bw-text-color)",
11412
- fontWeight: "500",
11413
- fontFamily: "var(--bw-font-family)",
11414
- textAlign: "right",
11415
- maxWidth: "60%",
11416
- }, 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: {
11417
- color: "var(--bw-text-color)",
11418
- fontWeight: "500",
11419
- fontFamily: "var(--bw-font-family)",
11420
- textAlign: "right",
11421
- maxWidth: "60%",
11422
- }, 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: {
11423
- color: "var(--bw-text-color)",
11424
- fontWeight: "500",
11425
- fontFamily: "var(--bw-font-family)",
11426
- }, children: booking.participantCount })] }), jsxRuntime.jsxs("div", { style: {
11427
- display: "flex",
11428
- justifyContent: "space-between",
11429
- alignItems: "center",
11430
- borderTop: `1px solid var(--bw-border-color)`,
11431
- paddingTop: "var(--bw-spacing)",
11432
- marginTop: "var(--bw-spacing)",
11433
- }, children: [jsxRuntime.jsx("span", { style: {
11434
- color: "var(--bw-text-color)",
11435
- fontWeight: "600",
11436
- fontFamily: "var(--bw-font-family)",
11437
- }, children: "Gesamtbetrag:" }), jsxRuntime.jsx("span", { style: {
11438
- color: "var(--bw-text-color)",
11439
- fontWeight: "600",
11440
- fontSize: "var(--bw-font-size-large)",
11441
- fontFamily: "var(--bw-font-family)",
11442
- }, children: formatCurrency(booking.total) })] })] })] }), formData.participants && formData.participants.length > 0 && (jsxRuntime.jsxs("div", { style: {
11443
- backgroundColor: "var(--bw-surface-color)",
11444
- border: `1px solid var(--bw-border-color)`,
11445
- borderRadius: "var(--bw-border-radius)",
11446
- padding: "var(--bw-spacing)",
11447
- marginBottom: "var(--bw-spacing-large)",
11448
- }, children: [jsxRuntime.jsx("h3", { style: {
11449
- fontSize: "var(--bw-font-size-large)",
11450
- fontWeight: "600",
11451
- color: "var(--bw-text-color)",
11452
- margin: "0 0 var(--bw-spacing) 0",
11453
- fontFamily: "var(--bw-font-family)",
11454
- }, children: "Teilnehmer" }), jsxRuntime.jsx("div", { style: { display: "flex", flexDirection: "column", gap: "var(--bw-spacing-small)" }, children: formData.participants
11455
- .filter((p) => p.name.trim())
11456
- .map((participant, index) => (jsxRuntime.jsxs("div", { style: {
11457
- display: "flex",
11458
- justifyContent: "space-between",
11459
- alignItems: "center",
11460
- padding: "var(--bw-spacing-small)",
11461
- backgroundColor: "var(--bw-background-color)",
11462
- borderRadius: "var(--bw-border-radius-small)",
11463
- }, children: [jsxRuntime.jsx("span", { style: {
11464
- color: "var(--bw-text-color)",
11465
- fontFamily: "var(--bw-font-family)",
11466
- }, children: participant.name }), participant.age && (jsxRuntime.jsxs("span", { style: {
11467
- color: "var(--bw-text-muted)",
11468
- fontSize: "var(--bw-font-size-small)",
11469
- fontFamily: "var(--bw-font-family)",
11470
- }, children: [participant.age, " Jahre"] }))] }, index))) })] })), jsxRuntime.jsxs("div", { style: {
11471
- backgroundColor: "var(--bw-surface-color)",
11472
- border: `1px solid var(--bw-border-color)`,
11473
- borderRadius: "var(--bw-border-radius)",
11474
- padding: "var(--bw-spacing)",
11475
- marginBottom: "var(--bw-spacing-large)",
11476
- }, children: [jsxRuntime.jsx("h3", { style: {
11477
- fontSize: "var(--bw-font-size-large)",
11478
- fontWeight: "600",
11479
- color: "var(--bw-text-color)",
11480
- margin: "0 0 var(--bw-spacing) 0",
11481
- fontFamily: "var(--bw-font-family)",
11482
- }, 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: {
11483
- backgroundColor: "var(--bw-surface-muted-bg, rgba(59, 130, 246, 0.05))",
11484
- border: `1px solid var(--bw-border-color)`,
11485
- borderRadius: "var(--bw-border-radius)",
11486
- padding: "var(--bw-spacing)",
11487
- marginBottom: "var(--bw-spacing-large)",
11488
- textAlign: "center",
11489
- }, children: [jsxRuntime.jsx("div", { style: {
11490
- color: "var(--bw-highlight-color)",
11491
- fontSize: "24px",
11492
- marginBottom: "var(--bw-spacing-small)",
11493
- }, children: "\uD83D\uDCE7" }), jsxRuntime.jsxs("p", { style: {
11494
- color: "var(--bw-text-muted)",
11495
- margin: 0,
11496
- fontFamily: "var(--bw-font-family)",
11497
- fontSize: "var(--bw-font-size-small)",
11498
- }, 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: {
11499
- backgroundColor: "var(--bw-highlight-color)",
11500
- color: "white",
11501
- padding: "12px 32px",
11502
- border: "none",
11503
- borderRadius: "var(--bw-border-radius)",
11504
- fontSize: "var(--bw-font-size)",
11505
- fontWeight: "600",
11506
- cursor: "pointer",
11507
- fontFamily: "var(--bw-font-family)",
11508
- transition: "all 0.2s ease",
11509
- }, onMouseEnter: (e) => {
11510
- e.currentTarget.style.opacity = "0.9";
11511
- }, onMouseLeave: (e) => {
11512
- e.currentTarget.style.opacity = "1";
11513
- }, children: "Schlie\u00DFen" }) })] }) }));
11514
- };
11515
11514
  // Main widget component
11516
11515
  function UniversalBookingWidget({ config: baseConfig }) {
11517
11516
  // Apply URL parameter inference
@@ -11541,7 +11540,6 @@ function UniversalBookingWidget({ config: baseConfig }) {
11541
11540
  // Booking flow state
11542
11541
  const [eventDetails, setEventDetails] = React__default.useState(null);
11543
11542
  const [stripePromise, setStripePromise] = React__default.useState(null);
11544
- const [clientSecret, setClientSecret] = React__default.useState(null);
11545
11543
  // SEPARATED LOADING STATES
11546
11544
  const [isLoading, setIsLoading] = React__default.useState(true); // Only for initial widget load
11547
11545
  const [isLoadingEventInstances, setIsLoadingEventInstances] = React__default.useState(false); // For loading event instances in sidebar
@@ -12002,16 +12000,6 @@ function UniversalBookingWidget({ config: baseConfig }) {
12002
12000
  fontFamily: "var(--bw-font-family)",
12003
12001
  }, children: "Falls das Problem weiterhin besteht, kontaktiere bitte den Support." })] }) }) }));
12004
12002
  }
12005
- // Success state
12006
- if (isSuccess) {
12007
- return (jsxRuntime.jsx(StyleProvider, { config: config, children: jsxRuntime.jsx(BookingSuccessModal, { isOpen: isSuccess, onClose: () => {
12008
- setIsSuccess(false);
12009
- setCurrentStep("eventTypes");
12010
- // Reset lazy loading flags
12011
- setShouldRenderInstanceSelection(false);
12012
- setShouldRenderBookingForm(false);
12013
- }, bookingData: successData, eventDetails: eventDetails, formData: successData.formData, config: config }) }));
12014
- }
12015
12003
  // Main view based on view mode
12016
12004
  if (viewMode === "next-events" && showingPreview) {
12017
12005
  // Next events preview mode
@@ -12027,17 +12015,31 @@ function UniversalBookingWidget({ config: baseConfig }) {
12027
12015
  setCurrentStep("eventTypes");
12028
12016
  setShowingPreview(true);
12029
12017
  setEventDetails(null);
12030
- }, 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 })] }));
12031
12026
  }
12032
12027
  if (viewMode === "next-events" && !showingPreview && currentStep === "eventInstances") {
12033
12028
  // Show all events for the single event type
12034
- return (jsxRuntime.jsx(StyleProvider, { config: config, children: shouldRenderInstanceSelection && (jsxRuntime.jsx(EventInstanceSelection, { eventInstances: eventInstances, selectedEventType: selectedEventType, onEventInstanceSelect: handleEventInstanceSelect, onBackToEventTypes: () => {
12035
- setShowingPreview(true);
12036
- setCurrentStep("eventTypes");
12037
- }, isOpen: currentStep === "eventInstances", onClose: () => {
12038
- setShowingPreview(true);
12039
- setCurrentStep("eventTypes");
12040
- }, 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 })] }));
12041
12043
  }
12042
12044
  if (viewMode === "button" && (isSingleEventTypeMode || isDirectInstanceMode)) {
12043
12045
  // Button mode - show button that opens sidebar/booking directly
@@ -12067,7 +12069,14 @@ function UniversalBookingWidget({ config: baseConfig }) {
12067
12069
  setShouldRenderInstanceSelection(true);
12068
12070
  }
12069
12071
  }, children: config.buttonText ||
12070
- (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 })] }) }));
12071
12080
  }
12072
12081
  // Cards mode (default) - show event type selection
12073
12082
  const cardsView = (jsxRuntime.jsx(EventTypeSelection, { eventTypes: eventTypes, onEventTypeSelect: handleEventTypeSelect, isLoading: isLoading, skeletonCount: getSkeletonCount() }));
@@ -12100,7 +12109,13 @@ function UniversalBookingWidget({ config: baseConfig }) {
12100
12109
  };
12101
12110
  };
12102
12111
  const backHandlers = getBackHandlers();
12103
- 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 })] }));
12104
12119
  }
12105
12120
 
12106
12121
  // Export init function for vanilla JS usage