@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.
@@ -6727,15 +6727,8 @@
6727
6727
 
6728
6728
  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||_$2,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 _n(We(t,o),a)};
6729
6729
 
6730
- // Helper function to preprocess markdown for underline support
6731
- const preprocessMarkdown$1 = (markdown) => {
6732
- // Convert double underscores to HTML underline tags for React Markdown
6733
- return markdown.replace(/__([^_]+)__/g, "<u>$1</u>");
6734
- };
6735
- const IconCheck$1 = ({ size = 16, color = "#10b981" }) => (u$2("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: u$2("polyline", { points: "20 6 9 17 4 12" }) }));
6736
- const IconWave$1 = ({ size = 20, color = "#0ea5e9" }) => (u$2("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [u$2("path", { d: "M2 18c2-2 6-2 8 0s6 2 8 0 6-2 8 0" }), u$2("path", { d: "M2 12c2-2 6-2 8 0s6 2 8 0 6-2 8 0" }), u$2("path", { d: "M2 6c2-2 6-2 8 0s6 2 8 0 6-2 8 0" })] }));
6737
6730
  // Portal component that renders dialog at document body level
6738
- function DialogPortal({ children, isOpen }) {
6731
+ function DialogPortal({ children, isOpen, zIndex = 999999, }) {
6739
6732
  const [portalRoot, setPortalRoot] = Rn.useState(null);
6740
6733
  Rn.useEffect(() => {
6741
6734
  if (!isOpen) {
@@ -6767,9 +6760,12 @@
6767
6760
  "--bw-border-radius-small",
6768
6761
  "--bw-spacing",
6769
6762
  "--bw-spacing-large",
6763
+ "--bw-spacing-small",
6770
6764
  "--bw-font-family",
6771
6765
  "--bw-font-size",
6772
6766
  "--bw-font-size-large",
6767
+ "--bw-font-size-small",
6768
+ "--bw-font-size-xl",
6773
6769
  "--bw-shadow-lg",
6774
6770
  "--bw-shadow-md",
6775
6771
  "--bw-highlight-muted",
@@ -6797,7 +6793,7 @@
6797
6793
  left: 0;
6798
6794
  width: 100%;
6799
6795
  height: 100%;
6800
- z-index: 999999;
6796
+ z-index: ${zIndex};
6801
6797
  pointer-events: none;
6802
6798
  ${cssProperties}
6803
6799
  `;
@@ -6818,7 +6814,7 @@
6818
6814
  }
6819
6815
  document.body.style.overflow = "";
6820
6816
  };
6821
- }, [isOpen]);
6817
+ }, [isOpen, zIndex]);
6822
6818
  if (!isOpen || !portalRoot)
6823
6819
  return null;
6824
6820
  return $$1(u$2("div", { style: {
@@ -6827,7 +6823,8 @@
6827
6823
  height: "100%",
6828
6824
  }, children: children }), portalRoot);
6829
6825
  }
6830
- function EventTypeDetailsDialog({ isOpen, onClose, eventType, onEventTypeSelect, }) {
6826
+ // Shared dialog wrapper component
6827
+ function DialogWrapper({ isOpen, onClose, children, maxWidth = "700px", className, zIndex = 999999, }) {
6831
6828
  // Get fallback styles from the widget container for cases where CSS variables aren't available
6832
6829
  const [fallbackStyles, setFallbackStyles] = Rn.useState({});
6833
6830
  Rn.useEffect(() => {
@@ -6864,15 +6861,10 @@
6864
6861
  return () => {
6865
6862
  document.removeEventListener("keydown", handleEscape);
6866
6863
  };
6867
- }, [isOpen]);
6868
- if (!isOpen || !eventType)
6864
+ }, [isOpen, onClose]);
6865
+ if (!isOpen)
6869
6866
  return null;
6870
- const isAvailable = eventType.hasAvailableInstances;
6871
- const handleBookingClick = () => {
6872
- onEventTypeSelect(eventType);
6873
- onClose();
6874
- };
6875
- return (u$2(DialogPortal, { isOpen: isOpen, children: u$2("div", { style: fallbackStyles, children: u$2("div", { style: {
6867
+ return (u$2(DialogPortal, { isOpen: isOpen, zIndex: zIndex, children: u$2("div", { style: fallbackStyles, className: className, children: u$2("div", { style: {
6876
6868
  position: "fixed",
6877
6869
  top: 0,
6878
6870
  left: 0,
@@ -6885,11 +6877,11 @@
6885
6877
  alignItems: "center",
6886
6878
  justifyContent: "center",
6887
6879
  padding: "var(--bw-spacing)",
6888
- zIndex: 999999,
6880
+ zIndex: zIndex,
6889
6881
  }, onClick: onClose, children: u$2("div", { style: {
6890
6882
  backgroundColor: "var(--bw-surface-color)",
6891
6883
  borderRadius: "var(--bw-border-radius)",
6892
- maxWidth: "700px",
6884
+ maxWidth,
6893
6885
  width: "100%",
6894
6886
  maxHeight: "90vh",
6895
6887
  overflow: "auto",
@@ -6917,181 +6909,199 @@
6917
6909
  e.currentTarget.style.backgroundColor = "var(--bw-border-color)";
6918
6910
  }, onMouseLeave: (e) => {
6919
6911
  e.currentTarget.style.backgroundColor = "var(--bw-surface-color)";
6920
- }, children: "\u00D7" }), u$2("div", { style: { padding: "var(--bw-spacing-large)" }, children: [u$2("div", { style: {
6921
- marginBottom: "24px",
6922
- padding: "16px",
6923
- backgroundColor: "var(--bw-background-color)",
6924
- borderRadius: "var(--bw-border-radius)",
6925
- border: `1px solid var(--bw-border-color)`,
6926
- }, children: [u$2("div", { children: [u$2("div", { style: {
6927
- fontSize: "14px",
6928
- fontWeight: "600",
6929
- color: "var(--bw-highlight-color)",
6930
- marginBottom: "8px",
6931
- fontFamily: "var(--bw-font-family)",
6932
- }, children: eventType.category.name }), u$2("h2", { style: {
6933
- fontSize: "28px",
6934
- fontWeight: "700",
6935
- color: "var(--bw-text-color)",
6936
- marginBottom: "16px",
6937
- lineHeight: "1.3",
6938
- fontFamily: "var(--bw-font-family)",
6939
- margin: "0 0 16px 0",
6940
- }, children: eventType.name })] }), eventType.highlights && eventType.highlights.length > 0 && (u$2("div", { style: { display: "flex", alignItems: "center", gap: "8px" }, children: u$2("div", { style: { marginBottom: "24px" }, children: u$2("ul", { style: {
6941
- listStyle: "none",
6942
- padding: "0",
6943
- margin: "0",
6944
- display: "flex",
6945
- flexDirection: "column",
6946
- gap: "3px",
6947
- }, children: eventType.highlights
6948
- .filter((highlight) => highlight.trim())
6949
- .map((highlight, index) => (u$2("li", { style: {
6950
- display: "flex",
6951
- alignItems: "flex-start",
6952
- gap: "10px",
6953
- fontFamily: "var(--bw-font-family)",
6954
- fontSize: "16px",
6955
- lineHeight: "1.6",
6956
- color: "var(--bw-text-color)",
6957
- }, children: [u$2("div", { style: { marginTop: "4px", flexShrink: 0 }, children: u$2(IconCheck$1, { size: 16, color: "var(--bw-success-color)" }) }), u$2("span", { children: highlight.trim() })] }, index))) }) }) }))] }), eventType.description && (u$2("div", { style: {
6958
- marginBottom: "24px",
6959
- color: "var(--bw-text-muted)",
6960
- fontSize: "16px",
6961
- lineHeight: "1.6",
6912
+ }, children: "\u00D7" }), children] }) }) }) }));
6913
+ }
6914
+
6915
+ // Helper function to preprocess markdown for underline support
6916
+ const preprocessMarkdown$1 = (markdown) => {
6917
+ // Convert double underscores to HTML underline tags for React Markdown
6918
+ return markdown.replace(/__([^_]+)__/g, "<u>$1</u>");
6919
+ };
6920
+ const IconCheck$1 = ({ size = 16, color = "#10b981" }) => (u$2("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: u$2("polyline", { points: "20 6 9 17 4 12" }) }));
6921
+ const IconWave$1 = ({ size = 20, color = "#0ea5e9" }) => (u$2("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [u$2("path", { d: "M2 18c2-2 6-2 8 0s6 2 8 0 6-2 8 0" }), u$2("path", { d: "M2 12c2-2 6-2 8 0s6 2 8 0 6-2 8 0" }), u$2("path", { d: "M2 6c2-2 6-2 8 0s6 2 8 0 6-2 8 0" })] }));
6922
+ function EventTypeDetailsDialog({ isOpen, onClose, eventType, onEventTypeSelect, }) {
6923
+ if (!isOpen || !eventType)
6924
+ return null;
6925
+ const isAvailable = eventType.hasAvailableInstances;
6926
+ const handleBookingClick = () => {
6927
+ onEventTypeSelect(eventType);
6928
+ onClose();
6929
+ };
6930
+ return (u$2(DialogWrapper, { isOpen: isOpen, onClose: onClose, maxWidth: "700px", children: u$2("div", { style: { padding: "var(--bw-spacing-large)" }, children: [u$2("div", { style: {
6931
+ marginBottom: "24px",
6932
+ padding: "16px",
6933
+ backgroundColor: "var(--bw-background-color)",
6934
+ borderRadius: "var(--bw-border-radius)",
6935
+ border: `1px solid var(--bw-border-color)`,
6936
+ }, children: [u$2("div", { children: [u$2("div", { style: {
6937
+ fontSize: "14px",
6938
+ fontWeight: "600",
6939
+ color: "var(--bw-highlight-color)",
6940
+ marginBottom: "8px",
6941
+ fontFamily: "var(--bw-font-family)",
6942
+ }, children: eventType.category.name }), u$2("h2", { style: {
6943
+ fontSize: "28px",
6944
+ fontWeight: "700",
6945
+ color: "var(--bw-text-color)",
6946
+ marginBottom: "16px",
6947
+ lineHeight: "1.3",
6962
6948
  fontFamily: "var(--bw-font-family)",
6963
- padding: "0px 20px",
6964
- }, children: [u$2("style", { dangerouslySetInnerHTML: {
6965
- __html: `
6966
- .bw-markdown-content p {
6967
- margin: 0 0 12px 0 !important;
6968
- color: var(--bw-text-muted) !important;
6969
- font-family: var(--bw-font-family) !important;
6970
- line-height: 1.6 !important;
6971
- }
6972
- .bw-markdown-content p:last-child {
6973
- margin-bottom: 0 !important;
6974
- }
6975
- .bw-markdown-content h2 {
6976
- font-size: 20px !important;
6977
- font-weight: 700 !important;
6978
- color: var(--bw-text-color) !important;
6979
- margin: 20px 0 8px 0 !important;
6980
- line-height: 1.3 !important;
6981
- display: block !important;
6982
- }
6983
- .bw-markdown-content h3 {
6984
- font-size: 18px !important;
6985
- font-weight: 600 !important;
6986
- color: var(--bw-text-color) !important;
6987
- margin: 16px 0 8px 0 !important;
6988
- line-height: 1.3 !important;
6989
- display: block !important;
6990
- }
6991
- .bw-markdown-content strong {
6992
- font-weight: 700 !important;
6993
- color: var(--bw-text-color) !important;
6994
- }
6995
- .bw-markdown-content em {
6996
- font-style: italic !important;
6997
- }
6998
- .bw-markdown-content u {
6999
- text-decoration: underline !important;
7000
- }
7001
- .bw-markdown-content ul {
7002
- margin: 12px 0 !important;
7003
- padding-left: 24px !important;
7004
- list-style-type: disc !important;
7005
- display: block !important;
7006
- }
7007
- .bw-markdown-content ol {
7008
- margin: 12px 0 !important;
7009
- padding-left: 24px !important;
7010
- list-style-type: decimal !important;
7011
- display: block !important;
7012
- }
7013
- .bw-markdown-content li {
7014
- margin-bottom: 4px !important;
7015
- display: list-item !important;
7016
- color: var(--bw-text-muted) !important;
7017
- font-family: var(--bw-font-family) !important;
7018
- line-height: 1.6 !important;
7019
- }
7020
- .bw-markdown-content blockquote {
7021
- margin: 12px 0 !important;
7022
- padding-left: 16px !important;
7023
- border-left: 3px solid var(--bw-border-color) !important;
7024
- font-style: italic !important;
7025
- color: var(--bw-text-muted) !important;
7026
- display: block !important;
7027
- }
7028
- .bw-markdown-content a {
7029
- color: var(--bw-highlight-color) !important;
7030
- text-decoration: underline !important;
7031
- }
7032
- .bw-markdown-content a:hover {
7033
- text-decoration: none !important;
7034
- }
7035
- `,
7036
- } }), u$2("div", { className: "bw-markdown-content", children: Markdown({ children: preprocessMarkdown$1(eventType.description) }) })] })), u$2("div", { style: {
6949
+ margin: "0 0 16px 0",
6950
+ }, children: eventType.name })] }), eventType.highlights && eventType.highlights.length > 0 && (u$2("div", { style: { display: "flex", alignItems: "center", gap: "8px" }, children: u$2("div", { style: { marginBottom: "24px" }, children: u$2("ul", { style: {
6951
+ listStyle: "none",
6952
+ padding: "0",
6953
+ margin: "0",
7037
6954
  display: "flex",
7038
- justifyContent: "space-between",
7039
- alignItems: "center",
7040
- marginTop: "32px",
7041
- padding: "20px",
7042
- backgroundColor: "var(--bw-background-color)",
7043
- borderRadius: "var(--bw-border-radius)",
7044
- border: `1px solid var(--bw-border-color)`,
7045
- }, children: [u$2("div", { children: [u$2("div", { className: "bw-event-type-price", style: {
7046
- fontWeight: "700",
7047
- color: "var(--bw-text-color)",
7048
- fontFamily: "var(--bw-font-family)",
7049
- textAlign: "left",
7050
- }, children: eventType.groupedDurations && u$2("span", { children: eventType.groupedDurations }) }), u$2("div", { className: "bw-event-type-price", style: {
7051
- fontSize: "clamp(1.72rem, 4vw, 32px)",
7052
- fontWeight: "700",
7053
- color: "var(--bw-text-color)",
7054
- fontFamily: "var(--bw-font-family)",
7055
- textAlign: "right",
7056
- }, children: u$2("span", { children: ["ab ", formatCurrency(eventType.minPrice)] }) })] }), isAvailable && (u$2("button", { onClick: handleBookingClick, style: {
7057
- backgroundColor: "var(--bw-highlight-color)",
7058
- color: "white",
7059
- padding: "14px 28px",
7060
- border: "none",
7061
- borderRadius: "var(--bw-border-radius)",
7062
- fontSize: "16px",
7063
- fontWeight: "600",
7064
- fontFamily: "var(--bw-font-family)",
7065
- display: "flex",
7066
- alignItems: "center",
7067
- gap: "8px",
7068
- cursor: "pointer",
7069
- transition: "all 0.2s ease",
7070
- }, onMouseEnter: (e) => {
7071
- e.currentTarget.style.opacity = "0.9";
7072
- e.currentTarget.style.transform = "translateY(-1px)";
7073
- }, onMouseLeave: (e) => {
7074
- e.currentTarget.style.opacity = "1";
7075
- e.currentTarget.style.transform = "translateY(0)";
7076
- }, children: [u$2(IconWave$1, { size: 20, color: "white" }), "Jetzt buchen"] }))] })] }), !isAvailable && (u$2("div", { style: {
7077
- position: "absolute",
7078
- inset: 0,
7079
- backgroundColor: "rgba(0, 0, 0, 0.3)",
7080
- backdropFilter: "blur(2px)",
6955
+ flexDirection: "column",
6956
+ gap: "3px",
6957
+ }, children: eventType.highlights
6958
+ .filter((highlight) => highlight.trim())
6959
+ .map((highlight, index) => (u$2("li", { style: {
6960
+ display: "flex",
6961
+ alignItems: "flex-start",
6962
+ gap: "10px",
6963
+ fontFamily: "var(--bw-font-family)",
6964
+ fontSize: "16px",
6965
+ lineHeight: "1.6",
6966
+ color: "var(--bw-text-color)",
6967
+ }, children: [u$2("div", { style: { marginTop: "4px", flexShrink: 0 }, children: u$2(IconCheck$1, { size: 16, color: "var(--bw-success-color)" }) }), u$2("span", { children: highlight.trim() })] }, index))) }) }) }))] }), eventType.description && (u$2("div", { style: {
6968
+ marginBottom: "24px",
6969
+ color: "var(--bw-text-muted)",
6970
+ fontSize: "16px",
6971
+ lineHeight: "1.6",
6972
+ fontFamily: "var(--bw-font-family)",
6973
+ padding: "0px 20px",
6974
+ }, children: [u$2("style", { dangerouslySetInnerHTML: {
6975
+ __html: `
6976
+ .bw-markdown-content p {
6977
+ margin: 0 0 12px 0 !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 p:last-child {
6983
+ margin-bottom: 0 !important;
6984
+ }
6985
+ .bw-markdown-content h2 {
6986
+ font-size: 20px !important;
6987
+ font-weight: 700 !important;
6988
+ color: var(--bw-text-color) !important;
6989
+ margin: 20px 0 8px 0 !important;
6990
+ line-height: 1.3 !important;
6991
+ display: block !important;
6992
+ }
6993
+ .bw-markdown-content h3 {
6994
+ font-size: 18px !important;
6995
+ font-weight: 600 !important;
6996
+ color: var(--bw-text-color) !important;
6997
+ margin: 16px 0 8px 0 !important;
6998
+ line-height: 1.3 !important;
6999
+ display: block !important;
7000
+ }
7001
+ .bw-markdown-content strong {
7002
+ font-weight: 700 !important;
7003
+ color: var(--bw-text-color) !important;
7004
+ }
7005
+ .bw-markdown-content em {
7006
+ font-style: italic !important;
7007
+ }
7008
+ .bw-markdown-content u {
7009
+ text-decoration: underline !important;
7010
+ }
7011
+ .bw-markdown-content ul {
7012
+ margin: 12px 0 !important;
7013
+ padding-left: 24px !important;
7014
+ list-style-type: disc !important;
7015
+ display: block !important;
7016
+ }
7017
+ .bw-markdown-content ol {
7018
+ margin: 12px 0 !important;
7019
+ padding-left: 24px !important;
7020
+ list-style-type: decimal !important;
7021
+ display: block !important;
7022
+ }
7023
+ .bw-markdown-content li {
7024
+ margin-bottom: 4px !important;
7025
+ display: list-item !important;
7026
+ color: var(--bw-text-muted) !important;
7027
+ font-family: var(--bw-font-family) !important;
7028
+ line-height: 1.6 !important;
7029
+ }
7030
+ .bw-markdown-content blockquote {
7031
+ margin: 12px 0 !important;
7032
+ padding-left: 16px !important;
7033
+ border-left: 3px solid var(--bw-border-color) !important;
7034
+ font-style: italic !important;
7035
+ color: var(--bw-text-muted) !important;
7036
+ display: block !important;
7037
+ }
7038
+ .bw-markdown-content a {
7039
+ color: var(--bw-highlight-color) !important;
7040
+ text-decoration: underline !important;
7041
+ }
7042
+ .bw-markdown-content a:hover {
7043
+ text-decoration: none !important;
7044
+ }
7045
+ `,
7046
+ } }), u$2("div", { className: "bw-markdown-content", children: Markdown({ children: preprocessMarkdown$1(eventType.description) }) })] })), u$2("div", { style: {
7047
+ display: "flex",
7048
+ justifyContent: "space-between",
7049
+ alignItems: "center",
7050
+ marginTop: "32px",
7051
+ padding: "20px",
7052
+ backgroundColor: "var(--bw-background-color)",
7053
+ borderRadius: "var(--bw-border-radius)",
7054
+ border: `1px solid var(--bw-border-color)`,
7055
+ }, children: [u$2("div", { children: [u$2("div", { className: "bw-event-type-price", style: {
7056
+ fontWeight: "700",
7057
+ color: "var(--bw-text-color)",
7058
+ fontFamily: "var(--bw-font-family)",
7059
+ textAlign: "left",
7060
+ }, children: eventType.groupedDurations && u$2("span", { children: eventType.groupedDurations }) }), u$2("div", { className: "bw-event-type-price", style: {
7061
+ fontSize: "clamp(1.72rem, 4vw, 32px)",
7062
+ fontWeight: "700",
7063
+ color: "var(--bw-text-color)",
7064
+ fontFamily: "var(--bw-font-family)",
7065
+ textAlign: "right",
7066
+ }, children: u$2("span", { children: ["ab ", formatCurrency(eventType.minPrice)] }) })] }), isAvailable && (u$2("button", { onClick: handleBookingClick, style: {
7067
+ backgroundColor: "var(--bw-highlight-color)",
7068
+ color: "white",
7069
+ padding: "14px 28px",
7070
+ border: "none",
7071
+ borderRadius: "var(--bw-border-radius)",
7072
+ fontSize: "16px",
7073
+ fontWeight: "600",
7074
+ fontFamily: "var(--bw-font-family)",
7081
7075
  display: "flex",
7082
7076
  alignItems: "center",
7083
- justifyContent: "center",
7084
- borderRadius: "var(--bw-border-radius)",
7085
- }, children: u$2("div", { style: {
7086
- backgroundColor: "rgba(255, 255, 255, 0.9)",
7087
- padding: "16px 32px",
7088
- borderRadius: "var(--bw-border-radius)",
7089
- color: "var(--bw-text-color)",
7090
- fontWeight: "600",
7091
- fontSize: "18px",
7092
- fontFamily: "var(--bw-font-family)",
7093
- boxShadow: "var(--bw-shadow-md)",
7094
- }, children: "Ausgebucht" }) }))] }) }) }) }));
7077
+ gap: "8px",
7078
+ cursor: "pointer",
7079
+ transition: "all 0.2s ease",
7080
+ }, onMouseEnter: (e) => {
7081
+ e.currentTarget.style.opacity = "0.9";
7082
+ e.currentTarget.style.transform = "translateY(-1px)";
7083
+ }, onMouseLeave: (e) => {
7084
+ e.currentTarget.style.opacity = "1";
7085
+ e.currentTarget.style.transform = "translateY(0)";
7086
+ }, children: [u$2(IconWave$1, { size: 20, color: "white" }), "Jetzt buchen"] }))] }), !isAvailable && (u$2("div", { style: {
7087
+ position: "absolute",
7088
+ inset: 0,
7089
+ backgroundColor: "rgba(0, 0, 0, 0.3)",
7090
+ backdropFilter: "blur(2px)",
7091
+ display: "flex",
7092
+ alignItems: "center",
7093
+ justifyContent: "center",
7094
+ borderRadius: "var(--bw-border-radius)",
7095
+ }, children: u$2("div", { style: {
7096
+ backgroundColor: "rgba(255, 255, 255, 0.9)",
7097
+ padding: "16px 32px",
7098
+ borderRadius: "var(--bw-border-radius)",
7099
+ color: "var(--bw-text-color)",
7100
+ fontWeight: "600",
7101
+ fontSize: "18px",
7102
+ fontFamily: "var(--bw-font-family)",
7103
+ boxShadow: "var(--bw-shadow-md)",
7104
+ }, children: "Ausgebucht" }) }))] }) }));
7095
7105
  }
7096
7106
 
7097
7107
  // Carousel navigation icons
@@ -7143,7 +7153,7 @@
7143
7153
  if (images.length === 0) {
7144
7154
  return u$2(EventImagePlaceholder, {});
7145
7155
  }
7146
- return (u$2("div", { style: { position: "relative", width: "100%", height: "100%", overflow: "hidden" }, children: [u$2("div", { style: {
7156
+ return (u$2("div", { style: { position: "relative", width: "100%", height: "100%", overflow: "hidden", borderRadius: "inherit" }, children: [u$2("div", { style: {
7147
7157
  display: "flex",
7148
7158
  width: `${images.length * 100}%`,
7149
7159
  height: "100%",
@@ -7155,6 +7165,7 @@
7155
7165
  flexShrink: 0,
7156
7166
  overflow: "hidden",
7157
7167
  position: "relative",
7168
+ borderRadius: "inherit"
7158
7169
  }, children: u$2("img", { src: image, alt: `${eventName} - Bild ${index + 1}`, style: {
7159
7170
  width: "100%",
7160
7171
  height: "100%",
@@ -7163,6 +7174,7 @@
7163
7174
  position: "absolute",
7164
7175
  top: 0,
7165
7176
  left: 0,
7177
+ borderRadius: "inherit"
7166
7178
  } }) }, index))) }), images.length > 1 && (u$2(k$3, { children: [u$2("button", { onClick: prevImage, disabled: isTransitioning, style: {
7167
7179
  position: "absolute",
7168
7180
  left: "12px",
@@ -7639,6 +7651,7 @@
7639
7651
  backgroundColor: "var(--bw-surface-color)",
7640
7652
  border: `1px solid var(--bw-border-color)`,
7641
7653
  borderRadius: "var(--bw-border-radius)",
7654
+ overflow: "hidden",
7642
7655
  transition: "all 0.3s ease",
7643
7656
  cursor: isAvailable ? "pointer" : "not-allowed",
7644
7657
  opacity: isAvailable ? 1 : 0.6,
@@ -7675,153 +7688,154 @@
7675
7688
  display: "flex",
7676
7689
  flexDirection: "column",
7677
7690
  justifyContent: "space-between",
7678
- }, children: [u$2("h2", { className: "bw-event-type-title", style: {
7679
- fontSize: "clamp(1.1rem, 2.5vw, 24px)",
7680
- fontWeight: "700",
7681
- color: "var(--bw-text-color)",
7682
- lineHeight: "1.3",
7683
- fontFamily: "var(--bw-font-family)",
7684
- margin: "0 0 12px 0",
7685
- }, children: eventType.name }), u$2("div", { style: {
7686
- display: "flex",
7687
- alignItems: "center",
7688
- gap: "6px",
7689
- }, children: [u$2(IconCalendar, { size: 17, color: "var(--bw-text-color)" }), u$2("span", { style: {
7690
- fontFamily: "var(--bw-font-family)",
7691
- fontSize: "14px",
7692
- color: "var(--bw-text-muted)",
7693
- }, children: eventType.nextAvailableDate
7694
- ? `Freie Plätze ab ${formatDate(eventType.nextAvailableDate)}`
7695
- : "Keine Termine frei" })] }), u$2("div", { style: { cursor: "pointer" }, onClick: (e) => {
7696
- e.stopPropagation();
7697
- handleShowDetails(eventType);
7698
- }, children: eventType.highlights && eventType.highlights.length > 0 ? (
7699
- // Show highlights as list
7700
- u$2("div", { className: "bw-event-type-highlights", style: {
7701
- margin: "10px 0px 10px 0px",
7702
- minHeight: "128px",
7703
- fontSize: "clamp(0.95rem, 2vw, 16px)",
7704
- }, children: u$2("ul", { style: {
7705
- listStyle: "none",
7706
- display: "-webkit-box",
7707
- WebkitLineClamp: 5,
7708
- WebkitBoxOrient: "vertical",
7709
- maxHeight: "128px",
7710
- padding: "0",
7711
- margin: "0",
7712
- flexDirection: "column",
7713
- gap: "3px",
7714
- position: "relative",
7715
- }, children: eventType.highlights
7716
- .filter((highlight) => highlight.trim())
7717
- .map((highlight, index) => (u$2("li", { style: {
7718
- display: "flex",
7719
- alignItems: "flex-start",
7720
- gap: "8px",
7721
- fontFamily: "var(--bw-font-family)",
7722
- lineHeight: "1.55",
7723
- color: "var(--bw-text-muted)",
7724
- position: "relative",
7725
- maxWidth: "100%",
7726
- }, children: [u$2("div", { style: { marginTop: "4px", flexShrink: 0 }, children: u$2(IconCheck, { size: 16, color: "var(--bw-success-color)" }) }), u$2("span", { style: {
7727
- textOverflow: "ellipsis",
7728
- overflow: "hidden",
7729
- whiteSpace: "nowrap",
7730
- flex: "1",
7731
- }, children: highlight.trim() })] }, index))) }) })) : eventType.description ? (u$2("div", { className: "bw-event-type-desc", style: {
7732
- color: "var(--bw-text-muted)",
7733
- fontSize: "clamp(0.95rem, 2vw, 16px)",
7734
- lineHeight: "1.6",
7735
- fontFamily: "var(--bw-font-family)",
7736
- margin: "10px 0 10px 0",
7737
- minHeight: "128px",
7738
- maxHeight: "128px",
7739
- overflow: "hidden",
7740
- textAlign: "left",
7741
- }, children: u$2("div", { className: "bw-event-type-markdown", style: {
7742
- display: "-webkit-box",
7743
- WebkitLineClamp: 5,
7744
- WebkitBoxOrient: "vertical",
7745
- overflow: "hidden",
7746
- }, children: Markdown({
7747
- children: preprocessMarkdown(eventType.description),
7748
- }) }) })) : (u$2("div", { className: "bw-event-type-desc", style: {
7749
- color: "var(--bw-text-muted)",
7750
- fontSize: "clamp(0.95rem, 2vw, 16px)",
7751
- lineHeight: "1.6",
7752
- fontFamily: "var(--bw-font-family)",
7753
- margin: "10px 0 10px 0",
7754
- minHeight: "128px",
7755
- maxHeight: "128px",
7756
- overflow: "hidden",
7757
- textAlign: "left",
7758
- }, children: "\u00A0" })) }), u$2("div", { children: [u$2("div", { className: "bw-event-type-price", style: {
7759
- fontWeight: "700",
7760
- color: "var(--bw-text-color)",
7761
- fontFamily: "var(--bw-font-family)",
7762
- textAlign: "right",
7763
- }, children: eventType.groupedDurations.length > 1 ? (u$2("span", { children: eventType.groupedDurations })) : (u$2("span", { children: eventType.cheapestDurationPerDay % 60 === 0
7764
- ? `${eventType.cheapestDurationPerDay / 60} Stunde${eventType.cheapestDurationPerDay / 60 > 1 ? "n" : ""}`
7765
- : `${eventType.cheapestDurationPerDay} Minuten` })) }), u$2("div", { className: "bw-event-type-price", style: {
7766
- fontSize: "clamp(1.72rem, 4vw, 32px)",
7691
+ height: "400px",
7692
+ }, children: [u$2("div", { children: [u$2("h2", { className: "bw-event-type-title", style: {
7693
+ fontSize: "clamp(1.1rem, 2.5vw, 24px)",
7767
7694
  fontWeight: "700",
7768
7695
  color: "var(--bw-text-color)",
7696
+ lineHeight: "1.3",
7769
7697
  fontFamily: "var(--bw-font-family)",
7770
- textAlign: "right",
7771
- }, children: u$2("span", { children: ["ab ", formatCurrency(eventType.minPrice)] }) })] }), u$2("div", { style: {
7772
- display: "flex",
7773
- justifyContent: "flex-end",
7774
- alignItems: "center",
7775
- marginTop: "10px",
7776
- gap: "12px",
7777
- }, children: [(eventType.description ||
7778
- (eventType.highlights && eventType.highlights.length > 0)) && (u$2("button", { onClick: (e) => {
7779
- e.stopPropagation();
7780
- handleShowDetails(eventType);
7781
- }, style: {
7782
- color: "var(--bw-highlight-color)",
7783
- background: "var(--bw-surface-color)",
7784
- padding: "12px 12px",
7785
- borderRadius: "var(--bw-border-radius)",
7786
- fontSize: "clamp(0.8rem, 2vw, 16px)",
7787
- fontWeight: "600",
7788
- fontFamily: "var(--bw-font-family)",
7698
+ margin: "0 0 12px 0",
7699
+ }, children: eventType.name }), u$2("div", { style: {
7789
7700
  display: "flex",
7790
7701
  alignItems: "center",
7791
- gap: "8px",
7792
- border: "2px solid var(--bw-highlight-color)",
7793
- cursor: "pointer",
7794
- opacity: "0.6",
7795
- transition: "all 0.2s ease",
7796
- }, onMouseEnter: (e) => {
7797
- e.currentTarget.style.opacity = "1";
7798
- e.currentTarget.style.transform = "translateY(-1px)";
7799
- }, onMouseLeave: (e) => {
7800
- e.currentTarget.style.opacity = "0.6";
7801
- e.currentTarget.style.transform = "translateY(0)";
7802
- }, children: "Mehr Details" })), isAvailable && (u$2("div", { style: {
7803
- backgroundColor: "var(--bw-highlight-color)",
7804
- color: "var(--bw-surface-color)",
7805
- padding: "12px 24px",
7806
- borderRadius: "var(--bw-border-radius)",
7807
- fontSize: "clamp(1rem, 2vw, 16px)",
7808
- fontWeight: "600",
7809
- fontFamily: "var(--bw-font-family)",
7702
+ gap: "6px",
7703
+ }, children: [u$2(IconCalendar, { size: 17, color: "var(--bw-text-color)" }), u$2("span", { style: {
7704
+ fontFamily: "var(--bw-font-family)",
7705
+ fontSize: "14px",
7706
+ color: "var(--bw-text-muted)",
7707
+ }, children: eventType.nextAvailableDate
7708
+ ? `Freie Plätze ab ${formatDate(eventType.nextAvailableDate)}`
7709
+ : "Keine Termine frei" })] }), u$2("div", { style: { cursor: "pointer" }, onClick: (e) => {
7710
+ e.stopPropagation();
7711
+ handleShowDetails(eventType);
7712
+ }, children: eventType.highlights && eventType.highlights.length > 0 ? (
7713
+ // Show highlights as list
7714
+ u$2("div", { className: "bw-event-type-highlights", style: {
7715
+ margin: "10px 0px 10px 0px",
7716
+ minHeight: "128px",
7717
+ fontSize: "clamp(0.95rem, 2vw, 16px)",
7718
+ }, children: u$2("ul", { style: {
7719
+ listStyle: "none",
7720
+ display: "-webkit-box",
7721
+ WebkitLineClamp: 5,
7722
+ WebkitBoxOrient: "vertical",
7723
+ maxHeight: "128px",
7724
+ padding: "0",
7725
+ margin: "0",
7726
+ flexDirection: "column",
7727
+ gap: "3px",
7728
+ position: "relative",
7729
+ }, children: eventType.highlights
7730
+ .filter((highlight) => highlight.trim())
7731
+ .map((highlight, index) => (u$2("li", { style: {
7732
+ display: "flex",
7733
+ alignItems: "flex-start",
7734
+ gap: "8px",
7735
+ fontFamily: "var(--bw-font-family)",
7736
+ lineHeight: "1.55",
7737
+ color: "var(--bw-text-muted)",
7738
+ position: "relative",
7739
+ maxWidth: "100%",
7740
+ }, children: [u$2("div", { style: { marginTop: "4px", flexShrink: 0 }, children: u$2(IconCheck, { size: 16, color: "var(--bw-success-color)" }) }), u$2("span", { style: {
7741
+ textOverflow: "ellipsis",
7742
+ overflow: "hidden",
7743
+ whiteSpace: "nowrap",
7744
+ flex: "1",
7745
+ }, children: highlight.trim() })] }, index))) }) })) : eventType.description ? (u$2("div", { className: "bw-event-type-desc", style: {
7746
+ color: "var(--bw-text-muted)",
7747
+ fontSize: "clamp(0.95rem, 2vw, 16px)",
7748
+ lineHeight: "1.6",
7749
+ fontFamily: "var(--bw-font-family)",
7750
+ margin: "10px 0 10px 0",
7751
+ minHeight: "128px",
7752
+ maxHeight: "128px",
7753
+ overflow: "hidden",
7754
+ textAlign: "left",
7755
+ }, children: u$2("div", { className: "bw-event-type-markdown", style: {
7756
+ display: "-webkit-box",
7757
+ WebkitLineClamp: 5,
7758
+ WebkitBoxOrient: "vertical",
7759
+ overflow: "hidden",
7760
+ }, children: Markdown({
7761
+ children: preprocessMarkdown(eventType.description),
7762
+ }) }) })) : (u$2("div", { className: "bw-event-type-desc", style: {
7763
+ color: "var(--bw-text-muted)",
7764
+ fontSize: "clamp(0.95rem, 2vw, 16px)",
7765
+ lineHeight: "1.6",
7766
+ fontFamily: "var(--bw-font-family)",
7767
+ margin: "10px 0 10px 0",
7768
+ minHeight: "128px",
7769
+ maxHeight: "128px",
7770
+ overflow: "hidden",
7771
+ textAlign: "left",
7772
+ }, children: "\u00A0" })) })] }), u$2("div", { children: [u$2("div", { children: [u$2("div", { className: "bw-event-type-price", style: {
7773
+ fontWeight: "700",
7774
+ color: "var(--bw-text-color)",
7775
+ fontFamily: "var(--bw-font-family)",
7776
+ textAlign: "right",
7777
+ }, children: eventType.groupedDurations.length > 1 ? (u$2("span", { children: eventType.groupedDurations })) : (u$2("span", { children: eventType.cheapestDurationPerDay % 60 === 0
7778
+ ? `${eventType.cheapestDurationPerDay / 60} Stunde${eventType.cheapestDurationPerDay / 60 > 1 ? "n" : ""}`
7779
+ : `${eventType.cheapestDurationPerDay} Minuten` })) }), u$2("div", { className: "bw-event-type-price", style: {
7780
+ fontSize: "clamp(1.72rem, 4vw, 32px)",
7781
+ fontWeight: "700",
7782
+ color: "var(--bw-text-color)",
7783
+ fontFamily: "var(--bw-font-family)",
7784
+ textAlign: "right",
7785
+ }, children: u$2("span", { children: ["ab ", formatCurrency(eventType.minPrice)] }) })] }), u$2("div", { style: {
7810
7786
  display: "flex",
7787
+ justifyContent: "flex-end",
7811
7788
  alignItems: "center",
7812
- justifyContent: "center",
7813
- textAlign: "center",
7814
- gap: "8px",
7815
- border: "none",
7816
- cursor: "pointer",
7817
- transition: "all 0.2s ease",
7818
- }, onMouseEnter: (e) => {
7819
- e.currentTarget.style.opacity = "0.8";
7820
- e.currentTarget.style.transform = "translateY(-1px)";
7821
- }, onMouseLeave: (e) => {
7822
- e.currentTarget.style.opacity = "1";
7823
- e.currentTarget.style.transform = "translateY(0)";
7824
- }, children: [u$2(IconWave, { size: 15, color: "var(--bw-surface-color)" }), " Jetzt buchen"] }))] })] }), !isAvailable && (u$2("div", { style: {
7789
+ marginTop: "10px",
7790
+ gap: "12px",
7791
+ }, children: [(eventType.description ||
7792
+ (eventType.highlights && eventType.highlights.length > 0)) && (u$2("button", { onClick: (e) => {
7793
+ e.stopPropagation();
7794
+ handleShowDetails(eventType);
7795
+ }, style: {
7796
+ color: "var(--bw-highlight-color)",
7797
+ background: "var(--bw-surface-color)",
7798
+ padding: "12px 12px",
7799
+ borderRadius: "var(--bw-border-radius)",
7800
+ fontSize: "clamp(0.8rem, 2vw, 16px)",
7801
+ fontWeight: "600",
7802
+ fontFamily: "var(--bw-font-family)",
7803
+ display: "flex",
7804
+ alignItems: "center",
7805
+ gap: "8px",
7806
+ border: "2px solid var(--bw-highlight-color)",
7807
+ cursor: "pointer",
7808
+ opacity: "0.6",
7809
+ transition: "all 0.2s ease",
7810
+ }, onMouseEnter: (e) => {
7811
+ e.currentTarget.style.opacity = "1";
7812
+ e.currentTarget.style.transform = "translateY(-1px)";
7813
+ }, onMouseLeave: (e) => {
7814
+ e.currentTarget.style.opacity = "0.6";
7815
+ e.currentTarget.style.transform = "translateY(0)";
7816
+ }, children: "Mehr Details" })), isAvailable && (u$2("div", { style: {
7817
+ backgroundColor: "var(--bw-highlight-color)",
7818
+ color: "var(--bw-surface-color)",
7819
+ padding: "12px 24px",
7820
+ borderRadius: "var(--bw-border-radius)",
7821
+ fontSize: "clamp(1rem, 2vw, 16px)",
7822
+ fontWeight: "600",
7823
+ fontFamily: "var(--bw-font-family)",
7824
+ display: "flex",
7825
+ alignItems: "center",
7826
+ justifyContent: "center",
7827
+ textAlign: "center",
7828
+ gap: "8px",
7829
+ border: "none",
7830
+ cursor: "pointer",
7831
+ transition: "all 0.2s ease",
7832
+ }, onMouseEnter: (e) => {
7833
+ e.currentTarget.style.opacity = "0.8";
7834
+ e.currentTarget.style.transform = "translateY(-1px)";
7835
+ }, onMouseLeave: (e) => {
7836
+ e.currentTarget.style.opacity = "1";
7837
+ e.currentTarget.style.transform = "translateY(0)";
7838
+ }, children: [u$2(IconWave, { size: 15, color: "var(--bw-surface-color)" }), " Jetzt buchen"] }))] })] })] }), !isAvailable && (u$2("div", { style: {
7825
7839
  position: "absolute",
7826
7840
  inset: 0,
7827
7841
  backgroundColor: "rgba(0, 0, 0, 0.3)",
@@ -9633,6 +9647,7 @@
9633
9647
  position: "absolute",
9634
9648
  inset: 0,
9635
9649
  backgroundColor: "rgba(0, 0, 0, 0.5)",
9650
+ backdropFilter: "blur(10px)",
9636
9651
  opacity: isAnimating ? 1 : 0,
9637
9652
  transition: "opacity 0.25s ease-out",
9638
9653
  }, onClick: onClose }), u$2("div", { style: {
@@ -9979,11 +9994,11 @@
9979
9994
  display: "flex",
9980
9995
  alignItems: "center",
9981
9996
  gap: "4px",
9982
- }, children: [u$2(IconMoney, { size: 20, color: "var(--bw-highlight-color)" }), " Preis:"] }), u$2("span", { style: {
9997
+ }, children: [u$2(IconCalendar, { size: 20, color: "var(--bw-highlight-color)" }), " Uhrzeit:"] }), u$2("span", { style: {
9983
9998
  color: "var(--bw-text-color)",
9984
9999
  fontWeight: "500",
9985
10000
  fontFamily: "var(--bw-font-family)",
9986
- }, children: [formatCurrency(eventDetails.price), " pro Person"] })] }), u$2("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between" }, children: [u$2("span", { style: {
10001
+ }, children: formatTime(eventDetails.startTime, "Europe/Berlin", "de") })] }), u$2("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between" }, children: [u$2("span", { style: {
9987
10002
  color: "var(--bw-text-muted)",
9988
10003
  fontFamily: "var(--bw-font-family)",
9989
10004
  display: "flex",
@@ -9993,7 +10008,17 @@
9993
10008
  color: "var(--bw-text-color)",
9994
10009
  fontWeight: "500",
9995
10010
  fontFamily: "var(--bw-font-family)",
9996
- }, children: [eventDetails.durationDays, " Tag", eventDetails.durationDays > 1 ? "e" : ""] })] })] })] }), u$2("div", { style: { display: "flex", flexDirection: "column", gap: "var(--bw-spacing-large)" }, children: [u$2("form", { style: { display: "flex", flexDirection: "column", gap: "var(--bw-spacing-large)" }, children: [u$2("div", { style: {
10011
+ }, children: [eventDetails.durationDays, " Tag", eventDetails.durationDays > 1 ? "e" : ""] })] }), u$2("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between" }, children: [u$2("span", { style: {
10012
+ color: "var(--bw-text-muted)",
10013
+ fontFamily: "var(--bw-font-family)",
10014
+ display: "flex",
10015
+ alignItems: "center",
10016
+ gap: "4px",
10017
+ }, children: [u$2(IconMoney, { size: 20, color: "var(--bw-highlight-color)" }), " Preis:"] }), u$2("span", { style: {
10018
+ color: "var(--bw-text-color)",
10019
+ fontWeight: "500",
10020
+ fontFamily: "var(--bw-font-family)",
10021
+ }, children: [formatCurrency(eventDetails.price), " pro Person"] })] })] })] }), u$2("div", { style: { display: "flex", flexDirection: "column", gap: "var(--bw-spacing-large)" }, children: [u$2("form", { style: { display: "flex", flexDirection: "column", gap: "var(--bw-spacing-large)" }, children: [u$2("div", { style: {
9997
10022
  backgroundColor: "var(--bw-surface-color)",
9998
10023
  border: `1px solid var(--bw-border-color)`,
9999
10024
  backdropFilter: "blur(4px)",
@@ -10150,9 +10175,10 @@
10150
10175
  height: "20px",
10151
10176
  border: "1px solid var(--bw-border-color)",
10152
10177
  accentColor: "var(--bw-highlight-color)",
10153
- backgroundColor: form.getValues("acceptTerms") === true
10154
- ? "var(--bw-highlight-color)"
10155
- : "var(--bw-surface-color)",
10178
+ cursor: "pointer",
10179
+ appearance: "checkbox",
10180
+ WebkitAppearance: "checkbox",
10181
+ MozAppearance: "checkbox",
10156
10182
  } }), u$2("label", { htmlFor: "acceptTerms", style: {
10157
10183
  fontSize: "var(--bw-font-size)",
10158
10184
  color: "var(--bw-text-muted)",
@@ -10162,7 +10188,7 @@
10162
10188
  }, children: ["Ich akzeptiere die", " ", u$2("a", { href: eventDetails.agbUrl || "/terms", style: {
10163
10189
  color: "var(--bw-highlight-color)",
10164
10190
  textDecoration: "none",
10165
- }, target: "_blank", rel: "noopener noreferrer", children: "Allgemeinen Gesch\u00E4ftsbedingungen" }), "*"] })] }), form.formState.errors.acceptTerms && (u$2("p", { style: {
10191
+ }, target: "_blank", rel: "noopener noreferrer", children: "AGBs" }), "*"] })] }), form.formState.errors.acceptTerms && (u$2("p", { style: {
10166
10192
  color: "var(--bw-error-color)",
10167
10193
  fontSize: "var(--bw-font-size)",
10168
10194
  marginTop: "8px",
@@ -10315,65 +10341,230 @@
10315
10341
  ` })] }) }));
10316
10342
  }
10317
10343
 
10318
- const months = [
10319
- "Januar",
10320
- "Februar",
10321
- "März",
10322
- "April",
10323
- "Mai",
10324
- "Juni",
10325
- "Juli",
10326
- "August",
10327
- "September",
10328
- "Oktober",
10329
- "November",
10330
- "Dezember",
10331
- ];
10332
- // Helper function to get allocation badge info based on availability
10333
- const getAllocationBadgeInfo = (availableSpots, maxParticipants) => {
10334
- const availabilityRatio = availableSpots / maxParticipants;
10335
- // Only show badge for low availability (less than 60%)
10336
- if (availabilityRatio >= 0.6)
10337
- return null;
10338
- // Very low availability (30% or less) - "fast ausgebucht"
10339
- if (availabilityRatio <= 0.3) {
10340
- return {
10341
- text: "fast ausgebucht",
10342
- backgroundColor: "#7f1d1d", // Dark red
10343
- textColor: "#fca5a5", // Bright red
10344
- };
10345
- }
10346
- // Low availability (30-60%) - "wenige Plätze"
10347
- return {
10348
- text: "beliebter Termin",
10349
- backgroundColor: "#b45309", // Dark orange/yellow
10350
- textColor: "#fbbf24", // Bright yellow
10351
- };
10352
- };
10353
- // Helper function to get price badge info for special prices
10354
- const getPriceBadgeInfo = (price, yearPrices) => {
10355
- if (yearPrices.length <= 1)
10356
- return null;
10357
- const sortedPrices = [...new Set(yearPrices)].sort((a, b) => a - b); // Remove duplicates and sort
10358
- // Need at least 2 different prices to show badges
10359
- if (sortedPrices.length < 2)
10344
+ const BookingSuccessModal = ({ isOpen, onClose, bookingData, eventDetails, formData, config, }) => {
10345
+ if (!isOpen || !bookingData)
10360
10346
  return null;
10361
- const lowestPrice = sortedPrices[0];
10362
- const secondLowestPrice = sortedPrices[1];
10363
- // Show "am günstigsten" for the lowest price
10364
- if (price === lowestPrice) {
10365
- return {
10366
- text: "bester Preis !!!",
10367
- backgroundColor: "#14532d", // Dark green
10368
- textColor: "#4ade80", // Bright green
10369
- };
10370
- }
10371
- // Show "günstig" for second lowest price, but only if it's not the same as most other prices
10372
- if (price === secondLowestPrice && sortedPrices.length > 2) {
10373
- return {
10374
- text: "günstiger Preis",
10375
- backgroundColor: "#0e7490", // Turquoise
10376
- textColor: "#67e8f9", // Light Turquoise
10347
+ const booking = bookingData.booking;
10348
+ return (u$2(DialogWrapper, { isOpen: isOpen, onClose: onClose, maxWidth: "700px", children: u$2("div", { style: { padding: "var(--bw-spacing-large)" }, children: [u$2("div", { style: {
10349
+ textAlign: "center",
10350
+ marginBottom: "var(--bw-spacing-large)",
10351
+ }, children: [u$2("div", { style: {
10352
+ width: "64px",
10353
+ height: "64px",
10354
+ backgroundColor: "var(--bw-success-color, #10B981)",
10355
+ borderRadius: "50%",
10356
+ margin: "0 auto var(--bw-spacing)",
10357
+ display: "flex",
10358
+ alignItems: "center",
10359
+ justifyContent: "center",
10360
+ fontSize: "32px",
10361
+ color: "white",
10362
+ }, children: "\u2713" }), u$2("h2", { style: {
10363
+ fontSize: "var(--bw-font-size-xl)",
10364
+ fontWeight: "700",
10365
+ color: "var(--bw-text-color)",
10366
+ margin: "0 0 var(--bw-spacing-small) 0",
10367
+ fontFamily: "var(--bw-font-family)",
10368
+ }, children: "Buchung erfolgreich!" }), u$2("p", { style: {
10369
+ color: "var(--bw-text-muted)",
10370
+ fontFamily: "var(--bw-font-family)",
10371
+ margin: 0,
10372
+ }, children: "Deine Buchung wurde erfolgreich abgeschlossen." })] }), u$2("div", { style: {
10373
+ backgroundColor: "var(--bw-surface-color)",
10374
+ border: `1px solid var(--bw-border-color)`,
10375
+ borderRadius: "var(--bw-border-radius)",
10376
+ padding: "var(--bw-spacing)",
10377
+ marginBottom: "var(--bw-spacing-large)",
10378
+ }, children: [u$2("h3", { style: {
10379
+ fontSize: "var(--bw-font-size-large)",
10380
+ fontWeight: "600",
10381
+ color: "var(--bw-text-color)",
10382
+ margin: "0 0 var(--bw-spacing) 0",
10383
+ fontFamily: "var(--bw-font-family)",
10384
+ }, children: "Buchungsdetails" }), u$2("div", { style: { display: "flex", flexDirection: "column", gap: "var(--bw-spacing)" }, children: [booking.bookingHash && (u$2("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [u$2("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "Buchungs-ID:" }), u$2("span", { style: {
10385
+ color: "var(--bw-text-color)",
10386
+ fontWeight: "500",
10387
+ fontFamily: "monospace",
10388
+ fontSize: "var(--bw-font-size-small)",
10389
+ backgroundColor: "var(--bw-background-color)",
10390
+ padding: "4px 8px",
10391
+ borderRadius: "var(--bw-border-radius-small)",
10392
+ }, children: booking.bookingHash })] })), u$2("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [u$2("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "Event:" }), u$2("span", { style: {
10393
+ color: "var(--bw-text-color)",
10394
+ fontWeight: "500",
10395
+ fontFamily: "var(--bw-font-family)",
10396
+ textAlign: "right",
10397
+ maxWidth: "60%",
10398
+ }, children: eventDetails.name })] }), u$2("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [u$2("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "Datum:" }), u$2("span", { style: {
10399
+ color: "var(--bw-text-color)",
10400
+ fontWeight: "500",
10401
+ fontFamily: "var(--bw-font-family)",
10402
+ textAlign: "right",
10403
+ maxWidth: "60%",
10404
+ }, children: formatEventDate(eventDetails.startTime) })] }), u$2("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [u$2("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "Uhrzeit:" }), u$2("span", { style: {
10405
+ color: "var(--bw-text-color)",
10406
+ fontWeight: "500",
10407
+ fontFamily: "var(--bw-font-family)",
10408
+ textAlign: "right",
10409
+ maxWidth: "60%",
10410
+ }, children: formatTime(eventDetails.startTime, "Europe/Berlin", "de") })] }), u$2("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [u$2("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "Teilnehmer:" }), u$2("span", { style: {
10411
+ color: "var(--bw-text-color)",
10412
+ fontWeight: "500",
10413
+ fontFamily: "var(--bw-font-family)",
10414
+ }, children: booking.participantCount })] }), u$2("div", { style: {
10415
+ display: "flex",
10416
+ justifyContent: "space-between",
10417
+ alignItems: "center",
10418
+ borderTop: `1px solid var(--bw-border-color)`,
10419
+ paddingTop: "var(--bw-spacing)",
10420
+ marginTop: "var(--bw-spacing)",
10421
+ }, children: [u$2("span", { style: {
10422
+ color: "var(--bw-text-color)",
10423
+ fontWeight: "600",
10424
+ fontFamily: "var(--bw-font-family)",
10425
+ }, children: "Gesamtbetrag:" }), u$2("span", { style: {
10426
+ color: "var(--bw-text-color)",
10427
+ fontWeight: "600",
10428
+ fontSize: "var(--bw-font-size-large)",
10429
+ fontFamily: "var(--bw-font-family)",
10430
+ }, children: formatCurrency(booking.total) })] })] })] }), formData.participants && formData.participants.length > 0 && (u$2("div", { style: {
10431
+ border: `1px solid var(--bw-border-color)`,
10432
+ borderRadius: "var(--bw-border-radius)",
10433
+ padding: "var(--bw-spacing)",
10434
+ marginBottom: "var(--bw-spacing-large)",
10435
+ }, children: [u$2("h3", { style: {
10436
+ fontSize: "var(--bw-font-size-large)",
10437
+ fontWeight: "600",
10438
+ color: "var(--bw-text-color)",
10439
+ margin: "0 0 var(--bw-spacing) 0",
10440
+ fontFamily: "var(--bw-font-family)",
10441
+ }, children: "Teilnehmer" }), u$2("div", { style: { display: "flex", flexDirection: "column", gap: "var(--bw-spacing-small)" }, children: formData.participants
10442
+ .filter((p) => p.name.trim())
10443
+ .map((participant, index) => (u$2("div", { style: {
10444
+ display: "flex",
10445
+ justifyContent: "space-between",
10446
+ alignItems: "center",
10447
+ padding: "var(--bw-spacing-small)",
10448
+ borderRadius: "var(--bw-border-radius-small)",
10449
+ }, children: [u$2("span", { style: {
10450
+ color: "var(--bw-text-color)",
10451
+ fontFamily: "var(--bw-font-family)",
10452
+ }, children: participant.name }), participant.age && (u$2("span", { style: {
10453
+ color: "var(--bw-text-muted)",
10454
+ fontSize: "var(--bw-font-size-small)",
10455
+ fontFamily: "var(--bw-font-family)",
10456
+ }, children: [participant.age, " Jahre"] }))] }, index))) })] })), u$2("div", { style: {
10457
+ backgroundColor: "var(--bw-surface-color)",
10458
+ border: `1px solid var(--bw-border-color)`,
10459
+ borderRadius: "var(--bw-border-radius)",
10460
+ padding: "var(--bw-spacing)",
10461
+ marginBottom: "var(--bw-spacing-large)",
10462
+ }, children: [u$2("h3", { style: {
10463
+ fontSize: "var(--bw-font-size-large)",
10464
+ fontWeight: "600",
10465
+ color: "var(--bw-text-color)",
10466
+ margin: "0 0 var(--bw-spacing) 0",
10467
+ fontFamily: "var(--bw-font-family)",
10468
+ }, children: "Kontaktdaten" }), u$2("div", { style: { display: "flex", flexDirection: "column", gap: "var(--bw-spacing-small)" }, children: [u$2("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [u$2("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "Name:" }), u$2("span", { style: { color: "var(--bw-text-color)", fontFamily: "var(--bw-font-family)" }, children: formData.customerName })] }), u$2("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [u$2("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "E-Mail:" }), u$2("span", { style: { color: "var(--bw-text-color)", fontFamily: "var(--bw-font-family)" }, children: formData.customerEmail })] }), formData.customerPhone && (u$2("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [u$2("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "Telefon:" }), u$2("span", { style: { color: "var(--bw-text-color)", fontFamily: "var(--bw-font-family)" }, children: formData.customerPhone })] }))] })] }), u$2("div", { style: {
10469
+ backgroundColor: "var(--bw-surface-muted-bg, rgba(59, 130, 246, 0.05))",
10470
+ border: `1px solid var(--bw-border-color)`,
10471
+ borderRadius: "var(--bw-border-radius)",
10472
+ padding: "var(--bw-spacing)",
10473
+ marginBottom: "var(--bw-spacing-large)",
10474
+ textAlign: "center",
10475
+ }, children: [u$2("div", { style: {
10476
+ color: "var(--bw-highlight-color)",
10477
+ fontSize: "24px",
10478
+ marginBottom: "var(--bw-spacing-small)",
10479
+ }, children: "\uD83D\uDCE7" }), u$2("p", { style: {
10480
+ color: "var(--bw-text-muted)",
10481
+ margin: 0,
10482
+ fontFamily: "var(--bw-font-family)",
10483
+ fontSize: "var(--bw-font-size-small)",
10484
+ }, children: ["Eine Best\u00E4tigungs-E-Mail wird in K\u00FCrze an ", formData.customerEmail, " gesendet."] })] }), u$2("div", { style: { textAlign: "center" }, children: u$2("button", { onClick: onClose, style: {
10485
+ backgroundColor: "var(--bw-highlight-color)",
10486
+ color: "white",
10487
+ padding: "12px 32px",
10488
+ border: "none",
10489
+ borderRadius: "var(--bw-border-radius)",
10490
+ fontSize: "var(--bw-font-size)",
10491
+ fontWeight: "600",
10492
+ cursor: "pointer",
10493
+ fontFamily: "var(--bw-font-family)",
10494
+ transition: "all 0.2s ease",
10495
+ }, onMouseEnter: (e) => {
10496
+ e.currentTarget.style.opacity = "0.9";
10497
+ }, onMouseLeave: (e) => {
10498
+ e.currentTarget.style.opacity = "1";
10499
+ }, children: "Schlie\u00DFen" }) })] }) }));
10500
+ };
10501
+
10502
+ const months = [
10503
+ "Januar",
10504
+ "Februar",
10505
+ "März",
10506
+ "April",
10507
+ "Mai",
10508
+ "Juni",
10509
+ "Juli",
10510
+ "August",
10511
+ "September",
10512
+ "Oktober",
10513
+ "November",
10514
+ "Dezember",
10515
+ ];
10516
+ // Helper function to get allocation badge info based on availability
10517
+ const getAllocationBadgeInfo = (availableSpots, maxParticipants) => {
10518
+ const availabilityRatio = availableSpots / maxParticipants;
10519
+ // Only show badge for low availability (less than 60%)
10520
+ if (availabilityRatio >= 0.6)
10521
+ return null;
10522
+ if (availabilityRatio === 0) {
10523
+ return {
10524
+ text: "ausgebucht",
10525
+ backgroundColor: "#7f1d1d", // Dark red
10526
+ textColor: "#fca5a5", // Bright red
10527
+ };
10528
+ }
10529
+ // Very low availability (30% or less) - "fast ausgebucht"
10530
+ if (availabilityRatio <= 0.3) {
10531
+ return {
10532
+ text: "fast ausgebucht",
10533
+ backgroundColor: "#7f1d1d", // Dark red
10534
+ textColor: "#fca5a5", // Bright red
10535
+ };
10536
+ }
10537
+ // Low availability (30-60%) - "wenige Plätze"
10538
+ return {
10539
+ text: "beliebter Termin",
10540
+ backgroundColor: "#b45309", // Dark orange/yellow
10541
+ textColor: "#fbbf24", // Bright yellow
10542
+ };
10543
+ };
10544
+ // Helper function to get price badge info for special prices
10545
+ const getPriceBadgeInfo = (price, yearPrices) => {
10546
+ if (yearPrices.length <= 1)
10547
+ return null;
10548
+ const sortedPrices = [...new Set(yearPrices)].sort((a, b) => a - b); // Remove duplicates and sort
10549
+ // Need at least 2 different prices to show badges
10550
+ if (sortedPrices.length < 2)
10551
+ return null;
10552
+ const lowestPrice = sortedPrices[0];
10553
+ const secondLowestPrice = sortedPrices[1];
10554
+ // Show "am günstigsten" for the lowest price
10555
+ if (price === lowestPrice) {
10556
+ return {
10557
+ text: "bester Preis !!!",
10558
+ backgroundColor: "#14532d", // Dark green
10559
+ textColor: "#4ade80", // Bright green
10560
+ };
10561
+ }
10562
+ // Show "günstig" for second lowest price, but only if it's not the same as most other prices
10563
+ if (price === secondLowestPrice && sortedPrices.length > 2) {
10564
+ return {
10565
+ text: "günstiger Preis",
10566
+ backgroundColor: "#0e7490", // Turquoise
10567
+ textColor: "#67e8f9", // Light Turquoise
10377
10568
  };
10378
10569
  }
10379
10570
  return null;
@@ -10891,7 +11082,7 @@
10891
11082
  padding: "16px 20px",
10892
11083
  transition: "all 0.2s ease",
10893
11084
  opacity: isFullyBooked || isPastEvent ? 0.3 : 1,
10894
- filter: isFullyBooked || isPastEvent ? "grayscale(100%)" : "none",
11085
+ filter: isFullyBooked || isPastEvent ? "grayscale(40%)" : "none",
10895
11086
  fontFamily: "var(--bw-font-family)",
10896
11087
  }, onClick: () => {
10897
11088
  if (!isFullyBooked && !isPastEvent && event.bookingOpen) {
@@ -11385,198 +11576,6 @@
11385
11576
  }
11386
11577
 
11387
11578
  // Predefined themes & Style Provider have been moved to ../styles/StyleProvider.tsx
11388
- // Success Modal Component
11389
- const BookingSuccessModal = ({ isOpen, onClose, bookingData, eventDetails, formData, config, }) => {
11390
- if (!isOpen || !bookingData)
11391
- return null;
11392
- const booking = bookingData.booking;
11393
- return (u$2("div", { style: {
11394
- position: "fixed",
11395
- top: 0,
11396
- left: 0,
11397
- right: 0,
11398
- bottom: 0,
11399
- backgroundColor: "rgba(0, 0, 0, 0.5)",
11400
- zIndex: 10000,
11401
- display: "flex",
11402
- alignItems: "center",
11403
- justifyContent: "center",
11404
- padding: "var(--bw-spacing)",
11405
- }, children: u$2("div", { style: {
11406
- backgroundColor: "var(--bw-background-color)",
11407
- borderRadius: "var(--bw-border-radius)",
11408
- padding: "var(--bw-spacing-large)",
11409
- maxWidth: "500px",
11410
- width: "100%",
11411
- maxHeight: "90vh",
11412
- overflow: "auto",
11413
- position: "relative",
11414
- border: `1px solid var(--bw-border-color)`,
11415
- boxShadow: "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)",
11416
- }, children: [u$2("button", { onClick: onClose, style: {
11417
- position: "absolute",
11418
- top: "var(--bw-spacing)",
11419
- right: "var(--bw-spacing)",
11420
- background: "none",
11421
- border: "none",
11422
- fontSize: "24px",
11423
- cursor: "pointer",
11424
- color: "var(--bw-text-muted)",
11425
- width: "32px",
11426
- height: "32px",
11427
- display: "flex",
11428
- alignItems: "center",
11429
- justifyContent: "center",
11430
- borderRadius: "var(--bw-border-radius-small)",
11431
- }, children: "\u00D7" }), u$2("div", { style: {
11432
- textAlign: "center",
11433
- marginBottom: "var(--bw-spacing-large)",
11434
- }, children: [u$2("div", { style: {
11435
- width: "64px",
11436
- height: "64px",
11437
- backgroundColor: "var(--bw-success-color, #10B981)",
11438
- borderRadius: "50%",
11439
- margin: "0 auto var(--bw-spacing)",
11440
- display: "flex",
11441
- alignItems: "center",
11442
- justifyContent: "center",
11443
- fontSize: "32px",
11444
- color: "white",
11445
- }, children: "\u2713" }), u$2("h2", { style: {
11446
- fontSize: "var(--bw-font-size-xl)",
11447
- fontWeight: "700",
11448
- color: "var(--bw-text-color)",
11449
- margin: "0 0 var(--bw-spacing-small) 0",
11450
- fontFamily: "var(--bw-font-family)",
11451
- }, children: "Buchung erfolgreich!" }), u$2("p", { style: {
11452
- color: "var(--bw-text-muted)",
11453
- fontFamily: "var(--bw-font-family)",
11454
- margin: 0,
11455
- }, children: "Deine Buchung wurde erfolgreich abgeschlossen." })] }), u$2("div", { style: {
11456
- backgroundColor: "var(--bw-surface-color)",
11457
- border: `1px solid var(--bw-border-color)`,
11458
- borderRadius: "var(--bw-border-radius)",
11459
- padding: "var(--bw-spacing)",
11460
- marginBottom: "var(--bw-spacing-large)",
11461
- }, children: [u$2("h3", { style: {
11462
- fontSize: "var(--bw-font-size-large)",
11463
- fontWeight: "600",
11464
- color: "var(--bw-text-color)",
11465
- margin: "0 0 var(--bw-spacing) 0",
11466
- fontFamily: "var(--bw-font-family)",
11467
- }, children: "Buchungsdetails" }), u$2("div", { style: { display: "flex", flexDirection: "column", gap: "var(--bw-spacing)" }, children: [booking.bookingHash && (u$2("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [u$2("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "Buchungs-ID:" }), u$2("span", { style: {
11468
- color: "var(--bw-text-color)",
11469
- fontWeight: "500",
11470
- fontFamily: "monospace",
11471
- fontSize: "var(--bw-font-size-small)",
11472
- backgroundColor: "var(--bw-background-color)",
11473
- padding: "4px 8px",
11474
- borderRadius: "var(--bw-border-radius-small)",
11475
- }, children: booking.bookingHash })] })), u$2("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [u$2("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "Event:" }), u$2("span", { style: {
11476
- color: "var(--bw-text-color)",
11477
- fontWeight: "500",
11478
- fontFamily: "var(--bw-font-family)",
11479
- textAlign: "right",
11480
- maxWidth: "60%",
11481
- }, children: eventDetails.name })] }), u$2("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [u$2("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "Datum:" }), u$2("span", { style: {
11482
- color: "var(--bw-text-color)",
11483
- fontWeight: "500",
11484
- fontFamily: "var(--bw-font-family)",
11485
- textAlign: "right",
11486
- maxWidth: "60%",
11487
- }, children: formatDate(eventDetails.startTime) })] }), u$2("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [u$2("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "Teilnehmer:" }), u$2("span", { style: {
11488
- color: "var(--bw-text-color)",
11489
- fontWeight: "500",
11490
- fontFamily: "var(--bw-font-family)",
11491
- }, children: booking.participantCount })] }), u$2("div", { style: {
11492
- display: "flex",
11493
- justifyContent: "space-between",
11494
- alignItems: "center",
11495
- borderTop: `1px solid var(--bw-border-color)`,
11496
- paddingTop: "var(--bw-spacing)",
11497
- marginTop: "var(--bw-spacing)",
11498
- }, children: [u$2("span", { style: {
11499
- color: "var(--bw-text-color)",
11500
- fontWeight: "600",
11501
- fontFamily: "var(--bw-font-family)",
11502
- }, children: "Gesamtbetrag:" }), u$2("span", { style: {
11503
- color: "var(--bw-text-color)",
11504
- fontWeight: "600",
11505
- fontSize: "var(--bw-font-size-large)",
11506
- fontFamily: "var(--bw-font-family)",
11507
- }, children: formatCurrency(booking.total) })] })] })] }), formData.participants && formData.participants.length > 0 && (u$2("div", { style: {
11508
- backgroundColor: "var(--bw-surface-color)",
11509
- border: `1px solid var(--bw-border-color)`,
11510
- borderRadius: "var(--bw-border-radius)",
11511
- padding: "var(--bw-spacing)",
11512
- marginBottom: "var(--bw-spacing-large)",
11513
- }, children: [u$2("h3", { style: {
11514
- fontSize: "var(--bw-font-size-large)",
11515
- fontWeight: "600",
11516
- color: "var(--bw-text-color)",
11517
- margin: "0 0 var(--bw-spacing) 0",
11518
- fontFamily: "var(--bw-font-family)",
11519
- }, children: "Teilnehmer" }), u$2("div", { style: { display: "flex", flexDirection: "column", gap: "var(--bw-spacing-small)" }, children: formData.participants
11520
- .filter((p) => p.name.trim())
11521
- .map((participant, index) => (u$2("div", { style: {
11522
- display: "flex",
11523
- justifyContent: "space-between",
11524
- alignItems: "center",
11525
- padding: "var(--bw-spacing-small)",
11526
- backgroundColor: "var(--bw-background-color)",
11527
- borderRadius: "var(--bw-border-radius-small)",
11528
- }, children: [u$2("span", { style: {
11529
- color: "var(--bw-text-color)",
11530
- fontFamily: "var(--bw-font-family)",
11531
- }, children: participant.name }), participant.age && (u$2("span", { style: {
11532
- color: "var(--bw-text-muted)",
11533
- fontSize: "var(--bw-font-size-small)",
11534
- fontFamily: "var(--bw-font-family)",
11535
- }, children: [participant.age, " Jahre"] }))] }, index))) })] })), u$2("div", { style: {
11536
- backgroundColor: "var(--bw-surface-color)",
11537
- border: `1px solid var(--bw-border-color)`,
11538
- borderRadius: "var(--bw-border-radius)",
11539
- padding: "var(--bw-spacing)",
11540
- marginBottom: "var(--bw-spacing-large)",
11541
- }, children: [u$2("h3", { style: {
11542
- fontSize: "var(--bw-font-size-large)",
11543
- fontWeight: "600",
11544
- color: "var(--bw-text-color)",
11545
- margin: "0 0 var(--bw-spacing) 0",
11546
- fontFamily: "var(--bw-font-family)",
11547
- }, children: "Kontaktdaten" }), u$2("div", { style: { display: "flex", flexDirection: "column", gap: "var(--bw-spacing-small)" }, children: [u$2("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [u$2("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "Name:" }), u$2("span", { style: { color: "var(--bw-text-color)", fontFamily: "var(--bw-font-family)" }, children: formData.customerName })] }), u$2("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [u$2("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "E-Mail:" }), u$2("span", { style: { color: "var(--bw-text-color)", fontFamily: "var(--bw-font-family)" }, children: formData.customerEmail })] }), formData.customerPhone && (u$2("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [u$2("span", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "Telefon:" }), u$2("span", { style: { color: "var(--bw-text-color)", fontFamily: "var(--bw-font-family)" }, children: formData.customerPhone })] }))] })] }), u$2("div", { style: {
11548
- backgroundColor: "var(--bw-surface-muted-bg, rgba(59, 130, 246, 0.05))",
11549
- border: `1px solid var(--bw-border-color)`,
11550
- borderRadius: "var(--bw-border-radius)",
11551
- padding: "var(--bw-spacing)",
11552
- marginBottom: "var(--bw-spacing-large)",
11553
- textAlign: "center",
11554
- }, children: [u$2("div", { style: {
11555
- color: "var(--bw-highlight-color)",
11556
- fontSize: "24px",
11557
- marginBottom: "var(--bw-spacing-small)",
11558
- }, children: "\uD83D\uDCE7" }), u$2("p", { style: {
11559
- color: "var(--bw-text-muted)",
11560
- margin: 0,
11561
- fontFamily: "var(--bw-font-family)",
11562
- fontSize: "var(--bw-font-size-small)",
11563
- }, children: ["Eine Best\u00E4tigungs-E-Mail wird in K\u00FCrze an ", formData.customerEmail, " gesendet."] })] }), u$2("div", { style: { textAlign: "center" }, children: u$2("button", { onClick: onClose, style: {
11564
- backgroundColor: "var(--bw-highlight-color)",
11565
- color: "white",
11566
- padding: "12px 32px",
11567
- border: "none",
11568
- borderRadius: "var(--bw-border-radius)",
11569
- fontSize: "var(--bw-font-size)",
11570
- fontWeight: "600",
11571
- cursor: "pointer",
11572
- fontFamily: "var(--bw-font-family)",
11573
- transition: "all 0.2s ease",
11574
- }, onMouseEnter: (e) => {
11575
- e.currentTarget.style.opacity = "0.9";
11576
- }, onMouseLeave: (e) => {
11577
- e.currentTarget.style.opacity = "1";
11578
- }, children: "Schlie\u00DFen" }) })] }) }));
11579
- };
11580
11579
  // Main widget component
