PageSourceSearch

https://www.bristoldockyards.org/_next/static/chunks/0j5m3389r6o_b.js?dpl=dpl_2Mq7fsXGLAbpZUUWFtdN3B8o5b6r

js bristoldockyards.org collected 2026-10-02 17:17:56 UTC 194,537 bytes, 5 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,16015,(e,t,a)=>{},98547,(e,t,a)=>{var s=e.i(47167);e.r(16015);var r=e.r(71645),n=r&&"object"==typeof r&&"default"in r?r:{default:r},i=void 0!==s.default&&s.default.env&&!0,l=function(e){return"[object String]"===Object.prototype.toString.call(e)},o=function(){function e(e){var t=void 0===e?{}:e,a=t.name,s=void 0===a?"stylesheet":a,r=t.optimizeForSpeed,n=void 0===r?i:r;d(l(s),"`name` must be a string"),this._name=s,this._deletedRulePlaceholder="#"+s+"-deleted-rule____{}",d("boolean"==typeof n,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=n,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0;var o="u">typeof window&&document.querySelector('meta[property="csp-nonce"]');this._nonce=o?o.getAttribute("content"):null}var t,a=e.prototype;return a.setOptimizeForSpeed=function(e){d("boolean"==typeof e,"`setOptimizeForSpeed` accepts a boolean"),d(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=e,this.inject()},a.isOptimizeForSpeed=function(){return this._optimizeForSpeed},a.inject=function(){var e=this;if(d(!this._injected,"sheet already injected"),this._injected=!0,"u">typeof window&&this._optimizeForSpeed){this._tags[0]=this.makeStyleTag(this._name),this._optimizeForSpeed="insertRule"in this.getSheet(),this._optimizeForSpeed||(i||console.warn("StyleSheet: optimizeForSpeed mode not supported falling back to standard mode."),this.flush(),this._injected=!0);return}this._serverSheet={cssRules:[],insertRule:function(t,a){return"number"==typeof a?e._serverSheet.cssRules[a]={cssText:t}:e._serverSheet.cssRules.push({cssText:t}),a},deleteRule:function(t){e._serverSheet.cssRules[t]=null}}},a.getSheetForTag=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]},a.getSheet=function(){return this.getSheetForTag(this._tags[this._tags.length-1])},a.insertRule=function(e,t){if(d(l(e),"`insertRule` accepts only strings"),"u"<typeof window)return"number"!=typeof t&&(t=this._serverSheet.cssRules.length),this._serverSheet.insertRule(e,t),this._rulesCount++;if(this._optimizeForSpeed){var a=this.getSheet();"number"!=typeof t&&(t=a.cssRules.length);try{a.insertRule(e,t)}catch(t){return i||console.warn("StyleSheet: illegal rule: \n\n"+e+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),-1}}else{var s=this._tags[t];this._tags.push(this.makeStyleTag(this._name,e,s))}return this._rulesCount++},a.replaceRule=function(e,t){if(this._optimizeForSpeed||"u"<typeof window){var a="u">typeof window?this.getSheet():this._serverSheet;if(t.trim()||(t=this._deletedRulePlaceholder),!a.cssRules[e])return e;a.deleteRule(e);try{a.insertRule(t,e)}catch(s){i||console.warn("StyleSheet: illegal rule: \n\n"+t+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),a.insertRule(this._deletedRulePlaceholder,e)}}else{var s=this._tags[e];d(s,"old rule at index `"+e+"` not found"),s.textContent=t}return e},a.deleteRule=function(e){if("u"<typeof window)return void this._serverSheet.deleteRule(e);if(this._optimizeForSpeed)this.replaceRule(e,"");else{var t=this._tags[e];d(t,"rule at index `"+e+"` not found"),t.parentNode.removeChild(t),this._tags[e]=null}},a.flush=function(){this._injected=!1,this._rulesCount=0,"u">
1typeof window?(this._tags.forEach(function(e){return e&&e.parentNode.removeChild(e)}),this._tags=[]):this._serverSheet.cssRules=[]},a.cssRules=function(){var e=this;return"u"<typeof window?this._serverSheet.cssRules:this._tags.reduce(function(t,a){return a?t=t.concat(Array.prototype.map.call(e.getSheetForTag(a).cssRules,function(t){return t.cssText===e._deletedRulePlaceholder?null:t})):t.push(null),t},[])},a.makeStyleTag=function(e,t,a){t&&d(l(t),"makeStyleTag accepts only strings as second parameter");var s=document.createElement("style");this._nonce&&s.setAttribute("nonce",this._nonce),s.type="text/css",s.setAttribute("data-"+e,""),t&&s.appendChild(document.createTextNode(t));var r=document.head||document.getElementsByTagName("head")[0];return a?r.insertBefore(s,a):r.appendChild(s),s},t=[{key:"length",get:function(){return this._rulesCount}}],function(e,t){for(var a=0;a<t.length;a++){var s=t[a];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}(e.prototype,t),e}();function d(e,t){if(!e)throw Error("StyleSheet: "+t+".")}var c=function(e){for(var t=5381,a=e.length;a;)t=33*t^e.charCodeAt(--a);return t>>>0},m={};function u(e,t){if(!t)return"jsx-"+e;var a=String(t),s=e+a;return m[s]||(m[s]="jsx-"+c(e+"-"+a)),m[s]}function x(e,t){"u"<typeof window&&(t=t.replace(/\/style/gi,"\\/style"));var a=e+t;return m[a]||(m[a]=t.replace(/__jsx-style-dynamic-selector/g,e)),m[a]}var h=function(){function e(e){var t=void 0===e?{}:e,a=t.styleSheet,s=void 0===a?null:a,r=t.optimizeForSpeed,n=void 0!==r&&r;this._sheet=s||new o({name:"styled-jsx",optimizeForSpeed:n}),this._sheet.inject(),s&&"boolean"==typeof n&&(this._sheet.setOptimizeForSpeed(n),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),this._fromServer=void 0,this._indices={},this._instancesCounts={}}var t=e.prototype;return t.add=function(e){var t=this;void 0===this._optimizeForSpeed&&(this._optimizeForSpeed=Array.isArray(e.children),this._sheet.setOptimizeForSpeed(this._optimizeForSpeed),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),"u">typeof window&&!this._fromServer&&(this._fromServer=this.selectFromServer(),this._instancesCounts=Object.keys(this._fromServer).reduce(function(e,t){return e[t]=0,e},{}));var a=this.getIdAndRules(e),s=a.styleId,r=a.rules;if(s in this._instancesCounts){this._instancesCounts[s]+=1;return}var n=r.map(function(e){return t._sheet.insertRule(e)}).filter(function(e){return -1!==e});this._indices[s]=n,this._instancesCounts[s]=1},t.remove=function(e){var t=this,a=this.getIdAndRules(e).styleId;if(function(e,t){if(!e)throw Error("StyleSheetRegistry: "+t+".")}(a in this._instancesCounts,"styleId: `"+a+"` not found"),this._instancesCounts[a]-=1,this._instancesCounts[a]<1){var s=this._fromServer&&this._fromServer[a];s?(s.parentNode.removeChild(s),delete this._fromServer[a]):(this._indices[a].forEach(function(e){return t._sheet.deleteRule(e)}),delete this._indices[a]),delete this._instancesCounts[a]}},t.update=function(e,t){this.add(t),this.remove(e)},t.flush=function(){this._sheet.flush(),this._sheet.inject(),this._fromServer=void 0,this._indices={},this._instancesCounts={}},t.cssRules=function(){var e=this,t=this._fromServer?Object.keys(this._fromServer).map(function(t){return[t,e._fromServer[t]]}):[],a=this._sheet.cssRules();return t.concat(Object.keys(this._indices).map(function(t){return[t,e._indices[t].map(function(e){return a[e].cssText}).join(e._optimizeForSpeed?"":"\n")]}).filter(function(e){return!!e[1]}))},t.styles=function(e){var t,a;return t=this.cssRules(),void 0===(a=e)&&(a={}),t.map(function(e){var t=e[0],s=e[1];return n.default.createElement("style",{id:"__"+t,key:"__"+t,nonce:a.nonce?a.nonce:void 0,dangerouslySetInnerHTML:{__html:s}})})},t.getIdAndRules=function(e){var t=e.children,a=e.dynamic,s=e.id;if(a){var r=u(s,a);return{styleId:r,rules:Array.isArray(t)?t.map(function(e){return x(r,e)}):[x(r,t)]}}return{styleId:u(s),rules:Array.isArray(t)?t:[t]}},t.selectFromServer=function(){return Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]')).reduce(function(e,t){return e[t.id.slice(2)]=t,e},{})},e}(),f=r.createContext(null);function p(){return new h}function b(){return r.useContext(f)}f.displayName="StyleSheetContext";var g=n.default.useInsertionEffect||n.default.useLayoutEffect,v="u">typeof window?p():void 0;function y(e){var t=v||b();return t&&("u"<typeof window?t.add(e):g(function(){return t.add(e),function(){t.remove(e)}},[e.id,String(e.dynamic)])),null}y.dynamic=function(e){return e.map(function(e){return u(e[0],e[1])}).join(" ")},a.StyleRegistry=function(e){var t=e.registry,a=e.children,s=r.useContext(f),i=r.useState(function(){return s||t||p()})[0];return n.default.createElement(f.Provider,{value:i},a)},a.createStyleRegistry=p,a.style=y,a.useStyleRegistry=b},37902,(e,t,a)=>{t.exports=e.r(98547).style},3178,e=>{"use strict";let t,a,s;var r=e.i(43476),n=e.i(71645),i=e.i(7670),l=e.i(47167);let o=e=>{let t,a=new Set,s=(e,s)=>{let r="function"==typeof e?e(t):e;if(!Object.is(r,t)){let e=t;t=(null!=s?s:"object"!=typeof r||null===r)?r:Object.assign({},t,r),a.forEach(a=>a(t,e))}},r=()=>t,n={setState:s,getState:r,getInitialState:()=>i,subscribe:e=>(a.add(e),()=>a.delete(e))},i=t=e(s,r,n);return n},d=e=>{let t=e?o(e):o,a=e=>(function(e,t=e=>e){let a=n.default.useSyncExternalStore(e.subscribe,n.default.useCallback(()=>t(e.getState()),[e,t]),n.default.useCallback(()=>t(e.getInitialState()),[e,t]));return n.default.useDebugValue(a),a})(t,e);return Object.assign(a,t),a},c={get url(){return`file://${e.P("node_modules/zustand/esm/middleware.mjs")}`}},m=e=>!!e.dispatchFromDevtools&&"function"==typeof e.dispatch,u=new Map,x=e=>{let t=u.get(e);return t?Object.fromEntries(Object.entries(t.stores).map(([e,t])=>[e,t.getState()])):{}},h=/.+ (.+) .+/,f=/^([^@]+)@/,p=(e,t)=>{let a;try{a=JSON.parse(e)}catch(e){console.error("[zustand devtools middleware] Could not parse the received json",e)}void 0!==a&&t(a)};function b(e,t){let a;try{a=e()}catch(e){return}return{getItem:e=>{var s;let r=e=>null===e?null:JSON.parse(e,null==t?void 0:t.reviver),n=null!=(s=a.getItem(e))?s:null;return n instanceof Promise?n.then(r):r(n)},setItem:(e,s)=>a.setItem(e,JSON.stringify(s,null==t?void 0:t.replacer)),removeItem:e=>a.removeItem(e)}}let g=e=>t=>{try{let a=e(t);if(a instanceof Promise)return a;return{then:e=>g(e)(a),catch(e){return this}}}catch(e){return{then(e){return this},catch:t=>g(t)(e)}}},v="8ed5f6c9-edf2-4277-b1b7-891eef37db5d",y="WebPage",j="OnScreenCalendar",w=l.default.env.NEXT_PUBLIC_VENPOS_API_URL??l.default.env.VENPOS_API_URL??"https://online1.venpos.net/VenposJourneyAPI",N={locationId:"974",webPageId:v,pageType:y,dateSelectorType:j,customStrikethroughPrices:{},excludedProductNames:[]},k={items:[],discounts:[],giftAidSelected:!1,pageId:N.webPageId,reservationExpiryDateTime:null},I=["products","date-selector","upsells-merchandise","upsells-events","basket","checkout","confirmation"],S=v,C=b(()=>({getItem:e=>"u"<typeof localStorage?null:localStorage.getItem(`${e}::${S}`),setItem:(e,t)=>
1{"u">typeof localStorage&&localStorage.setItem(`${e}::${S}`,t)},removeItem:e=>{"u">typeof localStorage&&localStorage.removeItem(`${e}::${S}`)}}));function T(e){if(!e)return null;let t=e;return/[Zz]$/.test(t)||/[+-]\d{2}:?\d{2}$/.test(t)||(t+="Z"),new Date(t).getTime()}let P=(s=((e,t={})=>(a,s,r)=>{let n,{enabled:i,anonymousActionType:l,store:o,...d}=t;try{n=(null!=i?i:(c.env?c.env.MODE:void 0)!=="production")&&window.__REDUX_DEVTOOLS_EXTENSION__}catch(e){}if(!n)return e(a,s,r);let{connection:b,...g}=((e,t,a)=>{if(void 0===e)return{type:"untracked",connection:t.connect(a)};let s=u.get(a.name);if(s)return{type:"tracked",store:e,...s};let r={connection:t.connect(a),stores:{}};return u.set(a.name,r),{type:"tracked",store:e,...r}})(o,n,d),v=!0;r.setState=(e,t,n)=>{let i=a(e,t);if(!v)return i;let c=void 0===n?{type:l||function(e){var t,a,s;if(!e)return;let r=e.split("\n"),n=r.findIndex(e=>e.includes("api.setState"));if(n<0)return;let i=(null==(t=r[n+1])?void 0:t.trim())||"";return(null==(a=h.exec(i))?void 0:a[1])||(null==(s=f.exec(i))?void 0:s[1])}(Error().stack)||"anonymous"}:"string"==typeof n?{type:n}:n;return void 0===o?null==b||b.send(c,s()):null==b||b.send({...c,type:`${o}/${c.type}`},{...x(d.name),[o]:r.getState()}),i},r.devtools={cleanup:()=>{b&&"function"==typeof b.unsubscribe&&b.unsubscribe(),((e,t)=>{if(void 0===t)return;let a=u.get(e);a&&(delete a.stores[t],0===Object.keys(a.stores).length&&u.delete(e))})(d.name,o)}};let y=(...e)=>{let t=v;v=!1,a(...e),v=t},j=e(r.setState,s,r);if("untracked"===g.type?null==b||b.init(j):(g.stores[g.store]=r,null==b||b.init(Object.fromEntries(Object.entries(g.stores).map(([e,t])=>[e,e===g.store?j:t.getState()])))),m(r)){let e=!1,t=r.dispatch;r.dispatch=(...a)=>{(c.env?c.env.MODE:void 0)==="production"||"__setState"!==a[0].type||e||(console.warn('[zustand devtools middleware] "__setState" action type is reserved to set state from the devtools. Avoid using it.'),e=!0),t(...a)}}return b.subscribe(e=>{var t;switch(e.type){case"ACTION":if("string"!=typeof e.payload)return void console.error("[zustand devtools middleware] Unsupported action format");return p(e.payload,e=>{if("__setState"===e.type){if(void 0===o)return void y(e.state);1!==Object.keys(e.state).length&&console.error(`
2                    [zustand devtools middleware] Unsupported __setState action format.
3                    When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),
4                    and value of this only key should be a state object. Example: { "type": "__setState", "state": { "abc123Store": { "foo": "bar" } } }
5                    `);let t=e.state[o];return void(null==t||JSON.stringify(r.getState())!==JSON.stringify(t)&&y(t))}m(r)&&r.dispatch(e)});case"DISPATCH":switch(e.payload.type){case"RESET":if(y(j),void 0===o)return null==b?void 0:b.init(r.getState());return null==b?void 0:b.init(x(d.name));case"COMMIT":if(void 0===o){null==b||b.init(r.getState());break}return null==b?void 0:b.init(x(d.name));case"ROLLBACK":return p(e.state,e=>{if(void 0===o){y(e),null==b||b.init(r.getState());return}y(e[o]),null==b||b.init(x(d.name))});case"JUMP_TO_STATE":case"JUMP_TO_ACTION":return p(e.state,e=>{void 0===o?y(e):JSON.stringify(r.getState())!==JSON.stringify(e[o])&&y(e[o])});case"IMPORT_STATE":{let{nextLiftedState:a}=e.payload,s=null==(t=a.computedStates.slice(-1)[0])?void 0:t.state;if(!s)return;void 0===o?y(s):y(s[o]),null==b||b.send(null,a);break}case"PAUSE_RECORDING":return v=!v}return}}),j})((t=(e,t)=>({currentStep:"products",config:N,webPageType:"WebPage",pageTitle:"",basket:k,selectedDate:null,customer:{},memberships:[],giftVoucherDetails:[],questionAnswers:{},questionPayload:[],orderId:null,basketSummary:null,confirmationData:null,completedOrderId:null,confirmationPathname:null,paymentAuthorized:!1,paymentSubmitting:!1,isFocusMode:!1,userDismissedFocusMode:!1,setFocusMode:t=>e({isFocusMode:t}),dismissFocusMode:()=>e({isFocusMode:!1,userDismissedFocusMode:!0}),setCurrentStep:t=>e({currentStep:t}),nextStep:()=>{let a=t().currentStep,s=I.indexOf(a);s<I.length-1&&e({currentStep:I[s+1]})},previousStep:()=>{let a=t().currentStep,s=I.indexOf(a);s>0&&e({currentStep:I[s-1]})},addToBasket:t=>e(e=>{let a=e.basket.items.findIndex(e=>e.webSaleItemId===t.webSaleItemId);if(!(a>=0))return{basket:{...e.basket,items:[...e.basket.items,t]}};{let s=[...e.basket.items];return s[a]={...s[a],quantity:s[a].quantity+t.quantity},{basket:{...e.basket,items:s}}}}),removeFromBasket:t=>e(e=>({basket:{...e.basket,items:e.basket.items.filter(e=>e.webSaleItemId!==t)}})),updateBasketItem:(t,a)=>e(e=>({basket:{...e.basket,items:e.basket.items.map(e=>e.webSaleItemId===t?{...e,...a}:e)}})),commitEventSessions:(t,a)=>e(e=>({basket:{...e.basket,items:[...e.basket.items.filter(e=>e.pageId!==t),...a]}})),removeBasketLine:(t,a)=>e(e=>{let s=e.basket.items.filter(e=>e.webSaleItemId!==t||e.eventId!==a),r=s.map(e=>e.reservationExpiryDateTime??e.ReservationExpiryDateTime).filter(
5Boolean),n=r.length>0?r.reduce((e,t)=>T(t)<T(e)?t:e):null;return{basket:{...e.basket,items:s,reservationExpiryDateTime:n}}}),updateBasketLine:(t,a,s)=>e(e=>({basket:{...e.basket,items:e.basket.items.map(e=>e.webSaleItemId===t&&e.eventId===a?{...e,...s}:e)}})),clearBasket:()=>e(e=>({basket:k,selectedDate:null,currentStep:"EventOverview"===e.webPageType?"date-selector":"products",giftVoucherDetails:[],questionAnswers:{},questionPayload:[],orderId:null,basketSummary:null,confirmationData:null,completedOrderId:null,confirmationPathname:null,paymentAuthorized:!1,paymentSubmitting:!1})),completeOrder:(t,a)=>e({basket:k,selectedDate:null,giftVoucherDetails:[],questionAnswers:{},questionPayload:[],orderId:t,basketSummary:null,confirmationData:a,completedOrderId:t,currentStep:"confirmation",paymentAuthorized:!1,paymentSubmitting:!1,confirmationPathname:window.location.pathname}),setPaymentAuthorized:t=>e({paymentAuthorized:t}),setPaymentSubmitting:t=>e({paymentSubmitting:t}),setGiftAid:t=>e(e=>({basket:{...e.basket,giftAidSelected:t}})),setSelectedDate:t=>e(e=>{let a=e.basket.items.map(e=>({...e,selectedDate:t}));return{selectedDate:t,basket:{...e.basket,items:a}}}),setDiscounts:t=>e(e=>({basket:{...e.basket,discounts:t}})),setReservationExpiry:t=>e(e=>({basket:{...e.basket,reservationExpiryDateTime:t}})),setCustomer:t=>e(e=>({customer:{...e.customer,...t}})),setMemberships:t=>e({memberships:t}),setGiftVoucherDetails:t=>e({giftVoucherDetails:t}),setQuestionAnswers:t=>e({questionAnswers:t}),setQuestionPayload:t=>e({questionPayload:t}),setBasketSummary:t=>e({basketSummary:t}),updateMembership:(t,a)=>e(e=>{let s=[...e.memberships];return s[t]&&(s[t]={...s[t],...a}),{memberships:s}}),setConfig:t=>e(e=>({config:{...e.config,...t}})),setWebPageType:t=>e({webPageType:t}),setPageTitle:t=>e({pageTitle:t}),setOrderId:t=>e({orderId:t}),setConfirmationData:t=>e({confirmationData:t}),reset:()=>e(()=>({currentStep:"products",webPageType:"WebPage",pageTitle:"",basket:k,selectedDate:null,customer:{},memberships:[],giftVoucherDetails:[],questionAnswers:{},questionPayload:[],orderId:null,basketSummary:null,confirmationData:null,completedOrderId:null,confirmationPathname:null,paymentAuthorized:!1,paymentSubmitting:!1,isFocusMode:!1,userDismissedFocusMode:!1})),restart:()=>e(e=>({currentStep:"EventOverview"===e.webPageType?"date-selector":"products",pageTitle:"",basket:k,selectedDate:null,customer:{},memberships:[],giftVoucherDetails:[],questionAnswers:{},questionPayload:[],orderId:null,basketSummary:null,confirmationData:null,completedOrderId:null,confirmationPathname:null,paymentAuthorized:!1,paymentSubmitting:!1,isFocusMode:!1,userDismissedFocusMode:!1}))}),a={name:"journey-store",storage:C,skipHydration:!0,version:2,migrate:(e,t)=>
5t<1?{basket:k,selectedDate:null,customer:{},memberships:[],giftVoucherDetails:[],currentStep:"products",orderId:null,basketSummary:null,confirmationData:null,completedOrderId:null}:t<2?{...e,basket:{...e.basket,giftAidSelected:!1}}:e,partialize:e=>({basket:e.basket,selectedDate:e.selectedDate,customer:e.customer,memberships:e.memberships,giftVoucherDetails:e.giftVoucherDetails,questionAnswers:e.questionAnswers,questionPayload:e.questionPayload,currentStep:e.currentStep,orderId:e.orderId,basketSummary:e.basketSummary,confirmationData:e.confirmationData,completedOrderId:e.completedOrderId,confirmationPathname:e.confirmationPathname,paymentAuthorized:e.paymentAuthorized}),onRehydrateStorage:()=>e=>{if(!e||"u"<typeof localStorage)return;let t=new Date().getTime();if(e.basket.reservationExpiryDateTime){let a=T(e.basket.reservationExpiryDateTime);if(a&&t>a+6e4)return void e.clearBasket()}if(e.selectedDate){let a=new Date(e.selectedDate);if(a.setHours(23,59,59,999),a.getTime()<t)return void e.clearBasket()}let a=`journey-store::${S}::timestamp`,s=localStorage.getItem(a);if(s&&t-parseInt(s,10)>864e5){e.reset(),localStorage.removeItem(a);return}localStorage.setItem(a,t.toString())}},(e,s,r)=>{let n,i={storage:b(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...a},l=!1,o=0,d=new Set,c=new Set,m=i.storage;if(!m)return t((...t)=>{console.warn(`[zustand persist middleware] Unable to update item '${i.name}', the given storage is currently unavailable.`),e(...t)},s,r);let u=()=>{let e=i.partialize({...s()});return m.setItem(i.name,{state:e,version:i.version})},x=r.setState;r.setState=(e,t)=>(x(e,t),u());let h=t((...t)=>(e(...t),u()),s,r);r.getInitialState=()=>h;let f=()=>{var t,a;if(!m)return;let r=++o;l=!1,d.forEach(e=>{var t;return e(null!=(t=s())?t:h)});let x=(null==(a=i.onRehydrateStorage)?void 0:a.call(i,null!=(t=s())?t:h))||void 0;return g(m.getItem.bind(m))(i.name).then(e=>{if(e)if("number"!=typeof e.version||e.version===i.version)return[!1,e.state];else{if(i.migrate){let t=i.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}return[!1,void 0]}).then(t=>{var a;if(r!==o)return;let[l,d]=t;if(e(n=i.merge(d,null!=(a=s())?a:h),!0),l)return u()}).then(()=>{r===o&&(null==x||x(s(),void 0),n=s(),l=!0,c.forEach(e=>e(n)))}).catch(e=>{r===o&&(null==x||x(void 0,e))})};return r.persist={setOptions:e=>{i={...i,...e},e.storage&&(m=e.storage)},clearStorage:()=>{null==m||m.removeItem(i.name)},getOptions:()=>i,rehydrate:()=>f(),hasHydrated:()=>l,onHydrate:e=>(d.add(e),()=>{d.delete(e)}),onFinishHydration:e=>(c.add(e),()=>{c.delete(e)})},i.skipHydration||f(),n||h}),{name:"journey-store-devtools",enabled:!1}))?d(s):d;var _=e.i(4570);function E(e){_.default.capture("journey_step_viewed",{step:e})}function D(e,t,a){_.default.capture("product_quantity_changed",{product_id:e.webSaleItemId,product_name:e.name,direction:a,new_quantity:t})}function M(e,t,a){_.default.capture("timeslot_selected",{event_id:e,start_time:t,available_qty:a})}function A(e,t,a){_.default.capture("date_continue_clicked",{date:e,page_type:t,next_step:a})}function B(e,t){_.default.capture("upsell_added",{upsell_id:e.id,upsell_name:e.name,upsell_type:t,price:e.price})}function $(e,t){_.default.capture("upsell_removed",{upsell_id:e.id,upsell_name:e.name,upsell_type:t})}function L(e,t){_.default.capture("member_form_error",{section:e,card_label:t})}function O(e,t){_.default.capture("basket_api_error",{api_step:e,error_message:t})}function R(e,t){_.default.capture("back_to_shopping_clicked",{has_upsells:e,confirmed:t})}function F(){_.default.capture("reservation_expired")}function q(e,t){_.default.capture("journey_start_over_clicked",{from_step:e,had_basket_items:t})}function z(e){_.default.capture("payment_init_failed",{error_message:e})}function W(e,t={}){_.default.capture("payment_failed",{error_message:e,stage:t.stage??"unknown",status_code:t.statusCode??null,blocked_uri:t.blockedUri??null})}function V(){_.default.capture("three_ds_challenge_shown")}function G(){_.default.capture("new_booking_started")}function U(){return P.getState().config.webPageId??v}function H(){return P.getState().config.venposApiUrl??w}async function J(e,t={},a={}){let s,r,{timeoutMs:n=3e4,...i}
5=t,l=(r=new URLSearchParams,Object.entries(a).forEach(([e,t])=>{null!=t&&r.append(e,String(t))}),r.toString()),o=`/api/venpos/${e}?${l}`;try{s=await fetch(o,{...i,signal:AbortSignal.timeout(n),headers:{"Content-Type":"application/json","x-venpos-api-base":H(),...i.headers}})}catch(t){if(t?.name==="TimeoutError")throw Error(`VenPos ${e} timed out after ${n}ms`);throw t}if(!s.ok)throw Error(`API call failed: ${s.statusText}`);let d=await s.text();return d?JSON.parse(d):{}}async function Q(e=""){return J("WebSaleItem/Get",{},{locationId:"974",id:U(),pageType:y,dateSelectorType:j,selectedDate:e})}async function Y(e,t=new Date().toISOString().split("T")[0]){return J("WebSaleItem/GetCalendar",{method:"POST",body:JSON.stringify({items:e})},{locationId:"974",id:U(),pageType:y,dateSelectorType:j,selectedDate:t})}function K(e){return e.map(({price:e,...t})=>t)}function X(e){return K(e).map(e=>({...e,bookingProtectionEligible:e.bookingProtectionEligible??!1}))}async function Z(e,t,a){return J("CapacityPotReservation/Add",{method:"POST",body:JSON.stringify({locationId:e,visitDate:t,webSaleItems:a})},{locationId:e})}async function ee(e){return J("discountcodeSingleUse/RemoveDiscountCode",{method:"DELETE",body:JSON.stringify({singleUseDiscountCode:e})},{locationId:"974"})}async function et(e,t=!1,a=[],s=null,r=null){let n=r??P.getState().orderId??null,i={items:K(e),discounts:a,giftAidSelected:t,pageId:U(),modifiers:[],discountsFromMembership:[],...s?{customerId:s}:{},...n?{orderId:n}:{}},l=await J("Basket/Load",{method:"POST",body:JSON.stringify(i)},{locationId:"974"});if(l?.data?.orderId){let{paymentAuthorized:e,orderId:t}=P.getState();e&&t&&l.data.orderId!==t?console.error("Basket/Load returned a different orderId while a payment was already authorized. Refusing to switch orders.",{authorizedOrderId:t,newOrderId:l.data.orderId}):P.getState().setOrderId(l.data.orderId)}return l}async function ea(e){return J("Basket/ValidateTimes",{method:"POST",body:JSON.stringify(K(e))},{locationId:"974"})}async function es(e,t){return J("Upsell/ForBasket",{method:"POST",body:JSON.stringify({items:e})},{locationId:"974",upsellType:t,mainWebPageId:U(),dateSelectorType:j})}async function er(e,t="EventTemplate"){return J("WebSaleItem/Get",{},{locationId:"974",id:e,pageType:t,dateSelectorType:j,selectedDate:""})}async function en(e,t,a,s="EventTemplate"){return J("Event/GetTimes",{method:"POST",body:JSON.stringify({items:a})},{locationId:"974",mainWebPageId:U(),id:e,pageType:s,date:t})}function ei(){let e=P.getState().basket.items.map(e=>e.eventCapacityUsageId??e.EventCapacityUsageId).filter(Boolean);0!==e.length&&ed(e).catch(()=>{})}function el(){let e=P.getState().basket.discounts;e&&0!==e.length&&e.forEach(e=>{ee(e).catch(()=>{})})}function eo(e,t){let a=P.getState().basket.items.find(a=>a.webSaleItemId===e&&a.eventId===t),s=a?.eventCapacityUsageId??a?.EventCapacityUsageId;s&&ed([s]).catch(()=>{})}async function ed(e){return J("Event/DeleteEventCapacityUsages",{method:"POST",body:JSON.stringify({eventCapacityUsageIds:e})},{locationId:"974"})}async function ec(e,t){return J("Event/AddEventCapacityUsages",{method:"POST",body:JSON.stringify({pageIds:e,basket:{items:t}})},{locationId:"974"})}async function em(e,t){return J("Event/GetEventQuestionsForBasketItems",{method:"POST",body:JSON.stringify({webSaleItems:e,eventIds:t})},{locationId:"974"})}async function eu(e){return J("Membership/GetMembershipDetails",{method:"POST",body:JSON.stringify({items:e})},{locationId:"974"})}async function ex(e,t="974"){return J("GiftVoucher/GetGiftVoucherDetails",{method:"POST",body:JSON.stringify({items:e})},{locationId:t})}async function eh(){return J("Customer/CustomerRegistrationSettings",{},{locationId:"974"})}async function ef(){return J("Customer/GetCountries",{},{locationId:"974"})}async function ep(e){return J("Customer/Validate",{method:"POST",body:JSON.stringify({email:e,validatePassword:!1,password:"",validateEmail:!1})},{locationId:"974"})}async function eb(e){return J("Customer/RegisterGuestUser",{method:"POST",body:JSON.stringify({webCustomerId:null,firstName:e.firstName||"",lastName:e.lastName||"",mobile:e.mobile||"00000000000",selectedCountry:e.selectedCountry||"GB",postCode:e.postCode||"",cityTown:e.cityTown||"",addressFirstLine:e.addressFirstLine||"",addressSecondLine:e.addressSecondLine||"",houseNameNumber:e.houseNameNumber||"",email:e.email||"",password:"",baseUrl:H().replace("/VenposJourneyAPI","/VenPosJourneyUI"),name:`${e.firstName||""} ${e.lastName||""}`.trim(),contactable:e.contactable||!1,contactableByPost:e.contactableByPost||!1,contactableByPhone:e.contactableByPhone||!1,contactableByEmail:e.contactableByEmail||!1,contactableBySMS:e.contactableBySMS||!1,contactableBySocialMedia:e.contactableBySocialMedia||!1,contactableByThirdParty:e.contactableByThirdParty||!1,isGuest:!0})},{locationId:"974"})}async function eg(){return J("WebPage/Get",{},{locationId:"974",id:U()})}async function ev(e,t,a="974"){return(await J("Event/GetFirstAvailableMonthForPage",{method:"POST",body:JSON.stringify({pageId:e,tickets:t})},{locationId:a})).data??null}async function ey(e,t=U()){return J("Payment",{method:"POST",body:JSON.stringify(e)},{locationId:"974",paymentType:0,pageId:t})}async function ej(e){return J("Payment",{method:"GET",timeoutMs:1e4},{paymentToken:e.paymentToken,paymentProcessorTypeId:e.paymentProcessorTypeId,locationId:"974",paymentType:0,orderId:e.orderId,ddOnCompletionredirectUrl:e.ddOnCompletionredirectUrl})}async function ew(e){return J("Basket/CreateFreeOrder",{method:"POST",body:JSON.stringify(e)},{locationId:"974"})}async function eN(e){return J("WebTransHeader/Get",{},{locationId:"974",id:e})}async function ek(e){return J("Basket/GetBasketFinalPrice",{method:"POST",body:JSON.stringify(e)},{locationId:"974"})}function eI(){return(0,r.jsx)("div",{className:"flex items-center justify-center min-h-[400px]",children:(0,r.jsx)("div",{className:"surface rounded-2xl p-8",children:(0,r.jsxs)("div",{className:"flex flex-col items-center space-y-4",children:[(0,r.jsxs)("div",{className:"relative w-16 h-16",children:[(0,r.jsx)("div",{className:"absolute inset-0 border-4 border-primary-200 rounded-full"}),(0,r.jsx)("div",{className:"absolute inset-0 border-4 border-primary-600 rounded-full border-t-transparent animate-spin"})]}),(0,r.jsx)("p",{className:"text-gray-700 font-medium",children:"Loading..."})]})})})}function eS({size:e="md",light:t=!1}){return(0,r.jsx)("div",{className:`flex-shrink-0 animate-spin rounded-full border-2 ${t?"border-white/20 border-t-white":"border-brand/20 border-t-brand"} ${{sm:"w-4 h-4",md:"w-8 h-8",lg:"w-12 h-12"}[e]}`})}function eC({className:e=""}){let t=e.includes("absolute")||e.includes("fixed"),a=e.includes("h-");return(0,r.jsx)("div",{className:`w-full overflow-hidden bg-brand/10 ${!t?"relative":""} ${!a?"h-1":""} ${e}`,children:(0,r.jsx)("div",{className:"absolute inset-0 kj-glow-line-progress"})})}function eT(){return(0,r.jsx)("div",{className:"flex items-center justify-center min-h-[400px] p-8",children:(0,r.jsxs)("div",{className:"surface rounded-2xl p-8 max-w-sm w-full text-center",children:[(0,r.jsx)("svg",{className:"w-10 h-10 mx-auto mb-4 text-text-muted",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m9-.75
5a9 9 0 11-18 0 9 9 0 0118 0zm-9 3.75h.008v.008H12v-.008z"})}),(0,r.jsx)("h2",{className:"text-lg font-semibold text-text-heading mb-2",children:"Something went wrong"}),(0,r.jsx)("p",{className:"text-sm text-text-muted mb-6",children:"We couldn't load the booking page. Please refresh to try again."}),(0,r.jsx)("button",{onClick:()=>window.location.reload(),className:"kj-btn-primary px-6 py-2.5 rounded-xl text-sm font-medium",children:"Refresh page"})]})})}function eP({active:e,children:t,message:a="Loading...",overlayStyle:s="surface",fixed:n=!1}){let i=n?"fixed":"absolute";return(0,r.jsxs)("div",{className:"relative w-full h-full",children:[(0,r.jsx)("div",{className:`transition-all duration-300 ${e?"opacity-50 pointer-events-none select-none":""}`,children:t}),e&&(0,r.jsxs)(r.Fragment,{children:["surface"===s?(0,r.jsx)("div",{className:`${i} inset-0 z-20 flex flex-col items-center justify-center bg-surface/30 ${!n?"rounded-2xl":""} animate-fade-in`,children:(0,r.jsxs)("div",{className:"surface rounded-xl px-5 py-3 shadow-surface-sm flex items-center space-x-3",children:[(0,r.jsx)(eS,{size:"sm"}),(0,r.jsx)("span",{className:"text-sm font-medium text-text-heading",children:a})]})}):"dark"===s?(0,r.jsx)("div",{className:`${i} inset-0 z-20 flex flex-col items-center justify-center bg-black/40 ${!n?"rounded-2xl":""} animate-fade-in`,children:(0,r.jsxs)("div",{className:"surface-dark rounded-xl px-5 py-3 shadow-surface flex items-center space-x-3",children:[(0,r.jsx)(eS,{size:"sm",light:!0}),(0,r.jsx)("span",{className:"text-sm font-medium text-white",children:a})]})}):null,(0,r.jsx)("div",{className:`${i} bottom-0 left-0 right-0 z-30 ${!n?"rounded-b-2xl":""} overflow-hidden`,children:(0,r.jsx)(eC,{})})]})]})}function e_({children:e,variant:t="primary",size:a="md",fullWidth:s=!1,className:n,disabled:l,...o}){return(0,r.jsx)("button",{className:(0,i.default)("inline-flex items-center justify-center font-semibold rounded-xl transition-all duration-300 focus:outline-none focus:ring-2 focus:ring-brand/50",{primary:"kj-btn-primary",secondary:"kj-btn-secondary",solid:"kj-btn-solid",ghost:"bg-transparent hover:bg-white/30 text-text-body"}[t],{sm:"px-4 py-2 text-sm",md:"px-6 py-3 text-base",lg:"px-8 py-4 text-lg"}[a],s&&"w-full",l&&"opacity-50 cursor-not-allowed",n),disabled:l,...o,children:e})}function eE(){let e=P(e=>e.config.venposApiUrl)??w;return e?.includes("uat.venpos.net")?(0,r.jsxs)("div",{className:"fixed top-3 right-3 z-50 flex items-center gap-1.5 bg-red-600 text-white text-xs font-bold uppercase tracking-widest px-3 py-1.5 rounded-full shadow-lg pointer-events-none select-none",children:[(0,r.jsx)("span",{className:"size-2 rounded-full bg-white/60 animate-pulse"}),"UAT"]}):null}function eD({children:e,className:t}){return(0,r.jsx)("div",{className:(0,i.default)("max-w-7xl mx-auto px-4 sm:px-8 lg:px-10 py-3 sm:py-8",t),children:e})}function eM({children:e,className:t,hover:a=!1,onClick:s}){return(0,r.jsx)("div",{className:(0,i.default)("surface rounded-2xl p-4 sm:p-6",a&&"surface-hover cursor-pointer",t),onClick:s,children:e})}function eA({children:e,className:t}){return(0,r.jsx)("div",{className:(0,i.default)("mb-4",t),children:e})}function eB({children:e,className:t}){return(0,r.jsx)("h3",{className:(0,i.default)("text-xl font-bold text-text-heading",t),children:e})}function e$({children:e,className:t}){return(0,r.jsx)("p",{className:(0,i.default)("text-sm text-text-muted mt-1",t),children:e})}function eL({children:e,className:t}){return(0,r.jsx)("div",{className:(0,i.default)(t),children:e})}function eO({children:e,className:t}){return(0,r.jsx)("div",{className:(0,i.default)("mt-4",t),children:e})}function eR({visible:e=!0,theme:t="dark",container:a=!0,above:s,below:n,info:l,secondaryAction:o,extra:d,primaryLabel:c,onPrimaryClick:m,primaryDisabled:u=!1,className:x}){let h=(0,r.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,r.jsx)("div",{className:"dark"===t?"text-white":"text-text-heading",children:l}),(0,r.jsxs)("div",{className:"flex items-center gap-3 flex-shrink-0",children:[o&&(0,r.jsx)("button",{onClick:o.onClick,className:(0,i.default)("px-4 py-2 text-sm font-medium transition-colors","dark"===t?"text-white/80 hover:text-white":"text-text-muted hover:text-text-heading"),children:o.label}),d,(0,r.jsx)(e_,{variant:"solid",size:"lg",onClick:m,disabled:u,children:c})]})]});return(0,r.jsxs)("div",{className:(0,i.default)("fixed bottom-0 left-0 right-0 z-50 transition-transform duration-300","dark"===t?"surface-dark border-t border-white/20 p-4":"bg-surface border-t border-text-muted/20 shadow-lg",e?"translate-y-0":"translate-y-full",x),children:[s,a?(0,r.jsx)(eD,{children:h}):(0,r.jsx)("div",{className:"p-4",children:h}),n]})}var eF=e.i(19534),eq=e.i(38951);let ez={1:"Merchandise",2:"Admission",3:"Gift Voucher",4:"Membership",6:"Service Charge",12:"Promotion",13:"Manager Discount",14:"Master Product",16:"Catering",17:"Manager Refund",19:"System"};function eW(e){window.dataLayer=window.dataLayer||[],window.dataLayer.push({ecommerce:null}),window.dataLayer.push(e)}function eV(e){window.dataLayer=window.dataLayer||[],window.dataLayer.push(e)}function eG(e,t){let a=e.isSysMemberCard?"Membership":ez[e.webSaleItemTypeID??0]??"Other";return{item_id:e.webSaleItemId,item_name:e.name,price:e.price??0,quantity:e.quantity,item_category:a,...t&&{item_list_name:t},...e.selectedDate&&{item_variant:e.selectedDate}}}function eU(e,t){let a=t||"Products";return e.parentWebSaleItemId?`${a} — Upsells`:a}function eH(e,t){eW({event:"view_item_list",ecommerce:{item_list_name:t,items:e.map((e,a)=>({...eG(e,t),index:a}))}})}function eJ(e,t){eW({event:"add_to_cart",ecommerce:{currency:"GBP",value:e.reduce((e,t)=>
5e+(t.price??0)*t.quantity,0),items:e.map(e=>eG(e,t))}})}function eQ(e,t){eW({event:"remove_from_cart",ecommerce:{currency:"GBP",value:e.reduce((e,t)=>e+(t.price??0)*t.quantity,0),items:e.map(e=>eG(e,eU(e,t)))}})}function eY(e,t,a,s,r,n){eW({event:"purchase",...n&&{customer_email:n},ecommerce:{transaction_id:e,currency:"GBP",value:t,...r&&{coupon:r},items:a.map(e=>eG(e,eU(e,s)))}})}function eK(){eV({event:"reservation_expired"})}function eX(e){eV({event:"checkout_error",error_message:e})}var eZ=e.i(4937);function e0(e){if("u">typeof document)return document.cookie.split("; ").find(t=>t.startsWith(e+"="))?.split("=")[1]}async function e1({eventName:e,eventId:t,userData:a,customData:s}){if((0,eZ.hasConsent)("advertisement"))try{await fetch("/api/meta/event",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({eventName:e,eventId:t,sourceUrl:window.location.href,userData:{...a,fbc:e0("_fbc"),fbp:e0("_fbp")},customData:s})})}catch(e){console.error("[Meta CAPI]",e)}}function e2({items:e,value:t}){if(!(0,eZ.hasConsent)("advertisement"))return;let a=`add_to_cart_${Date.now()}`;return window.fbq&&window.fbq("track","AddToCart",{value:t,currency:"GBP",content_ids:e.map(e=>String(e.webSaleItemId)),contents:e.map(e=>({id:String(e.webSaleItemId),quantity:e.quantity}))},{eventID:a}),e1({eventName:"AddToCart",eventId:a,userData:{},customData:{value:t,currency:"GBP",content_ids:e.map(e=>String(e.webSaleItemId)),contents:e.map(e=>({id:String(e.webSaleItemId),quantity:e.quantity}))}})}function e4(){let[e,t]=(0,n.useState)([]),[a,s]=(0,n.useState)(!0),[i,l]=(0,n.use
5State)(null),[o,d]=(0,n.useState)({}),[c,m]=(0,n.useState)({}),[u,x]=(0,n.useState)({}),[h,f]=(0,n.useState)(0),[p,b]=(0,n.useState)(0),[g,v]=(0,n.useState)(!1),{basket:y,addToBasket:j,removeFromBasket:w,updateBasketItem:N,setCurrentStep:k,clearBasket:I,config:S,webPageType:C,pageTitle:T,setPageTitle:M,setConfig:A,setSelectedDate:B}=P();async function $(){try{s(!0);let e=await Q(),a=S.excludedProductNames||[],r=(e.data?.webSaleItems||[]).filter(e=>!a.includes(e.name)),n=e.data?.title||"Products";M(n);let i=e.data?.dateSelectorType||e.data?.DateSelectorType||e?.dateSelectorType||e?.DateSelectorType;i&&A({dateSelectorType:i}),f(e.data?.minimumTotalItems??0),b(e.data?.maximumTotalItems??0),t(r),l(null);let o=r.map(e=>({...e,thumbnailUrl:e.hasThumbnail?`/api/venpos/WebSaleItem/GetImage?locationId=${S.locationId}&webSaleItemId=${e.webSaleItemId}&thumbnail=true`:void 0})),d=o.sort((e,t)=>e.hasThumbnail&&!t.hasThumbnail?-1:!e.hasThumbnail&&t.hasThumbnail?1:0);t(d),console.log("Product thumbnail data:",o.map(e=>({name:e.name,webSaleItemTypeID:e.webSaleItemTypeID,hasThumbnail:e.hasThumbnail,thumbnailUrl:e.thumbnailUrl}))),eH(d.map(e=>({webSaleItemId:e.webSaleItemId,name:e.name,price:e.price,quantity:1,webSaleItemTypeID:e.webSaleItemTypeID,isSysMemberCard:e.isSysMemberCard})),n),await L(r)}catch(e){l("Failed to load products. Please try again."),console.error("Error loading products:",e)}finally{s(!1)}}async function L(e){let t={},a={};if("EventOverview"===C)try{let s=e.map(e=>({webSaleItemId:e.webSaleItemId,quantity:1})),r=await ev(S.webPageId,s,S.locationId);if(r){let s=e.map(e=>({pageType:"WebPage",pageId:S.webPageId,webSaleItemId:e.webSaleItemId,quantity:1,webSaleItemTypeID:e.webSaleItemTypeID,name:e.name,giftAidEligible:e.giftAidEligible,isSysGift:e.isSysGift,isSysMemberCard:e.isSysMemberCard,fixedDonationAmount:0})),n=await Y(s,r),i=n.data?.datePrices?.some(e=>!e.disabled)??!1;e.forEach(e=>{i?t[e.webSaleItemId]={minPrice:e.price,maxPrice:e.price,hasVariablePricing:!1}:a[e.webSaleItemId]=!0})}else e.forEach(e=>{a[e.webSaleItemId]=!0})}catch(a){console.error("Failed to fetch EventOverview calendar:",a),e.forEach(e=>{t[e.webSaleItemId]={minPrice:e.price,maxPrice:e.price,hasVariablePricing:!1}})}else for(let s of e)try{let e={pageType:"WebPage",pageId:S.webPageId,webSaleItemId:s.webSaleItemId,quantity:1,webSaleItemTypeID:s.webSaleItemTypeID,name:s.name,giftAidEligible:s.giftAidEligible,isSysGift:s.isSysGift,isSysMemberCard:s.isSysMemberCard,fixedDonationAmount:0},r=await Y([e]),n=r.data?.datePrices||[],i=n.filter(e=>!e.disabled);if(n.length>0&&0===i.length){let t=await ev(S.webPageId,[{webSaleItemId:s.webSaleItemId,quantity:1}],S.locationId);if(t){let a=await Y([e],t);i=(n=a.data?.datePrices||[]).filter(e=>!e.disabled)}}n.length>0&&0===i.length&&(a[s.webSaleItemId]=!0);let l=i.filter(e=>e.price>0).slice(0,10);if(l.length>0){let e=l.map(e=>e.price);t[s.webSaleItemId]={minPrice:Math.min(...e),maxPrice:Math.max(...e),hasVariablePricing:Math.min(...e)!==Math.max(...e)}}else t[s.webSaleItemId]={minPrice:s.price,maxPrice:s.price,hasVariablePricing:!1}}catch(e){console.error(`Failed to fetch calendar for ${s.name}:`,e),t[s.webSaleItemId]={minPrice:s.price,maxPrice:s.price,hasVariablePricing:!1}}m(t),x(a)}function O(t,a){let s=e.find(e=>e.webSaleItemId===t),r=s?.maxPurchaseQty||99,n=s?.minPurchaseQty>1?s.minPurchaseQty:0;if(d(e=>{let s=e[t]||0;if(a>0){let t=Object.values(e).reduce((e,t)=>e+t,0);if(p>0&&t+(0===s&&n>0?n:1)>p)return e}let i=Math.max(0,s+a);return a>0&&0===s&&n>0&&(i=n),i=Math.min(r,i),{...e,[t]:i}}),s){let e=(o[t]||0)+a;a>0?D(s,Math.max(0,e),"increase"):a<0&&D(s,Math.max(0,e),"decrease")}}(0,n.useEffect)(()=>{if(y.items.length>0){let e={};y.items.forEach(t=>{t.parentWebSaleItemId||(e[t.webSaleItemId]=t.quantity)}),d(e)}},[y.items]),(0,n.useEffect)(()=>{(v(!0),"EventOverview"===C)?k("date-selector"):E("products")},[C,k]),(0,n.useEffect)(()=>{g&&$()},[g]);let R=(0,n.useMemo)(()=>{let t=0,a=0;return Object.entries(o).forEach(([s,r])=>{if(r>0){let n=e.find(e=>e.webSaleItemId===s);n&&(t+=r,a+=n.price*r)}}),{totalItems:t,totalPrice:a}},[o,e]);async function F(){var t,a;if(0===R.totalItems)return;let r=new Set(e.map(e=>e.webSaleItemId)),n=[],i=[];
5if(e.forEach(e=>{let t=o[e.webSaleItemId]||0,a=y.items.find(t=>t.webSaleItemId===e.webSaleItemId),s=t-(a?.quantity||0),r={webSaleItemId:e.webSaleItemId,name:e.name,price:e.price,webSaleItemTypeID:e.webSaleItemTypeID,isSysMemberCard:e.isSysMemberCard};s>0?n.push({...r,quantity:s}):s<0&&i.push({...r,quantity:-s})}),n.length>0&&(eJ(n,T||"Products"),e2({items:n,value:n.reduce((e,t)=>e+t.price*t.quantity,0)})),i.length>0&&eQ(i,T||"Products"),y.items.forEach(e=>{if(r.has(e.webSaleItemId)){let t=o[e.webSaleItemId]||0;0===t?w(e.webSaleItemId):t!==e.quantity&&N(e.webSaleItemId,{quantity:t})}}),Object.entries(o).forEach(([t,a])=>{if(a>0&&!y.items.find(e=>e.webSaleItemId===t)){let s=e.find(e=>e.webSaleItemId===t);s&&j({pageType:"WebPage",pageId:S.webPageId,webSaleItemId:s.webSaleItemId,quantity:a,webSaleItemTypeID:s.webSaleItemTypeID,name:s.name,giftAidEligible:s.giftAidEligible,isSysGift:s.isSysGift,isSysMemberCard:s.isSysMemberCard,price:s.price,fixedDonationAmount:0})}}),t=R.totalItems,a=R.totalPrice,_.default.capture("products_continue_clicked",{item_count:t,total_value:a}),"NoDate"===P.getState().config.dateSelectorType){let e=new Date,t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0"),n=`${t}-${a}-${r}`;B(n);let i=P.getState().basket.items.map(e=>({...e,selectedDate:n}));s(!0);try{let e=await es(i,"Merchandise");if(e.data?.upsells&&e.data.upsells.length>0)k("upsells-merchandise");else try{let e=await es(i,"Event"),t=e.data?.upsells?.length?"upsells-events":"basket";k(t)}catch{k("basket")}}catch(e){console.error("Error continuing with NoDate config:",e),k("basket")}finally{s(!1)}}else k("date-selector")}return g?i?(0,r.jsx)(eD,{children:(0,r.jsxs)("div",{className:"surface rounded-2xl p-8 text-center",children:[(0,r.jsx)("p",{className:"text-feedback-error mb-4",children:i}),(0,r.jsx)(e_,{onClick:$,children:"Try Again"})]})}):(0,r.jsxs)("div",{className:"py-12 pb-32",children:[a&&(0,r.jsx)(eC,{className:"fixed top-0 left-0 right-0 z-50 h-1.5"}),(0,r.jsxs)(eD,{children:[(S.productsTitle||T)&&(0,r.jsxs)("div",{className:"py-8",children:[(0,r.jsx)("h1",{className:`${eF.heading3Styles} text-breakerWhite mb-2`,children:S.productsTitle||T}),(0,r.jsx)(eq.default,{field:S.productsSubtitle,className:`${eF.subheadlineStyles} font-gellix text-breakerWhite`})]}),a&&0===e.length?(0,r.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 mb-8",children:[,,,].fill(null).map((e,t)=>(0,r.jsxs)("div",{className:"kj-card surface flex flex-col min-h-[350px] animate-pulse !p-0 overflow-hidden",children:[(0,r.jsx)("div",{className:"w-full h-48 bg-surface-alt/20"}),(0,r.jsxs)("div",{className:"p-6 flex flex-col flex-1",children:[(0,r.jsx)("div",{className:"h-6 bg-text-muted/15 rounded w-3/4 mb-3"}),(0,r.jsx)("div",{className:"h-4 bg-text-muted/10 rounded w-5/6 mb-4"}),(0,r.jsx)("div",{className:"h-4 bg-text-muted/10 rounded w-1/2 mb-6"}),(0,r.jsx)("div",{className:"h-10 bg-brand/10 rounded-xl w-2/3 mt-auto mx-auto"})]})]},t))}):(0,r.jsx)("div",{className:1===e.length?"grid grid-cols-1 max-w-md mx-auto mb-8":2===e.length?"grid grid-cols-1 sm:grid-cols-2 gap-6 max-w-2xl mx-auto mb-8":"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 mb-8",children:e.map(e=>{let t,a,s,n=o[e.webSaleItemId]||0,i=n>0,l=u[e.webSaleItemId]??!1,d=(()=>{if(n>=(e.maxPurchaseQty||99))return!0;if(p>0){let t=0===n&&e.minPurchaseQty>1?e.minPurchaseQty:1;if(R.totalItems+t>p)return!0}return!1})();return(0,r.jsxs)(eM,{className:`flex flex-col transition-all duration-200 overflow-hidden !p-0 ${i?"ring-2 ring-brand ring-offset-2":""} ${l?"opacity-50 grayscale pointer-events-none":"surface-hover"}`,children:[e.hasThumbnail&&e.thumbnailUrl&&(0,r.jsx)("div",{className:"w-full h-48 bg-surface-alt/40 overflow-hidden",children:(0,r.jsx)("img",{src:e.thumbnailUrl,alt:e.name,className:"w-full h-full object-cover",onError:e=>{e.currentTarget.style.display="none"}})}),(0,r.jsxs)("div",{className:"p-6 flex flex-col flex-1",children:[(0,r.jsxs)(eA,{children:[(0,r.jsx)(eB,{children:e.name}),(0,r.jsx)(e$,{children:e.description})]}),(0,r.jsx)(eL,{className:"flex-1",children:(0,r.jsx)("div",{className:"mb-4",children:(t=c[e.webSaleItemId],a=S.customStrikethroughPrices?.[e.name],s=(0,r.jsxs)("div",{className:"inline-flex items-center px-3 py-1 rounded-full text-xs font-semibold bg-errorRed/12 border border-errorRed/25 text-errorRed w-fit",children:[(0,r.jsx)("svg",{className:"w-4 h-4 mr-1.5 text-feedback-error",fill:"
5currentColor",viewBox:"0 0 20 20",children:(0,r.jsx)("path",{d:"M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"})}),(0,r.jsx)("span",{className:"text-xs font-semibold text-feedback-error",children:"Online Discount"})]}),t?.hasVariablePricing?(0,r.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,r.jsxs)("span",{className:"text-lg line-through text-mediumBrown",children:["£",t.maxPrice.toFixed(2)]}),(0,r.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,r.jsx)("span",{className:"text-sm font-medium text-text-muted",children:"from:"}),(0,r.jsxs)("span",{className:"text-3xl font-bold text-fairweatherBlue",children:["£",t.minPrice.toFixed(2)]})]}),s]}):null!=a?(0,r.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,r.jsxs)("span",{className:"text-lg line-through text-mediumBrown",children:["£",Number(a).toFixed(2)]}),(0,r.jsxs)("span",{className:"text-3xl font-bold text-fairweatherBlue",children:["£",t?.minPrice?.toFixed(2)??e.price.toFixed(2)]}),s]}):(0,r.jsxs)("span",{className:"text-3xl font-bold text-fairweatherBlue",children:["£",t?.minPrice?.toFixed(2)??e.price.toFixed(2)]}))})}),(0,r.jsx)(eO,{children:l?(0,r.jsx)("p",{className:"w-full text-center text-sm text-text-muted",children:"No dates available"}):(0,r.jsxs)("div",{className:"w-full flex items-center justify-center space-x-4",children:[(0,r.jsx)("button",{onClick:()=>O(e.webSaleItemId,-1),className:"w-12 h-12 kj-btn-qty",disabled:0===n,children:"−"}),(0,r.jsx)("span",{className:`text-3xl font-bold w-16 text-center ${i?"text-brand":"text-text-muted"}`,children:n}),(0,r.jsx)("button",{onClick:()=>O(e.webSaleItemId,1),className:"w-12 h-12 kj-btn-qty",disabled:d,children:"+"})]})})]})]},e.webSaleItemId)})})]}),(0,r.jsx)(eR,{visible:R.totalItems>0,info:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,r.jsxs)("p",{className:"text-sm font-medium opacity-80",children:[R.totalItems," ",1===R.totalItems?"ticket":"tickets"," selected"]}),h>0&&R.totalItems<h&&(0,r.jsxs)("span",{className:"text-xs font-semibold text-feedback-error animate-pulse",children:["(Minimum ",h," required)"]})]}),(0,r.jsxs)("p",{className:"text-2xl font-bold",children:["£",R.totalPrice.toFixed(2)]})]}),secondaryAction:{label:"Clear basket",onClick:function(){ei(),el(),d({}),I()}},onPrimaryClick:F,primaryDisabled:h>0&&R.totalItems<h,primaryLabel:(0,r.jsxs)(r.Fragment,{children:["Continue",(0,r.jsx)("svg",{className:"w-5 h-5 ml-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})]})})]}):null}function e3({initialRemainingByProduct:e=null,initialSessions:t=[]}={}){let[a,s]=(0,n.useState)(t),[r,i]=(0,n.useState)(null),[l,o]=(0,n.useState)({}),[d,c]=(0,n.useState)(null),m=null!==e,u=(0,n.useMemo)(()=>{let e={};return a.filter(e=>e.eventId!==d).forEach(t=>{Object.entries(t.productQuantities).forEach(([t,a])=>{e[t]=(e[t]||0)+a})}),e},[a,d]),x=(0,n.useMemo)(()=>{if(!m)return null;let t={};return Object.entries(e).forEach(([e,a])=>{t[e]=Math.max(0,a-(u[e]||0))}),t},[m,e,u]),h=(0,n.useMemo)(()=>Object.values(u).reduce((e,t)=>e+t,0),[u]),f=Object.values(l).reduce((e,t)=>e+t,0),p=!!r&&f>0,b=m?Object.values(x||{}).every(e=>0===e):a.length>0||p,g=a.filter(e=>e.eventId!==d).map(e=>e.eventId);function v(){return p?{eventId:r.eventId,startDateTime:r.startDateTime,duration:r.duration,productQuantities:{...l}}:null}function y(){c(null),i(null),o({})}return{sessions:a,draftTime:r,draftQuantities:l,editingEventId:d,remainingByProduct:x,totalAllocated:h,isFullyAllocated:b,usedEventIds:g,canCommitDraft:p,selectDraftTime:function(e,t=[]){i(e);let a=Math.min(e.bookingMaximumTicketCount||99,e.quantityAvailable||99);o(e=>{if(Object.values(e).reduce((e,t)=>
5e+t,0)<=a)return e;let s=a,r={};return t.forEach(t=>{let a=e[t.webSaleItemId]||0;r[t.webSaleItemId]=Math.min(a,s),s=Math.max(0,s-r[t.webSaleItemId])}),r})},setDraftProductQuantity:function(e,t){o(a=>({...a,[e]:t}))},commitDraftAsSession:function(){let e=v();e&&(s(t=>[...t.filter(e=>e.eventId!==d),e]),y())},editSession:function(e){let t=a.find(t=>t.eventId===e);t&&(c(e),i({eventId:t.eventId,startDateTime:t.startDateTime,duration:t.duration}),o({...t.productQuantities}))},removeSession:function(e){s(t=>t.filter(t=>t.eventId!==e)),d===e&&y()},cancelEdit:y,reset:function(){s([]),y()},loadSessions:function(e){s(e),y()},getAllSessions:function(){let e=v();return e?[...a.filter(e=>e.eventId!==d),e]:a},draftTotalQty:f}}function e5({times:e,selectedEventId:t,usedEventIds:a=[],onSelect:s,config:n}){let l=n?.lowStockThreshold??5??10;return e&&0!==e.length?(0,r.jsx)("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-2",children:e.map(e=>{let n,o=0===e.quantityAvailable,d=a.includes(e.eventId),c=t===e.eventId,m=o||d,u=!o&&e.quantityAvailable<=l,x=e.showAvailabilityTypeID??2;return n=d?"In your booking":o?"Sold out":2===x?`${e.quantityAvailable} available`:u?"Limited":"Good availability",(0,r.jsxs)("button",{type:"button",onClick:()=>!m&&s(e),disabled:m,className:(0,i.default)("flex flex-col items-center justify-center rounded-lg border-2 px-3 py-2.5 text-center transition-all",c?"border-brand bg-brand-light":m?"border-text-muted/15 bg-surface-alt/40 opacity-50 cursor-not-allowed":"border-text-muted/20 hover:border-brand-light hover:scale-[1.02]"),children:[(0,r.jsx)("span",{className:"font-semibold text-text-heading",children:new Date(e.startDateTime).toLocaleTimeString("en-GB",{hour:"2-digit",minute:"2-digit"})}),(0,r.jsx)("span",{className:(0,i.default)("text-xs mt-0.5",o||u&&!d?"text-feedback-error":"text-text-muted"),children:n})]},e.eventId)})}):(0,r.jsx)("p",{className:"text-text-muted text-center py-6",children:"No times available for this date."})}function e6({products:e,quantities:t,onQuantityChange:a,remainingByProduct:s,sessionCapacity:n,compact:i=!1}){let l=Object.values(t).reduce((e,t)=>e+t,0);return(0,r.jsx)("div",{className:"space-y-3",children:e.map(e=>{let o=t[e.webSaleItemId]||0,d=null!=n?n-(l-o):1/0,c=s?s[e.webSaleItemId]??0:1/0,m=Math.max(0,Math.min(e.maxPurchaseQty||99,d,c)),u=e.minPurchaseQty>1?e.minPurchaseQty:0;return(0,r.jsxs)("div",{className:`p-4 rounded-lg border-2 transition-all ${o>0?"border-brand bg-brand-light":"border-text-muted/20"}`,children:[(0,r.jsxs)("div",{className:"flex justify-between items-start mb-2",children:[(0,r.jsxs)("div",{className:"flex-1",children:[(0,r.jsx)("div",{className:"font-semibold text-text-heading",children:e.name}),!i&&e.description&&(0,r.jsx)("div",{className:"text-sm text-text-muted mt-1",children:e.description})]}),(0,r.jsxs)("div",{className:"text-lg font-bold text-brand ml-4",children:["£",e.price.toFixed(2)]})]}),(0,r.jsxs)("div",{className:"flex items-center justify-end space-x-3 mt-3",children:[(0,r.jsx)("button",{type:"button",onClick:()=>a(e.webSaleItemId,Math.max(0,o-1)),className:"w-8 h-8 rounded-full border-2 border-text-muted/30 flex items-center justify-center font-bold text-text-muted hover:border-brand hover:text-brand transition-colors disabled:opacity-40",disabled:0===o,children:"−"}),(0,r.jsx)("span",{className:`text-lg font-bold w-8 text-center ${o>0?"text-brand":"text-text-muted"}`,children:o}),(0,r.jsx)("button",{type:"button",onClick:()=>{let t=0===o&&u>0?u:Math.min(m,o+1);a(e.webSaleItemId,t)},className:"w-8 h-8 rounded-full border-2 border-text-muted/30 flex items-center justify-center font-bold text-text-muted hover:border-brand hover:text-brand transition-colors disabled:opacity-40",disabled:o>=m,children:"+"})]})]},e.webSaleItemId)})})}function e8({session:e,products:t,onEdit:a,onRemove:s}){let n=Object.entries(e.productQuantities).filter(([,e])=>e>0).map(([e,a])=>{let s=t.find(t=>t.webSaleItemId===e);return{name:s?.name||"Ticket",qty:a,price:s?.price||0}}),i=n.reduce((e,t)=>e+t.qty*t.price,0),l=n.map(e=>`${e.qty} \xd7 ${e.name}`).join(", ");return(0,r.jsxs)("div",{className:"flex items-center justify-between gap-3 rounded-lg border-2 border-feedback-success/40 bg-feedback-success/5 px-4 py-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,r.jsx)("svg",{className:"w-5 h-5 text-feedback-success flex-shrink-0",fill:"currentColor",viewBox:"0 0 20 20",children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",clipRule:"evenodd"})}),(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsxs)("div",{className:"font-semibold text-text-heading truncate",children:[new Date(e.startDateTime).toLocaleTimeString("en-GB",{hour:"2-digit",minute:"2-digit"})," — ",l]}),(0,r.jsxs)("div",{className:"text-sm text-text-muted",children:["£",i.toFixed(2)]})]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[(0,r.jsx)("button",{type:"button",onClick:a,className:"px-3 py-1.5 text-sm font-medium rounded-md border border-text-muted/30 text-text-body hover:bg-surface-alt/30 transition-colors",children:"Edit"}),(0,r.jsx)("button",{type:"button",onClick:s,className:"p-1.5 text-feedback-error hover:text-feedback-error/80 transition-colors",title:"Remove session",children:(0,r.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})})})]})]})}function e9(e){let t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0");return`${t}-${a}-${s}`}function e7(e){return e%1==0?e.toFixed(0):10*e%1==0?e.toFixed(1):e.toFixed(2)}let te=["January","February","March","April","May","June","July","August","September","October","November","December"],tt=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"];function ta({field:e,className:t}){return e&&Array.isArray(e)&&0!==e.length&&e.some(e=>e.text&&""!==e.text.trim())?(0,r.jsx)("div",{className:(0,i.default)("surface rounded-2xl p-6 shadow-xl",t),children:(0,r.jsx)(eq.default,{field:e,components:{heading1:({children:e})=>(0,r.jsx)("h1",{className:"text-2xl font-bold text-mainMastBrown mb-3",children:e}),heading2:({children:e})=>(0,r.jsx)("h2",{className:"text-xl font-bold text-mainMastBrown mb-3",children:e}),heading3:({children:e})=>(0,r.jsx)("h3",{className:"text-lg font-bold text-mainMastBrown mb-2",children:e}),heading4:({children:e})=>(0,r.jsx)("h4",{className:"text-base font-bold text-mainMastBrown mb-2",children:e}),paragraph:({children:e})=>(0,r.jsx)("p",{className:"text-mediumBrown font-gellix text-sm md:text-base leading-relaxed [&:not(:last-child)]:mb-4",children:e}),strong:({children:e})=>(0,r.jsx)("strong",{className:"font-semibold text-mainMastBrown",children:e}),em:({children:e})=>(0,r.jsx)("em",{className:"italic",children:e}),list:({children:e})=>(0,r.jsx)("ul",{className:"list-disc list-inside space-y-1.5 text-mediumBrown font-gellix text-sm md:text-base [&:not(:last-child)]:mb-4",children:e}),oList:({children:e})=>(0,r.jsx)("ol",{className:"list-decimal list-inside space-y-1.5 text-mediumBrown font-gellix text-sm md:text-base [&:not(:last-child)]:mb-4",children:e})}})}):null}
5function ts(){let[e,t]=(0,n.useState)(!1),[a,s]=(0,n.useState)(!0),[l,o]=(0,n.useState)(null),[d,c]=(0,n.useState)([]),[m,u]=(0,n.useState)(()=>{let e=P.getState().selectedDate;if(e)return e.split("T")[0];let t=P.getState().basket?.items?.find(e=>e.selectedDate)?.selectedDate;return t?t.split("T")[0]:null}),[x,h]=(0,n.useState)(()=>{let e=P.getState().selectedDate||P.getState().basket?.items?.find(e=>e.selectedDate)?.selectedDate;if(e){let t=new Date(e.split("T")[0]);if(!isNaN(t.getTime()))return new Date(t.getFullYear(),t.getMonth(),1)}let t=new Date;return new Date(t.getFullYear(),t.getMonth(),1)}),[f,p]=(0,n.useState)(null),[b,g]=(0,n.useState)(!1),[v,y]=(0,n.useState)([]),[j,w]=(0,n.useState)([]),[N,k]=(0,n.useState)(!1),[I,S]=(0,n.useState)(!1),[C,D]=(0,n.useState)(!1),B=(0,n.useRef)(null),{basket:$,setSelectedDate:L,setCurrentStep:O,config:R,webPageType:F,commitEventSessions:q,setReservationExpiry:z,clearBasket:W}=P(),V=(0,n.useMemo)(()=>"EventOverview"===F?j:$.items.filter(e=>!e.eventId).map(e=>({webSaleItemId:e.webSaleItemId,name:e.name,price:e.price})),[F,j,$.items]),G=(0,n.useMemo)(()=>{if("EventOverview"===F)return null;let e={};return V.forEach(t=>{let a=$.items.find(e=>e.webSaleItemId===t.webSaleItemId);e[t.webSaleItemId]=a?.quantity||0}),e},[F,V,$.items]),U=(0,n.useMemo)(()=>{if("EventOverview"!==F)return[];let e=new Map;return $.items.filter(e=>e.eventId).forEach(t=>{e.has(t.eventId)||e.set(t.eventId,{eventId:t.eventId,startDateTime:t.selectedDate,productQuantities:{}});let a=e.get(t.eventId);a.productQuantities[t.webSaleItemId]=(a.productQuantities[t.webSaleItemId]||0)+t.quantity}),Array.from(e.values())},[F,$.items]),H=e3({initialRemainingByProduct:G,initialSessions:U});(0,n.useEffect)(()=>{if(!m&&U.length>0&&U[0].startDateTime){let e=U[0].startDateTime.split("T")[0];u(e);let t=new Date(e);isNaN(t.getTime())||h(new Date(t.getFullYear(),t.getMonth(),1))}},[U,m]);let[J,K]=(0,n.useState)(null),X=(0,n.useCallback)(()=>{if(!$.reservationExpiryDateTime)return null;let e=new Date().getTime(),t=T($.reservationExpiryDateTime);if(!t)return null;let a=t-e;return a<=0?{minutes:0,seconds:0}:{minutes:Math.floor(a/6e4),seconds:Math.floor(a%6e4/1e3)}},[$.reservationExpiryDateTime]);(0,n.useEffect)(()=>{if(!$.reservationExpiryDateTime)return void K(null);K(X());let e=setInterval(()=>{let t=X();K(t),t&&0===t.minutes&&0===t.seconds&&(clearInterval(e),ei(),el(),W(),u(null),H.reset())},1e3);return()=>clearInterval(e)},[$.reservationExpiryDateTime,X,W]);let{draftTime:ee,draftQuantities:er,editingEventId:eo,remainingByProduct:em,isFullyAllocated:eu,usedEventIds:ex,canCommitDraft:eh,selectDraftTime:ef,setDraftProductQuantity:ep,commitDraftAsSession:eb,editSession:eg,removeSession:ey,getAllSessions:ej}=H,ew=H.sessions.filter(e=>e.eventId!==eo),eN=ej(),ek=(0,n.useMemo)(()=>"EventOverview"===F?eN.reduce((e,t)=>e+Object.values(t.productQuantities).reduce((e,t)=>e+t,0),0):$.items.reduce((e,t)=>e+t.quantity,0),[F,eN,$.items]),eI=(0,n.useMemo)(()=>"EventOverview"===F?eN.reduce((e,t)=>e+Object.entries(t.productQuantities).reduce((e,[t,a])=>{let s=j.find(e=>e.webSaleItemId===t);return e+(s?.price||0)*a},0),0):0,[F,eN,j]),eT=ee?Math.min(ee.bookingMaximumTicketCount||99,ee.quantityAvailable||99):null,eP=(0,n.useMemo)(()=>{let e=new Map;return R.dateWarnings?.forEach(t=>e.set(t.date,t.text)),e},[R.dateWarnings]),eE=(0,n.useMemo)(()=>{let e=R.dateSelectorInformationPanel;return Array.isArray(e)&&e.some(e=>e.text&&""!==e.text.trim())},[R.dateSelectorInformationPanel]),eM="EventOverview"===F&&null!==m;(0,n.useEffect)(()=>{if(eM){let e=setTimeout(()=>S(!0),20);return()=>clearTimeout(e)}S(!1)},[eM,m]),(0,n.useEffect)(()=>{t(!0),E("date-selector"),e$()},[]);let eA=(0,n.useMemo)(()=>{if("EventOverview"!==F||0===j.length)return[];let e=j[0];return[{pageType:"WebPage",pageId:R.webPageId,webSaleItemId:e.webSaleItemId,quantity:1,webSaleItemTypeID:e.webSaleItemTypeID||2,name:e.name,giftAidEligible:e.giftAidEligible||!1,isSysGift:e.isSysGift||!1,isSysMemberCard:e.isSysMemberCard||!1,fixedDonationAmount:0}]},[F,j,R.webPageId]);async function eB(e,t=null){try{g(!0);let a=e.getFullYear(),s=String(e.getMonth()+1).padStart(2,"0"),r=`${a}-${s}-01`,n=$.items;"EventOverview"===F&&(n=t||eA);let i=await Y(n,r),l=i.data?.datePrices??[];return c(l),l}catch(e){return console.error("Error fetching calendar for month:",e),[]}finally{g(!1)}}async function e$(){try{s(!0),o(null),await et($.items,$.giftAidSelected);let e=[],t=[];
5if("EventOverview"===F){try{let a=await Q(),s=R.excludedProductNames||[],r=(a.data?.webSaleItems||[]).filter(e=>!s.includes(e.name));if(w(r),r.length>0){t=r.map(e=>({webSaleItemId:e.webSaleItemId,quantity:1}));let a=r[0];e=[{pageType:"WebPage",pageId:R.webPageId,webSaleItemId:a.webSaleItemId,quantity:1,webSaleItemTypeID:a.webSaleItemTypeID||2,name:a.name,giftAidEligible:a.giftAidEligible||!1,isSysGift:a.isSysGift||!1,isSysMemberCard:a.isSysMemberCard||!1,fixedDonationAmount:0}]}}catch(e){console.error("Error loading event products:",e)}if(!m){let a=await ev(R.webPageId,t,R.locationId);if(a){let t=new Date(a),s=new Date(t.getFullYear(),t.getMonth(),1);h(s),await eB(s,e);return}}}let a=await eB(x,e);if("EventOverview"!==F&&a.length>0&&a.every(e=>e.disabled)&&$.items.length>0){let e=$.items.map(e=>({webSaleItemId:e.webSaleItemId,quantity:e.quantity})),t=await ev(R.webPageId,e,R.locationId);if(t){let e=new Date(t),a=new Date(e.getFullYear(),e.getMonth(),1);h(a),await eB(a)}}"EventOverview"===F&&m&&await eF(m)}catch(t){var e;o("Failed to load calendar. Please try again."),console.error("Error loading calendar:",t),e=t?.message||"unknown",_.default.capture("calendar_load_error",{error_message:e})}finally{s(!1)}}let eL=(0,n.useMemo)(()=>{let e=x.getFullYear(),t=x.getMonth(),a=new Date(e,t,1),s=new Date(e,t+1,0).getDate(),r=a.getDay()-1;r<0&&(r=6);let n=[];for(let e=0;e<r;e++)n.push({date:null,datePrice:null});for(let a=1;a<=s;a++){let s=new Date(e,t,a),r=e9(s),i=d.find(e=>e.date.split("T")[0]===r)||null;n.push({date:s,datePrice:i})}return n},[x,d]);async function eO(e,t){if(!t||t.disabled)return;let a=e9(e);a!==m&&($.items.some(e=>e.eventId)||ew.length>0)?p(a):await eF(a)}async function eF(e){let t=e!==m;if(u(e),eV({event:"select_date",date:e}),_.default.capture("date_selected",{date:e,page_type:F}),t&&(y([]),S(!1),H.reset()),"EventOverview"===F){k(!0);try{let t=eA.length>0?eA:j.length>0?[{pageType:"WebPage",pageId:R.webPageId,webSaleItemId:j[0].webSaleItemId,quantity:1,webSaleItemTypeID:j[0].webSaleItemTypeID||2,name:j[0].name,giftAidEligible:j[0].giftAidEligible||!1,isSysGift:j[0].isSysGift||!1,isSysMemberCard:j[0].isSysMemberCard||!1,fixedDonationAmount:0}]:[],a=await en(R.webPageId,e,t,"WebPage"),s=a.data?.events||[];y(s);let r=s.filter(e=>e.quantityAvailable>0);1===r.length&&(ef(r[0],V),M(r[0].eventId,r[0].startDateTime,r[0].quantityAvailable)),setTimeout(()=>{B.current?.scrollIntoView({behavior:"smooth",block:"start"})},300)}catch(e){console.error("Failed to fetch event times:",e),y([])}finally{k(!1)}}}async function eq(){if(!m||"EventOverview"===F&&0===ek||C)return;let e="EventOverview"===F?ej():[],t=e.length>0?e[0].startDateTime:m;D(!0);try{L(t);let a=[];if("EventOverview"===F&&e.length>0){let t=[];if(e.forEach(e=>{Object.entries(e.productQuantities).forEach(([a,s])=>{if(s<=0)return;let r=j.find(e=>e.webSaleItemId===a);r&&t.push({pageType:"WebPage",pageId:R.webPageId,webSaleItemId:r.webSaleItemId,quantity:s,webSaleItemTypeID:r.webSaleItemTypeID,name:r.name,giftAidEligible:r.giftAidEligible,isSysGift:r.isSysGift,isSysMemberCard:r.isSysMemberCard,price:r.price,fixedDonationAmount:0,eventId:e.eventId,selectedDate:e.startDateTime})})}),0===t.length)return;await ed([]);let s=(await ec([R.webPageId],t)).data||[],r=null;a=t.map(e=>{let t=s.find(t=>t.webSaleItemId===e.webSaleItemId&&(null==t.eventId||t.eventId===e.eventId));return t?((!r||t.reservationExpiryDateTime<r)&&(r=t.reservationExpiryDateTime),{...e,eventCapacityUsageId:t.eventCapacityUsageId,EventCapacityUsageId:t.eventCapacityUsageId,reservationExpiryDateTime:t.reservationExpiryDateTime,ReservationExpiryDateTime:t.reservationExpiryDateTime}):e}),r&&z(r),q(R.webPageId,a),await ea(a)}else{let e=$.items.map(e=>({webSaleItemId:e.webSaleItemId,quantity:e.quantity}));await Z(R.locationId,t,e)}let s=a.length>0?a:$.items.map(e=>({...e,selectedDate:t})),r=await es(s,"Merchandise");if(r.data?.upsells&&r.data.upsells.length>0)A(t,F,"upsells-merchandise"),O("upsells-merchandise");else try{let e=await es(s,"Event"),a=e.data?.upsells?.length?"upsells-events":"basket";A(t,F,a),O(a)}catch{A(t,F,"basket"),O("basket")}}catch(e){console.error("Error continuing from date selector:",e),O("basket")}finally{D(!1)}}async function ez(e){var t;let a=new Date(x);a.setMonth(a.getMonth()+e),h(a),t=`${a.getFullYear()}
5-${String(a.getMonth()+1).padStart(2,"0")}`,_.default.capture("calendar_month_navigated",{direction:e>0?"forward":"back",month:t}),await eB(a)}let eW=(0,n.useMemo)(()=>d.length>0&&d.every(e=>e.disabled),[d]),eG=(0,n.useMemo)(()=>m?d.find(e=>e.date.split("T")[0]===m):null,[m,d]);return e?l?(0,r.jsx)(eD,{children:(0,r.jsxs)("div",{className:"surface rounded-2xl p-8 text-center",children:[(0,r.jsx)("p",{className:"text-feedback-error mb-4",children:l}),(0,r.jsx)(e_,{onClick:e$,children:"Try Again"})]})}):(0,r.jsxs)("div",{className:"min-h-screen pb-32",children:[(a||b||N||C)&&(0,r.jsx)(eC,{className:"fixed top-0 left-0 right-0 z-50 h-1.5"}),(0,r.jsxs)(eD,{children:[(0,r.jsxs)("div",{className:"text-center mb-8",children:[(0,r.jsx)("h1",{className:"text-4xl md:text-5xl font-bold text-breakerWhite mb-2",children:R.dateSelectorTitle??("EventOverview"===F?"Choose Your Visit Date & Tickets":"Select Your Visit Date")}),(0,r.jsx)("p",{className:"text-lg md:text-xl text-breakerWhite/80",children:R.dateSelectorSubtitle??("EventOverview"===F?"Select an available date and choose your tickets":"Choose an available date for your visit")})]}),J&&(0,r.jsx)("div",{className:"max-w-5xl mx-auto mb-6 bg-amber-500/15 border border-amber-400/30 rounded-2xl p-4 flex items-center justify-between text-mainMastBrown shadow-sm",children:(0,r.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,r.jsx)("svg",{className:"w-5 h-5 text-amber-600 flex-shrink-0 animate-pulse",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})}),(0,r.jsxs)("span",{className:"text-sm md:text-base font-semibold",children:["Your tickets are reserved for ",String(J.minutes).padStart(2,"0"),":",String(J.seconds).padStart(2,"0")]})]})}),(0,r.jsxs)("div",{className:"max-w-5xl mx-auto",children:[(0,r.jsx)(ta,{field:R.dateSelectorInformationPanel,className:"block lg:hidden mb-6"}),(0,r.jsxs)("div",{className:(0,i.default)("flex flex-col gap-6",("EventOverview"===F||eE)&&"lg:flex-row lg:items-start"),children:[(0,r.jsx)("div",{className:(0,i.default)("w-full","EventOverview"===F||eE?"lg:w-1/2":"max-w-2xl mx-auto"),children:(0,r.jsxs)("div",{className:(0,i.default)("surface rounded-2xl p-6 shadow-xl transition-all duration-300",(a||b)&&"opacity-65 pointer-events-none"),children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-6",children:[(0,r.jsx)("button",{onClick:()=>ez(-1),className:"p-2 rounded-full hover:bg-surface-alt/40 transition-colors",children:(0,r.jsx)("svg",{className:"w-6 h-6 text-text-muted",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"})})}),(0,r.jsxs)("h2",{className:"text-xl font-bold text-mainMastBrown",children:[te[x.getMonth()]," ",x.getFullYear()]}),(0,r.jsx)("button",{onClick:()=>ez(1),className:"p-2 rounded-full hover:bg-surface-alt/40 transition-colors",children:(0,r.jsx)("svg",{className:"w-6 h-6 text-text-muted",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})})]}),(0,r.jsx)("div",{className:"grid grid-cols-7 gap-1 mb-2",children:tt.map(e=>(0,r.jsx)("div",{className:"text-center text-sm font-semibold text-text-muted py-2",children:e},e))}),(0,r.jsxs)("div",{className:"relative",children:[(b||a)&&(0,r.jsx)("div",{className:"absolute inset-0 bg-surface/30 flex items-center justify-center z-10 rounded-xl",children:(0,r.jsxs)("div",{className:"surface rounded-xl px-4 py-2 shadow-surface-sm flex items-center space-x-2",children:[(0,r.jsx)(eS,{size:"sm"}),(0,r.jsx)("span",{className:"text-xs font-semibold text-text-heading",children:"Updating Calendar..."})]})}),!b&&!a&&eW&&(0,r.jsx)("div",{className:"absolute inset-0 bg-surface/75 flex items-center justify-center z-10 rounded-xl",children:(0,r.jsxs)("div",{className:"surface rounded-xl px-6 py-4 shadow-surface text-center",children:[(0,r.jsx)("p",{className:"text-base font-semibold text-text-heading",children:"No availability this month"}),(0,r.jsx)("p",{className:"text-sm text-text-muted mt-1",children:"Try navigating to another month"})]})}),(0,r.jsx)("div",{className:"grid grid-cols-7 gap-1",children:eL.map((e,t)=>{if(!e.date)return(0,r.jsx)("div",{className:"h-12 sm:h-14 md:h-16"},`empty-${t}`);let a=e9(e.date),s=m===a,n=e.datePrice&&!e.datePrice.disabled,l=a===e9(new Date),o=e.datePrice?.price||0,d=e.datePrice?.disabled&&(e.datePrice.isSoldOut||e.datePrice.s
5oldOut||o>0),c=n&&eP.has(a);return(0,r.jsxs)("button",{onClick:()=>eO(e.date,e.datePrice),disabled:!n,className:(0,i.default)("h-12 sm:h-14 md:h-16 rounded-xl p-1 flex flex-col items-center justify-center transition-all duration-200 relative",s?"kj-bg-brand-solid shadow-lg scale-105":n?"bg-surface hover:bg-brand-light hover:scale-105 text-text-heading shadow-sm border border-text-muted/10":"bg-surface-alt/40 text-text-muted cursor-not-allowed",l&&!s&&"ring-2 ring-brand-light",c&&!s&&"ring-1 ring-amber-400/60"),children:[(0,r.jsx)("span",{className:(0,i.default)("text-lg font-bold leading-none",s&&"!text-white"),children:e.date.getDate()}),(0,r.jsx)("span",{className:(0,i.default)("text-[9px] font-semibold leading-none mt-0.5",d?"uppercase tracking-wider text-feedback-error":n&&o>0?s?"!text-white":"text-brand":"invisible"),children:d?"Sold Out":n&&o>0?`\xa3${e7(o)}`:"·"}),c&&(0,r.jsx)("span",{className:(0,i.default)("absolute bottom-1 left-1/2 -translate-x-1/2 w-1 h-1 rounded-full",s?"bg-white/50":"bg-amber-400")})]},`day-${t}-${a}`)})})]}),(0,r.jsxs)("div",{className:"flex items-center justify-center gap-6 mt-6 text-sm text-text-muted",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("div",{className:"w-4 h-4 rounded bg-surface border border-text-muted/20"}),(0,r.jsx)("span",{children:"Available"})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("div",{className:"w-4 h-4 rounded bg-surface-alt/40"}),(0,r.jsx)("span",{children:"Unavailable"})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("div",{className:"w-4 h-4 rounded bg-brand"}),(0,r.jsx)("span",{children:"Selected"})]})]})]})}),"EventOverview"!==F&&eE&&(0,r.jsx)("div",{className:"hidden lg:block lg:w-1/2",children:(0,r.jsx)(ta,{field:R.dateSelectorInformationPanel})}),"EventOverview"===F&&(0,r.jsxs)("div",{ref:B,className:(0,i.default)("lg:w-1/2 w-full scroll-mt-20",m?(0,i.default)("transition-all duration-500 ease-out",I?"opacity-100 translate-y-0":"opacity-0 translate-y-4 lg:translate-y-0"):"hidden lg:block"),children:[(0,r.jsx)(ta,{field:R.dateSelectorInformationPanel,className:"hidden lg:block mb-6"}),(0,r.jsx)("div",{className:"surface rounded-2xl p-6 shadow-xl h-full",children:m?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("h3",{className:"text-xl font-bold text-mainMastBrown mb-1",children:"Select a Time & Tickets"}),(0,r.jsx)("p",{className:"text-text-muted text-sm mb-5",children:new Date(m).toLocaleDateString("en-GB",{weekday:"long",day:"numeric",month:"long"})}),eP.has(m)&&(0,r.jsxs)("div",{className:"flex items-start gap-2.5 bg-amber-500/15 border border-amber-400/40 rounded-xl px-3 py-2.5 mb-5",children:[(0,r.jsx)("svg",{className:"w-4 h-4 text-amber-600 flex-shrink-0 mt-0.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z"})}),(0,r.jsx)("p",{className:"text-mainMastBrown text-sm leading-snug",children:eP.get(m)})]}),N?(0,r.jsx)("div",{className:"flex items-center justify-center py-10",children:(0,r.jsx)("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-brand"})}):0===v.length?(0,r.jsx)("p",{className:"text-text-muted text-center py-10",children:"No times available for this date."}):(0,r.jsxs)("div",{className:"space-y-5",children:[ew.length>0&&(0,r.jsxs)("div",{className:"space-y-3 mb-4",children:[(0,r.jsx)("span",{className:"text-sm font-semibold text-text-heading",children:"Booked Sessions"}),ew.map(e=>(0,r.jsx)(e8,{session:e,products:V,onEdit:()=>eg(e.eventId),onRemove:()=>ey(e.eventId)},e.eventId))]}),(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"block text-sm font-semibold text-text-heading mb-2",children:ew.length>0?"Select Additional Time":"1. Choose a Time"}),(0,r.jsx)(e5,{times:v,selectedEventId:ee?.eventId,usedEventIds:ex,onSelect:function(e){ef(e,V),M(e.eventId,e.startDateTime,e.quantityAvailable)},config:R})]}),ee&&(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"block text-sm font-semibold text-text-heading mb-2",children:ew.length>0?"Select Tickets for this session":"2. Choose Your Tickets"}),(0,r.jsx)(e6,{products:V,quantities:er,onQuantityChange:ep,remainingByProduct:em,sessionCapacity:eT,compact:ew.length>0})]}),eh&&!1!==R.allowMultiTimeslot&&(0,r.jsx)("button",{type:"button",onClick:eb,className:"text-sm font-medium text-brand hover:underline mt-2 flex items-center gap-1",children:(0,r.jsx)("span",{children:"+ Add another session"})})]})]})]}):(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 text-center",children:[(0,r.jsx)("svg",{className:"w-10 h-10 mb-3 text-text-muted/40",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"})}),(0,r.jsx)("p",{className:"font-semibold text-text-heading mb-1",children:"Choose a date"}),(0,r.jsx)("p",{className:"text-sm text-text-muted",children:"Select an available date to see times and choose tickets"})]})})]})]}
5),"EventOverview"!==F&&(0,r.jsx)("div",{className:"mt-4 max-w-2xl mx-auto",children:(0,r.jsxs)("button",{onClick:()=>O("products"),className:"text-text-muted hover:text-text-heading font-medium flex items-center gap-2",children:[(0,r.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"})}),"Back to Tickets"]})})]})]}),(0,r.jsx)(eR,{visible:"EventOverview"===F?ek>0:$.items.length>0,above:"EventOverview"!==F&&m&&eP.has(m)&&(0,r.jsx)(eD,{className:"!py-0 pb-3",children:(0,r.jsxs)("div",{className:"flex items-start gap-2.5 bg-amber-500/15 border border-amber-400/30 rounded-xl px-3 py-2.5",children:[(0,r.jsx)("svg",{className:"w-4 h-4 text-amber-300 flex-shrink-0 mt-0.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z"})}),(0,r.jsx)("p",{className:"text-amber-100 text-sm leading-snug",children:eP.get(m)})]})}),info:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("p",{className:"text-sm font-medium opacity-80",children:[ek," ",1===ek?"ticket":"tickets"," selected"]}),(0,r.jsx)("p",{className:"text-xl font-bold leading-tight",children:m?new Date(m).toLocaleDateString("en-GB",{weekday:"short",day:"numeric",month:"long",year:"numeric"}):"Choose a date"}),"EventOverview"===F&&eI>0&&(0,r.jsxs)("p",{className:"text-sm font-semibold opacity-90",children:["Total: £",e7(eI)]}),"EventOverview"!==F&&eG&&(0,r.jsxs)("p",{className:"text-sm opacity-80",children:["Total: £",e7(eG.price)]})]}),secondaryAction:{label:"Clear",onClick:function(){ei(),el(),W(),u(null),H.reset()}},onPrimaryClick:eq,primaryDisabled:("EventOverview"===F?0===ek:!m)||C,primaryLabel:(0,r.jsxs)(r.Fragment,{children:[C?"Reserving...":"Continue",!C&&(0,r.jsx)("svg",{className:"w-5 h-5 ml-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})]})}),f&&(0,r.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/60 backdrop-blur-sm animate-fadeIn",children:(0,r.jsxs)("div",{className:"bg-[#3c3021] border border-white/10 rounded-2xl p-6 md:p-8 max-w-md w-full shadow-2xl space-y-5",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("svg",{className:"w-7 h-7 flex-shrink-0 text-amber-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})}),(0,r.jsx)("h3",{className:"text-xl font-bold text-breakerWhite",children:"Change Visit Date?"})]}),(0,r.jsx)("p",{className:"text-breakerWhite/80 font-gellix text-sm md:text-base leading-relaxed",children:"Selecting a different date will release your existing reserved tickets. Do you want to clear your current selection and choose a new date?"}),(0,r.jsxs)("div",{className:"flex flex-col-reverse md:flex-row items-center justify-end gap-3 pt-2",children:[(0,r.jsx)(e_,{className:"w-full md:w-auto bg-transparent border-2 border-white/30 text-breakerWhite hover:bg-white/10",onClick:function(){p(null)},children:"Cancel"}),(0,r.jsx)(e_,{className:"w-full md:w-auto bg-errorRed hover:bg-errorRed/90 text-white",onClick:function(){f&&(p(null),ei(),el(),W(),H.reset(),eF(f))},children:"Clear & Change Date"})]})]})})]}):null}function tr({isOpen:e,onClose:t,name:a,description:s,products:i,times:l,loading:o,config:d,initialSessions:c,minTotalItems:m=0,maxTotalItems:u=0,onConfirm:x}){let{sessions:h,draftTime:f,draftQuantities:p,draftTotalQty:b,editingEventId:g,usedEventIds:v,canCommitDraft:y,selectDraftTime:j,setDraftProductQuantity:w,commitDraftAsSession:N,editSession:k,removeSession:I,loadSessions:S,getAllSessions:C}=e3({});if((0,n.useEffect)(()=>{e&&S(c||[])},[e]),!e)return null;let T=f?Math.min(f.bookingMaximumTicketCount||99,f.quantityAvailable||99):null,P=null!=T?Math.min(T,u>0?u:1/0):null,_=!(m>0)||b>=m,E=y&&_,D=h.filter(e=>e.eventId!==g),M=E?C():D,A=M.reduce((e,t)=>
5e+Object.values(t.productQuantities).reduce((e,t)=>e+t,0),0),B=M.reduce((e,t)=>e+Object.entries(t.productQuantities).reduce((e,[t,a])=>{let s=i.find(e=>e.webSaleItemId===t);return e+(s?.price||0)*a},0),0),$=D.length>0||E;return(0,r.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/50 backdrop-blur-sm",children:(0,r.jsxs)("div",{className:"bg-white/95 backdrop-blur-xl border border-white/20 shadow-2xl rounded-2xl max-w-3xl w-full p-5 sm:p-8 max-h-[calc(100%-2rem)] overflow-y-auto animate-in fade-in zoom-in duration-300",children:[(0,r.jsxs)("div",{className:"mb-6 flex items-start justify-between gap-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{className:"text-2xl sm:text-3xl font-bold text-text-heading mb-1",children:a}),s&&(0,r.jsx)("p",{className:"text-base text-text-body leading-relaxed",children:s})]}),(0,r.jsx)("button",{onClick:t,className:"text-text-muted hover:text-text-heading p-1 flex-shrink-0","aria-label":"Close",children:(0,r.jsx)("svg",{className:"w-6 h-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),o?(0,r.jsx)("div",{className:"flex items-center justify-center py-16",children:(0,r.jsx)("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-brand"})}):(0,r.jsxs)("div",{className:"space-y-4",children:[D.map(e=>(0,r.jsx)(e8,{session:e,products:i,onEdit:()=>k(e.eventId),onRemove:()=>I(e.eventId)},e.eventId)),(0,r.jsxs)("div",{className:"space-y-4",children:[D.length>0&&(0,r.jsx)("h3",{className:"font-semibold text-text-heading",children:"Add another session"}),(0,r.jsx)(e6,{products:i,quantities:p,onQuantityChange:w,sessionCapacity:P,compact:D.length>0}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"block text-sm font-medium text-text-body mb-2",children:"Select Time"}),(0,r.jsx)(e5,{times:l,selectedEventId:f?.eventId,usedEventIds:v,onSelect:e=>j(e,i),config:d})]}),b>0&&!_&&(0,r.jsxs)("p",{className:"text-xs font-semibold text-feedback-error",children:["Minimum ",m," tickets required for this experience"]}),E&&(0,r.jsx)("button",{type:"button",onClick:N,className:"text-sm font-medium text-brand hover:underline",children:"+ Add another session"})]})]}),(0,r.jsxs)("div",{className:"mt-6 pt-4 border-t border-text-muted/10 flex items-center justify-between gap-4",children:[(0,r.jsxs)("div",{className:"text-text-body",children:[(0,r.jsxs)("p",{className:"text-sm text-text-muted",children:[A," ",1===A?"ticket":"tickets"," · ",M.length," session",1!==M.length?"s":""]}),(0,r.jsxs)("p",{className:"text-xl font-bold text-text-heading",children:["£",B.toFixed(2)]})]}),(0,r.jsx)(e_,{variant:"solid",size:"lg",onClick:function(){if(!$)return;let e=E?C():D;0!==e.length&&(x(e),t())},disabled:!$,children:"Add to Booking"})]})]})})}function tn(e){return e.reduce((e,t)=>e+Object.values(t.productQuantities).reduce((e,t)=>e+t,0),0)}function ti(e,t){return e.reduce((e,a)=>e+Object.entries(a.productQuantities).reduce((e,[a,s])=>{let r=t.find(e=>e.webSaleItemId===a);return e+(r?.price||0)*s},0),0)}function tl({type:e}
5){let[t,a]=(0,n.useState)(!1),[s,i]=(0,n.useState)([]),[l,o]=(0,n.useState)(!0),[d,c]=(0,n.useState)(null),[m,u]=(0,n.useState)({}),[x,h]=(0,n.useState)({}),[f,p]=(0,n.useState)({}),[b,g]=(0,n.useState)({}),[v,y]=(0,n.useState)({}),[j,w]=(0,n.useState)(null),[N,k]=(0,n.useState)(!1),[I,S]=(0,n.useState)(!1),{basket:C,config:T,selectedDate:D,addToBasket:M,setCurrentStep:A,commitEventSessions:L,setReservationExpiry:O,pageTitle:R}=P();async function F(){try{o(!0);let a=await es(C.items,e);if(a.data?.upsells){var t;let s=T.excludedProductNames||[],r=a.data.upsells.filter(e=>!s.includes(e.name));i(r);let n=`${R||"Products"} — Upsells`;if(eH(r.map(e=>({webSaleItemId:e.id,name:e.name,price:e.price,quantity:1,webSaleItemTypeID:e.webSaleItemTypeID,isSysMemberCard:e.isSysMemberCard})),n),t=r.length,_.default.capture("upsell_step_viewed",{upsell_type:e,upsell_count:t}),"Event"===e){let e=r.filter(e=>"EventTemplate"===e.pageType).map(async e=>{try{let t=await er(e.id);if(t.data?.webSaleItems){let a=t.data.webSaleItems.filter(e=>!s.includes(e.name));return{upsellId:e.id,products:a,minTotalItems:t.data.minimumTotalItems??0,maxTotalItems:t.data.maximumTotalItems??0}}}catch(t){console.error("Error pre-fetching products for:",e.id,t)}return null}),t=await Promise.all(e),a={},n={};t.forEach(e=>{e&&(a[e.upsellId]=e.products,n[e.upsellId]={minTotalItems:e.minTotalItems,maxTotalItems:e.maxTotalItems})}),h(e=>({...e,...a})),g(e=>({...e,...n}))}}}catch(e){console.error("Error loading upsells:",e),c("Failed to load additional products.")}finally{o(!1)}}async function q(e){if(w(e),!f[e]&&D){k(!0);try{let t=s.find(t=>t.id===e),a=(x[e]||[])[0],r=a?[...C.items,{webSaleItemId:a.webSaleItemId,name:a.name,quantity:1,pageType:"EventTemplate",pageId:e,giftAidEligible:!1,webSaleItemTypeID:2,isSysGift:!1,isSysMemberCard:!1,parentWebSaleItemId:t?.parentWebSaleItemId,fixedDonationAmount:0,bookingProtectionEligible:!1}]:C.items,n=await en(e,D,r);n.data?.events&&p(t=>({...t,[e]:n.data.events}))}catch(e){console.error("Error loading event times:",e)}finally{k(!1)}}}function z(t,a){let r=s.find(e=>e.id===t),n=r?.maxPurchaseQty||99,i=r?.minPurchaseQty>1?r.minPurchaseQty:0;u(e=>{let s=e[t]||0,r=Math.max(0,s+a);return a>0&&0===s&&i>
50&&(r=i),r=Math.min(n,r),{...e,[t]:r}}),r&&(a>0?B(r,e):a<0&&$(r,e))}async function W(){S(!0);try{let t=`${R||"Products"} — Upsells`,a=[];Object.entries(m).forEach(([e,t])=>{if(0===t)return;let r=s.find(t=>t.id===e);r&&(M({webSaleItemId:r.id,name:r.name,quantity:t,pageType:r.pageType,pageId:T.webPageId,giftAidEligible:!1,webSaleItemTypeID:r.webSaleItemTypeID,isSysGift:!1,isSysMemberCard:r.isSysMemberCard,parentWebSaleItemId:r.parentWebSaleItemId,price:r.price}),a.push({webSaleItemId:r.id,name:r.name,price:r.price,quantity:t,webSaleItemTypeID:r.webSaleItemTypeID,isSysMemberCard:r.isSysMemberCard,parentWebSaleItemId:r.parentWebSaleItemId}))}),a.length>0&&(eJ(a,t),e2({items:a,value:a.reduce((e,t)=>e+t.price*t.quantity,0)}));let r=[];if(Object.entries(v).forEach(([e,t])=>{if(!t||0===t.length)return;let a=s.find(t=>t.id===e);if(!a)return;let n=x[e]||[],i=[];if(t.forEach(t=>{Object.entries(t.productQuantities).forEach(([s,r])=>{if(r<=0)return;let l=n.find(e=>e.webSaleItemId===s);i.push({webSaleItemId:s,name:l?.name||a.name,quantity:r,pageType:"EventTemplate",pageId:e,giftAidEligible:!1,webSaleItemTypeID:2,isSysGift:!1,isSysMemberCard:!1,parentWebSaleItemId:a.parentWebSaleItemId,price:l?.price||0,selectedDate:t.startDateTime,eventId:t.eventId})})}),i.length>0){r.push({upsellId:e,items:i});let t=i.map(e=>({webSaleItemId:e.webSaleItemId,name:e.name,price:e.price,quantity:e.quantity,webSaleItemTypeID:2,parentWebSaleItemId:a.parentWebSaleItemId}));eJ(t,`${R||"Products"} — Upsells`),e2({items:t,value:t.reduce((e,t)=>e+t.price*t.quantity,0)})}}),r.length>0)try{await ed([]);let e=r.map(e=>e.upsellId),t=r.flatMap(e=>e.items),a=C.items.concat(t),s=await ec(e,a);console.log("Capacity reservation response:",JSON.stringify(s,null,2));let n=s.data||[],i=null,l=t.map(e=>{let t=n.find(t=>t.webSaleItemId===e.webSaleItemId&&(null==t.eventId||t.eventId===e.eventId));return t?((!i||t.reservationExpiryDateTime<i)&&(i=t.reservationExpiryDateTime),{...e,eventCapacityUsageId:t.eventCapacityUsageId,EventCapacityUsageId:t.eventCapacityUsageId,reservationExpiryDateTime:t.reservationExpiryDateTime,ReservationExpiryDateTime:t.reservationExpiryDateTime}):e});i&&O(i),r.forEach(({upsellId:e,items:t})=>{let a=t.map(e=>l.find(t=>t.webSaleItemId===e.webSaleItemId&&t.eventId===e.eventId)||e);L(e,a)}),console.log("Items with capacity for ValidateTimes:",l),await ea(C.items.concat(l)),console.log("Basket times validated")}catch(e){console.error("Error reserving event capacity:",e)}if("Merchandise"===e)try{let e=await es(C.items,"Event");if(e.data?.upsells&&e.data.upsells.length>0)return void A("upsells-events")}catch(e){console.error("Error checking event upsells:",e)}_.default.capture("upsells_continue_clicked",{upsell_type:e,added_count:V,total_value:U}),A("basket")}catch(e){console.error("Error in handleContinue:",e)}finally{S(!1)}}(0,n.useEffect)(()=>{a(!0),E(`upsells-${e.toLowerCase()}`),F()},[e]);let V=Object.values(m).reduce((e,t)=>e+t,0)+Object.values(v).reduce((e,t)=>e+tn(t),0),G=Object.entries(m).reduce((e,[t,a])=>{let r=s.find(e=>e.id===t);return r&&0!==a?e+(r.price||0)*a:e},0)+Object.entries(v).reduce((e,[t,a])=>e+ti(a,x[t]||[]),0),U=C.items.reduce((e,t)=>e+(t.price||0)*t.quantity,0)+G;if(!t)return null;if(d)return(0,r.jsx)(eD,{children:(0,r.jsxs)("div",{className:"surface rounded-2xl p-8 text-center",children:[(0,r.jsx)("p",{className:"text-feedback-error mb-4",children:d}),(0,r.jsx)(e_,{onClick:function(){_.default.capture("upsells_skipped",{upsell_type:e}),"Merchandise"===e?A("upsells-events"):A("basket")},children:"Continue to Basket"})]})});if(0===s.length&&!l)return"Merchandise"===e?A("upsells-events"):A("basket"),null;let H=s.find(e=>e.id===j);return(0,r.jsxs)("div",{className:"min-h-screen py-12 pb-32",children:[l&&(0,r.jsx)(eC,{className:"fixed top-0 left-0 right-0 z-50 h-1.5"}),(0,r.jsxs)(eD,{children:[(0,r.jsxs)("div",{className:"text-center mb-12",children:[(0,r.jsx)("h1",{className:"text-4xl md:text-5xl font-bold text-breakerWhite mb-4",children:"Event"===e?"Add an Experience":T.upsellsTitle??"Enhance Your Visit"}),(0,r.jsx)("p",{className:"text-lg md:text-xl text-breakerWhite/80",children:"Event"===e?"Make your visit extra special with a guided tour or experience":T.upsellsSubtitle??"Add these optional extras to make your experience even better"})]}),l&&0===s.length?(0,r.jsx)("div",{className:"flex flex-wrap justify-center gap-6 mb-8",children:[,,,].fill(null).map((e,t)=>(0,r.jsxs)("div",{className:"kj-card surface flex flex-col min-h-[350px] w-full md:w-80 animate-pulse !p-0 overflow-hidden",children:[(0,r.jsx)("div",{className:"w-full h-48 bg-surface-alt/20"}),(0,r.jsxs)("div",{className:"p-6 flex flex-col flex-1",children:[(0,r.jsx)("div",{className:"h-6 bg-text-muted/15 rounded w-3/4 mb-3"}),(0,r.jsx)("div",{className:"h-4 bg-text-muted/10 rounded w-5/6 mb-4"}),(0,r.jsx)("div",{className:"h-4 bg-text-muted/10 rounded w-1/2 mb-6"}),(0,r.jsx)("div",{className:"h-10 bg-brand/10 rounded-xl w-2/3 mt-auto mx-auto"})]})]},t))}):(0,r.jsx)("div",{className:"flex flex-wrap justify-center gap-6 mb-8",children:s.map(t=>{let a=m[t.id]||0,n="EventTemplate"===t.pageType,i=v[t.id]||[],l=n?i.length>0:a>0,o=tn(i),d=ti(i,x[t.id]||[]);return(0,r.jsxs)(eM,{hover:!0,className:`flex flex-col transition-all duration-200 overflow-hidden !p-0 w-full md:w-80 ${l?"ring-2 ring-brand ring-offset-2":""}`,children:[t.imageUrl&&(0,r.jsx)("div",{className:"w-full h-48 bg-surface-alt/40 overflow-hidden",children:(0,r.jsx)("img",{src:t.imageUrl,alt:t.name,className:"w-full h-full object-cover",onError:e=>{e.currentTarget.style.display="none"}})}),(0,r.jsxs)("div",{className:"p-6 flex flex-col flex-1",children:[(0,r.jsxs)(eA,{children:[(0,r.jsx)(eB,{children:t.name}),t.description&&(0,r.jsx)(e$,{children:t.description})]}),(0,r.jsxs)(eL,{className:"flex-1",children:[!n&&(0,r.jsxs)("div",{className:"text-3xl font-bold text-fairweatherBlue mb-4",children:["£",t.price.toFixed(2)]}),n&&x[t.id]&&x[t.id].length>0&&(0,r.jsxs)("div",{className:"text-3xl font-bold text-fairweatherBlue mb-4",children:["From £",Math.min(...x[t.id].map(e=>e.price)).toFixed(2)]}),t.mandatory&&(0,r.jsxs)("div",{className:"inline-flex items-center px-3 py-1 rounded-full bg-feedback-error/15 text-feedback-error text-sm font-medium mb-2",children:[(0,r.jsx)("svg",{className:"w-4 h-4 mr-1",fill:"currentColor",viewBox:"0 0 20 20",children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",clipRule:"evenodd"})}),"Required"]}),n&&i.length>0&&(0,r.jsxs)("div",{className:"mt-4 p-4 rounded-lg bg-brand-light border-2 border-brand",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,r.jsx)("svg",{className:"w-5 h-5 text-brand",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})}),(0,r.jsxs)("span",{className:"font-semibold text-text-heading",children:[o," ticket",1!==o?"s":""," · ",i.length," session",1!==i.length?"s":""]})]}),(0,r.jsxs)("div",{className:"text-sm text-text-muted",children:["£",d.toFixed(2)]})]})]}),(0,r.jsxs)(eO,{children:[!n&&(0,r.jsxs)("div",{className:"w-full flex items-center justify-center space-x-4",children:[(0,r.jsx)("button",{onClick:()=>z(t.id,-1),className:"w-12 h-12 rounded-full surface-hover flex items-center justify-center font-bold text-xl border-2 border-brand-light hover:bg-brand-light transition-colors disabled:opacity-40",disabled:0===a,children:"−"}),(0,r.jsx)("span",{className:`text-3xl font-bold w-16 text-center ${l?"text-brand":"text-text-muted"}`,children:a}),(0,r.jsx)("button",{onClick:()=>z(t.id,1),className:"w-12 h-12 rounded-full surface-hover flex items-center justify-center font-bold text-xl border-2 border-brand-light hover:bg-brand-light transition-colors disabled:opacity-40",disabled:a>=(t.maxPurchaseQty||99),children:"+"})]}),n&&(0,r.jsx)("div",{className:"w-full",children:0===i.length?(0,r.jsx)(e_,{variant:"solid",className:"w-full",onClick:()=>
5q(t.id),children:"Add to Booking"}):(0,r.jsxs)("div",{className:"w-full flex gap-2",children:[(0,r.jsx)(e_,{variant:"secondary",className:"flex-1",onClick:()=>q(t.id),children:"Edit"}),(0,r.jsx)(e_,{variant:"secondary",className:"flex-1",onClick:()=>{var a;let r;return a=t.id,void((r=s.find(e=>e.id===a))&&$(r,e),y(e=>{let t={...e};return delete t[a],t}))},children:"Remove"})]})})]})]})]},t.id)})})]}),(0,r.jsx)(eR,{info:(0,r.jsxs)("p",{className:"text-sm font-medium opacity-80",children:[(0,r.jsx)("span",{className:"font-semibold",children:"Visit date:"})," ",D?new Date(D).toLocaleDateString("en-GB",{weekday:"long",day:"numeric",month:"long",year:"numeric"}):"Not selected"]}),onPrimaryClick:W,primaryDisabled:I,primaryLabel:(0,r.jsxs)(r.Fragment,{children:[I?"Adding...":V>0?`Add ${V} item${1!==V?"s":""} (\xa3${U.toFixed(2)})`:"Continue",(0,r.jsx)("svg",{className:"w-5 h-5 ml-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})]})}),H&&(0,r.jsx)(tr,{isOpen:!!j,onClose:()=>w(null),name:H.name,description:H.description,products:x[H.id]||[],times:f[H.id]||[],loading:N,config:T,initialSessions:v[H.id]||[],minTotalItems:b[H.id]?.minTotalItems??0,maxTotalItems:b[H.id]?.maxTotalItems??0,onConfirm:t=>{var a;let r,n;return a=H.id,r=s.find(e=>e.id===a),n=!v[a]?.length,void(y(e=>({...e,[a]:t})),r&&n&&B(r,e))}})]})}let to=(0,n.forwardRef)(({label:e,error:t,helperText:a,className:s,...n},l)=>(0,r.jsxs)("div",{className:"w-full",children:[e&&(0,r.jsxs)("label",{className:"block text-sm font-medium mb-2 text-mainMastBrown",children:[e,n.required&&(0,r.jsx)("span",{className:"ml-1 text-errorRed",children:"*"})]}),(0,r.jsx)("input",{ref:l,className:(0,i.default)("kj-form-input",t&&"border-errorRed focus:ring-errorRed/50",s),...n}),t&&(0,r.jsx)("p",{className:"mt-1 text-sm text-errorRed",children:t}),a&&!t&&(0,r.jsx)("p",{className:"mt-1 text-sm text-mediumBrown",children:a})]}));to.displayName="Input";function td(){let e,{basket:t,customer:a,setCustomer:s,memberships:i,setMemberships:l,giftVoucherDetails:o,setGiftVoucherDetails:d,questionAnswers:c,setQuestionAnswers:m,setQuestionPayload:u,removeFromBasket:x,updateBasketItem:h,removeBasketLine:f,setCurrentStep:p,setOrderId:b,completeOrder:g,config:v,clearBasket:y,pageTitle:j,setDiscounts:N,setBasketSummary:k,webPageType:I,isFocusMode:S,setFocusMode:C,setGiftAid:D}
5=P(),[M,A]=(0,n.useState)(!1),[B,$]=(0,n.useState)(null),[q,z]=(0,n.useState)(!0),[W,V]=(0,n.useState)(null),[G,U]=(0,n.useState)(!1),[H,J]=(0,n.useState)([]),[Q,Y]=(0,n.useState)([]),[Z,es]=(0,n.useState)({}),[er,en]=(0,n.useState)({}),[ed,ec]=(0,n.useState)(null),[eg,ev]=(0,n.useState)([]),[ey,ej]=(0,n.useState)({}),eI=(0,n.useRef)(null),[eS,eT]=(0,n.useState)(null),[eP,eE]=(0,n.useState)([]),[eA,eB]=(0,n.useState)({firstName:"",lastName:"",email:"",houseNameNumber:"",addressFirstLine:"",addressSecondLine:"",cityTown:"",postCode:"",selectedCountry:"GB",contactable:!1,contactableByEmail:!1,contactableByPost:!1,contactableByPhone:!1,contactableBySMS:!1,contactableBySocialMedia:!1,contactableByThirdParty:!1,isGuest:!0,...a}),[e$,eO]=(0,n.useState)(!1),[eF,eq]=(0,n.useState)({}),[ez,eH]=(0,n.useState)(null),eJ=(0,n.useMemo)(()=>"GB"===eA.selectedCountry&&t.items.some(e=>e.giftAidEligible),[eA.selectedCountry,t.items]);(0,n.useEffect)(()=>{!eJ&&t.giftAidSelected&&(eH(null),D(!1))},[eJ,t.giftAidSelected,D]);let[eX,e0]=(0,n.useState)(!1),[e2,e4]=(0,n.useState)(""),[e3,e5]=(0,n.useState)(t.discounts||[]),[e6,e8]=(0,n.use
5State)(null),[e9,e7]=(0,n.useState)(!1),te=(0,n.useRef)(null),tt=(0,n.useRef)(null),ta=(0,n.useRef)(!1),ts=(0,n.useRef)(!1),[tr,tn]=(0,n.useState)(!1),[ti,tl]=(0,n.useState)(!1),td=t.items.filter(e=>!e.parentWebSaleItemId),tc=t.items.filter(e=>e.parentWebSaleItemId),[tm,tu]=(0,n.useState)(null),tx=(0,n.useCallback)(()=>{if(!t.reservationExpiryDateTime)return null;let e=new Date().getTime(),a=T(t.reservationExpiryDateTime);if(!a)return null;let s=a-e;return s<=0?{minutes:0,seconds:0}:{minutes:Math.floor(s/6e4),seconds:Math.floor(s%6e4/1e3)}},[t.reservationExpiryDateTime]);async function th(e=e3){if(0===t.items.length)return void z(!1);if(!ts.current){ts.current=!0;try{z(!0);let[r,n,l]=await Promise.all([et(t.items,t.giftAidSelected,e),eh(),ef()]);if(r.data){var a,s;$(r.data),a=t.items,s=r.data.finalPrice,eW({event:"view_cart",ecommerce:{currency:"GBP",value:s,items:a.map(e=>eG(e,eU(e,j)))}})}if(n.data&&eT(n.data),l.data&&eE(l.data),t.items.filter(e=>4===e.webSaleItemTypeID).length>0)try{let e=await eu(t.items);if(e.data){J(e.data);let t={};e.data.forEach((e,a)=>{let s=i[a],r=s&&s.basketItemId===e.basketItemId&&s.memberDetails?.length===e.memberDetails.length;t[a]={},e.memberDetails.forEach((e,n)=>{let i=r?s.memberDetails[n]:null;t[a][n]={firstName:i?.firstName||"",lastName:i?.lastName||"",email:i?.email||"",telephone:i?.telephone||"",mobile:i?.mobile||"",dob:i?.dob||""}})}),es(t)}}catch(e){console.error("Error loading membership details:",e)}let d=t.items.filter(e=>e.eventId);if(d.length>0)try{let e={};d.forEach(t=>{e[t.eventId]||(e[t.eventId]=[]),e[t.eventId].push(t)});let t=await Promise.all(Object.entries(e).map(async([e,t])=>{let a={},s=[];t.forEach(t=>{a[t.webSaleItemId]=(a[t.webSaleItemId]||0)+t.quantity;for(let a=0;a<t.quantity;a++)s.push(e)});let r=await em(a,s);return{eventId:e,items:t,res:r}})),a=[];t.forEach(({eventId:e,items:t,res:s})=>{s?.data&&(Array.isArray(s.data.eventQuestions)&&s.data.eventQuestions.forEach(t=>{let s=`${t.questionId}-event-${e}-${t.index||1}`;a.push({...t,uniqueKey:s,eventId:e})}),s.data.eventProductQuestions&&Object.values(s.data.eventProductQuestions).flat().forEach(s=>{let r=t.find(e=>e.name===s.productName||e.webSaleItemId===s.productId||e.webSaleItemId===s.webSaleItemId)||t[0],n=r?.webSaleItemId||s.productId,i=s.productName||r?.name||"Product",l=s.index||1,o=`${s.questionId}-${e}-${n}-${l}`;a.push({...s,productId:n,productName:i,eventId:e,index:l,uniqueKey:o})}))});let s=new Set,r=a.filter(e=>!s.has(e.uniqueKey)&&(s.add(e.uniqueKey),!0));Y(r);let n={};r.forEach(e=>{n[e.uniqueKey]=c?.[e.uniqueKey]||""}),en(n)}catch(e){console.error("Error loading event questions:",e)}if(t.items.filter(e=>3===e.webSaleItemTypeID).length>0)try{let e=await ex(t.items,v.locationId);if(e.data){ev(e.data);let t={};e.data.forEach((e,a)=>{let s=o[a],r=s&&s.basketItemId===e.basketItemId&&s.customerDetails?.length===e.customerDetails.length;t[a]={},e.customerDetails.forEach((e,n)=>{let i=r?s.customerDetails[n]:null;t[a][n]={firstName:i?.firstName||e.firstName||"",lastName:i?.lastName||e.lastName||"",recipientMessage:i?.recipientMessage||e.recipientMessage||"",termsAgreed:!1}})}),ej(t)}}catch(e){console.error("Error loading gift voucher details:",e)}else ev([]),ej({})}catch(e){console.error("Error loading basket:",e),V("Failed to load basket details.")}finally{z(!1),ts.current=!1}}}function tf(e,t){eB(a=>({...a,[e]:t})),eF[e]&&eq(t=>{let a={...t};return delete a[e],a})}function tp(e){eH(e),D(e),eF.giftAid&&eq(e=>{let t={...e};return delete t.giftAid,t}),eV({event:"gift_aid_selected",gift_aid_opted_in:e}),_.default.capture("gift_aid_responded",{opted_in:e})}async function tb(){if(!e2.trim())return;let e=e2.trim().toUpperCase();if(e3.includes(e))return void e8("This code is already applied");e7(!0),e8(null);try{let r=[...e3,e],n=await et(t.items,t.giftAidSelected,r);if(n.data){var a,s;let t=n.data.discounts?.find(t=>t.code===e);t&&t.discountedAmount>0?(e5(r),N(r),$(n.data),e4(""),e8(null),a=t.discountedAmount,eV({event:"apply_coupon",coupon:e,discount_value:a}),s=t.discountedAmount,_.default.capture("discount_applied",{code:e,discount_amount:s})):(e8("Invalid or expired discount code"),_.default.capture("discount_failed",{code:e,reason:"invalid_or_expired"}))}}catch(e){console.error("Error applying discount:",e),e8("Failed to apply discount code")}finally{e7(!1)}}async function tg(e){let t=e3.filter(t=>t!==e);e5(t),N(t),eV({event:"remove_coupon",coupon:e}),_.default.capture("discount_removed",{code:e});try{await ee(e)}catch(e){console.error("Error releasing discount code reservation:",e)}th(t)}function tv(e,a){let s=t.items.find(t=>t.webSaleItemId===e&&t.eventId===a),r=s&&!s.parentWebSaleItemId;if(s&&eQ([s],j),r&&0===td.filter(t=>t.webSaleItemId!==e||t.eventId!==a).length){ei(),el(),y(),p("EventOverview"===I?"date-selector":"products");return}a?(eo(e,a),f(e,a)):x(e)}function ty(e,t,a,s){es(r=>({...r,[e]:{...r[e],[t]:{...r[e]?.[t],[a]:s}}}))}function tj(e,t,a,s){ej(r=>({...r,[e]:{...r[e],[t]:{...r[e]?.[t],[a]:s}}}))}(0,n.useEffect)(()=>
5{if(!t.reservationExpiryDateTime)return void tu(null);tu(tx());let e=setInterval(()=>{let t=tx();tu(t),t&&0===t.minutes&&0===t.seconds&&(clearInterval(e),eK(),F(),ei(),el(),y(),tl(!0))},1e3);return()=>clearInterval(e)},[t.reservationExpiryDateTime,tx,y,p]),(0,n.useEffect)(()=>{A(!0),E("basket")},[]),(0,n.useEffect)(()=>{th()},[t.items.length]),(0,n.useEffect)(()=>{M&&!q&&0===t.items.length&&p("EventOverview"===I?"date-selector":"products")},[M,q,t.items.length,I,p]);let tw=["firstName","lastName","email","houseNameNumber","addressFirstLine","addressSecondLine","cityTown","postCode","giftAid","terms"];async function tN(){if(!ta.current&&!G&&(V(null),function(){let e={};if(eA.firstName?.trim()||(e.firstName="First name is required"),eA.lastName?.trim()||(e.lastName="Last name is required"),eA.email?.trim()?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(eA.email)||(e.email="Please enter a valid email address"):e.email="Email is required",t.giftAidSelected&&!eA.houseNameNumber?.trim()&&(e.houseNameNumber="House name/number is required for Gift Aid"),eA.addressFirstLine?.trim()||(e.addressFirstLine="Address is required"),eA.cityTown?.trim()||(e.cityTown="City/Town is required"),eA.postCode?.trim()||(e.postCode="Postcode is required"),eJ&&null===ez&&(e.giftAid="Please let us know whether to claim Gift Aid on this transaction"),e$||(e.terms="You must accept the terms and conditions"),eq(e),Object.keys(e).length>0){var a;let t;return a=Object.keys(e),_.default.capture("billing_form_error",{fields:a,field_count:a.length}),V("Please complete all required billing details"),(t=tw.find(t=>e[t]))&&setTimeout(()=>{document.getElementById(`field-${t}`)?.scrollIntoView({behavior:"smooth",block:"center"})},50),!1}let s=(e,t,a)=>{setTimeout(()=>{document.getElementById(`member-${e}-${t}-${a}`)?.scrollIntoView({behavior:"smooth",block:"center"})},50)};for(let e=0;e<H.length;e++){let t=H[e],a=H.filter(e=>e.description===t.description).length,r=a>1?`${t.description} (ticket ${H.slice(0,e).filter(e=>e.description===t.description).length+1} of ${a})`:t.description;for(let a=0;a<t.memberDetails.length;a++){let n=Z[e]?.[a],i=t.memberDetails.length>1?`, person ${a+1}`:"";if(!n?.firstName?.trim())return L("firstName",r),V(`Please enter first name for ${r}${i}`),s(e,a,"firstName"),!1;if(!n?.lastName?.trim())return L("lastName",r),V(`Please enter last name for ${r}${i}`),s(e,a,"lastName"),!1;if(t.emailRequired&&!n?.email?.trim())return L("email",r),V(`Please enter email for ${r}${i}`),s(e,a,"email"),!1;if(t.telephoneRequired&&!n?.telephone?.trim())return L("telephone",r),V(`Please enter telephone for ${r}${i}`),s(e,a,"telephone"),!1;if(t.mobilePhoneRequired&&!n?.mobile?.trim())return L("mobile",r),V(`Please enter mobile for ${r}${i}`),s(e,a,"mobile"),!1;if(t.requireDOB&&!n?.dob?.trim())return L("dob",r),V(`Please enter date of birth for ${r}${i}`),s(e,a,"dob"),!1}}for(let e of Q){let t=e.uniqueKey||`${e.questionId}-${e.index}`;if(e.isRequired&&!er[t]?.trim()){let t=e.productName?`${e.productName} - `:"";return V(`Please answer: "${e.question}" (${t}Person ${e.index})`),setTimeout(()=>tt.current?.scrollIntoView({behavior:"smooth",block:"center"}),50),!1}}let r=(e,t,a)=>{setTimeout(()=>{document.getElementById(`gv-${e}-${t}-${a}`)?.scrollIntoView({behavior:"smooth",block:"center"})},50)},n=e=>{setTimeout(()=>{document.getElementById(`field-gv-terms-${e}`)?.scrollIntoView({behavior:"smooth",block:"center"})},50)};for(let e=0;e<eg.length;e++){let t=eg[e],a=eg.filter(e=>e.description===t.description).length,s=a>1?`${t.description} (voucher ${eg.slice(0,e).filter(e=>e.description===t.description).length+1} of ${a})`:t.description;for(let a=0;a<t.customerDetails.length;a++){let n=ey[e]?.[a],i=t.customerDetails.length>1?`, recipient ${a+1}`:"";if(!n?.firstName?.trim())return V(`Please enter first name for ${s}${i}`),r(e,a,"firstName"),!1;if(!n?.lastName?.trim())return V(`Please enter last name for ${s}${i}`),r(e,a,"lastName"),!1}if(t.requiresTerms&&!ey[e]?.termsAgreed)return V(`You must agree to the Terms and Conditions for ${s}`),n(e),!1}return!0}())){ta.current=!0,U(!0);try{var e,r,n,i,o,c;let x=Q.filter(e=>er[e.uniqueKey||`${e.questionId}-${e.index}`]?.trim()).map(e=>({id:e.id||e.questionId,question:e.question,value:er[e.uniqueKey||`${e.questionId}-${e.index}`],eventId:e.eventId,configurationId:e.configurationId,index:e.index,productId:e.productId})),h=await et(t.items,t.giftAidSelected,e3);if(h.isError){O("load_basket",h.information||"unknown"),V(h.information||"Failed to validate basket."),U(!1);return}h.data&&k(h.data),await ea(t.items);let f=await ep(eA.email||"");if(f.isError){O("validate_customer",f.information||"unknown"),V(f.information||"Please check your email address."),U(!1);return}let y=await eb(eA);if(y.isError){O("register_guest",y.information||"unknown"),V(y.information||"Failed to register. Please try again."),U(!1);return}let N=y.data||"";s({...eA,webCustomerId:N}),e=eA.email,r=eA.firstName,n=eA.lastName,_.default.identify(N,{email:e,first_name:r,last_name:n});let I=h.data?.orderId||B?.orderId||"",S=await et(t.items,t.giftAidSelected,e3,N,I);S.data&&k(S.data);let C=await ek({Items:X(t.items),Discounts:e3,GiftAidSelected:t.giftAidSelected,PageId:v.webPageId,customerId:N,orderId:I});if(C.isError){O("get_final_price",C.information||"unknown"),V(C.information||"Failed to calculate final price."),U(!1);return}
5let T=C.data?.finalPrice??B?.finalPrice??0,P=C.data?.orderId,E=P&&"00000000-0000-0000-0000-000000000000"!==P?P:I;if(i=t.items,o=e3.length>0?e3.join(","):void 0,eW({event:"begin_checkout",ecommerce:{currency:"GBP",value:T,...o&&{coupon:o},items:i.map(e=>eG(e,eU(e,j)))}}),c=e3.length>0,_.default.capture("continue_to_payment_clicked",{final_price:T,has_discounts:c}),0===T){let e=`${(v.venposApiUrl||w).replace("/VenposJourneyAPI","/VenPosJourneyUI")}/Confirmation?WebTransHeaderId=${E}&locationId=${v.locationId}&mainWebPageId=${v.webPageId}&startId=${v.webPageId}`,s=eg.map((e,t)=>{let a=ey[t]?.termsAgreed||!1;return{...e,customerDetails:e.customerDetails.map((e,s)=>{let r=ey[t]?.[s]||{};return{...e,firstName:r.firstName||"",lastName:r.lastName||"",recipientMessage:r.recipientMessage||"",message:r.recipientMessage||"",termsAgreed:a,useBillingAddress:!0}})}}),r={items:K(t.items),discounts:e3,giftAidSelected:t.giftAidSelected,pageId:v.webPageId,memberships:H.map((e,t)=>({...e,memberDetails:e.memberDetails.map((e,a)=>({...e,firstName:Z[t]?.[a]?.firstName||eA.firstName||"",lastName:Z[t]?.[a]?.lastName||eA.lastName||"",email:Z[t]?.[a]?.email||eA.email||"",mobile:Z[t]?.[a]?.mobile||"",telephone:Z[t]?.[a]?.telephone||"",dob:Z[t]?.[a]?.dob||null,contactable:eA.contactable||!1,useBillingAddress:!0,useShippingAddress:!0}))})),giftVoucherDetails:s,customerId:N,questions:x,webTransHeaderId:E,cateringMode:"NotSetup",cateringFacilityId:null,waiverShown:!0,ddOnCompletionredirectUrl:e,cateringCustomTextResponse1:"",cateringCustomTextResponse2:"",orderId:E,newAccountCreated:!1},n=await ew(r);if(n.isError){V(n.information||"Failed to create order."),U(!1);return}let i=n.data?.orderId||n.data?.webTransHeaderId,l=await eN(i);if(l.isError){V(l.information||"Failed to get order confirmation."),U(!1);return}let o=l.data;eY(o.transRef||i,o.transactionSummaryModel?.transactionNetValue||o.netValue||0,t.items,j,void 0,a?.email),g(i,l.data)}else{let e=H.map((e,t)=>({...e,memberDetails:e.memberDetails.map((e,a)=>({...e,firstName:Z[t]?.[a]?.firstName||eA.firstName||"",lastName:Z[t]?.[a]?.lastName||eA.lastName||"",email:Z[t]?.[a]?.email||eA.email||"",mobile:Z[t]?.[a]?.mobile||"",telephone:Z[t]?.[a]?.telephone||"",dob:Z[t]?.[a]?.dob||null,contactable:eA.contactable||!1,useBillingAddress:!0,useShippingAddress:!0}))}));l(e),m(er),u(x);let a=eg.map((e,t)=>{let a=ey[t]?.termsAgreed||!1;return{...e,customerDetails:e.customerDetails.map((e,s)=>{let r=ey[t]?.[s]||{};return{...e,firstName:r.firstName||"",lastName:r.lastName||"",recipientMessage:r.recipientMessage||"",message:r.recipientMessage||"",termsAgreed:a,useBillingAddress:!0}})}});d(a),b(E||""),function({value:e,items:t,customer:a}){if(!(0,eZ.hasConsent)("advertisement"))return;let s=`initiate_checkout_${Date.now()}`,r=t.reduce((e,t)=>e+t.quantity,0),n=t.map(e=>String(e.webSaleItemId)),i=t.map(e=>({id:String(e.webSaleItemId),quantity:e.quantity,item_price:e.price}));window.fbq&&window.fbq("track","InitiateCheckout",{value:e,currency:"GBP",content_ids:n,contents:i,num_items:r},{eventID:s}),e1({eventName:"InitiateCheckout",eventId:s,userData:{email:a.email,firstName:a.firstName,lastName:a.lastName,city:a.city,postcode:a.postcode,country:a.country},customData:{value:e,currency:"GBP",content_ids:n,contents:i,num_items:r}})}({value:T,items:t.items,customer:{email:eA.email,firstName:eA.firstName,lastName:eA.lastName,city:eA.cityTown,postcode:eA.postCode,country:eA.selectedCountry}}),p("checkout")}}catch(e){console.error("Error processing:",e),V("An error occurred. Please try again.")}finally{U(!1),ta.current=!1}}}function tk(){if(tc.length>0){tn(!0),R(!0,!1);return}R(!1,!0),p("EventOverview"===I?"date-selector":"products")}if(!M)return null;if(q&&!B)return(0,r.jsxs)("div",{className:"min-h-screen pb-24 lg:pb-12",children:[(0,r.jsx)(eC,{className:"fixed top-0 left-0 right-0 z-50 h-1.5"}),(0,r.jsxs)(eD,{children:[(0,r.jsxs)("div",{className:"py-8",children:[(0,r.jsx)("div",{className:"h-10 bg-text-muted/15 rounded w-1/3 mb-2 animate-pulse"}),(0,r.jsx)("div",{className:"h-5 bg-text-muted/10 rounded w-1/4 animate-pulse"})]}),(0,r.jsxs)("div",{className:"grid lg:grid-cols-3 gap-8",children:[(0,r.jsxs)("div",{className:"lg:col-span-2 space-y-6",children:[(0,r.jsx)("div",{className:"kj-card surface h-48 animate-pulse"}),(0,r.jsx)("div",{className:"kj-card surface h-96 animate-pulse"})]}),(0,r.jsx)("div",{className:"space-y-6",children:(0,r.jsx)("div",{className:"kj-card surface h-80 animate-pulse"})})]})]})]});if(!B||0===t.items.length)return(0,r.jsx)("div",{className:"min-h-screen py-12",children:(0,r.jsx)(eD,{children:(0,r.jsxs)("div",{className:"surface rounded-2xl p-12 text-center",children:[(0,r.jsx)("div",{className:"mb-6",children:(0,r.jsx)("svg",{className:"w-24 h-24 mx-auto text-text-muted/60",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M16 11V7a4 4 0 00-8 0v4M5 9h14l1 12H4L5 9z"})})}),(0,r.jsx)("h1",{className:"text-4xl md:text-5xl font-bold text-mainMastBrown mb-4",children:"Your Basket is Empty"}),(0,r.jsx)("p",{className:"text-lg md:text-xl text-mediumBrown mb-8",children:"Add some tickets or products to get started"}),(0,r.jsx)(e_,{variant:"solid",size:"lg",onClick:tk,children:"Start Shopping"})]})})});let tI=t.items.reduce((e,t)=>
5e+t.quantity,0);return(0,r.jsxs)("div",{className:"pb-24 lg:pb-12",children:[(q||G||e9)&&(0,r.jsx)(eC,{className:"fixed top-0 left-0 right-0 z-50 h-1.5"}),(0,r.jsxs)(eD,{className:q||G?"opacity-65 pointer-events-none transition-all duration-300":"transition-all duration-300",children:[(0,r.jsxs)("div",{className:"py-3 sm:py-8",children:[(0,r.jsx)("h1",{className:"text-3xl sm:text-4xl md:text-5xl font-bold text-breakerWhite mb-2",children:"Complete Your Booking"}),(0,r.jsx)("p",{className:"text-base sm:text-lg md:text-xl text-breakerWhite/80",children:"Fill in the required details to continue"})]}),tm&&(0,r.jsxs)("div",{className:`mb-6 p-4 rounded-lg flex items-center justify-center gap-3 ${tm.minutes<2?"bg-feedback-error/10 border border-feedback-error/30":"bg-feedback-warning/10 border border-feedback-warning/30"}`,children:[(0,r.jsx)("svg",{className:`w-5 h-5 ${tm.minutes<2?"text-feedback-error":"text-feedback-warning"}`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})}),(0,r.jsxs)("span",{className:`font-medium ${tm.minutes<2?"text-feedback-error":"text-feedback-warning"}`,children:["Your event reservation expires in"," ",(0,r.jsxs)("span",{className:"font-bold tabular-nums",children:[tm.minutes,":",tm.seconds.toString().padStart(2,"0")]})]})]}),(0,r.jsxs)("div",{className:"grid lg:grid-cols-3 gap-8",children:[(0,r.jsxs)("div",{className:"lg:col-span-2 space-y-6 min-w-0",children:[(0,r.jsx)(eM,{children:(0,r.jsxs)(eL,{className:"p-0",children:[(0,r.jsxs)("h2",{className:"text-xl font-bold text-mainMastBrown mb-4 flex items-center",children:[(0,r.jsx)("svg",{className:"w-5 h-5 mr-2 text-brand",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"})}),"Your Visit"]}),(0,r.jsxs)("div",{className:"space-y-3",children:[B.groups[0]?.selectedDate&&(0,r.jsxs)("div",{className:"flex items-center text-text-body",children:[(0,r.jsx)("span",{className:"font-medium mr-2",children:"Visit Date:"}),(0,r.jsx)("span",{className:"text-brand-dark font-semibold",children:new Date(B.groups[0].selectedDate).toLocaleDateString("en-GB",{weekday:"long",day:"numeric",month:"long",year:"numeric"})})]}),0===(e=B.groups.filter(e=>e.selectedDate&&e.items?.some(e=>e.eventId)).sort((e,t)=>new Date(e.selectedDate)-new Date(t.selectedDate))).length?null:(0,r.jsxs)("div",{className:"pt-3 border-t border-brand/20",children:[(0,r.jsx)("p",{className:"text-sm font-medium text-text-muted mb-2",children:"Selected Timeslots & Tickets:"}),(0,r.jsx)("div",{className:"space-y-2",children:e.map((e,t)=>(0,r.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-start justify-between text-text-body bg-surface/50 border border-brand/15 rounded-lg px-4 py-2.5 gap-2 min-w-0",children:[(0,r.jsxs)("div",{className:"flex items-center text-brand font-semibold text-base flex-shrink-0",children:[(0,r.jsx)("svg",{className:"w-4 h-4 mr-2 text-brand",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})}),new Date(e.selectedDate).toLocaleTimeString("en-GB",{hour:"2-digit",minute:"2-digit"}),(0,r.jsxs)("span",{className:"text-xs font-normal text-text-muted ml-2",children:["(",new Date(e.selectedDate).toLocaleDateString("en-GB",{day:"numeric",month:"short"}),")"]})]}),(0,r.jsxs)("div",{className:"text-sm text-text-body sm:text-right",children:[e.name&&(0,r.jsx)("p",{className:"font-semibold text-text-heading",children:e.name}),(0,r.jsx)("p",{className:"font-medium text-text-muted",children:e.items.map(e=>`${e.quantity} \xd7 ${e.name}`).join(", ")})]})]},t))})]})]})]})}),(0,r.jsx)(eM,{children:(0,r.jsxs)(eL,{className:"p-0",children:[(0,r.jsxs)("h2",{className:"text-xl font-bold text-mainMastBrown mb-4 flex items-center",children:[(0,r.jsx)("svg",{className:"w-5 h-5 mr-2 text-brand",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3 10h18M7 15h1m4 0h1m-7 4h12a3 3 0 003-3V8a3 3 0 00-3-3H6a3 3 0 00-3 3v8a3 3 0 003 3z"})}),"Billing Details"]}
5),(0,r.jsxs)("div",{className:"mb-6",children:[(0,r.jsx)("h3",{className:"font-semibold text-text-heading mb-4",children:"Personal Details"}),(0,r.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("label",{className:"block text-sm font-medium mb-2 text-mainMastBrown",children:["First Name ",(0,r.jsx)("span",{className:"ml-1 text-errorRed",children:"*"})]}),(0,r.jsx)("input",{id:"field-firstName",type:"text",autoComplete:"given-name",value:eA.firstName||"",onChange:e=>tf("firstName",e.target.value),className:`kj-form-input ${eF.firstName?"border-errorRed focus:ring-errorRed/50":""}`,placeholder:"John"}),eF.firstName&&(0,r.jsx)("p",{className:"mt-1 text-sm text-errorRed",children:eF.firstName})]}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("label",{className:"block text-sm font-medium mb-2 text-mainMastBrown",children:["Last Name ",(0,r.jsx)("span",{className:"ml-1 text-errorRed",children:"*"})]}),(0,r.jsx)("input",{id:"field-lastName",type:"text",autoComplete:"family-name",value:eA.lastName||"",onChange:e=>tf("lastName",e.target.value),className:`kj-form-input ${eF.lastName?"border-errorRed focus:ring-errorRed/50":""}`,placeholder:"Smith"}),eF.lastName&&(0,r.jsx)("p",{className:"mt-1 text-sm text-errorRed",children:eF.lastName})]}),(0,r.jsxs)("div",{className:"md:col-span-2",children:[(0,r.jsxs)("label",{className:"block text-sm font-medium mb-2 text-mainMastBrown",children:["Email ",(0,r.jsx)("span",{className:"ml-1 text-errorRed",children:"*"})]}),(0,r.jsx)("input",{id:"field-email",type:"email",autoComplete:"email",value:eA.email||"",onChange:e=>tf("email",e.target.value),className:`kj-form-input ${eF.email?"border-errorRed focus:ring-errorRed/50":""}`,placeholder:"[email protected]"}),eF.email&&(0,r.jsx)("p",{className:"mt-1 text-sm text-errorRed",children:eF.email})]})]})]}),(0,r.jsxs)("div",{className:"mb-6",children:[(0,r.jsx)("h3",{className:"font-semibold text-text-heading mb-4",children:"Billing Address"}),(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("label",{className:"block text-sm font-medium mb-2 text-mainMastBrown",children:["House Name/Number ",t.giftAidSelected&&(0,r.jsx)("span",{className:"ml-1 text-errorRed",children:"*"})]}),(0,r.jsx)("input",{id:"field-houseNameNumber",type:"text",autoComplete:"address-line2",value:eA.houseNameNumber||"",onChange:e=>tf("houseNameNumber",e.target.value),className:`kj-form-input ${eF.houseNameNumber?"border-errorRed focus:ring-errorRed/50":""}`,placeholder:"Flat 1, 20"}),eF.houseNameNumber&&(0,r.jsx)("p",{className:"mt-1 text-sm text-errorRed",children:eF.houseNameNumber})]}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("label",{className:"block text-sm font-medium mb-2 text-mainMastBrown",children:["Address Line 1 ",(0,r.jsx)("span",{className:"ml-1 text-errorRed",children:"*"})]}),(0,r.jsx)("input",{id:"field-addressFirstLine",type:"text",autoComplete:"address-line1",value:eA.addressFirstLine||"",onChange:e=>tf("addressFirstLine",e.target.value),className:`kj-form-input ${eF.addressFirstLine?"border-errorRed focus:ring-errorRed/50":""}`,placeholder:"Main Street"}),eF.addressFirstLine&&(0,r.jsx)("p",{className:"mt-1 text-sm text-errorRed",children:eF.addressFirstLine})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"block text-sm font-medium mb-2 text-mainMastBrown",children:"Address Line 2"}),(0,r.jsx)("input",{type:"text",autoComplete:"address-line3",value:eA.addressSecondLine||"",onChange:e=>tf("addressSecondLine",e.target.value),className:"kj-form-input"})]}),(0,r.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("label",{className:"block text-sm font-medium mb-2 text-mainMastBrown",children:["City/Town ",(0,r.jsx)("span",{className:"ml-1 text-errorRed",children:"*"})]}),(0,r.jsx)("input",{type:"text",autoComplete:"address-level2",id:"field-cityTown",value:eA.cityTown||"",onChange:e=>tf("cityTown",e.target.value),className:`kj-form-input ${eF.cityTown?"border-errorRed focus:ring-errorRed/50":""}`,placeholder:"London"}),eF.cityTown&&(0,r.jsx)("p",{className:"mt-1 text-sm text-errorRed",children:eF.cityTown})]}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("label",{className:"block text-sm font-medium mb-2 text-mainMastBrown",children:["Postcode ",(0,r.jsx)("span",{className:"ml-1 text-errorRed",children:"*"})]}),(0,r.jsx)("input",{type:"text",autoComplete:"postal-code",id:"field-postCode",value:eA.postCode||"",onChange:e=>tf("postCode",e.target.value.toUpperCase()),className:`kj-form-input ${eF.postCode?"border-errorRed focus:ring-errorRed/50":""}`,placeholder:"BS1 1AA"}),eF.postCode&&(0,r.jsx)("p",{className:"mt-1 text-sm text-errorRed",children:eF.postCode})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("label",{className:"block text-sm font-medium mb-2 text-mainMastBrown",children:["Country ",(0,r.jsx)("span",{className:"ml-1 text-errorRed",children:"*"})]}),(0,r.jsx)("select",{autoComplete:"country",value:eA.selectedCountry||"GB",onChange:e=>tf("selectedCountry",e.target.value),className:"kj-form-input",children:eP.map(e=>(0,r.jsx)("option",{value:e.lookupCountryID,children:e.name},e.lookupCountryID))})]})]})]}),eJ&&(0,r.jsxs)("div",{id:"field-giftAid",className:`mb-6 bg-brand/5 border rounded-xl p-4 sm:p-5 ${eF.giftAid?"border-errorRed":"border-brand/20"}`,children:[(0,r.jsx)("h3",{className:"font-bold text-mainMastBrown mb-1",children:"Make your ticket go further for free"}),(0,r.jsx)("p",{className:"text-sm text-text-body leading-relaxed mb-4",children:"Automatically add 25% to the value of your ticket at no extra cost to you, courtesy of the government's Gift Aid scheme."}),(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsxs)("label",{className:"flex items-start gap-3 cursor-pointer",children:[(0,r.jsx)("input",{type:"radio",name:"giftAidChoice",checked:!0===ez,onChange:()=>tp(!0),className:"w-4 h-4 mt-0.5 cursor-pointer border-mediumBrown/40 text-fairweatherBlue focus:ring-2 focus:ring-fairweatherBlue flex-shrink-0"}),(0,r.jsx)("span",{className:"text-sm text-text-body leading-relaxed",children:"Yes, I am a UK taxpayer. I want SS Great Britain Trust to claim Gift Aid on this transaction. I understand that if I pay less Income/Capital Gains Tax than the amount of Gift Aid claimed in that tax year, it is my responsibility to pay any difference."})]}),(0,r.jsxs)("label",{className:"flex items-start gap-3 cursor-pointer",children:[(0,r.jsx)("input",{type:"radio",name:"giftAidChoice",checked:!1===ez,onChange:()=>tp(!1),className:"w-4 h-4 mt-0.5 cursor-pointer border-mediumBrown/40 text-fairweatherBlue focus:ring-2 focus:ring-fairweatherBlue flex-shrink-0"}),(0,r.jsx)("span",{className:"text-sm text-text-body leading-relaxed",children:"No, I am not a UK taxpayer or do not wish to claim Gift Aid."})]})]}),eF.giftAid&&(0,r.jsx)("p",{className:"mt-3 text-sm text-errorRed",children:eF.giftAid}),eF.houseNameNumber&&!0===ez&&(0,r.jsx)("p",{className:"mt-3 text-sm text-errorRed",children:"Please provide your house name/number above so we can claim Gift Aid."})]}),(0,r.jsx)("div",{className:"mb-4",children:(0,r.jsxs)("label",{className:"flex items-start gap-3 cursor-pointer",children:[(0,r.jsx)("input",{type:"checkbox",checked:eA.contactable||!1,onChange:e=>{var t;return t=e.target.checked,void eB(e=>({...e,contactable:t,contactableByEmail:t}))},className:"w-5 h-5 mt-0.5 rounded focus:ring-2 cursor-pointer border-mediumBrown/40 text-fairweatherBlue focus:ring-fairweatherBlue flex-shrink-0"}),(0,r.jsx)("span",{className:"text-text-body text-sm",dangerouslySetInnerHTML:{__html:eS?.dataProtectionOptInText||"Tick to receive marketing communications and special offers."}})]})}),(0,r.jsxs)("div",{id:"field-terms",children:[(0,r.jsxs)("label",{className:"flex items-start gap-3 cursor-pointer",children:[(0,r.jsx)("input",{type:"checkbox",checked:e$,onChange:e=>{eO(e.target.checked),eF.terms&&eq(e=>{let t={...e};return delete t.terms,t})},className:`w-5 h-5 mt-0.5 rounded focus:ring-2 cursor-pointer border-mediumBrown/40 text-fairweatherBlue focus:ring-fairweatherBlue flex-shrink-0 ${eF.terms?"border-errorRed focus:ring-errorRed/50":""}`}),(0,r.jsx)("span",{className:"text-text-body text-sm",dangerouslySetInnerHTML:{__html:eS?.membershipWaiverQuestionText||"I accept the terms and conditions."}})]}),eF.terms&&(0,r.jsx)("p",{className:"mt-2 text-sm text-errorRed",children:eF.terms})]})]})}),H.length>0&&(0,r.jsx)("div",{ref:te,children:(0,r.jsx)(eM,{children:(0,r.jsxs)(eL,{className:"p-0",children:[(0,r.jsxs)("h2",{className:"text-xl font-bold text-text-heading mb-4 flex items-center",children:[(0,r.jsx)("svg",{className:"w-5 h-5 mr-2 text-brand",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"})}),"Ticket Holder Details"]}
5),(0,r.jsx)("p",{className:"text-text-muted mb-6",children:"Please provide the name for each ticket holder"}),(0,r.jsx)("div",{className:"space-y-6",children:H.map((e,t)=>(0,r.jsxs)("div",{className:"border-b border-text-muted/10 pb-6 last:border-0 last:pb-0",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,r.jsx)("h3",{className:"font-semibold text-text-heading",children:e.description}),(0,r.jsx)("button",{type:"button",onClick:()=>void function(e){if(ed===e){es(t=>({...t,[e]:{...t[e],0:{...t[e]?.[0],firstName:"",lastName:""}}})),ec(null);return}es(t=>{let a={...t};return null!==ed&&a[ed]&&(a[ed]={...a[ed],0:{...a[ed][0],firstName:"",lastName:""}}),a[e]={...a[e],0:{...a[e]?.[0],firstName:eA.firstName||"",lastName:eA.lastName||""}},a}),ec(e)}(t),className:`text-sm px-3 py-1.5 rounded-md border transition-colors ${ed===t?"bg-brand/10 border-brand-light text-brand-dark":"bg-surface border-text-muted/30 text-text-muted hover:bg-surface-alt/30 hover:border-text-muted/40"}`,children:ed===t?"Using Billing Details":"Use Billing Details"})]}),e.memberDetails.map((a,s)=>{let n;return(0,r.jsxs)("div",{className:"mb-4 p-4 bg-surface-alt border border-mediumBrown/20 rounded-lg shadow-sm",children:[(0,r.jsx)("p",{className:"text-sm font-medium text-text-body mb-3",children:e.memberDetails.length>1?`Person ${s+1}`:"Ticket Holder"}),(n=`section-member-${t}-${s}`,(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"grid md:grid-cols-2 gap-4",children:[(0,r.jsx)(to,{id:`member-${t}-${s}-firstName`,label:"First Name *",autoComplete:`${n} given-name`,value:Z[t]?.[s]?.firstName||"",onChange:e=>ty(t,s,"firstName",e.target.value),placeholder:"Enter first name"}),(0,r.jsx)(to,{id:`member-${t}-${s}-lastName`,label:"Last Name *",autoComplete:`${n} family-name`,value:Z[t]?.[s]?.lastName||"",onChange:e=>ty(t,s,"lastName",e.target.value),placeholder:"Enter last name"})]}),e.displayEmail&&(0,r.jsx)("div",{className:"mt-4",children:(0,r.jsx)(to,{id:`member-${t}-${s}-email`,label:`Email ${e.emailRequired?"*":"(optional)"}`,type:"email",autoComplete:`${n} email`,value:Z[t]?.[s]?.email||"",onChange:e=>ty(t,s,"email",e.target.value),placeholder:"Enter email address"})}),e.displayTelephone&&(0,r.jsx)("div",{className:"mt-4",children:(0,r.jsx)(to,{id:`member-${t}-${s}-telephone`,label:`Telephone ${e.telephoneRequired?"*":"(optional)"}`,type:"tel",autoComplete:`${n} tel`,value:Z[t]?.[s]?.telephone||"",onChange:e=>ty(t,s,"telephone",e.target.value),placeholder:"Enter telephone number"})}),e.displayMobilePhone&&(0,r.jsx)("div",{className:"mt-4",children:(0,r.jsx)(to,{id:`member-${t}-${s}-mobile`,label:`Mobile ${e.mobilePhoneRequired?"*":"(optional)"}`,type:"tel",autoComplete:`${n} tel-mobile`,value:Z[t]?.[s]?.mobile||"",onChange:e=>ty(t,s,"mobile",e.target.value),placeholder:"Enter mobile number"})}),e.displayDob&&(0,r.jsx)("div",{className:"mt-4",children:(0,r.jsx)(to,{id:`member-${t}-${s}-dob`,label:`Date of Birth ${e.requireDOB?"*":"(optional)"}`,type:"date",autoComplete:`${n} bday`,value:Z[t]?.[s]?.dob||"",onChange:e=>ty(t,s,"dob",e.target.value)})})]}))]},s)})]},`${e.basketItemId||"mem"}-${t}`))})]})})}),eg.length>0&&(0,r.jsx)("div",{ref:eI,children:(0,r.jsx)(eM,{children:(0,r.jsxs)(eL,{className:"p-0",children:[(0,r.jsxs)("h2",{className:"text-xl font-bold text-text-heading mb-4 flex items-center",children:[(0,r.jsx)("svg",{className:"w-5 h-5 mr-2 text-brand",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v13m0-13V6a2 2 0 112 2h-2zm0 0V5a2 2 0 10-2 2h2zm-2 2h4M5 21h14a2 2 0 002-2V9a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"})}),"Gift Voucher Recipient Details"]}),(0,r.jsx)("p",{className:"text-text-muted mb-6",children:"Please provide the recipient details for each gift voucher"}),(0,r.jsx)("div",{className:"space-y-6",children:eg.map((e,t)=>(0,r.jsxs)("div",{className:"border-b border-text-muted/10 pb-6 last:border-0 last:pb-0",children:[(0,r.jsx)("div",{className:"flex items-center justify-between mb-4",children:(0,r.jsx)("h3",{className:"font-semibold text-text-heading",children:e.description})}),e.restrictionsText&&(0,r.jsx)("div",{className:"mb-4 p-4 rounded-xl bg-feedback-warning/10 border border-feedback-warning/20 text-sm text-text-body",dangerouslySetInnerHTML:{__html:e.restrictionsText}}),e.customerDetails.map((a,s)=>{let n=ey[t]?.[s]||{},i=`section-gv-${t}-${s}`;return(0,r.jsxs)("div",{className:"mb-4 p-4 bg-surface-alt border border-mediumBrown/20 rounded-lg shadow-sm",children:[(0,r.jsx)("p",{className:"text-sm font-medium text-text-body mb-3",children:e.customerDetails.length>1?`Recipient ${s+1}`:"Recipient"}),(0,r.jsxs)("div",{className:"grid md:grid-cols-2 gap-4",children:[(0,r.jsx)(to,{id:`gv-${t}-${s}-firstName`,label:"First Name *",autoComplete:`${i} given-name`,value:n.firstName||"",onChange:e=>
5tj(t,s,"firstName",e.target.value),placeholder:"Enter recipient's first name"}),(0,r.jsx)(to,{id:`gv-${t}-${s}-lastName`,label:"Last Name *",autoComplete:`${i} family-name`,value:n.lastName||"",onChange:e=>tj(t,s,"lastName",e.target.value),placeholder:"Enter recipient's last name"})]}),e.isMessageAllowed&&(0,r.jsxs)("div",{className:"mt-4",children:[(0,r.jsx)("label",{className:"block text-sm font-medium mb-2 text-mainMastBrown",children:"Personal Message (Max 128 characters)"}),(0,r.jsx)("textarea",{id:`gv-${t}-${s}-recipientMessage`,value:n.recipientMessage||"",maxLength:128,onChange:e=>tj(t,s,"recipientMessage",e.target.value),className:"kj-form-input",rows:2,placeholder:"Enter a short message to print on the voucher..."})]})]},s)}),e.requiresTerms&&e.termsText&&(0,r.jsx)("div",{className:"mt-4 p-3 bg-surface-alt border border-mediumBrown/20 rounded-lg shadow-sm",id:`field-gv-terms-${t}`,children:(0,r.jsxs)("label",{className:"flex items-start gap-3 cursor-pointer",children:[(0,r.jsx)("input",{type:"checkbox",checked:ey[t]?.termsAgreed||!1,onChange:e=>{var a;return a=e.target.checked,void ej(e=>({...e,[t]:{...e[t],termsAgreed:a}}))},className:"w-5 h-5 mt-0.5 rounded focus:ring-2 cursor-pointer border-mediumBrown/40 text-fairweatherBlue focus:ring-fairweatherBlue flex-shrink-0"}),(0,r.jsxs)("span",{className:"text-text-body text-sm",children:["Please tick to confirm that you have read and agree to the ",(0,r.jsx)("a",{href:e.termsText,target:"_blank",rel:"noopener noreferrer",className:"text-brand hover:underline font-medium",children:"Terms and Conditions"})," *"]})]})})]},`${e.websaleItemId||"gv"}-${t}`))})]})})}),Q.length>0&&(0,r.jsx)("div",{ref:tt,children:(0,r.jsx)(eM,{children:(0,r.jsxs)(eL,{className:"p-0",children:[(0,r.jsxs)("h2",{className:"text-xl font-bold text-text-heading mb-4 flex items-center",children:[(0,r.jsx)("svg",{className:"w-5 h-5 mr-2 text-brand",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8.228 9c.549-1.165 2.03-2 3.772-2 2.21 0 4 1.343 4 3 0 1.4-1.278 2.575-3.006 2.907-.542.104-.994.54-.994 1.093m0 3h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})}),"Additional Information"]}),Object.entries(Q.reduce((e,t)=>{let a=t.eventId||"general";return e[a]||(e[a]=[]),e[a].push(t),e},{})).sort(([,e],[,a])=>{let s=t.items.find(t=>t.eventId===e[0].eventId)?.selectedDate,r=t.items.find(e=>e.eventId===a[0].eventId)?.selectedDate;return s&&r?new Date(s)-new Date(r):0}).map(([e,a])=>{let s=t.items.find(t=>t.eventId===e)?.selectedDate,n=s?new Date(s).toLocaleString("en-GB",{weekday:"short",day:"numeric",month:"long",hour:"2-digit",minute:"2-digit"}):null;return(0,r.jsxs)("div",{className:"mb-8 last:mb-0",children:[n&&(0,r.jsxs)("h3",{className:"font-bold text-text-heading mb-3 flex items-center gap-2",children:[(0,r.jsx)("svg",{className:"w-4 h-4 text-brand",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})}),n]}),Object.entries(a.reduce((e,t)=>{let a=t.productName||"General";return e[a]||(e[a]=[]),e[a].push(t),e},{})).map(([e,t])=>(0,r.jsxs)("div",{className:"mb-6 last:mb-0",children:[(0,r.jsx)("h4",{className:"font-semibold text-text-heading mb-3 pb-2 border-b border-text-muted/10",children:e}),(0,r.jsx)("div",{className:"space-y-4",children:t.map(e=>{let a=e.uniqueKey||`${e.questionId}-${e.index}`;return(0,r.jsxs)("div",{children:[(0,r.jsxs)("label",{className:"block text-sm font-medium mb-2 text-mainMastBrown",children:[e.question,t.filter(t=>t.questionId===e.questionId).length>1&&(0,r.jsxs)("span",{className:"ml-1 text-text-muted font-normal",children:["(Person ",e.index,")"]}),e.isRequired&&(0,r.jsx)("span",{className:"ml-1 text-errorRed",children:"*"})]}),"TextBox"===e.controlType?(0,r.jsx)("textarea",{value:er[a]||"",onChange:e=>en(t=>({...t,[a]:e.target.value})),className:"kj-form-input",rows:3,placeholder:"Enter your answer..."}):(0,r.jsxs)("select",{value:er[a]||"",onChange:e=>en(t=>({...t,[a]:e.target.value})),className:"kj-form-input",children:[(0,r.jsx)("option",{value:"",children:"Select an option..."}),e.answers.map((e,t)=>(0,r.jsx)("option",{value:e,children:e},t))]})]},a)})})]},e))]},e)})]})})}),(0,r.jsx)(eM,{children:(0,r.jsxs)(eL,{className:"p-0",children:[(0,r.jsxs)("h2",{className:"text-xl font-bold text-text-heading mb-4 flex items-center",children:[(0,r.jsx)("svg",{className:"w-5 h-5 mr-2 text-brand",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M7 7h.01M7 3h5c.512 0 1.024.195 1.414.586l7 7a2 2 0 010 2.828l-7 7a2 2 0 01-2.828 0l-7-7A2 2 0 013 12V7a4 4 0 014-4z"})}),"Discount / Voucher Code"]}),(0,r.jsxs)("div",{className:"flex gap-3 min-w-0",children:[(0,r.jsx)("input",{type:"text",value:e2,onChange:e=>e4(e.target.value.toUpperCase()),onKeyDown:e=>
5"Enter"===e.key&&tb(),placeholder:"Enter your code",className:"kj-form-input flex-1 min-w-0"}),(0,r.jsx)(e_,{variant:"secondary",onClick:tb,disabled:e9||!e2.trim(),className:"flex-shrink-0",children:e9?"Applying...":"Apply"})]}),e6&&(0,r.jsx)("p",{className:"text-sm text-feedback-error mt-2",children:e6}),B.discounts.length>0&&(0,r.jsx)("div",{className:"mt-4 space-y-2",children:B.discounts.map((e,t)=>(0,r.jsxs)("div",{className:"flex items-center justify-between bg-feedback-success/10 px-4 py-3 rounded-lg",children:[(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)("svg",{className:"w-5 h-5 text-feedback-success mr-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"})}),(0,r.jsx)("span",{className:"font-medium text-feedback-success",children:e.code})]}),(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsxs)("span",{className:"font-semibold text-feedback-success mr-3",children:["-£",e.discountedAmount.toFixed(2)]}),(0,r.jsx)("button",{onClick:()=>tg(e.code),className:"text-text-muted/60 hover:text-feedback-error p-1",title:"Remove",children:(0,r.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]})]},t))})]})})]}),(0,r.jsx)("div",{className:"hidden lg:block lg:col-span-1",children:(0,r.jsx)(eM,{className:"sticky top-8",children:(0,r.jsxs)(eL,{className:"p-0",children:[(0,r.jsx)("h2",{className:"text-xl font-bold text-text-heading mb-4",children:"Order Summary"}),tm&&(0,r.jsxs)("div",{className:`mb-4 p-3 rounded-lg text-center ${tm.minutes<2?"bg-feedback-error/10":"bg-feedback-warning/10"}`,children:[(0,r.jsx)("p",{className:`text-xs font-medium ${tm.minutes<2?"text-feedback-error":"text-feedback-warning"}`,children:"Reservation expires in"}),(0,r.jsxs)("p",{className:`text-lg font-bold tabular-nums ${tm.minutes<2?"text-feedback-error":"text-feedback-warning"}`,children:[tm.minutes,":",tm.seconds.toString().padStart(2,"0")]})]}),(0,r.jsx)("div",{className:"space-y-3 mb-6 max-h-80 overflow-y-auto",children:B.groups.map((e,a)=>e.items.map((e,s)=>{let n=t.items.find(t=>t.webSaleItemId===e.webSaleItemId&&(!e.eventId||t.eventId===e.eventId)),i=n?.eventId&&n?.selectedDate?new Date(n.selectedDate).toLocaleTimeString("en-GB",{hour:"2-digit",minute:"2-digit"}):null;return(0,r.jsxs)("div",{className:"flex items-start justify-between py-2 border-b border-text-muted/10 last:border-0",children:[(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("p",{className:"font-medium text-text-heading text-sm truncate",children:e.name}),(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-text-muted mt-0.5",children:[(0,r.jsxs)("span",{children:[e.quantity," × £",e.price.toFixed(2)]}),i&&(0,r.jsxs)("span",{className:"bg-brand/10 text-brand font-semibold px-2 py-0.5 rounded text-[11px] flex items-center gap-1",children:[(0,r.jsx)("svg",{className:"w-3 h-3 text-brand",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})}),i]})]})]}),(0,r.jsx)("button",{onClick:()=>tv(e.webSaleItemId,e.eventId),className:"text-feedback-error hover:text-feedback-error p-1 ml-2 flex-shrink-0",title:"Remove",children:(0,r.jsx)("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]},`${e.webSaleItemId||"item"}-${a}-${s}`)}))}),(0,r.jsxs)("div",{className:"border-t border-text-muted/20 pt-4 space-y-2",children:[(0,r.jsxs)("div",{className:"flex justify-between text-text-muted",children:[(0,r.jsx)("span",{children:"Subtotal"}),(0,r.jsxs)("span",{children:["£",B.totalPrice.toFixed(2)]})]}),B.discounts.length>0&&(0,r.jsxs)("div",{className:"flex justify-between text-feedback-success",children:[(0,r.jsx)("span",{children:"Discount"}),(0,r.jsxs)("span",{children:["-£",B.discounts.reduce((e,t)=>
5e+t.discountedAmount,0).toFixed(2)]})]}),(0,r.jsxs)("div",{className:"flex justify-between text-xl font-bold text-text-heading pt-2",children:[(0,r.jsx)("span",{children:"Total"}),(0,r.jsxs)("span",{className:"text-brand",children:["£",B.finalPrice.toFixed(2)]})]})]}),W&&(0,r.jsx)("div",{className:"mt-4 p-3 bg-feedback-error/10 border border-feedback-error/30 rounded-lg",children:(0,r.jsx)("p",{className:"text-sm text-feedback-error",children:W})}),(0,r.jsx)(e_,{variant:"solid",size:"lg",className:"w-full mt-6",onClick:tN,disabled:G,children:G?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"inline-block animate-spin rounded-full h-4 w-4 border-b-2 border-white mr-2"}),"Processing..."]}):(0,r.jsxs)(r.Fragment,{children:["Continue to Payment",(0,r.jsx)("svg",{className:"w-5 h-5 ml-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})]})}),(0,r.jsx)("button",{onClick:tk,className:"w-full text-center text-text-muted hover:text-text-heading font-medium transition-colors mt-3",children:"← Back to Shopping"})]})})})]})]}),(0,r.jsx)(eR,{className:"lg:hidden",theme:"light",container:!1,above:eX&&(0,r.jsxs)("div",{className:"max-h-[60vh] overflow-y-auto overflow-x-hidden p-4 border-b border-text-muted/10",children:[(0,r.jsx)("h3",{className:"font-bold text-text-heading mb-3",children:"Your Basket"}),(0,r.jsx)("div",{className:"space-y-3",children:B.groups.map((e,a)=>e.items.map((e,s)=>{let n=t.items.find(t=>t.webSaleItemId===e.webSaleItemId&&(!e.eventId||t.eventId===e.eventId)),i=n?.eventId&&n?.selectedDate?new Date(n.selectedDate).toLocaleTimeString("en-GB",{hour:"2-digit",minute:"2-digit"}):null;return(0,r.jsxs)("div",{className:"flex items-center justify-between py-2 border-b border-text-muted/10 last:border-0",children:[(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("p",{className:"font-medium text-text-heading text-sm truncate",children:e.name}),(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-text-muted mt-0.5",children:[(0,r.jsxs)("span",{children:[e.quantity," × £",e.price.toFixed(2)]}),i&&(0,r.jsxs)("span",{className:"bg-brand/10 text-brand font-semibold px-2 py-0.5 rounded text-[11px] flex items-center gap-1",children:[(0,r.jsx)("svg",{className:"w-3 h-3 text-brand",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})}),i]})]})]}),(0,r.jsx)("button",{onClick:()=>tv(e.webSaleItemId,e.eventId),className:"text-feedback-error p-1 flex-shrink-0",children:(0,r.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})})})]},`${e.webSaleItemId||"item"}-${a}-${s}`)}))})]}),below:W&&(0,r.jsx)("div",{className:"px-4 pb-4",children:(0,r.jsx)("div",{className:"p-2 bg-feedback-error/10 border border-feedback-error/30 rounded-lg",children:(0,r.jsx)("p",{className:"text-xs text-feedback-error",children:W})})}),info:(0,r.jsxs)("button",{onClick:()=>e0(!eX),className:"flex items-center",children:[(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)("svg",{className:"w-6 h-6 text-text-body",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M16 11V7a4 4 0 00-8 0v4M5 9h14l1 12H4L5 9z"})}),(0,r.jsx)("span",{className:"absolute -top-2 -right-2 bg-brand text-white text-xs w-5 h-5 flex items-center justify-center rounded-full",children:tI})]}),(0,r.jsxs)("span",{className:"ml-3 font-bold text-lg",children:["£",B.finalPrice.toFixed(2)]}),(0,r.jsx)("svg",{className:`w-4 h-4 ml-2 transition-transform ${eX?"rotate-180":""}`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 15l7-7 7 7"})})]}),extra:[!S&&(0,r.jsxs)("button",{onClick:()=>C(!0),className:"bg-[#5F6B12] hover:bg-[#4d570e] text-white px-3 py-1.5 rounded-full text-xs font-bold flex items-center space-x-1 shadow-sm border-0 cursor-pointer",title:"Expand Focus Mode",children:[(0,r.jsx)("span",{children:"Focus"}),(0,r.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.5,d:"M4 8V4m0 0h4M4 4l5 5m11-1V4m0 0h-4m4 0l-5 5M4 16v4m0 0h4m-4 0l5-5m11 5l-5-5m5 5v-4m0 4h-4"})})]},"focus-toggle"),tm&&(0,r.jsxs)("div",{className:`px-2 py-1 rounded text-xs font-bold tabular-nums ${tm.minutes<2?"bg-feedback-error/15 text-feedback-error":"bg-feedback-warning/15 text-feedback-warning"}`,children:[tm.minutes,":",tm.seconds.toString().padStart(2,"0")]},"timer")],onPrimaryClick:tN,primaryDisabled:G,primaryLabel:G?"Processing...":"Continue →"}),ti&&(0,r.jsx)("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4",children:(0,r.jsxs)("div",{className:"bg-surface rounded-xl shadow-xl max-w-md w-full p-6",children:[(0,r.jsxs)("div",{className:"flex items-center mb-4",children:[(0,r.jsx)("div",{className:"w-10 h-10 rounded-full bg-feedback-error/15 flex items-center justify-center mr-3",children:(0,r.jsx)("svg",{className:"w-5 h-5 text-feedback-error",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})})}),(0,r.jsx)("h3",{className:"text-lg font-semibold text-text-heading",children:"Reservation Expired"})]}),(0,r.jsx)("p",{className:"text-text-muted mb-6",children:"Your reservation has expired. Please start again to select your tickets."}),(0,r.jsx)(e_,{variant:"solid",className:"w-full",onClick:()=>{tl(!1),p("products")},children:"Start Again"})]})}),tr&&(0,r.jsx)("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4",children:(0,r.jsxs)("div",{className:"bg-surface rounded-xl shadow-xl max-w-md w-full p-6",children:[(0,r.jsxs)("div",{className:"flex items-center mb-4",children:[(0,r.jsx)("div",{className:"w-10 h-10 rounded-full bg-feedback-warning/15 flex items-center justify-center mr-3",children:(0,r.jsx)("svg",{className:"w-5 h-5 text-feedback-warning",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})})}),(0,r.jsx)("h3",{className:"text-lg font-semibold text-text-heading",children:"Go back to products?"})]}),(0,r.jsxs)("p",{className:"text-text-muted mb-6",children:["Going back will clear your add-ons (",tc.length," ",1===tc.length?"item":"items",") - you can add them back later."]}),(0,r.jsxs)("div",{className:"flex gap-3",children:[(0,r.jsx)(e_,{variant:"secondary",className:"flex-1",onClick:()=>tn(!1),children:"Cancel"}),(0,r.jsx)(e_,{variant:"solid",className:"flex-1",onClick:function(){tc.forEac
5h(e=>{e.eventId?(eo(e.webSaleItemId,e.eventId),f(e.webSaleItemId,e.eventId)):x(e.webSaleItemId)}),R(!0,!0),tn(!1),p("EventOverview"===I?"date-selector":"products")},children:"Go Back"})]})]})})]})}function tc({accessToken:e,amount:t,description:a="Payment",sdkUrl:s,onSuccess:i,onError:l,onSubmitting:o,onWalletCancelled:d,onReady:c,onValidationBlocked:m,onDiagnostic:u,onThreeDSChallenge:x}){let h=(0,n.useRef)(null),[f,p]=(0,n.useState)(!0),[b,g]=(0,n.useState)(400),v=`/payment-frame?accessToken=${encodeURIComponent(e)}&amount=${t}&description=${encodeURIComponent(a)}${s?`&sdkUrl=${encodeURIComponent(s)}`:""}`,y=(0,n.useCallback)(e=>{if(e.origin!==window.location.origin)return;let{type:t,data:a,error:s,height:r,stage:n,statusCode:h,blockedUri:f,fields:b,message:v}=e.data||{};switch(t){case"CONNECT_E_SUBMITTING":console.log("Payment submitting..."),o?.();break;case"CONNECT_E_WALLET_CANCELLED":d?.();break;case"CONNECT_E_COMPLETE":console.log("Payment complete:",a),a?.statusCode==="0"||a?.statusCode===0?i(a):l(a?.message||"Payment was not successful",{stage:"gateway",statusCode:a?.statusCode??null});break;case"CONNECT_E_VALIDATION":m?.(b||[]);break;case"CONNECT_E_3DS_CHALLENGE":x?.();break;case"CONNECT_E_DIAGNOSTIC":u?.(n,v);break;case"CONNECT_E_ERROR":console.error("Payment error:",s),l(s||"Payment failed",{stage:n,statusCode:h,blockedUri:f});break;case"CONNECT_E_LOADED":p(!1),c?.();break;case"CONNECT_E_HEIGHT":r&&g(e=>Math.abs(e-r)>5?r:e)}},[i,l,o,d,c,m,u,x]);return(0,n.useEffect)(()=>(window.addEventListener("message",y),()=>{window.removeEventListener("message",y)}),[y]),(0,r.jsxs)("div",{className:"w-full",children:[f&&(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center py-16",children:[(0,r.jsx)("div",{className:"animate-spin rounded-full h-10 w-10 border-4 border-brand-light border-t-brand"}),(0,r.jsx)("p",{className:"mt-4 text-text-muted text-sm",children:"Loading secure payment form..."})]}),(0,r.jsx)("div",{className:"w-full overflow-hidden",children:(0,r.jsx)("iframe",{ref:h,src:v,className:`w-full border-0 rounded-xl bg-surface transition-all duration-300 ${f?"h-0 opacity-0 overflow-hidden":"opacity-100"}`,style:{height:f?0:b},title:"Payment Form",allow:"payment"})}),!f&&(0,r.jsx)("div",{className:"mt-2 space-y-2",children:(0,r.jsxs)("div",{className:"flex items-center justify-center text-xs text-text-muted/60",children:[(0,r.jsx)("svg",{className:"w-3.5 h-3.5 mr-1.5 text-feedback-success",fill:"currentColor",viewBox:"0 0 20 20",children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M5 9V7a5 5 0 0110 0v2a2 2 0 012 2v5a2 2 0 01-2 2H5a2 2 0 01-2-2v-5a2 2 0 012-2zm8-2v2H7V7a3 3 0 016 0z",clipRule:"evenodd"})}),(0,r.jsx)("span",{children:"Secure payment powered by Dojo"})]})})]})}let tm=new Set(["gateway","3ds_blocked"]);function tu(){let{basket:e,customer:t,memberships:a,giftVoucherDetails:s,questionPayload:i,setCurrentStep:l,orderId:o,setOrderId:d,completeOrder:c,completedOrderId:m,confirmationData:u,clearBasket:x,config:h,pageTitle:f,basketSummary:p,paymentAuthorized:b,setPaymentAuthorized:g,setPaymentSubmitting:v}=P(),[y,j]=(0,n.useState)(!1),[N,k]=(0,n.useState)(null),[I,S]=(0,n.useState)(!0),[C,D]=(0,n.useState)(!1),[M,A]=(0,n.use
5State)(null),[B,$]=(0,n.useState)(!1),[L,O]=(0,n.useState)(!1),[R,q]=(0,n.useState)(!1),[G,U]=(0,n.useState)(null),[H,J]=(0,n.useState)(!1),[Q,Y]=(0,n.useState)(!1),[K,Z]=(0,n.useState)(!0),[es,er]=(0,n.useState)(null),en=(0,n.useRef)(null),eo=(0,n.useRef)(!1),ed=(0,n.useRef)(!1),ec=(0,n.useRef)(0),em=(0,n.useRef)(!1),eu=()=>{en.current&&(console.log("Stopping payment confirmation polling..."),clearInterval(en.current),en.current=null)},ex=async()=>{if(eo.current)return void eu();if(!em.current){if(Date.now()>ec.current){eu(),await eI();return}em.current=!0;try{console.log("Polling payment status...");let e=await ej({paymentToken:G.paymentToken,paymentProcessorTypeId:G.processorId,orderId:G.orderId,ddOnCompletionredirectUrl:eT(G.orderId)});console.log("Poll confirmation response:",e),e&&!e.isError&&(eu(),eA(e))}catch(e){console.log("Payment confirmation poll pending/failed:",e.message)}finally{em.current=!1}}};(0,n.useEffect)(()=>{if(!H)return;let e=()=>{"visible"===document.visibilityState&&en.current&&ex()};return document.addEventListener("visibilitychange",e),()=>document.removeEventListener("visibilitychange",e)},[H]);let[eh,ef]=(0,n.useState)(null),[ep,eb]=(0,n.useState)(!1),eg=(0,n.useCallback)(()=>{if(!e.reservationExpiryDateTime)return null;let t=new Date().getTime(),a=T(e.reservationExpiryDateTime);if(!a)return null;let s=a-t;return s<=0?{minutes:0,seconds:0}:{minutes:Math.floor(s/6e4),seconds:Math.floor(s%6e4/1e3)}},[e.reservationExpiryDateTime]);async function ev(e,t){for(let a=1;a<=t;a++){try{console.log(`Checking existing order status in VenPos for orderId (attempt ${a}/${t}):`,e);let s=await eN(e);if(s&&!s.isError&&(s.data?.transactionSummaryModel||s.data?.transRef))return s.data}catch(e){console.log(`Existing order check attempt ${a} pending/failed:`,e.message)}a<t&&await new Promise(e=>setTimeout(e,2e3))}return null}function ew(a,s){var r;let n=s.transactionSummaryModel?.transactionNetValue||s.netValue||0;eY(s.transRef||a,n,e.items,f,void 0,t?.email),r=s.transRef||a,_.default.capture("payment_succeeded",{transaction_id:r,amount:n}),c(a,s)}async function eI(){if(eo.current)return;Y(!0);let e=await ev(G.orderId,3);if(Y(!1),e){if(eo.current)return;eo.current=!0,ed.current=!0,g(!0),Z(!1),ew(G.orderId,e);return}J(!1),v(!1),eX("Payment authorisation timed out"),W("Payment authorisation timed out",{stage:"confirm_timeout"}),A("We haven’t heard back from your bank yet. If you completed your bank’s verification, do NOT pay again — wait a moment and refresh this page. If you cancelled it or never saw a verification screen, no money has left your account and you can safely try again.")}async function eS(){try{if(S(!0),o){let e=await ev(o,b?6:1);if(e){console.log("Order already completed in VenPos! Navigating to confirmation..."),ew(o,e);return}if(b){Z(!1),A("Payment was authorized by your bank, but confirmation is taking longer than expected. Please do NOT attempt payment again — refresh in a moment or contact support.");return}}if(p)k(p);else{let t=await et(e.items,e.giftAidSelected,e.discounts);t.data&&k(t.data)}}catch(e){console.error("Error loading basket:",e),A("Failed to load basket details.")}finally{S(!1)}}function eT(e){let t=(h.venposApiUrl||w).replace("/VenposJourneyAPI","/VenPosJourneyUI");return`${t}/Confirmation?WebTransHeaderId=${e}&locationId=${h.locationId}&mainWebPageId=${h.webPageId}&startId=${h.webPageId}`}async function eE({recovering:r=!1,orderId:n}={}){if(ed.current)return void console.warn("Payment has already been authorized. Blocking re-initialization to prevent double charging.");D(!0),A(null),Z(!0),q(!1),U(null);try{var l,d,c;let m=n||o||N?.orderId||"",u={items:X(e.items),discounts:e.discounts||[],giftAidSelected:e.giftAidSelected,pageId:h.webPageId,memberships:a,giftVoucherDetails:s||[],customerId:t.webCustomerId||"",questions:i||[],webTransHeaderId:m,cateringMode:"NotSetup",cateringFacilityId:null,waiverShown:!0,ddOnCompletionredirectUrl:eT(m),cateringCustomTextResponse1:"",cateringCustomTextResponse2:"",orderId:m,newAccountCreated:!1},x=await ey(u,h.webPageId);if(x.isError){z(x.information||"unknown"),er(null),A(r?"We could not start a new payment session. Please wait a moment and try again. You have not been charged.":x.information||"Failed to initialize payment. Please try again."),D(!1);return}let{data:p}=x,b=p?.customParameters?.ExternalJsUrl,g=p?.paymentToken,v=p?.paymentProcessor;if(!p||!g||!b){console.log("Payment response data:",p),z("missing_payment_config"),A("Payment c
5onfiguration not received. VenPos may not be configured for payments in this environment."),D(!1);return}U({accessToken:g,amount:Math.round(100*p.amount),description:p.customParameters?.WidgetTitle||`Payment of \xa3${p.amount.toFixed(2)}`,paymentToken:g,processorId:v||3,orderId:p.orderId||m,sdkUrl:b}),q(!0),D(!1),l=e.items,d=p.amount,eW({event:"add_payment_info",ecommerce:{currency:"GBP",value:d,payment_type:"card",items:l.map(e=>eG(e,eU(e,f)))}}),c=p.amount,_.default.capture("payment_step_rendered",{amount:c})}catch(t){console.error("Error initializing payment:",t);let e=t?.message?.includes("timed out");z(e?"timeout":t?.message||"exception"),A(e?"The booking system is taking longer than usual to respond. Please try again in a moment.":"An error occurred while setting up payment. Please try again."),D(!1)}}async function eA(e){if(console.log("handlePaymentSuccess called with data:",e),eu(),ed.current=!0,g(!0),Z(!1),eo.current)return;eo.current=!0,Y(!0),J(!1),v(!1),A(null);let t=!1;try{if(!G)throw Error("Payment configuration missing");let a=null;if(e&&!1===e.isError)a=e;else for(let e=1;e<=6;e++){console.log(`Confirming payment with VenPos (attempt ${e}/6), orderId:`,G.orderId);try{if(a=await ej({paymentToken:G.paymentToken,paymentProcessorTypeId:G.processorId,orderId:G.orderId,ddOnCompletionredirectUrl:eT(G.orderId)}),console.log(`VenPos confirmation response (attempt ${e}):`,a),a&&!a.isError)break}catch(t){console.warn(`VenPos confirmPayment attempt ${e} exception:`,t.message)}e<6&&await new Promise(e=>setTimeout(e,2e3))}if(!a||a.isError){console.log("confirmPayment retries unsuccessful. Attempting fallback verification via getTransactionDetails...");try{let e=await eN(G.orderId);if(e&&!e.isError&&(e.data?.transactionSummaryModel||e.data?.transRef)){console.log("Fallback getTransactionDetails succeeded! Order verified in VenPos."),t=!0,ew(G.orderId,e.data);return}}catch(e){console.error("Fallback getTransactionDetails check failed:",e.message)}W(a?.information||"VenPos confirmation failed after retries and fallback",{stage:"confirm_error"}),A(a?.information||"Payment was authorized by your bank, but order confirmation is taking longer than expected. Please DO NOT re-submit payment. Please refresh the page or contact support."),Y(!1);return}t=!0,console.log("Getting transaction details...");let s=await eN(G.orderId);if(console.log("Transaction details:",s),s.isError){Z(!1),W("Payment confirmed but transaction details unavailable",{stage:"confirm_error"}),A("Payment confirmed but order details unavailable. Please contact support."),Y(!1);return}console.log("SUCCESS! Going to confirmation..."),ew(G.orderId,s.data)}catch(e){console.error("Error confirming payment:",e),Y(!1),W(e.message||"Exception while confirming payment",{stage:"confirm_error"}),t||ed.current?(Z(!1),A("Payment was processed by your bank. Please do not re-submit payment. Please contact support if confirmation does not load.")):(A("An error occurred while confirming payment. Please try again."),eo.current=!1)}}async function eB(){let a;D(!0),A(null),q(!1),U(null);let s=N?.finalPrice,r=e.discounts||[];try{await Promise.all(r.map(e=>ee(e).catch(t=>{console.error("Failed to release discount code before rebuilding the order:",e,t)}))),d(null),await ea(e.items);let n=await et(e.items,e.giftAidSelected,[],t.webCustomerId||null);if(n?.isError)throw Error(n.information||"Basket reload failed");if(!(a=n?.data?.orderId))throw Error("Basket/Load did not return a new orderId");let i=await et(e.items,e.giftAidSelected,r,t.webCustomerId||null,a);if(i?.isError)throw Error(i.information||"Basket reload failed after order rebuild");let l=i?.data?.discountCodeErrors;if(l?.length){let e=Error(`Discount rejected on rebuilt order: ${l.join("; ")}`);throw e.repriced=!0,e}k(i.data??n.data);let o=await ek({Items:X(e.items),Discounts:r,GiftAidSelected:e.giftAidSelected,PageId:h.webPageId,customerId:t.webCustomerId||"",orderId:a}),c=o?.data?.finalPrice??o?.data?.finalAmount;if(null!=s&&null!=c&&c>s+.001){let e=Error(`Rebuilt order re-priced from ${s} to ${c} (codes: ${r.join(", ")||"none"})`);throw e.repriced=!0,e}}catch(e){console.error("Failed to open a new order before a new payment session:",e),z(`order_rebuild_failed: ${e?.message||"unknown"}`),er(null),A(e?.repriced?"Your discount could not be carried over to a new payment attempt, so we have stopped rather than charge you more than you were quoted. You have not been charged — please go back to your basket and re-apply your discount code.":"We could not start a new payment session. Please wait a moment and try again. You have not been charged."),D(!1);return}await eE({recovering:!0,orderId:a})}return((0,n.useEffect)(()=>
5{if(!e.reservationExpiryDateTime)return void ef(null);ef(eg());let t=setInterval(()=>{let e=eg();if(ef(e),e&&0===e.minutes&&0===e.seconds){if(clearInterval(t),eu(),eo.current)return;eK(),F(),ei(),el(),x(),eb(!0)}},1e3);return()=>clearInterval(t)},[e.reservationExpiryDateTime,eg]),(0,n.useEffect)(()=>{if(j(!0),E("checkout"),m&&u){console.log("Order already completed for session, going to confirmation..."),l("confirmation");return}return t.email?(eS(),()=>{eu()}):void l("basket")},[]),(0,n.useEffect)(()=>{m||ed.current||b||!N||R||G||C||eE()},[N,m,b]),(0,n.useEffect)(()=>{if(!(H||Q||ed.current))return;let e=e=>{e.preventDefault(),e.returnValue=""};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[H,Q]),y)?I&&!N?(0,r.jsxs)("div",{className:"min-h-screen py-12",children:[(0,r.jsx)(eC,{className:"fixed top-0 left-0 right-0 z-50 h-1.5"}),(0,r.jsx)(eD,{children:(0,r.jsxs)("div",{className:"max-w-4xl mx-auto",children:[(0,r.jsx)("div",{className:"h-10 bg-text-muted/15 rounded w-1/4 mb-2 animate-pulse"}),(0,r.jsx)("div",{className:"h-5 bg-text-muted/10 rounded w-1/3 mb-8 animate-pulse"}),(0,r.jsxs)("div",{className:"grid lg:grid-cols-3 gap-8",children:[(0,r.jsxs)("div",{className:"lg:col-span-2 space-y-6",children:[(0,r.jsx)("div",{className:"kj-card surface h-32 animate-pulse"}),(0,r.jsx)("div",{className:"kj-card surface h-32 animate-pulse"}),(0,r.jsx)("div",{className:"kj-card surface h-64 animate-pulse"})]}),(0,r.jsx)("div",{children:(0,r.jsx)("div",{className:"kj-card surface h-96 animate-pulse"})})]})]})})]}):N?(0,r.jsxs)("div",{className:"min-h-screen py-12",children:[(H||Q||I||C)&&(0,r.jsx)(eC,{className:"fixed top-0 left-0 right-0 z-50 h-1.5"}),(0,r.jsx)(eP,{active:Q,message:"Processing Payment... Please wait while we confirm your payment. Do not close this page.",fixed:!0,children:(0,r.jsx)(eD,{children:(0,r.jsxs)("div",{className:"max-w-4xl mx-auto",children:[(0,r.jsxs)("div",{className:"mb-8",children:[(0,r.jsx)("h1",{className:"text-4xl md:text-5xl font-bold text-text-heading mb-2",children:"Checkout"}),(0,r.jsx)("p",{className:"text-xl text-text-muted",children:"Review your order and complete payment"})]}),eh&&(0,r.jsxs)("div",{className:`mb-6 p-4 rounded-lg flex items-center justify-center gap-3 ${eh.minutes<2?"bg-feedback-error/10 border border-feedback-error/30":"bg-feedback-warning/10 border border-feedback-warning/30"}`,children:[(0,r.jsx)("svg",{className:`w-5 h-5 flex-shrink-0 ${eh.minutes<2?"text-feedback-error":"text-feedback-warning"}`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})}),(0,r.jsxs)("span",{className:`font-medium ${eh.minutes<2?"text-feedback-error":"text-feedback-warning"}`,children:["Your reservation expires in"," ",(0,r.jsxs)("span",{className:"font-bold tabular-nums",children:[eh.minutes,":",eh.seconds.toString().padStart(2,"0")]})," ","— please complete your payment before it expires."]})]}),(0,r.jsxs)("div",{className:"grid lg:grid-cols-3 gap-8",children:[(0,r.jsxs)("div",{className:"lg:col-span-2 min-w-0 space-y-6",children:[(0,r.jsx)(eM,{children:(0,r.jsxs)(eL,{className:"p-0",children:[(0,r.jsxs)("button",{onClick:()=>$(!B),className:"w-full flex items-center justify-between p-4 text-left hover:bg-brand/5 transition-colors rounded-xl",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,r.jsx)("div",{className:"flex-shrink-0 w-8 h-8 rounded-full bg-brand/10 flex items-center justify-center",children:(0,r.jsx)("svg",{className:"w-4 h-4 text-brand",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"})})}),(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("h3",{className:"font-semibold text-text-heading text-sm",children:"Customer Details"}),(0,r.jsxs)("p",{className:"text-xs text-text-muted truncate",children:[t.firstName," ",t.lastName," · ",t.email]})]})]}),(0,r.jsx)("svg",{className:`w-4 h-4 text-text-muted flex-shrink-0 transition-transform ${B?"rotate-180":""}`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]}),B&&(0,r.jsxs)("div",{className:"px-4 pb-4 pt-0",children:[(0,r.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3 text-sm border-t border-text-muted/10 pt-3",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-text-muted text-xs",children:"Name"}),(0,r.jsxs)("p",{className:"font-semibold text-text-heading",children:[t.firstName," ",t.lastName]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-text-muted text-xs",children:"Email"}),(0,r.jsx)("p",{className:"font-semibold text-text-heading",children:t.email})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-text-muted text-xs",children:"Mobile"}),(0,r.jsx)("p",{className:"font-semibold text-text-heading",children:t.mobile})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-text-muted text-xs",children:"Address"}),(0,r.jsxs)("p",{className:"font-semibold text-text-heading",children:[t.addressFirstLine,", ",t.cityTown,", ",t.postCode]})]})]}),!(H||Q||ed.current)&&(0,r.jsx)("button",{onClick:()=>l("basket"),className:"mt-3 text-brand hover:text-brand-dark text-xs font-medium",children:"Edit Details"})]})]})}),(0,r.jsx)(eM,{children:(0,r.jsxs)(eL,{className:"p-0",children:[(0,r.jsxs)("button",{onClick:()=>O(!L),className:"w-full flex items-center justify-between p-4 text-left hover:bg-brand/5 transition-colors rounded-xl",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,r.jsx)("div",{className:"flex-shrink-0 w-8 h-8 rounded-full bg-brand/10 flex items-center justify-center",children:(0,r.jsx)("svg",{className:"w-4 h-4 text-brand",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M16 11V7a4 4 0 00-8 0v4M5 9h14l1 12H4L5 9z"})})}),(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("h3",{className:"font-semibold text-text-heading text-sm",children:"Order Summary"}),(0,r.jsxs)("p",{className:"text-xs text-text-muted truncate",children:[N.groups.map(e=>e.name).join(", ")," · £",N.finalPrice.toFixed(2)]})]})]}),(0,r.jsx)("svg",{className:`w-4 h-4 text-text-muted flex-shrink-0 transition-transform ${L?"rotate-180":""}`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]}),L&&(0,r.jsx)("div",{className:"px-4 pb-4 pt-0 border-t border-text-muted/10",children:N.groups.map((e,t)=>(0,r.jsxs)("div",{className:t>0?"mt-4 pt-4 border-t border-text-muted/10":"pt-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,r.jsx)("h4",{className:"font-semibold text-text-heading text-sm",children:e.name}),e.selectedDate&&(0,r.jsxs)("span",{className:"text-xs text-text-muted",children:["· ",function(e){if(!e)return"";let t=new Date(e);return t.toLocaleDateString("en-GB",{weekday:"long",year:"numeric",month:"long",day:"numeric",hour:t.getHours()>0?"2-digit":void 0,minute:t.getHours()>0?"2-digit":void 0})}(e.selectedDate)]})]}),(0,r.jsx)("div",{className:"space-y-1",children:e.items.map((e,t)=>(0,r.jsxs)("div",{className:"flex justify-between items-center text-sm py-1",children:[(0,r.jsxs)("span",{className:"text-text-body",children:[e.quantity,"x ",e.name]}),(0,r.jsxs)("span",{className:"font-semibold text-text-heading",children:["£",e.totalPrice.toFixed(2)]})]},t))})]},t))})]})}),(0,r.jsx)(eM,{className:"!bg-surface",children:(0,r.jsxs)(eL,{className:"p-0 sm:p-6",children:[(0,r.jsx)("h2",{className:"text-2xl font-bold text-text-heading mb-4",children:"Payment"}),es&&!M&&(0,r.jsxs)("div",{className:"mb-4 p-4 bg-feedback-warning/10 border border-feedback-warning/30 rounded-lg",children:[(0,r.jsx)("p",{className:"text-sm font-medium text-feedback-warning",children:es}),(0,r.jsx)("p",{className:"mt-1 text-xs text-text-muted",children:"You have not been charged. Check your card details, or use a different card."}),!R&&!C&&(0,r.jsx)(e_,{variant:"solid",className:"mt-3 w-full",onClick:()=>eB(),children:"Try again"})]}),R&&G?(0,r.jsx)(tc,{accessToken:G.accessToken,amount:G.amount,description:G.description,sdkUrl:G.sdkUrl,onSuccess:eA,onError:function(e,t={}){if(eu(),J(!1),v(!1),Y(!1),eX(e||"Payment failed"),W(e||"Payment failed",t),ed.current){Z(!1),A("Payment was authorized by your bank. Please do not re-submit payment. Please refresh the page or contact support.");return}if(tm.has(t.stage)){q(!1),U(null),er(e||"Your payment was not accepted.");return}A(e||"Payment failed. Please try again.")},onSubmitting:function(){var e;er(null),J(!0),v(!0),e=G?G.amount/100:void 0,_.default.capture("payment_submitting",{amount:e}),(()=>{if(!en.current&&!eo.current){if(!G)return console.warn("Cannot start polling: paymentConfig is missing");ec.current=Date.now()+3e5,console.log("Starting payment confirmation polling for order:",G.orderId),en.current=setInterval(ex,2500)}})()},onWalletCancelled:function(){var e;eu(),J(!1),v(!1),Y(!1),e=G?G.amount/100:void 0,_.default.capture("wallet_payment_cancelled",{amount:e})},onValidationBlocked:function(e){_.default.capture("payment_validation_blocked",{fields:e,field_count:Array.isArray(e)?e.length:0}),A(null)},onDiagnostic:(e,t)=>W(t,{stage:e}),onThreeDSChallenge:V,onReady:()=>{var e;return e=G.amount/100,void _.default.capture("payment_iframe_ready",{amount:e})}},G.accessToken):!C&&(M||es)?null:(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center py-8",children:[(0,r.jsx)("div",{className:"animate-spin rounded-full h-8 w-8 border-4 border-brand-light border-t-brand"}),(0,r.jsx)("p",{className:"mt-3 text-text-muted text-sm",children:"Setting up secure payment..."})]}),M&&(0,r.jsxs)("div",{className:"mt-4 p-4 bg-feedback-error/10 border border-feedback-error/30 rounded-lg",children:[(0,r.jsx)("p",{className:"text-sm text-feedback-error",children:M}),K&&!C&&(0,r.jsx)("button",{onClick:()=>eB(),className:"mt-2 text-sm text-brand hover:text-brand-dark font-medium",children:"Try again"})]})]})})]}),(0,r.jsx)("div",{className:"lg:col-span-1 min-w-0",children:(0,r.jsx)(eM,{className:"sticky top-8",children:(0,r.jsxs)(eL,{className:"p-6",children:[(0,r.jsx)("h2",{className:"text-2xl font-bold text-text-heading mb-6",children:"Payment Summary"}),eh&&(0,r.jsxs)("div",{className:`mb-4 p-3 rounded-lg text-center ${eh.minutes<2?"bg-feedback-error/10":"bg-feedback-warning/10"}`,children:[(0,r.jsx)("p",{className:`text-xs font-medium ${eh.minutes<2?"text-feedback-error":"text-feedback-warning"}`,children:"Reservation expires in"}),(0,r.jsxs)("p",{className:`text-lg font-bold tabular-nums ${eh.minutes<2?"text-feedback-error":"text-feedback-warning"}`,children:[eh.minutes,":",eh.seconds.toString().padStart(2,"0")]})]}),(0,r.jsxs)("div",{className:"space-y-3 mb-6",children:[(0,r.jsxs)("div",{className:"flex justify-between text-text-muted",children:[(0,r.jsx)("span",{children:"Subtotal"}),(0,r.jsxs)("span",{className:"font-semibold",children:["£",N.totalPrice.toFixed(2)]})]}),N.totalDiscountedPrice!==N.totalPrice&&(0,r.jsxs)("div",{className:"flex justify-between text-feedback-success",children:[(0,r.jsx)("span",{children:"Discount"}),(0,r.jsxs)("span",{className:"font-semibold",children:["-£",(N.totalPrice-N.totalDiscountedPrice).toFixed(2)]})]}),e.giftAidSelected&&(0,r.jsxs)("div",{className:"flex justify-between text-text-muted",children:[(0,r.jsxs)("span",{className:"flex items-center",children:[(0,r.jsx)("svg",{className:"w-4 h-4 mr-1",fill:"currentColor",viewBox:"0 0 20 20",children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z",clipRule:"evenodd"})}),"Gift Aid"]}),(0,r.jsx)("span",{className:"font-semibold",children:"Included"})]})]}),(0,r.jsx)("div",{className:"border-t border-text-muted/20 pt-4 mb-6",children:(0,r.jsxs)("div",{className:"flex justify-between items-baseline",children:[(0,r.jsx)("span",{className:"text-xl font-bold text-text-heading",children:"Total"}),(0,r.jsxs)("span",{className:"text-3xl font-bold text-brand",children:["£",N.finalPrice.toFixed(2)]})]})}),Q?(0,r.jsx)("div",{className:"mb-3 p-3 bg-brand/10 border border-brand/20 rounded-xl text-center",children:(0,r.jsx)("p",{className:"text-sm text-brand font-medium",children:"Confirming booking..."})}):H?(0,r.jsxs)("div",{className:"mb-3 p-3 bg-brand/10 border border-brand/20 rounded-xl text-center font-medium animate-pulse text-brand",children:["Authorizing payment... Please complete any verification required by your bank.",(0,r.jsx)("br",{}),(0,r.jsx)("span",{className:"font-normal",children:"This can take up to a minute — please don't refresh or go back, even if it seems stuck."})]}):R?(0,r.jsx)("div",{className:"mb-3 p-3 bg-feedback-success/10 border border-feedback-success/30 rounded-xl text-center",children:(0,r.jsx)("p",{className:"text-sm text-feedback-success font-medium",children:"Enter your card details to complete payment"})}):null,!(H||Q||ed.current)&&(0,r.jsx)("button",{onClick:()=>l("basket"),className:"w-full text-center text-text-muted hover:text-text-heading font-medium transition-colors",children:"← Back"}),(0,r.jsx)("div",{className:"mt-6 pt-6 border-t border-text-muted/20",children:(0,r.jsxs)("div",{className:"flex items-center text-xs text-text-muted",children:[(0,r.jsx)("svg",{className:"w-4 h-4 mr-2 text-feedback-success",fill:"currentColor",viewBox:"0 0 20 20",children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M5 9V7a5 5 0 0110 0v2a2 2 0 012 2v5a2 2 0 01-2 2H5a2 2 0 01-2-2v-5a2 2 0 012-2zm8-2v2H7V7a3 3 0 016 0z",clipRule:"evenodd"})}),(0,r.jsx)("span",{children:"Secure payment powered by Dojo"})]})})]})})})]})]})})}),ep&&(0,r.jsx)("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4",children:(0,r.jsxs)("div",{className:"bg-surface rounded-xl shadow-xl max-w-md w-full p-6",children:[(0,r.jsxs)("div",{className:"flex items-center mb-4",children:[(0,r.jsx)("div",{className:"w-10 h-10 rounded-full bg-feedback-error/15 flex items-center justify-center mr-3",children:(0,r.jsx)("svg",{className:"w-5 h-5 text-feedback-error",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})})}),(0,r.jsx)("h3",{className:"text-lg font-semibold text-text-heading",children:"Reservation Expired"})]}),(0,r.jsx)("p",{className:"text-text-muted mb-6",children:"Your reservation has expired before payment was completed. Please start again to select your tickets."}),(0,r.jsx)(e_,{variant:"solid",className:"w-full",onClick:()=>{eb(!1),l("products")},children:"Start Again"})]})})]}):b?(0,r.jsx)(eD,{children:(0,r.jsxs)("div",{className:"surface rounded-2xl p-8 text-center",children:[(0,r.jsx)("p",{className:"text-feedback-error mb-4",children:M||"Payment was authorized by your bank, but confirmation is taking longer than expected."}),(0,r.jsx)("p",{className:"text-text-muted text-sm mb-4",children:"Please do NOT attempt payment again. Refresh this page in a moment, or contact support if this persists."}),(0,r.jsx)(e_,{onClick:()=>window.location.reload(),children:"Refresh"})]})}):(0,r.jsx)(eD,{children:(0,r.jsxs)("div",{className:"surface rounded-2xl p-8 text-center",children:[(0,r.jsx)("p",{className:"text-feedback-error mb-4",children:"Unable to load checkout details."}),(0,r.jsx)(e_,{onClick:()=>l("basket"),children:"Return to Basket"})]})}):null}var tx=e.i(37902);function th(){let e,{customer:t,confirmationData:a,restart:s,config:i}=P(),l=(0,n.useRef)(!1),o=i.venposApiUrl??w;if((0,n.useEffect)(()=>{var e,r;if(!a)return void s();if(window.scrollTo({top:0,behavior:"instant"}
5),E("confirmation"),e=a.transRef,r=a.transactionSummaryModel?.transactionNetValue||a.netValue||0,_.default.capture("confirmation_viewed",{transaction_ref:e,total_value:r}),!l.current){l.current=!0;let e=a.transactionSummaryModel?.transactionNetValue||a.netValue||0,s=a.transactionSummaryModel?.products??[];!function({transactionId:e,value:t,items:a,customer:s}){if(!(0,eZ.hasConsent)("advertisement"))return;let r=`purchase_${e}`,n=a.map(e=>String(e.webSaleItemId??e.description)),i=a.map(e=>({id:String(e.webSaleItemId??e.description),quantity:e.quantity,item_price:e.price})),l=a.reduce((e,t)=>e+t.quantity,0);window.fbq&&window.fbq("track","Purchase",{value:t,currency:"GBP",content_ids:n,contents:i,content_type:"product",num_items:l},{eventID:r}),e1({eventName:"Purchase",eventId:r,userData:{email:s.email,firstName:s.firstName,lastName:s.lastName,city:s.city,postcode:s.postcode,country:s.country},customData:{value:t,currency:"GBP",content_ids:n,contents:i,content_type:"product",num_items:l,order_id:e}})}({transactionId:a.transRef,value:e,items:s,customer:{email:t.email,firstName:t.firstName,lastName:t.lastName,city:t.cityTown,postcode:t.postCode,country:t.selectedCountry}})}},[a,s,t]),!a)return null;let d=o.includes("uat.venpos.net"),c=a.webTransHeaderID?`${d?"https://tickets-uat.bristoldockyards.org":"https://tickets.bristoldockyards.org"}/VenPosJourneyUI/DocumentTemplate?WebTransHeaderId=${a.webTransHeaderID}&locationId=974`:null,m=a.confirmationText?.replace(/href="DocumentTemplate/g,`href="${o.replace("/VenposJourneyAPI","/VenPosJourneyUI")}/DocumentTemplate`)?.replace(/\\"/g,'"');return(0,r.jsxs)("div",{className:"jsx-a6af4c1a4260065c min-h-screen py-12",children:[(0,r.jsx)(eD,{children:(0,r.jsx)("div",{className:"jsx-a6af4c1a4260065c max-w-3xl mx-auto",children:(0,r.jsx)(eM,{children:(0,r.jsxs)(eL,{className:"p-8 md:p-12",children:[(0,r.jsxs)("div",{className:"jsx-a6af4c1a4260065c text-center mb-8",children:[(0,r.jsx)("div",{className:"jsx-a6af4c1a4260065c w-20 h-20 mx-auto bg-feedback-success/15 rounded-full flex items-center justify-center mb-6",children:(0,r.jsx)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",className:"jsx-a6af4c1a4260065c w-12 h-12 text-feedback-success",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7",className:"jsx-a6af4c1a4260065c"})})}),(0,r.jsx)("h1",{className:"jsx-a6af4c1a4260065c text-4xl md:text-5xl font-bold text-mainMastBrown mb-2",children:"Booking Confirmed!"}),a.transRef&&(0,r.jsxs)("div",{className:"jsx-a6af4c1a4260065c inline-flex items-center bg-brand-light text-brand-dark px-4 py-2 rounded-lg mt-4",children:[(0,r.jsx)("span",{className:"jsx-a6af4c1a4260065c text-sm font-medium mr-2",children:"Reference:"}),(0,r.jsx)("span",{className:"jsx-a6af4c1a4260065c font-bold",children:a.transRef})]})]}),(0,r.jsx)("div",{dangerouslySetInnerHTML:{__html:m||""},className:"jsx-a6af4c1a4260065c prose prose-sm md:prose max-w-none mb-8 text-text-body confirmation-content"}),a.transactionSummaryModel?.products&&a.transactionSummaryModel.products.length>0&&(0,r.jsxs)("div",{className:"jsx-a6af4c1a4260065c bg-surface-alt/30 rounded-lg p-6 mb-8",children:[(0,r.jsx)("h2",{className:"jsx-a6af4c1a4260065c text-xl font-bold text-mainMastBrown mb-4",children:"Order Summary"}),(0,r.jsx)("div",{className:"jsx-a6af4c1a4260065c space-y-3",children:a.transactionSummaryModel.products.map((e,t)=>(0,r.jsxs)("div",{className:"jsx-a6af4c1a4260065c flex justify-between items-center py-2 border-b border-text-muted/20 last:border-0",children:[(0,r.jsxs)("div",{className:"jsx-a6af4c1a4260065c",children:[(0,r.jsx)("p",{className:"jsx-a6af4c1a4260065c font-medium text-text-heading",children:e.description}),(0,r.jsxs)("p",{className:"jsx-a6af4c1a4260065c text-sm text-text-muted",children:["Qty: ",e.quantity]})]}),(0,r.jsx)("p",{className:"jsx-a6af4c1a4260065c font-semibold text-text-heading",children:e.price>0?`\xa3${e.price.toFixed(2)}`:"Free"})]},t))}),(0,r.jsxs)("div",{className:"jsx-a6af4c1a4260065c mt-4 pt-4 border-t border-text-muted/30 flex justify-between items-center",children:[(0,r.jsx)("span",{className:"jsx-a6af4c1a4260065c text-lg font-bold text-text-heading",children:"Total"}),(0,r.jsx)("span",{className:"jsx-a6af4c1a4260065c text-3xl font-bold text-fairweatherBlue",children:(e=a.transactionSummaryMo
5del?.transactionNetValue||a.netValue||a.transactionSummaryModel?.products?.reduce((e,t)=>e+t.price,0)||0)>0?`\xa3${e.toFixed(2)}`:"Free"})]})]}),t.email&&(0,r.jsx)("div",{className:"jsx-a6af4c1a4260065c bg-brand/10 border border-brand/20 rounded-lg p-4 mb-8",children:(0,r.jsxs)("div",{className:"jsx-a6af4c1a4260065c flex items-start",children:[(0,r.jsxs)("svg",{fill:"currentColor",viewBox:"0 0 20 20",className:"jsx-a6af4c1a4260065c w-5 h-5 text-brand mt-0.5 mr-3 flex-shrink-0",children:[(0,r.jsx)("path",{d:"M2.003 5.884L10 9.882l7.997-3.998A2 2 0 0016 4H4a2 2 0 00-1.997 1.884z",className:"jsx-a6af4c1a4260065c"}),(0,r.jsx)("path",{d:"M18 8.118l-8 4-8-4V14a2 2 0 002 2h12a2 2 0 002-2V8.118z",className:"jsx-a6af4c1a4260065c"})]}),(0,r.jsxs)("div",{className:"jsx-a6af4c1a4260065c text-sm text-brand-dark",children:[(0,r.jsx)("p",{className:"jsx-a6af4c1a4260065c",children:"A confirmation email has been sent to:"}),(0,r.jsx)("p",{className:"jsx-a6af4c1a4260065c font-semibold",children:t.email})]})]})}),(0,r.jsxs)("div",{className:"jsx-a6af4c1a4260065c space-y-3 text-center",children:[c&&(0,r.jsxs)("a",{href:c,target:"_blank",rel:"noopener noreferrer",onClick:()=>{var e;return e=a.transRef,void _.default.capture("eticket_viewed",{transaction_ref:e})},className:"jsx-a6af4c1a4260065c inline-flex items-center justify-center w-full md:w-auto md:px-12 gap-2 bg-brand text-white font-semibold text-lg px-6 py-3 rounded-lg hover:bg-brand-dark transition-colors",children:[(0,r.jsx)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",className:"jsx-a6af4c1a4260065c w-5 h-5 flex-shrink-0",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 5v2m0 4v2m0 4v2M5 5a2 2 0 00-2 2v3a2 2 0 110 4v3a2 2 0 002 2h14a2 2 0 002-2v-3a2 2 0 110-4V7a2 2 0 00-2-2H5z",className:"jsx-a6af4c1a4260065c"})}),"View Your E-Tickets"]}),(0,r.jsx)("div",{className:"jsx-a6af4c1a4260065c",children:(0,r.jsx)("button",{onClick:function(){G(),s()},className:"jsx-a6af4c1a4260065c text-text-muted hover:text-text-heading font-medium transition-colors",children:"Make Another Booking"})})]})]})})})}),(0,r.jsx)(tx.default,{id:"a6af4c1a4260065c",children:".confirmation-content a{color:rgb(var(--color-brand));text-decoration:underline}.confirmation-content a:hover{color:rgb(var(--color-brand-dark))}.confirmation-content p,.confirmation-content div{margin-bottom:.5rem}"})]})}function tf({sliceConfig:e}){let t,{currentStep:a,setWebPageType:s,isFocusMode:l,userDismissedFocusMode:o,setFocusMode:d,dismissFocusMode:c,basket:m,pageTitle:u,config:x,webPageType:h,restart:f,paymentAuthorized:p,paymentSubmitting:b}=P(),[g,v]=(0,n.useState)(!1),[y,j]=(0,n.useState)(!1),w=p||b;function k(){if(!w){if(m.items.length>0)return void j(!0);q(a,!1),f()}}(0,n.useEffect)(()=>{!async function(){let t=e?.webPageId??N.webPageId;S=t,"u">typeof localStorage&&!localStorage.getItem(`journey-store::${t}`)&&P.getState().reset(),await P.persist.rehydrate();let a=P.getState();"confirmation"===a.currentStep&&a.confirmationPathname!==window.location.pathname&&(G(),a.reset()),e&&P.setState({config:{...N,...e}}),eg().then(e=>{let t=e.data?.webPageType;t&&s(t);let a=e.data?.dateSelectorType||e.data?.DateSelectorType||e?.dateSelectorType||e?.DateSelectorType;a&&P.setState(e=>({config:{...e.config,dateSelectorType:a}})),"EventOverview"===t&&"products"===P.getState().currentStep&&P.getState().setCurrentStep("date-selector")}).catch(()=>{}).finally(()=>{var t,a;v(!0),t=e?.pageSlug,a=P.getState().webPageType,_.default.capture("journey_started",{page_slug:t,page_type:a})})}()},[]);let I=(0,n.useRef)(null),C=(0,n.useRef)(a);(0,n.useEffect)(()=>{if(!g)return;if("confirmation"===a)return void d(!1);let e=C.current!==a;C.current=a,!(m.items.length>0)&&["products","date-selector"].includes(a)||l||!e&&o||d(!0)},[g,a,m.items.length,l,o,d]),(0,n.useEffect)(()=>{l&&I.current&&(I.current.scrollTop=0)},[a,l]),(0,n.useEffect)(()=>(l?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[l]);let[E,D]=(0,n.useState)(null),M=(0,n.useCallback)(()=>
5{if(!m.reservationExpiryDateTime)return null;let e=new Date().getTime(),t=T(m.reservationExpiryDateTime);if(!t)return null;let a=t-e;return a<=0?{minutes:0,seconds:0}:{minutes:Math.floor(a/6e4),seconds:Math.floor(a%6e4/1e3)}},[m.reservationExpiryDateTime]);(0,n.useEffect)(()=>{if(!m.reservationExpiryDateTime)return void D(null);D(M());let e=setInterval(()=>{D(M())},1e3);return()=>clearInterval(e)},[m.reservationExpiryDateTime,M]);let A=(0,n.useRef)(null);if((0,n.useEffect)(()=>{if(g){if(null===A.current){A.current=a;return}A.current!==a&&(A.current=a,l||document.querySelector(".kip-journey")?.scrollIntoView({behavior:"smooth",block:"start"}))}},[a,l,g]),!g)return(0,r.jsx)(eI,{});switch(a){case"products":default:t=(0,r.jsx)(e4,{});break;case"date-selector":t=(0,r.jsx)(ts,{});break;case"upsells-merchandise":t=(0,r.jsx)(tl,{type:"Merchandise"});break;case"upsells-events":t=(0,r.jsx)(tl,{type:"Event"});break;case"basket":t=(0,r.jsx)(td,{});break;case"checkout":t=(0,r.jsx)(tu,{});break;case"confirmation":t=(0,r.jsx)(th,{})}let B=m.items.reduce((e,t)=>e+t.quantity,0);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(eE,{}),l&&(0,r.jsx)("div",{className:"fixed inset-0 z-40 bg-black/90"}),(0,r.jsxs)("div",{className:(0,i.default)("kip-journey",l&&"fixed inset-x-0 md:inset-x-6 bottom-0 z-50 h-full md:h-[92vh] max-w-6xl lg:max-w-[1280px] mx-auto bg-[#3c3021] border-0 rounded-none md:rounded-t-2xl flex flex-col shadow-2xl overflow-clip transform-gpu"),children:[(0,r.jsxs)("div",{className:(0,i.default)("bg-[#5F6B12] text-white px-4 md:px-8 py-3.5 items-center justify-between gap-3 flex-shrink-0 shadow-md border-0",l?"flex":"hidden"),children:[(0,r.jsxs)("div",{className:"flex items-center space-x-3 min-w-0",children:[(0,r.jsx)("span",{className:"font-bold text-base md:text-xl tracking-tight text-white truncate",children:u||x.title||"Bristol Dockyards"}),(0,r.jsx)("span",{className:"hidden sm:inline-block flex-shrink-0 whitespace-nowrap text-xs uppercase tracking-wider bg-white/20 text-white font-bold px-3 py-1 rounded-full",children:"Booking Mode"})]}),E&&(0,r.jsxs)("div",{className:"flex items-center space-x-2 flex-shrink-0 whitespace-nowrap bg-amber-400 text-amber-950 px-3.5 py-1 rounded-full text-xs md:text-sm font-bold shadow-sm",children:[(0,r.jsx)("svg",{className:"w-4 h-4 flex-shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.5,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})}),(0,r.jsxs)("span",{children:["Reserved: ",String(E.minutes).padStart(2,"0"),":",String(E.seconds).padStart(2,"0")]})]}),(0,r.jsxs)("div",{className:"flex items-center space-x-2 flex-shrink-0",children:["confirmation"!==a&&(0,r.jsxs)("button",{onClick:k,disabled:w,className:"flex items-center space-x-2 whitespace-nowrap bg-white/15 hover:enabled:bg-white/25 disabled:opacity-40 disabled:cursor-not-allowed text-white text-xs md:text-sm font-bold px-4 py-1.5 rounded-full border-0 transition-all cursor-pointer shadow-sm",title:w?"Please wait for the current payment attempt to finish":"Clear your current selection and start over",children:[(0,r.jsx)("svg",{className:"w-4 h-4 flex-shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.5,d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})}),(0,r.jsx)("span",{className:"hidden sm:inline",children:"Start Over"})]}),(0,r.jsxs)("button",{onClick:c,className:"flex items-center space-x-2 whitespace-nowrap bg-white/15 hover:bg-white/25 text-white text-xs md:text-sm font-bold px-4 py-1.5 rounded-full border-0 transition-all cursor-pointer shadow-sm",title:"Minimize focus mode",children:[(0,r.jsx)("span",{className:"hidden sm:inline",children:"Back to Page"}),(0,r.jsx)("svg",{className:"w-4 h-4 flex-shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.5,d:"M6 18L18 6M6 6l12 12"})})]})]})]}),!l&&"confirmation"!==a&&(0,r.jsx)("div",{className:"flex justify-end px-4 md:px-6 lg:px-8 pt-3",children:(0,r.jsxs)("button",{onClick:k,disabled:w,className:"flex items-center gap-2 text-text-muted hover:enabled:text-text-heading disabled:opacity-50 disabled:cursor-not-allowed font-medium text-sm transition-colors",title:w?"Please wait for the current payment attempt to finish":"Clear your current selection and start over",children:[(0,r.jsx)("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})}),"Start Over"]})}),(0,r.jsx)("div",{ref:I,className:(0,i.default)(l&&"flex-1 overflow-y-auto overflow-x-hidden pt-2 md:pt-6 lg:pt-8 px-2 md:px-6 lg:px-8 pb-0 bg-[#3c3021]"),children:t})]}),!l&&B>0&&!["confirmation","basket"].includes(a)&&(0,r.jsx)("div",{className:"fixed bottom-24 sm:bottom-6 right-4 sm:right-6 z-40",children:(0,r.jsxs)("button",{onClick:()=>d(!0),className:"bg-[#5F6B12] hover:bg-[#4d570e] text-white font-bold px-6 py-3.5 rounded-full shadow-2xl flex items-center space-x-3 transition-all hover:scale-105 cursor-pointer border-0",children:[(0,r.jsx)("svg",{className:"w-5 h-5 text-amber-300",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.5,d:"M13 10V3L4 14h7v7l9-11h-7z"})}),(0,r.jsxs)("span",{className:"text-sm font-bold",children:["Resume Booking (",B," ",1===B?"ticket":"tickets",")"]}
5),(0,r.jsx)("svg",{className:"w-4 h-4 text-white",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2.5,d:"M9 5l7 7-7 7"})})]})}),y&&(0,r.jsx)("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-[60] p-4",children:(0,r.jsxs)("div",{className:"bg-surface rounded-xl shadow-xl max-w-md w-full p-6",children:[(0,r.jsxs)("div",{className:"flex items-center mb-4",children:[(0,r.jsx)("div",{className:"w-10 h-10 rounded-full bg-feedback-warning/15 flex items-center justify-center mr-3",children:(0,r.jsx)("svg",{className:"w-5 h-5 text-feedback-warning",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})})}),(0,r.jsx)("h3",{className:"text-lg font-semibold text-text-heading",children:"Start over?"})]}),(0,r.jsx)("p",{className:"text-text-muted mb-6",children:"This will clear your current selection so you can start fresh. Any reserved tickets will be released."}),(0,r.jsxs)("div",{className:"flex gap-3",children:[(0,r.jsx)(e_,{variant:"secondary",className:"flex-1",onClick:()=>j(!1),children:"Cancel"}),(0,r.jsx)(e_,{variant:"solid",className:"flex-1",onClick:function(){q(a,!0),ei(),el(),f(),j(!1)},children:"Start Over"})]})]})})]})}let tp={Production:"https://online1.venpos.net/VenposJourneyAPI",UAT:"https://uat.venpos.net/VenposJourneyAPI"};e.s(["default",0,function({slice:e}){let t=e.primary.environment??"Production",a={...e.primary.webPageId&&{webPageId:e.primary.webPageId},pageSlug:e.primary.anchorId||String(e.primary.webPageId||"unknown"),venposApiUrl:tp[t]??tp.Production,...null!=e.primary.lowStockThreshold&&{lowStockThreshold:e.primary.lowStockThreshold},...e.primary.dateSelectorTitle&&{dateSelectorTitle:e.primary.dateSelectorTitle},...e.primary.dateSelectorSubtitle&&{dateSelectorSubtitle:e.primary.dateSelectorSubtitle},...e.primary.dateSelectorInformationPanel&&{dateSelectorInformationPanel:e.primary.dateSelectorInformationPanel},...e.primary.upsellsTitle&&{upsellsTitle:e.primary.upsellsTitle},...e.primary.upsellsSubtitle&&{upsellsSubtitle:e.primary.upsellsSubtitle},...e.primary.productsTitle&&{productsTitle:e.primary.productsTitle},...e.primary.productsSubtitle?.length>0&&{productsSubtitle:e.primary.productsSubtitle},...e.items?.length>0&&{customStrikethroughPrices:Object.fromEntries(e.items.filter(e=>e.productName&&null!=e.strikethroughPrice).map(e=>[e.productName,e.strikethroughPrice]))},...e.primary.date_warnings?.length>0&&{dateWarnings:e.primary.date_warnings.filter(e=>e.warning_date&&e.warning_text).map(e=>({date:e.warning_date,text:e.warning_text}))},...e.primary.excludedProducts?.length>0&&{excludedProductNames:e.primary.excludedProducts.filter(e=>e.productName).map(e=>e.productName)}};return(0,r.jsx)("section",{id:e.primary.anchorId||void 0,className:"kip-journey scroll-mt-24 bg-citySteel","data-slice-type":e.slice_type,"data-slice-variation":e.variation,children:a.webPageId?(0,r.jsx)(tf,{sliceConfig:a}):(0,r.jsx)(eT,{})})}],3178)}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.