11581
11580
  function UniversalBookingWidget({ config: baseConfig }) {
11582
11581
  // Apply URL parameter inference
@@ -11606,7 +11605,6 @@
11606
11605
  // Booking flow state
11607
11606
  const [eventDetails, setEventDetails] = d$1(null);
11608
11607
  const [stripePromise, setStripePromise] = d$1(null);
11609
- const [clientSecret, setClientSecret] = d$1(null);
11610
11608
  // SEPARATED LOADING STATES
11611
11609
  const [isLoading, setIsLoading] = d$1(true); // Only for initial widget load
11612
11610
  const [isLoadingEventInstances, setIsLoadingEventInstances] = d$1(false); // For loading event instances in sidebar
@@ -12067,16 +12065,6 @@
12067
12065
  fontFamily: "var(--bw-font-family)",
12068
12066
  }, children: "Falls das Problem weiterhin besteht, kontaktiere bitte den Support." })] }) }) }));
12069
12067
  }
12070
- // Success state
12071
- if (isSuccess) {
12072
- return (u$2(StyleProvider, { config: config, children: u$2(BookingSuccessModal, { isOpen: isSuccess, onClose: () => {
12073
- setIsSuccess(false);
12074
- setCurrentStep("eventTypes");
12075
- // Reset lazy loading flags
12076
- setShouldRenderInstanceSelection(false);
12077
- setShouldRenderBookingForm(false);
12078
- }, bookingData: successData, eventDetails: eventDetails, formData: successData.formData, config: config }) }));
12079
- }
12080
12068
  // Main view based on view mode
12081
12069
  if (viewMode === "next-events" && showingPreview) {
12082
12070
  // Next events preview mode
@@ -12092,17 +12080,31 @@
12092
12080
  setCurrentStep("eventTypes");
12093
12081
  setShowingPreview(true);
12094
12082
  setEventDetails(null);
12095
- }, systemConfig: systemConfig }))] }));
12083
+ }, systemConfig: systemConfig })), u$2(BookingSuccessModal, { isOpen: isSuccess, onClose: () => {
12084
+ setIsSuccess(false);
12085
+ setCurrentStep("eventTypes");
12086
+ setShowingPreview(true);
12087
+ // Reset lazy loading flags
12088
+ setShouldRenderInstanceSelection(false);
12089
+ setShouldRenderBookingForm(false);
12090
+ }, bookingData: successData, eventDetails: eventDetails, formData: successData?.formData, config: config })] }));
12096
12091
  }
12097
12092
  if (viewMode === "next-events" && !showingPreview && currentStep === "eventInstances") {
12098
12093
  // Show all events for the single event type
12099
- return (u$2(StyleProvider, { config: config, children: shouldRenderInstanceSelection && (u$2(EventInstanceSelection, { eventInstances: eventInstances, selectedEventType: selectedEventType, onEventInstanceSelect: handleEventInstanceSelect, onBackToEventTypes: () => {
12100
- setShowingPreview(true);
12101
- setCurrentStep("eventTypes");
12102
- }, isOpen: currentStep === "eventInstances", onClose: () => {
12103
- setShowingPreview(true);
12104
- setCurrentStep("eventTypes");
12105
- }, isLoadingEventInstances: isLoadingEventInstances, isLoadingEventDetails: isLoadingEventDetails })) }));
12094
+ return (u$2(StyleProvider, { config: config, children: [shouldRenderInstanceSelection && (u$2(EventInstanceSelection, { eventInstances: eventInstances, selectedEventType: selectedEventType, onEventInstanceSelect: handleEventInstanceSelect, onBackToEventTypes: () => {
12095
+ setShowingPreview(true);
12096
+ setCurrentStep("eventTypes");
12097
+ }, isOpen: currentStep === "eventInstances", onClose: () => {
12098
+ setShowingPreview(true);
12099
+ setCurrentStep("eventTypes");
12100
+ }, isLoadingEventInstances: isLoadingEventInstances, isLoadingEventDetails: isLoadingEventDetails })), u$2(BookingSuccessModal, { isOpen: isSuccess, onClose: () => {
12101
+ setIsSuccess(false);
12102
+ setCurrentStep("eventTypes");
12103
+ setShowingPreview(true);
12104
+ // Reset lazy loading flags
12105
+ setShouldRenderInstanceSelection(false);
12106
+ setShouldRenderBookingForm(false);
12107
+ }, bookingData: successData, eventDetails: eventDetails, formData: successData?.formData, config: config })] }));
12106
12108
  }
12107
12109
  if (viewMode === "button" && (isSingleEventTypeMode || isDirectInstanceMode)) {
12108
12110
  // Button mode - show button that opens sidebar/booking directly
@@ -12132,7 +12134,14 @@
12132
12134
  setShouldRenderInstanceSelection(true);
12133
12135
  }
12134
12136
  }, children: config.buttonText ||
12135
- (isDirectInstanceMode ? "Jetzt buchen" : "Jetzt Termin auswählen") }), shouldRenderInstanceSelection && (u$2(EventInstanceSelection, { eventInstances: eventInstances, selectedEventType: selectedEventType, onEventInstanceSelect: handleEventInstanceSelect, onBackToEventTypes: () => setSidebarOpen(false), isOpen: sidebarOpen, onClose: () => setSidebarOpen(false), isLoadingEventInstances: isLoadingEventInstances, isLoadingEventDetails: isLoadingEventDetails })), shouldRenderBookingForm && eventDetails && (u$2(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 }))] }) }));
12137
+ (isDirectInstanceMode ? "Jetzt buchen" : "Jetzt Termin auswählen") }), shouldRenderInstanceSelection && (u$2(EventInstanceSelection, { eventInstances: eventInstances, selectedEventType: selectedEventType, onEventInstanceSelect: handleEventInstanceSelect, onBackToEventTypes: () => setSidebarOpen(false), isOpen: sidebarOpen, onClose: () => setSidebarOpen(false), isLoadingEventInstances: isLoadingEventInstances, isLoadingEventDetails: isLoadingEventDetails })), shouldRenderBookingForm && eventDetails && (u$2(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 })), u$2(BookingSuccessModal, { isOpen: isSuccess, onClose: () => {
12138
+ setIsSuccess(false);
12139
+ setCurrentStep("eventTypes");
12140
+ setSidebarOpen(false);
12141
+ // Reset lazy loading flags
12142
+ setShouldRenderInstanceSelection(false);
12143
+ setShouldRenderBookingForm(false);
12144
+ }, bookingData: successData, eventDetails: eventDetails, formData: successData?.formData, config: config })] }) }));
12136
12145
  }
12137
12146
  // Cards mode (default) - show event type selection
12138
12147
  const cardsView = (u$2(EventTypeSelection, { eventTypes: eventTypes, onEventTypeSelect: handleEventTypeSelect, isLoading: isLoading, skeletonCount: getSkeletonCount() }));
@@ -12165,7 +12174,13 @@
12165
12174
  };
12166
12175
  };
12167
12176
  const backHandlers = getBackHandlers();
12168
- return (u$2(StyleProvider, { config: config, children: [cardsView, shouldRenderInstanceSelection && (u$2(EventInstanceSelection, { eventInstances: eventInstances, selectedEventType: selectedEventType, onEventInstanceSelect: handleEventInstanceSelect, onBackToEventTypes: handleBackToEventTypes, isOpen: currentStep === "eventInstances", onClose: handleBackToEventTypes, isLoadingEventInstances: isLoadingEventInstances, isLoadingEventDetails: isLoadingEventDetails })), shouldRenderBookingForm && eventDetails && (u$2(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 }))] }));
12177
+ return (u$2(StyleProvider, { config: config, children: [cardsView, shouldRenderInstanceSelection && (u$2(EventInstanceSelection, { eventInstances: eventInstances, selectedEventType: selectedEventType, onEventInstanceSelect: handleEventInstanceSelect, onBackToEventTypes: handleBackToEventTypes, isOpen: currentStep === "eventInstances", onClose: handleBackToEventTypes, isLoadingEventInstances: isLoadingEventInstances, isLoadingEventDetails: isLoadingEventDetails })), shouldRenderBookingForm && eventDetails && (u$2(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 })), u$2(BookingSuccessModal, { isOpen: isSuccess, onClose: () => {
12178
+ setIsSuccess(false);
12179
+ setCurrentStep("eventTypes");
12180
+ // Reset lazy loading flags
12181
+ setShouldRenderInstanceSelection(false);
12182
+ setShouldRenderBookingForm(false);
12183
+ }, bookingData: successData, eventDetails: eventDetails, formData: successData?.formData, config: config })] }));
12169
12184
  }
12170
12185
 
12171
12186
  // Export init function for vanilla JS usage with Preact